/* SoBrook website redesign • 2026
   Pure CSS + lightweight JS; mobile-first and accessible. */
:root {
  --ink:#2b53c0;--deep:#203e5c;--navy:#203c58;--blue:#2b53c0;
  --muted:#475c84;--quiet:#61728c;--cream:#fbfaf7;--paper:#fffefa;
  --tint:#edf3f7;--pale:#f6f8f9;--line:#dde3e7;--white:#fff;
  --radius:7px;--container:1138px;--shadow:0 22px 60px rgba(25,50,72,.09);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:95px}
body{margin:0;min-width:280px;color:var(--ink);background:var(--cream);font-family:"Avenir Next","Segoe UI",Arial,Helvetica,sans-serif;font-size:16px;line-height:1.64;-webkit-font-smoothing:antialiased}
body.menu-open{overflow:hidden}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input,textarea{font:inherit}
button{cursor:pointer}
button:focus-visible,a:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid #4c91bd;outline-offset:4px}
a:hover{text-decoration:none}
h1,h2,h3,h4,p{margin-top:0}
h1,h2,h3{letter-spacing:-.046em;line-height:1.12;font-weight:570}
h1,.display-heading{font-size:clamp(2.9rem,4.8vw,4.75rem)}
h2{font-size:clamp(2rem,3.25vw,3.2rem)}
h3{font-size:1.33rem;letter-spacing:-.033em}
p{color:var(--muted);margin:0 0 1rem;line-height:1.67}
.container{width:min(calc(100% - 76px),var(--container));margin-inline:auto}
.section{padding:96px 0}
.section-tint{background:var(--tint)}
.section-offwhite{background:#f7f8f7}
.eyebrow{font-weight:750;font-size:.72rem;letter-spacing:.18em;color:#46728d;margin-bottom:19px;line-height:1.5}
.lede{font-size:1.095rem;line-height:1.72;max-width:570px;color:#586975}
.small-muted{font-size:.83rem;color:#7a8792}
.skip-link{position:absolute;top:-80px;left:12px;background:var(--white);padding:9px 15px;z-index:2000}
.skip-link:focus{top:8px}
.topline{height:26px;background:var(--navy);color:#dde7ef;font-size:.64rem;letter-spacing:.02em;line-height:26px}
.topline-inner{display:flex;align-items:center;justify-content:space-between;height:100%}
.topline a{color:#fff}
.site-header{position:sticky;top:0;z-index:100;background:rgba(251,250,247,.97);border-bottom:1px solid #e5e8e8;backdrop-filter:blur(12px)}
.header-inner{height:92px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.brand{display:inline-flex;flex-direction:column;justify-content:center;flex:none;color:var(--ink);line-height:1;min-width:173px}
.brand-word{font-size:1.79rem;font-weight:750;line-height:.91;letter-spacing:-.08em;font-family:Arial,Helvetica,sans-serif}
.brand-wave{font-size:.66rem;letter-spacing:-.4em;display:inline-block;transform:rotate(80deg) translate(1px,-5px);color:#6192bb;margin-left:8px}
.brand-sub{font-size:.52rem;font-weight:700;letter-spacing:.025em;line-height:1.04;margin-top:5px}
.desktop-nav{display:flex;align-items:center;gap:33px;margin-left:auto}
.desktop-nav>a,.nav-link{font-size:.86rem;font-weight:560;color:var(--ink);padding:15px 0;border:0;background:transparent;line-height:1}
.desktop-nav>a:hover,.nav-link:hover,.desktop-nav a[aria-current="page"]{color:#467fa2}
.desktop-nav a[aria-current="page"]{text-decoration:underline;text-underline-offset:7px;text-decoration-color:#739bb3}
.nav-dropdown{position:relative;align-self:center}
.nav-services{display:flex;align-items:center;gap:8px}
.nav-services span{font-size:1.2rem;transform:translateY(-3px)}
.dropdown-menu{position:absolute;top:100%;left:-16px;display:none;flex-direction:column;min-width:235px;background:#fff;box-shadow:0 14px 40px rgba(27,52,73,.17);border:1px solid var(--line);border-radius:6px;z-index:10;padding:10px}
.dropdown-menu a{padding:11px 13px;border-radius:4px;font-size:.87rem;color:var(--ink)}
.dropdown-menu a:hover,.dropdown-menu a:focus{background:var(--tint)}
.nav-dropdown:hover .dropdown-menu,.nav-dropdown:focus-within .dropdown-menu,.nav-dropdown.open .dropdown-menu{display:flex}
.header-actions{display:flex;align-items:center;gap:12px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:17px;min-height:48px;border-radius:3px;font-weight:700;font-size:.82rem;line-height:1.25;padding:15px 23px;transition:background .15s,transform .15s,box-shadow .15s;text-align:center}
.btn:hover{transform:translateY(-1px)}
.btn-primary{color:white;background:var(--navy)}
.btn-primary:hover{background:#335875;box-shadow:0 9px 20px rgba(25,55,87,.13)}
.btn-small{min-height:40px;padding:12px 16px;font-size:.73rem}
.btn-outline{background:#fff;border:1px solid #9badbd;color:var(--navy)}
.btn-outline:hover{background:var(--tint)}
.btn-full{width:100%}
.btn span{font-size:.95rem;font-weight:400}
.menu-toggle{display:none;width:43px;height:43px;border:1px solid var(--line);border-radius:4px;background:transparent;padding:10px 9px;flex-direction:column;justify-content:space-evenly}
.menu-toggle span{height:1.5px;background:var(--navy);display:block;width:100%}
.mobile-nav{display:none}
[hidden]{display:none!important}
/* Semantic SEO headings: screen-reader accessible rather than display:none. */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;clip-path:inset(50%)!important}
/* HOME */
.home-hero{display:grid;grid-template-columns:minmax(0,1.09fr) minmax(0,.91fr);gap:60px;align-items:center;padding-top:79px;padding-bottom:74px}
.home-hero .display-heading{margin:0 0 22px}
.home-hero .display-heading em{font-style:normal;color:#527994}
.home-hero .lede{font-size:1.08rem;max-width:540px;margin-bottom:31px}
.hero-actions{display:flex;align-items:center;gap:28px;flex-wrap:wrap}
.text-link{font-size:.84rem;color:var(--navy);font-weight:750;display:inline-flex;align-items:center;gap:8px;text-decoration:underline;text-underline-offset:5px;text-decoration-color:#9bb5c7}
.text-link:hover{color:#47789d;text-decoration-color:currentColor}
.hero-note{font-size:.74rem;color:#748590;margin-top:25px;margin-bottom:0}
.hero-media{min-width:0}
/* Slideshow: 2 compact carousels, unlike oversized full-width sliders */
.carousel{position:relative;overflow:hidden;background:#dae6ed;border-radius:6px;isolation:isolate}
.carousel-viewport{position:relative;aspect-ratio:1.12/1;width:100%;background:#e4eaec;overflow:hidden}
.carousel-current,.carousel-next-image{position:absolute;width:100%;height:100%;top:0;left:0;object-fit:cover;object-position:center;display:block;z-index:2}
.carousel-current[hidden],.carousel-next-image[hidden]{display:none}
.carousel-next-image{opacity:0;transition:opacity .65s ease}
.carousel-fallback{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:40px;background:radial-gradient(ellipse at 70% 20%,#c5d5df 1%,transparent 49%),linear-gradient(135deg,#e1e9ec,#becfd9);z-index:1}
.fallback-eyebrow{font-weight:750;letter-spacing:.2em;font-size:.66rem;color:#42657d;margin-bottom:12px}
.fallback-title{font-size:clamp(1.8rem,3vw,3rem);font-weight:600;line-height:1.11;letter-spacing:-.055em;color:var(--navy)}
.fallback-copy{font-size:.84rem;color:#496679;max-width:210px;margin-top:15px}
.carousel-controls{position:absolute;z-index:7;bottom:13px;right:14px;display:flex;align-items:center;gap:3px;background:#fffed9f0;background:rgba(255,255,255,.92);border-radius:5px;padding:3px 5px;box-shadow:0 5px 19px #00000017}
.carousel-controls button{display:grid;place-items:center;width:30px;height:30px;border:0;background:transparent;color:var(--navy);font-size:1.35rem;border-radius:3px;line-height:1}
.carousel-controls button:hover{background:#dce8ef}
.carousel-controls .carousel-pause{font-size:.9rem;margin-left:4px}
.carousel-counter{font-size:.65rem;font-weight:700;letter-spacing:.04em;color:var(--ink);white-space:nowrap;min-width:47px;text-align:center}
.media-caption{display:flex;align-items:center;justify-content:space-between;gap:10px;color:#7b8c98;font-size:.68rem;padding-top:10px}
.media-caption a{color:#2b567a;text-decoration:underline;text-decoration-color:#b4c4d1;text-underline-offset:3px}
.value-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;padding:15px 0 44px}
.value-strip>div{display:flex;gap:13px;border-top:1px solid var(--line);padding:17px 15px 0 0}
.value-strip>div+div{padding-left:20px}
.value-strip .number{font-size:.73rem;color:#6184a0;font-weight:700}
.value-strip b{font-size:.82rem;font-weight:680;line-height:1.3;display:block}
.value-strip p{font-size:.76rem;margin:5px 0 0;line-height:1.45}
.split-section-head{display:grid;grid-template-columns:1fr .56fr;align-items:end;gap:60px;margin-bottom:46px}
.split-section-head h2{margin-bottom:0}
.split-section-head>p{max-width:375px;font-size:.99rem;margin-bottom:3px}
.service-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.service-card{border:1px solid #e2e8ea;background:#f9fbfb;min-height:300px;padding:28px 26px;display:flex;flex-direction:column;transition:border-color .2s,transform .2s,box-shadow .2s}
.service-card:hover{border-color:#98b2c3;transform:translateY(-4px);box-shadow:var(--shadow)}
.card-kicker{font-size:.63rem;color:#708b9f;letter-spacing:.14em;font-weight:700}
.service-icon{font-size:1.7rem;font-weight:300;color:#6995b3;margin-top:21px;margin-bottom:24px}
.service-card h3{font-size:1.39rem;margin-bottom:12px}
.service-card p{font-size:.86rem;line-height:1.62;margin-bottom:21px}
.card-link{color:var(--navy);font-size:.78rem;font-weight:750;margin-top:auto;text-decoration:underline;text-decoration-color:#b5c6d0;text-underline-offset:4px}
.image-feature{display:grid;grid-template-columns:1fr 1fr;align-items:stretch;gap:0;max-width:1020px}
.feature-media{min-width:0}
.image-feature .carousel{height:100%;min-height:375px;border-radius:5px 0 0 5px}
.image-feature .carousel-viewport{aspect-ratio:auto;height:100%;min-height:375px}
.feature-copy{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;background:var(--navy);padding:45px 48px;color:white}
.feature-copy h2{font-size:clamp(1.9rem,3vw,3rem);margin:0 0 22px;color:#fff}
.feature-copy .eyebrow{color:#a8c4d7}
.feature-copy p{color:#d6e1e8;font-size:.94rem;margin-bottom:24px}
.feature-copy .text-link{color:white;text-decoration-color:#aac0d0}
.steps-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}
.steps-grid>div{border-top:1px solid #cad8e0;padding-top:19px}
.step-no{font-size:.95rem;color:#7795a9;font-weight:800;display:block;margin-bottom:27px}
.steps-grid h3{margin:0 0 8px;font-size:1.18rem}
.steps-grid p{font-size:.88rem;max-width:290px}
.focus-section{display:grid;grid-template-columns:.8fr 1.2fr;gap:65px}
.link-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px;row-gap:0}
.link-columns a{display:flex;gap:12px;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding:13px 0;font-size:.86rem;font-weight:600}
.link-columns a span{color:#6998b5}
.link-columns a:hover{color:#3f779a}
.cta-band{background:var(--navy);color:#fff;border-radius:3px;margin-top:25px;margin-bottom:74px;display:flex;justify-content:space-between;align-items:center;gap:25px;padding:38px 47px}
.cta-band h2{color:#fff;font-size:clamp(1.7rem,2.5vw,2.5rem);margin-bottom:6px}
.cta-band p{font-size:.85rem;color:#d9e4ec;margin:0}
.cta-band .btn{background:#fff;color:var(--navy)}
.cta-band .btn:hover{background:#e6eff5}
/* SERVICES */
.service-hero{min-height:520px;display:grid;grid-template-columns:1fr .92fr;gap:70px;align-items:center;padding-top:44px;padding-bottom:70px}
.service-hero-copy{min-width:0}
.crumbs{font-size:.72rem;color:#8b98a1;margin-bottom:44px}
.crumbs a{color:#657987}
.crumbs a:hover{text-decoration:underline}
.crumb-symbol{padding:0 8px;color:#a3b2bd}
.service-hero .display-heading{font-size:clamp(2.5rem,4vw,4rem);margin-bottom:18px}
.service-hero .lede{max-width:520px;font-size:1rem;margin-bottom:29px}
.photo-panel{height:360px;position:relative;overflow:hidden;background:linear-gradient(135deg,#d7e4ea,#b7cad7);border-radius:100px 4px 4px 4px}
.photo-panel>img{height:100%;width:100%;object-fit:cover;position:relative;z-index:2}
.photo-placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:13px;color:#456b84;background:radial-gradient(circle at 50% 5%,#e5f0f4,#ccdbe3 73%);text-align:center}
.photo-placeholder .placeholder-mark{font-size:8rem;font-weight:700;line-height:1;opacity:.22;letter-spacing:-.09em}
.photo-placeholder span{font-size:.81rem;font-weight:700;letter-spacing:.07em}
.two-column-section{display:grid;grid-template-columns:.65fr 1fr;gap:95px}
.two-column-section>div:first-child>p:not(.eyebrow){font-size:.88rem;max-width:270px}
.accordion-list{border-top:1px solid var(--line)}
.accordion{border-bottom:1px solid var(--line)}
.accordion summary{display:flex;gap:15px;align-items:center;justify-content:space-between;cursor:pointer;padding:20px 1px;font-size:.96rem;font-weight:700;list-style:none;line-height:1.4}
.accordion summary::-webkit-details-marker{display:none}
.accordion-symbol{width:15px;height:15px;position:relative;flex:none;color:#5d91b2}
.accordion-symbol::before,.accordion-symbol::after{content:"";position:absolute;background:currentColor;top:7px;left:2px;width:12px;height:1.6px;transition:transform .18s}
.accordion-symbol::after{transform:rotate(90deg)}
.accordion[open] .accordion-symbol::after{transform:rotate(0)}
.accordion-content{padding:0 27px 18px 0;font-size:.91rem}
.accordion-content p{margin:0 0 13px}
.accordion-content a{font-weight:700;color:#315c7c;text-decoration:underline;text-decoration-color:#9bbacc;text-underline-offset:3px}
.editorial-grid{display:grid;grid-template-columns:1fr 1fr;gap:75px;align-items:start}
.editorial-grid>div:last-child{max-width:510px;padding-top:3px}
.editorial-grid>div:last-child p{font-size:1rem}
.editorial-grid h2{max-width:450px}
.mini-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.mini-cards a{border:1px solid var(--line);background:white;font-weight:650;color:var(--navy);padding:19px 21px;font-size:.86rem;transition:background .15s}
.mini-cards a:hover{background:var(--tint)}
/* TEAM */
.slim-hero{padding-top:54px;padding-bottom:57px}
.slim-hero .crumbs{margin-bottom:42px}
.slim-hero .display-heading{max-width:830px;font-size:clamp(2.8rem,4.7vw,4.5rem);margin-bottom:18px}
.slim-hero .lede{max-width:570px}
.team-section{padding-top:14px}
.team-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.team-card{min-width:0}
.team-photo{aspect-ratio:4/4.2;background:#e4eaee;overflow:hidden;position:relative;margin-bottom:23px}
.team-photo img{width:100%;height:100%;object-fit:cover;filter:grayscale(100%);position:relative;z-index:2}
.team-photo-fallback{position:absolute;inset:0;display:grid;place-items:center;font-size:6rem;font-weight:300;letter-spacing:-.06em;color:#91aabc;background:linear-gradient(135deg,#f0f3f4,#bfcdd5)}
.team-role{font-size:.65rem;font-weight:750;letter-spacing:.12em;color:#678aa1;margin-bottom:12px}
.team-card h2{font-size:1.4rem;margin-bottom:7px;letter-spacing:-.045em}
.team-card .team-title{font-size:.83rem;font-weight:700;margin-bottom:19px;color:#526b7b}
.team-card>p:not(.team-role):not(.team-title){font-size:.88rem;line-height:1.72}
/* VISIT */
.intro-steps{padding-top:75px;padding-bottom:79px}
.contact-grid{display:grid;grid-template-columns:1fr .94fr;gap:95px;align-items:start}
.contact-details>p{max-width:400px}
.contact-details>h2{margin-bottom:20px}
.contact-block{display:flex;flex-direction:column;align-items:flex-start;gap:5px;margin-top:30px}
.contact-label{font-size:.68rem;font-weight:800;color:#68879b;letter-spacing:.15em;margin-bottom:5px}
.contact-block a,.contact-block address{font-size:.97rem;font-weight:600;font-style:normal}
.contact-block .contact-important{font-size:1.35rem;font-weight:700;color:var(--navy)}
.contact-block .text-link{font-size:.8rem;margin-top:6px}
.contact-block .small-muted{font-weight:400;max-width:360px;margin:2px 0 0}
.booking-card{border:1px solid #e2e8ed;box-shadow:0 22px 50px rgba(46,65,82,.06);background:#fff;padding:41px 39px}
.booking-card h2{font-size:2rem;margin-bottom:16px}
.booking-card>p{font-size:.94rem}
.booking-card .btn-primary{width:100%;margin-top:15px}
.booking-divider{border-top:1px solid var(--line);margin:30px 0;position:relative;text-align:center;height:1px}
.booking-divider span{position:relative;top:-13px;display:inline-block;background:white;padding:0 15px;color:#95a2aa;font-size:.82rem}
.booking-card .small-muted{margin:20px 0 0;font-size:.77rem}
.location-card{display:grid;grid-template-columns:1fr 1fr;gap:0;background:var(--tint);margin-bottom:95px;min-height:295px}
.location-art{position:relative;background:linear-gradient(145deg,#a4bdc5,#d4e6e9 45%,#aec8ce);overflow:hidden;min-height:310px;display:flex;align-items:center;justify-content:center}
.location-art::before,.location-art::after{position:absolute;content:"";width:125%;height:55px;border:12px solid #e3eff1;transform:rotate(-35deg);opacity:.7}
.location-art::before{top:17%;left:-30%}
.location-art::after{bottom:15%;right:-22%}
.location-art span{font-size:7rem;color:#315e72;font-weight:800;letter-spacing:-.1em;opacity:.5;z-index:1}
.location-card>div:last-child{padding:45px 46px;display:flex;align-items:flex-start;justify-content:center;flex-direction:column}
.location-card h2{font-size:2.2rem;margin-bottom:13px}
.location-card p{font-size:.9rem}
.location-card .text-link{margin-top:10px}
.notice-box{background:#e6f0f5;border-left:3px solid #9bb8cb;padding:16px 19px;color:#536b7a;font-size:.87rem;line-height:1.65;margin-bottom:20px}
.condition-hero{padding-bottom:83px}
.condition-hero .btn{margin-top:14px}
.condition-hero .lede{max-width:650px}
/* FOOTER */
.site-footer{border-top:1px solid var(--line);background:#fbfaf7;padding:65px 0 20px}
.footer-grid{display:grid;grid-template-columns:1.35fr .8fr .95fr;gap:75px;padding-bottom:60px}
.footer-grid>div:first-child>p{max-width:265px;margin-top:20px;font-size:.84rem}
.footer-grid h2{font-size:.8rem;letter-spacing:0;font-weight:760;margin-bottom:19px;color:var(--ink)}
.footer-grid>div:nth-child(n+2) a{display:block;font-size:.81rem;color:#4f6475;margin-bottom:9px}
.footer-grid>div:nth-child(n+2) a:hover{color:var(--blue);text-decoration:underline}
.footer-grid>div:nth-child(n+2) p{font-size:.8rem;line-height:1.55}
.footer-bottom{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:20px 0 0;color:#93a0a9;font-size:.71rem;gap:10px}
.mobile-quick-actions{display:none}
/* TABLETS */
@media (max-width:1000px){
  .container{width:min(calc(100% - 52px),var(--container))}
  .header-inner{height:76px}
  .desktop-nav{gap:17px}
  .desktop-nav>a,.nav-link{font-size:.78rem}
  .home-hero{gap:30px;padding-top:66px}
  .home-hero .display-heading{font-size:clamp(2.6rem,4.5vw,4.2rem)}
  .two-column-section{gap:55px}
  .service-hero{gap:35px}
  .focus-section{gap:35px}
  .footer-grid{gap:30px}
}
@media (max-width:760px){
  html{scroll-padding-top:79px}
  .container{width:min(calc(100% - 38px),var(--container))}
  .topline{height:24px;font-size:.61rem}
  .topline-inner>span:first-child{display:none}
  .topline-inner{justify-content:center}
  .site-header{backdrop-filter:none}
  .header-inner{height:67px;gap:10px}
  .brand{min-width:108px}
  .brand-word{font-size:1.53rem}
  .brand-sub{font-size:.44rem}
  .desktop-nav{display:none}
  .header-actions{margin-left:auto}
  .header-actions .btn-small{display:none}
  .menu-toggle{display:flex}
  .mobile-nav{display:block;position:absolute;top:100%;left:0;right:0;background:var(--cream);border-bottom:1px solid var(--line);max-height:calc(100dvh - 91px);overflow-y:auto;box-shadow:0 20px 30px #243a501a}
  .mobile-menu-inner{width:min(calc(100% - 38px),var(--container));margin:auto;display:flex;flex-direction:column;padding:20px 0 25px}
  .mobile-menu-inner a{padding:12px 0;border-bottom:1px solid var(--line);font-size:1rem;font-weight:600}
  .mobile-nav-label{font-size:.64rem;letter-spacing:.14em;color:#6d8da1;font-weight:800;margin:14px 0 3px}
  .home-hero{grid-template-columns:1fr;gap:34px;padding-top:54px;padding-bottom:30px}
  .home-hero .display-heading{font-size:clamp(2.85rem,9.8vw,4.6rem);margin-bottom:19px}
  .home-hero .lede{font-size:1rem}
  .eyebrow{font-size:.66rem;letter-spacing:.155em}
  .hero-note{font-size:.72rem}
  .home-hero .carousel{border-radius:6px}
  .home-hero .carousel-viewport{aspect-ratio:1.33/1}
  .value-strip{grid-template-columns:1fr;gap:0;padding:0 0 32px}
  .value-strip>div,.value-strip>div+div{padding:10px 0}
  .value-strip p{margin-top:3px}
  .section{padding:65px 0}
  .split-section-head,.editorial-grid{grid-template-columns:1fr;gap:16px;margin-bottom:29px}
  .split-section-head h2,.editorial-grid h2{margin-bottom:5px}
  .split-section-head>p{max-width:550px}
  .service-cards{grid-template-columns:1fr;gap:12px}
  .service-card{min-height:0;padding:24px 23px}
  .service-icon{margin:13px 0 13px}
  .service-card p{margin-bottom:20px}
  .image-feature{grid-template-columns:1fr}
  .image-feature .carousel{border-radius:6px 6px 0 0;min-height:0}
  .image-feature .carousel-viewport{aspect-ratio:1.35/1;min-height:0;height:auto}
  .feature-copy{padding:35px 30px}
  .feature-copy h2{font-size:clamp(2rem,6vw,2.9rem)}
  .steps-grid{grid-template-columns:1fr;gap:15px}
  .steps-grid>div{display:grid;grid-template-columns:48px 1fr;gap:0 12px;padding-top:16px}
  .steps-grid .step-no{grid-row:1/3;margin:0;padding-top:2px}
  .steps-grid h3{margin:0 0 2px}
  .steps-grid p{margin:0 0 7px;max-width:550px}
  .focus-section{grid-template-columns:1fr;gap:24px}
  .link-columns{grid-template-columns:1fr}
  .cta-band{padding:29px 26px;margin-bottom:78px;flex-direction:column;align-items:stretch;gap:20px}
  .cta-band .btn{align-self:flex-start}
  .service-hero{grid-template-columns:1fr;gap:33px;padding-top:35px;padding-bottom:50px;min-height:0}
  .service-hero .crumbs{margin-bottom:30px}
  .service-hero .display-heading{font-size:clamp(2.8rem,8vw,4rem)}
  .photo-panel{height:auto;aspect-ratio:1.4/1;border-radius:75px 4px 4px 4px}
  .two-column-section{grid-template-columns:1fr;gap:21px}
  .mini-cards{grid-template-columns:1fr 1fr}
  .slim-hero{padding-top:38px;padding-bottom:32px}
  .slim-hero .crumbs{margin-bottom:32px}
  .slim-hero .display-heading{font-size:clamp(2.85rem,8.3vw,4rem)}
  .team-grid{grid-template-columns:1fr 1fr;gap:25px 18px}
  .team-photo{margin-bottom:14px}
  .team-card h2{font-size:1.25rem}
  .team-card>p:not(.team-role):not(.team-title){font-size:.85rem}
  .contact-grid{grid-template-columns:1fr;gap:30px}
  .booking-card{padding:29px 24px}
  .location-card{grid-template-columns:1fr}
  .location-art{min-height:210px}
  .location-card>div:last-child{padding:31px 27px}
  .footer-grid{grid-template-columns:1fr 1fr;gap:30px}
  .footer-grid>div:first-child{grid-column:1/-1}
  .site-footer{padding-bottom:calc(30px + env(safe-area-inset-bottom))}
  .footer-bottom{flex-wrap:wrap}
  .mobile-quick-actions{position:fixed;bottom:0;left:0;right:0;display:grid;grid-template-columns:1fr 1.42fr;gap:9px;padding:9px 13px calc(9px + env(safe-area-inset-bottom));background:rgba(252,252,251,.96);box-shadow:0 -4px 20px #18395420;border-top:1px solid #d7dfe4;z-index:99;backdrop-filter:blur(9px)}
  .mobile-quick-actions a{display:flex;align-items:center;justify-content:center;border-radius:3px;min-height:44px;font-size:.84rem;font-weight:750;text-align:center}
  .mobile-quick-actions .quick-call{border:1px solid #b6c5ce;color:var(--navy);background:#fff}
  .mobile-quick-actions .quick-book{background:var(--navy);color:white}
  body{padding-bottom:calc(64px + env(safe-area-inset-bottom))}
}
@media (max-width:480px){
  .container{width:calc(100% - 34px)}
  .topline{font-size:.59rem}
  .home-hero{padding-top:39px}
  .home-hero .display-heading{font-size:clamp(2.7rem,11vw,3.8rem)}
  .home-hero .lede{font-size:.96rem}
  .hero-actions{gap:19px}
  .btn{min-height:46px;padding:13px 18px;font-size:.8rem}
  .home-hero .carousel-viewport{aspect-ratio:1.23/1}
  .carousel-fallback{padding:25px}
  .fallback-title{font-size:2.15rem}
  h2{font-size:clamp(2rem,8vw,2.65rem)}
  .section{padding:56px 0}
  .service-cards{gap:10px}
  .service-hero .display-heading{font-size:clamp(2.5rem,10.1vw,3.3rem)}
  .service-hero .lede{font-size:.97rem}
  .photo-panel{aspect-ratio:1.2/1}
  .mini-cards{grid-template-columns:1fr}
  .team-grid{grid-template-columns:1fr}
  .team-photo{aspect-ratio:4/3.25}
  .team-role{font-size:.67rem}
  .team-card h2{font-size:1.45rem}
  .team-card{padding-bottom:15px;border-bottom:1px solid var(--line)}
  .footer-grid{grid-template-columns:1fr}
  .footer-grid>div:first-child{grid-column:auto}
  .footer-grid>div{padding-bottom:10px}
  .cta-band{margin-top:10px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}
}
/* Use the authentic SoBrook logo; shared JS attempts the live original if local copy is missing. */
.brand .brand-image{display:block;max-width:186px;max-height:76px;width:auto;height:auto;object-fit:contain}
.brand.brand-has-image .brand-image{display:block}
.brand.brand-has-image .brand-word,.brand.brand-has-image .brand-sub{display:none}

/* Logo-blue text treatment; preserve white text on navy blocks and clear secondary contrast. */
h1,h2,h3,.display-heading,.nav-link,.desktop-nav>a,.brand,.text-link{color:var(--ink)}
.feature-copy h2,.cta-band h2{color:#fff}
.feature-copy .text-link{color:#fff}
@media(max-width:760px){.brand .brand-image{max-width:136px;max-height:56px}.header-inner .brand{min-width:136px}}

/* V3: authentic logo, balanced OT/PT team columns, original-size carousel photos */
.brand{min-width:186px}
.brand .brand-word,.brand .brand-sub{display:none}
.team-grid-disciplines{grid-template-columns:repeat(2,minmax(0,1fr));gap:45px;align-items:start}
.team-discipline{min-width:0}
.team-discipline .eyebrow{margin-bottom:5px}
.team-discipline-title{font-size:clamp(1.55rem,2.2vw,2.05rem);border-bottom:1px solid var(--line);padding-bottom:16px;margin-bottom:25px}
.team-discipline-title a:hover{text-decoration:underline;text-underline-offset:4px}
.team-discipline .team-card{display:grid;grid-template-columns:168px minmax(0,1fr);gap:19px;align-items:start;padding:0 0 29px;margin:0 0 29px;border-bottom:1px solid var(--line)}
.team-discipline .team-card:last-child{margin-bottom:0;border-bottom:0}
.team-discipline .team-photo{aspect-ratio:3/3.8;margin:0;background:#e9ecef;border-radius:3px}
.team-discipline .team-photo img{object-fit:cover;object-position:50% 18%;filter:grayscale(100%)}
.team-discipline .team-photo-tnk img{object-fit:contain;object-position:center top;background:#e6e6e6}
.team-card-body{min-width:0}
.team-card-body .team-role{margin:0 0 9px}
.team-card-body h3{font-size:1.2rem;margin:0 0 6px}
.team-card-body .team-title{font-size:.79rem;margin:0 0 11px}
.team-card-body>p:not(.team-role):not(.team-title){font-size:.85rem;line-height:1.62;margin-bottom:10px}
.carousel .carousel-current,.carousel .carousel-next-image{image-rendering:auto}
/* For native images smaller than their viewport, display without enlargement. */
.carousel .carousel-current.is-small-photo,.carousel .carousel-next-image.is-small-photo{width:auto;height:auto;max-width:100%;max-height:100%;top:50%;left:50%;transform:translate(-50%,-50%);object-fit:contain}
@media(max-width:1000px){.team-grid-disciplines{gap:24px}.team-discipline .team-card{grid-template-columns:130px minmax(0,1fr);gap:15px}}
@media(max-width:760px){.brand{min-width:136px}.team-grid-disciplines{grid-template-columns:1fr;gap:34px}.team-discipline .team-card{grid-template-columns:165px minmax(0,1fr);gap:18px}}
@media(max-width:480px){.team-discipline .team-card{grid-template-columns:126px minmax(0,1fr);gap:13px}.team-card-body h3{font-size:1.13rem}.team-card-body>p:not(.team-role):not(.team-title){font-size:.82rem}.team-discipline .team-photo{aspect-ratio:3/4}.team-grid-disciplines{gap:27px}}
@media(max-width:350px){.team-discipline .team-card{grid-template-columns:1fr}.team-discipline .team-photo{width:min(100%,240px);aspect-ratio:4/4}}

/* V4: Zocdoc's official image badge and user-supplied favicon. */
.header-actions .zocdoc-badge{display:inline-flex;align-items:center;justify-content:center;position:relative;min-width:145px;max-width:170px;min-height:46px;text-decoration:none}
.zocdoc-badge img{width:100%;height:auto;max-height:63px;object-fit:contain}
.zocdoc-badge-fallback{display:none;min-height:42px;padding:10px 14px;border-radius:4px;background:var(--navy);color:#fff;font-weight:700;font-size:.8rem;align-items:center;justify-content:center;white-space:nowrap}
.zocdoc-badge.badge-image-failed img{display:none}
.zocdoc-badge.badge-image-failed .zocdoc-badge-fallback{display:inline-flex}
.zocdoc-badge:focus-visible{outline:3px solid #4c91bd;outline-offset:3px}
/* The full new tagline should also be readable on mobile without compressing the menu. */
@media(max-width:760px){
 .header-actions .zocdoc-badge{display:none}
 .topline{height:auto;min-height:31px;line-height:1.4;padding:6px 0}
 .topline-inner{justify-content:center}
 .topline-inner>span:first-child{display:block;text-align:center;font-size:.65rem;letter-spacing:.015em}
 .topline-inner>span:last-child{display:none}
}
@media(max-width:380px){.topline-inner>span:first-child{font-size:.61rem}}
