/* ============================================================
   BASE — design tokens, typography, nav, footer, theme toggle
   Shared across every page on the site.
   ============================================================ */

:root{
  --plum:#4A1040; --plum-deep:#2E0928; --plum-soft:#6B2159;
  --gold:#C9A84C; --gold-deep:#9a7b2b; --gold-line:rgba(201,168,76,.30);
  --cream:#FAF5F7; --ink:#3A2733; --gray:#8b8189; --rose:#c9a8b6;
  --plum-text:#4A1040;

  --serif:"Cormorant Garamond", Georgia, serif;
  --sans:"DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
  --edge: clamp(1.5rem, 6vw, 7rem);
  --maxw: 1280px;

  /* theme tokens (dark = default) */
  --on-deep:#FAF5F7;
  --on-deep-rgb:250,245,247;
  --plum-deep-rgb:46,9,40;
  --hero-bg:linear-gradient(158deg, var(--plum-deep) 0%, var(--plum) 60%, #3d0e35 100%);
  --hero-overlay:radial-gradient(140% 120% at 50% 100%, transparent 52%, rgba(0,0,0,.42)),
    radial-gradient(120% 90% at 80% 12%, rgba(107,33,89,.5), transparent 55%);
  --surface-deep-grad:linear-gradient(160deg,var(--plum-deep),var(--plum));
  --img-filter:grayscale(.4) contrast(1.05) brightness(.92) saturate(1.05);
  --img-tint:linear-gradient(160deg, rgba(46,9,40,.35), rgba(74,16,64,.12));
  --hero-img-filter:contrast(1.06) saturate(1.12) brightness(1.03);
  --hero-img-tint:linear-gradient(160deg, rgba(46,9,40,.06), rgba(74,16,64,0));
}
:root[data-theme="light"]{
  --plum-deep:#F7EDF0; --plum:#EFDCE4; --plum-soft:#E4CDD8;
  --cream:#EFE2E6;
  --on-deep:var(--ink);
  --on-deep-rgb:58,39,51;
  --plum-deep-rgb:247,237,240;
  --gold-line:rgba(201,168,76,.45);
  --hero-bg:linear-gradient(158deg, #F7EDF0 0%, #EFDCE4 55%, #E7CBD6 100%);
  --hero-overlay:radial-gradient(140% 120% at 50% 100%, transparent 62%, rgba(74,16,64,.05)),
    radial-gradient(120% 90% at 80% 12%, rgba(201,168,76,.12), transparent 55%);
  --surface-deep-grad:linear-gradient(160deg,#F7EDF0,#EFDCE4);
  --img-filter:grayscale(.15) contrast(1.02) brightness(1.04) saturate(1.05);
  --img-tint:linear-gradient(160deg, rgba(247,237,240,.28), rgba(201,168,76,.08));
  --hero-img-filter:contrast(1.04) saturate(1.1) brightness(1.05);
  --hero-img-tint:linear-gradient(160deg, rgba(247,237,240,.05), rgba(201,168,76,0));
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;background:var(--plum-deep);color:var(--on-deep);font-family:var(--sans);
  font-weight:400;font-size:1.02rem;line-height:1.75;-webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;overflow-x:hidden;
  transition:background .6s ease,color .6s ease;
}
a{color:inherit;text-decoration:none;}
img{display:block;max-width:100%;}
.wrap{max-width:var(--maxw);margin:0 auto;padding-inline:var(--edge);}

.kicker{font-family:var(--sans);font-weight:600;font-size:.86rem;letter-spacing:.3em;
  text-transform:uppercase;margin:0;color:var(--gold);}
.display{font-family:var(--serif);font-weight:500;line-height:1;margin:0;}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;height:56px;padding:0 34px;
  border-radius:28px;font-family:var(--sans);font-weight:600;font-size:.76rem;letter-spacing:.16em;
  text-transform:uppercase;border:1px solid transparent;cursor:pointer;
  transition:transform .4s cubic-bezier(.2,.7,.2,1),background .4s,color .4s,border-color .4s;white-space:nowrap;}
.btn-gold{background:var(--gold);color:var(--on-gold,#2E0928);}
.btn-gold:hover{transform:translateY(-2px);background:#d6b85f;}
.btn-line{background:transparent;color:var(--on-deep);border-color:var(--gold-line);}
.btn-line:hover{border-color:var(--gold);color:var(--gold);}
.txtlink{font-family:var(--sans);font-weight:500;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;
  display:inline-flex;align-items:center;gap:.6rem;color:inherit;opacity:.75;transition:opacity .3s,gap .3s;}
.txtlink:hover{opacity:1;gap:.9rem;}
.txtlink .ar{color:var(--gold);}

/* nav */
header.nav{position:fixed;top:0;left:0;right:0;z-index:50;transition:background .5s,padding .5s,border-color .5s;border-bottom:1px solid transparent;}
header.nav .wrap{display:flex;align-items:center;justify-content:space-between;padding-block:1.5rem;
  max-width:none;padding-inline:clamp(1.5rem,4vw,3.5rem);}
header.nav.scrolled{background:rgba(var(--plum-deep-rgb),.9);backdrop-filter:blur(16px);border-bottom-color:var(--gold-line);}
header.nav.scrolled .wrap{padding-block:1rem;}

.brand{display:inline-block;position:relative;height:46px;width:147px;vertical-align:middle;transition:height .5s,width .5s;}
.brand .logo,.brand .logo-dark{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:left center;display:block;}
.brand .logo-dark{opacity:0;pointer-events:none;transition:opacity .3s;}
:root[data-theme="light"] .brand .logo{opacity:0;}
:root[data-theme="light"] .brand .logo-dark{opacity:1;}
header.nav.scrolled .brand{height:40px;width:128px;}

nav.links{display:flex;align-items:center;gap:2.4rem;}
nav.links a.navlink{font-weight:500;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(var(--on-deep-rgb),.78);transition:color .3s;position:relative;}
nav.links a.navlink:hover{color:var(--on-deep);}
nav.links a.navlink::after{content:"";position:absolute;left:0;bottom:-7px;height:1px;width:0;background:var(--gold);transition:width .4s;}
nav.links a.navlink:hover::after{width:100%;}
.nav-cta{height:44px;padding:0 24px;}
.menu-btn{display:none;background:none;border:none;color:var(--on-deep);cursor:pointer;padding:6px;}
.menu-btn svg{width:26px;height:26px;}

/* theme toggle: sun = dark mode (click to go light), moon = light mode (click to go dark) */
.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;
  border:1px solid var(--gold-line);border-radius:50%;background:transparent;color:var(--gold);
  cursor:pointer;transition:border-color .3s,transform .4s cubic-bezier(.2,.7,.2,1);margin-left:1.6rem;flex:none;}
.theme-toggle:hover{border-color:var(--gold);transform:rotate(20deg);}
.theme-toggle svg{width:17px;height:17px;}
.theme-toggle .moon{display:none;}
.theme-toggle .sun{display:block;}
:root[data-theme="light"] .theme-toggle .sun{display:none;}
:root[data-theme="light"] .theme-toggle .moon{display:block;}

@media(max-width:900px){
  nav.links{position:fixed;inset:0 0 0 auto;width:min(82vw,340px);background:var(--plum-deep);flex-direction:column;
    align-items:flex-start;justify-content:center;gap:2rem;padding:0 2.4rem;transform:translateX(100%);
    transition:transform .45s ease;border-left:1px solid var(--gold-line);z-index:60;}
  nav.links.open{transform:none;}
  nav.links .nav-cta{margin-top:.8rem;}
  nav.links .theme-toggle{margin:.8rem 0 0;}
  .menu-btn{display:inline-flex;z-index:61;}
}

/* footer */
footer.site{background:var(--plum-deep);border-top:1px solid var(--gold-line);padding-block:clamp(3.5rem,7vh,5rem) 2.4rem;transition:background .6s ease;}
footer.site .top{display:flex;justify-content:space-between;gap:2.5rem;flex-wrap:wrap;padding-bottom:2.6rem;align-items:flex-start;}
footer.site .brand{height:42px;width:134px;}
footer.site .cols{display:flex;gap:4rem;flex-wrap:wrap;}
footer.site h4{font-size:.62rem;letter-spacing:.26em;text-transform:uppercase;color:var(--gold);margin:0 0 1.2rem;font-weight:600;}
footer.site ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.7rem;}
footer.site ul a{font-size:.88rem;color:rgba(var(--on-deep-rgb),.72);transition:color .3s;}
footer.site ul a:hover{color:var(--on-deep);}
.socials{display:flex;gap:.8rem;}
.socials a{width:38px;height:38px;border:1px solid var(--gold-line);border-radius:50%;display:grid;place-items:center;color:rgba(var(--on-deep-rgb),.8);transition:border-color .3s,color .3s,background .3s;}
.socials a:hover{border-color:var(--gold);background:var(--gold);color:var(--on-gold,#2E0928);}
.socials svg{width:16px;height:16px;}
footer.site .base{padding-top:2rem;border-top:1px solid var(--gold-line);display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(var(--on-deep-rgb),.42);}

/* shared reveal-on-scroll (used by pages that opt in) */
.reveal{opacity:0;transform:translateY(24px);transition:opacity 1s cubic-bezier(.2,.7,.2,1),transform 1s cubic-bezier(.2,.7,.2,1);}
.reveal.in{opacity:1;transform:none;}
.reveal.d1{transition-delay:.1s;} .reveal.d2{transition-delay:.2s;} .reveal.d3{transition-delay:.3s;} .reveal.d4{transition-delay:.4s;}

@media(prefers-reduced-motion:reduce){
  *{animation:none !important;}
  .reveal{opacity:1;transform:none;transition:none;}
  html{scroll-behavior:auto;}
}
