/* Olive Wood SaaS — theme stylesheet (design tokens + global layout).
   Widgets/cards/buttons/forms come from the Olive Wood Core plugin (widgets.css). */
:root{
  /* Brand palette restored (olive/wood identity) on top of the SaaS-era structure: Inter
     typography, crisper radii/shadows and the whole-site layout stay as redesigned — only the
     colors go back to the original olive/wood/sand/cream tokens. */
  --owc-ink:#1E2318;--owc-olive-900:#262D1B;--owc-olive:#3F4A2A;--owc-olive-soft:#7A8E5F;--owc-olive-tint:#E8EDDF;
  --owc-wood:#8B5A3C;--owc-wood-dark:#5C3A26;--owc-wood-light:#D9A878;--owc-sand:#F1E6D3;--owc-cream:#F8F4EA;--owc-paper:#FFFDF9;
  --owc-muted:#5B6250;--owc-line:rgba(38,45,27,.13);
  --owc-font-display:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;--owc-font:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --ows-header-h:76px;
  --ows-adminbar-h:0px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--ows-header-h) + var(--ows-adminbar-h) + 20px)}
body.ows{margin:0;overflow-x:clip;background:var(--owc-paper);color:var(--owc-ink);font:400 1rem/1.65 var(--owc-font);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,svg,video{max-width:100%;height:auto}
a{color:var(--owc-wood-dark)}
h1,h2,h3,h4{font-family:var(--owc-font-display);color:var(--owc-olive-900);line-height:1.15;letter-spacing:-.015em}
::selection{background:var(--owc-wood-light);color:var(--owc-ink)}
.screen-reader-text{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.ows-skip{position:absolute;left:12px;top:-60px;z-index:1000;padding:12px 18px;background:var(--owc-olive);color:#fff;border-radius:10px;text-decoration:none;transition:top .2s}
.ows-skip:focus{top:12px}
.ows-main{outline:0;min-height:60vh}
.ows-wrap{width:100%;max-width:1200px;margin-inline:auto;padding-inline:clamp(20px,4vw,40px)}
:focus-visible{outline:3px solid var(--owc-wood-light);outline-offset:3px}

/* Announcement bar */
.ows-announce{background:var(--owc-olive-900);color:#F3EFE3;font-size:.82rem}
.ows-announce .ows-wrap{display:flex;align-items:center;justify-content:center;gap:10px;padding-block:9px}
.ows-announce p{margin:0;text-align:center}.ows-announce .owc-icon{color:var(--owc-wood-light)}

/* Header */
.ows-header{position:sticky;top:0;z-index:100;background:rgba(255,253,249,.82);-webkit-backdrop-filter:saturate(1.4) blur(14px);backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid transparent;transition:border-color .3s,box-shadow .3s,background .3s}
.ows-header.is-stuck{border-color:var(--owc-line);box-shadow:0 8px 30px -18px rgba(38,45,27,.3);background:rgba(255,253,249,.94)}
.admin-bar{--ows-adminbar-h:32px}
@media(max-width:782px){.admin-bar{--ows-adminbar-h:46px}}
/* Logged-in users: keep the sticky header below the WordPress admin bar (it used to slide under it). */
.admin-bar .ows-header{top:var(--ows-adminbar-h)}
@media(max-width:600px){.admin-bar #wpadminbar{position:fixed}}
.ows-header__bar{display:flex;align-items:center;gap:18px;min-height:var(--ows-header-h)}
.ows-logo{display:inline-flex;flex:none}.ows-logo img{display:block;width:auto;height:48px}
.ows-nav{display:flex;align-items:center;flex:1;justify-content:flex-end}
.ows-menu{display:flex;gap:6px;list-style:none;margin:0;padding:0}
.ows-menu a{white-space:nowrap;display:block;padding:.6em .85em;border-radius:999px;font-size:.92rem;font-weight:500;color:var(--owc-olive-900);text-decoration:none;transition:background .2s,color .2s}
.ows-menu a:hover,.ows-menu .current-menu-item>a,.ows-menu .current_page_item>a,.ows-menu .current-menu-ancestor>a{background:var(--owc-olive-tint);color:var(--owc-olive)}
.ows-menu li{position:relative}
.ows-menu .sub-menu{position:absolute;left:0;top:100%;min-width:220px;margin:8px 0 0;padding:8px;list-style:none;background:#fff;border:1px solid var(--owc-line);border-radius:var(--owc-r,14px);box-shadow:0 20px 40px -16px rgba(38,45,27,.25);opacity:0;visibility:hidden;transform:translateY(6px);transition:all .25s}
.ows-menu li:hover>.sub-menu,.ows-menu li:focus-within>.sub-menu{opacity:1;visibility:visible;transform:none}
.ows-nav .ows-nav__cta{display:none}
.ows-header__cta{margin-left:8px}
.ows-burger{display:none;position:relative;width:46px;height:46px;border:1px solid var(--owc-line);border-radius:14px;background:#fff;cursor:pointer;padding:0}
.ows-burger i{position:absolute;left:13px;right:13px;height:2px;background:var(--owc-olive);border-radius:2px;transition:transform .3s,opacity .2s,top .3s}
.ows-burger i:nth-of-type(1){top:16px}.ows-burger i:nth-of-type(2){top:22px}.ows-burger i:nth-of-type(3){top:28px}
.ows-burger[aria-expanded=true] i:nth-of-type(1){top:22px;transform:rotate(45deg)}
.ows-burger[aria-expanded=true] i:nth-of-type(2){opacity:0}
.ows-burger[aria-expanded=true] i:nth-of-type(3){top:22px;transform:rotate(-45deg)}
@media(max-width:1180px){
  .ows-burger{display:block;margin-left:auto}
  /* !important: same specificity as the plugin's unconditional .owc-btn{display:inline-flex},
     which loads after this stylesheet and was winning the cascade, keeping this button visible
     on mobile even though it's redundant there (the bottom tab bar already has "Get a quote"). */
  .ows-header__cta{display:none!important}
  .ows-nav{position:fixed;inset:calc(var(--ows-header-h) + var(--ows-adminbar-h) + var(--ows-announce-h,0px)) 0 0 0;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:20px;padding:24px clamp(20px,4vw,40px) 40px;background:var(--owc-paper);overflow-y:auto;opacity:0;transform:translateY(-14px);visibility:hidden;transition:opacity .3s,transform .4s cubic-bezier(.22,.8,.24,1),visibility 0s .4s;z-index:99}
  .ows-nav.is-open{opacity:1;transform:none;visibility:visible;transition:opacity .3s,transform .4s cubic-bezier(.22,.8,.24,1)}
  .ows-menu{flex-direction:column;gap:2px}
  .ows-menu a{padding:.9em .4em;border-radius:12px;font:600 1.35rem var(--owc-font-display)}
  .ows-menu .sub-menu{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;padding:0 0 0 14px;margin:0}
  .ows-nav .ows-nav__cta{display:inline-flex;align-self:flex-start}
  body.ows-nav-open{overflow:hidden}
  /* Root cause of the mobile menu rendering as a ~64px strip instead of a full-screen overlay:
     .ows-header has backdrop-filter (line 34), and per spec backdrop-filter/filter establish a
     new containing block for fixed-position descendants -- so #ows-nav (position:fixed) was being
     positioned/sized relative to the ~76px-tall header box instead of the viewport, clamping its
     height to the box's own small dimension. Disabling the filter only while the nav is open removes
     that containing block (no visual loss: the opaque full-screen nav panel covers the header anyway). */
  body.ows-nav-open .ows-header{-webkit-backdrop-filter:none;backdrop-filter:none}
}

/* Footer */
.ows-footer{background:var(--owc-olive-900);color:rgba(243,239,227,.8);font-size:.95rem}
.ows-footer a{color:inherit;text-decoration:none}.ows-footer a:hover{color:#fff;text-decoration:underline}
.ows-footer__grid{display:grid;gap:40px;padding-block:clamp(48px,7vw,88px)}
@media(min-width:900px){.ows-footer__grid{grid-template-columns:1.6fr 1fr 1fr 1.3fr}}
@media(min-width:560px) and (max-width:899px){.ows-footer__grid{grid-template-columns:1fr 1fr}.ows-footer__brand{grid-column:1/-1}}
.ows-footer__brand p{max-width:38ch;margin:18px 0}
.ows-footer .ows-logo img{height:48px}
.ows-footer h2{margin:0 0 16px;font:600 .78rem var(--owc-font);letter-spacing:.14em;text-transform:uppercase;color:var(--owc-wood-light)}
.ows-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.ows-footer__col li{display:flex;gap:10px;align-items:flex-start}.ows-footer__col li .owc-icon{margin-top:.25em;color:var(--owc-wood-light)}
.ows-footer .owc-btn{margin-top:20px}
.ows-footer .owc-btn--light{color:var(--owc-olive-900)}
.ows-social{display:flex!important;flex-direction:row;gap:10px!important}
.ows-social a{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;border:1px solid rgba(243,239,227,.25)}
.ows-social a:hover{background:rgba(255,255,255,.1);text-decoration:none}
.ows-footer__legal{border-top:1px solid rgba(243,239,227,.14);font-size:.84rem}
.ows-footer__legal .ows-wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 24px;padding-block:20px}
.ows-footer__legal p{margin:0}
.ows-wa{position:fixed;right:20px;bottom:20px;z-index:90;display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:#1fa855;color:#fff;box-shadow:0 12px 28px -8px rgba(31,168,85,.6);transition:transform .3s}
.ows-wa:hover{transform:scale(1.08)}

/* Generic content */
.ows-content{padding-block:clamp(48px,7vw,96px)}
.ows-content--wide{max-width:1200px}
.ows-pagehead{margin-bottom:36px}.ows-pagehead h1{margin:0;font-size:clamp(2rem,1.2rem + 3vw,3.4rem)}
.ows-prose{max-width:72ch;font-size:1.05rem}
.ows-prose h2,.ows-prose h3{margin:1.6em 0 .5em}
.ows-prose img{border-radius:18px}
.ows-prose ul{padding-left:1.2em}
.ows-hero-img{margin:0 0 36px}.ows-hero-img img{border-radius:24px;width:100%}
.ows-postcard{overflow:hidden}.ows-postcard__media img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover}
.ows-postcard__body{padding:22px 24px 26px}.ows-postcard h2{font-size:1.25rem;margin:0 0 8px}.ows-postcard h2 a{text-decoration:none;color:inherit}.ows-postcard p{margin:0;color:var(--owc-muted)}
.pagination{margin-top:48px}.pagination .nav-links{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
.page-numbers{display:grid;place-items:center;min-width:44px;height:44px;padding-inline:14px;border:1px solid var(--owc-line);border-radius:12px;text-decoration:none;color:var(--owc-olive);font-weight:600}
.page-numbers.current,.page-numbers:hover{background:var(--owc-olive);color:#fff;border-color:var(--owc-olive)}
.search-form{display:flex;gap:10px;margin-top:20px}.search-form input[type=search]{flex:1;padding:.9em 1em;border:1.5px solid var(--owc-line);border-radius:12px}
.search-form input[type=submit]{padding:.9em 1.4em;border:0;border-radius:999px;background:var(--owc-wood);color:#fff;font-weight:600;cursor:pointer}
.ows-tab{padding:.6em 1.3em;border-radius:999px;border:1px solid var(--owc-line);background:#fff;color:var(--owc-olive);font:600 .86rem var(--owc-font);text-decoration:none;transition:all .25s}
.ows-tab:hover{border-color:var(--owc-olive)}.ows-tab.is-active{background:var(--owc-olive);border-color:var(--owc-olive);color:#fff}

/* Single product */
.ows-product>*,.ows-detail>*{min-width:0}
.ows-product{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(28px,5vw,72px);align-items:start}
@media(min-width:900px){.ows-product{grid-template-columns:1.05fr .95fr}.ows-product__info{position:sticky;top:calc(var(--ows-header-h) + var(--ows-adminbar-h) + 24px)}}
.ows-gallery__main{position:relative;border-radius:var(--owc-r-lg,30px);overflow:hidden;background:#fff;border:1px solid var(--owc-line);aspect-ratio:1/1;padding:28px;box-sizing:border-box}
.ows-gallery__main img{display:block;width:100%;height:100%;object-fit:contain;transition:opacity .25s}
.ows-gallery__thumbs{list-style:none;margin:14px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:10px}
.ows-gallery__thumbs button{display:block;width:100%;padding:6px;box-sizing:border-box;border:2px solid transparent;border-radius:14px;overflow:hidden;background:#fff;cursor:pointer;opacity:.75;transition:all .25s;aspect-ratio:1}
.ows-gallery__thumbs button:hover,.ows-gallery__thumbs button.is-active{opacity:1;border-color:var(--owc-wood)}
.ows-gallery__thumbs img{display:block;width:100%;height:100%;object-fit:contain}
.ows-product__info .owc-title{font-size:clamp(2rem,1.3rem + 2.4vw,3rem)}
.ows-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;margin:28px 0 0;border:1px solid var(--owc-line);border-radius:18px;overflow:hidden;background:var(--owc-line)}
.ows-facts>div{background:#fff;padding:14px 18px}
.ows-facts dt{display:flex;align-items:center;gap:6px;font-size:.74rem;text-transform:uppercase;letter-spacing:.08em;color:var(--owc-muted);font-weight:600}
.ows-facts dt .owc-icon{color:var(--owc-wood)}
.ows-facts dd{margin:4px 0 0;font-weight:600;color:var(--owc-olive-900)}
.ows-detail{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(32px,5vw,80px)}
@media(min-width:900px){.ows-detail{grid-template-columns:1.1fr .9fr}}

/* Elementor compat: full-bleed Elementor content inside our main */
.elementor-page .ows-main,.elementor-editor-active .ows-main{overflow:visible}
.ows-main>.elementor,.ows-main>.elementor>.e-con,.ows-main .e-con-full{max-width:none}
@media print{.ows-header,.ows-footer,.ows-wa,.ows-announce{display:none}}

/* Language switcher */
.ows-lang{display:flex;gap:2px;list-style:none;margin:0 0 0 4px;padding:3px;border:1px solid var(--owc-line);border-radius:999px;background:#fff}
.ows-lang a{display:block;padding:.35em .8em;border-radius:999px;font-size:.78rem;font-weight:700;letter-spacing:.06em;color:var(--owc-muted);text-decoration:none}
.ows-lang a:hover{color:var(--owc-olive)}
.ows-lang a.is-current{background:var(--owc-olive);color:#fff}
.ows-nav__lang{display:none}
@media(max-width:1180px){.ows-header__bar>.ows-lang{display:none}.ows-nav__lang{display:block}}

/* Mobile bottom tab bar (app-like primary navigation) — hidden on desktop */
.ows-tabbar{display:none}
@media(max-width:640px){
  .ows-tabbar{position:fixed;left:0;right:0;bottom:0;z-index:95;display:flex;justify-content:space-around;align-items:stretch;background:rgba(255,253,249,.96);-webkit-backdrop-filter:saturate(1.4) blur(14px);backdrop-filter:saturate(1.4) blur(14px);border-top:1px solid var(--owc-line);padding:4px 4px calc(4px + env(safe-area-inset-bottom));box-shadow:0 -8px 24px -18px rgba(38,45,27,.25)}
  .ows-tabbar__item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;flex:1;padding:6px 2px;border-radius:12px;color:var(--owc-muted);text-decoration:none;font:600 .66rem var(--owc-font);line-height:1.2}
  .ows-tabbar__item .owc-icon{width:22px;height:22px}
  .ows-tabbar__item.is-active,.ows-tabbar__item:hover{color:var(--owc-olive)}
  body.ows{padding-bottom:calc(60px + env(safe-area-inset-bottom))}
  .ows-wa{bottom:calc(60px + env(safe-area-inset-bottom) + 14px)}
}

/* Products page lifestyle band */
.ows-lifestyle__grid{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}
.ows-lifestyle__item{margin:0;overflow:hidden;border-radius:var(--owc-r-lg,20px);background:var(--owc-sand,#F1E6D3);box-shadow:var(--owc-shadow,0 12px 32px -12px rgba(38,45,27,.25))}
.ows-lifestyle__item img{display:block;width:100%;height:100%;object-fit:cover}
@media(min-width:800px){.ows-lifestyle__grid{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:stretch}.ows-lifestyle__item{aspect-ratio:auto}.ows-lifestyle__item img{aspect-ratio:auto;max-height:520px}}
