:root{
  --ivory:#FAF6F0;--champagne:#F3EBDF;--beige:#EBE0D0;
  --blush:#F7E4E1;--blush-deep:#F0D0CC;
  --black:#33302B;--charcoal:#5E574E;
  --gold:#C2A35C;--gold-light:#DEC48A;
  --rose:#C98B84;--wine:#7A2E33;
  --serif:'Cormorant Garamond',Georgia,serif;
  --sans:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;width:100%;overflow-x:hidden}
body{font-family:var(--sans);background:var(--ivory);color:var(--black);overflow-x:hidden;line-height:1.6;font-weight:300}
::selection{background:var(--gold-light);color:var(--black)}
img{max-width:100%;display:block}
a{color:inherit}

/* cursor */
.cursor-dot,.cursor-ring{position:fixed;top:0;left:0;border-radius:50%;pointer-events:none;z-index:9999;mix-blend-mode:difference}
.cursor-dot{width:6px;height:6px;background:var(--gold);transform:translate(-50%,-50%)}
.cursor-ring{width:34px;height:34px;border:1px solid rgba(194,163,92,.6);transform:translate(-50%,-50%);transition:width .3s,height .3s}
.cursor-ring.hover{width:56px;height:56px;border-color:var(--gold)}
@media(hover:none){.cursor-dot,.cursor-ring{display:none}}

/* loader */
#loader{position:fixed;inset:0;background:radial-gradient(ellipse at 50% 40%,var(--champagne),var(--ivory) 65%);z-index:10000;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:opacity .8s,visibility .8s;perspective:1400px}
#loader.done{opacity:0;visibility:hidden}
.loader-stage{perspective:1400px;transform-style:preserve-3d;display:flex;flex-direction:column;align-items:center}
.loader-logo{
  width:clamp(190px,30vw,300px);
  transform-style:preserve-3d;
  animation:logo3d 3.2s cubic-bezier(.34,1.12,.4,1) infinite;
  filter:drop-shadow(0 22px 38px rgba(51,48,43,.28)) drop-shadow(0 6px 14px rgba(194,163,92,.4));
  will-change:transform;
}
@keyframes logo3d{
  0%   {transform:rotateY(0deg)   rotateX(8deg) scale(.94)}
  35%  {transform:rotateY(180deg) rotateX(0deg) scale(1.04)}
  70%  {transform:rotateY(360deg) rotateX(-6deg) scale(.98)}
  100% {transform:rotateY(360deg) rotateX(8deg) scale(.94)}
}
.loader-shadow{
  width:clamp(120px,20vw,200px);height:18px;margin-top:26px;border-radius:50%;
  background:radial-gradient(ellipse,rgba(51,48,43,.26),transparent 70%);
  filter:blur(7px);animation:shadowPulse 3.2s ease-in-out infinite;
}
@keyframes shadowPulse{0%,100%{transform:scaleX(.82);opacity:.5}35%{transform:scaleX(1.08);opacity:.85}}
.loader-word{margin-top:1.5rem;font-family:var(--serif);font-size:clamp(1.1rem,2.6vw,1.5rem);font-weight:600;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);opacity:0;animation:fadeUp .9s .5s forwards}
@media(prefers-reduced-motion:reduce){.loader-logo{animation:none;transform:none}.loader-shadow{animation:none}}
@keyframes rise{to{transform:translateY(0)}}
@keyframes sealIn{to{opacity:1;transform:scale(1)}}

/* progress */
.progress{position:fixed;top:0;left:0;height:2px;width:0;background:linear-gradient(90deg,var(--gold),var(--gold-light));z-index:200;transition:width .1s linear}

/* nav */
nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:1.3rem clamp(1.4rem,5vw,4rem);transition:background .5s,padding .5s}
nav.scrolled,nav.solid{background:rgba(250,246,240,.85);backdrop-filter:blur(18px);padding:.85rem clamp(1.4rem,5vw,4rem);border-bottom:1px solid rgba(194,163,92,.16)}
.logo{display:flex;align-items:center;gap:.7rem;text-decoration:none;color:var(--black)}
.logo img{height:44px;width:auto;transition:height .5s}
nav.scrolled .logo img,nav.solid .logo img{height:38px}
.logo-text{display:flex;flex-direction:column;line-height:1.05;font-family:var(--serif)}
.logo-text b{font-weight:700;font-size:1.75rem;letter-spacing:.03em;color:var(--black)}
.logo-text em{color:var(--gold);font-style:normal;font-weight:700;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;font-family:var(--sans);margin-top:.32rem}
.nav-links{display:flex;gap:1.9rem;list-style:none;align-items:center}
.nav-links a{text-decoration:none;color:var(--charcoal);font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;position:relative;padding:.3rem 0}
.nav-links a::after{content:'';position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--gold);transition:width .4s}
.nav-links a:hover::after,.nav-links a.current::after{width:100%}
.nav-links a.current{color:var(--black)}
.nav-cta{border:1px solid var(--black);padding:.6rem 1.3rem;border-radius:40px;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;color:var(--black);transition:all .4s}
.nav-cta:hover{background:var(--gold);border-color:var(--gold);color:#fff;box-shadow:0 0 24px rgba(194,163,92,.5)}
.burger{display:none;flex-direction:column;gap:5px;cursor:pointer;background:none;border:none;width:44px;height:44px;align-items:center;justify-content:center;z-index:170}
.burger span{width:26px;height:1.5px;background:var(--black);transition:.35s cubic-bezier(.22,1,.36,1);transform-origin:center}
.burger.active span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.burger.active span:nth-child(2){opacity:0}
.burger.active span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
@media(max-width:960px){
  .nav-links,.nav-cta{display:none}
  .burger{display:flex}
  .nav-links.open{
    display:flex;position:fixed;top:0;left:0;right:0;bottom:0;
    height:100vh;height:100dvh;width:100vw;
    background:linear-gradient(160deg,var(--champagne),var(--ivory));
    flex-direction:column;align-items:center;justify-content:center;gap:.3rem;
    z-index:150;padding:5rem 1.5rem 2rem;overflow-y:auto;-webkit-overflow-scrolling:touch;
  }
  .nav-links.open li{opacity:0;transform:translateY(16px);animation:navItem .5s forwards;list-style:none}
  .nav-links.open li:nth-child(1){animation-delay:.06s}.nav-links.open li:nth-child(2){animation-delay:.12s}
  .nav-links.open li:nth-child(3){animation-delay:.18s}.nav-links.open li:nth-child(4){animation-delay:.24s}
  .nav-links.open li:nth-child(5){animation-delay:.3s}.nav-links.open li:nth-child(6){animation-delay:.36s}
  .nav-links.open li:nth-child(7){animation-delay:.42s}
  .nav-links.open a{font-family:var(--serif);font-size:1.9rem;text-transform:none;color:var(--black);padding:.4rem 1rem;display:block}
  .nav-links.open a::after{display:none}
  .nav-links.open .m-cta a{display:inline-block;margin-top:1.2rem;border:1px solid var(--gold);border-radius:44px;font-family:var(--sans);font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;color:#fff;background:var(--gold);padding:.85rem 2rem}
  /* when menu open, keep nav bar transparent so it doesn't cover overlay, but keep burger tappable */
  nav.menu-open-nav{background:transparent!important;backdrop-filter:none!important;border:none!important;z-index:160}
}
@keyframes navItem{to{opacity:1;transform:translateY(0)}}
body.menu-open{overflow:hidden}
body.menu-open .progress{opacity:0}

/* generic */
section{position:relative}
.wrap{max-width:1200px;margin:0 auto;padding:0 clamp(1.4rem,5vw,4rem)}
.section-pad{padding:clamp(5rem,13vh,9rem) 0}
.label{font-size:.7rem;letter-spacing:.34em;text-transform:uppercase;color:var(--gold);margin-bottom:1.3rem;display:flex;align-items:center;gap:.9rem}
.label::before{content:'';width:32px;height:1px;background:var(--gold)}
.label.ctr{justify-content:center;text-align:center}
h1.display,h2.display{font-family:var(--serif);font-weight:400;line-height:1.02;letter-spacing:-.01em}
h2.display{font-size:clamp(2.3rem,6vw,4.4rem)}
h1.display{font-size:clamp(2.8rem,7vw,5.5rem)}
.display em{font-style:italic;color:var(--gold)}
.lead{font-size:clamp(1.02rem,1.6vw,1.3rem);color:var(--charcoal);font-weight:300;max-width:54ch}
.btn{padding:1rem 2.2rem;border-radius:44px;font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;transition:all .45s cubic-bezier(.22,1,.36,1);display:inline-block;cursor:pointer;border:none}
.btn-primary{background:var(--black);color:var(--ivory)}
.btn-primary:hover{box-shadow:0 12px 40px rgba(194,163,92,.5);transform:translateY(-3px)}
.btn-ghost{border:1px solid var(--charcoal);color:var(--black);background:transparent}
.btn-ghost:hover{background:var(--black);color:var(--ivory);border-color:var(--black)}
.btn-gold{background:var(--gold);color:#fff;display:inline-flex;align-items:center;gap:.6rem}
.btn-gold::after{content:'↓';font-size:.95rem;transition:transform .4s}
.btn-gold:hover{background:var(--wine);box-shadow:0 12px 40px rgba(194,163,92,.45);transform:translateY(-3px)}
.btn-gold:hover::after{transform:translateY(3px)}

/* reveal */
.reveal{opacity:0;transform:translateY(40px);transition:opacity 1.1s cubic-bezier(.22,1,.36,1),transform 1.1s cubic-bezier(.22,1,.36,1)}
.reveal.in{opacity:1;transform:none}
[data-delay="1"]{transition-delay:.12s}[data-delay="2"]{transition-delay:.24s}[data-delay="3"]{transition-delay:.36s}

/* page hero (inner pages) */
.page-hero{padding:9rem 0 3rem;text-align:center;position:relative;overflow:hidden}
.page-hero .wrap{position:relative;z-index:2}
.page-hero-bg{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 0%,rgba(222,196,138,.35),transparent 60%),linear-gradient(160deg,var(--champagne),var(--ivory));z-index:1}
.page-hero p.sub{margin-top:1.2rem;font-size:1.05rem;color:var(--charcoal);max-width:52ch;margin-left:auto;margin-right:auto}

/* home hero */
.hero{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:8rem 1.5rem 4rem;position:relative;overflow:hidden}
.hero-bg{position:absolute;inset:0;background:
  radial-gradient(ellipse at 26% 16%,rgba(222,196,138,.5),transparent 58%),
  radial-gradient(ellipse at 76% 84%,rgba(201,139,132,.22),transparent 58%),
  linear-gradient(155deg,var(--champagne),var(--ivory) 50%,var(--blush));z-index:-2}
.petal{position:absolute;width:26px;height:26px;background:radial-gradient(circle at 30% 30%,var(--blush-deep),var(--rose));border-radius:60% 40% 55% 45%;opacity:.4;z-index:-1;animation:float 12s infinite ease-in-out}
.grain{position:absolute;inset:0;opacity:.04;z-index:-1;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
@keyframes float{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-30px) rotate(180deg)}}
.hero-seal{width:clamp(92px,12vw,124px);margin-bottom:1.4rem;opacity:0;transform:scale(.85);animation:sealIn 1.3s .15s cubic-bezier(.22,1,.36,1) forwards;filter:drop-shadow(0 10px 30px rgba(51,48,43,.14))}
.hero .eyebrow{font-size:.72rem;letter-spacing:.4em;text-transform:uppercase;color:var(--gold);margin-bottom:1.7rem;opacity:0;animation:fadeUp 1s .4s forwards}
.hero h1{font-family:var(--serif);font-weight:400;font-size:clamp(3rem,9vw,7.5rem);line-height:.98;letter-spacing:-.01em;max-width:14ch}
.hero h1 .word{display:inline-block;overflow:hidden;vertical-align:top}
.hero h1 .word i{display:inline-block;font-style:normal;transform:translateY(110%);animation:rise 1s cubic-bezier(.22,1,.36,1) forwards}
.hero h1 em{font-style:italic;color:var(--gold)}
.hero .sub{margin-top:1.7rem;font-size:.82rem;letter-spacing:.28em;text-transform:uppercase;color:var(--charcoal);opacity:0;animation:fadeUp 1s 1.1s forwards}
.hero-ctas{margin-top:2.5rem;display:flex;gap:1.2rem;flex-wrap:wrap;justify-content:center;opacity:0;animation:fadeUp 1s 1.3s forwards}
.scroll-hint{position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);font-size:.62rem;letter-spacing:.3em;text-transform:uppercase;color:var(--charcoal);opacity:0;animation:fadeUp 1s 1.6s forwards}
.scroll-hint::after{content:'';display:block;width:1px;height:38px;background:var(--gold);margin:.7rem auto 0;animation:pulse 2s infinite}
@keyframes pulse{0%,100%{transform:scaleY(.4);opacity:.4}50%{transform:scaleY(1);opacity:1}}
@keyframes fadeUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}

/* about */
.about-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(2rem,6vw,5rem);align-items:center}
.about-photos{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.about-photos img{width:100%;height:100%;object-fit:cover;border-radius:8px}
.about-photos .tall{grid-row:span 2;aspect-ratio:3/5}
.about-photos .short{aspect-ratio:4/3}
.stats{display:flex;gap:2.4rem;margin-top:2.4rem;flex-wrap:wrap}
.stat .num{font-family:var(--serif);font-size:2.6rem;color:var(--gold);line-height:1}
.stat .cap{font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--charcoal);margin-top:.4rem}
.certs{margin-top:2rem;display:flex;flex-wrap:wrap;gap:.6rem}
.certs span{font-size:.72rem;letter-spacing:.06em;color:var(--charcoal);background:var(--champagne);border:1px solid rgba(194,163,92,.25);padding:.45rem .9rem;border-radius:24px}
@media(max-width:860px){.about-grid{grid-template-columns:1fr}.about-photos{max-width:440px}}

/* signature band */
.signature{background:linear-gradient(150deg,var(--blush),var(--blush-deep));overflow:hidden}
.sig-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,5rem);align-items:center}
.sig-img{aspect-ratio:4/5;border-radius:10px;overflow:hidden;box-shadow:0 30px 70px rgba(122,46,51,.16)}
.sig-img img{width:100%;height:100%;object-fit:cover;object-position:50% 35%}
.sig-feat{display:flex;gap:1.6rem;margin-top:2rem;flex-wrap:wrap}
.sig-feat div{flex:1;min-width:140px}
.sig-feat b{font-family:var(--serif);font-size:1.5rem;color:var(--wine);display:block}
.sig-feat span{font-size:.82rem;color:var(--charcoal)}
@media(max-width:860px){.sig-grid{grid-template-columns:1fr}.sig-img{max-width:420px;order:-1}}

/* nav cards (home -> pages) */
.navcards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem;margin-top:3rem}
.navcard{position:relative;border-radius:14px;overflow:hidden;aspect-ratio:3/4;text-decoration:none;display:block}
.navcard img{width:100%;height:100%;object-fit:cover;object-position:50% 30%;transition:transform .8s}
.navcard:hover img{transform:scale(1.07)}
.navcard::after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 40%,rgba(51,48,43,.72))}
.navcard .cap{position:absolute;left:0;right:0;bottom:0;padding:1.8rem;z-index:2;color:#fff}
.navcard .cap h3{font-family:var(--serif);font-size:2rem;font-weight:500}
.navcard .cap span{font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;opacity:.85;display:inline-flex;align-items:center;gap:.5rem;margin-top:.3rem}
.navcard .cap span::after{content:'→';transition:transform .4s}
.navcard:hover .cap span::after{transform:translateX(6px)}
@media(max-width:820px){.navcards{grid-template-columns:1fr;max-width:420px;margin-left:auto;margin-right:auto}}

/* service cards + pricing */
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem;margin-top:3rem}
.svc-grid.two{grid-template-columns:repeat(2,1fr);max-width:820px;margin-left:auto;margin-right:auto}
.svc-card{background:var(--ivory);border:1px solid rgba(194,163,92,.2);border-radius:12px;overflow:hidden;transition:transform .55s cubic-bezier(.22,1,.36,1),box-shadow .55s;display:flex;flex-direction:column}
.svc-card:hover{transform:translateY(-8px);box-shadow:0 26px 60px rgba(51,48,43,.12)}
.svc-card .ph{aspect-ratio:3/4;overflow:hidden}
.svc-card .ph img{width:100%;height:100%;object-fit:cover;object-position:50% 50%;transition:transform .7s}
.svc-card:hover .ph img{transform:scale(1.06)}
.svc-body{padding:1.6rem 1.5rem;display:flex;flex-direction:column;flex:1}
.svc-body h3{font-family:var(--serif);font-size:1.6rem;font-weight:400;line-height:1.1}
.svc-body p{font-size:.85rem;color:var(--charcoal);margin:.6rem 0 1rem;flex:1}
.price{font-family:var(--serif);font-size:1.35rem;color:var(--gold);display:flex;align-items:baseline;gap:.3rem}
.price small{font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--charcoal);font-family:var(--sans)}
.price .was{font-family:var(--sans);font-size:.9rem;color:var(--charcoal);text-decoration:line-through;opacity:.65;margin-right:.15rem;letter-spacing:0;text-transform:none}
.price-off{display:inline-block;margin-top:.5rem;background:var(--wine);color:#fff;font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;padding:.28rem .7rem;border-radius:20px;font-weight:500}
@media(max-width:900px){.svc-grid,.svc-grid.two{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.svc-grid,.svc-grid.two{grid-template-columns:1fr}}

/* combos */
.combo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem;margin-top:3rem}
.combo{background:linear-gradient(160deg,var(--blush),var(--ivory));border:1px solid rgba(194,163,92,.25);border-radius:12px;padding:2rem 1.7rem;text-align:center}
.combo .tag{font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;color:var(--wine);font-weight:600;margin-bottom:.8rem}
.combo h4{font-family:var(--serif);font-size:1.4rem;font-weight:400;line-height:1.25;margin-bottom:.8rem}
.combo .strike{color:var(--charcoal);text-decoration:line-through;font-size:.9rem;opacity:.7}
.combo .final{font-family:var(--serif);font-size:2.2rem;color:var(--gold);margin-top:.3rem}
.combo .off{display:inline-block;margin-top:.6rem;background:var(--wine);color:#fff;font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;padding:.3rem .8rem;border-radius:20px}
@media(max-width:860px){.combo-grid{grid-template-columns:1fr}}

/* price list */
.plist{display:grid;grid-template-columns:repeat(2,1fr);gap:2.5rem 4rem;margin-top:3rem}
.plist.one{grid-template-columns:1fr;max-width:640px}
.plist h3{font-family:var(--serif);font-size:1.9rem;font-weight:400;margin-bottom:1.2rem;color:var(--wine)}
.prow{display:flex;justify-content:space-between;gap:1rem;padding:.7rem 0;border-bottom:1px dashed rgba(94,87,78,.22);font-size:.92rem}
.prow span:first-child{color:var(--black)}
.prow span:last-child{color:var(--gold);font-weight:500;white-space:nowrap}
.prow small{display:block;color:var(--charcoal);font-size:.74rem;font-weight:300}
@media(max-width:760px){.plist{grid-template-columns:1fr;gap:2rem}}

/* gallery strip */
.gallery{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:220px;gap:1rem;margin-top:3rem}
.gallery .g{border-radius:8px;overflow:hidden;position:relative}
.gallery .g img{width:100%;height:100%;object-fit:cover;object-position:50% 30%;transition:transform .7s}
.gallery .g:hover img{transform:scale(1.07)}
.gallery .g.tall{grid-row:span 2}
@media(max-width:900px){.gallery{grid-template-columns:repeat(2,1fr);grid-auto-rows:180px}.gallery .g.tall{grid-row:span 1}}

/* academy */
.course-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem;margin-top:3rem}
.course{background:var(--ivory);border:1px solid rgba(194,163,92,.2);border-radius:12px;padding:2rem 1.7rem;display:flex;flex-direction:column}
.course .ct{font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:.7rem}
.course h3{font-family:var(--serif);font-size:1.7rem;font-weight:400;line-height:1.15}
.course .dur{font-size:.82rem;color:var(--wine);margin:.4rem 0 1rem;font-weight:500}
.course ul{list-style:none;margin-top:.4rem;flex:1}
.course li{font-size:.86rem;color:var(--charcoal);padding:.35rem 0 .35rem 1.2rem;position:relative}
.course li::before{content:'';position:absolute;left:0;top:.85rem;width:6px;height:6px;border-radius:50%;background:var(--gold)}
@media(max-width:860px){.course-grid{grid-template-columns:1fr}}

/* why row */
.why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem;margin-top:3rem}
.why-item{padding:2rem 1.6rem;border-top:1px solid rgba(194,163,92,.3)}
.why-item .wnum{font-family:var(--serif);font-size:2.4rem;color:var(--gold-light)}
.why-item h4{font-size:.95rem;margin:.7rem 0 .5rem;font-weight:500}
.why-item p{font-size:.84rem;color:var(--charcoal)}
@media(max-width:820px){.why-grid{grid-template-columns:1fr}}

/* experience */
.timeline{margin-top:3rem;position:relative;padding-left:2rem}
.timeline::before{content:'';position:absolute;left:0;top:8px;bottom:8px;width:1px;background:linear-gradient(var(--gold),var(--gold-light))}
.tl-step{position:relative;padding:0 0 2.4rem 2.2rem}
.tl-step::before{content:'';position:absolute;left:-5px;top:6px;width:10px;height:10px;border-radius:50%;background:var(--ivory);border:1.5px solid var(--gold)}
.tl-step:last-child{padding-bottom:0}
.tl-step h4{font-family:var(--serif);font-size:1.6rem;font-weight:400}
.tl-step p{font-size:.88rem;color:var(--charcoal);max-width:46ch}
.tl-num{font-size:.68rem;letter-spacing:.2em;color:var(--gold);text-transform:uppercase}

/* testimonials */
.quote-wrap{max-width:820px;margin:3rem auto 0;text-align:center;min-height:210px;position:relative}
.quote{position:absolute;inset:0;opacity:0;transition:opacity .9s;display:flex;flex-direction:column;justify-content:center}
.quote.active{opacity:1;position:relative}
.quote p{font-family:var(--serif);font-style:italic;font-size:clamp(1.4rem,3vw,2.1rem);line-height:1.4}
.quote .who{margin-top:1.6rem;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
.dots{display:flex;gap:.6rem;justify-content:center;margin-top:2.2rem}
.dots button{width:8px;height:8px;border-radius:50%;border:1px solid var(--gold);background:none;cursor:pointer;padding:0;transition:.3s}
.dots button.on{background:var(--gold)}

/* faq */
.faq{max-width:820px;margin:3rem auto 0}
.faq-item{border-bottom:1px solid rgba(51,48,43,.14)}
.faq-q{width:100%;background:none;border:none;text-align:left;padding:1.5rem 0;font-family:var(--serif);font-size:1.3rem;font-weight:400;color:var(--black);cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:1rem}
.faq-q .ic{font-size:1.4rem;color:var(--gold);transition:transform .4s;flex-shrink:0}
.faq-item.open .ic{transform:rotate(45deg)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .5s}
.faq-a p{padding:0 0 1.5rem;font-size:.94rem;color:var(--charcoal);max-width:64ch}

/* contact */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,5rem);margin-top:1rem}
.form-panel{background:rgba(250,246,240,.7);backdrop-filter:blur(10px);border:1px solid rgba(194,163,92,.22);border-radius:18px;padding:clamp(1.6rem,3vw,2.6rem)}
.form-row{margin-bottom:1.4rem}
.form-row label{display:block;font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin-bottom:.5rem}
.form-row input,.form-row select,.form-row textarea{width:100%;background:transparent;border:none;border-bottom:1px solid rgba(94,87,78,.25);color:var(--black);font-family:var(--sans);font-size:.94rem;font-weight:300;padding:.65rem 0;transition:border-color .4s}
.form-row input::placeholder,.form-row textarea::placeholder{color:rgba(94,87,78,.45)}
.form-row select option{background:var(--ivory)}
.form-row input:focus,.form-row select:focus,.form-row textarea:focus{outline:none;border-color:var(--gold)}
.form-two{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem}
.contact-info p{color:var(--charcoal);margin-bottom:1.8rem;max-width:40ch}
.contact-line{display:flex;flex-direction:column;gap:.3rem;margin-bottom:1.5rem}
.contact-line span{font-size:.64rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
.contact-line a{color:var(--black);text-decoration:none;font-size:1.05rem;transition:color .3s}
.contact-line a:hover{color:var(--gold)}
.submit-btn{background:var(--gold);color:#fff;border:none;padding:1.1rem 2.4rem;border-radius:44px;font-family:var(--sans);font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;cursor:pointer;transition:.4s;margin-top:1rem}
.submit-btn:hover{background:var(--wine);box-shadow:0 12px 40px rgba(194,163,92,.4)}
@media(max-width:820px){.contact-grid{grid-template-columns:1fr}.form-two{grid-template-columns:1fr}}

/* cta band */
.cta-band{background:linear-gradient(160deg,var(--blush),var(--champagne));text-align:center}
.cta-band h2{margin-bottom:1.4rem}

/* float cta */
.float-cta{position:fixed;bottom:1.4rem;right:1.4rem;z-index:90;background:#25D366;width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;text-decoration:none;box-shadow:0 8px 30px rgba(0,0,0,.2);transition:transform .4s}
.float-cta:hover{transform:scale(1.1)}
.float-cta svg{width:28px;height:28px;fill:#fff}

/* footer */
footer{background:var(--champagne);color:var(--charcoal);padding:3rem 0;border-top:1px solid rgba(194,163,92,.25)}
.foot-grid{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1.5rem}
.foot-links{display:flex;gap:1.5rem;flex-wrap:wrap}
.foot-links a{color:var(--charcoal);text-decoration:none;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;transition:color .3s}
.foot-links a:hover{color:var(--gold)}
.foot-meta{display:flex;flex-direction:column;align-items:flex-end;gap:.45rem;font-size:.7rem;letter-spacing:.1em}
.made-by{text-decoration:none;color:var(--charcoal);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;display:inline-flex;align-items:center;gap:.4rem;padding:.32rem .8rem;border:1px solid rgba(194,163,92,.4);border-radius:30px;transition:all .4s}
.made-by::before{content:'';width:5px;height:5px;border-radius:50%;background:var(--gold);transition:transform .4s}
.made-by:hover{color:#fff;background:var(--gold);border-color:var(--gold);box-shadow:0 8px 22px rgba(194,163,92,.35)}
.made-by:hover::before{background:#fff;transform:scale(1.3)}
@media(max-width:600px){.foot-meta{align-items:center}}

/* mobile */
@media(max-width:600px){
  .section-pad{padding:clamp(4rem,10vh,6rem) 0}
  .wrap{padding:0 1.4rem}
  h2.display{font-size:clamp(2rem,9vw,2.7rem)}
  h1.display{font-size:clamp(2.5rem,11vw,3.4rem)}
  .lead{font-size:1rem}
  .hero{padding:7rem 1.4rem 5rem}
  .hero h1{font-size:clamp(2.8rem,14vw,4rem)}
  .hero-ctas{flex-direction:column;width:100%;gap:.9rem}
  .hero-ctas .btn{width:100%;text-align:center}
  .page-hero{padding:7.5rem 0 2rem}
  .stats{gap:1.6rem}.stat .num{font-size:2.1rem}
  .quote p{font-size:1.3rem}
  .faq-q{font-size:1.15rem}
  .form-two{grid-template-columns:1fr;gap:0}
  .form-panel{padding:1.6rem 1.4rem}.submit-btn{width:100%}
  .foot-grid{flex-direction:column;text-align:center;gap:1.4rem}.foot-links{justify-content:center}
  .float-cta{bottom:1.1rem;right:1.1rem;width:52px;height:52px}
  .scroll-hint{display:none}
  .logo img{height:40px}
  .logo-text b{font-size:1.35rem}
  .logo-text em{font-size:.64rem;letter-spacing:.1em}
  .gallery{grid-template-columns:1fr 1fr;grid-auto-rows:150px;gap:.6rem}
  .gallery .g.tall{grid-row:span 2}
  .loader-logo{width:clamp(150px,55vw,220px)}
  nav{padding:1rem 1.4rem}
  .svc-body{padding:1.4rem 1.3rem}
  .svc-body h3{font-size:1.5rem}
  .combo{padding:1.8rem 1.4rem}
  .timeline{padding-left:1.5rem}
  .tl-step{padding-left:1.6rem}
}
@media(max-width:400px){
  .logo-text b{font-size:1.05rem}
  .logo-text em{font-size:.54rem;letter-spacing:.08em}
  .logo img{height:36px}
}
@media(max-width:380px){.hero h1{font-size:2.5rem}h2.display{font-size:1.9rem}}
@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}
