:root{--paper:#fff;--soft:#f6f6f6;--ink:#202124;--muted:#505157;--line:#dedede;--red:#b3232b;--red-dark:#8b1b22}
body,.site-header,.hero,.page-intro{background:#fff;color:var(--ink)}
body{font-size:17px;line-height:1.65}p{color:var(--muted)}
.hero h1{font-size:clamp(2.7rem,4.6vw,4.6rem);line-height:1.08}.hero-lead{font-size:1.15rem}
.page-intro h1{font-size:clamp(2.4rem,4.4vw,4.2rem);line-height:1.12}
h2,.section-heading h2{font-size:clamp(1.9rem,3vw,2.8rem);line-height:1.2}
.prose h2,.interaction-grid h2{font-size:1.85rem}.about-copy{font-size:1.06rem;line-height:1.8}.about-copy h2{margin-top:2rem;margin-bottom:1rem}
.hero-visual:has(img[src*="khnykin-portrait-transparent."]){max-width:490px}.hero-visual .portrait-slides{height:570px}.hero-stamp{font-size:1.1rem}.hero-visual::before{border-color:#c58a8d}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));padding-block:32px;gap:0}.facts>div{padding:12px 32px;border-right:1px solid var(--line)}.facts>div:last-child{border-right:0}.facts strong{font:clamp(2.5rem,4vw,3.6rem)/1.2 Georgia,serif;color:var(--ink)}.facts span{display:block;max-width:260px;color:var(--muted);font-size:.95rem}
.specialization-grid{list-style:none!important;display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:0!important}.specialization-grid li{margin:0!important;padding:22px!important;background:#f6f6f6;border-top:2px solid var(--red)}.specialization-grid li::before{display:none}
.article-card h2,.review-card h2,.certificate h2{font-size:1.5rem}.article-card .case-document{display:block;margin:0 26px 24px}.case-outcome{border-left:2px solid var(--red);padding-left:12px}.certificate img{height:320px;width:100%;object-fit:contain;background:#f7f7f7}
.interaction-section{margin-top:65px}.interaction-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:24px}.interaction-grid article{border-left:2px solid var(--red);padding:25px 30px;background:#f7f7f7}.parking-note{padding:24px 0}.contact-links{display:flex;flex-wrap:wrap;gap:16px;margin:20px 0}.contact-links a{text-decoration:underline;color:var(--red);font-weight:600}
.review-toolbar{display:flex;justify-content:space-between;gap:16px;align-items:center;margin:32px 0 20px}.review-toolbar .filters{margin:0}.review-controls{display:flex;gap:8px}.review-controls button{width:44px;height:44px;background:#fff;border:1px solid var(--line);cursor:pointer}.review-carousel{display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:20px}.review-carousel .review-card{flex:0 0 calc(50% - 12px);min-width:0;scroll-snap-align:start;padding:30px;border:1px solid var(--line);background:#fff}.review-card header{display:flex;align-items:center;gap:14px}.review-card header h2{margin:0}.review-card header span{font-size:.85rem;color:var(--muted)}.review-avatar{width:54px;height:54px;object-fit:cover;border-radius:50%}.review-stars{color:#a66a00;font-size:1.3rem;letter-spacing:3px;margin:16px 0}.review-screenshot{max-width:100%;max-height:300px;object-fit:contain}.yandex-reviews{max-width:760px;margin:30px auto}.yandex-reviews iframe{width:100%;height:650px;border:1px solid var(--line);border-radius:8px}
footer{background:#111!important;color:#fff}footer p,footer a,footer h3,footer .footer-bottom,footer .footer-credit{color:#eee}.footer-logo{width:270px;max-width:100%;height:auto;filter:brightness(0) invert(1)}.footer-bottom{flex-wrap:wrap}.cookie-settings{border:0;background:none;color:inherit;padding:0;text-align:left;font:inherit;cursor:pointer;text-decoration:underline}
.search-toggle{font:inherit;font-size:.86rem;background:transparent;border:1px solid var(--line);padding:8px 10px;cursor:pointer}.header-main{gap:15px}.header-phone{white-space:nowrap}.nav{gap:14px}.nav a{font-size:.86rem}
.site-dialog{border:0;background:#fff;color:var(--ink);width:min(560px,calc(100% - 24px));max-height:calc(100dvh - 32px);padding:32px;overflow:auto;box-shadow:0 24px 100px #0004}.site-dialog::backdrop{background:#0009}.site-dialog h2{font-size:2rem;margin:12px 35px 20px 0}.dialog-close{position:absolute;right:12px;top:8px;background:none;border:0;font-size:2rem;cursor:pointer;width:40px;height:40px}.dialog-open{overflow:hidden}.site-dialog .public-form{padding:0;background:none;box-shadow:none;border:0}.site-dialog .form-note{font-size:.83rem}.site-dialog label{font-size:.9rem}.site-dialog textarea{min-height:70px}.site-dialog .check{line-height:1.4}.public-form select,.site-dialog input[type=search]{width:100%;padding:12px;border:1px solid var(--line);background:#fff;color:var(--ink);font:inherit}.search-dialog{width:min(760px,calc(100% - 24px))}#search-results{list-style:none;padding:0}#search-results li{padding:18px 0;border-top:1px solid var(--line)}#search-results a{font-weight:600;color:var(--red)}#search-results p{font-size:.95rem;margin:8px 0}
.quick-actions{position:fixed;right:22px;bottom:22px;z-index:45;display:flex;align-items:flex-end;gap:8px}.back-top,.contact-toggle{display:grid;place-items:center;height:48px;padding:0 18px;background:var(--red);color:#fff;border:0;box-shadow:0 3px 14px #0002;font:inherit;cursor:pointer}.back-top{background:#222}.quick-actions #quick-contacts{position:absolute;bottom:60px;right:0;min-width:200px;background:#fff;padding:8px;box-shadow:0 6px 30px #0003;border:1px solid var(--line)}#quick-contacts a{display:block;padding:12px;color:var(--ink)}#quick-contacts a:hover{background:var(--soft)}
.cookie-banner{position:fixed;left:22px;bottom:22px;z-index:60;max-width:590px;width:calc(100% - 44px);padding:22px;background:#fff;border:1px solid var(--line);box-shadow:0 5px 35px #0003}.cookie-banner p{font-size:.94rem;margin:0 0 16px}.cookie-banner>div{display:flex;align-items:center;flex-wrap:wrap;gap:12px}.cookie-banner .button{font-size:.85rem;padding:10px 14px;min-height:44px}.cookie-banner a{text-decoration:underline;font-size:.85rem}
[hidden]{display:none!important}:focus-visible{outline:3px solid #326caa;outline-offset:4px}
@media(max-width:1200px){.header-phone{display:none}.nav{gap:12px}.hero-visual .portrait-slides{height:520px}}
@media(max-width:900px){.search-toggle{margin-left:auto}.hero-visual .portrait-slides{height:470px}.facts>div{padding:12px 18px}.interaction-grid{gap:20px}}
@media(max-width:600px){body{font-size:16px}.hero h1{font-size:2.65rem}.hero-visual .portrait-slides{height:450px}.hero-stamp{font-size:.95rem;padding:16px;max-width:90%}.facts{grid-template-columns:1fr;gap:16px}.facts>div{border-right:0;border-bottom:1px solid var(--line);padding:10px 0 20px}.facts strong{font-size:2.8rem}.specialization-grid,.interaction-grid{grid-template-columns:1fr}.review-carousel .review-card{flex-basis:90%;padding:22px}.review-toolbar{align-items:flex-start;flex-direction:column}.site-dialog{padding:26px 20px}.site-dialog h2{font-size:1.75rem}.cookie-banner{left:12px;bottom:12px;width:calc(100% - 24px);padding:18px}.quick-actions{right:12px;bottom:14px}.footer-logo{width:240px}.yandex-reviews iframe{height:580px}.header-main{gap:10px}.search-toggle{font-size:.8rem;padding:8px}.brand{min-width:0}.brand img{max-width:185px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media(min-width:981px) and (max-width:1399px){.header-main{grid-template-columns:1fr auto auto;column-gap:24px}.search-toggle{grid-column:2;grid-row:1}.header-phone{grid-column:3;grid-row:1;display:block}.nav{grid-column:1/-1;grid-row:2}.nav a{padding:12px 0}}
@media(max-width:980px){.header-main{display:flex}.search-toggle{margin-left:auto}.header-phone{display:none}.menu-toggle{flex-shrink:0}.nav a{font-size:1rem}}
.site-dialog .form-note{padding:10px 12px;margin:0 0 15px}.site-dialog .public-form{gap:14px}.site-dialog .public-form input:not([type=checkbox]){padding:10px}.site-dialog .public-form .check{font-size:.82rem}.site-dialog .form-status:empty{display:none}
.footer-rating{margin-top:24px}.footer-rating p{margin:0 0 12px;color:#fff;font-size:1rem}.footer-rating iframe{display:block;width:150px;height:50px;border:0;border-radius:8px;background:#fff}.footer-rating>a{display:inline-block!important;margin-top:10px;font-size:.85rem;text-decoration:underline}
/* Larger homepage portrait without a decorative frame. */
.hero-visual::before{display:none}
.hero-visual:has(img[src*="khnykin-portrait-transparent."]){max-width:560px}
.hero-visual .portrait-slides{height:660px}
@media(max-width:1200px){.hero-visual .portrait-slides{height:590px}}
@media(max-width:900px){.hero-visual .portrait-slides{height:540px}}
@media(max-width:600px){.hero-visual .portrait-slides{height:min(560px,145vw)}}
/* Keep the three homepage figures grouped around the page centre. */
.container.facts{max-width:1080px;margin-inline:auto;text-align:center}
.facts>div,.facts>div:first-child{padding-inline:24px}
.facts span{max-width:310px;margin-inline:auto}
@media(max-width:600px){.facts>div,.facts>div:first-child{padding-inline:0}}

/* Header contacts and social links. */
.header-contact-links{display:flex;align-items:center;justify-content:flex-end;gap:16px;flex-wrap:wrap;margin-left:auto}
.header-contact-links a{white-space:nowrap}
.header-contact-links a:not(.topbar-email){color:var(--red);font-weight:600}
.header-contact-links a:hover,.footer-social-links a:hover{text-decoration:underline}
.header-social svg,.office-compact,.topbar-mobile-phone{display:none}
.site-header .topbar{flex-wrap:wrap;gap:8px 24px;padding-block:10px}
.topbar-office{flex:1 1 400px;line-height:1.45;overflow-wrap:anywhere}
.topbar-office:hover{text-decoration:underline}
.topbar-hours{white-space:nowrap}
.footer-social-links{display:flex;gap:16px;flex-wrap:wrap;margin:12px 0}
.footer-social-links a{white-space:nowrap}
.footer-grid .footer-social-links .footer-social-icon{display:inline-flex;align-items:center;justify-content:center;gap:10px;width:auto;min-height:44px;padding:6px 12px;color:#fff;border:1px solid #ffffff45;border-radius:8px;margin:0;transition:background .2s}
.footer-social-icon svg{display:block;width:30px;height:30px}
.footer-grid .footer-social-links .footer-social-icon:hover,.footer-grid .footer-social-links .footer-social-icon:focus-visible{background:#ffffff18;color:#fff;text-decoration:none}
@media(max-width:980px){
 .site-header{display:flex;flex-direction:column}
 .site-header .header-main{order:0;min-height:72px;gap:8px}
 .site-header .brand{width:175px}
 .site-header .brand img{max-width:100%}
 .site-header .search-toggle{font-size:12px;padding:8px;height:40px}
 .site-header .menu-toggle{width:40px;height:40px}
 .site-header .topbar{order:1;display:grid;grid-template-columns:1fr auto;grid-template-areas:"phone social" "office office";align-items:center;gap:2px 12px;padding:4px 0 12px;border-top:1px solid var(--line);border-bottom:0;letter-spacing:0}
 .site-header .topbar-mobile-phone{grid-area:phone;display:block;white-space:nowrap;font-size:17px;font-weight:600;color:var(--ink);line-height:40px}
 .site-header .topbar-office{grid-area:office;font-size:12px;line-height:1.5;color:var(--muted)}
 .office-full,.topbar-hours,.topbar-email,.header-social span{display:none}
 .office-compact{display:inline}
 .site-header .header-contact-links{grid-area:social;gap:4px;flex-wrap:nowrap;margin:0}
 .header-contact-links .header-social{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;color:var(--red)}
 .header-social svg{display:block;width:23px;height:23px}
 .header-social:hover{background:var(--soft)}
 .site-header .nav{top:100%;max-height:calc(100dvh - 160px)}
}

/* Approved mobile first screen: person, clear offer and one action. */
.mobile-intro,.mobile-call,.mobile-socials,.search-toggle svg{display:none}
@media(max-width:980px){
 .site-header .header-main{flex-wrap:wrap;justify-content:flex-start;column-gap:4px;row-gap:4px;padding-block:12px 8px;min-height:0}
 .site-header .brand{width:165px;margin-right:auto}
 .site-header .search-toggle{margin-left:0}
 .site-header .search-toggle,.site-header .mobile-call,.site-header .menu-toggle,.mobile-socials .header-social{display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:8px;border:0;background:none;color:var(--red);flex-shrink:0}
 .search-toggle span,.mobile-socials .header-social span{display:none}
 .search-toggle svg,.mobile-call svg,.mobile-socials .header-social svg{display:block;width:23px;height:23px}
 .mobile-socials{display:flex;gap:4px}
 .site-header .topbar{display:block;padding:0 0 12px;border:0}
 .site-header .topbar-mobile-phone,.site-header .header-contact-links{display:none}
 .site-header .topbar-office{display:block;font-size:12px}
 .site-header .nav{z-index:1}
 .page-index .hero-grid{display:none}
 .page-index .hero{padding:26px 0 24px;overflow:hidden;background:linear-gradient(130deg,#fff 10%,#fbf5f4 100%)}
 .mobile-intro{display:block;max-width:640px}
 .mobile-intro h1{font-family:Georgia,serif;font-size:clamp(32px,5.6vw,46px);line-height:1.12;margin:0 0 16px;color:var(--red-dark);letter-spacing:-.8px}
 .mobile-intro h1 span{display:block;font-size:.82em;color:var(--ink);margin-top:6px;letter-spacing:-.5px}
 .mobile-intro-body{position:relative;display:grid;grid-template-columns:1fr 1fr;align-items:end;min-height:240px}
 .mobile-intro-copy{position:relative;z-index:1;padding:0 0 20px}
 .mobile-intro-copy p{font-size:15px;line-height:1.55;margin:0 0 24px}
 .mobile-intro-name strong{display:block;font:600 19px/1.2 Georgia,serif}
 .mobile-intro-name span{display:block;font-size:12px;color:var(--muted);margin-top:6px}
 .mobile-intro-portrait{width:125%;max-width:none;height:290px;object-fit:contain;object-position:center bottom;align-self:end;justify-self:center}
 .mobile-intro-cta{position:relative;z-index:2;width:100%;min-height:52px;justify-content:center;gap:16px;font-size:15px;padding:14px 12px}
 body:has(.page-index) .quick-actions{display:none}
}
@media(max-width:480px){
 .site-header .brand{flex-basis:calc(100% - 48px);width:auto;margin:0}
 .site-header .brand img{width:175px}
 .site-header .menu-toggle{order:1}
 .site-header .search-toggle{order:2;margin-left:auto}
 .site-header .mobile-call{order:3}
 .site-header .mobile-socials{order:4;margin-right:auto}
 .site-header .topbar-office{text-align:center}
}
@media(min-width:600px) and (max-width:980px){.mobile-intro-portrait{height:360px}.mobile-intro-copy p{font-size:18px}.mobile-intro-body{min-height:320px}}

@media(max-width:980px){.mobile-intro .mobile-intro-motto{margin:22px 0 0;padding:2px 0 2px 16px;border-left:2px solid var(--red);font:20px/1.4 Georgia,serif;color:var(--red-dark)}.mobile-intro-motto span{white-space:nowrap}}

/* Compact mobile typography: one family and a complete first screen. */
@media(max-width:980px){
 .page-index .hero{padding:16px 0 16px}
 .mobile-intro,.mobile-intro h1,.mobile-intro-name strong,.mobile-intro .mobile-intro-motto{font-family:'Segoe UI',Arial,sans-serif}
 .mobile-intro h1{font-size:clamp(16px,5vw,25px);font-weight:600;line-height:1.25;letter-spacing:-.4px;white-space:nowrap;margin:0 0 10px}
 .mobile-intro h1 span{font-size:clamp(18px,5vw,24px);font-weight:400;line-height:1.25;letter-spacing:-.3px;white-space:normal;margin-top:7px}
 .mobile-intro-body{min-height:0;grid-template-columns:1fr 1fr}
 .mobile-intro-copy{padding-bottom:12px}
 .mobile-intro-copy p{font-size:14px;line-height:1.4;margin:0 0 14px}
 .mobile-intro-name strong{font-size:16px;line-height:1.2;font-weight:600}
 .mobile-intro-name span{font-size:11px;line-height:1.3;margin-top:4px}
 .mobile-intro-portrait{height:clamp(170px,31svh,225px);width:125%}
 .mobile-intro-cta{min-height:46px;padding:11px 10px;font-size:14px;gap:10px}
 .mobile-intro .mobile-intro-motto{font-size:16px;line-height:1.35;font-weight:400;margin:12px 0 0;padding:1px 0 1px 12px}
 .site-header .header-main{padding-block:8px 4px;row-gap:0}
 .site-header .topbar{padding-bottom:8px}
}
@media(max-width:360px){.mobile-intro-copy p{font-size:13px}.mobile-intro-name strong{font-size:15px}.mobile-intro .mobile-intro-motto{font-size:15px}}

@media(max-width:980px){
 .site-header .header-main{flex-wrap:nowrap;gap:2px;min-height:62px;padding-block:8px}
 .site-header .brand{flex:0 1 150px;width:150px;min-width:0;margin-right:auto}
 .site-header .brand img{width:100%;max-width:150px}
 .site-header .search-toggle{order:1;margin:0}
 .site-header .mobile-call{order:2}
 .site-header .mobile-socials{order:3;margin:0;gap:2px}
 .mobile-socials .header-social:last-child{order:-1}
 .site-header .menu-toggle{order:4}
 .site-header .search-toggle,.site-header .mobile-call,.site-header .menu-toggle,.mobile-socials .header-social{width:34px;height:40px;padding:6px}
 .site-header .topbar-office{text-align:left;font-size:11px}
}
@media(max-width:360px){
 .site-header .brand{flex-basis:112px}
 .site-header .search-toggle,.site-header .mobile-call,.site-header .menu-toggle,.mobile-socials .header-social{width:30px;padding:5px}
 .site-header .header-main{gap:1px}
}

/* Larger mobile copy and portrait, with room for the action and motto. */
@media(max-width:980px){
 .mobile-intro h1{font-size:clamp(18px,5.6vw,28px)}
 .mobile-intro h1 span{font-size:clamp(20px,5.7vw,28px)}
 .mobile-intro-copy p{font-size:16px;line-height:1.4}
 .mobile-intro-name strong{font-size:18px}
 .mobile-intro-name span{font-size:12px}
 .mobile-intro-portrait{height:clamp(210px,39svh,285px);width:140%}
 .mobile-intro-cta{font-size:16px;min-height:48px}
 .mobile-intro .mobile-intro-motto{font-size:17px}
}
@media(max-width:360px){
 .mobile-intro-copy p{font-size:14px}
 .mobile-intro-name strong{font-size:16px}
 .mobile-intro-cta{font-size:14px}
 .mobile-intro .mobile-intro-motto{font-size:15px}
}
@media(max-width:980px) and (max-height:600px){.mobile-intro-portrait{height:210px}.mobile-intro-copy p{font-size:14px}}

/* Closer waist-up portrait on the mobile first screen. */
@media(max-width:980px){
 .mobile-intro h1{font-size:clamp(18px,6vw,29px)}
 .mobile-intro h1 span{font-size:clamp(21px,6.2vw,29px)}
 .mobile-intro-body{min-height:clamp(250px,43svh,300px);overflow:hidden}
 .mobile-intro-copy{align-self:center;padding:12px 0;z-index:1}
 .mobile-intro-copy p{font-size:17px;line-height:1.35;margin-bottom:18px}
 .mobile-intro-name strong{font-size:19px}
 .mobile-intro-name span{font-size:13px}
 .mobile-intro-portrait{position:absolute;right:-7%;bottom:0;width:67%;height:100%;object-fit:cover;object-position:center top;max-width:none}
}
@media(max-width:360px){
 .mobile-intro-copy p{font-size:15px}
 .mobile-intro-name strong{font-size:17px}
 .mobile-intro-name span{font-size:12px}
}
@media(max-width:980px) and (max-height:600px){.mobile-intro-body{min-height:235px}.mobile-intro-copy p{font-size:15px}.mobile-intro-portrait{height:100%}}

@media(max-width:980px){
 .mobile-intro-portrait{right:0;width:58%;height:auto;max-height:none;object-fit:contain;object-position:center bottom}
 .mobile-intro-body{grid-template-columns:46% 54%}
 .mobile-intro-name strong{max-width:100%}
}

@media(max-width:980px){.mobile-intro-portrait{right:0;bottom:0;width:58%;height:100%;max-height:100%;object-fit:contain;object-position:right bottom}}

/* Shared first-screen design on desktop and mobile. */
.page-index h1,.page-index h2,.page-index h3,.page-index .facts strong{font-family:'Segoe UI',Arial,sans-serif}
@media(max-width:980px){
 .mobile-intro-portrait{top:0;bottom:auto;right:0;width:66%;height:auto;max-height:none;object-fit:contain}
 .mobile-intro-body{overflow:hidden}
}
@media(min-width:981px){
 .page-index .hero-grid{display:none}
 .page-index .hero{padding:30px 0 0;background:linear-gradient(115deg,#fff 10%,#fbf5f4 100%);overflow:hidden}
 .mobile-intro{display:flex;position:relative;flex-direction:column;align-items:flex-start;justify-content:center;min-height:600px;padding:28px 46% 36px 0;font-family:'Segoe UI',Arial,sans-serif}
 .mobile-intro h1{font-family:inherit;font-size:clamp(28px,2.65vw,42px);font-weight:600;line-height:1.22;letter-spacing:-1px;color:var(--red-dark);white-space:nowrap;margin:0 0 24px}
 .mobile-intro h1 span{display:block;white-space:normal;font-size:clamp(30px,3vw,46px);font-weight:400;line-height:1.2;color:var(--ink);margin-top:12px}
 .mobile-intro-body{position:static;display:block;min-height:0;overflow:visible}
 .mobile-intro-copy{position:relative;z-index:1;padding:0}
 .mobile-intro-copy p{font-size:21px;line-height:1.5;margin:0 0 24px;max-width:470px}
 .mobile-intro-name strong{display:block;font:600 23px/1.3 'Segoe UI',Arial,sans-serif}
 .mobile-intro-name span{display:block;font-size:15px;color:var(--muted);margin-top:3px}
 .mobile-intro-portrait{position:absolute;right:0;bottom:0;width:45%;height:100%;max-height:650px;object-fit:contain;object-position:right bottom}
 .mobile-intro-cta{margin-top:28px;min-width:340px;position:relative;z-index:1;font-size:18px}
 .mobile-intro .mobile-intro-motto{font:22px/1.4 'Segoe UI',Arial,sans-serif;color:var(--red-dark);border-left:2px solid var(--red);padding-left:16px;margin:22px 0 0}
 .mobile-intro-motto span{white-space:nowrap}
 .site-header .header-main{display:flex;flex-wrap:wrap;gap:6px;min-height:0;padding-top:14px}
 .site-header .brand{margin-right:auto}
 .site-header .nav{order:10;flex-basis:100%;justify-content:center;gap:28px}
 .site-header .nav a{padding:12px 0}
 .site-header .header-phone{display:none}
 .site-header .search-toggle,.site-header .mobile-call,.mobile-socials .header-social{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:0;padding:8px;color:var(--red);background:none}
 .site-header .mobile-socials{display:flex;gap:6px}
 .mobile-socials .header-social:last-child{order:-1}
 .search-toggle span,.mobile-socials .header-social span{display:none}
 .search-toggle svg,.mobile-call svg,.mobile-socials .header-social svg{display:block;width:24px;height:24px}
 .site-header .header-contact-links .header-social{display:none}
}
@media(min-width:981px) and (max-width:1150px){.mobile-intro{padding-right:44%;min-height:570px}.mobile-intro-cta{min-width:300px}.site-header .nav{gap:22px}}

@media(min-width:981px){.site-header .nav a[aria-current=page]:after{bottom:5px}}

/* Centre the desktop hero and bring the larger portrait closer to the copy. */
@media(min-width:981px){
 .page-index .mobile-intro{width:calc(100% - 80px);max-width:1120px;min-height:680px;padding:28px 0 36px;margin-inline:auto}
 .mobile-intro h1,.mobile-intro-body,.mobile-intro .mobile-intro-motto{width:55%}
 .mobile-intro h1{font-size:clamp(28px,2.65vw,38px)}
 .mobile-intro h1 span{font-size:clamp(30px,3vw,42px)}
 .mobile-intro .mobile-intro-portrait{right:0;bottom:0;width:48%;height:720px;max-height:none;object-fit:contain;object-position:center bottom}
}

/* Client-approved wording and a distinct portrait signature. */
.lead-hero{background:linear-gradient(115deg,#fff 8%,#fbf3f2 100%);padding:24px 0 30px}
.lead-layout{max-width:1120px;display:grid;grid-template-columns:1.08fr 1fr;gap:36px;align-items:center}
.lead-copy h1{font-family:'Segoe UI',Arial,sans-serif;font-size:clamp(40px,4vw,58px);font-weight:700;line-height:1.08;letter-spacing:-1.5px;color:var(--red-dark);margin:0 0 28px}
.lead-description{font-size:23px;line-height:1.5;max-width:510px;margin:0 0 32px}
.lead-actions{display:flex;flex-wrap:wrap;gap:12px}
.lead-actions .button{font-size:16px;gap:20px;min-height:52px;padding:14px 20px}
.lead-person{margin:0;min-width:0}
.lead-person>img{display:block;width:100%;height:clamp(380px,58svh,560px);object-fit:contain;object-position:center bottom}
.lead-person figcaption{border-left:2px solid var(--red);padding:8px 0 8px 20px;margin:14px 0 0 16px}
.lead-person blockquote{margin:0 0 8px;font-size:23px;line-height:1.3;font-weight:600;color:var(--red-dark)}
.lead-person strong{display:block;font-size:18px;line-height:1.3}
.lead-person figcaption>span{display:block;font-size:14px;color:var(--muted);margin-top:3px}
@media(min-width:981px){
 .site-header{position:relative;top:auto}
 .site-header .header-main{flex-wrap:nowrap;gap:8px;padding-block:14px}
 .site-header .brand{width:185px;margin-right:12px}
 .site-header .nav{order:0;flex:1 1 auto;gap:clamp(10px,1.3vw,22px);min-width:0}
 .site-header .nav a{font-size:13px;padding:12px 0}
 .site-header .search-toggle,.site-header .mobile-call,.mobile-socials .header-social{flex-shrink:0;width:34px;height:40px;padding:6px}
 .site-header .mobile-socials{gap:2px}
}
@media(min-width:981px) and (max-width:1150px){
 .site-header .header-main{gap:2px}.site-header .brand{width:150px;margin-right:5px}.site-header .nav{gap:10px}.site-header .nav a{font-size:12px}
 .lead-layout{gap:24px}.lead-copy h1{font-size:42px}.lead-description{font-size:21px}
}
@media(max-width:980px){
 .lead-hero{padding:18px 0 22px}
 .lead-layout{max-width:640px;grid-template-columns:1fr 1.05fr;gap:14px 8px;align-items:start}
 .lead-copy{display:contents}
 .lead-copy h1{grid-column:1/-1;font-size:clamp(19px,5.9vw,34px);white-space:nowrap;line-height:1.2;letter-spacing:-.65px;margin:0}
 .lead-description{grid-column:1;grid-row:2;font-size:17px;line-height:1.4;margin:20px 0 0;align-self:start}
 .lead-person{grid-column:2;grid-row:2}
 .lead-person>img{height:clamp(195px,35svh,270px);width:100%;object-fit:contain;object-position:center bottom}
 .lead-person figcaption{margin:6px 0 0;padding:0 0 0 10px}
 .lead-person blockquote{font-size:16px;line-height:1.3;margin-bottom:7px}
 .lead-person strong{font-size:15px}.lead-person figcaption>span{font-size:11px}
 .lead-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr;gap:8px}
 .lead-actions .button{width:100%;justify-content:center;min-height:44px;font-size:15px;padding:10px 12px;gap:12px}
}
@media(max-width:360px){.lead-description{font-size:15px;margin-top:12px}.lead-person blockquote{font-size:14px}.lead-person strong{font-size:14px}.lead-actions .button{font-size:14px}}

/* Restore the reference composition: large portrait beside compact copy. */
.lead-hero{padding:24px 0 0;overflow:hidden}
.lead-layout{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-height:650px;gap:0;padding-block:34px}
.lead-copy{display:contents}
.lead-copy h1{position:relative;z-index:1;order:0;width:53%;font-size:clamp(38px,3.7vw,54px);margin:0 0 24px}
.lead-description{position:relative;z-index:1;order:1;width:47%;margin:0 0 24px;font-size:22px}
.lead-person{display:contents}
.lead-person>img{position:absolute;right:0;bottom:0;width:53%;height:100%;object-fit:contain;object-position:right bottom}
.lead-person figcaption{position:relative;z-index:1;order:2;width:49%;margin:0 0 24px;padding:0;border:0}
.lead-person blockquote{font-size:23px;margin:0 0 14px}
.lead-actions{position:relative;z-index:2;order:3;max-width:55%;display:flex}
@media(max-width:980px){
 .lead-hero{padding:12px 0 0}
 .lead-layout{min-height:400px;padding:0 0 16px;justify-content:flex-start}
 .lead-copy h1{width:60%;white-space:normal;font-size:clamp(22px,6vw,32px);line-height:1.08;letter-spacing:-.6px;margin:0 0 12px}
 .lead-description{width:52%;font-size:14px;line-height:1.35;margin:0 0 16px}
 .lead-person>img{width:66%;height:auto;max-height:none;top:0;bottom:auto;right:-1%;object-fit:contain}
 .lead-person figcaption{width:53%;margin:0 0 14px}
 .lead-person blockquote{font-size:15px;line-height:1.25;margin:0 0 12px}
 .lead-person strong{font-size:15px}.lead-person figcaption>span{font-size:11px}
 .lead-actions{max-width:66%;width:66%;display:flex;flex-direction:column;gap:7px}
 .lead-actions .button{font-size:12px;min-height:39px;padding:9px 8px;gap:6px;white-space:nowrap}
 .lead-actions .outline{background:#fff}
}
@media(max-width:360px){.lead-layout{min-height:410px}.lead-description{font-size:13px}.lead-person blockquote{font-size:14px}.lead-actions{width:75%;max-width:75%}.lead-person>img{top:12px}}

@media(max-width:980px){.lead-layout{min-height:355px}.lead-person figcaption{width:45%}.lead-person blockquote{max-width:145px}.lead-person blockquote span{display:block}}
@media(max-width:360px){.lead-layout{min-height:375px}}

/* Fit the desktop introduction and figures in the first viewport. */
@media(min-width:981px){
 .lead-hero{padding-top:0}
 .lead-layout{min-height:460px;height:calc(100svh - 300px);max-height:620px;padding-block:18px;justify-content:center}
 .lead-copy h1{font-size:clamp(38px,3.5vw,50px);margin-bottom:18px}
 .lead-description{font-size:21px;line-height:1.4;margin-bottom:18px}
 .lead-person figcaption{margin-bottom:18px}
 .lead-person blockquote{font-size:22px;margin-bottom:10px}
 .lead-person>img{height:100%;object-position:right top}
 .page-index .container.facts{margin-block:0;padding-block:16px}
 .page-index .facts>div{padding-block:6px}
 .page-index .facts strong{font-size:46px;line-height:1.15}
 .page-index .facts span{font-size:14px;line-height:1.5}
}
@media(min-width:981px) and (max-height:760px){
 .lead-layout{min-height:420px;height:calc(100svh - 270px)}
 .lead-copy h1{font-size:38px;margin-bottom:14px}
 .lead-description{font-size:19px;margin-bottom:14px}
 .lead-person figcaption{margin-bottom:14px}
 .lead-actions .button{min-height:46px;padding-block:11px}
}

.page-index .practice-card:not(.practice-card--consult){border-color:#eee9e7;box-shadow:0 4px 18px #3924210d;transition:border-color .2s,transform .2s,box-shadow .2s}.page-index .practice-card:not(.practice-card--consult):hover,.page-index .practice-card:not(.practice-card--consult):focus-visible{border-color:#e4d9d6;box-shadow:0 8px 24px #39242118}

/* Slightly calmer first-screen typography. */
@media(max-width:980px){
 .lead-copy h1{font-size:clamp(20px,5.5vw,29px);letter-spacing:-.5px}
 .lead-description{font-size:13.5px}
}
@media(max-width:360px){.lead-description{font-size:13px}}

.price-subgroup{margin-top:24px}.price-subgroup+.price-subgroup{margin-top:40px;padding-top:24px;border-top:1px solid #d8ccca}.price-subgroup h3{font:600 20px/1.35 "Segoe UI",Arial,sans-serif;color:var(--red-dark);padding:12px 16px;background:#faf5f4;border-left:3px solid var(--red);margin:0 0 8px}@media(max-width:600px){.price-subgroup h3{font-size:18px}.price-subgroup+.price-subgroup{margin-top:28px;padding-top:18px}}

/* Permanent brand-colour borders on service detail cards. */
.service-items li,.service-items li:hover{border:1px solid var(--red);transition:none;animation:none;transform:none}

/* Static red outlines for the service catalogue and homepage steps. */
.page-services .practice-card,.page-services .practice-card:hover,.page-services .practice-card:focus-visible,.page-index .steps article,.page-index .steps article:hover{border:1px solid var(--red);box-shadow:none;transform:none;transition:none;animation:none}
.page-services .practice-card .text-link b,.page-services .practice-card:hover .text-link b{transform:none;transition:none;animation:none}
.page-index .steps article{padding:30px 24px}

/* Slightly larger desktop branding and navigation. */
@media(min-width:1151px){.site-header .brand{width:205px}.site-header .nav a{font-size:14px}}
@media(min-width:981px) and (max-width:1150px){.site-header .brand{width:165px}.site-header .nav a{font-size:13px}.site-header .nav{gap:8px}}

/* Homepage practices use the same permanent outline as the catalogue. */
.page-index .practice-card:not(.practice-card--consult),.page-index .practice-card:not(.practice-card--consult):hover,.page-index .practice-card:not(.practice-card--consult):focus-visible{border:1px solid var(--red);box-shadow:none;transform:none;transition:none;animation:none}
.page-index .practice-card .text-link b,.page-index .practice-card:hover .text-link b{transform:none;transition:none;animation:none}
