/* Shared refinement of the existing reference-led layout. */
:root {
  --font: 'Inter', Arial, Helvetica, sans-serif;
  --color-primary: #171717;
  --color-dark: #080808;
  --color-ink: #191919;
  --color-muted: #626262;
  --color-light: #f5f5f5;
  --color-border: #dedede;
  --header-height: 78px;
}
body {font-size:15px;line-height:1.65;font-weight:400;font-optical-sizing:auto;background:#f7f7f7}
h1,h2,h3 {font-family:var(--font);text-wrap:balance}
h1 {font-weight:650;letter-spacing:-.045em;line-height:1.13}
h2 {font-weight:550;letter-spacing:-.035em;line-height:1.22}
h3 {font-weight:550;letter-spacing:-.02em;line-height:1.35}
p {letter-spacing:-.012em}
.eyebrow {font-size:10px;font-weight:600;letter-spacing:.23em;line-height:1.5}
.button {font-size:13px;font-weight:550;letter-spacing:.005em;line-height:1.3;min-height:46px;padding:13px 25px}
.button.dark {background:linear-gradient(145deg,#242424,#080808);border-color:#242424}
.button.dark:hover {background:#303030}
.button.solid {background:#c84b05;border-color:#c84b05}
.button.solid:hover {background:#ae4002}
.text-link,.text-button {font-weight:550}

/* Header overlaps the hero on the home page; inner pages retain normal flow. */
.site-header {position:relative;z-index:30;background:linear-gradient(115deg,rgba(7,7,7,.92),rgba(18,18,18,.76));backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-bottom:1px solid #ffffff12;box-shadow:0 7px 30px #0000000a;min-height:var(--header-height)}
.home-page .site-header {position:absolute;inset:0 0 auto}
.header-inner {min-height:var(--header-height);gap:28px}
.logo {width:238px;display:flex;align-items:center}
.logo img {width:100%;height:auto;max-height:57px;object-fit:contain;object-position:left center;mix-blend-mode:lighten}
.primary-nav {gap:27px}
.primary-nav a {font-size:12.5px;font-weight:450;letter-spacing:.008em;padding:13px 0;color:#e8e8e8}
.primary-nav a:hover,.primary-nav a[aria-current] {color:white}
.primary-nav a[aria-current] {font-weight:600}
.primary-nav a[aria-current]::after {width:100%;background:#fff}
.primary-nav a::after {bottom:3px;height:2px}
.header-actions {gap:9px}
.header-book {font-size:12px;font-weight:550;min-height:39px;padding:9px 17px;gap:11px;border-color:#ffffff55;background:#ffffff03}
.header-actions .icon-button {width:36px;height:40px}
.header-actions .icon-button .icon {width:19px;height:19px}
.home-page .hero {height:640px;background:#151515}
.hero-content {padding-top:calc(var(--header-height) + 72px)}
.hero h1 {font-size:55px;line-height:1.1;font-weight:650;letter-spacing:-.035em;max-width:660px}
.hero .eyebrow {font-size:11px;letter-spacing:.22em}
.hero-description {font-size:17px;line-height:1.65;max-width:435px;font-weight:400;color:#f1f1f1}
.hero::after {background:linear-gradient(90deg,#050505 0%,#070707e8 24%,#0a0a0a99 46%,#0808080a 79%)}
.hero picture {left:27%;mask-image:linear-gradient(90deg,transparent,#000 24%);-webkit-mask-image:linear-gradient(90deg,transparent,#000 24%)}
.hero-image {filter:saturate(.7);object-position:center 20%}
.hero-indicator {margin-top:50px}
.image-label {background:#080808c9;color:#e4e4e4}
.advantages {background:linear-gradient(115deg,#f2f2f2,#fafafa)}
.advantages h2 {font-size:15px;font-weight:550;line-height:1.35}
.advantages p {font-size:13px;line-height:1.65}
.trust-band {background:radial-gradient(ellipse at 8% 95%,#303030,transparent 55%),linear-gradient(115deg,#121212,#040404)}
.trust-band h2 {font-weight:550;font-size:19px}
.trust-band p {color:#dedede;line-height:1.65}
.trust-band a {font-size:13px;font-weight:450}
.tse-block {border-color:#ffffff40}
.banner-copy h2 {font-size:30px;font-weight:550;line-height:1.18;letter-spacing:-.035em}
.banner-copy p:not(.eyebrow) {font-size:13px;line-height:1.65;color:#424242}
.brand-banner {background:#e6e6e6}
.brand-banner::after {background:linear-gradient(90deg,#f4f4f4 6%,#f4f4f4ef 28%,#f4f4f475 48%,transparent 66%)}
.section-heading h2 {font-size:28px;font-weight:550;line-height:1.25}
.section-heading>a {font-weight:450;font-size:12px;color:#626262}
.service-card {background:linear-gradient(140deg,#f4f4f4,#ececec)}
.service-copy h3 {font-size:15px;font-weight:550;line-height:1.4;letter-spacing:-.02em}
.service-copy p {font-size:12.5px;line-height:1.65}
.service-copy>a {display:inline-flex;align-items:center;min-height:25px}
.service-image::after {background:linear-gradient(transparent,#00000080)}
.journey {background:radial-gradient(ellipse at 24% 10%,#383838,transparent 50%),linear-gradient(100deg,#131313,#070707);border-color:#ffffff40}
.journey h2 {font-size:33px;font-weight:550;letter-spacing:-.03em}
.journey .eyebrow {font-size:10px;font-weight:500;letter-spacing:.35em}
.journey li {font-size:11px;line-height:1.45;font-weight:400;border-color:#ffffff20}
.site-footer {background:linear-gradient(125deg,#111,#070707);padding-top:34px}
.footer-brand .logo {width:205px;margin-bottom:14px}
.footer-grid h3 {font-size:12px;font-weight:550;line-height:1.4;letter-spacing:-.01em}
.footer-grid p,.footer-links,.footer-contact {font-size:11.5px;line-height:1.75;color:#c4c4c4}
.footer-grid>div:not(:first-child),.footer-contact,.footer-bottom {border-color:#ffffff16}
.footer-bottom {font-size:10px;font-weight:400;color:#aaa;line-height:1.65}
.footer-cta {border-color:#ffffff50;font-size:11px}
.page-intro {background:radial-gradient(ellipse at 92% 20%,#333,transparent 60%),#0b0b0b}
.page-intro h1 {font-size:44px;font-weight:600;letter-spacing:-.04em}
.page-intro>div>p:last-child {font-size:15px;line-height:1.75;color:#c9c9c9}
.breadcrumb {font-size:11px;color:#bcbcbc}
.detailed h3 {font-size:22px;font-weight:550}
.detailed .service-copy p {font-size:14px;line-height:1.75}
.certificate-card h2,.campaign-card h2 {font-size:23px;font-weight:550;line-height:1.3}
.certificate-card p,.campaign-card p {font-size:14px;line-height:1.75}
.content-panel h2 {font-size:28px;font-weight:550}
.about-intro h2 {font-size:38px;font-weight:600}
.values-grid h2 {font-size:23px;font-weight:550}
.contact-details h2 {font-size:36px;font-weight:600}
.contact-form h2 {font-size:27px;font-weight:550}
.contact-layout>* {min-width:0}
.contact-item h3 {font-size:14px;font-weight:550}
.field {font-size:12px;font-weight:500;line-height:1.5;letter-spacing:.005em}
.field input,.field select,.field textarea,#site-search {font-weight:400;border-color:#d6d6d6;background:#fbfbfb;color:#252525;border-radius:5px;line-height:1.45}
.consent {line-height:1.7;font-weight:400;color:#626262}
.form-note {line-height:1.6}
.legal-content h2 {font-weight:550}

/* The appointment is a black panel; the contact form remains a light panel. */
dialog {border:1px solid #ffffff20;border-radius:10px;padding:36px;box-shadow:0 28px 100px #0008}
dialog::backdrop {background:#000000b8;backdrop-filter:blur(8px)}
dialog h2 {font-weight:550;letter-spacing:-.035em;font-size:29px;line-height:1.22}
.appointment-modal {color:#f4f4f4;background:radial-gradient(ellipse at 100% 0,#303030,transparent 50%),linear-gradient(130deg,#191919,#0c0c0c);max-width:740px}
.appointment-modal>.eyebrow {color:#ff995a;font-size:10px}
.appointment-modal>p:not(.eyebrow) {color:#bbb;font-size:13px}
.appointment-modal .field {color:#dedede;font-size:12px}
.appointment-modal .field>span {color:#ff995a}
.appointment-modal .field input,.appointment-modal .field select,.appointment-modal .field textarea {background:#ffffff06;border-color:#ffffff26;color:#f0f0f0;color-scheme:dark;min-height:44px;font-size:14px}
.appointment-modal .field select option {background:#202020;color:#fff}
.appointment-modal .field input:hover,.appointment-modal .field select:hover,.appointment-modal .field textarea:hover {border-color:#ffffff50}
.appointment-modal .consent,.appointment-modal .form-note {color:#bcbcbc}
.appointment-modal .consent a {color:#f3f3f3}
.appointment-modal .dialog-close {color:#e6e6e6;position:sticky;float:right;top:0;margin:-20px -20px -24px 0;z-index:2;background:#242424f5;border:1px solid #ffffff15;width:34px;height:34px}
.appointment-modal .dialog-close {width:24px;height:24px;padding:0;margin:-16px -12px -18px 0;border:0;border-radius:0;background:transparent;box-shadow:none}
.appointment-modal .dialog-close:hover {background:transparent;transform:none}
.appointment-modal .dialog-close .icon {width:22px;height:22px}
.appointment-modal .form-status[data-state="error"] {color:#ffb2a6}
.appointment-modal .form-status[data-state="success"] {color:#b9e5c9;background:#163323}
.search-modal {
  color:#f5f5f5;
  background:radial-gradient(ellipse at 100% 0,#303030,transparent 48%),linear-gradient(135deg,#181818,#080808);
  border-color:#ffffff2b;
  max-width:700px;
  overflow:hidden;
}
.search-modal .eyebrow {color:#fff;letter-spacing:.26em}
.search-modal h2 {color:#fff;max-width:none;margin-bottom:25px}
.search-modal .field {color:#d8d8d8;font-weight:450}
.search-modal #site-search {
  min-height:54px;
  padding:13px 16px;
  border:1px solid #ffffff42;
  border-radius:5px;
  background:#ffffff0a;
  color:#fff;
  caret-color:#fff;
  font-size:16px !important;
  line-height:1.45;
  -webkit-appearance:none;
  appearance:none;
  touch-action:manipulation;
}
.search-modal #site-search::placeholder {color:#a9a9a9;opacity:1}
.search-modal #site-search:hover {border-color:#ffffff75}
.search-modal #site-search:focus {border-color:#fff;background:#ffffff10;outline:2px solid #fff;outline-offset:2px}
.search-modal .dialog-close {
  color:#fff;
  width:28px;
  height:28px;
  padding:2px;
  border:0;
  border-radius:0;
  background:transparent;
}
.search-modal .dialog-close:hover {background:transparent;transform:none}
.search-modal .dialog-close .icon {width:23px;height:23px}
.search-modal #search-results {
  margin-top:24px;
  max-height:min(47vh,430px);
  overflow:auto;
  scrollbar-color:#777 transparent;
  scrollbar-width:thin;
}
.search-modal #search-results a {
  color:#e8e8e8;
  padding:15px 10px;
  border-bottom:1px solid #ffffff17;
  font-size:14px;
  transition:color .2s,background .2s,padding .2s;
}
.search-modal #search-results a:hover,
.search-modal #search-results a:focus-visible {color:#fff;background:#ffffff0a;padding-left:14px}
.search-modal #search-results a span {color:#bdbdbd}
.search-modal #search-results p {color:#c9c9c9}

@media(max-width:1390px) {
  .logo {width:208px}
  .header-inner {gap:22px}
  .primary-nav {gap:20px}
  .primary-nav a {font-size:12px}
  .header-book {font-size:11.5px;padding:9px 15px}
  .hero h1 {font-size:51px}
  .advantages h2 {font-size:14px}
  .section-heading h2 {font-size:26px}
  .service-copy {padding:17px}
}
@media(max-width:1180px) {
  :root {--header-height:72px}
  .logo {width:184px}
  .header-inner {gap:20px}
  .primary-nav {gap:15px}
  .primary-nav a {font-size:11.5px}
  .header-actions {gap:5px}
  .header-book {padding:9px 12px;font-size:11px;gap:8px}
  .home-page .hero {height:610px}
  .hero h1 {font-size:47px}
  .hero-description {font-size:16px;max-width:390px}
  .advantages article {padding-inline:17px}
  .advantages h2 {font-size:13px}
  .advantages p {font-size:12px}
  .service-copy h3 {font-size:14px}
  .service-copy p {font-size:12px}
}
@media(max-width:960px) {
  .primary-nav {background:linear-gradient(145deg,#171717fa,#080808fa);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid #ffffff1f;padding:20px 28px 27px;box-shadow:0 25px 50px #0004}
  .primary-nav a {font-size:15px;font-weight:450;padding:15px 0;letter-spacing:0;border-bottom:1px solid #ffffff0c}
  .primary-nav a:last-child {border-bottom:0}
  .primary-nav a::after {bottom:7px}
  .logo {width:200px}
  .header-book {font-size:12px;padding:9px 18px;gap:11px}
  .header-actions {gap:8px}
  .header-actions .icon-button {width:40px}
  .hero h1 {font-size:45px}
  .hero picture {left:18%}
  .hero::after {background:linear-gradient(90deg,#050505 0%,#080808e8 25%,#09090975 65%,#08080822)}
  .trust-title h2 {font-size:18px}
  .trust-title h2 span {font-size:15px}
  .service-copy h3 {font-size:15px}
}
@media(max-width:700px) {
  :root {--header-height:66px}
  .site-header {background:linear-gradient(110deg,#080808e8,#171717bf)}
  .header-inner {gap:6px}
  .logo {width:156px}
  .logo img {max-height:43px}
  .header-actions {gap:2px}
  .header-book {padding:10px;border:1px solid #ffffff38;min-height:36px;width:38px}
  .header-book .icon {width:18px;height:18px}
  .header-actions .icon-button {width:36px;height:38px}
  .home-page .hero {height:660px}
  .hero picture {left:0;mask-image:none;-webkit-mask-image:none}
  .hero-image {object-position:65% center}
  .hero-content {padding:calc(var(--header-height) + 50px) 8px 0}
  .hero h1 {font-size:39px;line-height:1.13;letter-spacing:-.04em;max-width:450px}
  .hero .eyebrow {font-size:9px;letter-spacing:.2em;margin-bottom:17px}
  .hero-description {font-size:15px;line-height:1.7;max-width:350px}
  .hero::after {background:linear-gradient(180deg,#060606e8,#090909ba 48%,#07070722 79%,#08080875),linear-gradient(90deg,#08080888,transparent)}
  .hero .button {font-size:12px;min-height:44px}
  .hero-indicator {margin-top:42px}
  .advantages h2 {font-size:14px}
  .advantages p {font-size:12px}
  .trust-title h2 {font-size:20px}
  .trust-band h2 {font-size:18px}
  .trust-band p {font-size:13px}
  .brand-banner::after {background:linear-gradient(180deg,#f4f4f4 10%,#f4f4f4ed 37%,#f4f4f455 73%,transparent)}
  .banner-copy h2 {font-size:27px;line-height:1.2}
  .banner-copy p:not(.eyebrow) {font-size:13px;line-height:1.7}
  .section-heading h2 {font-size:26px;line-height:1.25}
  .service-copy {padding:14px}
  .service-copy h3 {font-size:14px;line-height:1.4}
  .service-copy p {font-size:12px;line-height:1.65}
  .journey h2 {font-size:29px}
  .journey li {font-size:11px}
  .footer-brand .logo {width:165px}
  .footer-grid p,.footer-links,.footer-contact {font-size:11px}
  .footer-bottom {font-size:10px}
  .page-intro h1 {font-size:32px;line-height:1.2}
  .page-intro>div>p:last-child {font-size:14px}
  .detailed h3 {font-size:22px}
  .detailed .service-copy p {font-size:14px}
  .certificate-card h2,.campaign-card h2 {font-size:23px}
  .about-intro h2 {font-size:33px}
  .values-grid h2 {font-size:23px}
  .contact-details h2 {font-size:30px}
  .contact-layout {grid-template-columns:minmax(0,1fr)}
  .contact-details>h2 br {display:revert}
  .contact-form h2 {font-size:26px}
  .field input,.field select,.field textarea {font-size:16px}
  dialog {padding:28px 22px;max-height:calc(100dvh - 20px);border-radius:8px}
  dialog h2 {font-size:26px;line-height:1.25}
  .appointment-modal .field {font-size:12px}
  .appointment-modal .field input,.appointment-modal .field select,.appointment-modal .field textarea {font-size:16px;min-height:46px}
  .appointment-modal .dialog-close {margin:-17px -12px -17px 0}
  .search-modal {
    width:calc(100% - 20px);
    max-height:calc(100dvh - 20px);
    padding:27px 20px 22px;
    -webkit-text-size-adjust:100%;
    text-size-adjust:100%;
  }
  .search-modal h2 {font-size:24px;padding-right:24px;margin-bottom:22px}
  .search-modal #site-search {font-size:16px !important;min-height:50px}
  .search-modal #search-results {max-height:calc(100dvh - 250px);margin-top:18px}
  .search-modal #search-results a {font-size:14px;padding:13px 8px}
}
@media(max-width:374px) {
  .logo {width:137px}
  .header-book {width:34px;padding:8px}
  .header-actions .icon-button {width:32px}
  .home-page .hero {height:635px}
  .hero h1 {font-size:34px}
  .hero-description {font-size:14px}
  .advantages h2 {font-size:13px}
  .service-copy {padding:12px}
  .service-copy h3 {font-size:13px}
  .service-copy p {font-size:11.5px}
  .banner-copy h2,.section-heading h2 {font-size:24px}
  .page-intro h1 {font-size:29px}
  .footer-brand .logo {width:180px}
}

/* Final monochrome pass: no anthracite/blue UI surfaces. Orange is reserved for source imagery. */
:root { --color-orange:#fff; --color-muted:#000; --color-primary:#000; --color-dark:#000; }
body { background:#fff; color:#000; }
.site-header,.primary-nav,.site-footer,.journey,.trust-band,.appointment-modal { background:#000 !important; }
.page-intro { background:#000 !important; }
.primary-nav a::after { background:#fff !important; }
.button.solid { background:#fff; border-color:#fff; color:#000; }
.button.solid:hover { background:#000; border-color:#fff; color:#fff; }
.appointment-modal { border-color:#fff4; }
.appointment-modal .eyebrow,.appointment-modal .field>span { color:#fff; }
.appointment-modal .dialog-close { background:#000; }
.home-grid { grid-template-columns:repeat(5,minmax(0,1fr)); align-items:stretch; }
.home-grid .service-card { display:flex; flex-direction:column; min-height:360px; }
.home-grid .service-card .service-image { aspect-ratio:1.8; }
.home-grid .service-card .service-copy { flex:1; display:flex; flex-direction:column; }
.home-grid .service-card .service-copy>a { margin-top:auto; }
.page-intro { position:relative; overflow:hidden; }
.page-intro-image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.28; filter:grayscale(1); }
.page-intro::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,#000 4%,#000e 50%,#0008); }
.page-intro>.container { position:relative; z-index:1; }
.appointment-modal { width:min(980px,calc(100% - 24px)); max-width:980px; max-height:calc(100dvh - 24px); overflow:hidden; }
.appointment-modal .form-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px 14px; }
.appointment-modal .full { grid-column:1/-1; }
.appointment-modal .field input,.appointment-modal .field select { min-height:39px; padding:8px 10px; }
.appointment-modal .field textarea { min-height:60px; padding:8px 10px; }
.appointment-modal .consent { margin:12px 0; }
@media(max-width:700px) {
  .home-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .home-grid .service-card { min-height:295px; }
  .home-grid .service-card .service-image { aspect-ratio:1.6; }
  .appointment-modal { padding:20px 16px; }
  .appointment-modal h2 { font-size:21px; margin-bottom:7px; }
  .appointment-modal>p:not(.eyebrow) { font-size:11px; margin-bottom:8px; }
  .appointment-modal .form-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px 9px; }
  .appointment-modal .field { font-size:10px; }
  .appointment-modal .field input,.appointment-modal .field select { min-height:34px; padding:5px 7px; font-size:13px; }
  .appointment-modal .field textarea { min-height:48px; font-size:13px; }
  .appointment-modal .consent { font-size:10px; margin:7px 0; line-height:1.4; }
  .appointment-modal .button { min-height:36px; padding:8px 15px; font-size:11px; }
  .appointment-modal .form-note { font-size:9px; margin-top:5px; }
}
@media(max-width:374px) { .home-grid { grid-template-columns:1fr 1fr; } .appointment-modal { padding:16px 12px; } }

/* Strict monochrome utility states */
:focus-visible { outline-color:#000 !important; }
.tag { color:#000 !important; background:#fff !important; border:1px solid #000 !important; }
.notice { color:#000 !important; background:#fff !important; border-left-color:#000 !important; }
.contact-item>.icon, .campaign-date .icon { color:#000 !important; }

/* The home page presents four equally weighted service categories. */
.home-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
@media (min-width:701px) and (max-width:960px) {
  .home-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .home-grid .service-card:nth-child(4), .home-grid .service-card:nth-child(5) { grid-column:auto; display:flex; }
  .home-grid .service-card:nth-child(4) .service-image { width:100%; aspect-ratio:2.05; }
}
@media (max-width:700px) {
  .home-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .home-grid .service-card:last-child { grid-column:auto; display:block; }
  .home-grid .service-card:last-child .service-image { height:auto; aspect-ratio:2.05; }
}

/* Let the embedded map occupy the whole map section without a surrounding frame. */
.map-panel { margin-top:50px; padding:0; min-height:0; background:none; border:0; overflow:hidden; }
.map-panel iframe { display:block; width:100%; height:420px; border:0; }
.hours-list { display:grid; gap:3px; line-height:1.7; font-family:var(--font); }
.hours-list > div { display:grid; grid-template-columns:102px minmax(0,1fr); column-gap:10px; }
.hours-list span { white-space:nowrap; }
.hours-list time { white-space:nowrap; font-variant-numeric:tabular-nums; }
@media (max-width:700px) {
  .hours-list > div { grid-template-columns:96px minmax(0,1fr); column-gap:6px; }
}
@media (max-width:700px) {
  .map-panel { margin-top:30px; }
  .map-panel iframe { height:340px; }
}
.appointment-modal .eyebrow, .appointment-modal .field>span { color:#fff !important; }
.appointment-modal .form-status[data-state="error"] { color:#fff !important; }
.footer-contact span, .contact-item p { white-space:pre-line; }

/* Mobile contact typography and equal service cards. */
@media (max-width:700px) {
  .hours-list {
    font-family:var(--font);
    font-size:12px;
  }

  .home-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
    align-items:stretch;
  }

  .home-grid .service-card,
  .home-grid .service-card:last-child {
    display:flex;
    grid-column:auto;
    grid-template-columns:none;
    flex-direction:column;
    height:100%;
    min-height:295px;
  }

  .home-grid .service-card .service-image,
  .home-grid .service-card:last-child .service-image {
    width:100%;
    height:auto;
    aspect-ratio:1.6;
    flex:0 0 auto;
  }

  .home-grid .service-card .service-copy {
    flex:1;
  }
}

@media (max-width:374px) {
  .hours-list { font-size:14px; }
}

/* Original WebP assets scale with their containers on phones and tablets.
   Content photos retain their proportions; decorative backdrops fill their area. */
@media (max-width:1024px) {
  .home-page .hero { height:auto; min-height:520px; display:block; }
  .hero picture {
    position:absolute;
    inset:0 0 0 18%;
    width:auto;
    min-width:0;
    mask-image:none;
    -webkit-mask-image:none;
  }
  .hero-image {
    width:100%;
    height:100%;
    aspect-ratio:auto;
    object-fit:cover;
    object-position:60% center;
    opacity:1;
  }
  .hero::after { display:block; background:linear-gradient(90deg,#050505 0%,#070707ed 25%,#0a0a0a99 52%,#0808080a 88%); }
  .hero picture::after { content:none; }

  .brand-banner { display:block; min-height:316px; background:#f4f4f4; }
  .brand-banner>.cover {
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    aspect-ratio:auto;
    object-fit:cover;
    object-position:65% 25%;
  }
  .brand-banner::after { display:block; background:linear-gradient(90deg,#f4f4f4 6%,#f4f4f4ed 30%,#f4f4f490 55%,transparent 85%); }
  .banner-copy { max-width:58%; }

  .page-intro-image { object-fit:cover; object-position:68% center; }
  .journey>.cover { object-fit:cover; object-position:65% center; }
  .trust-band>.cover { object-fit:cover; object-position:center; }

  .home-grid .service-card .service-image,
  .home-grid .service-card:nth-child(4) .service-image,
  .home-grid .service-card:last-child .service-image,
  .detailed .service-image {
    width:100%;
    height:auto;
    aspect-ratio:8 / 5;
    flex:0 0 auto;
  }
  .service-image>img[src$=".webp"] { object-fit:cover; object-position:center; }
  .campaign-card>img[src$=".webp"],
  .about-intro>img[src$=".webp"] {
    width:100%;
    height:auto;
    max-height:none;
    aspect-ratio:8 / 5;
    object-fit:contain;
    object-position:center;
  }
}

/* Keep the desktop background/overlay composition on tablets. */
@media (min-width:701px) and (max-width:1024px) {
  .hero-content { padding:calc(var(--header-height) + 48px) 0 48px; }
  .hero h1 { max-width:65%; }
  .hero-description { max-width:48%; }
  .banner-copy { padding:32px 0; }
  .home-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .home-grid .service-card,
  .home-grid .service-card:nth-child(4) { display:flex; flex-direction:column; grid-column:auto; }
}

/* Phone: text stays over the image, with the reference's horizontal fades. */
@media (max-width:700px) {
  .home-page .hero { min-height:410px; }
  .hero picture { inset:var(--header-height) 0 0 0; }
  .hero-image { object-position:62% center; }
  .hero-content { padding:calc(var(--header-height) + 32px) 0 36px; }
  .hero h1 { max-width:78%; font-size:clamp(25px,7vw,36px); line-height:1.15; }
  .hero::after { background:linear-gradient(90deg,#050505fa 0%,#070707ed 48%,#0a0a0a95 70%,#0808080a 98%); }
  .hero-description { max-width:65%; font-size:13px; line-height:1.65; margin-bottom:24px; }
  .hero .button { min-width:155px; gap:18px; }
  .brand-banner { min-height:300px; }
  .brand-banner>.cover { object-position:68% center; }
  .brand-banner::after { background:linear-gradient(90deg,#f4f4f4 0%,#f4f4f4ef 32%,#f4f4f4b0 57%,#f4f4f420 85%,transparent); }
  .banner-copy { max-width:100%; padding:28px 0; }
  .banner-copy h2 { max-width:85%; font-size:clamp(21px,5.8vw,27px); }
  .banner-copy p:not(.eyebrow) { max-width:66%; font-size:12px; line-height:1.65; }
  .banner-copy .button { font-size:12px; min-height:42px; padding:10px 20px; }
}

/* Scale the entire desktop footer composition, including its four columns,
   instead of stacking its groups at phone/tablet breakpoints. */
@media (max-width:1024px) {
  .site-footer {
    --footer-unit:calc(100vw / 1496);
    padding:calc(var(--footer-unit) * 54) 0 calc(var(--footer-unit) * 24);
    -webkit-text-size-adjust:none;
    text-size-adjust:none;
  }
  .site-footer>.container { width:calc(100% - var(--footer-unit) * 78); max-width:none; }
  .footer-grid { grid-template-columns:1.2fr 1.3fr 1.42fr 1.07fr; gap:calc(var(--footer-unit) * 38) 0; }
  .footer-grid>* { min-width:0; grid-column:auto; }
  .footer-grid>div:not(:first-child), .footer-contact {
    border:0;
    border-left:1px solid #ffffff16;
    padding:0 0 0 calc(var(--footer-unit) * 30);
  }
  .footer-grid>div:not(:last-child), .footer-contact { min-height:calc(var(--footer-unit) * 185); }
  .footer-grid p, .footer-links, .footer-contact { font-size:calc(var(--footer-unit) * 18); line-height:1.7; }
  .footer-grid h3 { font-size:calc(var(--footer-unit) * 18); margin:0 0 calc(var(--footer-unit) * 18); white-space:nowrap; }
  .footer-brand .logo { width:calc(var(--footer-unit) * 252); margin:0 0 calc(var(--footer-unit) * 36); }
  .footer-brand .logo img { width:100%; height:auto; max-height:none; }
  .footer-brand p { margin:0; }
  .footer-contact { margin:0; }
  .footer-contact p { font-size:calc(var(--footer-unit) * 18); gap:calc(var(--footer-unit) * 20); margin:0 0 calc(var(--footer-unit) * 14); overflow-wrap:normal; }
  .footer-contact a { white-space:nowrap; }
  .footer-contact span { white-space:pre-line; }
  .footer-contact .icon { width:calc(var(--footer-unit) * 24); height:calc(var(--footer-unit) * 24); margin-top:calc(var(--footer-unit) * 2); }
  .footer-links { grid-template-columns:repeat(2,minmax(0,1fr)); gap:calc(var(--footer-unit) * 8) calc(var(--footer-unit) * 24); }
  .footer-links a { white-space:nowrap; }
  .site-footer .socials { gap:calc(var(--footer-unit) * 12); }
  .site-footer .socials a { width:calc(var(--footer-unit) * 34); height:calc(var(--footer-unit) * 34); font-size:calc(var(--footer-unit) * 14); }
  .footer-grid>div:last-child {
    grid-column:1/-1;
    display:flex;
    align-items:center;
    flex-wrap:nowrap;
    gap:calc(var(--footer-unit) * 38);
    border-left:0;
    border-top:1px solid #ffffff16;
    padding:calc(var(--footer-unit) * 24) 0;
  }
  .footer-grid>div:last-child h3, .footer-grid>div:last-child p { margin:0; white-space:nowrap; }
  .footer-cta { margin:0 0 0 auto; width:calc(var(--footer-unit) * 254); min-width:calc(var(--footer-unit) * 254); max-width:none; font-size:calc(var(--footer-unit) * 18); padding:calc(var(--footer-unit) * 12) calc(var(--footer-unit) * 18); border-radius:calc(var(--footer-unit) * 30); gap:calc(var(--footer-unit) * 12); white-space:nowrap; }
  .footer-cta .icon { width:calc(var(--footer-unit) * 22); height:calc(var(--footer-unit) * 22); }
  .footer-bottom { display:flex; flex-wrap:nowrap; gap:calc(var(--footer-unit) * 30); font-size:calc(var(--footer-unit) * 16); line-height:1.75; margin-top:calc(var(--footer-unit) * 18); padding-top:calc(var(--footer-unit) * 28); }
  .footer-bottom>div { display:flex; width:auto; margin:0; gap:calc(var(--footer-unit) * 40); flex-wrap:nowrap; }
  .footer-bottom span, .footer-bottom a { white-space:nowrap; }
}

/* Reference footer: brand, contact details, two-column navigation and social rail. */
.site-footer {
  background:#000;
  padding:34px 0 20px;
}
.site-footer>.container {
  width:min(1380px,calc(100% - 72px));
}
.site-footer .footer-grid {
  display:grid;
  grid-template-columns:1.12fr 1.12fr 1.72fr 70px;
  gap:0;
  align-items:start;
}
.site-footer .footer-grid>* {
  min-width:0;
  grid-column:auto;
}
.site-footer .footer-brand {
  padding-right:30px;
}
.site-footer .footer-brand .logo {
  display:block;
  width:252px;
  max-width:100%;
  margin:0 0 28px;
}
.site-footer .footer-brand .logo img {
  display:block;
  width:100%;
  height:auto;
  max-height:none;
}
.site-footer .footer-brand p {
  max-width:280px;
  margin:0;
  color:#c6c6c6;
  font-size:16px;
  line-height:1.65;
}
.site-footer .footer-contact,
.site-footer .footer-navigation,
.site-footer .footer-socials {
  min-height:218px;
  border-left:1px solid #ffffff35;
  padding-left:30px;
}
.site-footer .footer-contact {
  margin:0;
  font-style:normal;
}
.site-footer .footer-grid h3 {
  margin:0 0 10px;
  color:#fff;
  font-size:20px;
  font-weight:600;
  line-height:1.2;
  white-space:nowrap;
}
.site-footer .footer-heading-line {
  display:block;
  width:32px;
  height:3px;
  margin-bottom:20px;
  border-radius:8px;
  background:#fff;
}
.site-footer .footer-contact p {
  display:flex;
  align-items:center;
  gap:16px;
  margin:0 0 10px;
  color:#eee;
  font-size:16px;
  line-height:1.45;
  overflow:visible;
}
.site-footer .footer-contact a {
  color:inherit;
  white-space:nowrap;
}
.site-footer .footer-icon {
  display:grid;
  flex:0 0 auto;
  place-items:center;
  width:42px;
  height:42px;
  border:1px solid #ffffff24;
  border-radius:50%;
  background:#ffffff05;
  color:#fff;
}
.site-footer .footer-icon .icon {
  width:22px;
  height:22px;
}
.site-footer .footer-navigation .footer-links {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:0 46px;
  color:#eee;
}
.site-footer .footer-navigation .footer-links a {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:9px 0;
  color:inherit;
  font-size:16px;
  line-height:1.35;
  white-space:nowrap;
}
.site-footer .footer-navigation .footer-links .icon {
  flex:0 0 auto;
  width:16px;
  height:16px;
}
.site-footer .footer-grid > .footer-socials {
  display:flex;
  grid-column:4;
  grid-row:1;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:38px;
  padding:0 0 0 20px;
  border-top:0;
}
.site-footer .footer-socials a {
  display:grid;
  place-items:center;
  width:46px;
  height:46px;
  border:1px solid #fff;
  border-radius:50%;
  color:#fff;
}
.site-footer .footer-socials .icon {
  width:23px;
  height:23px;
}
.site-footer .footer-action-row {
  display:flex;
  align-items:center;
  gap:36px;
  margin-top:28px;
  padding:20px 0 28px;
  border-top:1px solid #ffffff16;
  border-bottom:1px solid #ffffff16;
}
.site-footer .footer-action-row h3,
.site-footer .footer-action-row p {
  margin:0;
  white-space:nowrap;
}
.site-footer .footer-action-row h3 {
  color:#fff;
  font-size:16px;
}
.site-footer .footer-action-row p {
  color:#aaa;
  font-size:14px;
}
.site-footer .footer-action-row .footer-cta {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  width:235px;
  min-width:235px;
  margin-left:auto;
  padding:11px 18px;
  border:1px solid #777;
  border-radius:32px;
  color:#fff;
  font-size:15px;
  white-space:nowrap;
}
.site-footer .footer-action-row .footer-cta .icon {
  width:19px;
  height:19px;
}
.site-footer .footer-bottom {
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:nowrap;
  gap:30px;
  margin-top:0;
  padding-top:22px;
  color:#8d8d8d;
  font-size:11px;
  line-height:1.5;
}
.site-footer .footer-bottom>div {
  display:flex;
  gap:40px;
  margin-left:auto;
}
.site-footer .footer-bottom span,
.site-footer .footer-bottom a {
  color:inherit;
  white-space:nowrap;
}

/* Keep the same horizontal footer composition on phones and tablets. */
@media (max-width:1024px) {
  .site-footer {
    --footer-unit:calc(100vw / 1496);
    padding:calc(var(--footer-unit) * 48) 0 calc(var(--footer-unit) * 22);
    -webkit-text-size-adjust:none;
    text-size-adjust:none;
  }
  .site-footer>.container {
    width:calc(100% - var(--footer-unit) * 56);
    max-width:none;
  }
  .site-footer .footer-grid {
    display:grid;
    grid-template-columns:1.12fr 1.05fr 1.72fr calc(var(--footer-unit) * 88);
    gap:0;
  }
  .site-footer .footer-grid>* {
    min-width:0;
    grid-column:auto;
  }
  .site-footer .footer-brand {
    padding-right:calc(var(--footer-unit) * 38);
  }
  .site-footer .footer-brand .logo {
    width:calc(var(--footer-unit) * 300);
    margin:0 0 calc(var(--footer-unit) * 34);
  }
  .site-footer .footer-brand p {
    max-width:calc(var(--footer-unit) * 310);
    font-size:calc(var(--footer-unit) * 18);
  }
  .site-footer .footer-contact,
  .site-footer .footer-navigation,
  .site-footer .footer-socials {
    min-height:calc(var(--footer-unit) * 280);
    border-left:1px solid #ffffff35;
    padding-left:calc(var(--footer-unit) * 38);
  }
  .site-footer .footer-grid h3 {
    margin:0 0 calc(var(--footer-unit) * 13);
    font-size:calc(var(--footer-unit) * 27);
  }
  .site-footer .footer-heading-line {
    width:calc(var(--footer-unit) * 39);
    height:calc(var(--footer-unit) * 5);
    margin-bottom:calc(var(--footer-unit) * 28);
    border-radius:calc(var(--footer-unit) * 8);
  }
  .site-footer .footer-contact p {
    gap:calc(var(--footer-unit) * 20);
    margin:0 0 calc(var(--footer-unit) * 16);
    font-size:calc(var(--footer-unit) * 19);
  }
  .site-footer .footer-icon {
    width:calc(var(--footer-unit) * 54);
    height:calc(var(--footer-unit) * 54);
  }
  .site-footer .footer-icon .icon {
    width:calc(var(--footer-unit) * 27);
    height:calc(var(--footer-unit) * 27);
  }
  .site-footer .footer-navigation .footer-links {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:0 calc(var(--footer-unit) * 62);
    font-size:initial;
    line-height:normal;
  }
  .site-footer .footer-navigation .footer-links a {
    gap:calc(var(--footer-unit) * 20);
    padding:calc(var(--footer-unit) * 12) 0;
    font-size:calc(var(--footer-unit) * 19);
  }
  .site-footer .footer-navigation .footer-links .icon {
    width:calc(var(--footer-unit) * 18);
    height:calc(var(--footer-unit) * 18);
  }
  .site-footer .footer-grid > .footer-socials {
    display:flex;
    grid-column:4;
    grid-row:1;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:calc(var(--footer-unit) * 52);
    min-height:calc(var(--footer-unit) * 280);
    padding:0 0 0 calc(var(--footer-unit) * 26);
    border-top:0;
    border-left:1px solid #ffffff35;
  }
  .site-footer .footer-socials a {
    width:calc(var(--footer-unit) * 58);
    height:calc(var(--footer-unit) * 58);
  }
  .site-footer .footer-socials .icon {
    width:calc(var(--footer-unit) * 29);
    height:calc(var(--footer-unit) * 29);
  }
  .site-footer .footer-action-row {
    display:flex;
    flex-wrap:nowrap;
    gap:calc(var(--footer-unit) * 42);
    margin-top:calc(var(--footer-unit) * 42);
    padding:calc(var(--footer-unit) * 28) 0 calc(var(--footer-unit) * 42);
  }
  .site-footer .footer-action-row h3 {
    font-size:calc(var(--footer-unit) * 18);
  }
  .site-footer .footer-action-row p {
    font-size:calc(var(--footer-unit) * 16);
  }
  .site-footer .footer-action-row .footer-cta {
    width:calc(var(--footer-unit) * 265);
    min-width:calc(var(--footer-unit) * 265);
    gap:calc(var(--footer-unit) * 18);
    padding:calc(var(--footer-unit) * 14) calc(var(--footer-unit) * 20);
    border-radius:calc(var(--footer-unit) * 32);
    font-size:calc(var(--footer-unit) * 17);
  }
  .site-footer .footer-action-row .footer-cta .icon {
    width:calc(var(--footer-unit) * 22);
    height:calc(var(--footer-unit) * 22);
  }
  .site-footer .footer-bottom {
    display:flex;
    flex-wrap:nowrap;
    gap:calc(var(--footer-unit) * 30);
    margin-top:0;
    padding-top:calc(var(--footer-unit) * 28);
    font-size:calc(var(--footer-unit) * 15);
  }
  .site-footer .footer-bottom>div {
    display:flex;
    width:auto;
    gap:calc(var(--footer-unit) * 40);
    margin-left:auto;
    flex-wrap:nowrap;
  }
}

/* Desktop-only footer typography: match the compact primary navigation scale. */
@media (min-width:1025px) {
  .site-footer .footer-brand p {
    max-width:250px;
    font-size:14px;
    line-height:1.65;
  }
  .site-footer .footer-contact,
  .site-footer .footer-navigation,
  .site-footer .footer-socials {
    min-height:190px;
  }
  .site-footer .footer-grid h3 {
    margin-bottom:8px;
    font-size:17px;
    letter-spacing:0;
  }
  .site-footer .footer-heading-line {
    width:28px;
    height:3px;
    margin-bottom:15px;
  }
  .site-footer .footer-contact p {
    gap:12px;
    margin-bottom:8px;
    font-size:13px;
    line-height:1.35;
  }
  .site-footer .footer-icon {
    width:38px;
    height:38px;
  }
  .site-footer .footer-icon .icon {
    width:20px;
    height:20px;
  }
  .site-footer .footer-navigation .footer-links a {
    gap:12px;
    padding:7px 0;
    font-size:13px;
  }
  .site-footer .footer-navigation .footer-links .icon {
    width:14px;
    height:14px;
  }
  .site-footer .footer-socials {
    gap:30px;
  }
  .site-footer .footer-socials a {
    width:42px;
    height:42px;
  }
  .site-footer .footer-socials .icon {
    width:21px;
    height:21px;
  }
  .site-footer .footer-action-row {
    gap:30px;
    margin-top:22px;
    padding:17px 0 22px;
  }
  .site-footer .footer-action-row h3 {
    font-size:14px;
  }
  .site-footer .footer-action-row p {
    font-size:13px;
  }
  .site-footer .footer-action-row .footer-cta {
    width:220px;
    min-width:220px;
    padding:9px 15px;
    font-size:13px;
  }
  .site-footer .footer-action-row .footer-cta .icon {
    width:17px;
    height:17px;
  }
  .site-footer .footer-bottom {
    padding-top:18px;
    font-size:10px;
  }
}

/* Search modal follows the appointment modal's dark premium treatment. */
.search-modal {
  color:#f4f4f4;
  background:radial-gradient(ellipse at 100% 0,#303030,transparent 50%),linear-gradient(130deg,#191919,#0c0c0c) !important;
  border-color:#ffffff26 !important;
  max-width:740px;
}
.search-modal .eyebrow {
  color:#fff !important;
  font-size:10px;
  letter-spacing:.23em;
}
.search-modal h2 {
  color:#f4f4f4;
  margin-bottom:18px;
}
.search-modal .field {
  color:#dedede;
  font-size:12px;
}
.search-modal #site-search {
  min-height:44px;
  padding:8px 10px;
  border:1px solid #ffffff26;
  border-radius:5px;
  background:#ffffff06;
  color:#f0f0f0;
  caret-color:#fff;
  font-size:14px !important;
  line-height:1.45;
  -webkit-appearance:none;
  appearance:none;
  touch-action:manipulation;
}
.search-modal #site-search::placeholder { color:#a9a9a9; opacity:1; }
.search-modal #site-search:hover { border-color:#ffffff50; }
.search-modal #site-search:focus {
  border-color:#ffffff70;
  background:#ffffff0a;
  outline:0;
  box-shadow:none;
}
.search-modal .dialog-close,
.search-modal .dialog-close:hover,
.search-modal .dialog-close:focus,
.search-modal .dialog-close:focus-visible {
  width:24px;
  height:24px;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent !important;
  box-shadow:none !important;
  outline:0 !important;
  transform:none;
  color:#fff;
}
.search-modal .dialog-close .icon { width:22px; height:22px; }
.search-modal #search-results {
  margin-top:18px;
  max-height:min(47vh,430px);
}
.search-modal #search-results a {
  padding:10px 8px;
  border-bottom:1px solid #ffffff17;
  color:#e8e8e8;
  font-size:13px;
}
.search-modal #search-results p { color:#c9c9c9; font-size:13px; }

/* The close control is intentionally a bare X in both modal types. */
.appointment-modal .dialog-close,
.appointment-modal .dialog-close:hover,
.appointment-modal .dialog-close:focus,
.appointment-modal .dialog-close:focus-visible {
  background:transparent !important;
  box-shadow:none !important;
  outline:0 !important;
  transform:none;
}

@media (max-width:700px) {
  /* 16px prevents mobile browsers from zooming when the search field is used. */
  .search-modal #site-search { min-height:50px; font-size:16px !important; }
}

.certificate-pdf-preview {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  width:100%;
  aspect-ratio:1.43;
  overflow:hidden;
  background:#fff;
  border-bottom:1px solid var(--color-border);
  color:#202020;
}
.certificate-pdf-preview .certificate-file-mark {
  display:grid;
  place-items:center;
  width:58px;
  height:58px;
  border:1px solid #222;
  border-radius:50%;
}
.certificate-pdf-preview .certificate-file-mark .icon {
  width:30px;
  height:30px;
}
.certificate-pdf-preview strong {
  font-size:15px;
  letter-spacing:.12em;
}
.certificate-pdf-preview span {
  color:#666;
  font-size:12px;
}
