/* ================= TOKENS ================= */
:root{
  --ivory:#faf6ef;
  --ivory-2:#f4ecdf;
  --sand:#e6d5ba;
  --sand-deep:#d8c19c;
  --plum:#3a1f34;
  --plum-deep:#2a1526;
  --plum-800:#33192e;
  --plum-glow:#5c3350;
  --gold:#b8935a;
  --gold-deep:#9c7b45;
  --rose:#d9a9a3;
  --rose-deep:#c68e88;
  --sage:#93a883;
  --ink:#3a2236;
  --ink-soft:#6f5863;
  --cream-text:#f4ece2;
  --lav-soft:#cdb9c4;
  --serif:'Cormorant Garamond', Georgia, serif;
  --sans:'Hanken Grotesk', system-ui, sans-serif;
  --maxw:1200px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--sans);background:var(--ivory);color:var(--ink);-webkit-font-smoothing:antialiased;overflow-x:hidden;line-height:1.65}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
a:hover{color:var(--gold-deep)}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 40px}
h1,h2,h3,h4{font-family:var(--serif);font-weight:500;line-height:1.06;letter-spacing:.005em}
.it{font-style:italic}
.serif{font-family:var(--serif)}
p{text-wrap:pretty}

.eyebrow{font-family:var(--sans);font-size:12px;letter-spacing:.34em;text-transform:uppercase;color:var(--gold-deep);font-weight:500;display:inline-flex;align-items:center;gap:14px}
.eyebrow.center{justify-content:center}
.eyebrow.on-dark{color:var(--gold)}
.eyebrow::before{content:"";width:26px;height:1px;background:currentColor;opacity:.7}
.eyebrow.center::after{content:"";width:26px;height:1px;background:currentColor;opacity:.7}

.reveal{opacity:0;transform:translateY(28px);transition:opacity 1.1s cubic-bezier(.2,.7,.2,1),transform 1.1s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

/* ================= BUTTONS ================= */
.btn-solid{display:inline-flex;align-items:center;gap:10px;background:var(--ivory);color:var(--plum-deep);border-radius:40px;padding:17px 40px;font-size:12.5px;letter-spacing:.26em;text-transform:uppercase;font-weight:600;transition:transform .4s,background .4s,box-shadow .4s;box-shadow:0 10px 40px rgba(20,8,26,.25)}
.btn-solid:hover{transform:translateY(-2px);background:#fff;color:var(--plum-deep);box-shadow:0 16px 48px rgba(20,8,26,.35)}
.btn-solid.dark{background:var(--plum);color:var(--ivory)}
.btn-solid.dark:hover{background:var(--plum-deep);color:var(--ivory)}
.btn-outline{display:inline-flex;align-items:center;gap:10px;border:1px solid rgba(58,34,54,.35);border-radius:40px;padding:15px 34px;font-size:12px;letter-spacing:.24em;text-transform:uppercase;font-weight:600;color:var(--ink);transition:background .35s,color .35s,border-color .35s}
.btn-outline:hover{background:var(--ink);color:var(--ivory);border-color:var(--ink)}
.btn-outline.on-dark{border-color:rgba(244,236,226,.4);color:var(--cream-text)}
.btn-outline.on-dark:hover{background:var(--cream-text);color:var(--plum-deep)}
.btn-text{color:var(--ink);font-size:12.5px;letter-spacing:.24em;text-transform:uppercase;font-weight:500;display:inline-flex;align-items:center;gap:9px;transition:color .3s,gap .3s}
.btn-text:hover{color:var(--gold-deep);gap:14px}
.btn-text.on-dark{color:var(--cream-text)}
.btn-text.on-dark:hover{color:var(--gold)}

/* ================= NAV ================= */
.nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:26px 40px;transition:background .5s ease,padding .4s ease,box-shadow .5s ease}
.nav.scrolled{background:rgba(31,15,40,.9);backdrop-filter:blur(14px);padding:16px 40px;box-shadow:0 1px 0 rgba(255,255,255,.06)}
.nav.on-light{background:rgba(250,246,239,.9);backdrop-filter:blur(10px);box-shadow:0 1px 0 rgba(58,34,54,.06)}
.brand{font-family:var(--serif);font-size:26px;color:#f4ece2;letter-spacing:.01em}
.nav.on-light .brand{color:var(--plum)}
.brand .it{color:var(--gold);font-weight:500}
.nav-links{display:flex;align-items:center;gap:30px;list-style:none}
.nav-links a{font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:#e9dfd4;font-weight:500;opacity:.85;transition:opacity .3s,color .3s}
.nav.on-light .nav-links a{color:var(--ink)}
.nav-links a:hover,.nav-links a.active{opacity:1;color:var(--gold-deep)}
.nav-cta{border:1px solid rgba(232,221,205,.5);color:#f0e7da;border-radius:40px;padding:11px 24px;font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;font-weight:500;transition:background .35s,border-color .35s,color .35s;white-space:nowrap}
.nav.on-light .nav-cta{border-color:rgba(58,34,54,.3);color:var(--ink)}
.nav-cta:hover{background:var(--gold);border-color:var(--gold);color:#241328}
.burger{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:8px}
.burger span{width:24px;height:1.6px;background:#f0e7da;display:block;transition:.3s}
.nav.on-light .burger span{background:var(--ink)}
.mobile-menu{position:fixed;inset:0;z-index:99;background:rgba(20,9,26,.97);backdrop-filter:blur(8px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:26px;opacity:0;pointer-events:none;transition:opacity .45s}
.mobile-menu.open{opacity:1;pointer-events:auto}
.mobile-menu a{font-family:var(--serif);font-size:28px;color:#efe5da}
.mobile-menu a .num{font-family:var(--sans);font-size:12px;color:var(--gold);letter-spacing:.2em;margin-right:10px;vertical-align:super}

/* ================= PAGE HERO (inner pages) ================= */
.page-hero{position:relative;padding:180px 0 100px;text-align:center;overflow:hidden;background:linear-gradient(180deg,#2a1430 0%,#33192e 60%,#3a1f34 100%);color:var(--cream-text)}
.page-hero h1{font-size:clamp(2.8rem,6vw,5rem);color:#f6efe6;margin-top:24px}
.page-hero h1 .it{color:var(--gold)}
.page-hero p{max-width:620px;margin:24px auto 0;color:#d9cdd2;font-size:17px;font-weight:300;line-height:1.75}

/* ================= FOOTER ================= */
.footer{background:#241229;color:#cdbcc8;padding:90px 0 36px}
.foot-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:50px}
.foot-brand{font-family:var(--serif);font-size:28px;color:#f3ebe2}
.foot-brand .it{color:var(--gold)}
.foot-brand+p{margin-top:18px;max-width:280px;font-size:14px;line-height:1.7;color:#b6a3b1}
.foot-col h4{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:20px}
.foot-col ul{list-style:none;display:flex;flex-direction:column;gap:12px}
.foot-col a,.foot-col p{font-size:14.5px;color:#c2b0bc;transition:color .3s}
.foot-col a:hover{color:#f3ebe2}
.foot-social{display:flex;gap:12px;margin-top:20px}
.foot-social a{width:38px;height:38px;border:1px solid rgba(255,255,255,.16);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;letter-spacing:.1em;color:#cdbcc8;transition:.3s}
.foot-social a:hover{background:var(--gold);color:#241229;border-color:var(--gold)}
.foot-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:64px;padding-top:26px;border-top:1px solid rgba(255,255,255,.1)}
.foot-bottom .copy{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#8d7d8b}
.foot-bottom .rev{font-family:var(--serif);font-style:italic;font-size:15px;color:#9b8a98}

/* ================= SECTION HELPERS ================= */
.sec-ivory{background:var(--ivory)}
.sec-sand{background:var(--ivory-2)}
.sec-plum{background:linear-gradient(180deg,#2a1430 0%,#2f1838 45%,#371c42 100%);color:var(--cream-text)}
.sec-plum-2{background:linear-gradient(180deg,#1f0f28 0%,#341a3e 48%,#6a4670 86%,#7e5a82 100%);color:var(--cream-text)}
.section{padding:120px 0}
.center-head{text-align:center;max-width:720px;margin:0 auto 70px}
.center-head h2{font-size:clamp(2.4rem,4.8vw,3.8rem);margin-top:22px}
.center-head p{margin-top:20px;color:var(--ink-soft);font-size:17px;line-height:1.75}
.sec-plum .center-head p,.sec-plum-2 .center-head p{color:#d9cdd2}

/* ================= CARDS (grid, generic) ================= */
.grid-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:36px}
.info-card{background:var(--ivory);border:1px solid rgba(58,34,54,.1);border-radius:22px;padding:42px 36px;transition:transform .5s,box-shadow .5s}
.info-card:hover{transform:translateY(-6px);box-shadow:0 30px 60px -30px rgba(58,34,54,.35)}
.info-card .icon{width:52px;height:52px;border-radius:50%;background:var(--sand);display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-style:italic;font-size:20px;color:var(--gold-deep)}
.info-card h3{font-size:24px;margin-top:22px;color:var(--ink)}
.info-card p{color:var(--ink-soft);font-size:14.5px;margin-top:12px;line-height:1.65}
.info-card .learn{display:inline-flex;gap:8px;align-items:center;margin-top:20px;font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-deep);font-weight:600}

/* dark variant */
.sec-plum .info-card,.sec-plum-2 .info-card{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.1)}
.sec-plum .info-card h3,.sec-plum-2 .info-card h3{color:var(--cream-text)}
.sec-plum .info-card p,.sec-plum-2 .info-card p{color:#d9cdd2}
.sec-plum .info-card .icon,.sec-plum-2 .info-card .icon{background:rgba(184,147,90,.18);color:var(--gold)}

/* ================= TESTIMONIAL STRIP ================= */
.testi-strip{padding:16px 0;text-align:center}
.testi-strip blockquote{font-family:var(--serif);font-style:italic;font-size:clamp(1.4rem,2.6vw,2rem);max-width:760px;margin:0 auto;line-height:1.5;color:var(--ink)}
.sec-plum .testi-strip blockquote,.sec-plum-2 .testi-strip blockquote{color:var(--cream-text)}
.testi-strip .who{margin-top:20px;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-deep)}
.sec-plum .testi-strip .who,.sec-plum-2 .testi-strip .who{color:var(--gold)}

/* ================= FORM ================= */
.form-card{max-width:780px;margin:0 auto;text-align:left;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.1);border-radius:22px;padding:48px 54px 54px;backdrop-filter:blur(6px)}
.form-card.on-light{background:#fff;border-color:rgba(58,34,54,.12)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:46px}
.field{margin-top:30px}
.field:first-child,.form-row .field{margin-top:0}
.field label{display:block;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);font-weight:500;margin-bottom:12px}
.form-card.on-light .field label{color:var(--gold-deep)}
.field input,.field textarea,.field select{width:100%;background:transparent;border:0;border-bottom:1px solid rgba(255,255,255,.22);color:#f1e7dd;font-family:var(--serif);font-style:italic;font-size:18px;padding:8px 0;outline:none;transition:border-color .3s}
.form-card.on-light .field input,.form-card.on-light .field textarea,.form-card.on-light .field select{color:var(--ink);border-bottom-color:rgba(58,34,54,.25)}
.field textarea{resize:none;min-height:96px;font-style:italic}
.field input::placeholder,.field textarea::placeholder{color:rgba(214,200,210,.55)}
.form-card.on-light .field input::placeholder,.form-card.on-light .field textarea::placeholder{color:rgba(111,88,99,.55)}
.field select option{color:#2a1331}
.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--gold)}
.submit{width:100%;margin-top:40px;background:var(--ivory);color:#2a1730;border:0;border-radius:40px;padding:19px;font-family:var(--sans);font-size:12.5px;letter-spacing:.26em;text-transform:uppercase;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:10px;transition:transform .35s,background .35s}
.submit:hover{transform:translateY(-2px);background:#fff}
.form-note{text-align:center;margin-top:22px;color:var(--gold-deep);font-family:var(--serif);font-style:italic;font-size:17px;opacity:0;transition:opacity .5s}
.form-note.show{opacity:1}

/* ================= RESPONSIVE ================= */
@media (max-width:1000px){
  .nav-links,.nav-cta{display:none}
  .burger{display:flex}
  .grid-cards{grid-template-columns:1fr 1fr}
  .foot-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:900px){
  .wrap{padding:0 26px}
  .section{padding:90px 0}
  .form-row{grid-template-columns:1fr;gap:0}
  .form-row .field+.field{margin-top:30px}
  .form-card{padding:36px 28px}
}
@media (max-width:600px){
  .wrap{padding:0 18px}
  .section{padding:70px 0}
  .page-hero{padding:140px 0 70px}
  .grid-cards{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr;gap:36px}
  .foot-bottom{flex-direction:column;gap:14px;text-align:center}
  .nav{padding:20px 18px}
  .nav.scrolled{padding:14px 18px}
  .form-card{padding:28px 18px}
}
