/* ==========================================================================
   INNEY — design tokens + base layout + shared components
   Class prefix: soa-. Page-specific rules live in assets/css/{page}.css
   ========================================================================== */

:root{
  --soa-accent:#E07A5F;
  --soa-accent-dark:#8E3E2F;
  --soa-line-rgb:142,62,47;

  --soa-bg:#FAF6F2;
  --soa-bg-deep:#FCF8F4;
  --soa-bg-alt:#F3E5D7;
  --soa-bg-card:#EAD6C0;

  --soa-ink:#29190F;
  --soa-ink-soft:#5b4334;
  --soa-ink-softer:#6b5240;
  --soa-muted:#9a8170;
  --soa-muted-2:#cbb29c;

  --soa-dark:#29190F;
  --soa-dark-fg:#F3E5D7;
  --soa-dark-fg-soft:#cbb29c;
  --soa-dark-card:#3a2419;

  --font-serif:'Cormorant Garamond',serif;
  --font-sans:'Hanken Grotesk',sans-serif;
  --font-mono:'Spline Sans Mono',monospace;
  --font-tifinagh:'Noto Sans Tifinagh',sans-serif;

  --ease:cubic-bezier(.16,.7,.2,1);
  --pad-x:clamp(20px,4vw,56px);
  --pad-y:clamp(56px,6vw,92px);
  --pad-y-lg:clamp(72px,8vw,116px);
}

/* ── reset ── */
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{background:var(--soa-bg);color:var(--soa-ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden;}
::selection{background:var(--soa-accent);color:var(--soa-bg-deep);}
img{display:block;max-width:100%;}
button{font:inherit;}
a{color:inherit;text-decoration:none;}
h1,h2,h3,p{margin:0;}
.soa-container{max-width:1500px;margin:0 auto;padding-left:var(--pad-x);padding-right:var(--pad-x);}
.soa-section{padding:var(--pad-y) 0;}
.soa-section--lg{padding:var(--pad-y-lg) 0;}
.soa-section--dark{background:var(--soa-dark);color:var(--soa-dark-fg);}
.soa-section--dark .soa-h1,.soa-section--dark .soa-h2,.soa-section--dark .soa-h3{color:var(--soa-dark-fg);}
.soa-section--dark .soa-lead{color:var(--soa-dark-fg-soft);}
.soa-section--alt{background:var(--soa-bg-alt);border-top:1px solid rgba(var(--soa-line-rgb),.12);border-bottom:1px solid rgba(var(--soa-line-rgb),.12);}

.soa-eyebrow{font-family:var(--font-mono);font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--soa-accent);margin-bottom:14px;display:block;}

/* ── reveal-on-scroll (see main.js) ── */
[data-reveal]{opacity:0;transform:translateY(26px);transition:opacity 1s var(--ease),transform 1s var(--ease);}
[data-reveal].is-visible{opacity:1;transform:none;}

/* ── shared interaction layer · CSS-variable driven so it always overrides inline defaults ──
   Hover = color change only (no shadow lift, no letter-spacing growth). */
.soa-fill{transition:background .4s var(--ease) !important;}
.soa-fill:hover{--bbg:var(--soa-accent-dark);}
.soa-out{transition:background .4s var(--ease),color .4s !important;}
.soa-out:hover{--obg:var(--soa-accent);--oc:var(--soa-bg-deep);}
.soa-ghost{transition:background .45s var(--ease),color .45s !important;}
.soa-ghost:hover{--abg:var(--soa-bg-alt);--ac:var(--soa-ink);}
.soa-chip{transition:background .35s,color .35s,border-color .35s !important;}
.soa-chip:hover,.soa-chip.is-active{--cbg:var(--soa-accent);--cc:var(--soa-bg-deep);}
.soa-soft{transition:color .35s !important;}
.soa-soft:hover{--mc:var(--soa-accent-dark);}
.soa-softd{transition:color .35s,letter-spacing .35s !important;}
.soa-softd:hover{--mc:var(--soa-accent);}
.soa-link{position:relative;transition:color .4s !important;}
.soa-link::after{content:"";position:absolute;left:0;bottom:-1px;height:1.5px;width:100%;background:var(--soa-accent);transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease);}
.soa-link:hover{--mc:var(--soa-accent-dark);}
.soa-link:hover::after{transform:scaleX(1);transform-origin:left;}
.soa-link.on{--mc:var(--soa-accent);}
.soa-link.on::after{transform:scaleX(1);}
.soa-menu{transition:color .4s,padding-left .4s var(--ease) !important;}
.soa-menu:hover{--mc:var(--soa-accent);--pl:16px;}
.soa-row{transition:padding-left .5s var(--ease),color .4s !important;}
.soa-row:hover{--rc:var(--soa-accent);}

/* ── buttons ── */
.soa-btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;padding:15px 28px;border:none;cursor:pointer;}
.soa-btn--sm{font-size:11px;padding:13px 22px;}
.soa-btn--fill{background:var(--bbg,var(--soa-accent));color:var(--soa-bg-deep);}
.soa-btn--outline{background:var(--obg,transparent);border:1px solid var(--soa-accent);color:var(--oc,var(--soa-accent));padding:15px 26px;}
.soa-btn--ghost{background:var(--abg,transparent);border:1px solid rgba(243,229,215,.4);color:var(--ac,var(--soa-dark-fg));padding:14px 26px;}
.soa-chip{font-family:var(--font-mono);font-size:11px;letter-spacing:.13em;text-transform:uppercase;cursor:pointer;padding:9px 17px;border-radius:999px;border:1px solid rgba(var(--soa-line-rgb),.28);background:var(--cbg,transparent);color:var(--cc,var(--soa-ink-soft));}
.soa-chip.is-active{border-color:transparent;}

/* ── header ── */
.soa-header{position:sticky;top:0;z-index:50;background:rgba(250,246,242,.88);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid rgba(var(--soa-line-rgb),.16);}
.soa-topbar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:7px var(--pad-x);border-bottom:1px solid rgba(var(--soa-line-rgb),.09);flex-wrap:wrap;}
.soa-topbar__tag{display:flex;align-items:center;gap:10px;font-family:var(--font-mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--soa-muted);}
.soa-topbar__right{display:flex;align-items:center;gap:14px;}
.soa-langswitch{display:flex;align-items:center;gap:5px;}
.soa-langswitch a{font-family:var(--font-mono);font-size:12px;letter-spacing:.1em;background:none;border:none;cursor:pointer;padding:3px;color:var(--mc,#a9947f);}
.soa-langswitch a.current{color:var(--soa-accent);font-weight:600;}
.soa-langswitch span{color:#cbb9a6;font-size:11px;}
.soa-topbar__wa{font-family:var(--font-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--soa-accent);transition:color .3s;}
.soa-topbar__wa:hover{color:var(--soa-accent-dark);}

.soa-navrow{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:clamp(11px,1.5vw,17px) var(--pad-x);}
.soa-logo{display:flex;align-items:baseline;gap:9px;background:none;border:none;cursor:pointer;padding:0;}
.soa-logo__name{font-family:var(--font-serif);font-weight:500;font-size:clamp(19px,1.9vw,27px);letter-spacing:.05em;color:var(--soa-ink);line-height:1;}
.soa-logo__mark{font-family:var(--font-tifinagh);font-size:13px;color:var(--soa-accent);letter-spacing:.1em;}
.soa-nav{display:flex;gap:clamp(16px,2.4vw,38px);align-items:center;}
.soa-nav a{font-family:var(--font-mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase;background:none;border:none;cursor:pointer;padding:6px 0;color:var(--mc,var(--soa-ink-soft));}
.soa-nav__item{position:relative;}
.soa-burger{background:none;border:none;cursor:pointer;display:flex;flex-direction:column;gap:5px;padding:8px 4px;}
.soa-burger span{display:block;width:26px;height:1.5px;background:var(--soa-ink);}
.soa-burger span:last-child{width:18px;}

@media (min-width:1024px){.soa-nav-wrap{display:flex;}.soa-burger{display:none;}}
@media (max-width:1023px){.soa-nav-wrap{display:none;}}

/* ── mega menu (same layout as the design; calm hovers) ── */
.soa-mega{position:absolute;top:100%;right:0;padding-top:15px;width:min(860px,92vw);z-index:60;}
.soa-mega__panel{background:var(--soa-bg);border:1px solid rgba(var(--soa-line-rgb),.16);box-shadow:0 38px 84px rgba(41,25,15,.27);display:grid;grid-template-columns:.92fr 1.55fr;overflow:hidden;}
.soa-mega__feature{position:relative;cursor:pointer;min-height:330px;background:var(--soa-bg-card);overflow:hidden;}
.soa-mega__feature-img{position:absolute;inset:0;background-size:cover;background-position:center;}
.soa-mega__feature-overlay{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:22px;background:linear-gradient(to top,rgba(41,25,15,.66),rgba(41,25,15,0) 62%);}
.soa-mega__feature-eyebrow{font-family:var(--font-mono);font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--soa-bg-alt);opacity:.85;}
.soa-mega__feature-name{font-family:var(--font-serif);font-size:32px;color:var(--soa-bg-deep);line-height:1;margin-top:7px;transition:color .3s;}
.soa-mega__feature:hover .soa-mega__feature-name{color:var(--soa-accent);}
.soa-mega__side{padding:clamp(18px,1.7vw,24px);}
.soa-mega__side-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:15px;border-bottom:1px solid rgba(var(--soa-line-rgb),.14);padding-bottom:12px;}
.soa-mega__chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px;}
/* category chips inside the mega menu: simple text/border color change on hover, no fill */
.soa-mega__chips .soa-chip{transition:color .3s,border-color .3s !important;}
.soa-mega__chips .soa-chip:hover{--cbg:transparent;--cc:var(--soa-accent);color:var(--soa-accent);border-color:var(--soa-accent);}
.soa-mega__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;}
.soa-mega__item-img{position:relative;overflow:hidden;aspect-ratio:1/1;background:var(--soa-bg-card);}
.soa-mega__item-img div{position:absolute;inset:0;background-size:cover;background-position:center;}
.soa-mega__item-name{font-family:var(--font-serif);font-size:15px;color:var(--soa-ink);margin-top:7px;line-height:1;transition:color .3s;}
.soa-mega__item:hover .soa-mega__item-name{color:var(--soa-accent);}

/* ── mobile menu overlay ── */
.soa-mobile-menu{position:fixed;inset:0;z-index:90;background:var(--soa-bg);display:none;flex-direction:column;padding:clamp(22px,6vw,44px);}
.soa-mobile-menu.is-open{display:flex;}
.soa-mobile-menu__top{display:flex;justify-content:space-between;align-items:center;margin-bottom:clamp(28px,7vw,52px);}
.soa-mobile-menu__close{background:none;border:none;cursor:pointer;font-family:var(--font-mono);font-size:14px;letter-spacing:.1em;color:var(--soa-ink);}
.soa-mobile-menu nav{display:flex;flex-direction:column;gap:clamp(10px,3vw,18px);}
.soa-mobile-menu nav a{text-align:left;background:none;border:none;cursor:pointer;font-family:var(--font-serif);font-size:clamp(34px,9vw,52px);color:var(--mc,var(--soa-ink));line-height:1.05;padding:0 0 0 var(--pl,0);}
.soa-mobile-menu__foot{margin-top:auto;display:flex;justify-content:space-between;align-items:center;gap:16px;border-top:1px solid rgba(var(--soa-line-rgb),.18);padding-top:22px;flex-wrap:wrap;}

/* ── footer ── */
.soa-footer{background:var(--soa-dark);color:#E8D8C7;padding:clamp(50px,7vw,100px) var(--pad-x) 38px;}
.soa-footer__top{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:clamp(30px,4vw,64px);align-items:start;padding-bottom:clamp(36px,5vw,64px);border-bottom:1px solid rgba(232,216,199,.16);}
@media (max-width:900px){.soa-footer__top{grid-template-columns:1fr 1fr;}}
@media (max-width:600px){.soa-footer__top{grid-template-columns:1fr;}}
.soa-footer__brand{display:flex;align-items:baseline;gap:12px;}
.soa-footer__brand-name{font-family:var(--font-serif);font-weight:500;font-size:clamp(32px,4.2vw,60px);letter-spacing:.02em;color:var(--soa-bg-alt);line-height:.92;}
.soa-footer__tagline{max-width:34ch;margin:22px 0 0;font-family:var(--font-serif);font-style:italic;font-size:clamp(18px,1.6vw,24px);line-height:1.4;color:var(--soa-dark-fg-soft);}
.soa-footer__heading{font-family:var(--font-mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--soa-accent);margin-bottom:18px;}
.soa-footer__links{display:flex;flex-direction:column;gap:12px;align-items:flex-start;}
.soa-footer__links a{background:none;border:none;cursor:pointer;color:var(--mc,#E8D8C7);font-size:15px;padding:0;}
.soa-footer__contact{display:flex;flex-direction:column;gap:10px;font-family:var(--font-mono);font-size:12px;letter-spacing:.04em;color:var(--soa-dark-fg-soft);}
.soa-footer__bottom{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding-top:28px;font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#8f7864;}

/* ── generic product-card used across pages (grid variant) ── */
.soa-card{cursor:pointer;}
.soa-card__media{position:relative;overflow:hidden;background:var(--soa-bg-card);aspect-ratio:4/5;}
.soa-card__media img{width:100%;height:100%;object-fit:cover;transform:scale(var(--z,1));transition:transform 1.3s var(--ease);}
.soa-card:hover .soa-card__media img{--z:1.06;}
.soa-card__overlay{position:absolute;inset:0;display:flex;align-items:flex-end;justify-content:center;padding:18px;background:linear-gradient(to top,rgba(41,25,15,.5),rgba(41,25,15,0) 55%);opacity:0;transition:opacity .5s ease;}
.soa-card:hover .soa-card__overlay{opacity:1;}
.soa-card__overlay span{font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--soa-bg-deep);background:var(--soa-accent);padding:9px 16px;transform:translateY(4px);transition:transform .5s var(--ease);}
.soa-card:hover .soa-card__overlay span{transform:translateY(0);}
.soa-card__meta{display:flex;justify-content:space-between;align-items:baseline;margin-top:15px;gap:12px;}
.soa-card__num{font-family:var(--font-mono);font-size:10px;letter-spacing:.16em;color:var(--soa-accent);margin-bottom:6px;}
.soa-card__name{font-family:var(--font-serif);font-size:clamp(23px,1.9vw,29px);color:var(--soa-ink);line-height:1.05;}
.soa-card__sub{font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--soa-muted);margin-top:7px;}
.soa-card__dims{font-family:var(--font-mono);font-size:10px;color:var(--soa-muted);white-space:nowrap;}

.soa-g2{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,90px);align-items:center;}
.soa-g3{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,56px);}
@media (max-width:1080px){.soa-g3{grid-template-columns:1fr 1fr;}}
@media (max-width:760px){.soa-g2,.soa-g3{grid-template-columns:1fr;}}

.soa-h1{font-family:var(--font-serif);font-weight:400;color:var(--soa-ink);margin:0;}
.soa-h2{font-family:var(--font-serif);font-weight:400;color:var(--soa-ink);margin:0;}
.soa-lead{font-size:clamp(15px,1.1vw,18px);line-height:1.75;color:var(--soa-ink-soft);}
