:root{--ink:#152b3b;--muted:#536875;--blue:#0768d5;--pale:#eef5fa;--line:#d7e2e8;--white:#fff;--radius:18px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:#fff;color:var(--ink);font-family:'Helvetica Neue',Arial,sans-serif;font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #0875e6;outline-offset:5px}img{display:block;max-width:100%;object-fit:cover}button{color:inherit}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-weight:500;line-height:1.12;letter-spacing:-.045em}h2{font-size:clamp(34px,4.1vw,58px);margin-bottom:28px}h3{font-size:24px;letter-spacing:-.025em}p{color:var(--muted)}.wrap{max-width:1320px;margin:auto;padding-left:44px;padding-right:44px}header{height:82px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 44px;max-width:1440px;margin:auto;background:white;position:relative;z-index:5}.brand{display:flex;align-items:center;gap:10px;white-space:nowrap;font-size:24px;letter-spacing:-1px}.brand strong{font-weight:400}.brand strong span{font-weight:750}header nav{display:flex;gap:27px;font-size:14px}header nav a:hover,.text-link:hover{color:var(--blue)}.header-right{display:flex;align-items:center;gap:28px}.header-phone{font-size:14px;font-weight:600;white-space:nowrap}.languages{display:flex;gap:7px;font-size:12px}.languages a{padding:6px 2px}.languages [aria-current]{color:var(--blue);font-weight:700}.languages span{color:#7c8b94}.menu-toggle{display:none;background:none;border:0}.hero{padding-top:30px;padding-bottom:42px;display:grid;grid-template-columns:1fr 1.08fr;gap:48px;align-items:center}.eyebrow{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.11em;display:flex;gap:10px;align-items:center;color:#466775}.hero h1{font-size:clamp(48px,5.4vw,76px);line-height:1.04;margin:27px 0 23px;letter-spacing:-.055em}.lead{font-size:19px;line-height:1.6}.actions{display:flex;align-items:center;gap:26px;margin-top:30px}.button{display:inline-flex;align-items:center;justify-content:center;border-radius:8px;background:var(--blue);color:white;padding:16px 23px;font-size:14px;font-weight:550;transition:background .18s,transform .18s}.button:hover{background:#0059b9;transform:translateY(-2px)}.text-link{font-size:14px;border-bottom:1px solid #a8bcc8;padding-bottom:4px}.hero-photo{height:520px;position:relative;border-radius:var(--radius);overflow:hidden;background:#e3edf1}.hero-photo img{width:100%;height:100%;object-position:56% center}.hero-photo:after{content:'';position:absolute;inset:55% 0 0;background:linear-gradient(transparent,rgba(0,27,33,.6))}.hero-photo figcaption{position:absolute;left:28px;bottom:25px;color:white;z-index:1;display:grid;gap:3px;font-size:13px}.hero-photo figcaption span{font-size:11px;letter-spacing:.16em}.audiences{display:grid;grid-template-columns:1fr 1fr;padding-bottom:30px}.audiences a{display:flex;gap:22px;align-items:center;padding:28px 20px 28px 0;border-block:1px solid var(--line);font-size:22px;line-height:1.3}.audiences a+ a{padding-left:30px;border-left:1px solid var(--line)}.small-number{font-size:12px;color:#487287;font-weight:500}.audiences small{display:block;font-size:13px;color:var(--muted);margin-top:8px}.audiences b{margin-left:auto;font-weight:400}.audiences a:hover{color:var(--blue)}.intro{padding-top:100px;padding-bottom:110px}.intro .eyebrow{margin-bottom:26px}.section-intro{max-width:610px;font-size:17px;margin-bottom:40px}.direction-list{border-top:1px solid var(--line)}.direction-list .direction-item{display:grid;grid-template-columns:40px 1fr 1.15fr;gap:25px;align-items:center;padding:27px 0;border-bottom:1px solid var(--line)}.direction-list p{font-size:14px;max-width:420px}.living{padding-bottom:105px}.gallery-filters{display:flex;gap:10px;margin-bottom:25px;flex-wrap:wrap}.gallery-filters button{background:#fff;border:1px solid var(--line);border-radius:30px;padding:10px 19px;font-size:13px}.gallery-filters [aria-pressed=true]{background:var(--ink);color:white;border-color:var(--ink)}.gallery{display:grid;grid-template-columns:1fr 1fr 1fr;gap:22px}.photo{background:none;border:0;text-align:left;padding:0}.photo img{width:100%;height:225px;border-radius:12px;transition:filter .2s}.photo:hover img{filter:brightness(.9)}.photo span{display:flex;justify-content:space-between;font-size:13px;margin-top:10px}.photo b{font-weight:400}.photo[hidden]{display:none}.prices-section{background:#f5f8fa;padding:95px 0}.pricing-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:24px;margin-top:40px}.pricing-grid article{padding:40px;border-radius:var(--radius)}.primary-price{background:var(--ink);color:white}.primary-price>p{color:#b2cbd9;font-size:13px}.pricing-grid h3{font-size:33px;margin-top:12px}.pricing-grid ul{margin:28px 0 32px;padding:20px 0 0;list-style:none;border-top:1px solid #ffffff36}.pricing-grid li{padding:8px 0 8px 24px;position:relative;font-size:15px}.pricing-grid li:before{content:'✓';position:absolute;left:0;color:#93c9f1}.light{background:white;color:var(--ink)}.light:hover{background:#e6f2fb}.secondary-price{border:1px solid var(--line);background:white}.secondary-price>p{font-size:13px}.secondary-price ul{border-color:var(--line)}.secondary-price li:before{color:var(--blue)}.fine{font-size:12px;line-height:1.7}.price-note{font-size:13px;max-width:850px;margin:25px 0 35px}summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:22px 0;font-size:19px;font-weight:500;line-height:1.4}summary::-webkit-details-marker{display:none}summary span{font-size:25px;font-weight:300;flex-shrink:0}details[open]>summary span{transform:rotate(45deg)}.documents{padding-top:95px;padding-bottom:85px}.document-row{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:34px 0;border-block:1px solid var(--line)}.document-symbol{display:block;font-size:40px;line-height:1;color:var(--blue);margin-bottom:20px}.document-row h3{margin-bottom:14px}.document-row p{font-size:14px}.document-row .fine{font-size:12px;margin-top:8px}.document-row .text-link{white-space:nowrap}.contact-section{background:#e9f3fa;padding:90px 0}.contact-section h2{font-size:clamp(40px,5vw,70px);margin-top:25px}.contact-actions{display:flex;align-items:center;gap:38px;margin:30px 0 20px}.contact-phone{font-size:25px;letter-spacing:-.5px}footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:30px!important;padding-bottom:30px!important;font-size:12px;color:var(--muted)}footer .brand{color:var(--ink);font-size:20px}.mobile-contact{display:none}.skip{position:fixed;top:-80px;left:12px;background:white;padding:12px;z-index:50}.skip:focus{top:8px}dialog{border:0;border-radius:12px;padding:18px;max-width:min(92vw,1100px);background:white;color:var(--ink)}dialog::backdrop{background:rgba(8,25,39,.85)}dialog img{max-height:78dvh;max-width:100%;object-fit:contain}dialog p{padding-top:10px;font-size:14px}.close-viewer{position:absolute;top:22px;right:22px;width:42px;height:42px;background:white;border:0;border-radius:50%;font-size:28px;box-shadow:0 2px 10px #152b3b30}body.modal-open{overflow:hidden}[hidden]{display:none!important}
@media(min-width:1500px){.hero-photo{height:570px}}@media(max-width:1100px){header{padding:0 28px;gap:20px}header nav{gap:18px}.header-phone{display:none}.hero{gap:30px}.hero-photo{height:470px}.actions{gap:18px}.hero .button{padding:14px 18px}.hero .text-link{font-size:13px}.pricing-grid article{padding:28px}.gallery{gap:16px}.photo img{height:185px}}
@media(max-width:767px){html{scroll-padding-top:20px}.wrap{padding-left:22px;padding-right:22px}header{height:72px;padding:0 22px;gap:12px}header nav{display:none}.brand{font-size:22px;gap:7px}.header-right{gap:16px}.languages{font-size:11px}.menu-toggle{display:block;font-size:12px;padding:8px 0}#mobile-menu{background:var(--pale);padding:15px 22px;display:grid;gap:5px}#mobile-menu a{padding:10px 0;border-bottom:1px solid var(--line)}.hero{display:flex;flex-direction:column;align-items:stretch;gap:30px;padding-top:28px;padding-bottom:28px}.eyebrow{font-size:9px;letter-spacing:.08em}.hero h1{font-size:54px;margin:21px 0;line-height:1.02}.lead{font-size:17px}.actions{gap:22px;margin-top:24px}.hero-photo{height:320px}.hero-photo img{object-position:center}.hero-photo figcaption{left:20px;bottom:18px;font-size:12px}.hero-photo figcaption span{font-size:10px}.audiences{grid-template-columns:1fr;padding-bottom:0}.audiences a{font-size:19px;padding:20px 0;gap:18px}.audiences a+a{padding:20px 0;border-left:0;border-top:0}.audiences small{font-size:12px}.intro{padding-top:65px;padding-bottom:65px}h2{font-size:35px;margin-bottom:22px;letter-spacing:-1.3px}.section-intro{font-size:15px;margin-bottom:28px}.direction-list .direction-item{grid-template-columns:23px minmax(0,1fr);gap:13px;padding:22px 0}.direction-list h3{font-size:21px}.direction-list p{grid-column:2;grid-row:2;font-size:13px}.living{padding-bottom:65px}.gallery-filters{gap:8px}.gallery-filters button{font-size:12px;padding:9px 13px}.gallery{grid-template-columns:1fr 1fr;gap:20px 12px}.photo img{height:130px;border-radius:9px}.photo:first-child{grid-column:1 / -1}.photo:first-child img{height:250px}.photo span{font-size:11px;line-height:1.4}.prices-section{padding:60px 0}.pricing-grid{grid-template-columns:1fr;margin-top:28px}.pricing-grid article{padding:28px 24px}.pricing-grid h3{font-size:29px}.pricing-grid li{font-size:14px}.documents{padding-top:65px;padding-bottom:65px}.document-row{align-items:flex-start;flex-direction:column}.document-row h3{font-size:23px}summary{font-size:17px}.contact-section{padding:60px 0}.contact-section h2{font-size:41px}.contact-section p{font-size:15px}.contact-actions{align-items:flex-start;flex-direction:column;gap:23px}.contact-phone{font-size:24px}footer{flex-wrap:wrap;padding-bottom:100px!important;gap:20px}.mobile-contact{position:fixed;z-index:10;bottom:0;left:0;right:0;display:grid;grid-template-columns:1fr 1fr;background:white;border-top:1px solid var(--line);padding:10px 16px calc(10px + env(safe-area-inset-bottom));gap:10px}.mobile-contact a{text-align:center;padding:10px;background:var(--blue);color:white;border-radius:7px;font-size:13px}.mobile-contact a:first-child{background:var(--pale);color:var(--ink)}}
@media(max-width:360px){.hero h1{font-size:47px}.actions{gap:12px}.hero .button{font-size:12px}.header-right{gap:8px}.brand{font-size:19px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
.team{padding-top:95px;padding-bottom:30px}.team-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px 30px}.team-member{border-top:1px solid var(--line);padding-top:24px;min-width:0}.team-member h3{font-size:24px;line-height:1.22;max-width:300px;margin-bottom:14px}.team-member>p{font-size:14px;min-height:68px}.team-member summary{font-size:14px;padding:18px 0;border-bottom:1px solid var(--line)}.team-member ul{list-style:none;padding:0;margin:8px 0}.team-member li a{display:block;font-size:13px;padding:12px 0;border-bottom:1px solid var(--line);color:#075bae}.team-member li a:hover{text-decoration:underline}.document-symbol{font-size:36px}header nav{gap:18px}footer{flex-wrap:wrap}@media(max-width:1100px){header nav{gap:12px;font-size:13px}}@media(max-width:900px){.team-grid{grid-template-columns:1fr 1fr}header nav{gap:10px;font-size:12px}}@media(max-width:767px){.team{padding-top:60px}.team-grid{grid-template-columns:1fr;gap:30px}.team-member>p{min-height:0}.team-member h3{max-width:none}.document-symbol{font-size:30px}}

.document-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,390px);align-items:center;gap:60px}.license-preview{display:block;max-width:390px;justify-self:end}.license-preview img{width:100%;height:auto;object-fit:contain;border:1px solid var(--line);box-shadow:0 8px 30px #152b3b12}.license-preview span{display:block;font-size:13px;color:var(--blue);margin-top:14px}.license-preview:hover span{text-decoration:underline}@media(max-width:767px){.document-row{grid-template-columns:1fr;gap:30px}.license-preview{justify-self:start;width:100%;max-width:390px}}
.team-portrait{display:block;width:100%;height:auto;aspect-ratio:706/756;object-fit:cover;object-position:center top;border-radius:12px;margin-bottom:22px}.team-member:has(.team-portrait){border:0;padding-top:0}

/* Responsive navigation,keyboard focus and minimum touch targets. */
@media(min-width:768px){#mobile-menu{display:none!important}}
@media(max-width:900px) and (min-width:768px){header{gap:12px;padding-inline:22px}.header-right{gap:12px}header nav{gap:9px}}
@media(max-width:767px){.menu-toggle{min-height:44px;min-width:44px}.languages a{min-width:24px;padding-block:12px}.actions{flex-wrap:wrap}.hero h1{font-size:clamp(42px,13.8vw,54px)}}
dialog{max-height:90dvh;overflow:auto}dialog img{width:auto;height:auto}body.modal-open .mobile-contact{visibility:hidden}
h1,h2,h3{overflow-wrap:anywhere}.languages{align-items:center}.menu-toggle{white-space:nowrap}
@media(max-width:360px){header{padding-inline:16px;gap:8px}.header-right{gap:6px}.languages{gap:4px}}

/* Compact logo lockup adapted for the white site header. */
.brand-original{display:block;position:relative;overflow:hidden;width:250px;aspect-ratio:1970/550;flex-shrink:0;background:#fff;letter-spacing:0}
.brand-original>img{position:absolute;width:110.2538%;max-width:none;height:auto;left:-5.0761%;top:-18.1818%;object-fit:contain}
header{height:90px;gap:20px}header .header-phone{display:none}header nav{gap:16px}footer .brand-original{width:245px}
@media(max-width:1000px) and (min-width:768px){header{padding-inline:22px;gap:14px}.brand-original{width:220px}header nav{gap:12px;font-size:12px}.header-right{gap:12px}}
@media(max-width:767px){header{height:82px;display:flex;padding-inline:18px;gap:10px}.brand-original{width:clamp(180px,54vw,220px)}.header-right{gap:10px}.languages{gap:4px;align-items:center}.languages a{min-width:18px;padding-block:8px}.menu-toggle{min-height:40px;min-width:32px;font-size:11px}.hero{padding-top:24px}footer .brand-original{width:245px}}
@media(max-width:360px){header{padding-inline:12px;gap:6px}.header-right{gap:6px}.languages{font-size:10px}.menu-toggle{font-size:10px}}


:root{--warm:#f8f7f3}
h1,h2,h3{text-wrap:balance}p{text-wrap:pretty}h2{font-size:clamp(30px,3.5vw,48px);line-height:1.15;letter-spacing:-.035em}
.hero h1{font-size:clamp(44px,4.5vw,64px)}.hero .lead{font-size:17px;max-width:510px}.hero-photo{height:460px}.hero{gap:44px;padding-bottom:36px}
header nav{gap:18px;font-size:13px}header .brand-original{height:44px}.audiences a{font-size:21px}.audiences a:hover{background:#f6f9fc}
.about-section{display:grid;grid-template-columns:1.1fr 1fr;gap:70px;padding-top:85px;padding-bottom:85px;align-items:center}.about-section .eyebrow,.intro .eyebrow,.loved-one-section .eyebrow,.journey-section .eyebrow{margin-bottom:20px}.about-section p:not(.eyebrow){margin-bottom:18px;max-width:610px}.about-section .text-link{display:inline-block;margin-top:7px}.about-section figure img{width:100%;height:350px;border-radius:14px}.about-section figcaption{font-size:12px;margin-top:12px;color:var(--muted)}
.intro{padding-top:72px;padding-bottom:80px;border-top:1px solid var(--line)}.intro h2{max-width:690px}.direction-list h3{font-size:22px}.direction-list .direction-item{padding:22px 0}.direction-list p{font-size:14px}
.loved-one-section{background:var(--pale);padding:80px 0}.loved-one-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:70px;align-items:start}.loved-one-grid h2{font-size:clamp(30px,3vw,42px)}.help-questions{border-top:1px solid #c6d8e5}.help-questions details{border-bottom:1px solid #c6d8e5}.help-questions summary{font-size:18px;padding:21px 0}.help-questions details p{padding:0 22px 23px 0;font-size:15px}
.journey-section{padding-top:85px;padding-bottom:85px}.journey-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:30px;list-style:none;padding:0;margin:40px 0 0}.journey-steps li{border-top:1px solid var(--line);padding-top:22px}.step-number{display:block;color:var(--blue);font-size:13px;margin-bottom:24px}.journey-steps h3{font-size:23px;min-height:56px;margin-bottom:15px}.journey-steps p{font-size:14px}
.team{padding-top:20px;padding-bottom:80px}.team-grid{gap:40px 30px}.team-member h3{font-size:22px}.team-member>p{font-size:14px}
.living{padding-top:80px;padding-bottom:80px}
.prices-section{background:#fff;padding:80px 0}.primary-price{background:var(--pale);color:var(--ink);border:1px solid #d4e4ef}.primary-price>p{color:var(--muted)}.primary-price ul{border-color:#cbdde9}.primary-price li:before{color:var(--blue)}.primary-price .button{background:var(--blue);color:white}.primary-price .button:hover{background:#0059b9}.documents{padding-top:45px}.button:active{transform:translateY(1px)}
@media(min-width:1500px){.hero-photo{height:500px}}
@media(max-width:1050px){header nav{gap:12px;font-size:12px}.about-section,.loved-one-grid{gap:35px}.journey-steps{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}.journey-steps h3{min-height:0}}
@media(max-width:767px){header{height:64px}header .brand-original{height:34px}.hero{gap:25px;padding-top:24px}.hero h1{font-size:46px;line-height:1.08;margin:20px 0}.hero .lead{font-size:16px}.hero-photo{height:300px}.hero .actions{flex-wrap:wrap;gap:18px}.audiences a{font-size:19px;padding:21px 0}.audiences a+a{padding:21px 0}.audiences small{max-width:250px}.about-section,.loved-one-grid{grid-template-columns:minmax(0,1fr);gap:30px}.about-section,.intro,.journey-section,.living{padding-top:56px;padding-bottom:56px}.about-section figure img{height:260px}.about-section h2,.intro h2,.loved-one-grid h2{font-size:32px}.loved-one-section,.prices-section{padding:56px 0}.direction-list h3{font-size:20px}.journey-steps{grid-template-columns:1fr;gap:23px;margin-top:30px}.journey-steps li{display:grid;grid-template-columns:28px 1fr;gap:8px 14px;padding-top:20px}.step-number{grid-row:1/3;margin:3px 0 0}.journey-steps h3{font-size:22px;margin:0}.journey-steps p{grid-column:2}.team{padding-top:10px;padding-bottom:56px}.loved-one-section .button{white-space:normal;text-align:center}.documents{padding-top:50px}.team-member>p{min-height:0}}
@media(max-width:360px){.hero h1{font-size:41px}.about-section h2,.intro h2,.loved-one-grid h2{font-size:29px}}

/* Three-language navigation and English layouts. */
.languages{flex-shrink:0;white-space:nowrap}.languages a{display:inline-flex;align-items:center;justify-content:center;min-height:36px}html[lang="en"] .hero h1{font-size:clamp(42px,4.4vw,62px)}html[lang="en"] .team-member h3{overflow-wrap:normal}html[lang="en"] .journey-steps h3{min-height:2.5em}
@media(max-width:1100px) and (min-width:768px){header{gap:12px;padding-inline:22px}header nav{gap:10px;font-size:12px}.header-right{gap:12px}header .brand-original{height:38px}}
@media(max-width:767px){.languages{gap:4px}.languages a{min-width:20px;min-height:40px}.header-right{gap:9px}html[lang="en"] .hero h1{font-size:44px}html[lang="en"] .journey-steps h3{min-height:0}html[lang="en"] .team-member h3{overflow-wrap:anywhere}}
@media(max-width:360px){header{padding-inline:12px;gap:6px}header .brand-original{height:31px}.header-right{gap:6px}.languages{gap:3px}.languages a{min-width:18px}.menu-toggle{font-size:10px}html[lang="en"] .hero h1{font-size:39px}}

/* Keep site navigation visible while scrolling. */
header{position:sticky;top:0;z-index:20;box-shadow:0 1px 0 var(--line)}
html{scroll-padding-top:92px}
@media(max-width:767px){html{scroll-padding-top:84px}#mobile-menu{position:sticky;top:64px;z-index:19;max-height:calc(100dvh - 140px);overflow-y:auto;overscroll-behavior:contain}}

/* Localised subtitle,keeping the supplied brand symbol and wordmark. */
.brand-original{container-type:inline-size}

/* Unified logo lockup: original artwork and undistorted localised type. */
.brand-original{aspect-ratio:990/262;container-type:normal}
.brand-lockup{display:block;width:100%;height:100%;overflow:visible}
.brand-lockup text{font-family:'Helvetica Neue',Arial,sans-serif;font-weight:300;fill:#152b3b;letter-spacing:0}
header .brand-original{aspect-ratio:990/262}
footer .brand-original{height:auto;aspect-ratio:990/262}

/* Programme inclusions precede the monthly fee. */
.primary-price .inclusions-label{margin:22px 0 0;font-size:16px;color:var(--ink)}
.primary-price .course-cost{font-size:20px;line-height:1.45;color:var(--ink);margin:24px 0 18px}
.course-cost strong{display:block;font-size:clamp(25px,3vw,34px);line-height:1.25;margin-top:8px}

/* Two programmes,followed by a separate stabilisation stage. */
.pricing-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
.outpatient-price{background:#f5f8fa;border:1px solid #d4e4ef;color:var(--ink)}
.outpatient-price .product-tag{font-size:13px;color:var(--muted)}
.outpatient-price .product-description{font-size:16px;line-height:1.6;margin:20px 0}
.outpatient-price .inclusions-label{font-size:16px;margin-top:22px}
.outpatient-price ul{border-color:#cbdde9}
.outpatient-price li:before{color:var(--blue)}
.outpatient-cost{font-size:21px;font-weight:600;line-height:1.4;margin:24px 0}
.outpatient-price .button{white-space:normal;text-align:center}
.pricing-grid .secondary-price{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;column-gap:40px}
.secondary-price>p:first-child,.secondary-price h3{grid-column:1}
.secondary-price ul{grid-column:2;grid-row:1/5;margin:0;padding:0;border:0}
.secondary-price .fine{grid-column:1/-1;margin-top:20px}
@media(max-width:767px){.pricing-grid{grid-template-columns:1fr}.pricing-grid .secondary-price{display:block}.secondary-price ul{margin:24px 0}.outpatient-cost{font-size:20px}}

/* Main programme above two complementary products. */
.pricing-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}
.pricing-grid .primary-price{grid-column:1/-1;display:grid;grid-template-columns:1.05fr 1fr;gap:44px;align-items:start}
.primary-inclusions h3{margin-top:0}
.primary-inclusions ul{margin-bottom:0}
.primary-summary{padding-left:36px;border-left:1px solid #cbdde9}
.primary-summary .course-cost{margin-top:0}
.pricing-grid .secondary-price{grid-column:auto;display:block}
.secondary-price ul{margin:28px 0 32px;padding:20px 0 0;border-top:1px solid var(--line)}
@media(max-width:767px){.pricing-grid{grid-template-columns:1fr}.pricing-grid .primary-price{display:block}.primary-summary{padding:24px 0 0;margin-top:24px;border-left:0;border-top:1px solid #cbdde9}.primary-summary .course-cost{margin-top:0}}

/* Diplomas and certificates are shown as one visual catalogue. */
.credentials-catalog{margin-top:40px;padding-top:34px;border-top:1px solid var(--line);scroll-margin-top:92px}
.credentials-heading{display:flex;align-items:end;justify-content:space-between;gap:32px}
.credentials-heading h3{font-size:clamp(28px,3vw,40px);line-height:1.15}
.credentials-heading p{max-width:480px;font-size:14px;text-align:right}
.credentials-carousel{position:relative}
.credentials-grid{display:grid;grid-auto-flow:column;grid-auto-columns:320px;gap:18px;margin-top:24px;padding:6px 4px 18px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-padding-inline:4px;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:#9eb6c4 #e6eef3}
.credentials-grid::-webkit-scrollbar{height:8px}
.credentials-grid::-webkit-scrollbar-track{background:#e6eef3;border-radius:999px}
.credentials-grid::-webkit-scrollbar-thumb{background:#9eb6c4;border-radius:999px}
.credentials-grid::-webkit-scrollbar-thumb:hover{background:#7899aa}
.credentials-arrow{position:absolute;top:calc(50% + 3px);z-index:4;display:flex;align-items:center;justify-content:center;width:46px;height:46px;padding:0;color:var(--ink);background:rgba(255,255,255,.96);border:1px solid var(--line);border-radius:50%;box-shadow:0 8px 24px rgba(21,43,59,.14);transform:translateY(-50%);transition:color .18s ease,background .18s ease,opacity .18s ease,transform .18s ease}
.credentials-arrow span{display:block;margin-top:-3px;font-size:34px;font-weight:300;line-height:1}
.credentials-arrow:hover:not(:disabled){color:var(--blue);background:var(--white);transform:translateY(-50%) scale(1.06)}
.credentials-arrow:disabled{opacity:.28;cursor:default;box-shadow:none}
.credentials-arrow-left{left:-23px}
.credentials-arrow-right{right:-23px}
.credential-card{min-width:0;overflow:hidden;background:var(--white);border:1px solid var(--line);border-radius:14px;scroll-snap-align:start;cursor:zoom-in;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}
.credential-card:hover{transform:translateY(-3px);border-color:#b9cfdb;box-shadow:0 14px 30px rgba(21,43,59,.09)}
.credential-preview{position:relative;display:flex;align-items:center;justify-content:center;height:220px;padding:16px;background:#edf4f8;border-bottom:1px solid var(--line)}
.credential-preview img{width:100%;height:100%;object-fit:contain;filter:saturate(.92);transition:filter .2s ease,transform .25s ease}
.credential-card:hover .credential-preview img{filter:saturate(1);transform:scale(1.015)}
.credential-filetype{position:absolute;top:12px;right:12px;padding:4px 7px;color:#3c6175;background:rgba(255,255,255,.92);border:1px solid rgba(183,204,216,.85);border-radius:5px;font-size:10px;font-weight:700;letter-spacing:.08em}
.credential-card-copy{display:flex;flex-direction:column;min-height:142px;padding:18px}
.credential-card-copy strong{font-size:15px;font-weight:550;line-height:1.45;letter-spacing:-.01em;overflow-wrap:anywhere}
.credential-card-action{margin-top:auto;padding-top:18px;color:var(--blue);font-size:13px;font-weight:600}
.viewer-caption{max-width:76ch;margin:0 auto;color:var(--ink);text-align:center}
@media(max-width:1000px){.credentials-grid{grid-auto-columns:300px}.credential-preview{height:215px}}
@media(max-width:767px){.credentials-catalog{margin-top:32px;padding-top:28px}.credentials-heading{display:block}.credentials-heading h3{font-size:28px}.credentials-heading p{margin-top:10px;text-align:left}.credentials-grid{grid-auto-columns:min(82vw,290px);gap:14px;margin-top:18px;padding-bottom:14px}.credentials-arrow{top:calc(50% + 2px);width:42px;height:42px}.credentials-arrow span{font-size:31px}.credentials-arrow-left{left:-10px}.credentials-arrow-right{right:-10px}.credential-preview{height:200px;padding:12px}.credential-card-copy{min-height:128px;padding:15px}.credential-card-copy strong{font-size:14px}}
@media(max-width:520px){.credentials-grid{grid-auto-columns:min(84vw,280px)}.credential-preview{height:205px}.credential-card-copy{min-height:0}.credential-card-action{padding-top:14px}}

/* Keep one divider between the licence and the credentials catalogue. */
.documents>.document-row{border-bottom:0}

.hero .hero-assurance{font-size:14px;line-height:1.6;margin:18px 0 0;color:var(--muted)}.hero-assurance strong{color:var(--blue);font-weight:600}

/* Keep each phrase on its own line,sized to the text column. */
html[lang="ru"] .about-section > div{ min-width: 0; container-type: inline-size; }
html[lang="ru"] .about-section .about-heading{
  font-size: clamp(18px, 3vw, 42px);
  font-size: clamp(18px, 7.2cqw, 42px);
  line-height: 1.2;
  letter-spacing: -.04em;
}
.about-heading > span{ display: block; white-space: nowrap; }
@supports not (font-size: 1cqw){
  @media (max-width: 767px){
    html[lang="ru"] .about-section .about-heading{ font-size: clamp(18px, 5.8vw, 42px); }
  }
}

/* Shared reading rhythm: preserve copy and brand,improve text flow. */
main h2,main h3{
  overflow-wrap: break-word;
  word-break: normal;
  hyphens: none;
  text-wrap: balance;
}
main h2{ line-height: 1.18; letter-spacing: -.03em; }
main h3{ line-height: 1.28; letter-spacing: -.02em; }
main p,main li{ text-wrap: pretty; }
.hero-copy,.loved-one-grid > div,.primary-inclusions,.primary-summary{ min-width: 0; }
.hero .eyebrow{
  display: block;
  max-width: 48ch;
  font-size: 12px;
  line-height: 1.65;
  letter-spacing: .035em;
  text-transform: none;
  text-wrap: balance;
}
.hero .lead{ max-width: 49ch; line-height: 1.75; }
.section-intro{ max-width: 62ch; line-height: 1.75; }
.about-section p:not(.eyebrow){
  max-width: 56ch;
  font-size: 17px;
  line-height: 1.75;
  margin-bottom: 20px;
}
.about-section p.about-program-note{
  color: var(--ink);
  font-weight: 500;
  margin-top: 24px;
  margin-bottom: 22px;
}
.about-section .about-heading{ margin-bottom: 26px; }
.journey-steps p,.direction-list p,.team-member > p,.pricing-grid li{ line-height: 1.7; }
.team-member h3{ letter-spacing: -.015em; line-height: 1.3; }
.help-questions details p{
  max-width: 65ch;
  font-size: 16px;
  line-height: 1.75;
}
.pricing-grid h3{ font-size: clamp(26px, 2.5vw, 33px); line-height: 1.22; }
.pricing-grid .product-description{ line-height: 1.75; }
.course-cost strong{
  font-variant-numeric: tabular-nums;
}
.actions{ flex-wrap: wrap; row-gap: 16px; }
.button{ max-width: 100%; white-space: normal; text-align: center; line-height: 1.5; }
.contact-section .wrap > p:not(.eyebrow):not(.fine){ max-width: 56ch; line-height: 1.75; }
@media (max-width: 767px){
  main h2{ margin-bottom: 24px; }
  .hero .eyebrow{ font-size: 11px; line-height: 1.6; }
  .hero .lead,.section-intro,.about-section p:not(.eyebrow){
    font-size: 16px;
    line-height: 1.7;
  }
  .about-section p:not(.eyebrow){ margin-bottom: 18px; }
  .about-section p.about-program-note{ margin-top: 22px; margin-bottom: 22px; }
  .journey-steps p,.direction-list p,.team-member > p,.pricing-grid li{ font-size: 15px; }
  .help-questions details p{ padding-right: 0; }
}

/* A calm reassurance beside the introduction to support options. */
.intro .self-intro{ margin-bottom: 12px; }
.intro .self-assurance{
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 32px;
  color: var(--blue);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.6;
}
.intro .self-assurance::before{
  content: "✓";
  flex-shrink: 0;
  font-size: 16px;
}

.self-intro-row{
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 10px 24px;
  margin-bottom: 32px;
}
.intro .self-intro-row > p{ margin: 0; }

.intro .self-heading{ max-width: none; }
@media (min-width: 768px){
  .intro .self-heading{ font-size: clamp(28px, 3.3vw, 48px); white-space: nowrap; }
}

/* Fit the complete family question to its text column. */
html[lang="ru"] .loved-one-grid > div:first-child{ container-type: inline-size; }
.loved-one-grid .family-heading{
  font-size: clamp(17px, 2.35vw, 38px);
  font-size: clamp(17px, 6.3cqw, 38px);
  line-height: 1.25;
}
.family-heading > span{ display: block; }
.family-heading > span:first-child{ white-space: nowrap; }
@supports not (font-size: 1cqw){
  @media (max-width: 767px){
    .loved-one-grid .family-heading{ font-size: clamp(17px, 5.5vw, 38px); }
  }
}

.loved-one-grid > div > p.family-assurance{
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 20px 0 0;
  color: var(--blue);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.6;
}
.family-assurance::before{ content: "✓"; flex-shrink: 0; font-size: 16px; }

.family-label-row{
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 20px;
  margin-bottom: 20px;
}
.loved-one-grid .family-label-row > p{ margin: 0; }
.family-label-row .family-assurance{
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--blue);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.6;
}

/* Programme journey: connected stages followed by residential context. */
.journey-section > h2{
  max-width: 760px;
  margin-bottom: 0;
  font-size: clamp(38px, 4.1vw, 56px);
  line-height: 1.08;
  letter-spacing: -.045em;
}
.journey-steps{
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(24px, 2.5vw, 38px);
  margin-top: 44px;
}
.journey-steps > li{
  position: relative;
  min-width: 0;
  border: 0;
  padding: 0;
}
.journey-steps .step-number{
  display: inline-grid;
  place-items: center;
  width: 38px;
  height: 38px;
  margin: 0 0 8px;
  border: 1px solid #bdd6e7;
  border-radius: 50%;
  background: #f3f8fc;
  font-size: 12px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: .04em;
  font-variant-numeric: tabular-nums;
}
.journey-steps > li:not(:last-child)::before{
  content: "";
  position: absolute;
  top: 19px;
  left: 50px;
  right: -14px;
  height: 1px;
  background: var(--line);
}
.journey-steps > li:not(:last-child)::after{
  content: "→";
  position: absolute;
  top: 3px;
  right: -19px;
  width: 24px;
  background: #fff;
  text-align: right;
  color: var(--blue);
  font-size: 18px;
  line-height: 32px;
  pointer-events: none;
}
.journey-steps h3{
  display: flex;
  align-items: flex-start;
  font-size: clamp(19px, 1.55vw, 23px);
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -.025em;
  min-height: 2.5em;
  margin: 0 0 8px;
  text-wrap: balance;
}
.journey-steps p{
  max-width: 31ch;
  color: #5b6f7b;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.62;
  letter-spacing: -.005em;
}
.program-daily-layout{
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  align-items: stretch;
  gap: 0;
  margin-top: 48px;
  background: var(--pale);
  border-radius: 18px;
  overflow: hidden;
}
.program-daily-layout figure{ min-width: 0; }
.program-daily-layout img{
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.program-daily-copy{
  align-self: center;
  min-width: 0;
  padding: clamp(28px, 3vw, 44px);
}
.program-daily-copy h3{
  font-size: clamp(25px, 2.3vw, 32px);
  line-height: 1.25;
  margin-bottom: 20px;
}
.program-daily-context{ margin: 0; font-size: 16px; line-height: 1.75; text-wrap: pretty; }
.program-daily-context + .program-daily-context{ margin-top: 16px; }
@media (max-width: 1050px){
  .journey-steps{ grid-template-columns: minmax(0, 1fr); gap: 0; }
  .journey-steps > li{
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    column-gap: 18px;
    row-gap: 8px;
    padding: 0 0 32px;
  }
  .journey-steps > li:last-child{ padding-bottom: 0; }
  .journey-steps .step-number{ grid-column: 1; grid-row: 1 / 3; margin: 0; }
  .journey-steps h3,html[lang="en"] .journey-steps h3{
    grid-column: 2;
    min-height: 0;
    margin: 0;
  }
  .journey-steps p{ grid-column: 2; max-width: 64ch; font-size: 15px; }
  .journey-steps > li:not(:last-child)::before{
    top: 44px;
    bottom: 5px;
    left: 18px;
    right: auto;
    width: 1px;
    height: auto;
  }
  .journey-steps > li:not(:last-child)::after{
    content: "↓";
    top: auto;
    bottom: 4px;
    left: 7px;
    right: auto;
    width: 24px;
    font-size: 18px;
    line-height: 24px;
    text-align: center;
  }
}
@media (max-width: 767px){
  .journey-steps{ margin-top: 28px; }
  .journey-section > h2{ font-size: clamp(34px, 10vw, 42px); }
  .journey-steps > li{ column-gap: 14px; }
  .journey-steps h3{ font-size: 20px; line-height: 1.25; }
  .journey-steps p{ font-size: 14.5px; line-height: 1.65; }
  .program-daily-layout{ grid-template-columns: minmax(0, 1fr); margin-top: 32px; border-radius: 14px; }
  .program-daily-layout img{ height: auto; }
  .program-daily-copy{ padding: 26px 22px; }
  .program-daily-copy h3{ font-size: 25px; margin-bottom: 16px; }
  .program-daily-context{ line-height: 1.7; }
}

/* Photo and the two support formats share one row. */
.program-formats{
  grid-template-columns: minmax(0, 1.1fr) repeat(2, minmax(0, 1fr));
}
.program-formats .program-daily-copy{
  align-self: stretch;
  padding: 30px 26px;
}
.program-formats .program-daily-copy + .program-daily-copy{
  border-left: 1px solid #d4e1eb;
}
.program-formats .program-daily-copy h3{
  font-size: clamp(23px, 2.1vw, 28px);
  margin-bottom: 18px;
}
.program-formats .program-daily-context{ font-size: 16px; line-height: 1.7; }
@media (min-width: 768px) and (max-width: 1050px){
  .program-formats{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .program-formats figure{ grid-column: 1 / -1; }
  .program-formats img{ height: auto; max-height: 340px; object-fit: cover; }
}
@media (max-width: 767px){
  .program-formats{ grid-template-columns: minmax(0, 1fr); }
  .program-formats .program-daily-copy{ padding: 24px 22px; }
  .program-formats .program-daily-copy + .program-daily-copy{
    border-left: 0;
    border-top: 1px solid #d4e1eb;
  }
}

.prices-heading{ white-space: nowrap; }
@media (max-width: 420px){
  .prices-heading{ white-space: normal; }
}

/* Keep the centre type and location together in the hero label. */
.hero .eyebrow.eyebrow-location{
  max-width: none;
  white-space: nowrap;
  font-size: clamp(8.5px, 1vw, 12px);
  letter-spacing: .015em;
}
.hero-location{
  display: inline-flex;
  align-items: center;
  gap: .35em;
}
.location-pin{
  position: relative;
  display: inline-block;
  width: .85em;
  height: .85em;
  flex: 0 0 .85em;
  border: 1.5px solid var(--blue);
  border-radius: 50% 50% 50% 0;
  transform: rotate(-45deg);
}
.location-pin::after{
  content: "";
  position: absolute;
  width: .24em;
  height: .24em;
  top: 50%;
  left: 50%;
  border-radius: 50%;
  background: var(--blue);
  transform: translate(-50%, -50%);
}

/* Uzbek copy is longer: keep it inside the left family-support column. */
.loved-one-grid > *{ min-width: 0; }
html[lang^="uz"] .loved-one-grid > div:first-child{ container-type: inline-size; }
html[lang^="uz"] .loved-one-grid .family-heading{
  font-size: clamp(28px, 5.4cqw, 38px);
  line-height: 1.2;
}
html[lang^="uz"] .family-heading > span{
  overflow-wrap: normal;
  word-break: normal;
}
html[lang^="uz"] .family-heading > span:first-child{ white-space: normal; }
@media (max-width: 767px){
  html[lang^="uz"] .loved-one-grid .family-heading{
    font-size: clamp(27px, 8.2vw, 34px);
  }
}

/* Final responsive pass: compact tablet navigation and calmer mobile rhythm. */
@media (max-width: 1100px){
  .wrap{ padding-inline: 30px; }
  header{ padding-inline: 30px; }
  header nav{ display: none; }
  .menu-toggle{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    min-height: 44px;
    padding: 8px 0 8px 12px;
  }
  .hero{ gap: 34px; }
  .hero-copy,.about-section > div,.loved-one-grid > div{ min-width: 0; }
  .about-section,.loved-one-grid{ gap: 44px; }
  .journey-section,.team,.living,.documents{ scroll-margin-top: 84px; }
}

@media (min-width: 768px) and (max-width: 1100px){
  #mobile-menu[hidden]{ display: none !important; }
  #mobile-menu:not([hidden]){
    position: sticky;
    top: 72px;
    z-index: 19;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 30px;
    max-height: calc(100dvh - 72px);
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 14px 30px 18px;
    background: var(--pale);
    box-shadow: 0 1px 0 var(--line);
  }
  #mobile-menu a{
    display: flex;
    align-items: center;
    min-height: 48px;
    border-bottom: 1px solid var(--line);
    font-size: 14px;
  }
  header .brand-original{ height: 40px; }
  .hero h1{ font-size: clamp(46px, 6vw, 58px); }
  .hero-photo{ height: auto; aspect-ratio: 1 / 1; }
  .about-section,.intro,.loved-one-section,.journey-section,.living,.prices-section,.documents{ padding-top: 70px; padding-bottom: 70px; }
  .team{ padding-bottom: 70px; }
  .gallery{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .photo img{ height: auto; aspect-ratio: 4 / 3; }
  .pricing-grid article{ padding: 30px; }
}

@media (min-width: 768px) and (max-width: 900px){
  .hero{ grid-template-columns: minmax(0, 1fr); padding-top: 36px; }
  .hero-copy{ max-width: 690px; }
  .hero-photo{ aspect-ratio: 16 / 9; }
  .about-section,.loved-one-grid{ grid-template-columns: minmax(0, 1fr); }
  .about-section figure img{ height: auto; aspect-ratio: 16 / 9; }
  .loved-one-grid > div:first-child{ max-width: 690px; }
  .pricing-grid{ grid-template-columns: minmax(0, 1fr); }
  .pricing-grid .primary-price{ display: block; }
  .primary-summary{
    margin-top: 28px;
    padding: 28px 0 0;
    border-top: 1px solid #cbdde9;
    border-left: 0;
  }
  .document-row{ grid-template-columns: minmax(0, 1fr); gap: 34px; }
  .license-preview{ width: 100%; max-width: 390px; justify-self: start; }
}

@media (max-width: 767px){
  body{ overflow-x: hidden; }
  .wrap{ padding-inline: 18px; }
  
  header{ padding-inline: 18px; }
  header .brand-original{ height: 33px; }
  .menu-toggle{ min-width: 40px; min-height: 44px; padding-left: 6px; }
  #mobile-menu{ padding: 10px 18px 14px; }
  #mobile-menu a{
    display: flex;
    align-items: center;
    min-height: 46px;
    padding: 8px 0;
  }
  .hero{ gap: 26px; padding-top: 26px; padding-bottom: 34px; }
  .hero .eyebrow.eyebrow-location{
    white-space: normal;
    font-size: 10px;
    line-height: 1.45;
  }
  .hero h1,html[lang="en"] .hero h1{
    font-size: clamp(40px, 12.2vw, 48px);
    line-height: 1.04;
  }
  .hero-photo{ height: auto; aspect-ratio: 4 / 3; }
  .hero .actions,#self > .actions,.loved-one-grid .actions{
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    justify-items: stretch;
    gap: 16px;
  }
  .hero .actions .button,#self > .actions .button,.loved-one-grid .actions .button{ width: 100%; min-height: 50px; }
  .hero .actions .text-link{ width: max-content; }
  .audiences a{ min-height: 82px; }
  .about-section,.intro,.journey-section,.living{ padding-top: 52px; padding-bottom: 52px; }
  .loved-one-section,.prices-section{ padding-block: 52px; }
  .about-section figure img{ height: auto; aspect-ratio: 4 / 3; }
  .direction-list .direction-item{ row-gap: 8px; }
  .direction-list p{ font-size: 14px; line-height: 1.6; }
  .help-questions summary{ min-height: 58px; }
  .gallery-filters button{ min-height: 44px; padding: 9px 15px; }
  .program-formats .program-daily-copy{ padding: 24px 20px; }
  .pricing-grid article{ padding: 24px 20px; }
  .pricing-grid h3{ font-size: 27px; }
  .course-cost strong{ font-size: 27px; }
  .prices-heading{
    white-space: nowrap;
    font-size: clamp(25px, 8.6vw, 34px);
    letter-spacing: -.04em;
  }
  .license-preview{ max-width: 340px; }
  .contact-actions .button{ width: 100%; min-height: 50px; }
  footer{ align-items: flex-start; }
  footer .brand-original{ max-width: 100%; }
  .mobile-contact a{
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: 9px 10px;
  }
  dialog{
    width: calc(100vw - 24px);
    max-width: calc(100vw - 24px);
    padding: 12px;
  }
  .close-viewer{ top: 18px; right: 18px; }
}

@media (max-width: 520px){
  .gallery{ grid-template-columns: minmax(0, 1fr); gap: 22px; }
  .photo:first-child{ grid-column: auto; }
  .photo img,.photo:first-child img{ height: auto; aspect-ratio: 16 / 10; }
  .photo span{ font-size: 12px; }
  .family-label-row{ align-items: flex-start; }
}

@media (max-width: 360px){
  .wrap{ padding-inline: 15px; }
  header{ padding-inline: 12px; }
  header .brand-original{ height: 30px; }
  .hero h1,html[lang="en"] .hero h1{ font-size: 38px; }
  .prices-heading{ font-size: 24px; }
  .pricing-grid article{ padding-inline: 17px; }
}

/* Inline Telegram mark remains visible in every browser and follows the link colour. */
.telegram-icon{
  display: block;
  width: 1.05em;
  height: 1.05em;
  margin-left: .55em;
  flex: 0 0 1.05em;
  fill: currentColor;
}

.action-phone{
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  color: var(--ink);
  font-size: 17px;
  font-weight: 500;
  letter-spacing: -.015em;
  white-space: nowrap;
  border-bottom: 1px solid #a8bcc8;
}
.action-phone:hover{ color: var(--blue); }

.program-contact-actions{
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px 22px;
  margin-top: 26px;
}
.program-contact-actions .button{ margin: 0; }

/* GAME OVER and outpatient care form one visually balanced pair. */
.pricing-grid .secondary-price,.pricing-grid .outpatient-price{
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 28px;
  background: var(--white);
  border: 1px solid var(--line);
}
.pricing-grid .secondary-price > p:first-child,.pricing-grid .outpatient-price .product-tag{
  min-height: 1.6em;
  color: var(--muted);
  font-size: 13px;
}
.pricing-grid .secondary-price h3,.pricing-grid .outpatient-price h3{
  font-size: 27px;
}
.pricing-grid .secondary-price ul,.pricing-grid .outpatient-price ul{
  margin: 20px 0 22px;
  padding-top: 16px;
}
.pricing-grid .secondary-price li,.pricing-grid .outpatient-price li{
  padding-top: 5px;
  padding-bottom: 5px;
  font-size: 14px;
  line-height: 1.5;
}
.pricing-grid .game-over-price .product-description,.pricing-grid .outpatient-price .product-description{
  margin: 15px 0;
  font-size: 15px;
}
.pricing-grid .game-over-price .inclusions-label,.pricing-grid .outpatient-price .inclusions-label{ margin-top: 16px; }
.pricing-grid .game-over-price .outpatient-cost,.pricing-grid .outpatient-price .outpatient-cost{
  margin: 18px 0 0;
  font-size: 19px;
}
.pricing-grid .secondary-price .program-contact-actions,.pricing-grid .outpatient-price .program-contact-actions{
  margin-top: auto;
  padding-top: 20px;
}
.pricing-grid .secondary-price .program-contact-actions .button,.pricing-grid .outpatient-price .program-contact-actions .button{
  padding: 13px 18px;
  font-size: 13px;
}
.pricing-grid .secondary-price .action-phone,.pricing-grid .outpatient-price .action-phone{
  font-size: 16px;
}

@media (max-width: 767px){
  #self > .actions .action-phone,.loved-one-grid .actions .action-phone{
    width: 100%;
    min-height: 50px;
    justify-content: center;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--white);
  }
  .program-contact-actions{
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
  }
  .program-contact-actions .button,.program-contact-actions .action-phone{
    width: 100%;
    min-height: 50px;
    justify-content: center;
    text-align: center;
  }
  .program-contact-actions .action-phone{
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--white);
  }
  .pricing-grid .secondary-price,.pricing-grid .outpatient-price{ padding: 22px 18px; }
}

/* Keep the programme note on one line when the viewport has enough room. */
.price-note{
  max-width: none;
  white-space: nowrap;
  margin: 28px 0 36px;
  padding: 15px 18px;
  color: #344f60;
  background: var(--pale);
  border-left: 3px solid var(--blue);
  border-radius: 0 8px 8px 0;
  font-size: 14px;
  line-height: 1.55;
}
@media (max-width: 1100px){
  .price-note{ white-space: normal; }
}

/* Compact desktop pricing pair so both cards and the note fit in one viewport. */
@media (min-width: 1101px){
  .pricing-grid .secondary-price,.pricing-grid .outpatient-price{
    padding: 27px 29px;
  }
  .pricing-grid .secondary-price > p:first-child,.pricing-grid .outpatient-price .product-tag{
    min-height: 0;
    margin: 0;
    font-size: 13.25px;
    line-height: 1.4;
  }
  .pricing-grid .secondary-price h3,.pricing-grid .outpatient-price h3{
    margin-top: 8px;
    font-size: 27px;
  }
  .pricing-grid .secondary-price ul,.pricing-grid .outpatient-price ul{
    margin: 12px 0 14px;
    padding-top: 10px;
  }
  .pricing-grid .secondary-price li,.pricing-grid .outpatient-price li{
    padding: 3px 0 3px 21px;
    font-size: 14px;
    line-height: 1.44;
  }
  .pricing-grid .secondary-price .fine{
    font-size: 12.75px;
    line-height: 1.5;
  }
  .pricing-grid .game-over-price .product-description,.pricing-grid .outpatient-price .product-description{
    margin: 10px 0;
    font-size: 15.25px;
    line-height: 1.45;
  }
  .pricing-grid .game-over-price .inclusions-label,.pricing-grid .outpatient-price .inclusions-label{
    margin-top: 10px;
    font-size: 15.25px;
  }
  .pricing-grid .game-over-price .outpatient-cost,.pricing-grid .outpatient-price .outpatient-cost{
    margin: 12px 0 0;
    font-size: 19.5px;
  }
  .pricing-grid .game-over-price ul{
    columns: 2;
    column-gap: 26px;
  }
  .pricing-grid .game-over-price li{
    break-inside: avoid;
  }
  .pricing-grid .secondary-price .program-contact-actions,.pricing-grid .outpatient-price .program-contact-actions{
    gap: 12px 16px;
    padding-top: 12px;
  }
  .pricing-grid .secondary-price .program-contact-actions .button,.pricing-grid .outpatient-price .program-contact-actions .button{
    min-height: 46px;
    padding: 12px 18px;
    font-size: 14.25px;
  }
  .pricing-grid .secondary-price .action-phone,.pricing-grid .outpatient-price .action-phone{
    min-height: 40px;
    font-size: 16.25px;
  }
  .price-note{
    margin: 16px 0 24px;
    padding: 11px 14px;
    font-size: 14.25px;
  }
}

/* One Help item in the header with two focused destinations. */
header nav{
  align-items: center;
  min-height: 34px;
}
header nav > a{
  display: inline-flex;
  align-items: center;
  height: 34px;
}
.nav-dropdown{
  position: relative;
  display: flex;
  align-items: center;
  height: 34px;
  min-height: 0;
}
.nav-dropdown-toggle{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  height: 28px;
  min-height: 28px;
  padding: 0 8px;
  color: var(--ink);
  background: #f1f7fb;
  border: 0;
  border-radius: 6px;
  font-family: inherit;
  font-size: inherit;
  font-weight: 400;
  line-height: inherit;
  transition: background .2s ease;
}
.nav-dropdown-toggle:hover{
  color: var(--ink);
  background: #e9f3fa;
}
.nav-dropdown-toggle[aria-expanded="true"]{
  color: var(--ink);
  background: #e3f0f9;
  box-shadow: none;
}
.nav-dropdown-toggle .nav-chevron{
  display: block;
  width: 7px;
  height: 7px;
  margin: -3px 1px 0 2px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg);
  transform-origin: center;
  transition: transform .2s ease, margin .2s ease;
}
.nav-dropdown-toggle[aria-expanded="true"] .nav-chevron{
  margin-top: 3px;
  transform: rotate(225deg);
}
.nav-submenu{
  position: absolute;
  top: calc(100% + 17px);
  left: -16px;
  z-index: 30;
  min-width: 210px;
  padding: 7px;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 10px;
  box-shadow: 0 16px 40px rgba(21, 43, 59, .14);
}
header nav .nav-submenu a{
  display: block;
  padding: 10px 12px;
  border-radius: 6px;
  white-space: nowrap;
}
header nav .nav-submenu a:hover{ background: var(--pale); }

.mobile-subnav{
  padding: 9px 0 10px;
  border-bottom: 1px solid var(--line);
}
.mobile-subnav > span{
  display: block;
  margin-bottom: 2px;
  color: var(--blue);
  font-size: 12px;
  font-weight: 600;
}
#mobile-menu .mobile-subnav > a{
  min-height: 40px;
  padding: 6px 0 6px 14px;
  border-bottom: 0;
  color: var(--muted);
}

/* Multi-paragraph answers in the family support accordion. */
.help-questions details p{
  max-width: 72ch;
  padding: 0 22px 11px 0;
  line-height: 1.7;
}
.help-questions details p:last-child{ padding-bottom: 24px; }

/* Complete scope of the residential rehabilitation programme. */
.primary-stage-label{
  margin-bottom: 10px;
  color: var(--muted);
  font-size: 13px;
}
.primary-description{
  max-width: 48ch;
  margin-top: 18px;
  font-size: 16px;
  line-height: 1.65;
}
.primary-programme-details{
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 42px;
  margin-top: 2px;
}
.programme-group{
  min-width: 0;
  padding: 22px 0 18px;
  border-top: 1px solid #cbdde9;
}
.programme-group:nth-child(1){ grid-column: 1; grid-row: 1; }
.programme-group:nth-child(2){ grid-column: 1 / -1; grid-row: 2; }
.programme-group:nth-child(3){ grid-column: 2; grid-row: 1; }
.programme-group:nth-child(4){ grid-column: 1; grid-row: 3; }
.programme-group:nth-child(5){ grid-column: 2; grid-row: 3; }
.programme-group h4{
  margin: 0;
  color: var(--ink);
  font-size: 18px;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: -.015em;
}
.pricing-grid .primary-programme-details ul{
  margin: 12px 0 0;
  padding: 0;
  border: 0;
}
.pricing-grid .primary-programme-details li{
  break-inside: avoid;
  padding: 4px 0 4px 22px;
  font-size: 14px;
  line-height: 1.5;
}
.primary-programme-details .programme-group:nth-child(2) ul{
  columns: 2;
  column-gap: 42px;
}

@media (max-width: 900px){
  .primary-programme-details{ grid-template-columns: minmax(0, 1fr); }
  .primary-programme-details .programme-group{
    grid-column: auto;
    grid-row: auto;
  }
  .primary-programme-details .programme-group:nth-child(2) ul{ columns: 1; }
}

@media (max-width: 767px){
  .primary-programme-details{ margin-top: 28px; }
  .programme-group{ padding: 20px 0 16px; }
  .programme-group h4{ font-size: 17px; }
  .pricing-grid .primary-programme-details li{ font-size: 13.5px; }
}

/* The residential programme is presented as two clear stages. */
.primary-stage-overview{
  min-width: 0;
  padding-left: 36px;
  border-left: 1px solid #cbdde9;
}
.programme-phase{
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 16px;
  padding: 18px 0;
  border-top: 1px solid #cbdde9;
}
.programme-phase:first-child{
  padding-top: 0;
  border-top: 0;
}
.programme-phase h4{
  grid-column: 1;
  grid-row: 1;
  margin: 0;
  color: var(--ink);
  font-size: clamp(19px, 1.7vw, 24px);
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: -.025em;
  text-wrap: balance;
}
.phase-duration{
  grid-column: 2;
  grid-row: 1;
  color: var(--blue);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.4;
  text-align: right;
  white-space: nowrap;
}
.primary-summary.primary-summary-end{
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin-top: 4px;
  padding: 24px 0 0;
  border-top: 1px solid #cbdde9;
  border-left: 0;
}
.primary-summary-end .course-cost,.primary-summary-end .program-contact-actions{ margin: 0; }
.primary-summary-end .course-cost{
  max-width: 30ch;
  font-size: 20px;
  line-height: 1.35;
}
.primary-summary-end .program-contact-actions{
  justify-content: flex-end;
}

@media (max-width: 900px){
  .primary-stage-overview{
    margin-top: 28px;
    padding: 28px 0 0;
    border-top: 1px solid #cbdde9;
    border-left: 0;
  }
  .primary-summary.primary-summary-end{
    display: flex;
    margin-top: 8px;
  }
}

@media (max-width: 767px){
  .programme-phase{
    grid-template-columns: minmax(0, 1fr);
    gap: 7px;
  }
  .programme-phase h4,.phase-duration{
    grid-column: 1;
    grid-row: auto;
    text-align: left;
  }
  .phase-duration{ font-size: 12px; white-space: normal; }
  .primary-summary.primary-summary-end{
    display: block;
    padding-top: 22px;
  }
  .primary-summary-end .course-cost{
    max-width: none;
    font-size: 19px;
  }
  .primary-summary-end .program-contact-actions{ margin-top: 18px; }
}

/* Keep the women’s programme note on one clear line at every width. */
.about-section > div{ container-type: inline-size; }
.about-section p.about-program-note{
  max-width: none;
  font-size: clamp(10px, 3.2cqw, 17px);
  line-height: 1.45;
  letter-spacing: -.015em;
  white-space: nowrap;
  text-wrap: nowrap;
}

@supports not (font-size: 1cqw){
  @media (max-width: 1050px){
    .about-section p.about-program-note{ font-size: clamp(10px, 1.55vw, 16px); }
  }
}

/* Align the four programme-stage descriptions along one baseline. */
@media (min-width: 1051px){
  .journey-steps > li{
    display: flex;
    flex-direction: column;
  }
  .journey-steps > li > p{
    min-height: calc(1.62em * 4);
    margin-top: 0;
  }
}

/* Give the two centre-description paragraphs one even right edge. */
.about-section > div > p:not(.eyebrow):not(.about-program-note){
  width: min(100%, 35rem);
  max-width: none;
  text-align: justify;
  text-align-last: auto;
  text-justify: inter-word;
  text-wrap: pretty;
  hyphens: auto;
  line-height: 1.75;
}
.loved-one-grid > div:first-child > p{
  width: min(100%, 35rem);
  max-width: none;
  text-align: justify;
  text-align-last: auto;
  text-justify: inter-word;
  text-wrap: pretty;
  hyphens: auto;
  line-height: 1.75;
}
.loved-one-grid > div:first-child > p + p{ margin-top: 18px; }
.loved-one-grid > .help-questions{ align-self: center; }

@media (max-width: 767px){
  .about-section > div > p:not(.eyebrow):not(.about-program-note),
  .loved-one-grid > div:first-child > p{
    text-align: left;
    text-align-last: auto;
    hyphens: none;
  }
  .loved-one-grid > div:first-child > p + p{ margin-top: 16px; }
  .loved-one-grid > .help-questions{ align-self: stretch; }
}

/* Stabilisation is a separate stage, shown before the residential programme. */
.stabilisation-stage{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 14px 32px;
  margin-top: 40px;
  padding: 26px 40px;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius);
}
.stabilisation-stage .stage-tag{
  flex: 1 0 100%;
  margin: 0;
  color: #466775;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .11em;
}
.stabilisation-stage h3{
  margin: 0;
  min-width: 0;
  color: var(--ink);
  font-size: clamp(22px, 2vw, 28px);
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: -.025em;
}
.stabilisation-stage .phase-duration{
  color: var(--blue);
  font-size: 13px;
  font-weight: 600;
  white-space: nowrap;
}
.stabilisation-stage + .pricing-grid{ margin-top: 24px; }

@media (max-width: 900px){
  .stabilisation-stage{ padding: 24px 30px; }
}

@media (max-width: 767px){
  .stabilisation-stage{
    margin-top: 28px;
    padding: 22px 20px;
    gap: 8px;
  }
  .stabilisation-stage h3{ font-size: 22px; }
  .stabilisation-stage .phase-duration{ flex: 1 0 100%; white-space: normal; }
  .stabilisation-stage + .pricing-grid{ margin-top: 20px; }
}

/* Только один этап остался в карточке — ставим его по центру колонки. */
.primary-stage-overview{ align-self: center; }
.primary-stage-overview .programme-phase{
  grid-template-columns: minmax(0, 1fr);
  justify-items: center;
  gap: 7px;
  text-align: center;
}
.primary-stage-overview .programme-phase h4,
.primary-stage-overview .phase-duration{
  grid-column: 1;
  grid-row: auto;
  text-align: center;
  white-space: normal;
}

/* Ответы в аккордеоне набираем так же, как абзацы слева: ровный правый край. */
.help-questions details p{
  width: min(100%, 35rem);
  max-width: none;
  text-align: justify;
  text-align-last: auto;
  text-justify: inter-word;
  text-wrap: pretty;
  hyphens: auto;
  line-height: 1.75;
}

@media (max-width: 767px){
  .help-questions details p{
    text-align: left;
    text-align-last: auto;
    hyphens: none;
  }
}

/* Компактная шапка: 90px читались слишком тяжело. Логотип 44px остаётся прежним. */
header{ height: 76px; }
html{ scroll-padding-top: 78px; }

@media (max-width: 767px){
  html{ scroll-padding-top: 84px; }
}

/* Фон и линия шапки — во всю ширину экрана; содержимое остаётся по колонке 1232px. */
header{
  max-width: none;
  padding-inline: max(44px, calc((100% - 1232px) / 2));
}
@media (max-width: 1100px){
  header{ padding-inline: max(30px, calc((100% - 1232px) / 2)); }
}
@media (max-width: 767px){
  header{ padding-inline: 18px; }
}
@media (max-width: 360px){
  header{ padding-inline: 12px; }
}

/* Логотип в шапке: ширина считается от высоты, иначе SVG центрируется
   внутри слишком широкой рамки и отходит от левого края (18.09.2026). */
header .brand-original{ width: auto; }
