:root{
    --sand:#EFE7DA; --sand-2:#F6F1E8; --white:#FFFFFF;
    --plum:#3A304C; --plum-2:#2E2640; --ink:#110F14;
    --ameth:#5E4F7D; --ameth-l:#8B79AD; --linen:#C6B3DE; --soft:#DFD3F1;
    --rule: rgba(94,79,125,.22); --rule-dark: rgba(255,255,255,.14);
    --ease: cubic-bezier(.32,.72,0,1);
    --display:'Parisienne', 'Snell Roundhand', 'Brush Script MT', cursive;
    --sans:'Jost', 'Futura', 'Avenir Next', 'Segoe UI', sans-serif;
    --w: 1240px;
    color-scheme: light;
  }
  *{box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{margin:0;background:var(--sand);color:var(--ink);font-family:var(--sans);font-size:18px;line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden}
  body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:40;opacity:.035;
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .9 0'/></filter><rect width='160' height='160' filter='url(%23n)'/></svg>");}
  img{max-width:100%;display:block}
  a{color:inherit;text-decoration:none}
  .wrap{max-width:var(--w);margin-inline:auto;padding-inline:clamp(16px,4vw,48px)}
  h1,h2,h3{margin:0;font-weight:600;letter-spacing:-.015em;line-height:1.08;text-wrap:balance}
  p{margin:0}
  .eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:11px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--ameth)}
  .eyebrow::before{content:"";width:22px;height:1px;background:var(--ameth);opacity:.7}
  .on-dark .eyebrow,.on-photo .eyebrow{color:var(--linen)} .on-dark .eyebrow::before,.on-photo .eyebrow::before{background:var(--linen)}
  .script{font-family:var(--display);font-weight:400;line-height:.9;letter-spacing:0;color:var(--ameth)}
  .lede{max-width:34em;color:rgba(17,15,20,.78)}
  .on-dark .lede,.on-photo .lede{color:rgba(255,255,255,.82)}

  /* buttons */
  .btn{display:inline-flex;align-items:center;gap:14px;padding:10px 10px 10px 26px;border-radius:999px;font-size:12.5px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;line-height:1;
    transition:transform .6s var(--ease), background-color .6s var(--ease), color .6s var(--ease), box-shadow .6s var(--ease);will-change:transform}
  .btn:active{transform:scale(.98)}
  .btn .ic{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;transition:transform .6s var(--ease)}
  .btn:hover .ic{transform:translate(2px,-1px) scale(1.06)}
  .btn svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}
  .btn-primary{background:var(--ameth);color:#fff;box-shadow:0 18px 40px -18px rgba(58,48,76,.55)}
  .btn-primary:hover{background:var(--plum)}
  .btn-primary .ic{background:rgba(255,255,255,.14)}
  .btn-ghost{color:var(--plum);box-shadow:inset 0 0 0 1px rgba(94,79,125,.35)}
  .btn-ghost:hover{box-shadow:inset 0 0 0 1px rgba(94,79,125,.9)}
  .btn-ghost .ic{background:rgba(94,79,125,.08)}
  .btn-linen{background:var(--linen);color:var(--plum)}
  .btn-linen:hover{background:var(--soft)}
  .btn-linen .ic{background:rgba(58,48,76,.10)}
  .btn-glass{color:#fff;background:rgba(255,255,255,.12);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.28)}
  .btn-glass:hover{background:rgba(255,255,255,.2)}
  .btn-glass .ic{background:rgba(255,255,255,.14)}
  .btn-outline-light{color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.28)}
  .btn-outline-light:hover{box-shadow:inset 0 0 0 1px rgba(255,255,255,.8)}
  .btn-outline-light .ic{background:rgba(255,255,255,.10)}
  
  /* header */
  header{position:fixed;left:0;right:0;top:env(safe-area-inset-top,0px);z-index:30;padding-top:18px;pointer-events:none}
  .nav{pointer-events:auto;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:10px 12px 10px 20px;border-radius:999px;
    background:rgba(239,231,218,.30);backdrop-filter:blur(22px) saturate(1.25);-webkit-backdrop-filter:blur(22px) saturate(1.25);box-shadow:inset 0 0 0 1px rgba(255,255,255,.22), 0 20px 50px -30px rgba(58,48,76,.35)}
  .nav.solid{background:rgba(239,231,218,.72);box-shadow:inset 0 0 0 1px rgba(94,79,125,.14), 0 20px 50px -30px rgba(58,48,76,.45)}
  .nav .lock{height:44px;width:auto}
  .nav ul{display:flex;gap:30px;list-style:none;margin:0;padding:0;font-size:12px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:#fff;text-shadow:0 1px 12px rgba(24,18,38,.45);transition:color .5s var(--ease), text-shadow .5s var(--ease)}
  .nav.solid ul{color:var(--plum);text-shadow:none}
  .nav .lock{transition:filter .5s var(--ease)}
  .nav:not(.solid) .lock{filter:brightness(0) invert(1) drop-shadow(0 1px 10px rgba(24,18,38,.5))}
  .nav ul a{position:relative;padding:6px 0}
  .nav ul a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--ameth);transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease)}
  .nav ul a:hover::after,.nav ul a[aria-current]::after{transform:scaleX(1)}
  .nav .btn{padding-block:8px}
  .burger{display:none;border:0;padding:0;cursor:pointer}

  /* sections */
  section{position:relative}
  .grid>*{min-width:0}
  .hero .copy,.hero .wrap{min-width:0}
  .pad{padding-block:clamp(88px,11vw,150px)}
  .on-dark{background:var(--plum);color:#fff}
  .on-white{background:var(--white)}
  .grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(20px,3vw,40px)}
  .ph{position:relative;overflow:hidden;background:var(--soft)}
  .ph img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
  .ph:hover img{transform:scale(1.03)}
  .cap{position:absolute;left:14px;bottom:14px;font-size:10px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:#fff;background:rgba(17,15,20,.42);padding:6px 10px;border-radius:999px;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}

  /* hero */
  .hero{min-height:min(92vh,880px);display:grid;align-items:end;color:#fff;overflow:hidden;padding-top:120px}
  .hero .bg{position:absolute;inset:0;z-index:0}
  .hero .bg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:60% 55%;opacity:0;transform:scale(1.04);transition:opacity 1.8s var(--ease);will-change:opacity,transform}
  .hero .bg img.on{opacity:1;animation:kb 9s var(--ease) both}
  .hero .bg img.out{opacity:0;transition-duration:2.2s}
  @keyframes kb{from{transform:scale(1.12) translate3d(1.5%,1%,0)}to{transform:scale(1.04) translate3d(0,0,0)}}
  .hero .dots{position:absolute;left:clamp(16px,4vw,48px);bottom:clamp(112px,14vw,180px);z-index:3;display:flex;gap:8px}
  .hero .dots button{width:44px;height:2px;border:0;padding:0;margin:0;background:rgba(255,255,255,.28);position:relative;overflow:hidden;cursor:pointer;border-radius:2px}
  .hero .dots button::after{content:"";position:absolute;inset:0;background:var(--linen);transform:scaleX(0);transform-origin:left}
  .hero .dots button.on::after{animation:fill 7s linear forwards}
  @keyframes fill{to{transform:scaleX(1)}}
  .hero h1 .w{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:.06em;margin-bottom:-.06em}
  .hero h1 .w i{display:inline-block;font-style:normal;transform:translateY(110%);animation:wordup 1.1s var(--ease) forwards}
  @keyframes wordup{to{transform:translateY(0)}}
  .rot{display:inline-grid;vertical-align:bottom;text-align:left}
  .rot span{grid-area:1/1;color:var(--linen);font-weight:500;opacity:0;transform:translateY(.5em);transition:opacity .9s var(--ease), transform .9s var(--ease);white-space:nowrap}
  .rot span.on{opacity:1;transform:none}
  .rot span.off{opacity:0;transform:translateY(-.5em)}
  @media (prefers-reduced-motion:reduce){.hero .bg img.on{animation:none}.hero h1 .w i{animation:none;transform:none}.hero .dots button.on::after{animation:none;transform:scaleX(1)}}
  .hero .bg::after{content:"";position:absolute;inset:0;background:
      linear-gradient(90deg, rgba(30,24,44,.94) 0%, rgba(30,24,44,.86) 30%, rgba(30,24,44,.6) 52%, rgba(30,24,44,.22) 75%, rgba(30,24,44,.05) 100%),
      linear-gradient(0deg, rgba(30,24,44,.8) 0%, rgba(30,24,44,.15) 42%, rgba(30,24,44,.35) 100%)}
  .hero .wrap{position:relative;z-index:1;width:100%;padding-bottom:clamp(168px,20vw,248px)}
  .hero .copy{max-width:640px}
  .hero .name{font-size:clamp(88px,11vw,152px);color:var(--linen);margin:14px 0 0 -6px;text-shadow:0 10px 40px rgba(17,15,20,.25)}
  .hero .sub{font-size:12px;font-weight:500;letter-spacing:.34em;text-transform:uppercase;color:rgba(255,255,255,.85);margin:4px 0 30px 2px}
  .hero h1{font-size:clamp(32px,3.9vw,54px);max-width:13ch;color:#fff;text-shadow:0 2px 30px rgba(18,14,28,.5)}
  .hero .lede{margin:22px 0 36px;font-size:19px;max-width:28em}
  .hero .cta{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
  .hero .badge{position:absolute;right:clamp(16px,4vw,48px);bottom:clamp(40px,6vw,80px);width:clamp(120px,12vw,168px);z-index:1;filter:drop-shadow(0 24px 30px rgba(17,15,20,.35))}
  .hero .meta{position:absolute;right:clamp(16px,4vw,48px);top:112px;z-index:2;display:flex;flex-direction:column;gap:7px;text-align:right;font-size:10px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.82);
    padding:14px 18px;border-radius:1.1rem;background:rgba(30,24,44,.42);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.14)}
  .hero .meta b{font-weight:600;color:#fff;letter-spacing:.14em;font-size:11px}

  /* session */
  .session .head{grid-column:1/6;display:flex;flex-direction:column;gap:18px}
  .session h2{font-size:clamp(32px,3.6vw,48px);color:var(--plum)}
  .session .ph{grid-column:1/6;border-radius:1.6rem;aspect-ratio:3/2;margin-top:8px}
  .session .items{grid-column:7/13;display:grid;grid-template-columns:1fr;gap:0;align-self:center}
  .item{border-top:1px solid var(--rule);padding:30px 0 32px;display:grid;grid-template-columns:110px minmax(0,1fr);gap:24px;align-items:start;min-width:0}
  .item:last-child{border-bottom:1px solid var(--rule)}
  .item .k{font-size:11px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--ameth);display:flex;align-items:center;gap:8px;padding-top:6px}
  .item .k i{width:6px;height:6px;border-radius:50%;background:var(--linen);display:inline-block}
  .item h3{font-size:22px;color:var(--plum);margin-bottom:8px}
  .item p{font-size:16.5px;color:rgba(17,15,20,.74);line-height:1.65;max-width:30em}

  /* services */
  .services .intro{grid-column:1/13;display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:24px;margin-bottom:clamp(36px,5vw,64px)}
  .services h2{font-size:clamp(32px,3.6vw,48px);margin:18px 0 12px;max-width:14ch}
  .services .intro p{max-width:26em;color:rgba(255,255,255,.72)}
  /* ===== service tiles — photo always showing; hover grows the tile over its neighbours ===== */
  .services .cards{grid-column:1/13;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:clamp(14px,1.6vw,26px);
    width:min(1680px,calc(100vw - clamp(32px,7vw,88px)));margin-inline:calc(50% - min(840px,50vw - clamp(16px,3.5vw,44px)))}
  .svcard{position:relative;display:block;border-radius:1.5rem;overflow:hidden;isolation:isolate;aspect-ratio:4/5;
    background:var(--plum-2);transform-origin:center center;
    transition:transform .75s var(--ease), box-shadow .75s var(--ease);will-change:transform}
  .svcard:hover,.svcard:focus-visible{transform:scale(1.16);z-index:5;box-shadow:0 40px 80px -26px rgba(12,8,22,.85);outline:none}
  .svcard .flood{position:absolute;inset:0;z-index:0}
  .svcard .flood img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
  .svcard:hover .flood img{transform:scale(1.06)}
  .svcard .flood::after{content:"";position:absolute;inset:0;
    background:linear-gradient(0deg,rgba(22,16,34,.94) 0%,rgba(22,16,34,.66) 34%,rgba(22,16,34,.18) 66%,rgba(22,16,34,.06) 100%)}
  .svcard .body{position:absolute;inset:auto 0 0 0;z-index:1;padding:20px;display:flex;flex-direction:column}
  .svcard .ico{position:absolute;left:20px;top:20px;z-index:1;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;
    background:rgba(255,255,255,.16);color:#fff;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
  .svcard .ico svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
  .svcard h3{margin:0;font-size:clamp(17px,1.4vw,22px);line-height:1.15;color:#fff}
  .svcard p{margin-top:0;font-size:13.5px;line-height:1.5;color:rgba(255,255,255,.84);
    max-height:0;opacity:0;overflow:hidden;transition:max-height .75s var(--ease), opacity .55s var(--ease), margin-top .75s var(--ease)}
  .svcard:hover p,.svcard:focus-visible p{max-height:7em;opacity:1;margin-top:8px}
  .svcard .meta{margin-top:14px;padding-top:12px;border-top:1px solid rgba(255,255,255,.22);
    display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px}
  .svcard .dur{font-size:10.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.8)}
  .svcard .amt{font-size:20px;font-weight:600;color:#fff;font-variant-numeric:tabular-nums}
  .svcard .tbc{font-size:10px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:#fff;
    background:rgba(255,255,255,.16);padding:6px 11px;border-radius:999px}
  .svcard .book{margin-top:0;max-height:0;height:0;opacity:0;overflow:hidden;
    display:flex;align-items:center;justify-content:center;gap:10px;border-radius:999px;background:#fff;color:var(--plum);
    font-size:10.5px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;
    transition:max-height .75s var(--ease), height .75s var(--ease), opacity .55s var(--ease), margin-top .75s var(--ease)}
  .svcard:hover .book,.svcard:focus-visible .book{max-height:42px;height:38px;opacity:1;margin-top:14px}
  .svcard .book svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
  .svcard .ai{position:absolute;right:18px;top:24px;z-index:1;font-size:9px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.8)}
  @media (max-width:1100px){.services .cards{grid-template-columns:repeat(3,minmax(0,1fr));width:auto;margin-inline:0}
    .svcard:hover,.svcard:focus-visible{transform:scale(1.08)}}
  @media (max-width:760px){.services .cards{grid-template-columns:repeat(2,minmax(0,1fr))}
    .svcard p{max-height:none;opacity:1;margin-top:8px}
    .svcard .book{max-height:42px;height:38px;opacity:1;margin-top:14px}
    .svcard:hover,.svcard:focus-visible{transform:none;box-shadow:none}}
  @media (max-width:430px){.services .cards{grid-template-columns:minmax(0,1fr)}}
  .services .foot{grid-column:1/13;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;margin-top:34px;color:rgba(255,255,255,.62);font-size:15px}

  /* about */
  .about .grid{align-items:center}
  .about .ph{grid-column:1/6;aspect-ratio:4/5;border-radius:1.6rem;max-width:460px}
  .about .shell{grid-column:1/6;max-width:470px;justify-self:start}
  .shell{background:rgba(94,79,125,.07);box-shadow:inset 0 0 0 1px rgba(94,79,125,.10);border-radius:2rem;padding:.55rem}
  .core{border-radius:calc(2rem - .55rem);overflow:hidden;position:relative;box-shadow:inset 0 1px 1px rgba(255,255,255,.6)}
  .about .copy{grid-column:7/13}
  .about h2{font-size:clamp(36px,4.4vw,60px);color:var(--plum);margin:18px 0 22px}
  .about h2 .script{font-size:1.28em;color:var(--ameth);margin-left:6px}
  .about p{font-size:19px;max-width:30em;color:rgba(17,15,20,.78)}
  .about .creds{display:flex;flex-wrap:wrap;gap:8px;margin-top:26px}
  .about .creds span{font-size:11px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--plum);background:rgba(223,211,241,.7);padding:8px 13px;border-radius:999px}
  .about .link{display:inline-flex;align-items:center;gap:12px;margin-top:30px;font-size:12px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--plum)}
  .about .link i{width:34px;height:1px;background:var(--ameth);transition:width .6s var(--ease)}
  .about .link:hover i{width:56px}

  /* location */
  .where .panel{grid-column:1/13}
  .where .shell{padding:.6rem}
  .where .core{background:var(--soft);display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:stretch}
  .where .txt{padding:clamp(36px,5vw,72px);display:flex;flex-direction:column;justify-content:center;gap:16px}
  .where h2{font-size:clamp(30px,3.4vw,44px);color:var(--plum)}
  .where p{color:rgba(17,15,20,.76);max-width:26em}
  .where .coord{margin-top:10px;display:flex;flex-wrap:wrap;gap:22px;font-size:11px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--ameth)}
  .where .coord b{font-weight:600;color:var(--plum)}
  .where .ph{min-height:380px}

  /* cta */
  .cta-band{text-align:center;overflow:hidden}
  .cta-band .bgp{position:absolute;inset:0;z-index:0}
  .cta-band .bgp img{width:100%;height:100%;object-fit:cover;opacity:.28;filter:saturate(.7)}
  .cta-band .bgp::after{content:"";position:absolute;inset:0;background:radial-gradient(80% 70% at 50% 60%, rgba(58,48,76,.35), rgba(58,48,76,.92) 75%)}
  .cta-band .wrap{position:relative;z-index:1}
  .cta-band .script{font-size:clamp(72px,8vw,104px);color:var(--linen)}
  .cta-band h2{font-size:clamp(32px,3.8vw,50px);margin:6px 0 16px}
  .cta-band p{max-width:30em;margin-inline:auto;color:rgba(255,255,255,.76)}
  .cta-band .row{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-top:36px}

  footer{background:var(--plum-2);color:rgba(255,255,255,.7);padding-block:56px 40px}
  footer .in{display:flex;flex-direction:column;align-items:center;gap:22px;text-align:center}
  footer img{width:104px}
  footer ul{display:flex;flex-wrap:wrap;gap:28px;justify-content:center;list-style:none;margin:0;padding:0;font-size:11.5px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--soft)}
  footer small{font-size:12.5px;color:rgba(198,179,222,.8)}

  /* motion */
  .rise{animation:rise 1.1s var(--ease) both}
  .rise.d1{animation-delay:.08s}.rise.d2{animation-delay:.18s}.rise.d3{animation-delay:.28s}.rise.d4{animation-delay:.4s}.rise.d5{animation-delay:.55s}
  @keyframes rise{from{transform:translateY(14px);filter:blur(6px)}to{transform:none;filter:blur(0)}}
  .rv{opacity:0;transform:translateY(28px);filter:blur(6px);transition:opacity 1s var(--ease), transform 1s var(--ease), filter 1s var(--ease)}
  .rv.in{opacity:1;transform:none;filter:blur(0)}
  @media (prefers-reduced-motion:reduce){.rise{animation:none}.rv{opacity:1;transform:none;filter:none;transition:none}}

  .stamp{position:fixed;left:14px;bottom:14px;z-index:45;font-size:10px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--plum);background:rgba(255,255,255,.7);padding:7px 11px;border-radius:999px;box-shadow:inset 0 0 0 1px rgba(94,79,125,.2);backdrop-filter:blur(8px)}

  /* ambient motion — slow, GPU-only (transform/opacity), no filters */
  .amb{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
  .amb+.wrap{position:relative;z-index:1}
  .orb{position:absolute;border-radius:50%;width:52vw;height:52vw;max-width:720px;max-height:720px;opacity:.8;will-change:transform;
    background:radial-gradient(circle at 50% 50%, rgba(198,179,222,.55) 0%, rgba(198,179,222,.18) 40%, rgba(198,179,222,0) 70%);animation:drift 34s ease-in-out infinite alternate}
  .orb.b{background:radial-gradient(circle at 50% 50%, rgba(239,231,218,.9) 0%, rgba(239,231,218,.25) 40%, rgba(239,231,218,0) 70%);animation-duration:46s;animation-delay:-18s}
  .orb.c{background:radial-gradient(circle at 50% 50%, rgba(139,121,173,.35) 0%, rgba(139,121,173,.1) 45%, rgba(139,121,173,0) 70%);animation-duration:40s;animation-delay:-9s}
  .on-dark .orb{background:radial-gradient(circle at 50% 50%, rgba(198,179,222,.22) 0%, rgba(198,179,222,.07) 40%, rgba(198,179,222,0) 70%)}
  .on-dark .orb.b{background:radial-gradient(circle at 50% 50%, rgba(139,121,173,.28) 0%, rgba(139,121,173,.08) 45%, rgba(139,121,173,0) 70%)}
  @keyframes drift{0%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(6vw,-4vh,0) scale(1.08)}100%{transform:translate3d(-4vw,5vh,0) scale(.96)}}
  .hero .sheen{position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(112deg, rgba(255,255,255,0) 42%, rgba(255,255,255,.07) 50%, rgba(255,255,255,0) 58%);background-size:220% 100%;animation:sheen 16s ease-in-out infinite}
  @keyframes sheen{0%{background-position:120% 0}100%{background-position:-120% 0}}
  @media (prefers-reduced-motion:reduce){.orb,.hero .sheen{animation:none}}

  /* leaf shades — hero and the purple bands */
  .leaf.p1 svg{fill:#DFD3F1;opacity:.32}
  .leaf.p2 svg{fill:#C6B3DE;opacity:.30}
  .leaf.p3 svg{fill:#8B79AD;opacity:.34}
  .leaf.p4 svg{fill:#5E4F7D;opacity:.40}
  .leaf.p5 svg{fill:#3A304C;opacity:.34}
  .hero .leaves{z-index:1}

  /* wind-blown leaves */
  .leaves{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1}
  .leaf{position:absolute;width:var(--lz,30px);height:var(--lz,30px);opacity:0;will-change:transform,opacity;
    animation:blow var(--ld,30s) linear var(--ldl,0s) infinite}
  .leaf svg{width:100%;height:100%;display:block;fill:var(--linen);opacity:.5}
  .leaf.d svg{fill:#8B79AD;opacity:.42}
  .leaf i{display:block;width:100%;height:100%;animation:tumble var(--lt,7s) ease-in-out infinite;transform-origin:50% 50%}
  @keyframes blow{
    0%{transform:translate3d(-12vw,0,0) rotate(0deg);opacity:0}
    8%{opacity:1}
    50%{transform:translate3d(52vw,var(--ly,-34px),0) rotate(180deg)}
    92%{opacity:1}
    100%{transform:translate3d(118vw,var(--ly2,26px),0) rotate(360deg);opacity:0}}
  @keyframes tumble{0%,100%{transform:rotate(-18deg) scale(1)}50%{transform:rotate(20deg) scale(.86)}}
  @media (prefers-reduced-motion:reduce){.leaf{animation:none;opacity:0}}

  /* persistent WhatsApp button */
  .wa{position:fixed;right:18px;bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:35;display:flex;align-items:center;gap:0;height:56px;border-radius:999px;background:var(--ameth);color:#fff;
    box-shadow:0 18px 40px -14px rgba(58,48,76,.6), inset 0 1px 1px rgba(255,255,255,.18);transition:transform .6s var(--ease), background-color .6s var(--ease), gap .6s var(--ease), padding .6s var(--ease);padding:0 0 0 0}
  .wa .g{width:56px;height:56px;display:grid;place-items:center;flex:none}
  .wa .g svg{width:26px;height:26px;fill:currentColor}
  .wa .l{max-width:0;overflow:hidden;white-space:nowrap;font-size:11.5px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;transition:max-width .7s var(--ease), padding .7s var(--ease);padding:0}
  .wa:hover{background:var(--plum);transform:translateY(-2px)}
  .wa:hover .l{max-width:180px;padding-right:22px}
  .wa::before{content:"";position:absolute;inset:-6px;border-radius:999px;border:1px solid rgba(94,79,125,.5);animation:pulse 3.6s ease-out infinite;pointer-events:none}
  @keyframes pulse{0%{transform:scale(.9);opacity:.7}70%{transform:scale(1.25);opacity:0}100%{transform:scale(1.25);opacity:0}}
  @media (prefers-reduced-motion:reduce){.wa::before{animation:none;opacity:0}}
  @media (max-width:768px){.wa{height:52px}.wa .g{width:52px;height:52px}.stamp{display:none}}

  /* responsive */
  @media (max-width:1000px){
    .session .head,.session .ph,.session .items,.about .shell,.about .copy{grid-column:1/13}
    .session .items{margin-top:30px}
    .about .copy{margin-top:40px}
    .where .core{grid-template-columns:minmax(0,1fr)}
    .where .ph{min-height:300px}
    .hero .meta{display:none}
  }
  @media (max-width:768px){
    body{font-size:17px}
    .nav ul,.nav .btn{display:none}
    .burger{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:rgba(94,79,125,.08);position:relative}
    .burger span{position:absolute;width:16px;height:1.2px;background:var(--plum)}
    .burger span:first-child{transform:translateY(-3px)} .burger span:last-child{transform:translateY(3px)}
    .hero{min-height:auto;padding-top:110px}
    .hero .bg::after{background:linear-gradient(0deg, rgba(46,38,64,.88) 0%, rgba(46,38,64,.6) 45%, rgba(46,38,64,.2) 100%)}
    .hero .name{font-size:clamp(76px,22vw,96px)}
    .hero h1{max-width:none}
    .hero .badge{display:none}
    .item{grid-template-columns:minmax(0,1fr);gap:8px;padding:24px 0}
    .where .txt{padding:28px}
  }

/* ================= Services page ================= */
/* ============ Standard page banner ============
     Every inner page uses this: photo, plum scrim, leaves drifting across, straight bottom.
     Home's hero is the same pattern at full height. Leaf shades + motion come from the
     shared .leaf rules in the base stylesheet.                                            */
  .phero .leaves{z-index:1}

  /* ============ Services page ============ */
  /* page hero — shorter than Home's, same language */
  .phero{min-height:min(62vh,600px);display:grid;align-items:end;color:#fff;overflow:hidden;padding-top:130px}
  .phero .bg{position:absolute;inset:0;z-index:0}
  .phero .bg img{width:100%;height:100%;object-fit:cover;object-position:50% 58%}
  .phero .bg::after{content:"";position:absolute;inset:0;background:
      linear-gradient(90deg, rgba(30,24,44,.92) 0%, rgba(30,24,44,.8) 34%, rgba(30,24,44,.45) 60%, rgba(30,24,44,.1) 100%),
      linear-gradient(0deg, rgba(30,24,44,.75) 0%, rgba(30,24,44,.1) 50%)}
  .phero .wrap{position:relative;z-index:2;width:100%;padding-bottom:clamp(56px,7vw,92px)}
  .phero h1{font-size:clamp(40px,6vw,82px);color:#fff;max-width:11ch;text-shadow:0 2px 30px rgba(18,14,28,.5);margin-top:16px}
  .phero .lede{margin-top:22px;font-size:19px;max-width:32em}

  /* sticky modality jump bar */
  .jump{position:sticky;top:calc(84px + env(safe-area-inset-top,0px));z-index:20;background:var(--white);border-bottom:1px solid var(--rule)}
  .jump .in{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding-block:12px}
  .jump .in::-webkit-scrollbar{display:none}
  .jump a{flex:none;padding:9px 16px;border-radius:999px;font-size:11.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--ameth);white-space:nowrap;
    transition:background-color .5s var(--ease), color .5s var(--ease)}
  .jump a:hover,.jump a.on{background:var(--soft);color:var(--plum)}

  /* price note */
  .pricenote{background:var(--sand);}
  .pricenote .in{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px;padding-block:clamp(28px,4vw,44px)}
  .pricenote p{max-width:44em;color:rgba(17,15,20,.8)}
  .pricenote b{font-weight:600;color:var(--plum)}

  /* service rows */
  .svc{padding-block:clamp(64px,8vw,110px)}
  .svc:nth-of-type(even){background:var(--white)}
  .svc .grid{align-items:center}
  .svc .shot{grid-column:1/6}
  .svc:nth-of-type(even) .shot{grid-column:8/13;order:2}
  .svc .copy{grid-column:7/13}
  .svc:nth-of-type(even) .copy{grid-column:1/7;order:1}
  .svc .ph{aspect-ratio:13/10;border-radius:1.6rem}
  .svc .n{font-size:11px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--ameth);display:flex;align-items:center;gap:12px}
  .svc .n span{font-variant-numeric:tabular-nums}
  .svc .n i{display:block;width:26px;height:1px;background:var(--ameth);opacity:.7}
  .svc h2{font-size:clamp(28px,3.2vw,42px);color:var(--plum);margin:14px 0 16px}
  .svc p{font-size:17.5px;color:rgba(17,15,20,.78);max-width:34em}
  .svc p.lead{font-size:19px;color:rgba(17,15,20,.84)}
  .svc p.more{margin-top:16px;font-size:16.5px;color:rgba(17,15,20,.66)}
  .svc .facts{margin-top:28px;display:flex;flex-direction:column;gap:0}
  .svc .facts .f{display:grid;grid-template-columns:150px minmax(0,1fr);gap:18px;padding:13px 0;border-top:1px solid var(--rule)}
  .svc .facts .f:last-child{border-bottom:1px solid var(--rule)}
  .svc .facts b{font-size:10.5px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--ameth);padding-top:3px}
  .svc .facts span{font-size:15.5px;color:rgba(17,15,20,.76)}
  /* the price slot: built now, filled the moment Tee has numbers */
  .price{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px 16px;margin-top:22px}
  .price .amt{font-size:26px;font-weight:600;color:var(--plum);letter-spacing:-.01em;font-variant-numeric:tabular-nums}
  .price .dur{font-size:13px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--ameth)}
  .price .tbc{font-size:13px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--ameth);
    background:var(--soft);padding:9px 15px;border-radius:999px}
  .svc .go{display:inline-flex;align-items:center;gap:12px;margin-top:24px;font-size:12px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--plum)}
  .svc .go i{width:34px;height:1px;background:var(--ameth);transition:width .6s var(--ease)}
  .svc .go:hover i{width:56px}

  /* home visits */
  .visit{background:var(--plum);color:#fff;overflow:hidden}
  .visit .grid{align-items:stretch;gap:0}
  .visit .ph{grid-column:1/6;min-height:420px}
  .visit .copy{grid-column:7/13;padding-block:clamp(64px,8vw,110px);display:flex;flex-direction:column;justify-content:center}
  .visit h2{font-size:clamp(30px,3.4vw,46px);margin:16px 0 18px}
  .visit p{color:rgba(255,255,255,.78);max-width:30em}
  .visit .pts{list-style:none;margin:26px 0 0;padding:0;display:flex;flex-direction:column;gap:0}
  .visit .pts li{display:flex;gap:16px;padding:16px 0;border-top:1px solid var(--rule-dark);font-size:16px;color:rgba(255,255,255,.82)}
  .visit .pts li:last-child{border-bottom:1px solid var(--rule-dark)}
  .visit .pts b{font-weight:600;color:#fff;flex:none;width:104px;font-size:11px;letter-spacing:.2em;text-transform:uppercase;padding-top:4px}

  /* booking */
  .book{text-align:center}
  .book .script{font-size:clamp(64px,7vw,92px);color:var(--ameth)}
  .book h2{font-size:clamp(30px,3.6vw,46px);color:var(--plum);margin:4px 0 16px}
  .book p{max-width:32em;margin-inline:auto;color:rgba(17,15,20,.78)}
  .book .row{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-top:34px}

  @media (max-width:1000px){
    .svc .shot,.svc .copy,.svc:nth-of-type(even) .shot,.svc:nth-of-type(even) .copy{grid-column:1/13}
    .svc:nth-of-type(even) .shot{order:0}
    .svc:nth-of-type(even) .copy{order:1}
    .svc .copy{margin-top:30px}
    .svc .facts .f{grid-template-columns:130px minmax(0,1fr);gap:14px}
    .visit .ph{grid-column:1/13;min-height:300px}
    .visit .copy{grid-column:1/13;padding-block:clamp(48px,7vw,80px)}
  }
  @media (max-width:768px){
    .phero{min-height:auto;padding-top:118px}
    .jump{top:calc(76px + env(safe-area-inset-top,0px))}
    .jump .in{padding-inline:0}
    .visit .pts li{flex-direction:column;gap:6px}
    .visit .pts b{width:auto}
    .svc .facts .f{grid-template-columns:minmax(0,1fr);gap:4px}
    .svc .facts b{padding-top:0}
  }

/* ================= About ================= */
/* ============ Standard page banner (locked 2026-09-22) ============ */
  .phero{min-height:min(58vh,560px);display:grid;align-items:end;color:#fff;overflow:hidden;padding-top:130px}
  .phero .bg{position:absolute;inset:0;z-index:0}
  .phero .bg img{width:100%;height:100%;object-fit:cover;object-position:50% 52%}
  .phero .bg::after{content:"";position:absolute;inset:0;background:
      linear-gradient(90deg, rgba(30,24,44,.92) 0%, rgba(30,24,44,.8) 34%, rgba(30,24,44,.45) 60%, rgba(30,24,44,.1) 100%),
      linear-gradient(0deg, rgba(30,24,44,.75) 0%, rgba(30,24,44,.1) 50%)}
  .phero .wrap{position:relative;z-index:2;width:100%;padding-bottom:clamp(56px,7vw,92px)}
  .phero .leaves{z-index:1}
  .phero h1{font-size:clamp(40px,6vw,82px);color:#fff;max-width:11ch;text-shadow:0 2px 30px rgba(18,14,28,.5);margin-top:16px}
  .phero h1 .script{color:var(--linen);font-size:1.12em}
  .phero .lede{margin-top:20px;font-size:19px;max-width:32em}

  /* ============ About ============ */
  /* intro: portrait beside the training copy */
  .intro .grid{align-items:center}
  .intro .shell{grid-column:1/6;max-width:470px;justify-self:start}
  .shell{background:rgba(94,79,125,.07);box-shadow:inset 0 0 0 1px rgba(94,79,125,.10);border-radius:2rem;padding:.55rem}
  .core{border-radius:calc(2rem - .55rem);overflow:hidden;position:relative;box-shadow:inset 0 1px 1px rgba(255,255,255,.6)}
  .intro .copy{grid-column:7/13}
  .intro h2{font-size:clamp(28px,3.2vw,42px);color:var(--plum);margin:16px 0 18px}
  .intro p{font-size:18px;color:rgba(17,15,20,.78);max-width:32em}
  .creds{display:flex;flex-wrap:wrap;gap:8px;margin-top:28px}
  .creds span{font-size:11px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--plum);background:var(--soft);padding:9px 14px;border-radius:999px}

  /* why — a quiet pull quote on plum */
  .why{background:var(--plum);color:#fff;overflow:hidden;text-align:center}
  .why .wrap{position:relative;z-index:1}
  .why .mark{font-family:var(--display);font-size:clamp(72px,9vw,120px);line-height:.6;color:var(--linen);opacity:.5}
  .why blockquote{margin:0;padding:0;font-size:clamp(22px,2.6vw,34px);line-height:1.38;font-weight:500;letter-spacing:-.01em;max-width:20em;margin-inline:auto;text-wrap:balance}
  .why .by{margin-top:26px;font-size:11px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--linen)}
  .why .draft{margin-top:18px;font-size:12px;letter-spacing:.06em;color:rgba(255,255,255,.5)}

  /* where — photo band with the facts beside it */
  .where2 .grid{align-items:stretch;gap:0}
  .where2 .shell{grid-column:1/7;padding:0;background:none;box-shadow:none}
  .where2 .ph{grid-column:1/7;min-height:440px;border-radius:1.6rem;overflow:hidden;position:relative}
  .where2 .ph img{width:100%;height:100%;object-fit:cover}
  .where2 .copy{grid-column:8/13;display:flex;flex-direction:column;justify-content:center;padding-block:clamp(40px,5vw,72px)}
  .where2 h2{font-size:clamp(28px,3.2vw,42px);color:var(--plum);margin:16px 0 18px}
  .where2 p{font-size:17.5px;color:rgba(17,15,20,.78);max-width:30em}
  .where2 .pts{list-style:none;margin:28px 0 0;padding:0}
  .where2 .pts li{display:grid;grid-template-columns:132px minmax(0,1fr);gap:18px;padding:14px 0;border-top:1px solid var(--rule);font-size:16px;color:rgba(17,15,20,.76)}
  .where2 .pts li:last-child{border-bottom:1px solid var(--rule)}
  .where2 .pts b{font-size:10.5px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--ameth);padding-top:4px}

  /* care note — deliberately plain, it is the safety paragraph */
  .care .shell{grid-column:2/12}
  .care .core{background:var(--soft);padding:clamp(36px,5vw,64px);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:clamp(24px,4vw,56px);align-items:start}
  .care h2{font-size:clamp(24px,2.6vw,32px);color:var(--plum)}
  .care p{font-size:17px;color:rgba(17,15,20,.8)}
  .care p+p{margin-top:14px}

  /* closing */
  .close{text-align:center}
  .close .script{font-size:clamp(64px,7vw,92px);color:var(--ameth)}
  .close h2{font-size:clamp(30px,3.6vw,46px);color:var(--plum);margin:4px 0 16px}
  .close p{max-width:32em;margin-inline:auto;color:rgba(17,15,20,.78)}
  .close .row{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-top:34px}

  @media (max-width:1000px){
    .intro .shell,.intro .copy,.where2 .ph,.where2 .copy,.care .shell{grid-column:1/13}
    .intro .shell{max-width:420px;margin-inline:auto}
    .intro .copy{margin-top:36px}
    .where2 .ph{min-height:320px}
    .where2 .copy{margin-top:34px}
    .care .core{grid-template-columns:minmax(0,1fr)}
  }
  @media (max-width:768px){
    .phero{min-height:auto;padding-top:118px}
    .where2 .pts li{grid-template-columns:minmax(0,1fr);gap:4px}
    .where2 .pts b{padding-top:0}
  }

/* ================= Contact ================= */
/* ============ Booking ============ */
  .booking .form{grid-column:1/8}
  .booking .side{grid-column:9/13}
  .booking h2{font-size:clamp(26px,3vw,38px);color:var(--plum);margin:14px 0 10px}
  .booking .intro{font-size:17px;color:rgba(17,15,20,.74);max-width:32em;margin-bottom:34px}

  /* Fluent Forms, restyled to the brand. Selectors are scoped so no other form is touched. */
  .tees-form .frm-fluent-form{display:flex;flex-direction:column;gap:20px}
  .tees-form .ff-el-group{margin:0}
  .tees-form .ff-t-container{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
  .tees-form .ff-t-cell{min-width:0}
  .tees-form .ff-el-input--label label{display:block;font-size:10.5px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--ameth);margin-bottom:9px}
  .tees-form .ff-el-input--label label .ff-el-is-required{color:var(--ameth)}
  .tees-form input[type=text],.tees-form input[type=email],.tees-form input[type=tel],.tees-form select,.tees-form textarea{
    width:100%;box-sizing:border-box;font-family:var(--sans);font-size:16px;color:var(--ink);
    background:var(--white);border:0;border-radius:.9rem;padding:15px 18px;line-height:1.4;
    box-shadow:inset 0 0 0 1px rgba(94,79,125,.24);
    transition:box-shadow .5s var(--ease), background-color .5s var(--ease)}
  .tees-form textarea{min-height:150px;resize:vertical}
  .tees-form select{appearance:none;-webkit-appearance:none;cursor:pointer;padding-right:46px;
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%235E4F7D' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M4 6.5 8 10.5 12 6.5'/></svg>");
    background-repeat:no-repeat;background-position:right 18px center}
  .tees-form input:hover,.tees-form select:hover,.tees-form textarea:hover{box-shadow:inset 0 0 0 1px rgba(94,79,125,.42)}
  .tees-form input:focus,.tees-form select:focus,.tees-form textarea:focus{
    outline:none;box-shadow:inset 0 0 0 2px var(--ameth), 0 0 0 4px rgba(198,179,222,.35)}
  .tees-form ::placeholder{color:rgba(17,15,20,.34)}
  .tees-form .ff-el-form-check{display:flex;align-items:center;gap:10px}
  .tees-form .ff-btn-submit,.tees-form button[type=submit]{
    display:inline-flex;align-items:center;justify-content:center;gap:14px;
    border:0;cursor:pointer;background:var(--ameth);color:#fff;
    padding:17px 34px;border-radius:999px;font-family:var(--sans);
    font-size:12.5px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;
    box-shadow:0 18px 40px -18px rgba(58,48,76,.55);
    transition:transform .6s var(--ease), background-color .6s var(--ease)}
  .tees-form .ff-btn-submit:hover{background:var(--plum)}
  .tees-form .ff-btn-submit:active{transform:scale(.98)}
  .tees-form .ff-el-is-error input,.tees-form .ff-el-is-error select,.tees-form .ff-el-is-error textarea{box-shadow:inset 0 0 0 2px #B4506B}
  .tees-form .error-text,.tees-form .text-danger{color:#B4506B;font-size:13px;margin-top:8px}
  .tees-form .ff-message-success{background:var(--soft);color:var(--plum);border-radius:1.1rem;padding:26px 28px;font-size:17px;line-height:1.5}
  .tees-form .ff_submit_btn_wrapper{margin-top:4px}
  .formnote{margin-top:22px;font-size:13.5px;color:rgba(17,15,20,.56);max-width:34em}

  /* side panel */
  .side .shell{background:rgba(94,79,125,.07);box-shadow:inset 0 0 0 1px rgba(94,79,125,.10);border-radius:2rem;padding:.55rem}
  .side .core{border-radius:calc(2rem - .55rem);overflow:hidden;background:var(--soft);padding:clamp(26px,3vw,36px)}
  .side h3{font-size:19px;color:var(--plum);margin:12px 0 18px}
  .side .row{display:flex;flex-direction:column;gap:0}
  .side .row a,.side .row div{display:block;padding:15px 0;border-top:1px solid rgba(94,79,125,.2);font-size:15.5px;color:rgba(17,15,20,.8)}
  .side .row b{display:block;font-size:10.5px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--ameth);margin-bottom:6px}
  .side .row a:hover{color:var(--plum)}
  .side .wabtn{margin-top:20px;width:100%}
  .side .map{margin-top:18px;font-size:14px;color:rgba(17,15,20,.66);line-height:1.55}

  @media (max-width:1000px){
    .booking .form,.booking .side{grid-column:1/13}
    .booking .side{margin-top:44px}
  }
  @media (max-width:768px){
    .phero{min-height:auto;padding-top:118px}
    .tees-form .ff-t-container{grid-template-columns:minmax(0,1fr)}
  }
/* ================= About ================= */
/* ============ Standard page banner (locked 2026-09-22) ============ */
  .phero{min-height:min(58vh,560px);display:grid;align-items:end;color:#fff;overflow:hidden;padding-top:130px}
  .phero .bg{position:absolute;inset:0;z-index:0}
  .phero .bg img{width:100%;height:100%;object-fit:cover;object-position:50% 52%}
  .phero .bg::after{content:"";position:absolute;inset:0;background:
      linear-gradient(90deg, rgba(30,24,44,.92) 0%, rgba(30,24,44,.8) 34%, rgba(30,24,44,.45) 60%, rgba(30,24,44,.1) 100%),
      linear-gradient(0deg, rgba(30,24,44,.75) 0%, rgba(30,24,44,.1) 50%)}
  .phero .wrap{position:relative;z-index:2;width:100%;padding-bottom:clamp(56px,7vw,92px)}
  .phero .leaves{z-index:1}
  .phero h1{font-size:clamp(40px,6vw,82px);color:#fff;max-width:11ch;text-shadow:0 2px 30px rgba(18,14,28,.5);margin-top:16px}
  .phero h1 .script{color:var(--linen);font-size:1.12em}
  .phero .lede{margin-top:20px;font-size:19px;max-width:32em}

  /* ============ About ============ */
  /* intro: portrait beside the training copy */
  .intro .grid{align-items:center}
  .intro .shell{grid-column:1/6;max-width:470px;justify-self:start}
  .shell{background:rgba(94,79,125,.07);box-shadow:inset 0 0 0 1px rgba(94,79,125,.10);border-radius:2rem;padding:.55rem}
  .core{border-radius:calc(2rem - .55rem);overflow:hidden;position:relative;box-shadow:inset 0 1px 1px rgba(255,255,255,.6)}
  .intro .copy{grid-column:7/13}
  .intro h2{font-size:clamp(28px,3.2vw,42px);color:var(--plum);margin:16px 0 18px}
  .intro p{font-size:18px;color:rgba(17,15,20,.78);max-width:32em}
  .creds{display:flex;flex-wrap:wrap;gap:8px;margin-top:28px}
  .creds span{font-size:11px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--plum);background:var(--soft);padding:9px 14px;border-radius:999px}

  /* why — a quiet pull quote on plum */
  .why{background:var(--plum);color:#fff;overflow:hidden;text-align:center}
  .why .wrap{position:relative;z-index:1}
  .why .mark{font-family:var(--display);font-size:clamp(72px,9vw,120px);line-height:.6;color:var(--linen);opacity:.5}
  .why blockquote{margin:0;padding:0;font-size:clamp(22px,2.6vw,34px);line-height:1.38;font-weight:500;letter-spacing:-.01em;max-width:20em;margin-inline:auto;text-wrap:balance}
  .why .by{margin-top:26px;font-size:11px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--linen)}
  .why .draft{margin-top:18px;font-size:12px;letter-spacing:.06em;color:rgba(255,255,255,.5)}

  /* where — photo band with the facts beside it */
  .where2 .grid{align-items:stretch;gap:0}
  .where2 .shell{grid-column:1/7;padding:0;background:none;box-shadow:none}
  .where2 .ph{grid-column:1/7;min-height:440px;border-radius:1.6rem;overflow:hidden;position:relative}
  .where2 .ph img{width:100%;height:100%;object-fit:cover}
  .where2 .copy{grid-column:8/13;display:flex;flex-direction:column;justify-content:center;padding-block:clamp(40px,5vw,72px)}
  .where2 h2{font-size:clamp(28px,3.2vw,42px);color:var(--plum);margin:16px 0 18px}
  .where2 p{font-size:17.5px;color:rgba(17,15,20,.78);max-width:30em}
  .where2 .pts{list-style:none;margin:28px 0 0;padding:0}
  .where2 .pts li{display:grid;grid-template-columns:132px minmax(0,1fr);gap:18px;padding:14px 0;border-top:1px solid var(--rule);font-size:16px;color:rgba(17,15,20,.76)}
  .where2 .pts li:last-child{border-bottom:1px solid var(--rule)}
  .where2 .pts b{font-size:10.5px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--ameth);padding-top:4px}

  /* care note — deliberately plain, it is the safety paragraph */
  .care .shell{grid-column:2/12}
  .care .core{background:var(--soft);padding:clamp(36px,5vw,64px);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:clamp(24px,4vw,56px);align-items:start}
  .care h2{font-size:clamp(24px,2.6vw,32px);color:var(--plum)}
  .care p{font-size:17px;color:rgba(17,15,20,.8)}
  .care p+p{margin-top:14px}

  /* closing */
  .close{text-align:center}
  .close .script{font-size:clamp(64px,7vw,92px);color:var(--ameth)}
  .close h2{font-size:clamp(30px,3.6vw,46px);color:var(--plum);margin:4px 0 16px}
  .close p{max-width:32em;margin-inline:auto;color:rgba(17,15,20,.78)}
  .close .row{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-top:34px}

  @media (max-width:1000px){
    .intro .shell,.intro .copy,.where2 .ph,.where2 .copy,.care .shell{grid-column:1/13}
    .intro .shell{max-width:420px;margin-inline:auto}
    .intro .copy{margin-top:36px}
    .where2 .ph{min-height:320px}
    .where2 .copy{margin-top:34px}
    .care .core{grid-template-columns:minmax(0,1fr)}
  }
  @media (max-width:768px){
    .phero{min-height:auto;padding-top:118px}
    .where2 .pts li{grid-template-columns:minmax(0,1fr);gap:4px}
    .where2 .pts b{padding-top:0}
  }

/* ================= Contact ================= */
/* ============ Booking ============ */
  .booking .form{grid-column:1/8}
  .booking .side{grid-column:9/13}
  .booking h2{font-size:clamp(26px,3vw,38px);color:var(--plum);margin:14px 0 10px}
  .booking .intro{font-size:17px;color:rgba(17,15,20,.74);max-width:32em;margin-bottom:34px}

  /* Fluent Forms, restyled to the brand. Selectors are scoped so no other form is touched. */
  .tees-form .frm-fluent-form{display:flex;flex-direction:column;gap:20px}
  .tees-form .ff-el-group{margin:0}
  .tees-form .ff-t-container{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
  .tees-form .ff-t-cell{min-width:0}
  .tees-form .ff-el-input--label label{display:block;font-size:10.5px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--ameth);margin-bottom:9px}
  .tees-form .ff-el-input--label label .ff-el-is-required{color:var(--ameth)}
  .tees-form input[type=text],.tees-form input[type=email],.tees-form input[type=tel],.tees-form select,.tees-form textarea{
    width:100%;box-sizing:border-box;font-family:var(--sans);font-size:16px;color:var(--ink);
    background:var(--white);border:0;border-radius:.9rem;padding:15px 18px;line-height:1.4;
    box-shadow:inset 0 0 0 1px rgba(94,79,125,.24);
    transition:box-shadow .5s var(--ease), background-color .5s var(--ease)}
  .tees-form textarea{min-height:150px;resize:vertical}
  .tees-form select{appearance:none;-webkit-appearance:none;cursor:pointer;padding-right:46px;
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%235E4F7D' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M4 6.5 8 10.5 12 6.5'/></svg>");
    background-repeat:no-repeat;background-position:right 18px center}
  .tees-form input:hover,.tees-form select:hover,.tees-form textarea:hover{box-shadow:inset 0 0 0 1px rgba(94,79,125,.42)}
  .tees-form input:focus,.tees-form select:focus,.tees-form textarea:focus{
    outline:none;box-shadow:inset 0 0 0 2px var(--ameth), 0 0 0 4px rgba(198,179,222,.35)}
  .tees-form ::placeholder{color:rgba(17,15,20,.34)}
  .tees-form .ff-el-form-check{display:flex;align-items:center;gap:10px}
  .tees-form .ff-btn-submit,.tees-form button[type=submit]{
    display:inline-flex;align-items:center;justify-content:center;gap:14px;
    border:0;cursor:pointer;background:var(--ameth);color:#fff;
    padding:17px 34px;border-radius:999px;font-family:var(--sans);
    font-size:12.5px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;
    box-shadow:0 18px 40px -18px rgba(58,48,76,.55);
    transition:transform .6s var(--ease), background-color .6s var(--ease)}
  .tees-form .ff-btn-submit:hover{background:var(--plum)}
  .tees-form .ff-btn-submit:active{transform:scale(.98)}
  .tees-form .ff-el-is-error input,.tees-form .ff-el-is-error select,.tees-form .ff-el-is-error textarea{box-shadow:inset 0 0 0 2px #B4506B}
  .tees-form .error-text,.tees-form .text-danger{color:#B4506B;font-size:13px;margin-top:8px}
  .tees-form .ff-message-success{background:var(--soft);color:var(--plum);border-radius:1.1rem;padding:26px 28px;font-size:17px;line-height:1.5}
  .tees-form .ff_submit_btn_wrapper{margin-top:4px}
  .formnote{margin-top:22px;font-size:13.5px;color:rgba(17,15,20,.56);max-width:34em}

  /* side panel */
  .side .shell{background:rgba(94,79,125,.07);box-shadow:inset 0 0 0 1px rgba(94,79,125,.10);border-radius:2rem;padding:.55rem}
  .side .core{border-radius:calc(2rem - .55rem);overflow:hidden;background:var(--soft);padding:clamp(26px,3vw,36px)}
  .side h3{font-size:19px;color:var(--plum);margin:12px 0 18px}
  .side .row{display:flex;flex-direction:column;gap:0}
  .side .row a,.side .row div{display:block;padding:15px 0;border-top:1px solid rgba(94,79,125,.2);font-size:15.5px;color:rgba(17,15,20,.8)}
  .side .row b{display:block;font-size:10.5px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--ameth);margin-bottom:6px}
  .side .row a:hover{color:var(--plum)}
  .side .wabtn{margin-top:20px;width:100%;white-space:nowrap}
  .side .map{margin-top:18px;font-size:14px;color:rgba(17,15,20,.66);line-height:1.55}

  @media (max-width:1000px){
    .booking .form,.booking .side{grid-column:1/13}
    .booking .side{margin-top:44px}
  }
  @media (max-width:768px){
    .phero{min-height:auto;padding-top:118px}
    .tees-form .ff-t-container{grid-template-columns:minmax(0,1fr)}
  }
/* --- WordPress canvas reset (templates bring their own chrome) --- */
html{-webkit-text-size-adjust:100%}
body.tees-page{margin:0;padding:0}
body.tees-page #main{display:block}
.skip{position:absolute;left:-9999px;top:0;z-index:100;background:var(--plum);color:#fff;padding:12px 20px;border-radius:0 0 12px 0;font-size:13px;letter-spacing:.12em;text-transform:uppercase}
.skip:focus{left:0}
.admin-bar header{top:calc(32px + env(safe-area-inset-top,0px))}
@media (max-width:782px){.admin-bar header{top:calc(46px + env(safe-area-inset-top,0px))}}
a:focus-visible,button:focus-visible{outline:2px solid var(--linen);outline-offset:3px}
