@font-face{font-family:"serif";src:url(/assets/fonts/0a002f5319e6b358-s.p.woff2) format("woff2");font-display:swap;font-weight:400;font-style:normal}@font-face{font-family:"serif";src:url(/assets/fonts/a191b9bac6f8600d-s.p.woff2) format("woff2");font-display:swap;font-weight:400;font-style:italic}@font-face{font-family:"serif";src:url(/assets/fonts/3db8134653b57583-s.p.woff2) format("woff2");font-display:swap;font-weight:500;font-style:normal}@font-face{font-family:"serif Fallback";src:local("Arial");ascent-override:106.51%;descent-override:24.71%;line-gap-override:0.00%;size-adjust:101.58%}.__className_398cc5{font-family:"serif","serif Fallback",Georgia,Times New Roman,serif}.__variable_398cc5{--font-serif:"serif","serif Fallback",Georgia,Times New Roman,serif}@font-face{font-family:sans;src:url(/assets/fonts/7ba2591d4d0cdc48-s.p.woff2) format("woff2");font-display:swap;font-weight:400;font-style:normal}@font-face{font-family:sans;src:url(/assets/fonts/01f11ea540e3939a-s.p.woff2) format("woff2");font-display:swap;font-weight:500;font-style:normal}@font-face{font-family:sans;src:url(/assets/fonts/e8bd9fc08858c4b1-s.p.woff2) format("woff2");font-display:swap;font-weight:600;font-style:normal}@font-face{font-family:sans Fallback;src:local("Arial");ascent-override:93.79%;descent-override:24.68%;line-gap-override:0.00%;size-adjust:101.29%}.__className_052c8a{font-family:sans,sans Fallback,Helvetica,Arial,sans-serif}.__variable_052c8a{--font-sans:"sans","sans Fallback",Helvetica,Arial,sans-serif}:root{--navy:#284858;--navy-deep:#2A3C4E;--teal:#125454;--taupe-logo:#C8B8A0;--taupe:#BA9C7E;--taupe-deep:#8F7455;--taupe-ink:#7E6548;--btn:#D2B490;--btn-hover:#C7A783;--cream:#F7F4EF;--blush:#F0E8E0;--linen:#F3EEE7;--offwhite:#FCFCF6;--line:#E7DFD4;--ink:#284858;--ink-soft:#4E5F6A;--serif:var(--font-serif),Georgia,"Times New Roman",serif;--sans:var(--font-sans),"Inter",-apple-system,"Segoe UI",Helvetica,Arial,sans-serif;--r-card:28px;--r-img:32px;--r-arch:56px;--wrap:1200px;--gutter:clamp(20px,5vw,64px);--section:clamp(72px,9vw,130px);--header-h:96px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 16px)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{background:var(--cream);font-family:var(--sans);font-size:17.5px;line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden}.serif,body,h1,h2,h3{margin:0;color:var(--ink)}.serif,h1,h2,h3{font-family:var(--serif);font-weight:400;letter-spacing:-.005em;line-height:1.18}h1{font-size:clamp(34px,4.6vw,58px)}h2{font-size:clamp(28px,3.2vw,42px)}h3{font-size:clamp(21px,1.6vw,24px);line-height:1.3}p{margin:0 0 1em}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gutter)}.section{padding:var(--section) 0;position:relative}.bg-blush{background:var(--blush)}.bg-linen{background:var(--linen)}.lead{color:var(--ink-soft);max-width:46ch}.center{text-align:center}.center .eyebrow,.center .lead{margin-left:auto;margin-right:auto}.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.skip-link{position:absolute;left:16px;top:-60px;z-index:100;background:var(--navy);color:var(--offwhite);padding:10px 16px;border-radius:10px;font-weight:600}.skip-link:focus{top:12px}mark.placeholder{background:#FFF1C9;color:#6B4E00;border:1px dashed #c9a13b;border-radius:6px;padding:0 5px;font-style:normal}.eyebrow{display:inline-flex;align-items:center;gap:14px;font-family:var(--sans);font-size:12.5px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--taupe-ink);margin:0 0 22px}.eyebrow:before{content:"";width:34px;height:1px;background:var(--taupe);flex:none}.eyebrow.on-dark{color:var(--taupe-logo)}.eyebrow.on-dark:before{background:var(--taupe-logo)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:15px 28px;border-radius:999px;min-height:48px;background:var(--btn);color:var(--navy);font-family:var(--sans);font-weight:600;font-size:16px;line-height:1;border:1px solid transparent;cursor:pointer;transition:background .35s ease,transform .35s ease,box-shadow .35s ease}.btn:hover{background:var(--btn-hover);transform:translateY(-1px);box-shadow:0 10px 26px -14px rgba(40,72,88,.45)}.acc-btn:focus-visible,.btn:focus-visible,.link-arrow:focus-visible,.path:focus-visible{outline:2px solid var(--navy);outline-offset:3px}.btn svg{width:15px;height:15px;transition:transform .35s ease}.btn:hover svg{transform:translateX(3px)}.btn-ghost{background:transparent;border-color:var(--taupe);color:var(--navy)}.btn-ghost:hover{background:rgba(210,180,144,.18);box-shadow:none}.btn-ghost.on-dark{border-color:var(--taupe-logo);color:var(--offwhite)}.btn[aria-disabled=true],.btn[disabled]{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.link-arrow{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-weight:600;font-size:16px;color:var(--taupe-ink);border-bottom:1px solid transparent;transition:border-color .3s ease}.link-arrow:hover{border-color:var(--taupe)}.actions{display:flex;flex-wrap:wrap;gap:16px;align-items:center}.center .actions{justify-content:center}.logo{display:inline-flex;gap:14px;min-height:44px}.logo,.logo-tile{align-items:center}.logo-tile{width:62px;height:62px;border-radius:12px;background:var(--navy-deep);flex:none;display:flex;flex-direction:column;justify-content:center;color:var(--offwhite);font-family:var(--serif);line-height:1;text-align:center;box-shadow:0 8px 20px -12px rgba(42,60,78,.5)}.logo-tile .t1{font-size:7px;color:var(--taupe-logo);letter-spacing:.06em;margin-bottom:2px}.logo-tile .t2{font-size:12px}.logo-tile .t3{font-size:7px;color:var(--taupe-logo);margin-top:3px;letter-spacing:0}.logo-name{font-family:var(--serif);font-size:17px;color:var(--navy);line-height:1.2}.site-header{position:-webkit-sticky;position:sticky;top:0;z-index:50;background:rgba(247,244,239,.9);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid rgba(231,223,212,.7)}.nav{justify-content:space-between;gap:20px;height:var(--header-h)}.nav,.nav-links{display:flex;align-items:center}.nav-links{gap:34px;list-style:none;margin:0 0 0 auto;padding:0}.nav-links a{font-size:15.5px;font-weight:500;color:var(--ink-soft);position:relative;padding:6px 0}.nav-links a:after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--taupe);transition:width .35s ease}.nav-links a:hover:after,.nav-links a[aria-current=page]:after{width:100%}.nav-links a[aria-current=page]{color:var(--navy)}.nav-book{padding:13px 24px;font-size:15px}.burger{display:none;background:none;border:0;padding:10px;cursor:pointer;width:44px;height:44px;margin-right:-10px}.burger span{display:block;width:24px;height:1.5px;background:var(--navy);margin:6px 0;transition:transform .3s ease,opacity .3s ease}.site-header.open .burger span:first-child{transform:translateY(7.5px) rotate(45deg)}.site-header.open .burger span:nth-child(2){opacity:0}.site-header.open .burger span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}.mobile-menu{display:none;border-top:1px solid var(--line);background:var(--cream)}.mobile-menu ul{list-style:none;margin:0;padding:8px 0 20px}.mobile-menu li a{display:block;padding:14px 0;font-size:19px;font-family:var(--serif);color:var(--navy);border-bottom:1px solid var(--line)}.site-header.open .mobile-menu{display:block}.hero{padding:clamp(56px,8vw,110px) 0 clamp(64px,8vw,120px);overflow:hidden}.hero .grid{display:grid;grid-template-columns:1.05fr .95fr;grid-gap:clamp(40px,6vw,96px);gap:clamp(40px,6vw,96px);align-items:center}.hero h1{margin-bottom:24px;max-width:17ch}.hero .sub,.hero-simple .sub{font-family:var(--serif);font-size:clamp(20px,1.7vw,24px);color:var(--taupe-deep);margin:0 0 34px;max-width:30ch}.hero-simple{padding:clamp(56px,8vw,110px) 0 clamp(40px,5vw,72px)}.hero-simple h1{max-width:20ch}.hero-simple.center h1{margin-left:auto;margin-right:auto}.hero-simple .sub{margin-bottom:0}.hero-simple.center .sub{margin-left:auto;margin-right:auto}.frame{position:relative;overflow:hidden;background:var(--linen);border-radius:var(--r-img);box-shadow:0 30px 60px -44px rgba(40,72,88,.45)}.frame.arch{border-radius:var(--r-arch) var(--r-arch) var(--r-img) var(--r-img)}.frame.portrait{aspect-ratio:4/4.6}.frame.landscape{aspect-ratio:16/10}.frame.wide{aspect-ratio:21/9}.frame.square{aspect-ratio:1/1}.frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.frame.ph{background:radial-gradient(120% 80% at 80% 20%,rgba(252,240,220,.9),transparent 60%),radial-gradient(90% 70% at 20% 90%,rgba(186,156,126,.35),transparent 60%),linear-gradient(160deg,#EFE5D8,#E2D2BE 55%,#CDB79D)}.ph-label svg{width:12px;height:12px;display:inline-block;vertical-align:-1px;margin-right:6px}.ph-label{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:max-content;max-width:84%;text-align:center;font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;line-height:1.5;color:#6B4E00;background:rgba(255,241,201,.92);border:1px dashed #c9a13b;padding:8px 14px;border-radius:12px}.intro-band{padding:clamp(64px,8vw,110px) 0}.intro-band h2{margin-bottom:14px}.intro-band p{color:var(--ink-soft);font-size:18px;margin:0}.heart{display:grid;grid-template-columns:.9fr 1.1fr;grid-gap:clamp(36px,5vw,72px);gap:clamp(36px,5vw,72px);align-items:stretch}.heart-intro{display:flex;flex-direction:column}.heart-intro h2{max-width:16ch;margin-bottom:32px}.heart-photo{flex:1 1;min-height:150px;width:100%}.heart-photo img{object-position:50% 45%}.heart-card{background:var(--offwhite);border-radius:var(--r-card);padding:clamp(30px,4vw,54px) clamp(28px,4vw,56px);border:1px solid rgba(231,223,212,.8)}.quote-stack{border-left:1px solid var(--taupe);padding-left:clamp(22px,3vw,36px)}.quote-stack p{font-family:var(--serif);font-size:clamp(19px,1.5vw,22.5px);line-height:1.5;margin:0 0 20px;color:var(--navy)}.quote-stack p:last-child{margin-bottom:0}.quote-stack em{font-style:italic;color:var(--taupe-deep)}.quote-stack .outcome{padding-top:22px;margin-top:26px;border-top:1px solid var(--line)}.quote-stack .outcome .accent{color:var(--taupe-deep)}.two-tone{text-align:center}.two-tone .l1,.two-tone .l2{font-family:var(--serif);display:block;line-height:1.3;margin:0 auto;max-width:24ch}.two-tone .l1{font-size:clamp(28px,3.4vw,46px);color:var(--navy)}.two-tone .l2{font-size:clamp(26px,3vw,40px);color:var(--taupe-deep)}.two-tone .rule{display:block;width:56px;height:1px;background:var(--taupe);margin:28px auto}.two-tone .actions{margin-top:44px}.quote-band{padding:clamp(80px,10vw,150px) 0}.section-head{max-width:60ch;margin-bottom:clamp(36px,4vw,56px)}.section-head h2{max-width:22ch}.section-head .lead{margin-top:18px;margin-bottom:0}.path-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:22px;gap:22px}.path{display:flex;flex-direction:column;justify-content:space-between;gap:30px;min-height:190px;padding:30px 32px;background:var(--offwhite);border:1px solid var(--line);border-radius:var(--r-card);transition:transform .4s ease,box-shadow .4s ease,border-color .4s ease}.path:hover{transform:translateY(-3px);box-shadow:0 26px 40px -34px rgba(40,72,88,.4);border-color:var(--taupe)}.path h3{margin-bottom:8px}.path p{color:var(--ink-soft);font-size:16.5px;margin:0;max-width:36ch}.path .go{display:flex;justify-content:flex-end;color:var(--taupe-ink)}.path .go svg{width:20px;height:20px;transition:transform .35s ease}.path:hover .go svg{transform:translate(3px,-3px)}.path.highlight{background:var(--btn);border-color:transparent}.path.highlight .go,.path.highlight p{color:var(--navy)}.video-grid{display:grid;grid-template-columns:.9fr 1.1fr;grid-gap:clamp(36px,5vw,80px);gap:clamp(36px,5vw,80px);align-items:center}.video-frame{aspect-ratio:16/9}.video-frame video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.ready{padding:clamp(48px,7vw,100px) 0 clamp(72px,9vw,130px)}.ready-card{background:var(--navy-deep);color:var(--offwhite);border-radius:36px;padding:clamp(56px,7vw,96px) var(--gutter);text-align:center;position:relative;overflow:hidden}.ready-card:before{content:"";position:absolute;width:520px;height:520px;border-radius:50%;border:1px solid rgba(200,184,160,.22);right:-160px;top:-260px;pointer-events:none}.ready-card h2{color:var(--offwhite);max-width:22ch;margin:0 auto 18px}.ready-card p{color:var(--taupe-logo);font-family:var(--serif);font-size:clamp(18px,1.5vw,21px);margin:0 auto 36px;max-width:42ch}.ready-card .actions{justify-content:center}.ready-card.no-body h2{margin-bottom:34px}.two-col{display:grid;grid-template-columns:1fr 1fr;grid-gap:clamp(36px,5vw,80px);gap:clamp(36px,5vw,80px);align-items:start}.soft-list{list-style:none;margin:26px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:10px}.soft-list li{border:1px solid var(--line);border-radius:999px;padding:9px 18px;font-size:16px;color:var(--navy)}.feel-card,.soft-list li{background:var(--offwhite)}.feel-card{border:1px solid rgba(231,223,212,.8);border-radius:var(--r-card);padding:clamp(28px,4vw,48px)}.feel-card h2{font-size:clamp(26px,2.6vw,36px);margin-bottom:14px}.feel-card .lead{margin-bottom:0}.dot-list{list-style:none;margin:22px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;grid-gap:12px 24px;gap:12px 24px}.dot-list li{position:relative;padding-left:20px;color:var(--navy);font-size:16.5px}.dot-list li:before{content:"";position:absolute;left:0;top:.72em;width:7px;height:7px;border-radius:50%;background:var(--taupe)}.closing-line{margin-top:30px;padding-top:24px;border-top:1px solid var(--line);font-family:var(--serif);font-size:clamp(20px,1.7vw,24px);line-height:1.45;color:var(--navy)}.closing-line .accent{color:var(--taupe-deep)}.approach-head{font-size:clamp(30px,3.6vw,48px);max-width:20ch;margin-bottom:24px}.approach-head .accent{color:var(--taupe-deep);display:block}.card{background:var(--offwhite);border-radius:var(--r-card);padding:30px 28px 32px;border:1px solid rgba(231,223,212,.8)}.card h3{margin-bottom:10px;font-size:clamp(20px,1.5vw,22px)}.card p{color:var(--ink-soft);font-size:16px;margin:0}.icon{width:48px;height:48px;border-radius:50%;background:var(--cream);display:flex;align-items:center;justify-content:center;margin-bottom:24px;color:var(--taupe-deep)}.icon svg{width:22px;height:22px}.note-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:22px;gap:22px}.note{background:var(--offwhite);border-radius:var(--r-card);padding:clamp(30px,4vw,48px);border:1px solid rgba(231,223,212,.8)}.note h2{font-size:clamp(24px,2.3vw,32px);margin-bottom:16px}.note p{color:var(--ink-soft);margin:0}.note.warm{background:var(--blush);border-color:transparent}.team-list{display:grid;grid-gap:clamp(56px,7vw,104px);gap:clamp(56px,7vw,104px)}.member{display:grid;grid-template-columns:.8fr 1.2fr;grid-gap:clamp(36px,5vw,80px);gap:clamp(36px,5vw,80px);align-items:center}.member:nth-child(2n) .member-photo{order:2}.member h2{margin-bottom:8px}.member .role{font-size:13px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--taupe-ink);margin-bottom:24px}.member .bio{color:var(--ink-soft);max-width:52ch}.member blockquote{margin:28px 0 0;padding-left:22px;border-left:1px solid var(--taupe);font-family:var(--serif);font-size:clamp(20px,1.7vw,24px);line-height:1.45;color:var(--navy)}.member blockquote .accent{color:var(--taupe-deep)}.member .actions{margin-top:30px}.appt-card{background:var(--offwhite);border:1px solid var(--line);border-radius:var(--r-card);padding:clamp(28px,4vw,44px);display:grid;grid-template-columns:1fr auto;grid-gap:24px 40px;gap:24px 40px;align-items:center}.appt-card h2{font-size:clamp(24px,2.4vw,32px);margin-bottom:12px;max-width:26ch}.appt-card .details{font-family:var(--serif);font-size:21px;color:var(--navy);margin:0 0 6px}.appt-card .deposit{color:var(--ink-soft);margin:0}.steps{list-style:none;counter-reset:step;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);grid-gap:14px;gap:14px}.steps li{counter-increment:step;position:relative;background:var(--offwhite);border:1px solid var(--line);border-radius:20px;padding:18px 18px 18px 60px;font-size:16px;color:var(--navy);min-height:64px}.steps li,.steps li:before{display:flex;align-items:center}.steps li:before{content:counter(step);position:absolute;left:16px;top:50%;transform:translateY(-50%);width:32px;height:32px;border-radius:50%;background:var(--cream);color:var(--taupe-ink);font-weight:600;font-size:15px;justify-content:center}.steps li[data-state=current]{border-color:var(--taupe);background:#FFFDF8}.steps li[data-state=current]:before{background:var(--btn);color:var(--navy)}.steps li[data-state=done]:before{content:"\2713";background:var(--navy);color:var(--offwhite)}.booking{margin-top:28px;background:var(--offwhite);border:1px solid var(--line);border-radius:var(--r-card);padding:clamp(24px,4vw,44px)}.booking[hidden]{display:none}.booking h3{margin-bottom:18px}.slot-days{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));grid-gap:16px;gap:16px}.slot-day{border:1px solid var(--line);border-radius:20px;padding:16px;background:var(--cream)}.slot-day .day{font-family:var(--serif);font-size:18px;color:var(--navy);margin-bottom:10px}.slot-times{display:flex;flex-wrap:wrap;gap:8px}.slot{min-height:44px;padding:10px 16px;border-radius:999px;border:1px solid var(--taupe);background:var(--offwhite);color:var(--navy);font:500 15px var(--sans);cursor:pointer}.slot:hover{background:#FFF8EE}.slot[aria-pressed=true]{background:var(--navy);border-color:var(--navy);color:var(--offwhite)}.chosen{margin:20px 0 0;padding:14px 18px;border-radius:16px;background:var(--blush);color:var(--navy)}.form-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:18px 20px;gap:18px 20px}.form-grid .full{grid-column:1/-1}.field label{display:block;font-size:15px;font-weight:600;color:var(--navy);margin-bottom:8px}.field input,.field textarea{width:100%;font:16px var(--sans);color:var(--navy);background:#FFFEFA;border:1px solid #dcd2c4;border-radius:14px;padding:13px 16px;min-height:48px}.field textarea{min-height:110px;resize:vertical}.field input:focus,.field textarea:focus{outline:2px solid var(--taupe);outline-offset:1px;border-color:var(--taupe)}.field .err{color:#8A3B2E;font-size:14px;margin-top:6px}.policy{background:var(--blush);border-radius:22px;padding:clamp(20px,3vw,30px);margin-bottom:22px}.policy ul{list-style:none;margin:0;padding:0;display:grid;grid-gap:14px;gap:14px}.policy li{position:relative;padding-left:20px;color:var(--navy)}.policy li:before{content:"";position:absolute;left:0;top:.72em;width:7px;height:7px;border-radius:50%;background:var(--taupe)}.policy strong{font-weight:600}.check{display:flex;gap:12px;align-items:flex-start;margin:4px 0 22px;color:var(--navy);cursor:pointer}.check input{width:22px;height:22px;margin:2px 0 0;accent-color:var(--navy);flex:none}.row-actions{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-top:26px}.integration-note{margin-top:18px;font-size:14px;color:#6B4E00;background:#FFF6DC;border:1px dashed #c9a13b;border-radius:12px;padding:10px 14px}.confirm{text-align:center;padding:clamp(12px,3vw,28px) 0}.confirm h3{font-size:clamp(28px,3vw,40px);margin-bottom:16px}.confirm p{color:var(--ink-soft);max-width:52ch;margin:0 auto 22px}.confirm .accent{font-family:var(--serif);font-size:clamp(20px,1.8vw,25px);color:var(--taupe-deep);margin-bottom:0}.confirm .summary{display:inline-block;margin:0 auto 22px;padding:12px 18px;border-radius:16px;background:var(--blush);color:var(--navy)}.reassure{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px 40px;background:var(--linen);border-radius:var(--r-card);padding:clamp(24px,4vw,40px) clamp(24px,4vw,48px)}.reassure p{margin:0;font-family:var(--serif);font-size:clamp(19px,1.6vw,23px);color:var(--navy);max-width:44ch}.faq-list{max-width:880px;margin:0 auto;border-top:1px solid var(--line)}.acc-item{border-bottom:1px solid var(--line)}.acc-item h2{font-size:inherit;margin:0}.acc-btn{width:100%;display:flex;justify-content:space-between;align-items:center;gap:24px;text-align:left;background:none;border:0;padding:26px 4px;cursor:pointer;min-height:64px;font-family:var(--serif);font-size:clamp(19px,1.7vw,23px);color:var(--navy);line-height:1.35}.acc-icon{flex:none;width:36px;height:36px;border-radius:50%;border:1px solid var(--taupe);position:relative;transition:background .3s ease}.acc-icon:after,.acc-icon:before{content:"";position:absolute;left:50%;top:50%;width:12px;height:1.5px;background:var(--taupe-ink);transform:translate(-50%,-50%);transition:transform .3s ease}.acc-icon:after{transform:translate(-50%,-50%) rotate(90deg)}.acc-btn[aria-expanded=true] .acc-icon{background:var(--btn);border-color:var(--btn)}.acc-btn[aria-expanded=true] .acc-icon:after{transform:translate(-50%,-50%) rotate(0deg)}.acc-panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .35s ease}.acc-panel>div{overflow:hidden}.acc-panel[data-open=true]{grid-template-rows:1fr}.acc-panel[data-open=false]>div{visibility:hidden;transition:visibility 0s .35s}.acc-panel p{color:var(--ink-soft);margin:0;padding:0 60px 28px 4px;max-width:70ch}.site-footer{background:var(--cream);border-top:1px solid var(--line);padding:64px 0 36px}.foot{display:grid;grid-template-columns:1.3fr 1fr 1fr;grid-gap:40px;gap:40px;align-items:start}.foot .tagline{font-family:var(--serif);font-size:20px;color:var(--navy);margin:22px 0 0;max-width:26ch}.foot ul{list-style:none;margin:0;padding:0}.foot li{margin:0 0 10px}.foot li a{color:var(--ink-soft);font-size:15.5px;transition:color .3s}.foot li a:hover{color:var(--navy)}.foot .contact li{color:var(--ink-soft);font-size:15.5px}.disclaimer{margin:44px 0 0;padding-top:24px;border-top:1px solid var(--line);line-height:1.6;max-width:92ch}.disclaimer,.legal{font-size:13.5px;color:var(--ink-soft)}.legal{margin-top:18px}.prose{max-width:70ch}.prose p{color:var(--ink-soft)}.js .reveal{opacity:0;transform:translateY(14px);transition:opacity .9s ease,transform .9s ease}.js .reveal.in{opacity:1;transform:none}.reveal.d1{transition-delay:.12s}.reveal.d2{transition-delay:.24s}.reveal.d3{transition-delay:.36s}@media (prefers-reduced-motion:reduce){.js .reveal{opacity:1;transform:none}.acc-panel,.btn,.btn svg,.js .reveal,.path,.path .go svg{transition:none}}@media (max-width:1100px){.steps{grid-template-columns:1fr 1fr}}@media (max-width:1024px){.heart{grid-template-columns:1fr}.heart-intro h2{margin-bottom:28px}.heart-photo{flex:none;aspect-ratio:16/10;min-height:0}.foot{grid-template-columns:1fr 1fr}.foot>div:first-child{grid-column:1/-1}}@media (max-width:900px){:root{--header-h:76px}.nav-links{display:none}.burger{display:block}.logo-tile{width:52px;height:52px}.logo-tile .t2{font-size:10.5px}.hero .grid,.member,.note-grid,.two-col,.video-grid{grid-template-columns:1fr}.hero{padding-top:40px}.hero-media{order:2}.frame.portrait{aspect-ratio:4/3.4}.member:nth-child(2n) .member-photo{order:0}.member-photo{max-width:460px}.appt-card{grid-template-columns:1fr}}@media (max-width:720px){.dot-list,.form-grid,.path-grid{grid-template-columns:1fr}.path{min-height:0;gap:22px}.ready-card{border-radius:28px}.foot{grid-template-columns:1fr;gap:30px}.acc-panel p{padding-right:4px}}@media (max-width:560px){.logo-name{display:none}}@media (max-width:400px){body{font-size:16.5px}.btn{padding:14px 22px;font-size:15px}.nav-book{padding:12px 18px;font-size:14.5px}.hero .actions{flex-direction:column;align-items:stretch}.hero .actions .btn{justify-content:center}.heart-card{padding:26px 22px}.quote-stack{padding-left:18px}}.link-arrow svg{width:15px;height:15px;flex:none}.link-arrow{white-space:nowrap}.two-tone .actions{justify-content:center}.hero-simple .sub{max-width:40ch}.hero-simple h1{margin-bottom:20px}.member:nth-child(2n){grid-template-columns:1.2fr .8fr}.intro-band p.eyebrow,.ready-card p.eyebrow,p.eyebrow{font-family:var(--sans);font-size:12.5px;font-weight:600;letter-spacing:.22em;line-height:1.7;text-transform:uppercase;margin:0 0 22px;max-width:none}.intro-band p.eyebrow{color:var(--taupe-ink)}.ready-card p.eyebrow{color:var(--taupe-logo)}@media (max-width:900px){.member:nth-child(2n){grid-template-columns:1fr}}.logo-tile span{white-space:nowrap}@media (max-width:900px){.nav-book{margin-left:auto}}@media (max-width:560px){.steps{grid-template-columns:1fr 1fr;gap:10px}.steps li{padding:12px 12px 12px 50px;font-size:14.5px;line-height:1.35;min-height:60px}.steps li:before{left:12px;width:28px;height:28px;font-size:14px}.eyebrow,p.eyebrow{letter-spacing:.16em}}
/* v1.0.4: logo file, hero banners, sensory support photo */
.logo-img{display:block;object-fit:cover;background:none;padding:0}
.hero-banner{margin:clamp(36px,5vw,64px) auto 0;max-width:1180px}



@media (max-width:720px){.frame.wide.hero-banner{aspect-ratio:16/10}}

/* v1.0.5: "What we do differently" grid, 4 + 3 with the second row centred, cards the same size */
.card-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:22px}
.card-grid>.card{grid-column:span 2;display:flex;flex-direction:column}
.card-grid>.card:nth-child(5){grid-column:2/span 2}
@supports (grid-template-rows:subgrid){
  .card-grid>.card{display:grid;grid-row:span 3;grid-template-rows:subgrid;row-gap:0;align-content:start}
}
@media (max-width:1100px){
  .card-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .card-grid>.card:nth-child(5){grid-column:span 2}
  .card-grid>.card:nth-child(7){grid-column:2/span 2}
}
@media (max-width:720px){
  .card-grid{grid-template-columns:minmax(0,1fr);gap:16px}
  .card-grid>.card,.card-grid>.card:nth-child(5),.card-grid>.card:nth-child(7){grid-column:1/-1}
}

/* v1.0.5: card hover, sitewide. Uses the translate property so it never fights the scroll reveal. */
.reveal.d1{--d:.12s}.reveal.d2{--d:.24s}.reveal.d3{--d:.36s}
.card,.path,.appt-card,.feel-card,.heart-card,.ready-card{
  transition:translate .35s ease,box-shadow .35s ease,border-color .35s ease,background-color .35s ease}
.js .card.reveal,.js .path.reveal,.js .appt-card.reveal,.js .feel-card.reveal,.js .heart-card.reveal,.js .ready-card.reveal{
  transition:opacity .9s ease var(--d,0s),transform .9s ease var(--d,0s),translate .35s ease,box-shadow .35s ease,border-color .35s ease,background-color .35s ease}
.card .icon{transition:background-color .35s ease,color .35s ease}
@media (hover:hover){
  .card:hover,.path:hover,.appt-card:hover{translate:0 -5px;box-shadow:0 30px 50px -34px rgba(40,72,88,.42);border-color:var(--taupe)}
  .feel-card:hover,.heart-card:hover{translate:0 -3px;box-shadow:0 30px 56px -40px rgba(40,72,88,.38);border-color:var(--taupe)}
  .ready-card:hover{translate:0 -3px;box-shadow:0 34px 60px -38px rgba(42,60,78,.6)}
  .path:hover{transform:none}
  .path.highlight:hover{border-color:transparent;background:var(--btn-hover)}
  .card:hover .icon{background:var(--btn);color:var(--navy)}
}
@media (prefers-reduced-motion:reduce){
  .card:hover,.path:hover,.appt-card:hover,.feel-card:hover,.heart-card:hover,.ready-card:hover{translate:none}
}
.card-grid>.card h3{align-self:end}
/* v1.0.5: header stays on one line between tablet and desktop widths */
.nav-links a,.nav-book{white-space:nowrap}
@media (max-width:1100px){.logo-name{display:none}}
/* ---------- FAQs: question index beside an answer card (desktop), swipeable answer cards (phones) ---------- */
.faq-deck{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:clamp(28px,4.5vw,72px);align-items:center;max-width:1120px;margin:0 auto}
.faq-index{list-style:none;margin:0;padding:0;border-top:1px solid var(--line);counter-reset:faq}
.faq-index li{border-bottom:1px solid var(--line);counter-increment:faq}
.faq-jump{position:relative;display:flex;align-items:baseline;gap:14px;width:100%;min-height:44px;padding:clamp(8px,1.3vh,13px) 8px clamp(8px,1.3vh,13px) 4px;background:none;border:0;cursor:pointer;text-align:left;
  font-family:var(--serif);font-size:clamp(16px,1.2vw,18px);line-height:1.35;color:var(--ink-soft);transition:color .3s ease}
.faq-jump:before{content:counter(faq,decimal-leading-zero);flex:none;font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.08em;color:var(--taupe-ink);width:22px}
.faq-jump:after{content:"";position:absolute;left:0;bottom:-1px;height:1px;width:100%;background:var(--taupe-deep);transform:scaleX(0);transform-origin:left center;transition:transform .45s var(--ease-calm)}
.faq-jump:hover{color:var(--navy)}
.faq-jump[aria-current=true]{color:var(--navy)}
.faq-jump[aria-current=true]:after{transform:scaleX(1)}
.faq-jump:focus-visible,.faq-arrow:focus-visible,.faq-track:focus-visible{outline:2px solid var(--navy);outline-offset:3px;border-radius:8px}
.faq-stage{min-width:0}
.faq-track{display:flex;gap:16px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-behavior:smooth;overscroll-behavior-x:contain;scrollbar-width:none;padding:6px 2px 18px}
.faq-track::-webkit-scrollbar{display:none}
.faq-card{flex:0 0 100%;scroll-snap-align:start;scroll-snap-stop:always;background:var(--offwhite);border:1px solid var(--line);border-radius:var(--r-card);
  padding:clamp(28px,4.2vw,56px);box-shadow:0 30px 56px -46px rgba(40,72,88,.4)}
.faq-card h3{font-size:clamp(24px,2.3vw,34px);line-height:1.25;margin:0 0 18px;max-width:22ch}
.faq-card p{color:var(--ink-soft);font-size:clamp(16.5px,1.25vw,18.5px);line-height:1.7;margin:0;max-width:52ch}
.faq-nav{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:clamp(10px,2vh,20px)}
.faq-arrow{width:46px;height:46px;border-radius:50%;border:1px solid var(--taupe);background:var(--offwhite);color:var(--navy);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color .3s ease,border-color .3s ease,opacity .3s ease}
.faq-arrow svg{width:18px;height:18px}
.faq-arrow:hover:not(:disabled){background:var(--btn);border-color:var(--btn)}
.faq-arrow:disabled{opacity:.35;cursor:default}
.faq-count{min-width:64px;text-align:center;font-size:14px;font-weight:600;letter-spacing:.08em;color:var(--taupe-ink)}
/* phones and tablets: swipe through the cards, with the next one peeking in */
@media (max-width:900px){
  .faq-deck{grid-template-columns:minmax(0,1fr)}
  .faq-index{display:none}
  .faq-track{gap:12px;margin:0 calc(-1 * var(--gutter));padding:6px var(--gutter) 16px;scroll-padding-inline:var(--gutter)}
  .faq-card{flex-basis:86%;padding:26px 22px}
  .faq-card h3{font-size:clamp(22px,6vw,28px);margin-bottom:14px}
  .faq-card p{font-size:16.5px}
}
/* without JavaScript: every question and answer as a plain list */
html:not(.js-ready) .faq-deck{display:block}
html:not(.js-ready) .faq-index,html:not(.js-ready) .faq-nav{display:none}
html:not(.js-ready) .faq-track{display:grid;gap:16px;overflow:visible;margin:0;padding:0}
@media (prefers-reduced-motion:reduce){.faq-track{scroll-behavior:auto}.faq-jump:after,.faq-arrow{transition:none}}


/* ==========================================================================
   v1.1.0 Continuous scroll: one homepage, read top to bottom, with gentle scroll-triggered motion
   ========================================================================== */
:root{--ease-calm:cubic-bezier(.25,.46,.3,1);--hdr-h:104px;--logo-h:clamp(64px,6vw,84px);--logo-sm:48px;--hdr-sm:72px}
@media (max-width:900px){:root{--hdr-h:84px;--logo-h:60px;--logo-sm:44px;--hdr-sm:64px}}
html{scroll-padding-top:0}
/* Every section a link can land on clears the fixed header, so its heading is never hidden underneath */
main section[id],main article[id]{scroll-margin-top:calc(var(--hdr-sm) + 1px)}
#booking,#contact{scroll-margin-top:calc(var(--hdr-sm) + 16px)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
main{overflow-x:hidden;overflow-x:clip}

/* ---------- Header: fixed and always visible (13 Oct 2026). Light at the top of the page, then softly frosted and a
   little smaller once you scroll ---------- */
body{padding-top:var(--hdr-h)}
.site-header{position:fixed;top:0;left:0;right:0;z-index:60;background:transparent;border-bottom:1px solid transparent;
  -webkit-backdrop-filter:none;backdrop-filter:none;transform:translate3d(0,0,0);
  transition:transform .55s var(--ease-calm),background-color .45s ease,border-color .45s ease,box-shadow .45s ease}
.site-header .nav{height:var(--hdr-h);transition:height .45s var(--ease-calm)}
.site-header .logo-tile{width:var(--logo-h);height:var(--logo-h);border-radius:calc(var(--logo-h) * .2);transition:width .45s var(--ease-calm),height .45s var(--ease-calm)}
.site-header.is-scrolled{background:rgba(247,244,239,.9);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom-color:rgba(231,223,212,.8)}
.site-header.is-scrolled .nav{height:var(--hdr-sm)}
.site-header.is-scrolled .logo-tile{width:var(--logo-sm);height:var(--logo-sm);border-radius:10px}
.site-header.open{background:var(--cream);transform:none}
.nav-main{margin-left:auto}
.nav-links a{text-decoration:none;display:inline-block;padding:12px 0}
.nav-links a:after{bottom:8px}
.nav-links a.is-here{color:var(--navy)}
.nav-links a.is-here:after{width:100%}
.nav-links{gap:clamp(20px,2.4vw,34px)}
.nav-book.btn{min-height:42px;padding:10px 22px;font-size:14.5px;margin-left:clamp(18px,2.4vw,34px)}
.nav-book.btn:hover{transform:none}
.nav-book[aria-current=page]{box-shadow:inset 0 0 0 1px var(--taupe-deep)}
.mobile-menu li a{text-decoration:none}
.mobile-menu li.menu-book a.btn{display:flex;margin:18px 0 4px;padding:14px 22px;font-family:var(--sans);font-size:16px;color:var(--navy);border-bottom:0}
@media (max-width:900px){
  .nav-main{display:none}
  .nav-book.btn{margin-left:auto;padding:9px 18px;min-height:40px;font-size:14px}
  .burger{display:block}
  .mobile-menu{position:absolute;left:0;right:0;top:100%;background:var(--cream);border-bottom:1px solid var(--line);box-shadow:0 24px 40px -32px rgba(40,72,88,.45)}
}
@media (prefers-reduced-motion:reduce){.site-header,.site-header .nav,.site-header .logo-tile{transition:none}}

/* Subtle scroll progress: a hairline across the very top of the homepage */
.scroll-progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:70;pointer-events:none}
.scroll-progress span{display:block;height:100%;background:var(--taupe);transform-origin:left center;transform:scaleX(0);opacity:.85}
html:not(.js-ready) .scroll-progress{display:none}

/* ---------- Gentle scroll-triggered motion ----------
   Fade up (default), slide in from the side (.from-left / .from-right), a soft pop (.pop) or a plain fade (.fade).
   Plays once, as each piece scrolls into view. Nothing moves unless the page is scrolled. */
.js .reveal:not(.in){opacity:0;transform:translate3d(0,18px,0)}
.js .reveal{
  transition:opacity 1s var(--ease-calm) var(--d,0s),transform 1.1s var(--ease-calm) var(--d,0s)}
.js .reveal.from-left:not(.in){transform:translate3d(-36px,0,0)}
.js .reveal.from-right:not(.in){transform:translate3d(36px,0,0)}
.js .reveal.pop:not(.in){transform:scale(.965)}
.js .reveal.fade:not(.in){transform:none}
.js .reveal.fade{transition:opacity 1.2s var(--ease-calm) var(--d,0s)}
.js .reveal.in{opacity:1;transform:none}
.reveal.d1{--d:.15s}.reveal.d2{--d:.3s}.reveal.d3{--d:.45s}
.js .card.reveal,.js .appt-card.reveal,.js .feel-card.reveal,.js .heart-card.reveal,.js .ready-card.reveal,.js .reassure.reveal{
  transition:opacity 1s var(--ease-calm) var(--d,0s),transform 1.1s var(--ease-calm) var(--d,0s),translate .35s ease,box-shadow .35s ease,border-color .35s ease,background-color .35s ease}
@media (max-width:900px){
  .js .reveal.from-left:not(.in){transform:translate3d(-20px,0,0)}
  .js .reveal.from-right:not(.in){transform:translate3d(20px,0,0)}
}
@media (prefers-reduced-motion:reduce){
  .js .reveal,.js .reveal.from-left,.js .reveal.from-right,.js .reveal.pop,.js .reveal.fade,
  .js .card.reveal,.js .appt-card.reveal,.js .feel-card.reveal,.js .heart-card.reveal,.js .ready-card.reveal,.js .reassure.reveal{opacity:1;transform:none;transition:none}
}

/* ---------- Hero ---------- */
.home .hero{padding-top:clamp(24px,4vw,64px)}
.hero .actions .btn svg{width:15px;height:15px}
.hero .actions .btn:hover svg{transform:translateY(2px)}

/* ---------- Understanding: What is The Anxious Patient Experience™? ---------- */
.what-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(36px,6vw,96px);align-items:start}
.what-head{position:-webkit-sticky;position:sticky;top:clamp(96px,14vh,140px)}
.what-head h2{max-width:14ch}
.what-body p{color:var(--ink-soft);font-size:clamp(17px,1.25vw,18.5px);line-height:1.75;margin:0 0 20px;max-width:60ch}
.what-body p.what-lead{font-family:var(--serif);font-size:clamp(21px,1.8vw,26px);line-height:1.45;color:var(--navy);margin-bottom:28px}
.what-lead strong{font-weight:500;color:var(--navy);background:linear-gradient(transparent 62%,rgba(210,180,144,.38) 62%);padding:0 2px}
.what-aim{margin-top:clamp(28px,4vw,44px);background:var(--offwhite);border:1px solid rgba(231,223,212,.8);border-radius:var(--r-card);
  padding:clamp(26px,3.6vw,44px) clamp(24px,3.6vw,48px);border-left:0;position:relative}
.what-aim:before{content:"";position:absolute;left:clamp(24px,3.6vw,48px);top:clamp(26px,3.6vw,44px);bottom:clamp(26px,3.6vw,44px);width:1px;background:var(--taupe)}
.what-aim p{font-family:var(--serif);font-size:clamp(19px,1.55vw,23px);line-height:1.5;color:var(--navy);margin:0 0 16px;padding-left:clamp(22px,3vw,36px);max-width:none}
.what-aim p:last-child{margin-bottom:0}
.what-aim .accent{color:var(--taupe-deep)}
@media (max-width:900px){
  .what-grid{grid-template-columns:minmax(0,1fr);gap:24px}
  .what-head{position:static}
  .what-head h2{max-width:18ch}
}

/* ---------- Understanding: the bridge into the nervous system (the old Understanding headline) ---------- */
.understand-intro .grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(36px,6vw,96px);align-items:center}
.understand-intro h2{font-size:clamp(30px,3.8vw,50px);max-width:17ch;margin-bottom:20px}
.understand-intro .sub{font-family:var(--serif);font-size:clamp(20px,1.7vw,24px);color:var(--taupe-deep);margin:0}
@media (max-width:900px){.understand-intro .grid{grid-template-columns:minmax(0,1fr);gap:28px}}

/* ---------- What we do differently: six cards, three and three ---------- */
.card-grid.six{grid-template-columns:repeat(3,minmax(0,1fr))}
.card-grid.six>.card,.card-grid.six>.card:nth-child(5){grid-column:auto}
@media (max-width:1100px){.card-grid.six{grid-template-columns:repeat(2,minmax(0,1fr))}.card-grid.six>.card:nth-child(7){grid-column:auto}}
@media (max-width:720px){.card-grid.six{grid-template-columns:minmax(0,1fr)}}

/* ---------- Who is The Anxious Patient Experience™ for? Brief and calm ---------- */
.who-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(36px,6vw,96px);align-items:center}
.who-photo .frame.portrait{aspect-ratio:4/4.8}
.who-text h2{max-width:18ch;margin-bottom:24px}
.who-text p{color:var(--ink-soft);margin:0 0 18px;max-width:58ch}
.who-text>p:first-of-type{font-family:var(--serif);font-size:clamp(19px,1.5vw,22px);line-height:1.5;color:var(--navy)}
.who-more{margin-top:28px;padding-top:26px;border-top:1px solid var(--line)}
.who-more p:last-child{margin-bottom:0}
@media (max-width:900px){
  .who-grid{grid-template-columns:minmax(0,1fr);gap:28px}
  .who-photo{order:2}
  .who-photo .frame.portrait{aspect-ratio:16/10}
}

/* ---------- Meet the Team ---------- */
.meet-intro{padding:var(--section) 0 clamp(36px,5vw,64px)}
.meet-intro h2{font-size:clamp(32px,4vw,52px);max-width:20ch;margin:0 auto 20px}
.team-section{padding-top:clamp(40px,5vw,72px)}
.member-text .bio{margin:0 0 16px}
.member .member-name{font-size:clamp(28px,3.2vw,42px);line-height:1.2;margin-bottom:8px}
@media (min-width:901px){.member .member-photo{max-width:440px}}

/* Three team members (13 Oct 2026): even columns on desktop, stacked on phones and tablets */
.team-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(28px,3.6vw,60px);align-items:start}
@media (min-width:901px){
  .team-grid .member{display:block}
  .team-grid .member .member-photo,.team-grid .member:nth-child(2n) .member-photo{max-width:none;order:0;margin-bottom:26px}
  .team-grid .member-photo .frame{aspect-ratio:4/4.4}
  .team-grid .member .member-name{font-size:clamp(25px,2.2vw,32px)}
  .team-grid .member .role{margin-bottom:18px;font-size:12px;letter-spacing:.14em;line-height:1.6}
  .team-grid .member .bio{font-size:16px;line-height:1.7}
  .team-grid .member blockquote{font-size:clamp(18px,1.45vw,21px)}
  .team-grid .member .actions{margin-top:22px}
}
.frame.ph .initials{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:40%;aspect-ratio:1/1;border-radius:50%;
  display:flex;align-items:center;justify-content:center;background:rgba(252,252,246,.72);border:1px solid rgba(143,116,85,.35);
  font-family:var(--serif);font-size:clamp(22px,2.4vw,36px);letter-spacing:.04em;color:var(--navy)}
.bio-soon{display:inline-flex;align-items:center;gap:8px;margin:2px 0 0;padding:7px 16px;border:1px dashed var(--taupe);border-radius:999px;
  background:var(--offwhite);font-size:14px;font-weight:500;letter-spacing:.02em;color:var(--taupe-ink)}
.bio-soon:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--taupe)}
/* Phones and tablets: a small, soft portrait beside the name, so the words lead */
@media (max-width:900px){
  .member{grid-template-columns:clamp(104px,30vw,150px) minmax(0,1fr);gap:4px 18px;align-items:center}
  .member:nth-child(2n){grid-template-columns:clamp(104px,30vw,150px) minmax(0,1fr)}
  .member .member-text{display:contents}
  .member .member-photo{grid-row:1 / span 2;grid-column:1;max-width:none;order:0;align-self:center}
  .member .member-photo .frame{aspect-ratio:4/4.7;border-radius:clamp(52px,15vw,75px) clamp(52px,15vw,75px) 22px 22px;box-shadow:0 18px 36px -30px rgba(40,72,88,.45)}
  .member .member-photo img{object-position:50% 20%!important;transform:scale(1.25);transform-origin:50% 24%}
  .member .member-name{grid-column:2;align-self:end;margin:0 0 4px;font-size:clamp(24px,6.6vw,30px)}
  .member .role{grid-column:2;align-self:start;margin:0;font-size:11.5px;letter-spacing:.12em;line-height:1.5}
  .member .member-text>*:not(.member-name):not(.role){grid-column:1 / -1}
  .member .role+.bio{margin-top:22px}
  .member blockquote{margin-top:12px}
  .member .ph-label{font-size:10px;letter-spacing:.06em;padding:6px 8px;max-width:88%;width:auto}
  .team-grid{grid-template-columns:minmax(0,1fr);gap:clamp(44px,8vw,64px)}
  .frame.ph .initials{width:62%;font-size:clamp(18px,5vw,24px)}
  .member .role+.bio-soon{margin-top:20px;justify-self:start}
  .member .member-text>.actions{margin-top:18px}
}

/* ---------- Book Now: clinic, 24 hour notice, booking messages ---------- */
.appt-card .clinic{margin:10px 0 0;color:var(--ink-soft);font-size:15.5px}
.appt-card .clinic .clinic-name{font-weight:600;color:var(--navy)}
.notice-24h{margin:18px 0 0;padding:14px 20px;border-radius:18px;background:var(--offwhite);border:1px solid var(--line);
  color:var(--ink-soft);font-size:15.5px;line-height:1.6}
.notice-24h a{color:var(--navy);text-decoration:underline;text-decoration-color:var(--taupe);text-underline-offset:3px}
.chosen-clinic{display:block;font-size:14.5px;color:var(--ink-soft);margin-top:2px}
.confirm .summary .chosen-clinic{margin-top:4px}
.slot-err{margin:-6px 0 18px;padding:12px 16px;border-radius:14px;background:#FBEFEA;color:#8A3B2E;font-size:15px}

/* ---------- Footer disclaimer: two short paragraphs ---------- */
.disclaimer+.disclaimer{margin-top:10px;padding-top:0;border-top:0}

/* ---------- FAQs ---------- */
.faqs-head{text-align:center;margin-left:auto;margin-right:auto}
.faqs-head h2{margin-left:auto;margin-right:auto}
.faq-card p+p{margin-top:14px}

.faq-more{max-width:1120px;margin:clamp(36px,5vw,64px) auto 0;background:var(--offwhite);border:1px solid rgba(231,223,212,.8)}
.faq-more h3{margin:0 0 6px}
.faq-more p{font-size:clamp(17px,1.3vw,19px);color:var(--ink-soft);font-family:var(--sans)}

/* ---------- Footer logo: larger ---------- */
.site-footer .logo-tile{width:clamp(80px,7vw,104px);height:clamp(80px,7vw,104px);border-radius:clamp(16px,1.4vw,21px)}

/* ---------- Pages without a hero (Privacy Policy, 404) ---------- */
.plain-page main{min-height:50vh}

/* ---------- Meet the Team: "Read more" on Lorna's bio (15 Oct 2026) ----------
   The first paragraph always shows; the rest opens smoothly underneath. Without JavaScript everything shows. */
.bio-more{display:grid;grid-template-rows:1fr;transition:grid-template-rows .6s var(--ease-calm)}
.bio-more-inner{min-height:0;overflow:hidden}
.bio-more.is-collapsed{grid-template-rows:0fr}
.bio-more.is-collapsed .bio-more-inner{visibility:hidden;transition:visibility 0s linear .6s}
.bio-more .bio:first-child{margin-top:0}
.read-more{display:inline-flex;align-items:center;gap:8px;min-height:44px;margin:2px 0 0;padding:0;border:0;background:none;cursor:pointer;
  font-family:var(--sans);font-size:15px;font-weight:600;letter-spacing:.02em;color:var(--taupe-ink);
  text-decoration:underline;text-decoration-color:var(--taupe);text-decoration-thickness:1px;text-underline-offset:6px}
.read-more[hidden]{display:none}
.read-more:hover{color:var(--navy)}
.read-more:focus-visible{outline:2px solid var(--navy);outline-offset:4px;border-radius:6px}
.read-more svg{width:15px;height:15px;flex:none;transition:transform .4s var(--ease-calm)}
.read-more[aria-expanded=true] svg{transform:rotate(180deg)}
@media (max-width:900px){.member .member-text>.read-more{justify-self:start}}
@media (prefers-reduced-motion:reduce){.bio-more,.bio-more.is-collapsed .bio-more-inner,.read-more svg{transition:none}}

/* ---------- 26 Oct 2026: Lorna's images, contact details, booking requests ---------- */
/* <picture> wraps each photo (WebP sizes plus a JPG fallback); it takes no space of its own, so frames style the img as before */
picture{display:contents}
/* "What if your dental care started..." is now a two-tone quote band; the heading keeps the band's own type sizes */
.bridge-quote h2.two-tone-lines{max-width:none;margin:0;font-size:inherit;font-weight:inherit;letter-spacing:normal}
.bridge-quote .l1{max-width:26ch}
/* footer contact block */
.foot .contact .contact-name{font-family:var(--serif);font-size:18px;color:var(--navy);margin-bottom:12px}
.foot .contact .contact-email{margin-top:16px}
.foot .contact .contact-label{display:block;font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--taupe-ink);margin-bottom:2px}
.foot .contact a{overflow-wrap:anywhere}
.clinic-address a{color:inherit;text-decoration:underline;text-decoration-color:var(--taupe);text-underline-offset:3px}
.notice-24h a[href^="tel:"]{white-space:nowrap}
/* booking: collection notice tick box, spam trap, sending state */
.check.consent{margin:2px 0 0;font-size:15.5px;color:var(--ink-soft)}
.check.consent a{color:var(--navy);text-decoration:underline;text-underline-offset:3px}
.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.send-err{margin:0 0 18px}
.btn[aria-busy=true]{cursor:progress;opacity:.75}
.confirm .confirm-next{margin-top:18px;margin-bottom:0}
/* hero subline: below 24px the lighter taupe is under 4.5:1 on cream, so use the darker text taupe (4.98:1) */
.hero .sub{color:var(--taupe-ink)}

/* ---------- 3 Nov 2026: opening special, pricing lines, team photos ---------- */
/* hero ribbon: a quiet link under the hero buttons, only shown while the special is open */
.special-ribbon{margin:26px 0 0}
.special-ribbon a{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:10px 18px;border-radius:999px;background:var(--blush);border:1px solid rgba(186,156,126,.45);color:var(--navy);font-size:15px;line-height:1.4;text-decoration:none;transition:background .3s ease,border-color .3s ease}
.special-ribbon a:hover{background:#EBDFD3;border-color:var(--taupe)}
.special-ribbon a:focus-visible{outline:2px solid var(--navy);outline-offset:3px}
.special-ribbon-label{font-size:11.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--taupe-ink)}
.special-ribbon svg{width:15px;height:15px;flex:none}
/* FAQ cost card and Book Now card */
.faq-card .special-note{margin-top:14px;padding:12px 16px;border-radius:14px;background:var(--blush);color:var(--navy)}
.appt-card .rebates{color:var(--ink-soft);margin:0 0 6px}
.appt-card .special-card{margin:4px 0 12px;padding:12px 16px;border-radius:16px;background:var(--offwhite);border:1px solid rgba(186,156,126,.5);color:var(--ink-soft);line-height:1.55;max-width:46ch}
.special-card-label{display:block;font-size:11.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--taupe-ink);margin-bottom:4px}
.special-card-price{font-family:var(--serif);font-size:21px;color:var(--navy);margin-right:4px}
.special-card-price s,.special-pop-price .was{color:var(--taupe-ink);text-decoration-thickness:1px}
/* booking: special days, fee lines, deposit */
.slot-day.is-special{border-color:rgba(186,156,126,.7);background:var(--offwhite)}
.slot-special{display:block;margin-top:2px;font-family:var(--sans);font-size:12.5px;font-weight:600;letter-spacing:.06em;color:var(--taupe-ink)}
.chosen-fee{display:block;margin-top:4px;font-size:15px;color:var(--ink-soft)}
.confirm .summary .chosen-fee{margin-top:4px}
.pay-deposit{display:flex;flex-direction:column;align-items:center;gap:10px;margin:0 auto 22px}
.pay-note{font-size:14px;color:var(--ink-soft)}
.confirm .confirm-deposit{margin-top:12px;font-size:15px}
/* pop-up */
.special-pop{border:0;padding:0;background:transparent;max-width:min(560px,calc(100vw - 32px));width:100%;color:var(--navy);overflow:visible}
.special-pop::backdrop{background:rgba(40,72,88,.32);backdrop-filter:blur(2px)}
.special-pop-inner{position:relative;background:var(--cream);border-radius:28px;padding:clamp(28px,5vw,44px);box-shadow:0 30px 60px -30px rgba(40,72,88,.45);text-align:center;opacity:0;transform:translateY(14px);transition:opacity .45s var(--ease-calm),transform .45s var(--ease-calm)}
.special-pop.is-open .special-pop-inner{opacity:1;transform:none}
.special-pop .eyebrow{justify-content:center;margin-bottom:14px}
.special-pop h2{font-size:clamp(25px,3vw,32px);max-width:20ch;margin:0 auto 12px}
.special-pop-price{font-family:var(--serif);font-size:30px;margin:0 0 12px}
.special-pop-price .now{color:var(--navy)}
.special-pop-body{color:var(--ink-soft);max-width:44ch;margin:0 auto 24px}
.special-pop-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
.special-pop-x{position:absolute;top:14px;right:14px;width:44px;height:44px;border-radius:50%;border:0;background:transparent;color:var(--navy);cursor:pointer;display:flex;align-items:center;justify-content:center}
.special-pop-x:hover{background:var(--blush)}
.special-pop-x svg{width:18px;height:18px}
.special-pop :focus-visible{outline:2px solid var(--navy);outline-offset:3px}
@media (prefers-reduced-motion:reduce){.special-pop-inner{transition:none}}
/* team photos: <picture> takes no space of its own */
.member-photo picture{display:contents}
.special-pop-price .was{text-decoration:line-through;margin-right:6px}
.special-pop-inner:focus{outline:none}
@media (max-width:600px){
  .special-ribbon a{display:grid;grid-template-columns:1fr auto;align-items:center;gap:2px 10px;border-radius:20px;padding:10px 16px;font-size:14.5px}
  .special-ribbon-label{grid-column:1 / -1}
}
/* v1.5.0: the blog (shown once the first post is published from the dashboard) */
.post-meta{color:var(--ink-soft);font-size:16px;margin:18px 0 0}
.post-card .post-meta{font-size:12.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--taupe-ink);margin:0 0 10px}
section.post{padding-top:0}
.post-photo{margin:0 0 40px}
.post-body h2{font-size:clamp(26px,2.6vw,34px);margin:1.6em 0 .6em}
.post-body h3{margin:1.4em 0 .5em}
.post-body ul,.post-body ol{color:var(--ink-soft);padding-left:1.2em;margin:0 0 1em}
.post-body li{margin:0 0 .4em}
.post-body a{text-decoration:underline;text-underline-offset:3px}
.post-body blockquote{margin:30px 0;padding-left:22px;border-left:1px solid var(--taupe);font-family:var(--serif);font-size:clamp(20px,1.7vw,24px);line-height:1.45;color:var(--navy)}
.post-body img{border-radius:var(--r-img);margin:24px 0;height:auto}
.post-back{margin-top:40px}
.post-back a{text-decoration:none}
