  :root{
    --cream:#f8f5f1;
    --cream-2:#efe8e1;
    --tan:#dccfc2;
    --charcoal:#2f2b28;
    --rose:#b87a8c;
    --rose-deep:#c08a97;
    --taupe:#b8a79a;
    --sage:#bfc5ba;
    --mauve:#a97a85;
    --gold:#c4a484;
    --gold-2:#b79a7a;
    --serif: 'Fraunces', serif;
    --script: 'Parisienne', cursive;
    --sans: 'Jost', sans-serif;
    --mono: 'Space Mono', monospace;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth; overflow-x:hidden;}
  body{
    font-family:var(--sans);
    color:var(--charcoal);
    background:var(--cream);
    font-weight:300;
    letter-spacing:.01em;
    cursor:default;
  }
  section, footer, header{scroll-margin-top:0;}
  img{max-width:100%; display:block;}
  a{color:inherit; text-decoration:none;}
  :focus-visible{outline:2px solid var(--rose); outline-offset:3px; border-radius:2px;}
  .wrap{max-width:1240px; margin:0 auto; padding:0 32px;}
  h1,h2,h3,h4{font-family:var(--serif); font-weight:500; line-height:1.06; letter-spacing:-.01em;}
  strong, b{font-weight:600; color:var(--rose-deep);}
  a[href^="tel:"]{font-family:var(--mono); letter-spacing:-.02em;}
  .strong-dark{font-weight:600; color:var(--charcoal);}
  .eyebrow{
    font-family:var(--sans); text-transform:uppercase; letter-spacing:.28em; font-size:.72rem;
    color:var(--rose); font-weight:600; margin-bottom:18px; display:inline-block;
  }
  .btn{
    display:inline-flex; align-items:center; gap:10px; padding:16px 34px; border-radius:2px;
    font-family:var(--sans); font-size:.82rem; letter-spacing:.14em; text-transform:uppercase;
    font-weight:600; cursor:pointer; border:1px solid transparent; transition:.4s cubic-bezier(.2,.8,.2,1);
    position:relative; overflow:hidden;
  }
  .btn span{position:relative; z-index:1;}
  .btn-fill{background:var(--rose); color:var(--cream);}
  .btn-fill:hover{background:var(--charcoal); transform:translateY(-2px) scale(1.02);}
  .btn-line{border-color:rgba(47,43,40,.35); color:var(--charcoal);}
  .btn-line:hover{border-color:var(--charcoal); background:var(--charcoal); color:var(--cream); transform:translateY(-2px) scale(1.02);}
  .btn-line.on-dark{border-color:rgba(248,245,241,.5); color:var(--cream);}
  .btn-line.on-dark:hover{background:var(--cream); color:var(--charcoal);}

  /* grain overlay */
  #grain{
    position:fixed; inset:-50%; width:200%; height:200%; z-index:998; pointer-events:none;
    opacity:.035; mix-blend-mode:multiply;
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='120'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
    animation:grain 1.1s steps(4) infinite;
  }
  @keyframes grain{
    0%,100%{transform:translate(0,0);} 25%{transform:translate(-2%,1%);}
    50%{transform:translate(1%,-2%);} 75%{transform:translate(-1%,-1%);}
  }

  /* cursor glow (desktop only) */
  #glow{
    position:fixed; width:520px; height:520px; border-radius:50%; pointer-events:none; z-index:1;
    background:radial-gradient(circle, rgba(184,122,140,.28), transparent 70%);
    transform:translate(-50%,-50%); opacity:0; transition:opacity .5s ease; will-change:transform;
  }

  /* progress bar */
  #progress{position:fixed; top:0; left:0; height:2px; background:var(--rose); z-index:999; width:0%;}

  /* marquee */
  .marquee{
    background:var(--charcoal); color:var(--tan); overflow:hidden; padding:20px 0; white-space:nowrap;
    border-top:1px solid rgba(248,245,241,.08); border-bottom:1px solid rgba(248,245,241,.08);
  }
  .marquee-track{display:inline-flex; gap:0; animation:marquee 32s linear infinite;}
  .marquee span{
    font-family:var(--serif); font-style:italic; font-size:1.3rem; padding:0 40px; display:inline-flex; align-items:center; gap:40px;
    color:var(--tan); white-space:nowrap;
  }
  .marquee span::after{content:'✦'; color:var(--gold); font-style:normal; font-size:.9rem;}
  @keyframes marquee{ from{transform:translateX(0);} to{transform:translateX(-50%);} }

  /* nav */
  header{
    position:fixed; top:0; left:0; right:0; z-index:900;
    padding:26px 0; transition:.5s cubic-bezier(.2,.8,.2,1);
  }
  header .wrap{display:flex; align-items:center; justify-content:space-between;}
  header.scrolled{
    background:rgba(248,245,241,.92); backdrop-filter:blur(14px); padding:14px 0;
    box-shadow:0 1px 0 rgba(47,43,40,.06);
  }
  .logo{display:flex; flex-direction:column; align-items:flex-start; line-height:1;}
  .logo-img{height:104px; width:auto; display:block; transition:.4s ease;}
  header.scrolled .logo-img{height:84px;}
  footer .logo-img{height:104px; display:block;}
  @media (max-width:560px){
    .logo-img{height:64px;}
    header.scrolled .logo-img{height:54px;}
  }
  .logo-img-dark{display:none;}
  header.scrolled .logo-img-light{display:none;}
  header.scrolled .logo-img-dark{display:block;}
  .logo .mark{font-family:var(--serif); font-size:1.7rem; letter-spacing:.1em; color:var(--charcoal); font-weight:600;}
  header.scrolled .logo .mark{color:var(--charcoal);}
  .hero-nav .logo .mark{color:var(--cream);}
  .logo .script{font-family:var(--script); font-size:1.05rem; color:var(--rose); margin-top:-4px; margin-left:2px;}
  nav ul{list-style:none; display:flex; gap:26px; align-items:center;}
  nav a{font-size:.8rem; letter-spacing:.1em; text-transform:uppercase; font-weight:600; position:relative;}
  .hero-nav nav a{color:var(--cream);}
  header.scrolled nav a{color:var(--charcoal);}
  nav a::after{content:''; position:absolute; left:0; bottom:-6px; width:0; height:1px; background:currentColor; transition:.35s;}
  nav a:hover::after{width:100%;}
  .nav-cta{padding:12px 26px !important; font-size:.72rem !important;}
  .mobile-book-cta{display:none;}
  .burger{display:none; flex-direction:column; gap:5px; cursor:pointer; z-index:950;}
  .burger span{width:26px; height:1.5px; background:var(--charcoal); transition:.3s;}
  .hero-nav .burger span{background:var(--cream);}
  header.scrolled .burger span{background:var(--charcoal);}

  /* mobile menu */
  #mobileMenu{
    position:fixed; inset:0; background:var(--charcoal); z-index:890; display:flex; flex-direction:column;
    align-items:center; justify-content:center; gap:min(34px, 4vh); transform:translateY(-100%); transition:.55s cubic-bezier(.2,.8,.2,1);
    overflow-y:auto; padding:70px 24px;
  }
  #mobileMenu.open{transform:translateY(0);}
  #mobileMenu a{color:var(--cream); font-family:var(--serif); font-size:1.7rem;
    opacity:0; transform:translateY(14px); transition:.5s cubic-bezier(.2,.8,.2,1);}
  #mobileMenu.open a{opacity:1; transform:translateY(0);}
  #mobileMenu.open a:nth-child(1){transition-delay:.08s;}
  #mobileMenu.open a:nth-child(2){transition-delay:.14s;}
  #mobileMenu.open a:nth-child(3){transition-delay:.2s;}
  #mobileMenu.open a:nth-child(4){transition-delay:.26s;}
  #mobileMenu.open a:nth-child(5){transition-delay:.32s;}
  #mobileMenu.open a:nth-child(6){transition-delay:.38s;}
  #mobileMenu.open a:nth-child(7){transition-delay:.44s;}
  #mobileMenu.open a:nth-child(8){transition-delay:.5s;}

  /* hero */
  .hero{
    position:relative; height:100svh; min-height:640px; display:flex; align-items:center;
    overflow:hidden; color:var(--cream);
  }
  .hero-bg{ position:absolute; inset:-8% -8% -8% -8%; z-index:0; }
  .hero-bg img{width:100%; height:100%; object-fit:cover; will-change:transform;}
  .hero-scrim{
    position:absolute; inset:0; z-index:1;
    background:linear-gradient(180deg, rgba(47,43,40,.58) 0%, rgba(47,43,40,.34) 42%, rgba(47,43,40,.7) 100%);
  }
  .hero-deco{position:absolute; z-index:1; pointer-events:none; opacity:.5;}
  .hero-deco.d1{top:18%; right:8%; width:120px; height:120px; border:1px solid var(--gold); border-radius:50%; animation:float 7s ease-in-out infinite;}
  .hero-deco.d2{bottom:22%; right:16%; font-family:var(--serif); font-style:italic; font-size:.85rem; color:var(--gold); letter-spacing:.3em; animation:float 9s ease-in-out infinite reverse;}
  @keyframes float{0%,100%{transform:translateY(0px);} 50%{transform:translateY(-18px);}}
  .hero-content{position:relative; z-index:2; width:100%;}
  .hero-content .eyebrow{color:var(--tan);}
  .hero h1{
    font-size:clamp(2.6rem, 6.4vw, 5.6rem); font-weight:400; max-width:16ch; margin-bottom:26px;
  }
  .hero h2{
    font-size:clamp(2.35rem, 5.6vw, 4.8rem); font-weight:400; max-width:15ch; margin-bottom:26px; line-height:1.08;
  }
  .hero h1 em{font-style:normal; font-family:var(--serif); font-weight:600; color:#f2ddb8; text-shadow:0 2px 24px rgba(0,0,0,.45);}
  .hero h2 em{font-style:normal; font-family:var(--serif); font-weight:600; color:#f2ddb8; text-shadow:0 2px 24px rgba(0,0,0,.45);}
  .hero p.sub{font-family:var(--script); font-style:normal; font-size:clamp(1.55rem,2.3vw,1.95rem); line-height:1.5; color:var(--cream); margin-bottom:38px;}
  .hero-actions{display:flex; gap:18px; flex-wrap:wrap; margin-bottom:56px;}
  .hero-proof{display:flex; align-items:center; gap:14px; font-size:.82rem; letter-spacing:.04em;}
  .stars{color:var(--gold); letter-spacing:2px; font-size:.95rem;}
  .scroll-cue{
    position:absolute; bottom:36px; left:50%; transform:translateX(-50%); z-index:2;
    display:flex; flex-direction:column; align-items:center; gap:10px; font-size:.68rem;
    letter-spacing:.24em; text-transform:uppercase; color:var(--tan); opacity:.85;
  }
  .scroll-cue .line{width:1px; height:38px; background:var(--tan); overflow:hidden; position:relative;}
  .scroll-cue .line::after{
    content:''; position:absolute; top:-100%; left:0; width:100%; height:100%; background:var(--rose);
    animation:cue 2.2s ease-in-out infinite;
  }
  @keyframes cue{0%{top:-100%;} 50%{top:0;} 100%{top:100%;}}

  /* homepage carousel */
  .homepage-carousel{isolation:isolate;}
  .homepage-slide{
    position:absolute; inset:0; display:flex; align-items:flex-start; opacity:0; visibility:hidden;
    pointer-events:none; transition:opacity .9s ease, visibility 0s linear .9s;
  }
  .homepage-slide.is-active{opacity:1; visibility:visible; pointer-events:auto; transition:opacity .9s ease;}
  .homepage-slide .hero-bg{inset:-8%;}
  .homepage-slide .hero-content{padding-top:clamp(160px,23vh,220px);}
  .carousel-controls{
    position:absolute; z-index:5; right:max(5vw,28px); bottom:34px; display:flex; align-items:center; gap:5px;
  }
  .carousel-control{
    appearance:none; border:0; background:transparent; color:rgba(248,245,241,.66); cursor:pointer; padding:10px 12px;
    display:flex; align-items:baseline; gap:8px; font-family:var(--sans); text-transform:uppercase; letter-spacing:.1em;
    font-size:.66rem; border-bottom:1px solid rgba(248,245,241,.22); transition:color .25s ease, border-color .25s ease;
  }
  .carousel-control span{font-family:var(--mono); font-size:.66rem;}
  .carousel-control b{font:inherit; font-weight:600;}
  .carousel-control:hover,.carousel-control:focus-visible,.carousel-control.is-active{color:var(--cream); border-color:var(--gold); outline:none;}
  .homepage-carousel .scroll-cue{left:max(5vw,28px); transform:none; align-items:flex-start;}

  .method-introduction{background:var(--rose-deep); color:var(--cream); padding:96px 0; overflow:hidden;}
  .method-introduction::after{content:'METHOD'; position:absolute; right:-.05em; bottom:-.35em; color:rgba(248,245,241,.05); font-family:var(--serif); font-size:clamp(8rem,24vw,22rem); line-height:1; pointer-events:none;}
  .method-introduction-grid{position:relative; z-index:1; display:grid; grid-template-columns:1.05fr .8fr; gap:10vw; align-items:end;}
  .method-introduction .eyebrow{color:#f2ddb8;}
  .method-introduction h2{font-size:clamp(2.2rem,4.5vw,4.35rem); font-weight:400; max-width:13ch; line-height:1.08;}
  .method-introduction p{color:rgba(248,245,241,.82); font-size:1.12rem; line-height:1.75; margin:0 0 30px; max-width:39ch; font-weight:300;}

  /* public packages */
  .packages-section{background:var(--cream-2);}
  .package-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; background:var(--tan);}
  .package-card{background:var(--cream); padding:36px 32px; min-height:240px; display:flex; flex-direction:column; align-items:flex-start;}
  .package-card span{font-family:var(--mono); font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; color:var(--rose); margin-bottom:18px;}
  .package-card h3{font-size:1.6rem; font-weight:500; margin-bottom:14px;}
  .package-card p{font-size:.94rem; line-height:1.7; color:#5a5450; font-weight:300; margin:0;}
  .package-action{margin-top:34px; display:flex; align-items:center; gap:18px; flex-wrap:wrap;}
  .package-action p{font-size:.9rem; color:#6f6862; max-width:50ch; line-height:1.6;}

  @media (prefers-reduced-motion: reduce){
    .homepage-slide{transition:none;}
    .homepage-carousel .scroll-cue .line::after{animation:none;}
  }

  /* reveal system */
  .reveal{opacity:0; transform:translateY(46px); filter:blur(6px); transition:opacity 1s cubic-bezier(.2,.8,.2,1), transform 1s cubic-bezier(.2,.8,.2,1), filter 1s cubic-bezier(.2,.8,.2,1);}
  .reveal.in{opacity:1; transform:translateY(0); filter:blur(0);}
  .reveal-fade{opacity:0; transition:opacity 1.1s ease;}
  .reveal-fade.in{opacity:1;}
  .stagger .reveal:nth-child(1){transition-delay:0s;}
  .stagger .reveal:nth-child(2){transition-delay:.12s;}
  .stagger .reveal:nth-child(3){transition-delay:.24s;}
  .stagger .reveal:nth-child(4){transition-delay:.36s;}

  section{position:relative;}
  .pad{padding:130px 0;}
  .pad-sm{padding:90px 0;}

  /* stats */
  .stats-bar{
    background:var(--charcoal); color:var(--cream); padding:64px 0;
  }
  .stats-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:20px; text-align:center;}
  .stat{animation:idle 5s ease-in-out infinite;}
  .stat:nth-child(2){animation-delay:.4s;} .stat:nth-child(3){animation-delay:.8s;} .stat:nth-child(4){animation-delay:1.2s;}
  @keyframes idle{0%,100%{transform:translateY(0);} 50%{transform:translateY(-6px);}}
  .stat h3{font-family:var(--mono); font-size:clamp(2rem,3.6vw,2.9rem); font-weight:700; color:var(--gold); letter-spacing:-.02em;}
  .stat span{display:block; margin-top:8px; font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--tan);}

  /* horizon signature motif: Flathead Valley ridgeline, drawn once on load, reused as section seams */
  .horizon{position:relative; line-height:0; z-index:2;}
  .horizon svg{display:block; width:100%; height:auto;}
  .horizon-up{margin-top:-1px;}
  .hero-horizon{position:absolute; left:-4%; right:-4%; bottom:0; z-index:2; opacity:.9; pointer-events:none; transition:transform .4s cubic-bezier(.2,.8,.2,1);}
  .hero-horizon path{fill:none; stroke:var(--gold); stroke-width:1.4; stroke-dasharray:1600; stroke-dashoffset:1600; animation:draw 2.6s cubic-bezier(.2,.7,.2,1) .5s forwards;}
  @keyframes draw{ to{stroke-dashoffset:0;} }

  /* philosophy split */
  .split{display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center;}
  .split.rev{grid-template-columns:1fr 1fr;}
  .split.rev .split-img{order:2;}
  .split-img{position:relative; overflow:hidden; border-radius:2px; clip-path:inset(0 0 0 0);}
  .split-img::before{
    content:''; position:absolute; inset:0; background:var(--rose); z-index:2; transform-origin:left;
    transform:scaleX(1); transition:transform .9s cubic-bezier(.4,0,.1,1) .1s;
  }
  .split-img.in::before{transform:scaleX(0);}
  .split-img img{width:100%; height:100%; object-fit:cover; transition:transform 1.6s cubic-bezier(.2,.8,.2,1); transform:scale(1.15);}
  .split-img.in img{transform:scale(1);}
  .split-text p{margin:20px 0; line-height:1.75; color:#4a443f; font-size:1.05rem; font-weight:300;}
  .quote-line{
    font-family:var(--serif); font-style:italic; font-size:1.55rem; color:var(--rose);
    border-left:2px solid var(--rose); padding-left:22px; margin:28px 0;
  }

  .bg-cream2{background:var(--cream-2);}

  /* signature sticky */
  .signature{background:var(--charcoal); color:var(--cream);}
  .sig-grid{display:grid; grid-template-columns:.9fr 1.1fr; gap:0;}
  .sig-sticky{position:sticky; top:0; height:100vh; overflow:hidden;}
  .sig-sticky img{width:100%; height:100%; object-fit:cover; opacity:.72; animation:kenburns 26s ease-in-out infinite alternate;}
  @keyframes kenburns{ from{transform:scale(1) translate(0,0);} to{transform:scale(1.12) translate(-1%,-1%);} }
  @media (prefers-reduced-motion: reduce){ .sig-sticky img{animation:none;} }
  .sig-sticky::after{content:''; position:absolute; inset:0; background:linear-gradient(90deg, rgba(47,43,40,.1), rgba(47,43,40,.85));}
  .sig-panel{padding:140px 60px 140px 70px;}
  .sig-item{padding-bottom:90px; margin-bottom:90px; border-bottom:1px solid rgba(248,245,241,.14); max-width:520px;}
  .sig-item:last-child{border-bottom:none; margin-bottom:0; padding-bottom:0;}
  .sig-item h3{font-size:2.2rem; margin-bottom:16px; color:var(--cream); font-weight:500;}
  .sig-item p{color:var(--tan); line-height:1.75; font-weight:300;}
  .sig-num{font-family:var(--serif); font-style:italic; font-size:.95rem; color:var(--gold); letter-spacing:.15em; margin-bottom:14px; display:block;}

  /* services */
  .svc-head{display:flex; justify-content:space-between; align-items:flex-end; gap:40px; margin-bottom:64px; flex-wrap:wrap;}
  .svc-head h2{font-size:clamp(2rem,3.6vw,3.1rem); max-width:12ch;}
  .svc-head p{max-width:34ch; color:#5a5450; font-weight:300; line-height:1.7;}
  .svc-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--tan);}
  .svc-grid .reveal:nth-child(3n+1){transition-delay:0s;}
  .svc-grid .reveal:nth-child(3n+2){transition-delay:.1s;}
  .svc-grid .reveal:nth-child(3n){transition-delay:.2s;}
  .svc-card{
    background:var(--cream); padding:44px 36px; transition:.45s cubic-bezier(.2,.8,.2,1); position:relative; overflow:hidden;
    border-left:3px solid var(--rose);
  }
  .svc-card:nth-child(3n+2){border-left-color:var(--gold);}
  .svc-card:nth-child(3n){border-left-color:var(--sage);}
  .svc-card::before{
    content:''; position:absolute; left:0; bottom:0; width:100%; height:0; background:var(--charcoal);
    transition:height .45s cubic-bezier(.2,.8,.2,1); z-index:0;
  }
  .svc-card:hover::before{height:100%;}
  .svc-card > *{position:relative; z-index:1;}
  .svc-card:hover{color:var(--cream);}
  .svc-card:hover .svc-price{background:var(--gold); color:var(--charcoal);}
  .svc-card:hover .svc-meta{color:var(--tan);}
  .svc-num{font-family:var(--serif); font-style:italic; font-size:.85rem; color:var(--rose); letter-spacing:.1em;}
  .svc-card h4{font-size:1.4rem; margin:16px 0 10px; font-weight:500;}
  .svc-meta{font-family:var(--mono); font-size:.74rem; color:#8a827c; letter-spacing:0; transition:.4s;}
  .svc-price{
    font-family:var(--mono); font-weight:700; font-size:.88rem; color:var(--charcoal); background:var(--cream-2);
    margin-top:18px; display:inline-block; padding:7px 14px; border-radius:999px; transition:.4s;
  }
  .svc-card:nth-child(3n+2) .svc-price{background:rgba(196,164,132,.22);}
  .svc-card:nth-child(3n) .svc-price{background:rgba(191,197,186,.35);}
  .svc-guide{
    display:block; margin-top:14px; font-size:.76rem; letter-spacing:.06em; text-transform:uppercase;
    font-weight:600; color:var(--rose); transition:.3s;
  }
  .svc-guide:hover{color:var(--gold-2);}
  .svc-card:hover .svc-guide{color:var(--tan);}

  .price-menu-grid{
    display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; align-items:start;
  }
  .price-menu-card{
    background:var(--cream); border:1px solid var(--tan); border-top:4px solid var(--rose);
    padding:38px 34px 32px; transition:transform .35s ease, box-shadow .35s ease;
  }
  .price-menu-card:nth-child(3n+2){border-top-color:var(--gold);}
  .price-menu-card:nth-child(3n){border-top-color:var(--sage);}
  .price-menu-card:hover{transform:translateY(-4px); box-shadow:0 22px 48px rgba(47,43,40,.08);}
  .price-menu-featured{background:linear-gradient(145deg,rgba(184,120,139,.11),var(--cream) 54%);}
  .price-menu-wide{grid-column:1 / -1;}
  .price-menu-kicker{
    display:block; font-family:var(--mono); font-size:.7rem; font-weight:700; letter-spacing:.13em;
    text-transform:uppercase; color:var(--rose); margin-bottom:10px;
  }
  .price-menu-card h3{font-size:clamp(1.55rem,2.5vw,2rem); margin-bottom:24px;}
  .price-menu-note{color:#6f6862; font-size:.9rem; line-height:1.65; margin:-12px 0 24px; max-width:68ch;}
  .price-menu-list{list-style:none; margin:0; padding:0; border-top:1px solid var(--tan);}
  .price-menu-list li{
    display:flex; justify-content:space-between; align-items:flex-start; gap:24px;
    padding:15px 0; border-bottom:1px solid var(--tan);
  }
  .price-menu-list li > span{min-width:0;}
  .price-menu-list strong{display:block; font-size:.94rem; line-height:1.35; font-weight:600;}
  .price-menu-list small{display:block; margin-top:4px; color:#8a827c; font-size:.76rem; line-height:1.35;}
  .price-menu-list b{
    flex:0 0 auto; font-family:var(--mono); font-size:.86rem; color:var(--charcoal);
    background:var(--cream-2); padding:6px 10px; border-radius:999px;
  }
  .price-menu-columns{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:34px;}
  .price-menu-columns-two{grid-template-columns:repeat(2,minmax(0,1fr));}
  .price-menu-subhead{
    font-family:var(--mono); font-size:.72rem; letter-spacing:.08em; text-transform:uppercase;
    color:#6f6862; margin:0 0 12px;
  }
  .price-menu-single{max-width:calc((100% - 68px) / 3); margin-top:28px;}
  .price-menu-link{
    display:inline-block; margin-top:22px; color:var(--rose); font-size:.76rem; font-weight:700;
    letter-spacing:.06em; text-transform:uppercase; border-bottom:1px solid rgba(184,120,139,.45);
  }
  .price-menu-link:hover{color:var(--charcoal);}
  .price-menu-disclaimer{
    margin:28px auto 0; max-width:70ch; text-align:center; color:#7a726c; font-size:.8rem; line-height:1.65;
  }

  /* testimonials */
  .testi-track{
    overflow-x:auto; margin:0 -32px; padding:0 32px 20px; scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch; scrollbar-width:none; cursor:grab;
  }
  .testi-track::-webkit-scrollbar{display:none;}
  .testi-track.grabbing{cursor:grabbing;}
  .testi-row{display:flex; gap:26px; width:max-content;}
  .testi-card{
    width:min(380px, 82vw); background:var(--cream); border:1px solid var(--tan); padding:36px; border-radius:2px;
    scroll-snap-align:start; transition:transform .3s ease, box-shadow .3s ease;
  }
  .testi-card:hover{transform:translateY(-6px); box-shadow:0 20px 40px rgba(47,43,40,.08);}
  .testi-stars{color:var(--gold); letter-spacing:3px; margin-bottom:18px; font-size:.9rem;}
  .testi-card p{font-size:1rem; line-height:1.7; color:#3d3833; margin-bottom:22px; font-weight:300;}
  .testi-who{display:flex; justify-content:space-between; align-items:center; font-size:.78rem; letter-spacing:.06em; color:#8a827c;}
  .testi-who b{font-family:var(--serif); font-style:italic; color:var(--charcoal); font-size:1rem;}
  .testi-nav{display:flex; gap:12px; margin-top:36px; justify-content:flex-end;}
  .testi-arrow{
    width:48px; height:48px; border-radius:50%; border:1px solid var(--tan); display:flex; align-items:center;
    justify-content:center; cursor:pointer; transition:.3s; font-size:1.1rem; color:var(--charcoal);
  }
  .testi-arrow:hover{background:var(--charcoal); color:var(--cream); border-color:var(--charcoal);}

  /* location / cta */
  .cta{
    position:relative; padding:160px 0; text-align:center; color:var(--cream); overflow:hidden;
  }
  .cta-bg{position:absolute; inset:0;}
  .cta-bg img{width:100%; height:100%; object-fit:cover;}
  .cta-bg::after{content:''; position:absolute; inset:0; background:rgba(47,43,40,.72);}
  .cta-inner{position:relative; z-index:2;}
  .cta h2{font-size:clamp(2.2rem,4.6vw,3.6rem); max-width:16ch; margin:0 auto 26px;}
  .cta p.sub{font-family:var(--script); font-size:1.7rem; color:var(--gold); margin-bottom:44px;}

  .info-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:50px; text-align:left;}
  .info-block .eyebrow{color:var(--rose);}
  .info-block h4{font-size:1.35rem; margin-bottom:14px; font-weight:500;}
  .info-block p, .info-block a{font-size:.94rem; line-height:1.9; color:#5a5450; font-weight:300;}
  .hours-row{display:flex; justify-content:space-between; font-size:.9rem; padding:6px 0; border-bottom:1px dashed var(--tan); color:#5a5450;}
  .hours-row b{font-family:var(--mono); color:var(--charcoal); font-weight:700; font-size:.86rem;}
  .num{font-family:var(--mono);}

  footer{background:var(--charcoal); color:var(--tan); padding:70px 0 30px;}
  .preferred-source{
    display:flex; align-items:center; justify-content:space-between; gap:32px;
    padding:0 0 36px; margin-bottom:48px; border-bottom:1px solid rgba(248,245,241,.12);
  }
  .preferred-source-copy{max-width:520px;}
  .preferred-source-label{
    display:block; font-family:var(--serif); font-size:clamp(1.25rem,2vw,1.65rem);
    color:var(--cream); letter-spacing:.01em;
  }
  .preferred-source-copy p{margin-top:9px; max-width:48ch; color:#bcb3ab;}
  .preferred-source > div:last-child{flex:0 0 auto; min-height:40px;}
  .foot-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:60px; padding-bottom:50px; border-bottom:1px solid rgba(248,245,241,.12);}
  footer .logo .mark{color:var(--cream);}
  footer p{font-size:.85rem; line-height:1.8; margin-top:16px; color:#a89e97; max-width:32ch;}
  footer h5{font-size:.75rem; letter-spacing:.18em; text-transform:uppercase; color:var(--gold); margin-bottom:20px;}
  footer ul{list-style:none;}
  footer li{margin-bottom:12px; font-size:.88rem; color:#c9c2bb;}
  .email-inline{display:inline-block; white-space:nowrap; font-size:clamp(.72rem,2vw,.95rem);}
  .foot-bottom{padding-top:26px; display:flex; justify-content:space-between; font-size:.75rem; color:#8a827c; flex-wrap:wrap; gap:10px;}
  .foot-bottom a{border-bottom:1px solid rgba(248,245,241,.18); transition:.3s;}
  .foot-bottom a:hover{color:var(--gold); border-bottom-color:var(--gold);}

  @media (min-width:981px){
    .magnetic{transition:transform .25s cubic-bezier(.2,.8,.2,1);}
  }
  @media (max-width:980px){
    nav, .nav-cta{display:none;}
    .mobile-book-cta{display:inline-flex; align-items:center; background:var(--rose); color:var(--cream); font-size:.67rem; font-weight:700; letter-spacing:.1em; padding:12px 14px; text-transform:uppercase;}
    .burger{display:flex;}
    #glow{display:none;}
    .stats-grid{grid-template-columns:repeat(2,1fr); row-gap:36px;}
    .split, .split.rev{grid-template-columns:1fr; gap:36px;}
    .split.rev .split-img{order:0;}
    .sig-grid{grid-template-columns:1fr;}
    .sig-sticky{position:relative; height:52vw; min-height:280px;}
    .sig-panel{padding:70px 24px;}
    .svc-grid{grid-template-columns:repeat(2,1fr);}
    .info-grid{grid-template-columns:1fr; gap:36px;}
    .foot-grid{grid-template-columns:1fr; gap:36px;}
    .preferred-source{align-items:flex-start; flex-direction:column; gap:22px;}
    .marquee span{font-size:1.05rem; padding:0 26px;}
    .pad{padding:88px 0;}
  }
  @media (max-width:560px){
    .wrap{padding:0 20px;}
    .svc-grid{grid-template-columns:1fr;}
    .hero-actions{flex-direction:column;}
    .btn{width:100%; justify-content:center;}
    .hero h1{font-size:2.5rem;}
    .testi-nav{justify-content:center;}
  }
  @media (prefers-reduced-motion: reduce){
    *{animation-duration:.001s !important; animation-iteration-count:1 !important; transition-duration:.2s !important;}
  }

/* shared inner-page utilities (blog, faq) */
.page-hero{padding:180px 0 70px; background:var(--charcoal); color:var(--cream);}
.page-hero .eyebrow{color:var(--gold);}
.page-hero h1{font-size:clamp(2.2rem,5vw,3.6rem); max-width:20ch;}
.page-hero p{color:var(--tan); max-width:60ch; margin-top:18px; font-size:1.05rem; line-height:1.7;}
.breadcrumb{font-size:.78rem; letter-spacing:.05em; color:var(--tan); margin-bottom:22px;}
.breadcrumb a{color:var(--tan); border-bottom:1px solid rgba(248,245,241,.3);}
.breadcrumb a:hover{color:var(--gold);}
.prose{max-width:740px; margin:0 auto;}
.prose h2{font-size:1.9rem; margin:52px 0 18px; font-weight:500;}
.prose h3{font-size:1.35rem; margin:34px 0 14px; font-weight:500; color:var(--rose-deep);}
.prose p{line-height:1.85; color:#4a443f; font-size:1.05rem; margin-bottom:20px; font-weight:300;}
.prose ul, .prose ol{margin:0 0 24px 22px; color:#4a443f; line-height:1.85; font-size:1.05rem; font-weight:300;}
.prose li{margin-bottom:8px;}
.prose .answer-block{
  background:var(--cream-2); border-left:3px solid var(--rose); padding:24px 28px; margin:0 0 40px;
  font-size:1.08rem; line-height:1.8; color:#3d3833; border-radius:2px;
}
.prose .answer-block strong{display:block; font-family:var(--serif); font-style:italic; font-size:1.15rem; color:var(--charcoal); margin-bottom:8px;}
.post-meta{display:flex; gap:18px; align-items:center; font-family:var(--mono); font-size:.78rem; color:#8a827c; margin-bottom:8px; flex-wrap:wrap;}
.blog-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:var(--tan); margin-top:20px;}
.blog-card{background:var(--cream); padding:38px 32px; transition:.4s;}
.blog-card:hover{background:var(--cream-2);}
.blog-card .eyebrow{color:var(--rose);}
.blog-card h3{font-size:1.4rem; margin-bottom:12px; font-weight:500;}
.blog-card p{color:#5a5450; font-size:.94rem; line-height:1.7; margin-bottom:18px; font-weight:300;}
.blog-card .read-more{font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; font-weight:600; color:var(--charcoal);}
.faq-item{border-bottom:1px solid var(--tan); padding:26px 0;}
.faq-item summary{
  font-family:var(--serif); font-size:1.2rem; font-weight:500; cursor:pointer; list-style:none;
  display:flex; justify-content:space-between; align-items:center; gap:20px;
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:'+'; font-size:1.6rem; color:var(--rose); transition:.3s; flex-shrink:0; font-family:var(--sans);}
.faq-item[open] summary::after{transform:rotate(45deg);}
.faq-item p{margin-top:16px; color:#4a443f; line-height:1.8; font-size:1rem; font-weight:300; max-width:70ch;}
.faq-cta{text-align:center; padding:60px 0 0;}
@media (max-width:980px){
  .blog-grid{grid-template-columns:1fr;}
  .page-hero{padding:130px 0 50px;}
}

/* team */
.team-grid{display:grid; grid-template-columns:1fr; gap:64px; background:transparent; margin-top:20px;}
.team-card{background:var(--cream); border:1px solid var(--tan); border-top:4px solid var(--rose);}
.team-card-profile{width:100%;}
.team-card-laura,.team-card-michelle{
  display:grid; grid-template-columns:minmax(360px,.82fr) minmax(0,1.18fr);
  align-items:start; padding:0; overflow:hidden;
}
.team-card-michelle{border-top-color:var(--gold);}
.team-copy{padding:58px 56px;}
.team-card-michelle .team-copy{max-width:960px; margin:0 auto; padding-top:66px; padding-bottom:66px;}
.team-photo{
  margin:0; background:var(--cream-2); border-right:1px solid var(--tan);
}
.team-photo img{width:100%; height:auto; object-fit:contain; display:block;}
.team-together-section{padding-top:0;}
.team-together{max-width:620px; text-align:center;}
.team-together img{display:block; width:100%; height:auto; border-radius:4px;}
.team-together figcaption{padding-top:18px; line-height:1.6; color:var(--charcoal);}
.booking-card-copy{min-width:0; flex:1;}
.service-description{margin-top:10px; font-size:.92rem; line-height:1.65; color:var(--charcoal);}
.service-description summary{cursor:pointer; font-weight:500; color:var(--rose-deep);}
.service-description p{margin-top:12px; font-weight:400;}
.team-head{display:flex; align-items:center; gap:22px; margin-bottom:30px;}
.team-mono{
  width:76px; height:76px; flex:0 0 76px; border-radius:50%; border:1px solid var(--gold);
  background:var(--cream-2); display:flex; align-items:center; justify-content:center;
  font-family:var(--serif); font-style:italic; font-size:1.5rem; color:var(--rose-deep);
}
.team-card-michelle .team-mono{border-color:var(--rose); background:rgba(196,164,132,.18);}
.team-card h3{font-size:1.6rem; font-weight:500; margin-bottom:8px; line-height:1.15;}
.team-role{
  font-family:var(--mono); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase;
  color:#8a827c; display:block;
}
.team-card p{color:#4a443f; line-height:1.8; font-size:1rem; font-weight:300; margin-bottom:18px;}
.team-quote{
  font-family:var(--serif); font-style:italic; font-size:1.15rem; line-height:1.55; color:var(--rose);
  border-left:2px solid var(--rose); padding-left:20px; margin:26px 0;
}
.team-creds{list-style:none; margin-top:26px; border-top:1px dashed var(--tan); padding-top:22px;}
.team-creds li{
  font-size:.88rem; line-height:1.7; color:#5a5450; padding-left:20px; position:relative; margin-bottom:9px;
}
.team-creds li:last-child{margin-bottom:0;}
.team-creds li::before{content:'\2726'; position:absolute; left:0; top:.15em; color:var(--gold); font-size:.7rem;}

/* locations */
.loc-lead{
  font-family:var(--serif); font-style:italic; font-size:clamp(1.15rem,2.1vw,1.5rem); line-height:1.5;
  color:var(--rose); max-width:32ch;
}
.loc-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--tan); margin-top:26px;}
.loc-card{background:var(--cream); padding:46px 40px; border-left:3px solid var(--rose);}
.loc-card:nth-child(2){border-left-color:var(--gold);}
.loc-days{
  font-family:var(--mono); font-size:.72rem; letter-spacing:.12em; text-transform:uppercase;
  color:var(--charcoal); background:var(--cream-2); display:inline-block; padding:7px 15px;
  border-radius:999px; margin-bottom:20px;
}
.loc-card:nth-child(2) .loc-days{background:rgba(196,164,132,.24);}
.loc-card h4{font-size:1.45rem; margin-bottom:12px; font-weight:500;}
.loc-addr{font-size:.94rem; line-height:1.85; color:#5a5450; font-weight:300;}
.loc-hours{margin:24px 0 26px;}
.loc-note{font-size:.84rem; line-height:1.7; color:#8a827c; margin-top:16px;}

/* injectables */
.pill-row{display:flex; flex-wrap:wrap; gap:10px; margin:28px 0 6px;}
.pill{
  font-family:var(--mono); font-size:.76rem; color:var(--charcoal); background:var(--cream);
  border:1px solid var(--tan); padding:8px 16px; border-radius:999px; white-space:nowrap;
}
.price-slot{
  border:1px dashed var(--tan); background:rgba(196,164,132,.10); padding:22px 26px; border-radius:2px;
  margin:30px 0; font-size:.93rem; line-height:1.75; color:#5a5450; font-weight:300;
}
.price-slot strong{
  display:block; font-family:var(--serif); font-style:italic; font-size:1.08rem;
  color:var(--charcoal); margin-bottom:8px;
}

@media (max-width:980px){
  .method-introduction-grid{grid-template-columns:1fr; gap:34px;}
  .package-grid{grid-template-columns:1fr;}
  .price-menu-grid{grid-template-columns:1fr;}
  .price-menu-wide{grid-column:auto;}
  .price-menu-columns,.price-menu-columns-two{grid-template-columns:1fr; gap:28px;}
  .price-menu-single{max-width:none;}
  .team-grid{gap:48px;}
  .team-card-laura,.team-card-michelle{grid-template-columns:1fr;}
  .team-photo{border-right:0; border-bottom:1px solid var(--tan);}
  .team-copy,.team-card-michelle .team-copy{padding:44px 36px;}
  .loc-grid{grid-template-columns:1fr;}
  .loc-card{padding:38px 24px;}
}

@media (max-width:620px){
  .testi-track{margin:0 -20px; padding:0 20px 20px;}
  .homepage-slide .hero-content{padding-top:132px;}
  .hero h1{font-size:clamp(2.45rem,12vw,3.5rem);}
  .hero h1{max-width:13ch; overflow-wrap:break-word;}
  .hero h2{font-size:clamp(2.2rem,10.5vw,3.2rem);}
  .hero-content .eyebrow{max-width:100%; font-size:.62rem; letter-spacing:.18em; line-height:1.5;}
  .carousel-controls{right:16px; bottom:26px; gap:1px;}
  .carousel-control{padding:8px 7px; gap:4px; font-size:.57rem;}
  .carousel-control span{font-size:.58rem;}
  .homepage-carousel .scroll-cue{left:18px; bottom:26px;}
  .method-introduction{padding:72px 0;}
  .package-card{padding:30px 24px; min-height:0;}
  .price-menu-card{padding:30px 22px 26px;}
  .price-menu-list li{gap:14px;}
  .price-menu-list strong{font-size:.88rem;}
  .price-menu-list b{font-size:.79rem; padding:6px 9px;}
  .team-grid{gap:34px;}
  .team-copy,.team-card-michelle .team-copy{padding:36px 22px;}
  .team-head{align-items:flex-start; gap:16px;}
  .team-mono{width:62px; height:62px; flex-basis:62px; font-size:1.25rem;}
}
