/*
Theme Name: Libas Ethnic
Theme URI: https://example.com/libas-ethnic
Author: Libas Ethnic
Description: A refined, Elementor-friendly WooCommerce theme for Libas Ethnic ladies wear. Includes a complete editorial storefront, starter pages, demo products, SEO foundations and responsive shopping layouts.
Version: 2.0.1
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 7.4
Text Domain: libas-ethnic
*/

:root {
    --libas-ivory: #f8f4ed;
    --libas-ivory-deep: #efe7dc;
    --libas-paper: #fffdf9;
    --libas-clay: #a55731;
    --libas-clay-dark: #7f3f25;
    --libas-ink: #3d3936;
    --libas-muted: #756d67;
    --libas-line: #ded4c8;
    --libas-gold: #c7a071;
    --libas-forest: #363a31;
    --libas-light: #fffaf4;
    --libas-display: "Cormorant Garamond", Georgia, serif;
    --libas-sans: "Manrope", Arial, sans-serif;
    --libas-max: 1440px;
    --libas-narrow: 900px;
    --libas-shadow: 0 24px 60px rgba(66, 48, 38, .10);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    background: var(--libas-ivory);
    color: var(--libas-ink);
    font-family: var(--libas-sans);
    font-size: 15px;
    line-height: 1.7;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}
body.admin-bar .libas-site-header { top: 32px; }
@media (max-width: 782px) { body.admin-bar .libas-site-header { top: 46px; } }

img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
a:hover { color: var(--libas-clay); }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
::selection { background: var(--libas-clay); color: var(--libas-light); }

h1, h2, h3, h4, h5, h6 {
    margin: 0 0 .55em;
    color: var(--libas-ink);
    font-family: var(--libas-display);
    font-weight: 500;
    line-height: 1.08;
    letter-spacing: -.018em;
}
h1 { font-size: clamp(46px, 6vw, 82px); }
h2 { font-size: clamp(38px, 4.6vw, 58px); }
h3 { font-size: 28px; }
p { margin: 0 0 1.25em; }
ul, ol { padding-left: 1.35em; }

.libas-container {
    width: min(var(--libas-max), calc(100% - 56px));
    margin-inline: auto;
}
.libas-narrow {
    width: min(var(--libas-narrow), calc(100% - 48px));
    margin-inline: auto;
}
.libas-main { min-height: 45vh; }
.libas-kicker {
    margin-bottom: 12px;
    color: var(--libas-clay);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .23em;
    line-height: 1.3;
    text-transform: uppercase;
}
.libas-kicker-light { color: #f4d8c7; }
.libas-lead {
    font-family: var(--libas-display);
    font-size: clamp(25px, 3vw, 34px);
    line-height: 1.38;
    color: #5b514b;
}
.libas-icon {
    width: 20px;
    height: 20px;
    display: inline-block;
    flex: 0 0 auto;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.6;
    stroke-linecap: round;
    stroke-linejoin: round;
    vertical-align: middle;
}
.libas-icon-sm { width: 14px; height: 14px; }
.screen-reader-text {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

/* Buttons and links */
.libas-button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt {
    display: inline-flex;
    min-height: 50px;
    align-items: center;
    justify-content: center;
    gap: 12px;
    border: 1px solid var(--libas-clay);
    border-radius: 0;
    background: var(--libas-clay);
    color: var(--libas-light) !important;
    padding: 13px 25px;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .14em;
    line-height: 1.2;
    text-transform: uppercase;
    transition: background .2s ease, border-color .2s ease, transform .2s ease;
}
.libas-button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover {
    background: var(--libas-clay-dark);
    border-color: var(--libas-clay-dark);
    color: var(--libas-light) !important;
    transform: translateY(-1px);
}
.libas-button-light {
    background: var(--libas-light);
    border-color: var(--libas-light);
    color: var(--libas-ink) !important;
}
.libas-button-light:hover {
    background: #fff;
    border-color: #fff;
    color: var(--libas-clay-dark) !important;
}
.libas-text-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    border-bottom: 1px solid currentColor;
    padding-bottom: 4px;
    color: var(--libas-clay);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .13em;
    line-height: 1.35;
    text-transform: uppercase;
}
.libas-text-link:hover { color: var(--libas-clay-dark); }

/* Header */
.libas-site-header {
    position: sticky;
    top: 0;
    z-index: 999;
    background: rgba(248, 244, 237, .96);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
}
.libas-announcement {
    background: var(--libas-ink);
    color: #f7eee6;
}
.libas-announcement-inner {
    min-height: 32px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    font-size: 10px;
    font-weight: 500;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.libas-header-main { border-bottom: 1px solid var(--libas-line); }
.libas-header-grid {
    min-height: 102px;
    display: grid;
    grid-template-columns: 1fr 260px 1fr;
    align-items: center;
    gap: 24px;
}
.libas-header-left { display: flex; align-items: center; min-width: 0; }
.libas-menu-toggle {
    display: none;
    border: 0;
    background: transparent;
    padding: 8px 8px 8px 0;
}
.libas-header-search {
    width: min(280px, 100%);
    display: flex;
    align-items: center;
    gap: 10px;
    border-bottom: 1px solid #bfb3a8;
    padding: 0 0 8px;
}
.libas-header-search input {
    width: 100%;
    min-width: 0;
    border: 0;
    outline: 0;
    background: transparent;
    font-size: 12px;
}
.libas-header-search input::placeholder { color: #92877f; }
.libas-header-logo { display: flex; justify-content: center; }
.libas-logo,
.custom-logo-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.libas-logo img,
.custom-logo {
    width: auto;
    max-width: 210px;
    max-height: 84px;
    object-fit: contain;
}
.libas-header-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 18px;
}
.libas-icon-link {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
}
.libas-search-mobile { display: none; }
.libas-nav-wrap { border-top: 1px solid rgba(222, 212, 200, .7); }
.libas-primary-nav,
.libas-primary-nav.menu {
    min-height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 38px;
    margin: 0;
    padding: 0;
    list-style: none;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .13em;
    text-transform: uppercase;
}
.libas-primary-nav li { position: relative; list-style: none; }
.libas-primary-nav a { display: block; padding: 16px 0 14px; }
.libas-primary-nav a:hover,
.libas-primary-nav .current-menu-item > a { color: var(--libas-clay); }
.libas-primary-nav .sub-menu {
    position: absolute;
    left: -22px;
    top: 100%;
    min-width: 220px;
    display: none;
    margin: 0;
    padding: 14px 22px;
    border: 1px solid var(--libas-line);
    background: var(--libas-paper);
    box-shadow: var(--libas-shadow);
    list-style: none;
}
.libas-primary-nav li:hover > .sub-menu { display: block; }
.libas-primary-nav .sub-menu a { padding: 8px 0; }
.libas-nav-sale { color: #a23d31; }

.libas-mobile-backdrop,
.libas-mobile-drawer { display: none; }

/* Hero */
.libas-hero {
    position: relative;
    min-height: min(790px, 76vh);
    overflow: hidden;
    background: #efe8df;
}
.libas-hero-image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center right;
}
.libas-hero-wash {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(248,244,237,.98) 0%, rgba(248,244,237,.88) 31%, rgba(248,244,237,.38) 54%, rgba(248,244,237,0) 74%);
}
.libas-hero-content {
    position: relative;
    z-index: 2;
    min-height: min(790px, 76vh);
    display: flex;
    align-items: center;
}
.libas-hero-copy { max-width: 720px; padding: 62px 0; }
.libas-hero-copy h1 {
    max-width: 680px;
    margin-bottom: 20px;
    color: var(--libas-clay);
    font-size: clamp(58px, 7vw, 96px);
    line-height: .96;
    letter-spacing: -.035em;
}
.libas-hero-text { max-width: 580px; color: #5d554f; font-size: 16px; line-height: 1.75; }
.libas-hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 24px; margin-top: 30px; }

.libas-editorial-strip {
    border-top: 1px solid var(--libas-line);
    border-bottom: 1px solid var(--libas-line);
    background: var(--libas-paper);
}
.libas-editorial-strip-inner {
    min-height: 58px;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    align-items: center;
    text-align: center;
    font-family: var(--libas-display);
    font-size: 19px;
    font-style: italic;
    color: #655a52;
}
.libas-editorial-strip span + span { border-left: 1px solid var(--libas-line); }

/* Sections */
.libas-section { padding: 96px 0; }
.libas-section-tint { background: #f0e8de; }
.libas-section-dark { background: var(--libas-ink); color: #eee4db; }
.libas-section-heading { margin-bottom: 42px; }
.libas-section-heading h2 { margin-bottom: 12px; }
.libas-section-heading > div > p:last-child,
.libas-section-heading > p:last-child { max-width: 620px; color: var(--libas-muted); }
.libas-section-heading-split {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 36px;
}
.libas-section-heading-center { max-width: 760px; margin-inline: auto; text-align: center; }
.libas-section-heading-center > p:last-child { margin-inline: auto; }
.libas-heading-light h2 { color: #fff7f0; }
.libas-heading-light > p:last-child { color: #cbbdb2; }

/* Product cards */
.libas-product-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 34px 22px;
}
.libas-product-card { min-width: 0; }
.libas-product-media {
    position: relative;
    display: block;
    overflow: hidden;
    background: #eee5dc;
    aspect-ratio: 4 / 5;
}
.libas-product-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .65s cubic-bezier(.2,.6,.2,1);
}
.libas-product-card:hover .libas-product-media img { transform: scale(1.035); }
.libas-badge {
    position: absolute;
    left: 14px;
    top: 14px;
    z-index: 2;
    background: rgba(255,253,249,.94);
    color: var(--libas-clay-dark);
    padding: 7px 10px;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .14em;
    line-height: 1;
    text-transform: uppercase;
}
.libas-product-copy { padding-top: 16px; }
.libas-product-category {
    min-height: 18px;
    margin: 0 0 5px;
    color: #8e8178;
    font-size: 9px;
    font-weight: 600;
    letter-spacing: .14em;
    text-transform: uppercase;
}
.libas-product-category a { color: inherit; }
.libas-product-copy h3 {
    margin: 0 0 6px;
    font-family: var(--libas-sans);
    font-size: 13px;
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: .01em;
}
.libas-product-price {
    color: var(--libas-clay-dark);
    font-size: 13px;
    font-weight: 600;
}
.libas-product-price del { margin-right: 5px; color: #988b83; font-weight: 400; }
.libas-product-price ins { text-decoration: none; }

/* Category cards */
.libas-category-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
}
.libas-category-card {
    position: relative;
    min-height: 500px;
    display: block;
    overflow: hidden;
    background: #ddd2c7;
}
.libas-category-card img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .7s cubic-bezier(.2,.6,.2,1);
}
.libas-category-card::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(20,16,14,0) 45%, rgba(32,24,20,.72) 100%);
}
.libas-category-card:hover img { transform: scale(1.045); }
.libas-category-overlay {
    position: absolute;
    left: 24px;
    right: 24px;
    bottom: 24px;
    z-index: 2;
    color: #fffaf5;
}
.libas-category-overlay strong {
    display: block;
    margin-bottom: 8px;
    font-family: var(--libas-display);
    font-size: 34px;
    font-weight: 500;
    line-height: 1;
}
.libas-category-overlay em {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    border-bottom: 1px solid rgba(255,255,255,.8);
    padding-bottom: 3px;
    font-family: var(--libas-sans);
    font-size: 9px;
    font-style: normal;
    font-weight: 600;
    letter-spacing: .13em;
    text-transform: uppercase;
}

/* Feature banner */
.libas-feature-banner {
    position: relative;
    min-height: 610px;
    display: flex;
    align-items: center;
    overflow: hidden;
    background: #2f2926;
}
.libas-feature-banner > img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}
.libas-feature-shade {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(28,22,20,.88) 0%, rgba(28,22,20,.58) 42%, rgba(28,22,20,.08) 78%);
}
.libas-feature-content { position: relative; z-index: 2; color: #f8eee7; }
.libas-feature-content > div { max-width: 560px; }
.libas-feature-content h2 { color: #fff9f4; font-size: clamp(50px, 6vw, 74px); }
.libas-feature-content p:not(.libas-kicker) { max-width: 500px; color: #ddd0c6; }

/* Brand story */
.libas-story-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr);
    align-items: center;
    gap: clamp(48px, 7vw, 110px);
}
.libas-story-media { position: relative; padding: 0 13% 12% 0; }
.libas-story-main { width: 100%; aspect-ratio: 4/5; object-fit: cover; }
.libas-story-small {
    position: absolute;
    right: 0;
    bottom: 0;
    width: 38%;
    padding: 10px;
    background: var(--libas-ivory);
    box-shadow: var(--libas-shadow);
}
.libas-story-small img { width: 100%; aspect-ratio: 4/5; object-fit: cover; }
.libas-story-copy { max-width: 580px; }
.libas-story-copy h2 { color: var(--libas-clay); }
.libas-story-copy p:not(.libas-kicker) { color: #635a54; }

/* Promise */
.libas-promise-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    border-top: 1px solid rgba(255,255,255,.17);
}
.libas-promise-grid article { padding: 34px 28px 10px 0; }
.libas-promise-grid article + article { border-left: 1px solid rgba(255,255,255,.17); padding-left: 28px; }
.libas-promise-grid span {
    color: var(--libas-gold);
    font-family: var(--libas-display);
    font-size: 20px;
}
.libas-promise-grid h3 { margin-top: 28px; color: #fff8f2; font-size: 27px; }
.libas-promise-grid p { color: #cfc1b7; font-size: 13px; line-height: 1.75; }

/* Lookbook */
.libas-lookbook-grid {
    display: grid;
    grid-template-columns: 1.3fr 1fr;
    grid-template-rows: repeat(2, 360px);
    gap: 18px;
}
.libas-lookbook-card {
    position: relative;
    display: block;
    overflow: hidden;
    background: #ded3ca;
}
.libas-lookbook-large { grid-row: 1 / span 2; }
.libas-lookbook-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .7s ease;
}
.libas-lookbook-card::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(29,22,18,0) 42%, rgba(29,22,18,.72) 100%);
}
.libas-lookbook-card:hover img { transform: scale(1.035); }
.libas-lookbook-card > span {
    position: absolute;
    left: 28px;
    right: 28px;
    bottom: 26px;
    z-index: 2;
    color: #fff9f4;
}
.libas-lookbook-card small {
    display: block;
    margin-bottom: 7px;
    font-size: 9px;
    font-weight: 600;
    letter-spacing: .16em;
    text-transform: uppercase;
}
.libas-lookbook-card strong {
    display: block;
    font-family: var(--libas-display);
    font-size: 38px;
    font-weight: 500;
    line-height: 1;
}
.libas-lookbook-card em {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 14px;
    border-bottom: 1px solid currentColor;
    padding-bottom: 3px;
    font-size: 9px;
    font-style: normal;
    font-weight: 600;
    letter-spacing: .13em;
    text-transform: uppercase;
}

/* Newsletter */
.libas-newsletter {
    border-top: 1px solid var(--libas-line);
    background: var(--libas-ivory-deep);
    padding: 54px 0;
}
.libas-newsletter-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    gap: 70px;
}
.libas-newsletter h2 { margin-bottom: 8px; font-size: 36px; }
.libas-newsletter p { margin-bottom: 0; color: var(--libas-muted); }
.libas-newsletter-form {
    position: relative;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 0;
    border-bottom: 1px solid #8b7e74;
}
.libas-newsletter-form input {
    width: 100%;
    min-width: 0;
    border: 0;
    outline: 0;
    background: transparent;
    padding: 14px 4px;
}
.libas-newsletter-form button {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    border: 0;
    background: transparent;
    color: var(--libas-clay);
    padding: 14px 4px 14px 22px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.libas-newsletter-status {
    position: absolute;
    left: 0;
    top: calc(100% + 7px);
    color: var(--libas-clay-dark);
    font-size: 11px;
}

/* Footer */
.libas-footer { background: #302b28; color: #d8cec6; }
.libas-trust-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    border-bottom: 1px solid rgba(255,255,255,.12);
}
.libas-trust-grid > div {
    min-height: 106px;
    display: flex;
    align-items: center;
    gap: 15px;
    padding: 20px 26px 20px 0;
}
.libas-trust-grid > div + div { border-left: 1px solid rgba(255,255,255,.12); padding-left: 26px; }
.libas-trust-grid strong { display: block; color: #fff7f0; font-size: 12px; font-weight: 600; }
.libas-trust-grid small { display: block; margin-top: 2px; color: #a99d95; font-size: 10px; }
.libas-footer-main { padding: 68px 0 58px; }
.libas-footer-grid {
    display: grid;
    grid-template-columns: 1.55fr .75fr .9fr 1fr;
    gap: 48px;
}
.libas-logo-footer { display: inline-grid; justify-items: start; }
.libas-footer-wordmark { color: #d9a17d; font-family: var(--libas-display); font-size: 54px; line-height: .8; }
.libas-footer-submark { margin-top: 11px; color: #d8cec6; font-size: 9px; letter-spacing: .45em; text-transform: uppercase; }
.libas-footer-brand > p { max-width: 340px; margin-top: 24px; color: #b6aaa2; font-size: 13px; }
.libas-socials { display: flex; gap: 10px; margin-top: 22px; }
.libas-socials a {
    width: 37px;
    height: 37px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255,255,255,.18);
    color: #f5ebe4;
}
.libas-socials a:hover { border-color: #d9a17d; color: #d9a17d; }
.libas-footer-col h3 {
    margin-bottom: 18px;
    color: #fff8f2;
    font-family: var(--libas-sans);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
}
.libas-footer-links,
.libas-footer-links.menu {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.libas-footer-links a { color: #bfb2aa; font-size: 12px; }
.libas-footer-links a:hover { color: #f7eee7; }
.libas-footer-contact p { margin-bottom: 7px; color: #bfb2aa; font-size: 12px; }
.libas-footer-contact strong { color: #fff8f2; }
.libas-footer-contact .libas-text-link { margin-top: 13px; color: #d9a17d; }
.libas-footer-bottom { border-top: 1px solid rgba(255,255,255,.1); }
.libas-footer-bottom-inner {
    min-height: 64px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    color: #978b84;
    font-size: 10px;
}
.libas-footer-bottom p { margin: 0; }
.libas-footer-bottom-inner > div { display: flex; gap: 20px; }

/* Standard pages */
.libas-page-hero {
    border-bottom: 1px solid var(--libas-line);
    background: #f1e9df;
    padding: 78px 0 66px;
    text-align: center;
}
.libas-page-hero h1 { color: var(--libas-clay); font-size: clamp(50px, 6vw, 72px); }
.libas-page-content { padding: 72px 0 94px; }
.libas-page-content > *:first-child { margin-top: 0; }
.libas-page-content h2 { margin: 1.35em 0 .5em; font-size: 38px; }
.libas-page-content h3 { margin: 1.35em 0 .5em; font-size: 28px; }
.libas-page-content p,
.libas-page-content li { color: #5e5550; }
.libas-page-content a { color: var(--libas-clay); text-decoration: underline; text-underline-offset: 3px; }
.libas-page-content img { margin: 30px 0; }
.libas-table-wrap { overflow-x: auto; margin: 28px 0 44px; }
.libas-page-content table { width: 100%; border-collapse: collapse; background: var(--libas-paper); }
.libas-page-content th,
.libas-page-content td { border: 1px solid var(--libas-line); padding: 14px 16px; text-align: left; }
.libas-page-content th { background: #efe6dc; color: var(--libas-ink); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }

.libas-contact-form { display: grid; gap: 18px; margin-top: 30px; }
.libas-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.libas-contact-form label { display: grid; gap: 7px; color: var(--libas-ink); font-size: 11px; font-weight: 600; letter-spacing: .07em; text-transform: uppercase; }
.libas-contact-form input,
.libas-contact-form textarea {
    width: 100%;
    border: 1px solid var(--libas-line);
    outline: 0;
    background: var(--libas-paper);
    padding: 13px 14px;
    font-size: 14px;
    line-height: 1.5;
    text-transform: none;
}
.libas-contact-form input:focus,
.libas-contact-form textarea:focus { border-color: var(--libas-clay); box-shadow: 0 0 0 2px rgba(165,87,49,.1); }
.libas-contact-form .libas-button { justify-self: start; }
.libas-notice { margin: 0 0 24px; border: 1px solid var(--libas-line); background: var(--libas-paper); padding: 14px 16px; }
.libas-notice-success { border-color: #9aaa84; }
.libas-notice-error { border-color: #c68679; }

/* Blog and archive */
.libas-archive-page { padding: 82px 0 100px; }
.libas-archive-header { max-width: 780px; margin-bottom: 48px; }
.libas-archive-header h1 { color: var(--libas-clay); font-size: clamp(48px, 6vw, 72px); }
.libas-post-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 44px 24px; }
.libas-post-card > a:first-child { display: block; margin-bottom: 20px; overflow: hidden; aspect-ratio: 4/3; }
.libas-post-card > a:first-child img { width: 100%; height: 100%; object-fit: cover; }
.libas-post-card .libas-kicker { margin-top: 12px; }
.libas-post-card h2 { font-size: 31px; }
.libas-post-card p { color: var(--libas-muted); font-size: 13px; }
.libas-single-header { padding: 82px 0 42px; text-align: center; }
.libas-single-header h1 { color: var(--libas-clay); }
.libas-single-featured { margin-bottom: 20px; }
.libas-single-featured img { width: 100%; max-height: 720px; object-fit: cover; }
.libas-empty-state { padding: 96px 0; text-align: center; }
.libas-empty-state h1,
.libas-empty-state h2 { color: var(--libas-clay); }
.libas-404 { min-height: 55vh; display: flex; flex-direction: column; align-items: center; justify-content: center; }

/* WordPress content */
.entry-content .alignwide { width: min(1200px, 100%); margin-left: 50%; transform: translateX(-50%); }
.entry-content .alignfull { width: 100vw; max-width: 100vw; margin-left: 50%; transform: translateX(-50%); }
.wp-block-button__link { border-radius: 0; background: var(--libas-clay); }

/* WooCommerce */
.libas-commerce { padding: 62px 0 100px; }
.woocommerce .woocommerce-breadcrumb {
    margin: 0 0 34px;
    color: #8d8179;
    font-size: 10px;
    letter-spacing: .09em;
    text-transform: uppercase;
}
.woocommerce .woocommerce-breadcrumb a { color: var(--libas-clay); }
.woocommerce-products-header { margin-bottom: 34px; text-align: center; }
.woocommerce-products-header__title.page-title,
.woocommerce div.product .product_title { color: var(--libas-clay); }
.woocommerce-products-header__title.page-title { font-size: clamp(50px, 6vw, 72px); }
.woocommerce .term-description { max-width: 700px; margin: 0 auto; color: var(--libas-muted); }
.woocommerce .woocommerce-result-count { color: var(--libas-muted); font-size: 11px; }
.woocommerce .woocommerce-ordering select {
    border: 1px solid var(--libas-line);
    background: var(--libas-paper);
    padding: 10px 36px 10px 12px;
    font-size: 11px;
}
.woocommerce ul.products {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 36px 22px;
    margin: 36px 0 0;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after { display: none; }
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
    width: auto !important;
    float: none !important;
    margin: 0 !important;
}
.woocommerce ul.products li.product a img {
    width: 100%;
    margin: 0 0 14px;
    aspect-ratio: 4/5;
    object-fit: cover;
    background: #eee5dc;
}
.woocommerce ul.products li.product .woocommerce-loop-category__title,
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h3 {
    padding: 0;
    color: var(--libas-ink);
    font-family: var(--libas-sans);
    font-size: 13px;
    font-weight: 600;
    line-height: 1.45;
}
.woocommerce ul.products li.product .price {
    color: var(--libas-clay-dark);
    font-size: 13px;
    font-weight: 600;
}
.woocommerce ul.products li.product .price del { color: #9b8f87; opacity: 1; }
.woocommerce ul.products li.product .price ins { font-weight: 600; text-decoration: none; }
.woocommerce ul.products li.product .button {
    min-height: 0;
    margin-top: 10px;
    padding: 10px 14px;
    font-size: 9px;
}
.woocommerce span.onsale {
    left: 12px;
    top: 12px;
    min-width: auto;
    min-height: auto;
    margin: 0;
    border-radius: 0;
    background: var(--libas-paper);
    color: var(--libas-clay-dark);
    padding: 8px 10px;
    font-size: 9px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.woocommerce nav.woocommerce-pagination { margin-top: 50px; }
.woocommerce nav.woocommerce-pagination ul { border: 0; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; margin: 0 3px; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span { min-width: 38px; height: 38px; display: grid; place-items: center; background: transparent; }
.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--libas-clay); color: #fff; }

/* WooCommerce single product */
.woocommerce div.product { display: flow-root; }
.woocommerce div.product div.images,
.woocommerce div.product div.summary { margin-bottom: 64px; }
.woocommerce div.product div.images { width: 53%; }
.woocommerce div.product div.summary { width: 42%; }
.woocommerce div.product .product_title { font-size: clamp(42px, 5vw, 62px); }
.woocommerce div.product p.price,
.woocommerce div.product span.price { color: var(--libas-clay-dark); font-size: 20px; }
.woocommerce div.product .woocommerce-product-details__short-description { color: #625954; font-size: 14px; line-height: 1.8; }
.woocommerce div.product form.cart { margin: 28px 0 18px; }
.woocommerce div.product form.cart:not(.variations_form),
.woocommerce div.product form.cart .woocommerce-variation-add-to-cart { display: flex; align-items: stretch; gap: 10px; }
.woocommerce div.product form.cart.variations_form { display: block; }
.woocommerce div.product form.cart .variations { width: 100%; margin: 0 0 18px; }
.woocommerce div.product form.cart .variations th,
.woocommerce div.product form.cart .variations td { display: block; width: 100%; padding: 0 0 8px; text-align: left; }
.woocommerce div.product form.cart .variations label { font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.woocommerce div.product form.cart .variations select { width: 100%; min-height: 48px; border: 1px solid var(--libas-line); background: var(--libas-paper); padding: 10px 12px; }
.woocommerce div.product form.cart .reset_variations { display: inline-block; margin-top: 8px; color: var(--libas-clay); font-size: 10px; }
.woocommerce .quantity .qty { min-height: 50px; border: 1px solid var(--libas-line); background: var(--libas-paper); padding: 8px; }
.woocommerce div.product .product_meta { border-top: 1px solid var(--libas-line); margin-top: 28px; padding-top: 18px; color: #8b817b; font-size: 10px; letter-spacing: .05em; }
.woocommerce div.product .product_meta > span { display: block; margin-bottom: 6px; }
.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs::before { border-color: var(--libas-line); }
.woocommerce div.product .woocommerce-tabs ul.tabs li { border: 0; border-radius: 0; background: transparent; margin: 0 24px 0 0; padding: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { padding: 14px 0; font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--libas-clay); }
.woocommerce div.product .woocommerce-tabs .panel { max-width: 900px; color: #615852; }
.woocommerce div.product .woocommerce-tabs .panel h2 { font-size: 34px; }
.related.products > h2,
.up-sells > h2 { margin: 70px 0 28px; font-size: 42px; }

/* Cart / checkout / account */
.woocommerce table.shop_table {
    border: 1px solid var(--libas-line);
    border-radius: 0;
    background: var(--libas-paper);
}
.woocommerce table.shop_table th { font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.woocommerce table.shop_table td { border-color: var(--libas-line); }
.woocommerce-cart table.cart img { width: 86px; }
.woocommerce-cart .cart-collaterals .cart_totals,
.woocommerce-checkout #order_review,
.woocommerce-account .woocommerce-MyAccount-content {
    background: var(--libas-paper);
    border: 1px solid var(--libas-line);
    padding: 28px;
}
.woocommerce-cart .cart-collaterals .cart_totals h2,
.woocommerce-checkout h3 { font-size: 34px; }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.select2-container--default .select2-selection--single {
    min-height: 46px;
    border: 1px solid var(--libas-line);
    border-radius: 0;
    background: var(--libas-paper);
    padding: 10px 12px;
}
.woocommerce form.checkout_coupon,
.woocommerce form.login,
.woocommerce form.register { border-color: var(--libas-line); border-radius: 0; background: var(--libas-paper); }
.woocommerce-info,
.woocommerce-message,
.woocommerce-error {
    border-top-color: var(--libas-clay);
    background: var(--libas-paper);
    color: var(--libas-ink);
}
.woocommerce-info::before,
.woocommerce-message::before { color: var(--libas-clay); }
.woocommerce-error { border-top-color: #a94b42; }
.woocommerce-error::before { color: #a94b42; }
.woocommerce-account .woocommerce-MyAccount-navigation ul { margin: 0; padding: 0; list-style: none; }
.woocommerce-account .woocommerce-MyAccount-navigation a { display: block; border-bottom: 1px solid var(--libas-line); padding: 11px 0; font-size: 12px; }

/* Toast */
.libas-toast {
    position: fixed;
    right: 24px;
    bottom: 24px;
    z-index: 1200;
    max-width: min(360px, calc(100vw - 48px));
    transform: translateY(16px);
    opacity: 0;
    pointer-events: none;
    background: var(--libas-ink);
    color: #fff8f2;
    padding: 12px 16px;
    box-shadow: var(--libas-shadow);
    font-size: 12px;
    transition: opacity .2s ease, transform .2s ease;
}
.libas-toast.is-visible { opacity: 1; transform: translateY(0); }

/* Elementor-friendly edge cases */
.elementor-page .libas-main > .elementor { width: 100%; }
.page-template-template-elementor-canvas .libas-main { min-height: 0; }

/* Responsive */
@media (max-width: 1180px) {
    .libas-header-grid { grid-template-columns: 1fr 220px 1fr; }
    .libas-primary-nav, .libas-primary-nav.menu { gap: 25px; }
    .libas-product-grid, .woocommerce ul.products { grid-template-columns: repeat(3, 1fr); }
    .libas-category-card { min-height: 420px; }
    .libas-promise-grid { grid-template-columns: repeat(2, 1fr); }
    .libas-promise-grid article:nth-child(3) { border-left: 0; }
    .libas-promise-grid article:nth-child(n+3) { border-top: 1px solid rgba(255,255,255,.17); }
    .libas-footer-grid { grid-template-columns: 1.4fr 1fr 1fr; }
    .libas-footer-contact { grid-column: 2 / 4; }
}

@media (max-width: 900px) {
    .libas-container { width: min(100% - 36px, var(--libas-max)); }
    .libas-announcement-inner { justify-content: center; text-align: center; }
    .libas-announcement-secondary { display: none; }
    .libas-header-grid { min-height: 86px; grid-template-columns: 1fr 180px 1fr; }
    .libas-menu-toggle { display: inline-flex; }
    .libas-header-search { display: none; }
    .libas-nav-wrap { display: none; }
    .libas-header-actions { gap: 12px; }
    .libas-header-actions .libas-icon-link > span:not(.libas-cart-count) { display: none; }
    .libas-search-mobile { display: inline-flex; }
    .libas-logo img, .custom-logo { max-height: 70px; max-width: 180px; }

    .libas-mobile-backdrop {
        position: fixed;
        inset: 0;
        z-index: 1100;
        display: block;
        visibility: hidden;
        opacity: 0;
        background: rgba(31,25,22,.42);
        transition: opacity .25s ease, visibility .25s ease;
    }
    .libas-mobile-backdrop.is-open { visibility: visible; opacity: 1; }
    .libas-mobile-drawer {
        position: fixed;
        left: 0;
        top: 0;
        bottom: 0;
        z-index: 1110;
        width: min(340px, 88vw);
        display: block;
        transform: translateX(-105%);
        background: var(--libas-ivory);
        padding: 28px 26px;
        box-shadow: var(--libas-shadow);
        transition: transform .28s ease;
    }
    .libas-mobile-drawer.is-open { transform: translateX(0); }
    .libas-mobile-brand { display: flex; justify-content: center; border-bottom: 1px solid var(--libas-line); padding-bottom: 18px; }
    .libas-mobile-brand .libas-logo img { max-height: 90px; }
    .libas-mobile-nav { display: flex; flex-direction: column; gap: 0; margin-top: 18px; }
    .libas-mobile-nav a { border-bottom: 1px solid var(--libas-line); padding: 14px 0; font-size: 11px; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; }

    .libas-hero, .libas-hero-content { min-height: 650px; }
    .libas-hero-image { object-position: 66% center; }
    .libas-hero-wash { background: linear-gradient(90deg, rgba(248,244,237,.97) 0%, rgba(248,244,237,.82) 46%, rgba(248,244,237,.18) 84%); }
    .libas-hero-copy { max-width: 560px; }
    .libas-hero-copy h1 { font-size: clamp(54px, 10vw, 78px); }
    .libas-editorial-strip-inner { grid-template-columns: repeat(2, 1fr); }
    .libas-editorial-strip span { padding: 12px; }
    .libas-editorial-strip span + span { border-left: 0; }
    .libas-editorial-strip span:nth-child(even) { border-left: 1px solid var(--libas-line); }
    .libas-editorial-strip span:nth-child(n+3) { border-top: 1px solid var(--libas-line); }

    .libas-section { padding: 74px 0; }
    .libas-product-grid, .woocommerce ul.products { grid-template-columns: repeat(2, 1fr); }
    .libas-category-grid { grid-template-columns: repeat(2, 1fr); }
    .libas-category-card { min-height: 470px; }
    .libas-story-grid { grid-template-columns: 1fr; }
    .libas-story-media { max-width: 650px; }
    .libas-story-copy { max-width: 700px; }
    .libas-lookbook-grid { grid-template-columns: 1fr 1fr; grid-template-rows: 520px 330px; }
    .libas-lookbook-large { grid-column: 1 / 3; grid-row: auto; }
    .libas-newsletter-grid { grid-template-columns: 1fr; gap: 30px; }
    .libas-trust-grid { grid-template-columns: repeat(2, 1fr); }
    .libas-trust-grid > div:nth-child(3) { border-left: 0; }
    .libas-trust-grid > div:nth-child(n+3) { border-top: 1px solid rgba(255,255,255,.12); }
    .libas-footer-grid { grid-template-columns: 1.3fr 1fr 1fr; gap: 34px; }
    .libas-footer-brand { grid-column: 1 / 4; }
    .libas-footer-contact { grid-column: auto; }
    .libas-post-grid { grid-template-columns: repeat(2, 1fr); }

    .woocommerce div.product div.images,
    .woocommerce div.product div.summary { width: 100%; float: none; }
    .woocommerce div.product div.images { margin-bottom: 34px; }
}

@media (max-width: 620px) {
    .libas-container { width: min(100% - 28px, var(--libas-max)); }
    .libas-narrow { width: min(100% - 32px, var(--libas-narrow)); }
    .libas-header-grid { grid-template-columns: 1fr 154px 1fr; min-height: 78px; gap: 8px; }
    .libas-logo img, .custom-logo { max-width: 152px; max-height: 66px; }
    .libas-header-actions { gap: 8px; }
    .libas-icon-link { padding: 5px 0; }
    .libas-icon-link .libas-icon { width: 19px; height: 19px; }
    .libas-header-actions .libas-icon-link[href*="my-account"],
    .libas-header-actions .libas-icon-link[href*="wp-login"] { display: none; }

    .libas-hero, .libas-hero-content { min-height: 690px; }
    .libas-hero-image { object-position: 72% center; }
    .libas-hero-wash { background: linear-gradient(180deg, rgba(248,244,237,.35) 0%, rgba(248,244,237,.72) 45%, rgba(248,244,237,.98) 79%, rgba(248,244,237,1) 100%); }
    .libas-hero-content { align-items: flex-end; }
    .libas-hero-copy { padding: 0 0 48px; }
    .libas-hero-copy h1 { font-size: 55px; }
    .libas-hero-text { font-size: 14px; }
    .libas-hero-actions { align-items: flex-start; flex-direction: column; gap: 18px; }
    .libas-editorial-strip-inner { font-size: 16px; }

    .libas-section { padding: 62px 0; }
    .libas-section-heading { margin-bottom: 30px; }
    .libas-section-heading-split { align-items: flex-start; flex-direction: column; gap: 8px; }
    .libas-product-grid, .woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 12px; }
    .libas-product-copy h3 { font-size: 12px; }
    .libas-product-category { font-size: 8px; }
    .libas-category-grid { grid-template-columns: 1fr; gap: 12px; }
    .libas-category-card { min-height: 470px; }
    .libas-feature-banner { min-height: 570px; align-items: flex-end; }
    .libas-feature-shade { background: linear-gradient(180deg, rgba(28,22,20,.12) 20%, rgba(28,22,20,.88) 82%); }
    .libas-feature-content { padding-bottom: 48px; }
    .libas-feature-content h2 { font-size: 52px; }
    .libas-story-media { padding: 0 14% 13% 0; }
    .libas-story-copy h2 { font-size: 44px; }
    .libas-promise-grid { grid-template-columns: 1fr; }
    .libas-promise-grid article,
    .libas-promise-grid article + article { border-left: 0; border-top: 1px solid rgba(255,255,255,.17); padding: 26px 0; }
    .libas-promise-grid article:first-child { border-top: 0; }
    .libas-promise-grid h3 { margin-top: 12px; }
    .libas-lookbook-grid { display: grid; grid-template-columns: 1fr; grid-template-rows: repeat(3, 430px); }
    .libas-lookbook-large { grid-column: auto; }
    .libas-lookbook-card strong { font-size: 34px; }
    .libas-newsletter-form { grid-template-columns: 1fr; }
    .libas-newsletter-form button { justify-content: flex-start; padding-left: 4px; }
    .libas-newsletter-status { position: static; grid-column: 1; padding-bottom: 8px; }
    .libas-trust-grid { grid-template-columns: 1fr 1fr; }
    .libas-trust-grid > div { min-height: 120px; align-items: flex-start; flex-direction: column; gap: 8px; padding: 18px 12px 18px 0; }
    .libas-trust-grid > div + div { padding-left: 12px; }
    .libas-footer-grid { grid-template-columns: 1fr 1fr; }
    .libas-footer-brand { grid-column: 1 / 3; }
    .libas-footer-contact { grid-column: 1 / 3; }
    .libas-footer-bottom-inner { align-items: flex-start; flex-direction: column; justify-content: center; padding: 20px 0; }
    .libas-form-row { grid-template-columns: 1fr; }
    .libas-post-grid { grid-template-columns: 1fr; }
    .libas-page-hero { padding: 58px 0 48px; }
    .libas-page-content { padding: 54px 0 72px; }
    .libas-commerce { padding: 42px 0 72px; }
    .woocommerce .woocommerce-result-count,
    .woocommerce .woocommerce-ordering { float: none; }
    .woocommerce .woocommerce-ordering { margin: 0 0 22px; }
    .woocommerce div.product form.cart { align-items: stretch; flex-wrap: wrap; }
    .woocommerce div.product form.cart .button { flex: 1 1 190px; }
}
