@font-face {
  font-family: "AV Fontimer";
  src: url("../fonts/av-fontimer-light.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "AV Fontimer";
  src: url("../fonts/av-fontimer-bold.woff2") format("woff2");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}

:root {
  --color-teal-deep: #076977;
  --color-amber: #F29A0F;
  --color-off-white: #F5F5F5;
  --color-warm-oak: #D7691A;
  --color-caramel: #AA501E;
  --color-dark-cocoa: #25110B;
  --brand: var(--color-teal-deep);
  --brand-deep: #055560;
  --brand-ink: #053c48;
  --accent: var(--color-amber);
  --accent-ink: var(--color-amber);
  --accent-soft: #ffb52b;
  --cream: var(--color-off-white);
  --mist: #edf5f3;
  --line: rgba(8, 103, 120, 0.17);
  --muted: #5c757a;
  --display: "AV Fontimer", Arial Narrow, sans-serif;
  --body: "Avenir Next", Avenir, "Segoe UI", Helvetica, Arial, sans-serif;
  --ease: cubic-bezier(0.2, 0.7, 0.2, 1);
  --header-height: 76px;
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.5rem;
  --space-6: 2rem;
  --space-7: 3rem;
  --space-8: 4.5rem;
  --space-9: 6rem;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { min-width: 320px; margin: 0; overflow-x: hidden; background: var(--cream); color: var(--brand-ink); font-family: var(--body); }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
:where(a, button, input, textarea, select, summary):focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
h1, h2, h3, p, figure, blockquote { margin-top: 0; }

.container { width: min(1200px, calc(100% - 72px)); margin: 0 auto; }
.section { padding: 126px 0; }
.site-shell { overflow: hidden; }

.skip-link { position: fixed; z-index: 100; top: -100px; left: 18px; padding: 12px 15px; background: var(--accent); color: var(--brand-ink); font-size: 12px; font-weight: 700; }
.skip-link:focus { top: 18px; }

.eyebrow { display: flex; align-items: center; gap: 9px; margin: 0 0 18px; color: var(--brand); font-size: 11px; font-weight: 700; letter-spacing: 0.13em; line-height: 1.2; text-transform: uppercase; }
.eyebrow > span { width: 7px; height: 7px; flex: 0 0 auto; border-radius: 50%; background: var(--accent); }
.eyebrow--light { color: #dcefed; }
.eyebrow--light > span { background: var(--accent); }

h1, h2, h3 { font-family: var(--display); font-weight: 700; letter-spacing: -0.055em; }
h1 { margin-bottom: 24px; font-size: clamp(3.65rem, 6.15vw, 6.8rem); line-height: 0.87; }
h2 { margin-bottom: 0; font-size: clamp(2.75rem, 4.45vw, 5rem); line-height: 0.92; }
h3 { margin-bottom: 10px; font-size: clamp(1.85rem, 2.25vw, 2.6rem); line-height: 0.97; }
h1 em, h2 em { color: var(--accent-ink); font-style: normal; }
.hero h1 em, .wellbeing-band h2 em, .metrics-band h2 em, .cta-band h2 em, .page-hero h1 em, .section-heading--light h2 em, .values-section h2 em, .thank-you h1 em { color: var(--accent); }

.button { display: inline-flex; min-height: 50px; align-items: center; justify-content: center; gap: 18px; border: 1px solid var(--brand); padding: 14px 20px; background: var(--brand); color: #fff; font-size: 12px; font-weight: 700; letter-spacing: 0.015em; transition: background 0.25s var(--ease), color 0.25s var(--ease), border-color 0.25s var(--ease), transform 0.25s var(--ease); }
.button:hover { transform: translateY(-3px); background: var(--brand-deep); }
.button span { font-size: 15px; }
.button--small { min-height: 42px; padding: 10px 14px; font-size: 11px; }
.button--accent { border-color: var(--accent); background: var(--accent); color: var(--brand-ink); }
.button--accent:hover { border-color: var(--accent-soft); background: var(--accent-soft); }
.button--outline { border-color: var(--brand); background: transparent; color: var(--brand); }
.button--outline:hover { background: var(--brand); color: #fff; }
.text-link { display: inline-flex; align-items: center; gap: 10px; border: 0; padding: 0; background: transparent; color: var(--brand); font-size: 12px; font-weight: 700; letter-spacing: 0.02em; text-align: left; transition: color 0.2s ease, gap 0.2s ease; }
.text-link:hover { gap: 14px; color: var(--accent-ink); }
.text-link--light { color: #fff; }
.text-link--light:hover { color: var(--accent); }

/* Header */
.site-header { position: sticky; z-index: 30; top: 0; height: var(--header-height); border-bottom: 1px solid rgba(255, 255, 255, 0.16); background: rgba(3, 47, 56, 0.97); box-shadow: 0 7px 24px rgba(0, 27, 33, 0.2); backdrop-filter: blur(14px); }
.header__inner { display: flex; height: 100%; align-items: center; justify-content: space-between; gap: 24px; }
.logo { display: inline-flex; flex: 0 0 auto; align-items: center; border: 0; padding: 0; background: transparent; }
.logo img { width: 174px; height: auto; }
.site-nav { display: flex; align-items: center; gap: 29px; margin-left: auto; }
.site-nav button { position: relative; border: 0; padding: 7px 0; background: transparent; color: #d6e9e8; font-size: 12px; font-weight: 700; transition: color 0.2s ease; }
.site-nav button::after { position: absolute; right: 0; bottom: 0; left: 0; height: 2px; background: var(--accent); content: ""; opacity: 0; transform: scaleX(0); transition: opacity 0.2s ease, transform 0.2s ease; }
.site-nav button:hover, .site-nav button.is-active { color: #fff; }
.site-nav button.is-active::after { opacity: 1; transform: scaleX(1); }
.site-nav__mobile-cta { display: none; }
.header__actions { display: flex; align-items: center; gap: 16px; margin-left: 24px; }
.header__phone { color: #fff; font-size: 11px; font-weight: 700; white-space: nowrap; }
.header__phone span { color: #bdd6d5; font-weight: 500; }
.menu-button { display: none; }

/* Home hero */
.hero { position: relative; display: flex; min-height: calc(100svh - var(--header-height)); flex-direction: column; overflow: hidden; background: var(--brand-ink); color: #fff; isolation: isolate; }
.hero__background { position: absolute; z-index: 0; inset: 0; overflow: hidden; }
.hero__background img { width: 100%; height: 100%; object-fit: cover; object-position: 61% center; }
.hero__background::after { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(3, 47, 56, 0.97) 0%, rgba(3, 47, 56, 0.88) 28%, rgba(3, 47, 56, 0.45) 54%, rgba(3, 47, 56, 0.08) 100%), linear-gradient(180deg, rgba(3, 47, 56, 0.25), rgba(3, 47, 56, 0.28)); content: ""; }
.hero::before, .hero::after { position: absolute; z-index: 1; border: 1px solid rgba(255, 255, 255, 0.12); border-radius: 50%; content: ""; pointer-events: none; }
.hero::before { top: -24vw; right: -9vw; width: 49vw; height: 49vw; }
.hero::after { right: 26%; bottom: -30vw; width: 57vw; height: 57vw; border-color: rgba(245, 162, 8, 0.55); }
.hero__mesh { position: absolute; z-index: 1; inset: 0; opacity: 0.13; background-image: linear-gradient(rgba(255, 255, 255, 0.17) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, 0.17) 1px, transparent 1px); background-size: 80px 80px; mask-image: linear-gradient(90deg, #000, transparent 68%); pointer-events: none; }
.hero__layout { position: relative; z-index: 2; display: grid; min-height: 0; flex: 1 0 auto; grid-template-columns: minmax(0, 660px); gap: clamp(28px, 5vw, 64px); align-items: center; padding: clamp(48px, 7vw, 86px) 0 clamp(34px, 5vw, 64px); }
.hero__copy { position: relative; z-index: 2; max-width: 650px; }
.hero__copy h1 { max-width: 680px; margin-bottom: 18px; font-size: clamp(3.05rem, 4.4vw, 4.8rem); line-height: 0.9; }
.hero__copy > p:not(.eyebrow) { max-width: 510px; margin-bottom: 21px; color: #d3e9e8; font-size: 15px; line-height: 1.65; }
.hero__actions { display: flex; align-items: center; gap: 18px; }
.hero__availability { display: flex; align-items: center; gap: 11px; margin-top: 24px; color: #d8eae9; }
.hero__availability > span { width: 35px; height: 1px; background: var(--accent); }
.hero__availability p { margin: 0; font-size: 10px; line-height: 1.6; letter-spacing: 0.055em; text-transform: uppercase; }
.hero__availability b { color: #fff; font-weight: 700; }
.hero__visual { display: none; position: relative; min-height: 390px; }
.hero__brand-art { position: absolute; z-index: 0; top: -25px; right: -20px; width: 72%; opacity: 0.85; mix-blend-mode: screen; }
.hero__main-photo { position: absolute; z-index: 1; top: 8px; right: 16px; width: min(70%, 420px); margin: 0; padding: 8px; border: 1px solid rgba(255, 255, 255, 0.43); background: rgba(255, 255, 255, 0.08); box-shadow: 16px 22px 0 rgba(3, 71, 82, 0.4); }
.hero__main-photo img { width: 100%; height: 300px; object-fit: cover; }
.hero__main-photo figcaption { display: flex; align-items: end; justify-content: space-between; gap: 17px; padding: 9px 2px 1px; }
.hero__main-photo figcaption span { color: #c8e1df; font-size: 10px; font-weight: 700; letter-spacing: 0.13em; text-transform: uppercase; }
.hero__main-photo figcaption b { font-family: var(--display); font-size: 20px; letter-spacing: -0.04em; line-height: 0.9; }
.hero__before-after { position: absolute; z-index: 2; bottom: 0; left: 0; width: min(39%, 220px); margin: 0; padding: 6px; border: 5px solid var(--brand); background: #fff; box-shadow: 0 18px 38px rgba(0, 35, 42, 0.37); color: var(--brand-ink); }
.hero__before-after img { width: 100%; height: 130px; object-fit: cover; }
.hero__before-after figcaption { padding: 7px 2px 1px; color: var(--brand); font-size: 9px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; }
.hero__metric { position: absolute; z-index: 3; top: 38px; right: 0; display: flex; width: 98px; height: 98px; flex-direction: column; align-items: center; justify-content: center; border-radius: 50%; background: var(--accent); color: var(--brand-ink); text-align: center; }
.hero__metric strong { font-family: var(--display); font-size: 34px; letter-spacing: -0.06em; line-height: 0.85; }
.hero__metric strong span { font-size: 17px; }
.hero__metric > span { max-width: 58px; margin-top: 4px; font-size: 8px; font-weight: 700; letter-spacing: 0.07em; line-height: 1.25; text-transform: uppercase; }
.hero__bottom { position: relative; z-index: 1; display: flex; align-items: center; gap: 13px; min-height: 54px; border-top: 1px solid rgba(255, 255, 255, 0.21); color: #cde4e3; font-size: 10px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; }
.hero__bottom i { width: 4px; height: 4px; border-radius: 50%; background: var(--accent); }
.hero__bottom b { margin-left: auto; color: #fff; font-size: 10px; }

.hero-reveal { animation: reveal-up 0.7s var(--ease) both; }
.hero__visual.hero-reveal { animation-delay: 0.1s; }
@keyframes reveal-up { from { opacity: 0; transform: translateY(25px); } to { opacity: 1; transform: translateY(0); } }

/* Service overview */
.section-heading { display: grid; grid-template-columns: 1fr 0.57fr; align-items: end; gap: 80px; margin-bottom: 65px; }
.section-heading > p { max-width: 420px; margin: 0 0 4px; color: var(--muted); font-size: 13px; line-height: 1.85; }
.section-heading--light { color: #fff; }
.section-heading--light > p { color: #cce5e3; }
.service-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.service-card { display: flex; min-height: 100%; flex-direction: column; overflow: hidden; border: 1px solid var(--line); background: #fff; transition: box-shadow 0.3s var(--ease), transform 0.3s var(--ease); }
.service-card:hover { box-shadow: 0 22px 48px rgba(5, 60, 72, 0.11); transform: translateY(-7px); }
.service-card__media { position: relative; height: 286px; overflow: hidden; background: var(--mist); }
.service-card__media::before { position: absolute; z-index: 2; top: 0; left: 0; width: 3px; height: 100%; background: var(--accent); content: ""; }
.service-card__media::after { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(5, 60, 72, 0.02) 42%, rgba(5, 60, 72, 0.37)); content: ""; }
.service-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.7s var(--ease); }
.service-card:hover .service-card__media img { transform: scale(1.05); }
.service-card__media span { position: absolute; z-index: 3; top: 16px; left: 17px; padding: 7px 8px; background: rgba(3, 60, 72, 0.78); color: #fff; font-size: 10px; font-weight: 700; letter-spacing: 0.12em; backdrop-filter: blur(6px); }
.service-card__body { display: flex; flex: 1; flex-direction: column; padding: 26px 25px 29px; }
.service-card__body p { min-height: 68px; margin: 0 0 22px; color: var(--muted); font-size: 14px; line-height: 1.78; }
.service-card__body .text-link { margin-top: auto; }

/* About preview */
.wellbeing-band { overflow: hidden; padding: clamp(92px, 10vw, 142px) 0; background: var(--brand-ink); color: #fff; }
.wellbeing-band__layout { display: grid; grid-template-columns: minmax(0, 0.94fr) minmax(340px, 0.76fr); align-items: center; gap: clamp(50px, 9vw, 132px); }
.wellbeing-band__copy { display: flex; flex-direction: column; align-items: flex-start; }
.wellbeing-band__copy h2 { margin-bottom: 25px; }
.wellbeing-band__lead { max-width: 500px; margin: 0; color: #c9e1df; font-size: 14px; line-height: 1.85; }
.wellbeing-band__commitment { max-width: 480px; margin: 30px 0 31px; padding: 21px 0 0; border-top: 1px solid rgba(255, 255, 255, 0.26); }
.wellbeing-band__commitment > span { display: block; margin-bottom: 10px; color: var(--accent); font-size: 10px; font-weight: 800; letter-spacing: 0.13em; text-transform: uppercase; }
.wellbeing-band__commitment p { margin: 0; color: #edf7f6; font-size: 13px; line-height: 1.78; }
.wellbeing-band__visuals { position: relative; display: grid; min-height: clamp(540px, 51vw, 660px); align-items: center; justify-items: end; }
.wellbeing-band__visuals::before { position: absolute; top: 7%; right: 13%; width: 68%; height: 79%; border: 1px solid rgba(245, 162, 8, 0.54); content: ""; transform: translate(20px, 20px); }
.wellbeing-band__story-photo { position: relative; z-index: 1; width: min(100%, 442px); margin: 0; overflow: hidden; border: 1px solid rgba(255, 255, 255, 0.64); padding: 7px; background: rgba(3, 47, 56, 0.68); box-shadow: 20px 24px 0 rgba(0, 22, 29, 0.34), 0 30px 58px rgba(0, 12, 16, 0.3); }
.wellbeing-band__story-photo::before { position: absolute; z-index: 1; top: 20px; left: 20px; width: 37px; height: 37px; border-top: 1px solid var(--accent); border-left: 1px solid var(--accent); content: ""; pointer-events: none; }
.wellbeing-band__story-photo img { display: block; width: 100%; height: clamp(455px, 48vw, 625px); object-fit: cover; object-position: 48% 35%; filter: saturate(0.97) contrast(1.02); }
.wellbeing-band__story-photo figcaption { position: absolute; z-index: 2; right: 7px; bottom: 7px; left: 7px; display: grid; gap: 4px; padding: 42px 17px 16px; background: linear-gradient(180deg, transparent, rgba(3, 47, 56, 0.92) 66%); color: #fff; }
.wellbeing-band__story-photo figcaption span { color: #f5dfbd; font-size: 9px; font-weight: 800; letter-spacing: 0.13em; line-height: 1.2; text-transform: uppercase; }
.wellbeing-band__story-photo figcaption b { max-width: 230px; font-family: var(--display); font-size: clamp(1.55rem, 2.25vw, 2.1rem); letter-spacing: -0.045em; line-height: 0.92; }

/* Transformation */
.transformation-section__intro { display: grid; grid-template-columns: 1fr 0.52fr; align-items: end; gap: 78px; margin-bottom: 52px; }
.transformation-section__intro p { max-width: 390px; margin: 0 0 4px; color: var(--muted); font-size: 13px; line-height: 1.85; }
.transformation-grid { display: grid; grid-template-columns: 1.35fr 0.86fr 0.86fr; grid-auto-rows: 214px; gap: 16px; }
.transformation-card { position: relative; display: flex; align-items: end; overflow: hidden; border: 0; padding: 22px; background: var(--brand-ink); color: #fff; text-align: left; }
.transformation-card::after { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(3, 54, 64, 0.02) 24%, rgba(3, 54, 64, 0.82)); content: ""; }
.transformation-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 0.7s var(--ease); }
.transformation-card:hover img { transform: scale(1.06); }
.transformation-card span, .transformation-card b { position: relative; z-index: 1; }
.transformation-card span { position: absolute; top: 20px; left: 21px; border: 1px solid rgba(255, 255, 255, 0.55); padding: 6px 8px; font-size: 10px; font-weight: 700; letter-spacing: 0.09em; text-transform: uppercase; }
.transformation-card b { font-family: var(--display); font-size: 25px; letter-spacing: -0.045em; line-height: 0.92; }
.transformation-card--1 { grid-row: span 2; }
.transformation-card--2 { grid-row: span 1; }
.transformation-card--3 { grid-row: span 1; }
.transformation-card--4 { grid-column: span 2; }
.transformation-grid__cta { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: 29px; background: var(--mist); }
.transformation-grid__cta .eyebrow { margin-bottom: 12px; }
.transformation-grid__cta p { margin: 0 0 20px; color: var(--muted); font-size: 13px; line-height: 1.75; }

/* Specialty */
.specialty-section { padding: 116px 0; background: #fff; }
.specialty-section__layout { display: grid; grid-template-columns: 0.88fr 1.12fr; align-items: center; gap: 11%; }
.specialty-section__copy > p:not(.eyebrow) { max-width: 420px; margin: 24px 0 27px; color: var(--muted); font-size: 13px; line-height: 1.85; }
.specialty-section__copy ul { display: grid; gap: 11px; margin: 0 0 29px; padding: 0; color: var(--brand-ink); font-size: 13px; font-weight: 700; list-style: none; }
.specialty-section__copy li { display: flex; align-items: center; gap: 10px; }
.specialty-section__copy li span { color: var(--accent-ink); font-size: 10px; letter-spacing: 0.08em; }
.specialty-section__photo { position: relative; min-height: 465px; margin: 0; overflow: hidden; background: var(--brand); }
.specialty-section__photo img { width: 100%; height: 100%; min-height: 465px; object-fit: cover; object-position: center 43%; }
.specialty-section__photo::after { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 50%, rgba(5, 60, 72, 0.8)); content: ""; }
.specialty-section__photo figcaption { position: absolute; z-index: 1; right: 27px; bottom: 25px; left: 27px; display: flex; align-items: end; justify-content: space-between; gap: 28px; color: #fff; }
.specialty-section__photo figcaption span { font-size: 10px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
.specialty-section__photo figcaption b { max-width: 185px; font-family: var(--display); font-size: 24px; letter-spacing: -0.04em; line-height: 0.92; text-align: right; }

/* Metric and videos */
.metrics-band { padding: 90px 0; background: var(--brand); color: #fff; }
.metrics-band__layout { display: grid; grid-template-columns: 0.8fr 1.2fr; align-items: center; gap: 80px; }
.metrics-list { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid rgba(255, 255, 255, 0.32); border-bottom: 1px solid rgba(255, 255, 255, 0.32); }
.metrics-list > div { min-height: 154px; padding: 27px 25px; border-right: 1px solid rgba(255, 255, 255, 0.32); }
.metrics-list > div:last-child { border-right: 0; }
.metrics-list strong { display: block; color: var(--accent); font-family: var(--display); font-size: 54px; letter-spacing: -0.07em; line-height: 0.8; }
.metrics-list strong span { font-size: 24px; }
.metrics-list p { max-width: 120px; margin: 15px 0 0; color: #d6e9e8; font-size: 12px; font-weight: 600; line-height: 1.5; }
.video-proof .section-heading { margin-bottom: 54px; }
.video-grid { display: grid; grid-template-columns: 1.24fr 0.88fr 0.88fr; gap: 16px; }
.video-card { overflow: hidden; border: 1px solid var(--line); background: #fff; }
.video-card__frame { aspect-ratio: 16 / 10; background: var(--brand-ink); }
.video-card--2 .video-card__frame, .video-card--3 .video-card__frame { aspect-ratio: 9 / 10; }
.video-card iframe { display: block; width: 100%; height: 100%; border: 0; }
.video-card p { margin: 0; padding: 14px 16px 15px; background: var(--brand); color: #fff; font-size: 11px; font-weight: 700; letter-spacing: 0.09em; text-transform: uppercase; }
.video-proof--preview .video-grid { max-width: 840px; grid-template-columns: minmax(0, 1fr); }
.video-proof--preview .video-card { max-width: 840px; }
.video-proof--preview .video-card__frame { aspect-ratio: 16 / 9; }
.video-proof__action { margin-top: 28px; }

/* Review and FAQ */
.featured-review { display: grid; grid-template-columns: 0.76fr 1.24fr; align-items: center; gap: 10%; }
.featured-review > div > .text-link { margin-top: 27px; }
.featured-review article { position: relative; padding: 34px 0 34px 70px; border-left: 1px solid var(--line); }
.quote-mark { position: absolute; top: 25px; left: 27px; color: var(--accent-ink); font-family: var(--display); font-size: 75px; line-height: 0.7; }
.featured-review blockquote { max-width: 600px; margin: 0 0 20px; color: var(--brand-ink); font-family: var(--display); font-size: clamp(1.85rem, 3.2vw, 3.15rem); letter-spacing: -0.052em; line-height: 1.04; }
.stars { display: inline-block; color: var(--accent-ink); font-size: 13px; letter-spacing: 0.1em; }
.review-grid article.review-grid__featured .stars { color: var(--accent-soft); }
.featured-review article p { display: flex; flex-direction: column; gap: 4px; margin: 17px 0 0; font-size: 12px; }
.featured-review article p span { color: var(--muted); }
.faq-section { display: grid; grid-template-columns: 0.72fr 1.28fr; align-items: start; gap: 10%; padding-top: 85px; }
.faq-section > div:first-child p:not(.eyebrow) { max-width: 310px; margin: 22px 0 0; color: var(--muted); font-size: 13px; line-height: 1.8; }
.faq-list { border-top: 1px solid var(--line); }
.faq-list details { border-bottom: 1px solid var(--line); }
.faq-list summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 21px 0; color: var(--brand-ink); cursor: pointer; font-size: 15px; font-weight: 700; line-height: 1.55; list-style: none; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary span { flex: 0 0 auto; color: var(--accent-ink); font-size: 25px; font-weight: 400; transition: transform 0.2s var(--ease); }
.faq-list details[open] summary span { transform: rotate(45deg); }
.faq-list details p { max-width: 680px; margin: 0; padding: 0 42px 22px 0; color: var(--muted); font-size: 14px; line-height: 1.8; }

/* CTA + footer */
.cta-band { padding: 92px 0; background: var(--brand-ink); color: #fff; }
.cta-band__layout { display: flex; align-items: end; justify-content: space-between; gap: 42px; }
.cta-band__layout h2 { margin: 0; }
.cta-band__layout > div:last-child { display: flex; flex-direction: column; align-items: flex-start; gap: 19px; }
.cta-band__layout > div:last-child p { margin: 0; color: #c8e0df; font-size: 12px; }
.site-footer { padding-top: 77px; background: #032f38; color: #fff; }
.footer__top { display: grid; grid-template-columns: 0.83fr 1.17fr; gap: 10%; padding-bottom: 70px; }
.footer__brand .logo { margin-bottom: 25px; }
.footer__brand .logo img { width: 194px; }
.footer__brand > p { margin: 0 0 26px; color: #c7e0df; font-size: 13px; line-height: 1.75; }
.footer__links { display: grid; grid-template-columns: repeat(3, 1fr); gap: 34px; }
.footer__links > div { display: flex; flex-direction: column; align-items: flex-start; gap: 11px; }
.footer__links b { margin-bottom: 6px; color: var(--accent); font-size: 10px; letter-spacing: 0.13em; text-transform: uppercase; }
.footer__links button, .footer__links a, .footer__links p { border: 0; padding: 0; background: transparent; color: #cee4e2; font-size: 13px; line-height: 1.65; text-align: left; }
.footer__links p { margin: 0; }
.footer__links button:hover, .footer__links a:hover { color: var(--accent); }
.footer__bottom { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 19px 0 21px; border-top: 1px solid rgba(255, 255, 255, 0.16); color: #8fb4b6; font-size: 10px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }

/* Internal pages */
.page-hero { position: relative; display: flex; min-height: calc(100svh - var(--header-height)); align-items: center; overflow: hidden; background: var(--brand); color: #fff; isolation: isolate; }
.page-hero__image { position: absolute; inset: 0; }
.page-hero__image img { width: 100%; height: 100%; object-fit: cover; object-position: 62% center; }
.page-hero--services .page-hero__image img { object-position: 64% center; }
.page-hero--about .page-hero__image img { object-position: 63% center; }
.page-hero--gallery .page-hero__image img { object-position: 61% center; }
.page-hero--testimonials .page-hero__image img { object-position: 59% center; }
.page-hero__overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(3, 47, 56, 0.97), rgba(5, 65, 76, 0.86) 32%, rgba(5, 65, 76, 0.36) 59%, rgba(5, 65, 76, 0.08)); }
.page-hero__content { position: relative; z-index: 1; padding: clamp(92px, 12vw, 150px) 0 clamp(72px, 9vw, 118px); }
.page-hero__content h1 { max-width: 835px; margin-bottom: 19px; }
.page-hero__content > p:not(.eyebrow) { max-width: 500px; margin: 0; color: #d2e8e6; font-size: 14px; line-height: 1.78; }
.service-stories { margin-top: 84px; }
.service-stories article { display: grid; min-height: 490px; grid-template-columns: 1fr 1fr; align-items: center; gap: 11%; margin-bottom: 92px; }
.service-stories article.is-reversed { direction: rtl; }
.service-stories article.is-reversed > * { direction: ltr; }
.service-stories__media { position: relative; height: 490px; overflow: hidden; background: var(--mist); }
.service-stories__media::after { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(4, 61, 72, 0.45), transparent 60%); content: ""; }
.service-stories__media img { width: 100%; height: 100%; object-fit: cover; }
.service-stories__media span { position: absolute; z-index: 1; top: 20px; left: 22px; color: #fff; font-size: 10px; font-weight: 700; letter-spacing: 0.12em; }
.service-stories__copy > p:not(.eyebrow) { max-width: 440px; margin: 24px 0 25px; color: var(--muted); font-size: 13px; line-height: 1.85; }
.service-stories__copy ul { display: grid; gap: 10px; margin: 0 0 28px; padding: 0; color: #41636a; font-size: 13px; font-weight: 600; list-style: none; }
.service-stories__copy li { display: flex; gap: 9px; align-items: center; }
.service-stories__copy li span { color: var(--accent-ink); font-size: 12px; }
.service-note { padding: 65px 0; background: var(--mist); }
.service-note__layout { display: grid; grid-template-columns: 1fr 0.92fr auto; align-items: center; gap: 55px; }
.service-note h2 { font-size: clamp(2.25rem, 3.5vw, 3.6rem); }
.service-note p { max-width: 390px; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.8; }

.about-story { display: grid; grid-template-columns: 0.91fr 1.09fr; align-items: center; gap: 11%; }
.about-story__portrait { position: relative; min-height: 575px; }
.about-story__portrait > img { width: 85%; height: 530px; object-fit: cover; object-position: center 28%; }
.about-story__portrait > div { position: absolute; right: 0; bottom: 0; display: flex; width: 55%; min-height: 120px; flex-direction: column; justify-content: end; padding: 22px; background: var(--accent); color: var(--brand-ink); }
.about-story__portrait span { margin-bottom: 13px; font-size: 10px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
.about-story__portrait b { font-family: var(--display); font-size: 23px; letter-spacing: -0.045em; line-height: 0.95; }
.about-story__copy > p:not(.eyebrow) { max-width: 520px; margin: 23px 0 0; color: var(--muted); font-size: 13px; line-height: 1.85; }
.about-story__copy > p:nth-of-type(3) { margin-bottom: 30px; }
.about-story__copy .button { margin-top: 31px; }
.values-section { padding: 111px 0; background: var(--brand); color: #fff; }
.values-section .section-heading { margin-bottom: 58px; }
.values-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid rgba(255, 255, 255, 0.3); }
.values-grid article { min-height: 234px; padding: 24px 28px; border-right: 1px solid rgba(255, 255, 255, 0.3); }
.values-grid article:first-child { padding-left: 0; }
.values-grid article:last-child { border-right: 0; }
.values-grid article > span { color: var(--accent-soft); font-size: 10px; font-weight: 700; letter-spacing: 0.1em; }
.values-grid h3 { margin: 50px 0 9px; color: #fff; font-size: 31px; }
.values-grid p { max-width: 265px; margin: 0; color: #cce3e2; font-size: 14px; line-height: 1.75; }
.team-section { display: grid; grid-template-columns: 0.73fr 1.27fr; align-items: end; gap: 8%; }
.team-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.team-grid article { overflow: hidden; background: var(--mist); }
.team-grid img { width: 100%; aspect-ratio: 0.79; object-fit: cover; object-position: center top; }
.team-grid p { display: flex; flex-direction: column; gap: 4px; margin: 0; padding: 13px 12px 15px; font-size: 12px; }
.team-grid span { color: var(--muted); }

.gallery-page__intro { display: flex; align-items: end; justify-content: space-between; gap: 44px; margin-bottom: 58px; }
.filter-list { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.filter-list button { border: 1px solid var(--line); padding: 10px 14px; background: #fff; color: var(--muted); font-size: 12px; font-weight: 700; letter-spacing: 0.02em; transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease; }
.filter-list button:hover, .filter-list button.is-active { border-color: var(--brand); background: var(--brand); color: #fff; }
.gallery-grid { display: grid; grid-template-columns: repeat(3, 1fr); grid-auto-flow: dense; gap: 16px; }
.gallery-grid article { position: relative; display: flex; min-height: 288px; align-items: end; overflow: hidden; background: var(--brand-ink); color: #fff; }
.gallery-grid article.gallery-grid__large { min-height: 430px; grid-column: span 2; }
.gallery-grid img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 0.7s var(--ease); }
.gallery-grid article:hover img { transform: scale(1.04); }
.gallery-grid article::after { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 45%, rgba(4, 57, 67, 0.86)); content: ""; }
.gallery-grid article > div { position: relative; z-index: 1; padding: 23px; }
.gallery-grid span { display: block; margin-bottom: 8px; font-size: 10px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
.gallery-grid h3 { margin: 0; color: #fff; font-size: 27px; }
.gallery-callout { display: grid; grid-template-columns: 1fr 1fr; align-items: stretch; margin: 0 auto 126px; overflow: hidden; background: var(--mist); }
.gallery-callout > img { width: 100%; min-height: 405px; height: 100%; object-fit: cover; }
.gallery-callout > div { padding: 74px 70px; }
.gallery-callout h2 { margin-bottom: 22px; }
.gallery-callout p { max-width: 390px; margin-bottom: 27px; color: var(--muted); font-size: 13px; line-height: 1.82; }

.testimonial-page__intro { display: flex; align-items: end; justify-content: space-between; gap: 42px; }
.review-score { min-width: 145px; padding: 19px 0 19px 29px; border-left: 1px solid var(--line); }
.review-score .stars { margin-bottom: 10px; }
.review-score strong { display: block; color: var(--brand-ink); font-family: var(--display); font-size: 45px; letter-spacing: -0.06em; line-height: 0.82; }
.review-score p { margin: 6px 0 0; color: var(--muted); font-size: 12px; }
.review-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 17px; margin-top: 66px; }
.review-grid article { min-height: 286px; padding: 30px; background: var(--mist); }
.review-grid article.review-grid__featured { background: var(--brand); }
.review-grid article > span { display: block; color: var(--accent-ink); font-family: var(--display); font-size: 65px; line-height: 0.65; }
.review-grid article.review-grid__featured > span { color: var(--accent); }
.review-grid .stars { margin: 16px 0; }
.review-grid blockquote { min-height: 97px; margin: 0; color: var(--brand-ink); font-family: var(--display); font-size: 24px; letter-spacing: -0.04em; line-height: 1.14; }
.review-grid article.review-grid__featured blockquote, .review-grid article.review-grid__featured p b { color: #fff; }
.review-grid p { display: flex; flex-direction: column; gap: 4px; margin: 22px 0 0; font-size: 12px; }
.review-grid p em { color: var(--muted); font-style: normal; }
.review-grid__featured p em { color: #c8e2df; }

/* Quote dialog + thank you */
.modal-backdrop { position: fixed; z-index: 90; inset: 0; display: flex; align-items: center; justify-content: center; overflow-y: auto; padding: 25px; background: rgba(3, 43, 51, 0.77); backdrop-filter: blur(8px); }
.quote-modal { position: relative; width: min(690px, 100%); padding: 47px; background: #fff; box-shadow: 0 35px 85px rgba(0, 25, 31, 0.34); }
.quote-modal__close { position: absolute; top: 13px; right: 18px; border: 0; padding: 0; background: transparent; color: var(--brand-ink); font-size: 35px; font-weight: 300; line-height: 1; }
.quote-modal h2 { margin-bottom: 16px; font-size: clamp(2.65rem, 4.8vw, 4.25rem); }
.quote-modal h2 em { color: var(--accent-ink); }
.quote-modal > p:not(.eyebrow) { max-width: 515px; margin-bottom: 29px; color: var(--muted); font-size: 14px; line-height: 1.78; }
.quote-modal form { display: grid; gap: 17px; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.quote-modal label { display: grid; gap: 7px; color: #3e6871; font-size: 11px; font-weight: 700; letter-spacing: 0.09em; text-transform: uppercase; }
.quote-modal input, .quote-modal textarea, .quote-modal select { width: 100%; border: 1px solid rgba(8, 103, 120, 0.3); border-radius: 0; padding: 12px; background: #fff; color: var(--brand-ink); font-family: var(--body); font-size: 15px; letter-spacing: 0; text-transform: none; }
.quote-modal input:focus, .quote-modal textarea:focus, .quote-modal select:focus { outline: 2px solid var(--accent); outline-offset: 1px; }
.quote-modal textarea { min-height: 84px; resize: vertical; }
.quote-modal__submit { width: 100%; margin-top: 3px; }
.quote-modal form small { color: var(--muted); font-size: 11px; line-height: 1.5; text-align: center; }
.thank-you { position: relative; display: flex; min-height: 100vh; align-items: center; justify-content: center; overflow: hidden; padding: 72px 24px; background: var(--brand); color: #fff; }
.thank-you__orbit { position: absolute; border: 1px solid rgba(255, 255, 255, 0.25); border-radius: 50%; }
.thank-you__orbit--one { top: -22vw; left: -12vw; width: 58vw; height: 58vw; }
.thank-you__orbit--two { right: -14vw; bottom: -28vw; width: 64vw; height: 64vw; border-color: rgba(245, 162, 8, 0.63); }
.thank-you article { position: relative; z-index: 1; width: min(670px, 100%); padding: 68px 54px; border: 1px solid rgba(255, 255, 255, 0.3); background: rgba(5, 84, 98, 0.65); text-align: center; }
.thank-you article > span { display: flex; width: 58px; height: 58px; align-items: center; justify-content: center; margin: 0 auto 25px; border: 1px solid var(--accent); border-radius: 50%; color: var(--accent); font-size: 25px; }
.thank-you .eyebrow { justify-content: center; }
.thank-you h1 { margin-bottom: 18px; }
.thank-you article > p:not(.eyebrow) { max-width: 465px; margin: 0 auto; color: #d1e8e6; font-size: 14px; line-height: 1.8; }
.thank-you__actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 18px 26px; margin-top: 33px; }

/* Motion */
[data-reveal] { opacity: 0; transform: translateY(22px); transition: opacity 0.7s ease, transform 0.7s var(--ease); }
[data-reveal].is-visible { opacity: 1; transform: none; }

@media (max-width: 1040px) {
  .container { width: min(100% - 54px, 900px); }
  .site-nav { gap: 18px; }
  .header__phone { display: none; }
  .hero__layout { gap: 4%; }
  .hero__main-photo { width: 75%; }
  .section-heading { gap: 52px; }
  .wellbeing-band__layout { gap: 52px; }
  .specialty-section__layout, .featured-review, .metrics-band__layout { gap: 7%; }
  .service-note__layout { gap: 32px; }
  .gallery-callout > div { padding: 61px 47px; }
}

@media (max-width: 780px) {
  :root { --header-height: 64px; }
  .container { width: calc(100% - 40px); }
  .section { padding: 86px 0; }
  .site-header { height: var(--header-height); }
  .logo img { width: 142px; }
  .site-nav { position: fixed; z-index: 28; top: var(--header-height); right: 0; left: 0; visibility: hidden; flex-direction: column; align-items: stretch; gap: 0; padding: 18px 20px 25px; border-bottom: 1px solid rgba(255, 255, 255, 0.18); background: var(--brand-ink); box-shadow: 0 17px 34px rgba(0, 27, 33, 0.28); opacity: 0; transform: translateY(-14px); transition: opacity 0.24s var(--ease), transform 0.24s var(--ease), visibility 0.24s; }
  .site-nav.is-open { visibility: visible; opacity: 1; transform: none; }
  .site-nav button { width: 100%; border-bottom: 1px solid rgba(255, 255, 255, 0.16); padding: 15px 0; color: #dcefed; font-size: 13px; text-align: left; }
  .site-nav button::after { top: 50%; right: auto; bottom: auto; width: 26px; transform: translateY(-50%) scaleX(0); }
  .site-nav button.is-active::after { transform: translateY(-50%) scaleX(1); }
  .site-nav__mobile-cta { display: flex; align-items: center; justify-content: space-between; margin-top: 19px; border: 0 !important; padding: 14px 15px !important; background: var(--accent) !important; color: var(--brand-ink) !important; }
  .site-nav__mobile-cta::after { display: none; }
  .header__actions { gap: 0; margin-left: auto; }
  .header__actions .button { display: none; }
  .menu-button { display: flex; width: 33px; flex-direction: column; gap: 6px; align-items: flex-end; border: 0; padding: 8px 0 8px 12px; background: transparent; }
  .menu-button i { display: block; width: 24px; height: 2px; background: #fff; transition: transform 0.2s ease; }
  .menu-button i:last-child { width: 16px; }
  .site-header:has(.site-nav.is-open) .menu-button i:first-child { transform: translateY(4px) rotate(45deg); }
  .site-header:has(.site-nav.is-open) .menu-button i:last-child { width: 24px; transform: translateY(-4px) rotate(-45deg); }

  h1 { font-size: clamp(3.4rem, 15.2vw, 5.5rem); }
  h2 { font-size: clamp(2.6rem, 12vw, 4rem); }
  .hero::before { top: -30vw; right: -47vw; width: 112vw; height: 112vw; }
  .hero::after { right: -42vw; bottom: -53vw; width: 116vw; height: 116vw; }
  .hero__background img { object-position: 70% center; }
  .hero__background::after { background: linear-gradient(90deg, rgba(3, 47, 56, 0.97), rgba(3, 47, 56, 0.86) 58%, rgba(3, 47, 56, 0.35)), linear-gradient(180deg, rgba(3, 47, 56, 0.35), rgba(3, 47, 56, 0.34)); }
  .hero__mesh { background-size: 55px 55px; mask-image: linear-gradient(140deg, #000, transparent 78%); }
  .hero__layout { display: grid; min-height: calc(100svh - var(--header-height) - 43px); flex: 1 0 auto; grid-template-columns: 1fr; gap: 20px; align-items: center; padding: 44px 0 30px; }
  .hero__copy { max-width: 520px; }
  .hero__copy h1 { max-width: 350px; margin-bottom: 14px; font-size: clamp(2.5rem, 11vw, 3rem); line-height: 0.91; }
  .hero__copy > p:not(.eyebrow) { max-width: none; margin-bottom: 16px; font-size: 14px; line-height: 1.58; }
  .hero__actions { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 0.92fr); gap: 10px; align-items: stretch; }
  .hero__actions .button { min-height: 46px; gap: 7px; padding: 11px 12px; font-size: 11px; }
  .hero__actions .text-link { justify-content: center; padding: 10px 2px; font-size: 11px; line-height: 1.2; }
  .hero__availability { gap: 9px; margin-top: 17px; }
  .hero__availability p { font-size: 10px; line-height: 1.45; }
  .hero__visual { position: relative; right: auto; bottom: auto; left: auto; min-height: 205px; margin: 0; pointer-events: none; }
  .hero__brand-art { top: auto; right: -18px; bottom: -8px; width: 57%; opacity: 0.48; }
  .hero__main-photo { top: 0; right: 0; bottom: auto; width: 48%; padding: 5px; box-shadow: none; }
  .hero__main-photo img { height: 142px; }
  .hero__main-photo figcaption { display: block; padding: 6px 0 1px; }
  .hero__main-photo figcaption span { display: block; font-size: 9px; letter-spacing: 0.08em; line-height: 1.2; }
  .hero__main-photo figcaption b { display: block; margin-top: 2px; font-size: 14px; }
  .hero__before-after { bottom: 0; left: 13%; width: 29%; border-width: 4px; padding: 4px; }
  .hero__before-after img { height: 86px; }
  .hero__before-after figcaption { padding: 4px 0 0; font-size: 8px; letter-spacing: 0.07em; }
  .hero__metric { top: 23px; right: 1%; bottom: auto; width: 70px; height: 70px; }
  .hero__metric strong { font-size: 24px; }
  .hero__metric strong span { font-size: 11px; }
  .hero__metric > span { max-width: 49px; font-size: 8px; }
  .hero__bottom { justify-content: space-between; gap: 5px; min-height: 43px; padding: 8px 0; font-size: 8px; letter-spacing: 0.04em; }
  .hero__bottom > span { white-space: nowrap; }
  .hero__bottom b { display: none; }

  .section-heading, .transformation-section__intro, .wellbeing-band__layout, .specialty-section__layout, .metrics-band__layout, .featured-review, .faq-section, .about-story, .team-section, .footer__top { grid-template-columns: 1fr; gap: 27px; }
  .section-heading { margin-bottom: 40px; }
  .section-heading > p { margin: 0; }
  .service-grid { grid-template-columns: 1fr; gap: 16px; }
  .service-card { display: grid; grid-template-columns: 0.9fr 1.1fr; }
  .service-card__media { height: 100%; min-height: 218px; }
  .service-card__body { padding: 24px 20px; }
  .service-card__body p { min-height: auto; font-size: 14px; }
  .wellbeing-band { padding: 82px 0; }
  .wellbeing-band__layout { gap: 42px; }
  .wellbeing-band__copy { padding: 0; }
  .wellbeing-band__visuals { min-height: min(142vw, 620px); justify-items: center; }
  .wellbeing-band__visuals::before { top: 6%; right: 12%; width: 77%; height: 82%; transform: translate(13px, 13px); }
  .wellbeing-band__story-photo { width: min(100%, 430px); }
  .wellbeing-band__story-photo img { height: min(125vw, 560px); }
  .transformation-section__intro { margin-bottom: 37px; }
  .transformation-grid { grid-template-columns: 1fr 1fr; grid-auto-rows: 210px; gap: 10px; }
  .transformation-card--1 { grid-row: span 2; }
  .transformation-card--4 { grid-column: span 1; }
  .transformation-grid__cta { grid-column: span 2; min-height: 190px; }
  .specialty-section { padding: 84px 0; }
  .specialty-section__photo { min-height: 395px; }
  .specialty-section__photo img { min-height: 395px; }
  .metrics-band { padding: 76px 0; }
  .metrics-list { grid-template-columns: 1fr; }
  .metrics-list > div { display: flex; min-height: unset; align-items: center; gap: 17px; padding: 17px 0; border-right: 0; border-bottom: 1px solid rgba(255, 255, 255, 0.3); }
  .metrics-list > div:last-child { border-bottom: 0; }
  .metrics-list p { max-width: none; margin: 0; }
  .video-grid { grid-template-columns: 1fr; gap: 14px; }
  .video-card--2 .video-card__frame, .video-card--3 .video-card__frame { aspect-ratio: 16 / 10; }
  .featured-review article { padding: 31px 0 0 50px; border-left: 0; border-top: 1px solid var(--line); }
  .quote-mark { top: 27px; left: 0; font-size: 54px; }
  .featured-review blockquote { font-size: 2rem; }
  .faq-section { padding-top: 76px; }
  .cta-band { padding: 66px 0; }
  .cta-band__layout { align-items: flex-start; flex-direction: column; }
  .cta-band .button { width: 100%; }
  .footer__links { grid-template-columns: 1fr 1fr; gap: 33px 22px; }
  .footer__links > div:last-child { grid-column: span 2; }
  .footer__bottom { align-items: flex-start; flex-direction: column; gap: 8px; }

  .page-hero { min-height: calc(100svh - var(--header-height)); align-items: center; }
  .page-hero__image img, .page-hero--services .page-hero__image img, .page-hero--about .page-hero__image img, .page-hero--gallery .page-hero__image img, .page-hero--testimonials .page-hero__image img { object-position: 66% center; }
  .page-hero--testimonials .page-hero__image img { object-position: 58% center; }
  .page-hero__overlay { background: linear-gradient(90deg, rgba(3, 47, 56, 0.96), rgba(5, 65, 76, 0.81) 62%, rgba(5, 65, 76, 0.38)); }
  .page-hero__content { padding: 78px 0 72px; }
  .page-hero__content > p:not(.eyebrow) { font-size: 15px; }
  .service-stories { margin-top: 46px; }
  .service-stories article, .service-stories article.is-reversed { min-height: unset; grid-template-columns: 1fr; gap: 30px; margin-bottom: 64px; direction: ltr; }
  .service-stories__media { height: 350px; }
  .service-note { padding: 51px 0; }
  .service-note__layout { grid-template-columns: 1fr; gap: 21px; }
  .about-story__portrait { min-height: 450px; }
  .about-story__portrait > img { height: 421px; }
  .about-story__portrait > div { min-height: 95px; padding: 17px; }
  .about-story__portrait b { font-size: 16px; }
  .values-section { padding: 78px 0; }
  .values-section .section-heading { margin-bottom: 36px; }
  .values-grid { grid-template-columns: 1fr; }
  .values-grid article, .values-grid article:first-child { min-height: unset; padding: 22px 0; border-right: 0; border-bottom: 1px solid rgba(255, 255, 255, 0.28); }
  .values-grid article:last-child { border-bottom: 0; }
  .values-grid h3 { margin: 21px 0 9px; }
  .team-grid { gap: 8px; }
  .team-grid p { padding: 10px 7px 12px; font-size: 11px; }
  .gallery-page__intro { align-items: flex-start; flex-direction: column; gap: 28px; margin-bottom: 35px; }
  .filter-list { justify-content: flex-start; }
  .gallery-grid { grid-template-columns: 1fr; }
  .gallery-grid article, .gallery-grid article.gallery-grid__large { min-height: 300px; grid-column: auto; }
  .gallery-callout { grid-template-columns: 1fr; margin-bottom: 84px; }
  .gallery-callout > img { min-height: 320px; }
  .gallery-callout > div { padding: 44px 23px; }
  .testimonial-page__intro { align-items: flex-start; flex-direction: column; }
  .review-score { min-width: 0; padding: 0; border-left: 0; }
  .review-grid { grid-template-columns: 1fr; margin-top: 38px; }
  .review-grid blockquote { min-height: auto; }
  .quote-modal { padding: 37px 21px 25px; }
  .form-row { grid-template-columns: 1fr; gap: 17px; }
  .thank-you article { padding: 51px 21px; }
  .thank-you__actions { flex-direction: column; gap: 20px; }
  .thank-you .button { width: 100%; }
}

@media (max-width: 430px) {
  .container { width: calc(100% - 32px); }
  .hero__background img { object-position: 72% center; }
  .hero__layout { min-height: calc(100svh - var(--header-height) - 43px); padding: 34px 0 26px; }
  .hero__copy h1 { font-size: clamp(2.35rem, 10.8vw, 2.9rem); }
  .hero__visual { min-height: 198px; }
  .hero__before-after { left: 11%; width: 31%; }
  .hero__main-photo { width: 49%; }
  .hero__main-photo img { height: 134px; }
  .hero__metric { top: 20px; right: 1%; }
  .service-card { grid-template-columns: 1fr; }
  .service-card__media { height: 234px; }
  .transformation-grid { grid-auto-rows: 188px; }
  .transformation-card { padding: 14px; }
  .transformation-card b { font-size: 20px; }
  .transformation-card span { top: 14px; left: 14px; font-size: 9px; }
  .footer__links { grid-template-columns: 1fr; }
  .footer__links > div:last-child { grid-column: auto; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
  [data-reveal] { opacity: 1; transform: none; }
}

/* Static HTML package enhancements */
body.modal-open { overflow: hidden; }
[hidden] { display: none !important; }
.site-nav a { position: relative; border: 0; padding: 7px 0; background: transparent; color: #d6e9e8; font-size: 12px; font-weight: 700; transition: color 0.2s ease; }
.site-nav a::after { position: absolute; right: 0; bottom: 0; left: 0; height: 2px; background: var(--accent); content: ""; opacity: 0; transform: scaleX(0); transition: opacity 0.2s ease, transform 0.2s ease; }
.site-nav a:hover, .site-nav a.active { color: #fff; }
.site-nav a.active::after { opacity: 1; transform: scaleX(1); }
.logo { text-decoration: none; }
.logo:focus-visible { outline: 3px solid var(--accent); outline-offset: 4px; }
.quote-modal__close { cursor: pointer; }
.quote-modal input:invalid:not(:placeholder-shown), .quote-modal textarea:invalid:not(:placeholder-shown), .quote-modal select:invalid { border-color: #b73830; }
.form-status { min-height: 20px; margin: 0; color: var(--brand); font-size: 12px; font-weight: 700; text-align: center; }
.contact-page { display: grid; grid-template-columns: 0.78fr 1.22fr; gap: 10%; align-items: start; }
.contact-page__copy > p:not(.eyebrow) { max-width: 380px; margin: 22px 0 30px; color: var(--muted); font-size: 14px; line-height: 1.85; }
.contact-list { display: grid; gap: 14px; margin: 0; padding: 0; list-style: none; }
.contact-list li { padding: 16px 0; border-top: 1px solid var(--line); color: var(--muted); font-size: 13px; }
.contact-list strong { display: block; margin-bottom: 4px; color: var(--brand-ink); font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; }
.contact-list a:hover { color: var(--brand); }
.contact-card { padding: clamp(25px, 5vw, 50px); background: var(--mist); }
.contact-card h2 { margin-bottom: 15px; }
.contact-card > p { max-width: 520px; margin-bottom: 27px; color: var(--muted); font-size: 14px; line-height: 1.8; }
.contact-card .quote-modal { width: auto; padding: 0; background: transparent; box-shadow: none; }
.contact-card .quote-modal > .eyebrow, .contact-card .quote-modal > h2, .contact-card .quote-modal > p { display: none; }
.legal-page { max-width: 830px; }
.legal-page h1 { max-width: 760px; margin-bottom: 30px; font-size: clamp(3rem, 5.8vw, 5.7rem); }
.legal-page h2 { margin: 50px 0 16px; font-size: clamp(2rem, 3vw, 3rem); }
.legal-page p, .legal-page li { color: var(--muted); font-size: 14px; line-height: 1.85; }
.legal-page ul { display: grid; gap: 8px; padding-left: 20px; }
.js [data-reveal] { opacity: 0; transform: translateY(22px); transition: opacity 0.7s ease, transform 0.7s var(--ease); }
.js [data-reveal].is-visible { opacity: 1; transform: none; }
html:not(.js) [data-reveal] { opacity: 1; transform: none; }

@media (max-width: 780px) {
  .site-nav a { width: 100%; border-bottom: 1px solid rgba(255, 255, 255, 0.16); padding: 15px 0; color: #dcefed; font-size: 13px; text-align: left; }
  .site-nav a::after { top: 50%; right: auto; bottom: auto; width: 26px; transform: translateY(-50%) scaleX(0); }
  .site-nav a.active::after { transform: translateY(-50%) scaleX(1); }
  .contact-page { grid-template-columns: 1fr; gap: 35px; }
  .legal-page h1 { font-size: clamp(2.65rem, 12vw, 4rem); }
}

/* Premium full-viewport heroes + testimonials experience */
:root { --viewport-hero: calc(100svh - var(--header-height)); }
@supports (height: 100dvh) {
  :root { --viewport-hero: calc(100dvh - var(--header-height)); }
}
.hero, .page-hero, .not-found { min-height: var(--viewport-hero); }
.page-hero { isolation: isolate; align-items: center; }
.page-hero__image img { transform: scale(1.018); transform-origin: center; }
.page-hero__overlay { background: linear-gradient(90deg, rgba(3, 59, 70, 0.97) 0%, rgba(3, 70, 82, 0.85) 41%, rgba(3, 63, 74, 0.53) 69%, rgba(3, 47, 56, 0.19) 100%), linear-gradient(0deg, rgba(0, 27, 33, 0.34), transparent 58%); }
.page-hero__content { display: grid; align-content: center; padding: clamp(54px, 9vh, 126px) 0; }
.page-hero__content > p:not(.eyebrow) { max-width: 555px; }
.page-hero__cue { display: inline-flex; width: fit-content; align-items: center; gap: 11px; margin-top: 30px; color: #d4e9e7; font-size: 10px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; }
.page-hero__cue i { width: 34px; height: 1px; background: var(--accent); }
.page-hero--testimonials .page-hero__image img { object-position: 59% center; }

.testimonial-page { padding-bottom: 0; }
.testimonial-page__intro { padding-bottom: 8px; }
.review-share { display: grid; grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr); margin-top: 76px; overflow: hidden; border: 1px solid var(--line); background: #fff; box-shadow: 0 28px 68px rgba(4, 57, 67, 0.1); }
.review-share__copy { position: relative; display: flex; min-height: 495px; flex-direction: column; align-items: flex-start; justify-content: center; overflow: hidden; padding: clamp(38px, 5.2vw, 74px); background: var(--brand-ink); color: #fff; }
.review-share__copy::before, .review-share__copy::after { position: absolute; border: 1px solid rgba(255, 255, 255, 0.18); border-radius: 50%; content: ""; pointer-events: none; }
.review-share__copy::before { top: -23%; right: -16%; width: 330px; height: 330px; }
.review-share__copy::after { bottom: -36%; left: -25%; width: 380px; height: 380px; border-color: rgba(245, 162, 8, 0.58); }
.review-share__copy > * { position: relative; z-index: 1; }
.review-share__mark { display: grid; width: 43px; height: 43px; place-items: center; margin-bottom: 32px; border: 1px solid rgba(245, 162, 8, 0.75); border-radius: 50%; color: var(--accent); font-size: 17px; }
.review-share__copy h2 { max-width: 475px; margin-bottom: 21px; font-size: clamp(2.7rem, 4.5vw, 4.7rem); }
.review-share__copy h2 em { color: var(--accent); }
.review-share__copy > p:not(.eyebrow) { max-width: 430px; margin-bottom: 28px; color: #d2e8e7; font-size: 14px; line-height: 1.82; }
.review-share__note { max-width: 360px; padding-top: 18px; border-top: 1px solid rgba(255, 255, 255, 0.26); color: #bddbda; font-size: 11px; font-weight: 600; letter-spacing: 0.035em; line-height: 1.65; }
.review-form { display: grid; align-content: center; gap: 19px; padding: clamp(34px, 5vw, 68px); background: #fff; }
.review-form__heading { display: flex; align-items: baseline; justify-content: space-between; gap: 18px; padding-bottom: 17px; border-bottom: 1px solid var(--line); }
.review-form__heading p { margin: 0; color: var(--brand-ink); font-family: var(--display); font-size: 25px; letter-spacing: -0.045em; line-height: 1; }
.review-form__heading span { color: var(--muted); font-size: 10px; font-weight: 700; letter-spacing: 0.08em; text-align: right; text-transform: uppercase; }
.review-form__fields { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }
.review-form > label, .review-form__fields > label { display: grid; gap: 8px; color: #3e6871; font-size: 10px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; }
.review-form label small { color: #7b979d; font-size: 8px; letter-spacing: 0.05em; }
.review-form input, .review-form textarea { width: 100%; border: 1px solid rgba(8, 103, 120, 0.28); padding: 12px 13px; background: #fff; color: var(--brand-ink); font-family: var(--body); font-size: 14px; font-weight: 400; letter-spacing: 0; text-transform: none; transition: border-color 0.2s ease, box-shadow 0.2s ease; }
.review-form input:focus, .review-form textarea:focus { border-color: var(--brand); outline: 0; box-shadow: 0 0 0 3px rgba(245, 162, 8, 0.2); }
.review-form textarea { min-height: 103px; resize: vertical; }
.rating-fieldset { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 0; border: 0; padding: 0; }
.rating-fieldset legend { color: #3e6871; font-size: 10px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; }
.rating-picker { display: flex; gap: 5px; }
.rating-picker label { position: relative; display: grid; width: 32px; height: 32px; place-items: center; border: 1px solid var(--line); background: #fff; color: #adc4c7; cursor: pointer; font-size: 18px; line-height: 1; transition: color 0.2s ease, border-color 0.2s ease, background 0.2s ease, transform 0.2s ease; }
.rating-picker label:hover { transform: translateY(-2px); }
.rating-picker label.is-active { border-color: rgba(245, 162, 8, 0.6); background: #fff7e8; color: var(--accent-ink); }
.rating-picker input { position: absolute; width: 1px; height: 1px; margin: -1px; clip: rect(0 0 0 0); clip-path: inset(50%); opacity: 0; overflow: hidden; white-space: nowrap; }
.rating-picker label:has(input:focus-visible) { outline: 3px solid var(--accent); outline-offset: 3px; }
.review-form__status { min-height: 18px; margin: -4px 0 0; color: var(--brand); font-size: 12px; font-weight: 700; line-height: 1.5; }
.review-form > small { color: var(--muted); font-size: 10px; line-height: 1.6; text-align: center; }

.reviews-showcase { padding-top: 118px; }
.reviews-showcase__heading { display: grid; grid-template-columns: 1fr 0.53fr; align-items: end; gap: 74px; margin-bottom: 63px; }
.reviews-showcase__heading > p { max-width: 390px; margin: 0 0 5px; color: var(--muted); font-size: 13px; line-height: 1.85; }
.review-wall { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; gap: 18px; }
.review-wall__column { display: grid; align-content: start; gap: 18px; }
.review-card { position: relative; overflow: hidden; padding: 26px 26px 23px; border: 1px solid var(--line); background: #f7faf9; box-shadow: 0 7px 0 rgba(8, 103, 120, 0.03); transition: opacity 0.7s ease, transform 0.7s var(--ease), border-color 0.25s ease, box-shadow 0.25s ease; }
.review-card::before { position: absolute; top: 0; left: 0; width: 100%; height: 3px; background: var(--accent); content: ""; transform: scaleX(0.2); transform-origin: left; transition: transform 0.3s var(--ease); }
.review-card.is-visible:hover { border-color: rgba(8, 103, 120, 0.37); box-shadow: 0 18px 34px rgba(4, 57, 67, 0.12); transform: translateY(-6px); }
.review-card.is-visible:hover::before { transform: scaleX(1); }
.review-card[data-reveal] { transition-delay: var(--reveal-delay, 0ms); }
.review-card__meta { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: #64888d; font-size: 9px; font-weight: 700; letter-spacing: 0.12em; line-height: 1.3; text-transform: uppercase; }
.review-card__meta .stars { color: var(--accent-ink); font-size: 11px; letter-spacing: 0.04em; }
.review-card__quote { display: block; height: 39px; margin: 18px 0 -8px; color: var(--accent-ink); font-family: var(--display); font-size: 65px; line-height: 0.78; }
.review-card blockquote { margin: 0; color: var(--brand-ink); font-family: var(--display); font-size: clamp(1.35rem, 1.72vw, 1.7rem); letter-spacing: -0.04em; line-height: 1.15; }
.review-card footer { display: flex; align-items: center; gap: 11px; margin-top: 23px; padding-top: 17px; border-top: 1px solid rgba(8, 103, 120, 0.14); }
.review-card__initial { display: grid; width: 29px; height: 29px; flex: 0 0 auto; place-items: center; border: 1px solid rgba(8, 103, 120, 0.28); border-radius: 50%; color: var(--brand); font-size: 10px; font-weight: 700; }
.review-card footer p { display: flex; flex-direction: column; gap: 3px; margin: 0; color: var(--brand-ink); font-size: 11px; }
.review-card footer em { color: var(--muted); font-size: 9px; font-style: normal; letter-spacing: 0.06em; text-transform: uppercase; }
.review-card--featured { background: var(--brand); box-shadow: 0 14px 0 rgba(5, 59, 69, 0.14); }
.review-card--featured::before { background: var(--accent); }
.review-card--featured .review-card__meta { color: #c7e1e0; }
.review-card--featured .review-card__meta .stars, .review-card--featured .review-card__quote { color: var(--accent); }
.review-card--featured blockquote, .review-card--featured footer p { color: #fff; }
.review-card--featured footer { border-color: rgba(255, 255, 255, 0.24); }
.review-card--featured .review-card__initial { border-color: rgba(245, 162, 8, 0.72); color: var(--accent); }
.review-card--featured footer em { color: #cae0df; }
.review-card--warm { background: #fff8eb; }

.review-closing { margin-top: 126px; padding: 87px 0; background: var(--brand); color: #fff; }
.review-closing__inner { display: grid; grid-template-columns: 1fr 0.58fr; align-items: end; gap: 85px; }
.review-closing h2 { max-width: 650px; }
.review-closing h2 em { color: var(--accent); }
.review-closing__inner > div:last-child { display: grid; justify-items: start; gap: 25px; }
.review-closing__inner > div:last-child p { max-width: 410px; margin: 0; color: #d0e7e5; font-size: 14px; line-height: 1.8; }

@media (max-width: 1040px) {
  .review-share { grid-template-columns: 0.84fr 1.16fr; }
  .review-wall { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .review-wall__column:last-child { grid-column: span 2; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .reviews-showcase__heading, .review-closing__inner { gap: 45px; }
}

@media (max-width: 780px) {
  .hero, .page-hero, .not-found { min-height: var(--viewport-hero); }
  .page-hero { align-items: center; }
  .page-hero__content { padding: 54px 0; }
  .page-hero__cue { margin-top: 23px; font-size: 9px; }
  .review-share { grid-template-columns: 1fr; margin-top: 50px; }
  .review-share__copy { min-height: 0; padding: 48px 28px; }
  .review-share__copy h2 { font-size: clamp(2.55rem, 12.5vw, 3.7rem); }
  .review-share__mark { margin-bottom: 25px; }
  .review-form { padding: 35px 25px; }
  .review-form__fields { grid-template-columns: 1fr; gap: 17px; }
  .rating-fieldset { align-items: flex-start; flex-direction: column; gap: 10px; }
  .reviews-showcase { padding-top: 86px; }
  .reviews-showcase__heading { grid-template-columns: 1fr; gap: 24px; margin-bottom: 39px; }
  .reviews-showcase__heading > p { margin: 0; }
  .review-wall, .review-wall__column, .review-wall__column:last-child { grid-template-columns: 1fr; gap: 14px; }
  .review-wall__column:last-child { grid-column: auto; }
  .review-card { padding: 23px 21px 20px; }
  .review-card blockquote { font-size: 1.45rem; }
  .review-closing { margin-top: 84px; padding: 68px 0; }
  .review-closing__inner { grid-template-columns: 1fr; gap: 29px; }
}

@media (max-width: 430px) {
  .page-hero__cue { gap: 8px; letter-spacing: 0.07em; }
  .page-hero__cue i { width: 23px; }
  .review-share__copy { padding: 42px 22px; }
  .review-form { padding: 30px 20px; }
  .review-form__heading { align-items: flex-start; flex-direction: column; gap: 7px; }
  .review-form__heading span { text-align: left; }
}

/* Final generated image placement */
.hero__background img { object-position: 61% center; }
.page-hero--services .page-hero__image img { object-position: 64% center; }
.page-hero--about .page-hero__image img { object-position: 63% center; }
.page-hero--gallery .page-hero__image img { object-position: 61% center; }
.page-hero--testimonials .page-hero__image img { object-position: 59% center; }

/* Complete content system: services, founder story and premium detail cards */
.service-card__body p { min-height: 0; }
.service-card__media img,
.service-stories__media img { filter: saturate(0.98) contrast(1.02); }

.founder-journey { padding-top: 0; }
.journey-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.journey-grid article,
.detail-card,
.process-grid article { position: relative; overflow: hidden; border: 1px solid var(--line); background: #fff; box-shadow: 0 12px 40px rgba(5, 60, 72, 0.055); }
.journey-grid article { min-height: 420px; padding: 30px 29px 32px; }
.journey-grid article::before,
.detail-card::before,
.process-grid article::before { position: absolute; top: 0; left: 0; width: 100%; height: 3px; background: var(--accent); content: ""; }
.journey-grid article > span,
.detail-card > span,
.process-grid article > span { display: inline-flex; margin-bottom: 34px; color: var(--accent-ink); font-size: 10px; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; }
.journey-grid h3,
.detail-card h3,
.process-grid h3 { margin-bottom: 16px; font-size: clamp(1.65rem, 2vw, 2.25rem); }
.journey-grid p,
.detail-card p,
.process-grid p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.82; }
.brand-motto { position: relative; margin: 28px 0 0; padding: clamp(30px, 5vw, 52px); background: var(--mist); color: var(--brand-ink); font-family: var(--display); font-size: clamp(1.85rem, 3.1vw, 3.3rem); letter-spacing: -0.045em; line-height: 1.08; }
.brand-motto::before { position: absolute; top: 0; left: 0; width: 4px; height: 100%; background: var(--accent); content: ""; }

.service-depth { padding-top: 0; }
.detail-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 18px; }
.detail-card { min-height: 385px; grid-column: span 2; padding: 30px 28px 31px; }
.detail-card--featured,
.detail-card--accent { grid-column: span 3; }
.detail-card--featured { background: var(--mist); }
.detail-card--accent { background: var(--brand); color: #fff; }
.detail-card--accent h3,
.detail-card--accent p { color: #fff; }
.detail-card--accent li { color: #d5e9e7; }
.detail-card p { margin-bottom: 22px; }
.detail-card ul { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.detail-card li { position: relative; padding-left: 18px; color: #41636a; font-size: 12px; font-weight: 600; line-height: 1.62; }
.detail-card li::before { position: absolute; top: 0.6em; left: 0; width: 6px; height: 6px; border-radius: 50%; background: var(--accent); content: ""; transform: translateY(-50%); }

.service-process-section { background: var(--brand-ink); color: #fff; }
.service-process__layout { display: grid; grid-template-columns: 0.72fr 1.28fr; align-items: start; gap: 8%; }
.service-process__layout > div:first-child p:not(.eyebrow) { max-width: 390px; margin: 23px 0 0; color: #cfe5e3; font-size: 14px; line-height: 1.82; }
.service-process__layout h2 em { color: var(--accent); }
.process-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.process-grid article { min-height: 210px; padding: 27px 25px 28px; background: rgba(255, 255, 255, 0.07); border-color: rgba(255, 255, 255, 0.2); box-shadow: none; }
.process-grid article > span { margin-bottom: 29px; color: var(--accent); }
.process-grid h3 { color: #fff; font-size: clamp(1.45rem, 1.8vw, 2rem); }
.process-grid p { color: #cfe5e3; }
.payment-strip { grid-column: 2; display: flex; flex-wrap: wrap; align-items: center; gap: 11px; margin-top: 18px; padding-top: 24px; border-top: 1px solid rgba(255, 255, 255, 0.22); }
.payment-strip span { margin-right: 10px; color: #cfe5e3; font-size: 10px; font-weight: 800; letter-spacing: 0.13em; text-transform: uppercase; }
.payment-strip b { display: inline-flex; min-height: 38px; align-items: center; border: 1px solid rgba(245, 162, 8, 0.6); padding: 9px 13px; color: var(--accent); font-size: 12px; letter-spacing: 0.04em; text-transform: uppercase; }

@media (max-width: 780px) {
  .hero__background img { object-position: 72% center; }
  .page-hero--services .page-hero__image img,
  .page-hero--about .page-hero__image img,
  .page-hero--gallery .page-hero__image img { object-position: 68% center; }
  .page-hero--testimonials .page-hero__image img { object-position: 57% center; }
  .page-hero__content { padding: max(54px, 8svh) 0; }
}

@media (max-width: 430px) {
  .hero__copy h1 { max-width: 330px; }
  .hero__copy > p:not(.eyebrow) { max-width: 330px; }
  .page-hero__content h1 { max-width: 340px; }
  .page-hero__content > p:not(.eyebrow) { max-width: 330px; }
}

@media (max-width: 1040px) {
  .journey-grid { grid-template-columns: 1fr; }
  .journey-grid article { min-height: 0; }
  .detail-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .detail-card,
  .detail-card--featured,
  .detail-card--accent { grid-column: auto; }
  .service-process__layout { grid-template-columns: 1fr; gap: 42px; }
  .payment-strip { grid-column: auto; }
}

@media (max-width: 780px) {
  .founder-journey { padding-top: 0; }
  .brand-motto { margin-top: 18px; }
  .detail-grid,
  .process-grid { grid-template-columns: 1fr; }
  .detail-card { min-height: 0; padding: 27px 22px; }
  .detail-card > span,
  .process-grid article > span,
  .journey-grid article > span { margin-bottom: 24px; }
  .service-process-section { padding: 78px 0; }
  .payment-strip { align-items: stretch; flex-direction: column; }
  .payment-strip span { margin-right: 0; }
  .payment-strip b { width: 100%; justify-content: center; }
}

/* Hero application guard: keeps generated imagery as background layers */
.hero { position: relative !important; display: grid !important; grid-template-rows: minmax(0, 1fr) auto; min-height: var(--viewport-hero) !important; overflow: hidden !important; background: var(--brand-ink) !important; }
.hero__background { position: absolute !important; inset: 0 !important; z-index: 0 !important; overflow: hidden !important; }
.hero__background img { display: block !important; width: 100% !important; height: 100% !important; object-fit: cover !important; object-position: 61% center !important; }
.hero__background::after { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(3, 47, 56, 0.97) 0%, rgba(3, 47, 56, 0.88) 29%, rgba(3, 47, 56, 0.47) 55%, rgba(3, 47, 56, 0.08) 100%), linear-gradient(180deg, rgba(3, 47, 56, 0.22), rgba(3, 47, 56, 0.34)); content: ""; }
.hero__mesh, .hero__layout, .hero__bottom { position: relative; z-index: 2; }
.hero__layout { min-height: 0 !important; grid-template-columns: minmax(0, 670px) !important; align-items: center !important; align-content: center; }
.hero__visual { display: none !important; }
.page-hero { position: relative !important; min-height: var(--viewport-hero) !important; overflow: hidden !important; }
.page-hero__image { position: absolute !important; inset: 0 !important; }
.page-hero__image img { display: block !important; width: 100% !important; height: 100% !important; object-fit: cover !important; }

@media (max-width: 780px) {
  .hero__background img { object-position: 72% center !important; }
  .hero__layout { min-height: calc(var(--viewport-hero) - 43px) !important; }
  .hero__background::after { background: linear-gradient(90deg, rgba(3, 47, 56, 0.98), rgba(3, 47, 56, 0.89) 59%, rgba(3, 47, 56, 0.44)), linear-gradient(180deg, rgba(3, 47, 56, 0.32), rgba(3, 47, 56, 0.36)); }
}

/* Premium interaction layer — deliberately subtle, tactile and accessible */
:root {
  --premium-shadow: 0 18px 46px rgba(0, 28, 35, 0.24);
  --premium-shadow-soft: 0 14px 32px rgba(4, 57, 67, 0.1);
  --premium-highlight: rgba(255, 255, 255, 0.16);
}

html { scroll-padding-top: calc(var(--header-height) + 22px); }
body { text-rendering: optimizeLegibility; }
::selection { background: var(--accent); color: var(--brand-ink); }

/* Header: a refined glass surface with a discrete lower shadow that deepens on scroll. */
.site-header {
  position: sticky;
  isolation: isolate;
  border-bottom-color: rgba(255, 255, 255, 0.12);
  background: linear-gradient(104deg, rgba(3, 47, 56, 0.94), rgba(4, 65, 76, 0.87));
  box-shadow: 0 6px 18px rgba(0, 27, 33, 0.14);
  backdrop-filter: saturate(1.16) blur(19px);
  -webkit-backdrop-filter: saturate(1.16) blur(19px);
  transition: background 360ms var(--ease), border-color 360ms var(--ease), box-shadow 360ms var(--ease), backdrop-filter 360ms var(--ease);
}
.site-header::before {
  position: absolute;
  z-index: -1;
  top: 0;
  right: 0;
  left: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.34), transparent);
  content: "";
  opacity: 0.64;
  pointer-events: none;
}
.site-header::after {
  position: absolute;
  z-index: -1;
  right: 4%;
  bottom: -13px;
  left: 4%;
  height: 15px;
  border-radius: 50%;
  background: rgba(0, 29, 35, 0.42);
  content: "";
  filter: blur(13px);
  opacity: 0.22;
  pointer-events: none;
  transform: translateY(-7px) scaleX(0.92);
  transition: opacity 360ms var(--ease), transform 360ms var(--ease);
}
.site-header.is-scrolled,
.site-header.is-menu-open {
  border-bottom-color: rgba(255, 255, 255, 0.2);
  background: linear-gradient(104deg, rgba(3, 43, 51, 0.98), rgba(4, 65, 76, 0.95));
  box-shadow: var(--premium-shadow);
}
.site-header.is-scrolled::after,
.site-header.is-menu-open::after { opacity: 0.68; transform: translateY(0) scaleX(1); }
.header__inner { position: relative; z-index: 1; }
.logo img { transform-origin: left center; transition: filter 280ms var(--ease), transform 280ms var(--ease); }
.logo:hover img { filter: drop-shadow(0 3px 9px rgba(0, 0, 0, 0.22)); transform: translateY(-1px); }

.site-nav a,
.site-nav button {
  padding: 10px 0;
  letter-spacing: 0.015em;
  transition: color 220ms var(--ease), transform 220ms var(--ease);
}
.site-nav a::after,
.site-nav button::after {
  right: -3px;
  bottom: 3px;
  left: -3px;
  height: 1px;
  border-radius: 999px;
  box-shadow: 0 1px 7px rgba(245, 162, 8, 0.72);
  transform-origin: left center;
  transition: opacity 240ms var(--ease), transform 300ms var(--ease);
}
.site-nav a:hover,
.site-nav button:hover { color: #fff; transform: translateY(-1px); }
.site-nav a:hover::after,
.site-nav button:hover::after { opacity: 0.86; transform: scaleX(1); }
.site-nav a.active::after,
.site-nav button.is-active::after { opacity: 1; transform: scaleX(1); }
.header__phone { position: relative; transition: color 220ms var(--ease), transform 220ms var(--ease); }
.header__phone::after { position: absolute; right: 0; bottom: -5px; left: 0; height: 1px; background: var(--accent); content: ""; opacity: 0; transform: scaleX(0.58); transform-origin: left; transition: opacity 220ms var(--ease), transform 220ms var(--ease); }
.header__phone:hover { color: #fff; transform: translateY(-1px); }
.header__phone:hover::after { opacity: 0.8; transform: scaleX(1); }

.button {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.13) inset, 0 8px 17px rgba(1, 44, 53, 0.12);
  transition: background 250ms var(--ease), color 250ms var(--ease), border-color 250ms var(--ease), box-shadow 300ms var(--ease), transform 250ms var(--ease);
}
.button::before {
  position: absolute;
  z-index: -1;
  top: -40%;
  bottom: -40%;
  left: -68%;
  width: 42%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.31), transparent);
  content: "";
  opacity: 0;
  pointer-events: none;
  transform: skewX(-18deg);
  transition: left 550ms var(--ease), opacity 250ms ease;
}
.button:hover { box-shadow: 0 1px 0 rgba(255, 255, 255, 0.22) inset, 0 15px 26px rgba(1, 44, 53, 0.23); transform: translateY(-2px); }
.button:hover::before { left: 132%; opacity: 1; }
.button:active { box-shadow: 0 1px 0 rgba(0, 0, 0, 0.12) inset; transform: translateY(0) scale(0.985); }
.button--accent { box-shadow: 0 1px 0 rgba(255, 255, 255, 0.34) inset, 0 12px 22px rgba(119, 70, 0, 0.19); }
.button--accent:hover { box-shadow: 0 1px 0 rgba(255, 255, 255, 0.42) inset, 0 17px 29px rgba(119, 70, 0, 0.28); }
.text-link { transition: color 220ms var(--ease), gap 260ms var(--ease), transform 220ms var(--ease); }
.text-link span { display: inline-block; transition: transform 260ms var(--ease); }
.text-link:hover { transform: translateX(2px); }
.text-link:hover span { transform: translate(3px, -1px); }

/* Surface depth: material changes are felt only on direct interaction. */
.service-card,
.video-card,
.transformation-card,
.gallery-grid article,
.journey-grid article,
.detail-card,
.process-grid article,
.review-card {
  transform: translateZ(0);
  transition: border-color 300ms var(--ease), box-shadow 340ms var(--ease), transform 340ms var(--ease), background 300ms var(--ease);
}
.service-card:hover,
.service-card:focus-within { border-color: rgba(8, 103, 120, 0.38); box-shadow: 0 26px 50px rgba(4, 57, 67, 0.14); transform: translateY(-6px); }
.service-card__media::after { opacity: 0.84; transition: opacity 420ms var(--ease); }
.service-card:hover .service-card__media::after { opacity: 0.52; }
.service-card__media img,
.service-stories__media img,
.gallery-grid img,
.transformation-card img,
.specialty-section__photo img,
.wellbeing-band__story-photo img { transition: transform 820ms cubic-bezier(0.16, 1, 0.3, 1), filter 500ms var(--ease); }
.service-card:hover .service-card__media img,
.service-stories article:hover .service-stories__media img,
.gallery-grid article:hover img,
.transformation-card:hover img,
.specialty-section__photo:hover img,
.wellbeing-band__story-photo:hover img { filter: saturate(1.04) contrast(1.02); transform: scale(1.055); }
.video-card:hover { border-color: rgba(8, 103, 120, 0.42); box-shadow: var(--premium-shadow-soft); transform: translateY(-4px); }
.video-card__frame { overflow: hidden; }
.video-card iframe { transition: transform 500ms var(--ease); }
.video-card:hover iframe { transform: scale(1.012); }
.gallery-grid article:hover,
.transformation-card:hover { box-shadow: 0 22px 42px rgba(4, 57, 67, 0.19); transform: translateY(-4px); }
.journey-grid article:hover,
.detail-card:hover { border-color: rgba(8, 103, 120, 0.35); box-shadow: 0 20px 42px rgba(4, 57, 67, 0.1); transform: translateY(-4px); }
.process-grid article:hover { border-color: rgba(245, 162, 8, 0.72); background: rgba(255, 255, 255, 0.11); transform: translateY(-3px); }
.review-card.is-visible:hover { transform: translateY(-5px); }

/* Form and accordion states retain a calm, premium rhythm. */
.quote-modal input,
.quote-modal textarea,
.quote-modal select,
.review-form input,
.review-form textarea {
  transition: border-color 200ms var(--ease), box-shadow 200ms var(--ease), background 200ms var(--ease), transform 200ms var(--ease);
}
.quote-modal input:focus,
.quote-modal textarea:focus,
.quote-modal select:focus,
.review-form input:focus,
.review-form textarea:focus { background: #fffefa; box-shadow: 0 0 0 4px rgba(245, 162, 8, 0.16); transform: translateY(-1px); }
.faq-list details { transition: background 240ms var(--ease), border-color 240ms var(--ease); }
.faq-list details[open] { background: linear-gradient(90deg, rgba(237, 245, 243, 0.66), rgba(255, 255, 255, 0)); }
.faq-list details[open] summary { color: var(--brand); }
.faq-list details[open] p { animation: faq-content-in 340ms var(--ease) both; }
@keyframes faq-content-in { from { opacity: 0; transform: translateY(-5px); } to { opacity: 1; transform: translateY(0); } }

/* The quote form now fades and scales into place instead of appearing abruptly. */
.modal-backdrop { opacity: 0; visibility: hidden; transition: opacity 240ms var(--ease), visibility 0s linear 240ms; }
.modal-backdrop.is-open { opacity: 1; visibility: visible; transition: opacity 240ms var(--ease); }
.quote-modal { opacity: 0; transform: translateY(14px) scale(0.982); transition: opacity 260ms var(--ease), transform 340ms cubic-bezier(0.16, 1, 0.3, 1); }
.modal-backdrop.is-open .quote-modal { opacity: 1; transform: translateY(0) scale(1); }

/* Layered entrance motion for content, with user motion preference respected. */
[data-reveal] { will-change: opacity, transform; transform: translate3d(0, 22px, 0); transition-delay: var(--reveal-delay, 0ms); }
[data-reveal].is-visible { will-change: auto; }
@media (prefers-reduced-motion: no-preference) {
  .hero__background img,
  .page-hero__image img { animation: premium-hero-breathe 18s ease-in-out infinite alternate; }
  @keyframes premium-hero-breathe { from { transform: scale(1.018); } to { transform: scale(1.045); } }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: 0.01ms !important; }
}

@media (max-width: 780px) {
  .site-header::after { right: 10%; left: 10%; }
  .site-nav a,
  .site-nav button { padding: 15px 0; }
  .site-nav a::after,
  .site-nav button::after { top: 50%; right: auto; bottom: auto; left: 0; width: 28px; transform: translateY(-50%) scaleX(0); }
  .site-nav a:hover::after,
  .site-nav button:hover::after,
  .site-nav a.active::after,
  .site-nav button.is-active::after { transform: translateY(-50%) scaleX(1); }
  .site-nav a:hover,
  .site-nav button:hover { transform: none; }
  .service-card:hover,
  .service-card:focus-within,
  .video-card:hover,
  .gallery-grid article:hover,
  .transformation-card:hover,
  .journey-grid article:hover,
  .detail-card:hover,
  .process-grid article:hover,
  .review-card.is-visible:hover { transform: none; }
}

/* Final accessibility refinements. */
body.menu-open { overflow: hidden; }

.about-story__portrait::before {
  position: absolute;
  z-index: 1;
  top: 20px;
  left: 20px;
  width: 37px;
  height: 37px;
  border-top: 1px solid rgba(255, 255, 255, 0.88);
  border-left: 1px solid rgba(255, 255, 255, 0.88);
  content: "";
  pointer-events: none;
}

.about-story__portrait > img {
  width: 88%;
  height: 560px;
  object-position: 48% 35%;
  filter: saturate(0.97) contrast(1.02);
}

.gallery-grid article { isolation: isolate; }

.gallery-grid__trigger {
  position: absolute;
  z-index: 3;
  inset: 0;
  display: grid;
  place-items: center;
  border: 0;
  background: rgba(3, 47, 56, 0);
  color: #fff;
  opacity: 0;
  transition: background 240ms var(--ease), opacity 240ms var(--ease);
}

.gallery-grid__trigger span {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  border: 1px solid rgba(255, 255, 255, 0.8);
  padding: 10px 13px;
  background: rgba(3, 47, 56, 0.56);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.11em;
  text-transform: uppercase;
  transform: translateY(7px);
  transition: transform 240ms var(--ease), background 240ms var(--ease);
}

.gallery-grid article:hover .gallery-grid__trigger,
.gallery-grid__trigger:focus-visible {
  background: rgba(3, 47, 56, 0.3);
  opacity: 1;
}

.gallery-grid article:hover .gallery-grid__trigger span,
.gallery-grid__trigger:focus-visible span {
  background: var(--brand-ink);
  transform: translateY(0);
}

.lightbox-backdrop {
  position: fixed;
  z-index: 95;
  inset: 0;
  display: grid;
  place-items: center;
  overflow-y: auto;
  padding: clamp(16px, 4vw, 42px);
  background: rgba(2, 29, 35, 0.88);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  opacity: 0;
  visibility: hidden;
  transition: opacity 240ms var(--ease), visibility 0s linear 240ms;
}

.lightbox-backdrop.is-open {
  opacity: 1;
  visibility: visible;
  transition: opacity 240ms var(--ease);
}

.gallery-lightbox {
  position: relative;
  display: grid;
  width: min(1100px, 100%);
  grid-template-columns: 50px minmax(0, 1fr) 50px;
  align-items: center;
  gap: clamp(8px, 1.5vw, 20px);
  color: #fff;
  opacity: 0;
  transform: translateY(12px) scale(0.985);
  transition: opacity 260ms var(--ease), transform 340ms cubic-bezier(0.16, 1, 0.3, 1);
}

.lightbox-backdrop.is-open .gallery-lightbox { opacity: 1; transform: translateY(0) scale(1); }

.gallery-lightbox figure { display: grid; justify-items: center; gap: 14px; max-width: 100%; margin: 0; }

.gallery-lightbox figure > img {
  width: auto;
  max-width: 100%;
  max-height: min(72svh, 720px);
  object-fit: contain;
  border: 1px solid rgba(255, 255, 255, 0.24);
  background: var(--brand-ink);
  box-shadow: 0 28px 70px rgba(0, 0, 0, 0.35);
}

.gallery-lightbox figcaption { width: min(100%, 720px); text-align: center; }
.gallery-lightbox figcaption span { display: block; margin-bottom: 6px; color: var(--accent); font-size: 10px; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; }
.gallery-lightbox figcaption b { display: block; font-family: var(--display); font-size: clamp(1.55rem, 3vw, 2.2rem); letter-spacing: -0.045em; line-height: 1; }
.gallery-lightbox figcaption p { margin: 9px auto 0; color: #cce5e3; font-size: 12px; line-height: 1.55; }

.gallery-lightbox__close,
.gallery-lightbox__nav {
  display: grid;
  min-width: 44px;
  min-height: 44px;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.42);
  background: rgba(3, 47, 56, 0.62);
  color: #fff;
  font-size: 22px;
  transition: border-color 200ms var(--ease), background 200ms var(--ease), color 200ms var(--ease), transform 200ms var(--ease);
}

.gallery-lightbox__close { position: absolute; z-index: 2; top: -2px; right: 0; font-size: 30px; font-weight: 300; line-height: 1; }
.gallery-lightbox__nav:hover,
.gallery-lightbox__close:hover { border-color: var(--accent); background: var(--accent); color: var(--brand-ink); transform: translateY(-2px); }

@media (max-width: 780px) {
  .about-story__portrait > img { width: 88%; height: 450px; }
  .gallery-grid__trigger { inset: auto 12px 12px auto; width: 44px; height: 44px; border: 1px solid rgba(255, 255, 255, 0.7); background: rgba(3, 47, 56, 0.68); opacity: 1; }
  .gallery-grid__trigger span { width: 100%; min-height: 100%; border: 0; padding: 0; background: transparent; color: transparent; font-size: 0; transform: none; }
  .gallery-grid__trigger span::before { color: #fff; content: "+"; font-size: 23px; font-weight: 400; }
  .gallery-lightbox { grid-template-columns: 1fr; gap: 12px; padding-top: 46px; }
  .gallery-lightbox figure > img { max-height: min(59svh, 580px); }
  .gallery-lightbox__close { top: 0; right: 0; }
  .gallery-lightbox__nav { position: absolute; z-index: 2; top: calc(50% - 22px); }
  .gallery-lightbox__nav--previous { left: 4px; }
  .gallery-lightbox__nav--next { right: 4px; }
}

@media (max-width: 430px) {
  .about-story__portrait > img { height: 400px; }
  .gallery-lightbox figcaption p { display: none; }
}

/* Refined navigation and language experience. */
html.has-refined-header { --header-height: 108px; }
html.has-refined-header .site-header.has-locale-utility {
  display: grid;
  height: var(--header-height);
  grid-template-rows: 29px minmax(0, 1fr);
  border-bottom-color: rgba(255, 255, 255, 0.14);
  background: linear-gradient(104deg, rgba(2, 43, 51, 0.98), rgba(5, 78, 89, 0.96));
}
.header-utility { border-bottom: 1px solid rgba(255, 255, 255, 0.12); background: rgba(0, 28, 35, 0.24); }
.header-utility__inner { display: grid; min-height: 29px; place-items: center; }
.header-utility p { margin: 0; color: #bcd8d8; font-size: 10px; font-weight: 600; letter-spacing: 0.035em; line-height: 1.2; }
html.has-refined-header .header__inner { height: auto; min-height: 0; gap: clamp(18px, 2.5vw, 32px); }
html.has-refined-header .logo img { width: clamp(164px, 12.6vw, 190px); }
html.has-refined-header .site-nav { gap: clamp(16px, 2vw, 31px); }
html.has-refined-header .site-nav a { color: #d6ecea; font-size: 11px; font-weight: 800; letter-spacing: 0.065em; text-transform: uppercase; }
html.has-refined-header .site-nav a.active { color: #fff; }
html.has-refined-header .site-nav a::after { right: 0; bottom: 2px; left: 0; background: linear-gradient(90deg, var(--accent), #ffd281); }
html.has-refined-header .header__actions { gap: 12px; margin-left: 0; }
html.has-refined-header .header__phone { padding: 10px 0; color: #e8f4f3; font-size: 11px; }
html.has-refined-header .header__actions > .button { min-height: 43px; padding: 11px 15px; font-size: 10px; letter-spacing: 0.055em; text-transform: uppercase; white-space: nowrap; }

.language-trigger {
  display: inline-flex;
  min-width: 62px;
  min-height: 43px;
  align-items: center;
  justify-content: center;
  gap: 7px;
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 999px;
  padding: 8px 11px;
  background: rgba(255, 255, 255, 0.06);
  color: #fff;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.08em;
  line-height: 1;
  transition: border-color 220ms var(--ease), background 220ms var(--ease), transform 220ms var(--ease), box-shadow 220ms var(--ease);
}
.language-trigger:hover,
.language-trigger[aria-expanded="true"] { border-color: rgba(245, 162, 8, 0.86); background: rgba(245, 162, 8, 0.13); box-shadow: 0 9px 22px rgba(0, 22, 28, 0.2); transform: translateY(-1px); }
.language-trigger__flag { font-size: 15px; line-height: 1; }
.language-trigger__code { min-width: 16px; }
.language-trigger__chevron { color: var(--accent); font-size: 15px; line-height: 0.6; transform: translateY(-1px); transition: transform 220ms var(--ease); }
.language-trigger[aria-expanded="true"] .language-trigger__chevron { transform: translateY(1px) rotate(180deg); }

@media (max-width: 1140px) {
  html.has-refined-header .site-nav { position: fixed; z-index: 48; top: var(--header-height); right: 0; left: 0; visibility: hidden; display: grid; grid-template-columns: 1fr; align-content: start; gap: 0; min-height: calc(100svh - var(--header-height)); padding: 27px max(24px, calc((100vw - 680px) / 2)) 36px; border-bottom: 1px solid rgba(255, 255, 255, 0.18); background: linear-gradient(145deg, rgba(2, 48, 57, 0.99), rgba(3, 34, 42, 0.99)); box-shadow: 0 25px 48px rgba(0, 19, 24, 0.34); opacity: 0; transform: translateY(-16px); transition: opacity 240ms var(--ease), transform 300ms var(--ease), visibility 0s linear 300ms; }
  html.has-refined-header .site-nav.is-open { visibility: visible; opacity: 1; transform: none; transition: opacity 240ms var(--ease), transform 300ms var(--ease); }
  html.has-refined-header .site-nav a { display: flex; min-height: 57px; align-items: center; border-bottom: 1px solid rgba(255, 255, 255, 0.13); padding: 13px 0; color: #edf7f6; font-family: var(--display); font-size: clamp(1.8rem, 4vw, 2.35rem); font-weight: 700; letter-spacing: -0.035em; text-transform: none; }
  html.has-refined-header .site-nav a::after { top: 50%; right: auto; bottom: auto; left: 0; width: 35px; height: 2px; transform: translateY(-50%) scaleX(0); }
  html.has-refined-header .site-nav a.active::after, html.has-refined-header .site-nav a:hover::after { transform: translateY(-50%) scaleX(1); }
  html.has-refined-header .site-nav__mobile-cta { display: flex; min-height: 52px; align-items: center; justify-content: space-between; margin-top: 24px; border: 1px solid var(--accent) !important; padding: 15px 18px !important; background: var(--accent) !important; color: var(--brand-ink) !important; font-size: 11px !important; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; }
  html.has-refined-header .site-nav__mobile-cta::after { display: none; }
  html.has-refined-header .header__phone { display: none; }
  html.has-refined-header .menu-button { display: flex; width: 40px; align-items: flex-end; border: 1px solid rgba(255, 255, 255, 0.28); border-radius: 50%; padding: 10px; background: rgba(255, 255, 255, 0.06); }
  html.has-refined-header .menu-button i { width: 18px; }
  html.has-refined-header .menu-button i:last-child { width: 12px; }
  html.has-refined-header .site-header.is-menu-open .menu-button i:first-child { width: 19px; transform: translateY(4px) rotate(45deg); }
  html.has-refined-header .site-header.is-menu-open .menu-button i:last-child { width: 19px; transform: translateY(-4px) rotate(-45deg); }
}

@media (max-width: 780px) {
  html.has-refined-header { --header-height: 68px; }
  html.has-refined-header .site-header.has-locale-utility { grid-template-rows: minmax(0, 1fr); }
  .header-utility { display: none; }
  html.has-refined-header .header__inner { min-height: var(--header-height); }
  html.has-refined-header .logo img { width: 145px; }
  html.has-refined-header .header__actions { gap: 8px; }
  html.has-refined-header .header__actions > .button { display: none; }
  .language-trigger { min-width: 41px; min-height: 41px; gap: 0; padding: 8px; }
  .language-trigger__code, .language-trigger__chevron { display: none; }
  .language-trigger__flag { font-size: 17px; }
}

@media (max-width: 430px) {
  .wellbeing-band__story-photo { padding: 5px; box-shadow: 13px 16px 0 rgba(0, 22, 29, 0.32), 0 22px 42px rgba(0, 12, 16, 0.28); }
  .wellbeing-band__story-photo::before { top: 14px; left: 14px; width: 28px; height: 28px; }
  .wellbeing-band__story-photo figcaption { right: 5px; bottom: 5px; left: 5px; padding: 35px 13px 13px; }
  .wellbeing-band__story-photo figcaption b { max-width: 190px; font-size: 1.62rem; }
}

/* Light editorial header and compact country selector. */
.site-header:not(.has-locale-utility) {
  border-bottom-color: rgba(7, 105, 119, 0.14);
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 12px 25px rgba(12, 72, 82, 0.1), 0 2px 5px rgba(12, 72, 82, 0.05);
}
.site-header:not(.has-locale-utility)::before { background: linear-gradient(90deg, transparent, rgba(7, 105, 119, 0.24), transparent); }
.site-header:not(.has-locale-utility)::after { background: rgba(7, 105, 119, 0.18); opacity: 0.28; }
.site-header:not(.has-locale-utility) .site-nav a,
.site-header:not(.has-locale-utility) .site-nav button,
.site-header:not(.has-locale-utility) .header__phone { color: #3d717b; }
.site-header:not(.has-locale-utility) .site-nav a:hover,
.site-header:not(.has-locale-utility) .site-nav button:hover,
.site-header:not(.has-locale-utility) .site-nav a.active { color: var(--brand); }
.site-header:not(.has-locale-utility) .header__phone span { color: #79a1a8; }
html.has-refined-header { --header-height: 110px; }
html.has-refined-header .site-header.has-locale-utility,
html.has-refined-header .site-header.is-scrolled,
html.has-refined-header .site-header.is-menu-open {
  display: grid;
  height: var(--header-height);
  grid-template-rows: 29px minmax(0, 1fr);
  border-bottom-color: rgba(7, 105, 119, 0.14);
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 14px 30px rgba(12, 72, 82, 0.1), 0 2px 6px rgba(12, 72, 82, 0.05);
  backdrop-filter: saturate(1.1) blur(18px);
  -webkit-backdrop-filter: saturate(1.1) blur(18px);
}
html.has-refined-header .site-header::before { background: linear-gradient(90deg, transparent, rgba(7, 105, 119, 0.26), transparent); opacity: 0.82; }
html.has-refined-header .site-header::after { right: 8%; bottom: -10px; left: 8%; height: 12px; background: rgba(7, 105, 119, 0.19); filter: blur(15px); opacity: 0.28; }
html.has-refined-header .site-header.is-scrolled::after,
html.has-refined-header .site-header.is-menu-open::after { opacity: 0.52; transform: translateY(0) scaleX(0.98); }
.header-utility { border-bottom-color: rgba(7, 105, 119, 0.1); background: rgba(246, 250, 250, 0.96); }
.header-utility p { color: #4b8894; font-size: 10px; font-weight: 700; letter-spacing: 0.04em; }
html.has-refined-header .header__inner { gap: clamp(18px, 2.5vw, 31px); }
html.has-refined-header .logo img { width: clamp(158px, 12vw, 184px); }
html.has-refined-header .site-nav { gap: clamp(15px, 1.8vw, 28px); }
html.has-refined-header .site-nav a,
html.has-refined-header .site-nav button { color: #3d717b; font-size: 10px; font-weight: 800; letter-spacing: 0.07em; text-transform: uppercase; }
html.has-refined-header .site-nav a:hover,
html.has-refined-header .site-nav button:hover,
html.has-refined-header .site-nav a.active,
html.has-refined-header .site-nav button.is-active { color: var(--brand); }
html.has-refined-header .site-nav a::after,
html.has-refined-header .site-nav button::after { background: linear-gradient(90deg, var(--accent), #ffc24c); box-shadow: 0 1px 6px rgba(242, 154, 15, 0.38); }
html.has-refined-header .header__actions { position: relative; gap: 11px; margin-left: 0; }
html.has-refined-header .header__phone { color: #1b5964; font-size: 10px; letter-spacing: 0.02em; }
html.has-refined-header .header__phone span { color: #79a1a8; }
html.has-refined-header .header__phone:hover { color: var(--brand); }
html.has-refined-header .header__actions > .button {
  min-height: 42px;
  border-color: var(--brand);
  border-radius: 11px;
  padding: 10px 16px;
  background: linear-gradient(130deg, #0b7482, #075f6d);
  box-shadow: 0 8px 15px rgba(7, 105, 119, 0.18), 0 1px 0 rgba(255, 255, 255, 0.24) inset;
  color: #fff;
  font-size: 10px;
  letter-spacing: 0.055em;
  text-transform: uppercase;
  white-space: nowrap;
}
html.has-refined-header .header__actions > .button:hover { border-color: #0c7483; background: #0a6c7a; box-shadow: 0 11px 20px rgba(7, 105, 119, 0.22); }

.language-control { position: relative; flex: 0 0 auto; }
.language-trigger {
  display: inline-flex;
  min-width: 60px;
  min-height: 42px;
  align-items: center;
  justify-content: center;
  gap: 6px;
  border: 1px solid rgba(7, 105, 119, 0.22);
  border-radius: 10px;
  padding: 8px 10px;
  background: rgba(255, 255, 255, 0.82);
  box-shadow: 0 5px 12px rgba(7, 105, 119, 0.07);
  color: var(--brand);
  font-size: 10px;
  font-weight: 850;
  letter-spacing: 0.07em;
  line-height: 1;
  transition: border-color 220ms var(--ease), background 220ms var(--ease), box-shadow 220ms var(--ease), transform 220ms var(--ease);
}
.language-trigger:hover,
.language-trigger[aria-expanded="true"] { border-color: rgba(7, 105, 119, 0.52); background: #fff; box-shadow: 0 8px 17px rgba(7, 105, 119, 0.13); transform: translateY(-1px); }
.language-trigger__flag { font-size: 16px; line-height: 1; }
.language-trigger__code { min-width: 14px; }
.language-trigger__chevron { color: var(--accent); font-size: 13px; line-height: 0.7; transition: transform 220ms var(--ease); }
.language-trigger[aria-expanded="true"] .language-trigger__chevron { transform: translateY(1px) rotate(180deg); }
.language-popover {
  position: absolute;
  z-index: 85;
  top: calc(100% + 10px);
  right: 0;
  width: 76px;
  border: 1px solid rgba(7, 105, 119, 0.17);
  border-radius: 12px;
  padding: 6px;
  background: rgba(255, 255, 255, 0.98);
  box-shadow: 0 20px 38px rgba(5, 60, 72, 0.18), 0 1px 0 rgba(255, 255, 255, 0.72) inset;
  opacity: 0;
  pointer-events: none;
  transform: translateY(-5px) scale(0.97);
  transform-origin: top right;
  transition: opacity 160ms var(--ease), transform 180ms var(--ease);
}
.language-popover.is-open { opacity: 1; pointer-events: auto; transform: none; }
.language-popover__options { display: grid; gap: 3px; }
.language-option {
  display: flex;
  min-height: 38px;
  align-items: center;
  justify-content: center;
  gap: 5px;
  border: 1px solid transparent;
  border-radius: 8px;
  padding: 6px;
  background: transparent;
  color: #3d717b;
  font-size: 10px;
  font-weight: 850;
  letter-spacing: 0.07em;
  line-height: 1;
  transition: background 180ms var(--ease), border-color 180ms var(--ease), color 180ms var(--ease), transform 180ms var(--ease);
}
.language-option:hover { border-color: rgba(7, 105, 119, 0.16); background: #f0f7f7; color: var(--brand); transform: translateX(-1px); }
.language-option.is-selected { border-color: rgba(242, 154, 15, 0.46); background: #fff7e7; color: var(--brand); }
.language-option__flag { display: inline; width: auto; height: auto; border-radius: 0; background: transparent; font-size: 16px; line-height: 1; }
.language-option__code { min-width: 15px; }

@media (max-width: 1140px) {
  html.has-refined-header .site-nav {
    border-bottom-color: rgba(7, 105, 119, 0.13);
    background: linear-gradient(155deg, rgba(255, 255, 255, 0.99), rgba(243, 249, 249, 0.99));
    box-shadow: 0 24px 42px rgba(5, 60, 72, 0.16);
  }
  html.has-refined-header .site-nav a { border-bottom-color: rgba(7, 105, 119, 0.11); color: var(--brand); }
  html.has-refined-header .site-nav a::after { background: var(--accent); }
  html.has-refined-header .site-nav__mobile-cta { border-color: var(--brand) !important; background: var(--brand) !important; color: #fff !important; box-shadow: 0 10px 21px rgba(7, 105, 119, 0.17); }
  html.has-refined-header .menu-button { border-color: rgba(7, 105, 119, 0.23); background: #fff; box-shadow: 0 5px 12px rgba(7, 105, 119, 0.08); }
  html.has-refined-header .menu-button i { background: var(--brand); }
}

@media (max-width: 780px) {
  html.has-refined-header { --header-height: 68px; }
  html.has-refined-header .site-header.has-locale-utility { grid-template-rows: minmax(0, 1fr); }
  .header-utility { display: none; }
  html.has-refined-header .header__inner { min-height: var(--header-height); }
  html.has-refined-header .logo img { width: 143px; }
  html.has-refined-header .header__actions { gap: 8px; }
  html.has-refined-header .header__actions > .button { display: none; }
  .language-trigger { min-width: 59px; min-height: 40px; gap: 5px; padding: 8px; }
  .language-trigger__code, .language-trigger__chevron { display: inline; }
  .language-trigger__flag { font-size: 15px; }
  .language-popover { top: calc(100% + 8px); width: 74px; }
}

/* The story imagery is treated as an editorial chapter, never as hero decoration. */
.wellbeing-band__story-photo img { object-position: 49% 42%; }
.about-story__portrait { isolation: isolate; }
.about-story__portrait::before { position: absolute; z-index: 2; top: 24px; left: -16px; width: 54%; height: 1px; background: linear-gradient(90deg, var(--accent), transparent); content: ""; pointer-events: none; }
.about-story__portrait > img { width: 91%; height: 570px; border: 1px solid rgba(7, 105, 119, 0.16); object-position: 49% 43%; box-shadow: 18px 24px 0 rgba(237, 245, 243, 0.94), 0 25px 48px rgba(5, 60, 72, 0.14); filter: saturate(0.96) contrast(1.02); }
.about-story__portrait > div { width: min(69%, 348px); min-height: 128px; padding: 24px; background: linear-gradient(130deg, #075d6b, #053c48); box-shadow: 0 16px 28px rgba(5, 60, 72, 0.19); color: #fff; }
.about-story__portrait span { color: #ffd27c; }
.about-story__portrait b { max-width: 240px; color: #fff; }

@media (max-width: 780px) {
  .about-story__portrait::before { top: 18px; left: -7px; width: 58%; }
  .about-story__portrait > img { width: 90%; height: 440px; object-position: 49% 42%; box-shadow: 12px 16px 0 rgba(237, 245, 243, 0.94), 0 20px 36px rgba(5, 60, 72, 0.12); }
  .about-story__portrait > div { min-height: 106px; padding: 18px; }
}

@media (max-width: 430px) {
  .about-story__portrait > img { height: 390px; }
  .about-story__portrait > div { width: 72%; }
}

/* Unified hero and page-lead typography: one premium scale, no clipped content. */
:root {
  --hero-title-size: clamp(2.55rem, 4.85vw, 5rem);
  --hero-title-line: 0.94;
  --hero-copy-size: clamp(0.9375rem, 1.05vw, 1rem);
  --hero-copy-line: 1.65;
  --hero-eyebrow-size: clamp(0.625rem, 0.66vw, 0.7rem);
  --hero-safe-top: clamp(3rem, 8svh, 7.5rem);
  --hero-safe-bottom: clamp(2.5rem, 6svh, 6rem);
}

.hero__layout,
.page-hero__content,
.not-found .container,
.thank-you article,
.contact-page__copy,
.legal-page { min-width: 0; }

.hero { grid-template-rows: minmax(max-content, 1fr) auto !important; }
.hero__layout,
.page-hero__content { min-block-size: 0; }

.hero__copy h1,
.page-hero__content h1,
.not-found h1,
.thank-you h1,
.contact-page__copy h1,
.legal-page h1 {
  max-width: min(100%, 11.6em);
  margin-bottom: clamp(14px, 1.45vw, 22px);
  font-size: var(--hero-title-size);
  line-height: var(--hero-title-line);
  letter-spacing: -0.055em;
  overflow-wrap: anywhere;
  text-wrap: balance;
}

.hero__copy > p:not(.eyebrow),
.page-hero__content > p:not(.eyebrow),
.not-found p,
.thank-you article > p:not(.eyebrow),
.contact-page__copy > p:not(.eyebrow),
.legal-page > p {
  max-width: min(100%, 62ch);
  font-size: var(--hero-copy-size);
  line-height: var(--hero-copy-line);
  overflow-wrap: anywhere;
}

.hero .eyebrow,
.page-hero .eyebrow,
.not-found .eyebrow,
.thank-you .eyebrow,
.contact-page__copy .eyebrow,
.legal-page > .eyebrow {
  font-size: var(--hero-eyebrow-size);
  letter-spacing: 0.13em;
  line-height: 1.35;
}

.page-hero__cue {
  max-width: 100%;
  flex-wrap: wrap;
  row-gap: 7px;
  font-size: clamp(0.5625rem, 0.65vw, 0.625rem);
  line-height: 1.45;
}

.hero__actions { flex-wrap: wrap; }

@media (max-width: 780px) {
  :root {
    --hero-title-size: clamp(2.45rem, 10.1vw, 3.15rem);
    --hero-copy-size: 0.9375rem;
    --hero-safe-top: clamp(2.75rem, 8svh, 4.75rem);
    --hero-safe-bottom: clamp(1.75rem, 5svh, 3.25rem);
  }

  .hero { grid-template-rows: auto auto !important; }
  .hero__layout {
    min-height: 0 !important;
    padding: var(--hero-safe-top) 0 var(--hero-safe-bottom) !important;
  }
  .page-hero { align-items: stretch; }
  .page-hero__content {
    align-content: center;
    padding: var(--hero-safe-top) 0 var(--hero-safe-bottom);
  }
  .hero__copy h1,
  .page-hero__content h1,
  .not-found h1,
  .thank-you h1,
  .contact-page__copy h1,
  .legal-page h1 { max-width: 100%; }
  .hero__actions .button,
  .hero__actions .text-link { min-height: 48px; }
  .hero__bottom { flex-wrap: wrap; row-gap: 6px; }
}

@media (max-width: 520px) {
  .hero__actions { grid-template-columns: 1fr; }
  .hero__actions .button,
  .hero__actions .text-link { width: 100%; }
  .hero__bottom {
    justify-content: flex-start;
    column-gap: 8px;
    padding-right: 0;
  }
  .hero__bottom i { margin-inline: 1px; }
}

@media (max-width: 780px) and (max-height: 620px) {
  :root {
    --hero-safe-top: 2.15rem;
    --hero-safe-bottom: 1.5rem;
  }
  .hero__availability { margin-top: 13px; }
  .page-hero__cue { margin-top: 17px; }
}

/* Contact page: the inline email form remains visible and editorially grounded. */
.contact-card .quote-modal {
  display: grid;
  width: 100%;
  max-width: 760px;
  gap: 17px;
  margin: 0;
  border-top: 1px solid rgba(7, 105, 119, 0.18);
  padding: 25px 0 0;
  background: transparent;
  box-shadow: none;
  opacity: 1;
  transform: none;
  transition: none;
}

.contact-card .quote-modal .form-row { width: 100%; }
.contact-card .quote-modal input,
.contact-card .quote-modal select,
.contact-card .quote-modal textarea {
  min-height: 48px;
  border-color: rgba(7, 105, 119, 0.24);
  background: rgba(255, 255, 255, 0.88);
}
.contact-card .quote-modal textarea { min-height: 122px; }
.contact-card .quote-modal .form-status { text-align: left; }
.contact-card .quote-modal .quote-modal__submit {
  justify-self: start;
  width: auto;
  min-width: min(100%, 270px);
  margin-top: 3px;
}
.contact-card .quote-modal small {
  display: block;
  max-width: 58ch;
  text-align: left;
}

@media (max-width: 780px) {
  .contact-card .quote-modal { gap: 16px; padding-top: 22px; }
  .contact-card .quote-modal .quote-modal__submit { width: 100%; }
}


/* Identity/contact refinement: official channels remain readable without changing the approved layout. */
.header__phone small {
  display: block;
  margin-top: 2px;
  color: currentColor;
  font-size: 7px;
  font-weight: 800;
  letter-spacing: .08em;
  line-height: 1;
  opacity: .72;
  text-transform: uppercase;
}
.footer-contact-link {
  display: grid !important;
  max-width: 100%;
  gap: 1px;
  overflow-wrap: anywhere;
}
.contact-channel-label {
  display: block;
  color: #8fb9b8;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: .09em;
  line-height: 1.35;
  text-transform: uppercase;
}
.contact-list a { overflow-wrap: anywhere; }
.contact-channel-label--inline { margin-top: 5px; color: var(--brand); }
.form-honeypot {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
}
.form-status:empty,
.review-form__status:empty { min-height: 18px; }
.form-status:not(:empty),
.review-form__status:not(:empty) { overflow-wrap: anywhere; }
@media (max-width: 430px) {
  .contact-list a,
  .footer-contact-link { font-size: 12px; }
}


/* 2026-08-09 · Real Before & After transformation showcase */
.transformation-proof {
  padding-top: clamp(64px, 8vw, 112px);
  padding-bottom: clamp(54px, 7vw, 96px);
}
.transformation-proof__heading {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(280px, .72fr);
  align-items: end;
  gap: clamp(30px, 6vw, 88px);
  margin-bottom: clamp(32px, 4vw, 54px);
}
.transformation-proof__heading h2 { margin-bottom: 0; }
.transformation-proof__heading > p {
  max-width: 600px;
  margin: 0 0 3px;
  color: var(--muted);
  font-size: clamp(14px, 1.25vw, 17px);
  line-height: 1.72;
}
.comparison-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(16px, 2.2vw, 28px);
}
.comparison-card {
  overflow: hidden;
  border: 1px solid rgba(7, 105, 119, .13);
  background: #fff;
  box-shadow: 0 18px 54px rgba(3, 47, 56, .07);
  transition: transform 320ms var(--ease), box-shadow 320ms var(--ease), border-color 320ms var(--ease);
}
.comparison-card:hover {
  border-color: rgba(7, 105, 119, .28);
  box-shadow: 0 24px 68px rgba(3, 47, 56, .11);
  transform: translateY(-3px);
}
.comparison-card__visual {
  position: relative;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  min-height: clamp(300px, 36vw, 520px);
  background: #edf2f1;
}
.comparison-card__visual::after {
  position: absolute;
  z-index: 3;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 1px;
  background: rgba(255,255,255,.86);
  box-shadow: 0 0 0 1px rgba(3,47,56,.08);
  content: "";
  pointer-events: none;
}
.comparison-pane {
  position: relative;
  min-width: 0;
  min-height: inherit;
  margin: 0;
  overflow: hidden;
  background: #e8eeec;
}
.comparison-pane img {
  width: 100%;
  height: 100%;
  min-height: inherit;
  object-fit: cover;
  object-position: center;
  transition: transform 700ms var(--ease), filter 350ms var(--ease);
}
.comparison-pane--before img { filter: saturate(.92) contrast(1.015); }
.comparison-pane--after img { filter: saturate(1.015) contrast(1.02); }
.comparison-card:hover .comparison-pane img { transform: scale(1.025); }
.comparison-label {
  position: absolute;
  z-index: 4;
  top: 14px;
  left: 14px;
  display: inline-flex;
  min-height: 30px;
  align-items: center;
  border: 1px solid rgba(255,255,255,.6);
  border-radius: 999px;
  padding: 5px 10px;
  background: rgba(3,47,56,.82);
  color: #fff;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.comparison-pane--after .comparison-label {
  right: 14px;
  left: auto;
  background: rgba(7,105,119,.9);
}
.comparison-card__meta {
  display: flex;
  min-height: 94px;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 18px clamp(18px, 2.1vw, 28px) 20px;
}
.comparison-card__meta span {
  display: block;
  margin-bottom: 5px;
  color: var(--accent-dark, #076977);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.comparison-card__meta h3 {
  margin: 0;
  font-size: clamp(22px, 2.1vw, 31px);
  line-height: 1;
}
.comparison-card__meta > b {
  flex: 0 0 auto;
  color: rgba(3,47,56,.18);
  font-family: var(--display);
  font-size: clamp(28px, 3.5vw, 50px);
  font-weight: 400;
  letter-spacing: -.06em;
  line-height: 1;
}
@media (max-width: 900px) {
  .transformation-proof__heading { grid-template-columns: 1fr; gap: 20px; }
  .transformation-proof__heading > p { max-width: 700px; }
  .comparison-grid { grid-template-columns: 1fr; }
  .comparison-card__visual { min-height: clamp(330px, 72vw, 620px); }
}
@media (max-width: 520px) {
  .transformation-proof { padding-top: 54px; padding-bottom: 54px; }
  .comparison-card__visual { min-height: 310px; }
  .comparison-label { top: 10px; left: 10px; min-height: 27px; padding: 4px 8px; font-size: 8px; }
  .comparison-pane--after .comparison-label { right: 10px; left: auto; }
  .comparison-card__meta { min-height: 82px; padding: 15px 16px 17px; }
  .comparison-card__meta > b { font-size: 31px; }
}
@media (prefers-reduced-motion: reduce) {
  .comparison-card, .comparison-pane img { transition: none; }
  .comparison-card:hover, .comparison-card:hover .comparison-pane img { transform: none; }
}


/* 2026-08-09 · Gallery V2 — lightweight project cards + on-demand comparisons */
.project-proof-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(14px,1.8vw,24px);
}
.project-proof-card {
  min-width:0;
  overflow:hidden;
  border:1px solid rgba(7,105,119,.12);
  border-radius:3px;
  background:#fff;
  box-shadow:0 14px 42px rgba(3,47,56,.055);
  content-visibility:auto;
  contain-intrinsic-size:470px;
  transition:transform 280ms var(--ease),box-shadow 280ms var(--ease),border-color 280ms var(--ease);
}
.project-proof-card:hover { border-color:rgba(7,105,119,.27); box-shadow:0 20px 54px rgba(3,47,56,.09); transform:translateY(-2px); }
.project-proof-card__cover { position:relative; aspect-ratio:4/3; margin:0; overflow:hidden; background:#eaf0ee; }
.project-proof-card__cover img { width:100%; height:100%; object-fit:cover; transition:transform 600ms var(--ease); }
.project-proof-card:hover .project-proof-card__cover img { transform:scale(1.025); }
.project-proof-card__cover::after { position:absolute; inset:0; background:linear-gradient(180deg,transparent 58%,rgba(3,47,56,.58)); content:""; pointer-events:none; }
.project-proof-card__cover figcaption { position:absolute; z-index:2; right:14px; bottom:12px; left:14px; display:flex; align-items:end; justify-content:space-between; gap:12px; color:#fff; }
.project-proof-card__cover figcaption > span { font-size:9px; font-weight:850; letter-spacing:.13em; text-transform:uppercase; }
.project-proof-card__cover figcaption > b { display:flex; align-items:baseline; font-family:var(--display); font-size:26px; font-weight:400; letter-spacing:-.04em; }
.project-proof-card__cover figcaption small { font-family:inherit; font-size:9px; font-weight:700; letter-spacing:0; opacity:.78; }
.project-proof-card__body { display:grid; gap:17px; padding:18px 18px 20px; }
.project-proof-card__body > div > span { display:block; margin-bottom:5px; color:var(--accent-dark,#076977); font-size:9px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.project-proof-card__body h3 { margin:0; font-size:clamp(22px,2vw,29px); line-height:1; }
.project-proof-card__action { display:flex; width:100%; min-height:46px; align-items:center; justify-content:space-between; gap:12px; border:1px solid rgba(7,105,119,.18); padding:10px 13px; background:#f7faf9; color:var(--brand-ink); cursor:pointer; font-size:10px; font-weight:850; letter-spacing:.08em; text-align:left; text-transform:uppercase; transition:background 220ms var(--ease),color 220ms var(--ease),border-color 220ms var(--ease); }
.project-proof-card__action i { font-size:16px; font-style:normal; transition:transform 220ms var(--ease); }
.project-proof-card__action:hover,.project-proof-card__action:focus-visible { border-color:var(--brand); background:var(--brand); color:#fff; }
.project-proof-card__action:hover i,.project-proof-card__action:focus-visible i { transform:translate(2px,-2px); }

.comparison-modal-backdrop { position:fixed; z-index:1100; inset:0; display:grid; place-items:center; overflow:auto; padding:clamp(14px,3vw,36px); background:rgba(1,24,29,.84); opacity:0; visibility:hidden; transition:opacity 220ms ease,visibility 220ms ease; backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); }
.comparison-modal-backdrop[hidden] { display:none; }
.comparison-modal-backdrop.is-open { opacity:1; visibility:visible; }
.comparison-modal { position:relative; width:min(1180px,100%); max-height:min(92svh,900px); overflow:auto; border:1px solid rgba(255,255,255,.18); background:#f7f9f8; box-shadow:0 30px 100px rgba(0,0,0,.34); opacity:0; transform:translateY(12px) scale(.985); transition:opacity 220ms ease,transform 220ms ease; }
.comparison-modal-backdrop.is-open .comparison-modal { opacity:1; transform:none; }
.comparison-modal__close { position:absolute; z-index:5; top:14px; right:14px; width:44px; height:44px; border:1px solid rgba(3,47,56,.16); border-radius:50%; background:rgba(255,255,255,.92); color:var(--brand-ink); cursor:pointer; font-size:28px; line-height:1; }
.comparison-modal__heading { display:grid; gap:5px; padding:clamp(22px,3vw,36px) clamp(22px,4vw,48px) 18px; padding-right:78px; }
.comparison-modal__heading > span { color:var(--accent-dark,#076977); font-size:9px; font-weight:850; letter-spacing:.13em; text-transform:uppercase; }
.comparison-modal__heading h2 { margin:0; font-size:clamp(30px,4.8vw,62px); line-height:.95; }
.comparison-modal__heading p { margin:4px 0 0; color:var(--muted); font-size:12px; }
.comparison-modal__grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; background:rgba(3,47,56,.11); }
.comparison-modal__grid figure { position:relative; min-width:0; margin:0; background:#e8eeec; }
.comparison-modal__media { display:grid; min-height:min(64svh,650px); place-items:center; overflow:hidden; background:linear-gradient(110deg,#e8eeec 8%,#f2f5f4 18%,#e8eeec 33%); background-size:200% 100%; animation:comparison-shimmer 1.4s linear infinite; }
.comparison-modal__media.is-loaded { background:#e8eeec; animation:none; }
.comparison-modal__media img { width:100%; height:100%; max-height:min(64svh,650px); object-fit:contain; opacity:0; transition:opacity 180ms ease; }
.comparison-modal__media.is-loaded img { opacity:1; }
.comparison-label--after { right:14px; left:auto; background:rgba(7,105,119,.9); }
@keyframes comparison-shimmer { to { background-position:-200% 0; } }
.gallery-page,.video-proof,.gallery-callout { content-visibility:auto; contain-intrinsic-size:800px; }

@media(max-width:980px){.project-proof-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.comparison-modal__media{min-height:min(58svh,580px);}}
@media(max-width:620px){
  .transformation-proof__heading{margin-bottom:28px}.project-proof-grid{grid-template-columns:1fr;gap:13px}.project-proof-card{contain-intrinsic-size:390px}.project-proof-card__cover{aspect-ratio:16/10}.project-proof-card__body{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px 14px 15px}.project-proof-card__body h3{font-size:23px}.project-proof-card__action{width:48px;min-height:44px;padding:0;justify-content:center}.project-proof-card__action span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%)}.project-proof-card__action i{font-size:18px}.comparison-modal-backdrop{padding:8px}.comparison-modal{max-height:96svh}.comparison-modal__heading{padding:20px 65px 14px 18px}.comparison-modal__heading p{display:none}.comparison-modal__grid{grid-template-columns:1fr}.comparison-modal__media{min-height:34svh;max-height:39svh}.comparison-modal__media img{max-height:39svh}.comparison-label{top:9px;left:9px}.comparison-label--after{right:9px;left:auto}}
@media(prefers-reduced-motion:reduce){.project-proof-card,.project-proof-card__cover img,.project-proof-card__action,.project-proof-card__action i,.comparison-modal-backdrop,.comparison-modal,.comparison-modal__media img{transition:none;}.comparison-modal__media{animation:none;}}

.comparison-modal__composite { padding:0; background:#e8eeec; }
.comparison-modal__composite[hidden] { display:none; }
.comparison-modal__composite .comparison-modal__media { min-height:min(68svh,720px); }
.comparison-modal__composite img { width:100%; height:100%; max-height:min(68svh,720px); object-fit:contain; }
@media(max-width:620px){.comparison-modal__composite .comparison-modal__media{min-height:62svh}.comparison-modal__composite img{max-height:62svh}}


/* 2026-08-09 · Curated real media integration + brand slogan restoration */
.brand-slogan-chip {
  display:inline-flex; width:fit-content; align-items:center; gap:10px; margin:0 0 20px;
  border:1px solid rgba(255,255,255,.25); border-radius:999px; padding:8px 12px;
  background:rgba(2,42,50,.30); color:#eef8f6; backdrop-filter:blur(9px);
  font-size:10px; font-weight:800; letter-spacing:.085em; text-transform:uppercase;
}
.brand-slogan-chip::before { width:7px; height:7px; border-radius:50%; background:var(--accent); box-shadow:0 0 0 4px rgba(245,162,8,.14); content:""; }
.footer__brand > p { max-width:260px; color:#d8ebe8; font-weight:700; letter-spacing:.015em; }
.header-utility p { font-style:normal; letter-spacing:.075em; text-transform:uppercase; }

.service-media-proof { content-visibility:auto; contain-intrinsic-size:900px; }
.service-media-proof__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.service-media-proof__grid article { overflow:hidden; border:1px solid rgba(7,105,119,.13); border-radius:20px; background:#fff; box-shadow:0 18px 38px rgba(4,57,67,.08); }
.service-media-proof__grid img { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; }
.service-media-proof__grid article:nth-child(2) img,
.service-media-proof__grid article:nth-child(3) img { object-position:center 56%; }
.service-media-proof__grid article > div { padding:20px 20px 22px; }
.service-media-proof__grid article > div > span { color:var(--brand); font-size:10px; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.service-media-proof__grid h3 { margin:7px 0 12px; font-size:clamp(1.35rem,2.2vw,2rem); }

.team-action-grid { display:grid; grid-template-columns:1.15fr .85fr .85fr; gap:16px; margin:34px 0 38px; }
.team-action-grid figure { position:relative; overflow:hidden; min-height:430px; margin:0; border-radius:18px; background:#dfeae8; box-shadow:0 18px 40px rgba(4,57,67,.12); }
.team-action-grid figure:first-child { min-height:500px; }
.team-action-grid img { width:100%; height:100%; object-fit:cover; }
.team-action-grid figure:first-child img { object-position:center 50%; }
.team-action-grid figcaption { position:absolute; right:0; bottom:0; left:0; padding:72px 18px 18px; background:linear-gradient(0deg,rgba(2,39,47,.88),rgba(2,39,47,0)); color:#fff; }
.team-action-grid figcaption span { display:block; color:#bfe3df; font-size:10px; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.team-action-grid figcaption b { display:block; margin-top:5px; font-family:var(--display); font-size:clamp(1.25rem,2vw,1.8rem); }

/* Approved gallery media: lightweight WebP only, full imagery lazy-loaded. */
.gallery-page { content-visibility:auto; contain-intrinsic-size:1500px; }
.gallery-page .gallery-grid img { background:#eaf1ef; }
.gallery-page .gallery-grid article[data-gallery-item="Team"] img { object-position:center 40%; }

/* Local video files are attached to the player only after explicit interaction. */
.video-proof { content-visibility:auto; contain-intrinsic-size:900px; }
.video-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.local-project-video p { display:grid; gap:2px; }
.local-project-video p span { color:#6b807b; font-size:10px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.local-project-video p b { color:var(--ink); font-size:13px; }
.local-video-card { position:relative; overflow:hidden; aspect-ratio:9/16; max-height:620px; border-radius:16px; background:#082f38; box-shadow:0 14px 32px rgba(3,48,57,.15); }
.video-proof--preview .local-video-card { aspect-ratio:16/10; max-height:none; }
.local-video-card video { display:block; width:100%; height:100%; object-fit:cover; background:#082f38; }
.local-video-card__play { position:absolute; inset:0; display:grid; place-content:center; gap:10px; border:0; padding:20px; background:linear-gradient(0deg,rgba(2,35,43,.52),rgba(2,35,43,.08)); color:#fff; text-align:center; cursor:pointer; transition:background 220ms var(--ease); }
.local-video-card__play span { display:grid; width:58px; height:58px; margin:auto; place-items:center; border:1px solid rgba(255,255,255,.72); border-radius:50%; background:rgba(255,255,255,.15); box-shadow:0 13px 30px rgba(0,0,0,.18); backdrop-filter:blur(8px); font-size:20px; }
.local-video-card__play b { font-size:10px; letter-spacing:.09em; text-transform:uppercase; }
.local-video-card__play:hover { background:linear-gradient(0deg,rgba(2,35,43,.67),rgba(2,35,43,.15)); }
.local-video-card.is-playing .local-video-card__play { opacity:0; pointer-events:none; }

@media (max-width:980px) {
  .service-media-proof__grid { grid-template-columns:1fr 1fr; }
  .service-media-proof__grid article:last-child { grid-column:1/-1; }
  .team-action-grid { grid-template-columns:1fr 1fr; }
  .team-action-grid figure:first-child { grid-column:1/-1; min-height:520px; }
  .video-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:680px) {
  .brand-slogan-chip { margin-bottom:15px; padding:7px 10px; font-size:9px; }
  .service-media-proof__grid, .team-action-grid, .video-grid { grid-template-columns:1fr; }
  .service-media-proof__grid article:last-child, .team-action-grid figure:first-child { grid-column:auto; }
  .team-action-grid figure, .team-action-grid figure:first-child { min-height:420px; }
  .video-proof .local-video-card { max-height:72svh; }
  .video-proof--preview .local-video-card { aspect-ratio:4/3; max-height:none; }
}
@media (prefers-reduced-motion:reduce) {
  .local-video-card__play, .service-media-proof__grid article { transition:none !important; }
}


/* === 2026-08-09 preservation + proportion + payments pass === */

/* Never distort approved imagery. Fixed visual frames may crop with object-fit,
   but source proportions are always preserved. */
.service-media-proof__grid img {
  width: 100%;
  height: auto;
  aspect-ratio: auto;
  object-fit: contain;
  background: #edf4f2;
}

.team-action-grid {
  align-items: start;
}
.team-action-grid figure,
.team-action-grid figure:first-child {
  min-height: 0;
  aspect-ratio: 4 / 5;
}
.team-action-grid img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.team-action-grid figure:first-child img { object-position: center 48%; }

.recent-media-section {
  content-visibility: auto;
  contain-intrinsic-size: 1100px;
  padding-top: 18px;
}
.recent-media-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
.recent-media-card {
  position: relative;
  display: flex;
  align-items: end;
  overflow: hidden;
  min-height: 0;
  border-radius: 18px;
  background: #e8f0ee;
  color: #fff;
  isolation: isolate;
  box-shadow: 0 16px 38px rgba(4,57,67,.09);
}
.recent-media-card--landscape { aspect-ratio: 16 / 10; grid-column: span 2; }
.recent-media-card--portrait { aspect-ratio: 4 / 5; }
.recent-media-card--balanced { aspect-ratio: 1 / 1; }
.recent-media-card > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.recent-media-card[data-orientation="portrait"] > img,
.recent-media-card--portrait > img { object-position: center 42%; }
.recent-media-card::after {
  position: absolute;
  z-index: 1;
  inset: 0;
  background: linear-gradient(180deg, rgba(3,47,56,0) 48%, rgba(3,47,56,.84));
  content: "";
  pointer-events: none;
}
.recent-media-card > div {
  position: relative;
  z-index: 2;
  padding: 20px;
}
.recent-media-card > div > span {
  display: block;
  margin-bottom: 7px;
  color: #d6ece9;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.recent-media-card h3 {
  margin: 0;
  color: #fff;
  font-size: clamp(1.35rem, 2.2vw, 2rem);
}
.recent-media-card .gallery-grid__trigger {
  z-index: 3;
}

/* Payment area: links go directly to the official destinations supplied by the client.
   No banking credentials are collected by this website. */
.payment-options-section {
  background: linear-gradient(180deg, #f6f9f8, #edf5f3);
  border-top: 1px solid rgba(7,105,119,.09);
  border-bottom: 1px solid rgba(7,105,119,.09);
}
.payment-options__heading { margin-bottom: 42px; }
.payment-methods-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 18px;
}
.payment-method-card {
  display: grid;
  grid-template-rows: auto 1fr;
  overflow: hidden;
  border: 1px solid rgba(7,105,119,.14);
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 18px 42px rgba(4,57,67,.07);
}
.payment-method-card__visual {
  display: grid;
  min-height: 225px;
  place-items: center;
  padding: 24px;
  background: #f5f9f8;
  border-bottom: 1px solid rgba(7,105,119,.10);
}
.payment-method-card__visual img {
  width: min(176px, 72%);
  height: auto;
  aspect-ratio: 1 / 1;
  object-fit: contain;
}
.payment-method-card__visual--cash {
  background: radial-gradient(circle at 50% 42%, rgba(242,154,15,.17), rgba(7,105,119,.04));
}
.payment-method-card__visual--cash span {
  display: grid;
  width: 118px;
  height: 118px;
  place-items: center;
  border: 1px solid rgba(7,105,119,.18);
  border-radius: 50%;
  background: #fff;
  color: var(--brand);
  font-family: var(--display);
  font-size: 58px;
  box-shadow: 0 14px 36px rgba(4,57,67,.09);
}
.payment-method-card__body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 24px;
}
.payment-method-card__type {
  color: var(--brand);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.payment-method-card h3 {
  margin: 7px 0 12px;
  font-size: clamp(1.7rem, 2.5vw, 2.45rem);
}
.payment-method-card p {
  margin: 0 0 20px;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.72;
}
.payment-method-card__button {
  width: 100%;
  margin-top: auto;
}
.payment-method-card__status {
  margin-top: auto;
  color: #54716b;
  font-size: 11px;
  font-weight: 700;
}
.payment-safety-note {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: start;
  gap: 16px;
  margin-top: 20px;
  border: 1px solid rgba(7,105,119,.14);
  border-radius: 14px;
  padding: 18px 20px;
  background: rgba(255,255,255,.72);
}
.payment-safety-note strong {
  color: var(--brand);
  font-size: 11px;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.payment-safety-note p {
  margin: 0;
  color: #56716c;
  font-size: 12px;
  line-height: 1.65;
}

@media (max-width: 980px) {
  .recent-media-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .recent-media-card--landscape { grid-column: span 2; }
  .payment-methods-grid { grid-template-columns: 1fr 1fr; }
  .payment-method-card--cash { grid-column: 1 / -1; grid-template-columns: .7fr 1.3fr; grid-template-rows: 1fr; }
}
@media (max-width: 680px) {
  .team-action-grid figure,
  .team-action-grid figure:first-child { aspect-ratio: 4 / 5; min-height: 0; }
  .recent-media-grid { grid-template-columns: 1fr; }
  .recent-media-card--landscape,
  .recent-media-card--portrait,
  .recent-media-card--balanced { grid-column: auto; aspect-ratio: 4 / 3; }
  .recent-media-card--portrait { aspect-ratio: 4 / 5; }
  .payment-methods-grid { grid-template-columns: 1fr; }
  .payment-method-card--cash { grid-column: auto; grid-template-columns: 1fr; grid-template-rows: auto 1fr; }
  .payment-method-card__visual { min-height: 190px; }
  .payment-safety-note { grid-template-columns: 1fr; gap: 8px; }
}


/* === 2026-08-09 V5 proportion + preservation hardening === */
/* Keep source proportions intact while controlling visual height.
   object-fit may crop inside deliberate frames; it never distorts pixels. */
.service-media-proof__grid article {
  display: flex;
  min-width: 0;
  flex-direction: column;
}
.service-media-proof__grid article > img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  background: #edf4f2;
}
.service-media-proof__grid article:nth-child(1) > img {
  aspect-ratio: 16 / 9;
  object-fit: cover;
  object-position: center 52%;
}
.service-media-proof__grid article:nth-child(2) > img,
.service-media-proof__grid article:nth-child(3) > img {
  aspect-ratio: 4 / 5;
  max-height: 430px;
  object-fit: cover;
}
.service-media-proof__grid article:nth-child(2) > img { object-position: center 58%; }
.service-media-proof__grid article:nth-child(3) > img { object-position: center 47%; }
.service-media-proof__grid article > div { flex: 1; }

/* Team cards: prevent the featured portrait from becoming excessively tall
   when it spans both columns on tablet-sized screens. */
.team-action-grid figure { max-height: 620px; }
@media (max-width: 980px) and (min-width: 681px) {
  .team-action-grid figure:first-child {
    aspect-ratio: 16 / 9;
    max-height: 520px;
  }
  .team-action-grid figure:first-child img { object-position: center 43%; }
  .team-action-grid figure:not(:first-child) {
    aspect-ratio: 4 / 5;
    max-height: 500px;
  }
}
@media (max-width: 680px) {
  .service-media-proof__grid article:nth-child(1) > img { aspect-ratio: 4 / 3; }
  .service-media-proof__grid article:nth-child(2) > img,
  .service-media-proof__grid article:nth-child(3) > img {
    aspect-ratio: 4 / 5;
    max-height: min(118vw, 470px);
  }
  .team-action-grid figure,
  .team-action-grid figure:first-child {
    aspect-ratio: 4 / 5;
    max-height: min(128vw, 520px);
  }
}

/* Explicit sizing guard for approved gallery and payment assets. */
.recent-media-card > img,
.project-proof-card__cover img,
.gallery-page .gallery-grid img,
.payment-method-card__visual img {
  max-width: 100%;
}

.thank-you article > .thank-you__slogan {
  margin-top: 14px;
  color: #fff;
  font-family: var(--display);
  font-size: clamp(1.02rem, 2vw, 1.28rem);
  font-weight: 700;
  letter-spacing: .025em;
}


/* 2026-08-09 · Gallery V6 — premium infinite Before & After carousel */
.project-proof-carousel {
  --project-card-width: clamp(290px, 29vw, 395px);
  --project-carousel-gap: clamp(14px, 1.55vw, 22px);
  position: relative;
  width: 100%;
  isolation: isolate;
}
.project-proof-carousel::before,
.project-proof-carousel::after {
  position: absolute;
  z-index: 3;
  top: 0;
  bottom: 62px;
  width: clamp(24px, 5vw, 84px);
  content: "";
  pointer-events: none;
}
.project-proof-carousel::before {
  left: 0;
  background: linear-gradient(90deg, var(--surface, #f7f9f8) 0%, rgba(247,249,248,.88) 24%, rgba(247,249,248,0) 100%);
}
.project-proof-carousel::after {
  right: 0;
  background: linear-gradient(270deg, var(--surface, #f7f9f8) 0%, rgba(247,249,248,.88) 24%, rgba(247,249,248,0) 100%);
}
.project-proof-carousel__viewport {
  position: relative;
  overflow: hidden;
  width: 100%;
  padding: 8px 0 18px;
  outline: none;
  cursor: grab;
  touch-action: pan-y;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 clamp(18px,3vw,48px), #000 calc(100% - clamp(18px,3vw,48px)), transparent 100%);
  mask-image: linear-gradient(90deg, transparent 0, #000 clamp(18px,3vw,48px), #000 calc(100% - clamp(18px,3vw,48px)), transparent 100%);
}
.project-proof-carousel__viewport:focus-visible {
  box-shadow: 0 0 0 2px rgba(7,105,119,.22), 0 0 0 6px rgba(7,105,119,.06);
}
.project-proof-carousel__viewport.is-dragging { cursor: grabbing; }
.project-proof-carousel .project-proof-grid,
.project-proof-carousel__track {
  display: flex;
  width: max-content;
  max-width: none;
  grid-template-columns: none;
  gap: var(--project-carousel-gap);
  align-items: stretch;
  will-change: transform;
  transform: translate3d(0,0,0);
}
.project-proof-carousel .project-proof-card {
  flex: 0 0 var(--project-card-width);
  width: var(--project-card-width);
  content-visibility: visible;
  contain: layout paint style;
  transform: translateZ(0);
  backface-visibility: hidden;
  box-shadow: 0 16px 46px rgba(3,47,56,.065);
  transition: transform 620ms cubic-bezier(.16,1,.3,1), box-shadow 620ms cubic-bezier(.16,1,.3,1), border-color 420ms ease, opacity 420ms ease;
}
.project-proof-carousel .project-proof-card:hover,
.project-proof-carousel .project-proof-card:focus-within {
  z-index: 2;
  transform: translateY(-7px) scale(1.012);
  border-color: rgba(7,105,119,.33);
  box-shadow: 0 30px 78px rgba(3,47,56,.15);
}
.project-proof-carousel .project-proof-card__cover { overflow: hidden; }
.project-proof-carousel .project-proof-card__cover img {
  transform: scale(1.001);
  transition: transform 1100ms cubic-bezier(.16,1,.3,1), filter 700ms ease;
}
.project-proof-carousel .project-proof-card:hover .project-proof-card__cover img,
.project-proof-carousel .project-proof-card:focus-within .project-proof-card__cover img {
  transform: scale(1.055);
  filter: saturate(1.035) contrast(1.015);
}
.project-proof-carousel__controls {
  display: flex;
  min-height: 48px;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 7px 2px 0;
}
.project-proof-carousel__progress {
  position: relative;
  overflow: hidden;
  width: min(220px, 38vw);
  height: 1px;
  background: rgba(7,105,119,.15);
}
.project-proof-carousel__progress span {
  position: absolute;
  inset: 0 auto 0 0;
  width: 38%;
  background: linear-gradient(90deg, rgba(7,105,119,.12), var(--accent-dark,#076977), rgba(7,105,119,.12));
  transform: translateX(-110%);
  animation: project-carousel-progress 4.8s linear infinite;
}
.project-proof-carousel__buttons { display: flex; gap: 8px; }
.project-proof-carousel__button {
  display: grid;
  width: 43px;
  height: 43px;
  place-items: center;
  border: 1px solid rgba(7,105,119,.18);
  border-radius: 50%;
  background: rgba(255,255,255,.84);
  color: var(--brand-ink);
  box-shadow: 0 8px 26px rgba(3,47,56,.055);
  cursor: pointer;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  transition: transform 320ms cubic-bezier(.16,1,.3,1), background 240ms ease, color 240ms ease, border-color 240ms ease, box-shadow 320ms ease;
}
.project-proof-carousel__button span { font-size: 18px; line-height: 1; transition: transform 320ms cubic-bezier(.16,1,.3,1); }
.project-proof-carousel__button:hover,
.project-proof-carousel__button:focus-visible {
  border-color: var(--brand);
  background: var(--brand);
  color: #fff;
  box-shadow: 0 14px 34px rgba(3,47,56,.16);
  transform: translateY(-2px);
}
.project-proof-carousel__button[data-project-carousel-previous]:hover span { transform: translateX(-2px); }
.project-proof-carousel__button[data-project-carousel-next]:hover span { transform: translateX(2px); }
.project-proof-carousel.is-paused .project-proof-carousel__progress span { animation-play-state: paused; }
@keyframes project-carousel-progress { to { transform: translateX(300%); } }

@media (max-width: 980px) {
  .project-proof-carousel { --project-card-width: clamp(300px, 46vw, 380px); }
  .project-proof-carousel .project-proof-grid { grid-template-columns: none; }
}
@media (max-width: 620px) {
  .project-proof-carousel { --project-card-width: min(82vw, 330px); --project-carousel-gap: 12px; }
  .project-proof-carousel::before,
  .project-proof-carousel::after { width: 22px; bottom: 58px; }
  .project-proof-carousel__viewport {
    padding: 4px 0 14px;
    -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 16px, #000 calc(100% - 16px), transparent 100%);
    mask-image: linear-gradient(90deg, transparent 0, #000 16px, #000 calc(100% - 16px), transparent 100%);
  }
  .project-proof-carousel .project-proof-card__cover { aspect-ratio: 16/10; }
  .project-proof-carousel__controls { min-height: 44px; }
  .project-proof-carousel__button { width: 40px; height: 40px; }
  .project-proof-carousel__progress { width: 36vw; }
}
@media (prefers-reduced-motion: reduce) {
  .project-proof-carousel::before,
  .project-proof-carousel::after { display: none; }
  .project-proof-carousel__viewport {
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-mask-image: none;
    mask-image: none;
    cursor: auto;
  }
  .project-proof-carousel__track { transform: none !important; }
  .project-proof-carousel .project-proof-card { scroll-snap-align: start; transition: none; }
  .project-proof-carousel .project-proof-card:hover,
  .project-proof-carousel .project-proof-card:focus-within { transform: none; }
  .project-proof-carousel__progress span { animation: none; transform: none; width: 100%; }
}

/* === 2026-08-09 V7 — clean premium refinement + contrast hardening === */
:root {
  --muted: #506b70;
  --accent-on-dark-display: #ffb93d;
  --accent-on-dark-text: #ffe4b0;
}

/* Global readability hardening. */
.quote-modal input::placeholder,
.quote-modal textarea::placeholder,
.review-form input::placeholder,
.review-form textarea::placeholder {
  color: #627477;
  opacity: 1;
}
.text-link:hover,
.text-link:focus-visible { color: var(--brand-deep); }
.detail-card.detail-card--accent > span { color: var(--accent-on-dark-text); }
.detail-card.detail-card--accent h3 { color: #fff; }
.detail-card.detail-card--accent p { color: #f6fbfa; }
.detail-card.detail-card--accent li { color: #eef9f7; }
.detail-card.detail-card--accent li::before { background: #ffd18a; }
.values-grid article > span,
.wellbeing-band__commitment > span { color: var(--accent-on-dark-text); }
.metrics-list strong { color: var(--accent-on-dark-display); }
.values-section h2 em,
.metrics-band h2 em { color: var(--accent-on-dark-display); }
.values-grid p,
.service-process__layout > div:first-child p:not(.eyebrow),
.process-grid p,
.cta-band__layout > div:last-child p { color: #d9ecea; }

/* Gallery — no mist/fog edges: clean editorial rail with image-first cards. */
.transformation-proof {
  position: relative;
  padding-top: clamp(84px, 8vw, 118px);
  padding-bottom: clamp(82px, 8vw, 116px);
}
.transformation-proof::before {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 1px;
  background: rgba(7,105,119,.13);
  content: "";
}
.transformation-proof__heading {
  align-items: end;
  gap: clamp(30px, 6vw, 84px);
  margin-bottom: clamp(34px, 4vw, 52px);
}
.transformation-proof__heading > p {
  max-width: 480px;
  color: #526d71;
  font-size: 13px;
  line-height: 1.8;
}
.project-proof-carousel {
  --project-card-width: clamp(305px, 28.5vw, 405px);
  --project-carousel-gap: clamp(14px, 1.35vw, 20px);
  overflow: visible;
  padding: 0;
}
.project-proof-carousel::before,
.project-proof-carousel::after { display: none !important; }
.project-proof-carousel__viewport {
  overflow: hidden;
  padding: 7px 2px 19px;
  -webkit-mask-image: none !important;
  mask-image: none !important;
}
.project-proof-carousel .project-proof-card {
  overflow: hidden;
  border: 1px solid rgba(7,105,119,.14);
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 13px 34px rgba(3,47,56,.055);
  opacity: .965;
  transform: translateZ(0) scale(.994);
  transition:
    transform 580ms cubic-bezier(.16,1,.3,1),
    box-shadow 580ms cubic-bezier(.16,1,.3,1),
    border-color 380ms ease,
    opacity 380ms ease;
}
.project-proof-carousel .project-proof-card.is-carousel-active {
  z-index: 2;
  border-color: rgba(7,105,119,.28);
  box-shadow: 0 21px 48px rgba(3,47,56,.095);
  opacity: 1;
  transform: translateY(-3px) scale(1.012);
}
.project-proof-carousel .project-proof-card:hover,
.project-proof-carousel .project-proof-card:focus-within {
  z-index: 3;
  border-color: rgba(7,105,119,.34);
  box-shadow: 0 25px 56px rgba(3,47,56,.115);
  opacity: 1;
  transform: translateY(-5px) scale(1.014);
}
.project-proof-card__cover {
  aspect-ratio: 4 / 3;
  border-bottom: 1px solid rgba(7,105,119,.10);
  background: #edf3f1;
}
.project-proof-card__cover::after,
.project-proof-card__cover figcaption { display: none !important; }
.project-proof-card__cover img,
.project-proof-carousel .project-proof-card__cover img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.001);
  filter: none;
  transition: transform 900ms cubic-bezier(.16,1,.3,1);
}
.project-proof-carousel .project-proof-card:hover .project-proof-card__cover img,
.project-proof-carousel .project-proof-card:focus-within .project-proof-card__cover img,
.project-proof-carousel .project-proof-card.is-carousel-active .project-proof-card__cover img {
  transform: scale(1.025);
  filter: none;
}
.project-proof-card__body {
  display: block;
  padding: 13px;
  background: #fff;
}
.project-proof-card__meta {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
}
.project-proof-card__action {
  display: flex;
  width: 100%;
  min-height: 48px;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  border: 1px solid rgba(7,105,119,.22);
  border-radius: 12px;
  padding: 11px 14px;
  background: #fff;
  color: var(--brand-ink);
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .085em;
  text-transform: uppercase;
  transition:
    color 230ms ease,
    background 230ms ease,
    border-color 230ms ease,
    transform 320ms cubic-bezier(.16,1,.3,1),
    box-shadow 320ms ease;
}
.project-proof-card__action:hover,
.project-proof-card__action:focus-visible {
  border-color: var(--brand);
  background: var(--brand);
  color: #fff;
  box-shadow: 0 10px 24px rgba(3,47,56,.12);
  transform: translateY(-1px);
}
.project-proof-card__action i { font-size: 16px; }
.project-proof-carousel__controls {
  min-height: 46px;
  padding-top: 10px;
}
.project-proof-carousel__progress {
  width: min(210px, 34vw);
  height: 2px;
  border-radius: 99px;
  background: rgba(7,105,119,.13);
}
.project-proof-carousel__progress span {
  background: var(--brand);
  opacity: .82;
}
.project-proof-carousel__button {
  width: 42px;
  height: 42px;
  border: 1px solid rgba(7,105,119,.20);
  border-radius: 12px;
  background: #fff;
  color: var(--brand-ink);
  box-shadow: none;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
.project-proof-carousel__button:hover,
.project-proof-carousel__button:focus-visible {
  border-color: var(--brand);
  background: var(--brand);
  color: #fff;
  box-shadow: 0 9px 22px rgba(3,47,56,.10);
}

/* About / Team — one coherent editorial system, no stranded whitespace. */
.team-section {
  display: grid;
  grid-template-columns: minmax(260px, .70fr) minmax(0, 1.30fr);
  grid-template-rows: auto auto;
  align-items: start;
  column-gap: clamp(34px, 6vw, 82px);
  row-gap: clamp(28px, 3vw, 42px);
}
.team-section__intro {
  grid-column: 1;
  grid-row: 1;
  align-self: center;
  padding-top: clamp(8px, 2vw, 24px);
}
.team-section__intro h2 {
  max-width: 7.4em;
  font-size: clamp(3.3rem, 5vw, 5.65rem);
  line-height: .9;
}
.team-action-grid {
  grid-column: 2;
  grid-row: 1;
  display: grid;
  grid-template-columns: minmax(0, 1.18fr) minmax(210px, .82fr);
  grid-template-rows: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin: 0;
  align-items: stretch;
}
.team-action-grid figure,
.team-action-grid figure:first-child {
  min-height: 0;
  max-height: none;
  aspect-ratio: auto;
  border: 1px solid rgba(7,105,119,.14);
  border-radius: 20px;
  background: #e9f0ee;
  box-shadow: 0 14px 32px rgba(3,47,56,.07);
}
.team-action-grid figure:first-child {
  grid-row: 1 / 3;
  min-height: 540px;
}
.team-action-grid figure:not(:first-child) { min-height: 263px; }
.team-action-grid img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 750ms cubic-bezier(.16,1,.3,1);
}
.team-action-grid figure:first-child img { object-position: center 45%; }
.team-action-grid figure:nth-child(2) img { object-position: center 35%; }
.team-action-grid figure:nth-child(3) img { object-position: center 42%; }
.team-action-grid figure:hover img { transform: scale(1.025); }
.team-action-grid figcaption {
  padding: 68px 18px 18px;
  background: linear-gradient(180deg, rgba(3,47,56,0) 18%, rgba(3,47,56,.82) 100%);
}
.team-action-grid figcaption span { color: #e7f3f1; }
.team-action-grid figcaption b { color: #fff; line-height: .98; }
.team-grid {
  grid-column: 1 / -1;
  grid-row: 2;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-top: 0;
}
.team-grid article {
  display: grid;
  grid-template-columns: clamp(105px, 10vw, 138px) minmax(0, 1fr);
  min-height: 160px;
  overflow: hidden;
  border: 1px solid rgba(7,105,119,.13);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 12px 30px rgba(3,47,56,.055);
}
.team-grid img {
  width: 100%;
  height: 100%;
  aspect-ratio: auto;
  object-fit: cover;
  object-position: center 18%;
}
.team-grid p {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 7px;
  margin: 0;
  padding: 20px 18px;
  font-size: 13px;
  line-height: 1.45;
}
.team-grid p b { color: var(--brand-ink); font-size: 13px; }
.team-grid p span { color: #526d71; }

@media (max-width: 980px) {
  .team-section {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
    row-gap: 28px;
  }
  .team-section__intro,
  .team-action-grid,
  .team-grid {
    grid-column: 1;
    grid-row: auto;
  }
  .team-section__intro { padding-top: 0; }
  .team-section__intro h2 { max-width: 9em; }
  .team-action-grid {
    grid-template-columns: 1.08fr .92fr;
    grid-template-rows: repeat(2, minmax(0, 1fr));
  }
  .team-action-grid figure:first-child { grid-column: 1; grid-row: 1 / 3; min-height: 500px; }
  .team-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .team-grid article { grid-template-columns: 1fr; }
  .team-grid img { height: auto; aspect-ratio: 4 / 3; object-position: center 20%; }
  .team-grid p { min-height: 118px; justify-content: flex-start; }
}

@media (max-width: 680px) {
  .transformation-proof { padding-top: 68px; padding-bottom: 70px; }
  .transformation-proof__heading { margin-bottom: 28px; }
  .project-proof-carousel { --project-card-width: min(84vw, 342px); --project-carousel-gap: 12px; }
  .project-proof-card__cover { aspect-ratio: 16 / 11; }
  .project-proof-card__body { padding: 11px; }
  .project-proof-card__action { min-height: 46px; }
  .project-proof-carousel__progress { width: 34vw; }

  .team-section { row-gap: 22px; }
  .team-section__intro h2 { max-width: 8em; font-size: clamp(3rem, 15vw, 4.5rem); }
  .team-action-grid {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto auto;
    gap: 10px;
  }
  .team-action-grid figure:first-child {
    grid-column: 1 / -1;
    grid-row: 1;
    min-height: 0;
    aspect-ratio: 4 / 5;
  }
  .team-action-grid figure:not(:first-child) {
    grid-row: 2;
    min-height: 0;
    aspect-ratio: 4 / 5;
  }
  .team-action-grid figcaption { padding: 54px 14px 14px; }
  .team-action-grid figcaption b { font-size: clamp(1.05rem, 5vw, 1.35rem); }
  .team-grid { grid-template-columns: 1fr; gap: 10px; }
  .team-grid article {
    grid-template-columns: 112px minmax(0, 1fr);
    min-height: 140px;
  }
  .team-grid img { height: 100%; aspect-ratio: auto; }
  .team-grid p { min-height: 0; padding: 16px; justify-content: center; }
}

@media (prefers-reduced-motion: reduce) {
  .project-proof-carousel .project-proof-card,
  .project-proof-carousel .project-proof-card__cover img,
  .team-action-grid img {
    transition: none !important;
  }
}

/* V7 contrast audit — text accents on light surfaces use a darker amber; decorative dots retain brand orange. */
h1 em,
h2 em { color: #8c5200; }
.hero h1 em,
.wellbeing-band h2 em,
.metrics-band h2 em,
.cta-band h2 em,
.page-hero h1 em,
.section-heading--light h2 em,
.values-section h2 em,
.thank-you h1 em { color: var(--accent-on-dark-display); }
.specialty-section__copy li span,
.service-stories__copy li span,
.faq-list summary span,
.stars,
.review-card__meta .stars,
.rating-picker label.is-active { color: #8c5200; }

:where(a, button, input, textarea, select, summary):focus-visible {
  outline: 3px solid #fff;
  outline-offset: 2px;
  box-shadow: 0 0 0 5px var(--brand);
}
.quote-modal input:focus,
.quote-modal textarea:focus,
.quote-modal select:focus,
.review-form input:focus,
.review-form textarea:focus {
  border-color: var(--brand);
  outline: 2px solid var(--brand);
  outline-offset: 2px;
  box-shadow: 0 0 0 4px rgba(7,105,119,.12);
}


/* V8 — project carousel interaction + strict media placement */
.project-proof-card__cover--interactive{
  cursor:pointer;
  outline:none;
}
.project-proof-card__cover--interactive::after{
  content:"";
  position:absolute;
  inset:0;
  border:1px solid transparent;
  border-radius:inherit;
  pointer-events:none;
  transition:border-color .28s ease, box-shadow .28s ease;
}
.project-proof-card__cover--interactive:hover::after,
.project-proof-card__cover--interactive:focus-visible::after{
  border-color:rgba(13,107,115,.34);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.55);
}
.project-proof-card__cover--interactive:focus-visible{
  box-shadow:0 0 0 3px rgba(245,151,0,.28);
}
.project-proof-carousel__viewport.is-dragging .project-proof-card__cover--interactive{
  cursor:grabbing;
}


/* V9 — guaranteed two-image Before/After comparison */
.comparison-modal__grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;align-items:stretch;background:#dfe7e4!important;}
.comparison-modal__grid figure{display:grid;grid-template-rows:1fr;min-width:0;background:#f4f7f6!important;}
.comparison-modal__media{min-height:clamp(360px,58svh,650px)!important;background:#eef3f1;}
.comparison-modal__media img{display:block;width:100%!important;height:100%!important;max-height:clamp(360px,58svh,650px)!important;object-fit:contain!important;object-position:center!important;background:#eef3f1;}
.project-proof-card__cover--interactive{cursor:pointer;}
.project-proof-card__cover--interactive:focus-visible{outline:3px solid var(--accent,#f59a0a);outline-offset:4px;}
@media(max-width:760px){
  .comparison-modal__grid{grid-template-columns:1fr!important;}
  .comparison-modal__media{min-height:34svh!important;max-height:39svh!important;}
  .comparison-modal__media img{max-height:39svh!important;}
}


/* 2026-08-09 · V10 — true Before/After preview + full-screen comparison */
.project-proof-carousel .project-proof-card{
  cursor:default;
}
.project-proof-card__hit{
  display:block;
  width:100%;
  height:100%;
  margin:0;
  padding:0;
  border:0;
  border-radius:inherit;
  background:#fff;
  color:inherit;
  text-align:left;
  cursor:pointer;
  font:inherit;
  appearance:none;
  -webkit-appearance:none;
}
.project-proof-card__hit:focus-visible{
  outline:3px solid var(--accent,#f59a0a);
  outline-offset:3px;
}
.project-proof-card__comparison-preview{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  aspect-ratio:16 / 10;
  margin:0;
  overflow:hidden;
  border-bottom:1px solid rgba(7,105,119,.12);
  background:#edf3f1;
}
.project-proof-card__comparison-preview::after{
  content:"";
  position:absolute;
  z-index:4;
  top:0;
  bottom:0;
  left:50%;
  width:1px;
  background:rgba(255,255,255,.88);
  box-shadow:0 0 0 1px rgba(7,105,119,.08);
  pointer-events:none;
}
.project-proof-card__pane{
  position:relative;
  display:grid;
  min-width:0;
  place-items:center;
  overflow:hidden;
  background:#edf3f1;
}
.project-proof-card__pane--after{background:#f2f6f4;}
.project-proof-card__pane img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
  background:inherit;
  transform:none!important;
  filter:none!important;
  transition:transform 700ms cubic-bezier(.16,1,.3,1),opacity 260ms ease;
}
.project-proof-card__hit:hover .project-proof-card__pane img,
.project-proof-card__hit:focus-visible .project-proof-card__pane img{
  transform:scale(1.018)!important;
}
.project-proof-card__state{
  position:absolute;
  z-index:5;
  top:10px;
  left:10px;
  display:inline-flex;
  align-items:center;
  min-height:26px;
  padding:5px 9px;
  border:1px solid rgba(255,255,255,.55);
  border-radius:999px;
  background:rgba(3,47,56,.90);
  color:#fff;
  box-shadow:0 4px 14px rgba(3,47,56,.10);
  font-size:8px;
  font-weight:900;
  letter-spacing:.12em;
  line-height:1;
  text-transform:uppercase;
}
.project-proof-card__state--after{
  right:10px;
  left:auto;
  background:rgba(7,105,119,.94);
}
.project-proof-card__body{
  display:grid!important;
  grid-template-columns:minmax(0,1fr);
  gap:10px;
  padding:13px!important;
  background:#fff;
}
.project-proof-card__meta{
  position:static!important;
  display:grid!important;
  width:auto!important;
  height:auto!important;
  gap:3px;
  overflow:visible!important;
  clip:auto!important;
  clip-path:none!important;
  white-space:normal!important;
  padding:1px 2px 0;
}
.project-proof-card__category{
  color:#60777a;
  font-size:8px;
  font-weight:800;
  letter-spacing:.105em;
  line-height:1.2;
  text-transform:uppercase;
}
.project-proof-card__title{
  display:block;
  color:var(--brand-ink);
  font-family:var(--display-font,inherit);
  font-size:clamp(18px,1.5vw,22px);
  font-weight:700;
  line-height:1.05;
  letter-spacing:-.02em;
}
.project-proof-card__action{
  display:flex!important;
  width:100%;
  min-height:46px;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  border:1px solid rgba(7,105,119,.22);
  border-radius:12px;
  padding:10px 13px;
  background:#fff;
  color:var(--brand-ink);
  font-size:9px;
  font-weight:900;
  letter-spacing:.08em;
  line-height:1;
  text-transform:uppercase;
  transition:background .24s ease,color .24s ease,border-color .24s ease,transform .32s cubic-bezier(.16,1,.3,1),box-shadow .32s ease;
}
.project-proof-card__hit:hover .project-proof-card__action,
.project-proof-card__hit:focus-visible .project-proof-card__action,
.project-proof-card.is-carousel-active .project-proof-card__action{
  border-color:var(--brand);
  background:var(--brand);
  color:#fff;
  box-shadow:0 9px 22px rgba(3,47,56,.10);
}
.project-proof-card__hit:hover .project-proof-card__action,
.project-proof-card__hit:focus-visible .project-proof-card__action{
  transform:translateY(-1px);
}
.project-proof-carousel__viewport.is-dragging .project-proof-card__hit{
  cursor:grabbing;
}

/* The modal is a true screen-scale viewer. The complete source images use contain. */
.comparison-modal-backdrop{
  padding:clamp(8px,1.4vw,18px)!important;
  background:rgba(1,24,29,.92)!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
.comparison-modal{
  width:min(1500px,calc(100vw - 20px))!important;
  max-height:96svh!important;
  border:1px solid rgba(255,255,255,.22)!important;
  border-radius:18px!important;
  overflow:auto!important;
  background:#f7f9f8!important;
}
.comparison-modal__heading{
  padding:clamp(18px,2.3vw,30px) clamp(18px,3vw,38px) 14px!important;
  padding-right:76px!important;
}
.comparison-modal__heading h2{
  font-size:clamp(28px,3.6vw,52px)!important;
}
.comparison-modal__grid{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  min-height:min(72svh,760px)!important;
  align-items:stretch!important;
  gap:1px!important;
  background:#cfdad6!important;
}
.comparison-modal__grid figure{
  position:relative!important;
  display:grid!important;
  min-width:0!important;
  margin:0!important;
  background:#eef3f1!important;
}
.comparison-modal__media{
  display:grid!important;
  width:100%!important;
  min-height:min(72svh,760px)!important;
  place-items:center!important;
  overflow:hidden!important;
  background:#eef3f1!important;
}
.comparison-modal__media.is-loaded{background:#eef3f1!important;}
.comparison-modal__media img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-height:min(72svh,760px)!important;
  object-fit:contain!important;
  object-position:center!important;
  background:#eef3f1!important;
}
.comparison-label{
  z-index:6!important;
  top:12px!important;
  left:12px!important;
  min-height:29px!important;
  padding:6px 10px!important;
  border:1px solid rgba(255,255,255,.52)!important;
  border-radius:999px!important;
  background:rgba(3,47,56,.92)!important;
  color:#fff!important;
  box-shadow:0 5px 18px rgba(3,47,56,.11)!important;
}
.comparison-label--after{
  right:12px!important;
  left:auto!important;
  background:rgba(7,105,119,.94)!important;
}

@media(max-width:760px){
  .project-proof-card__comparison-preview{aspect-ratio:16 / 11;}
  .project-proof-card__state{top:8px;left:8px;min-height:24px;padding:5px 8px;font-size:7px;}
  .project-proof-card__state--after{right:8px;left:auto;}
  .project-proof-card__body{padding:11px!important;gap:8px;}
  .project-proof-card__title{font-size:19px;}
  .project-proof-card__action{min-height:45px;padding:9px 11px;}
  .comparison-modal-backdrop{padding:4px!important;}
  .comparison-modal{width:100%!important;max-height:98svh!important;border-radius:14px!important;}
  .comparison-modal__heading{padding:16px 58px 10px 14px!important;}
  .comparison-modal__heading h2{font-size:28px!important;}
  .comparison-modal__heading p{display:none!important;}
  .comparison-modal__grid{grid-template-columns:1fr!important;min-height:auto!important;}
  .comparison-modal__grid figure{min-height:0!important;}
  .comparison-modal__media{min-height:38svh!important;max-height:none!important;}
  .comparison-modal__media img{height:38svh!important;max-height:38svh!important;object-fit:contain!important;}
  .comparison-label{top:8px!important;left:8px!important;}
  .comparison-label--after{right:8px!important;left:auto!important;}
}
@media(prefers-reduced-motion:reduce){
  .project-proof-card__pane img,.project-proof-card__action{transition:none!important;}
}


/* === 2026-08-09 curated video experience V11 === */
.video-proof--curated { content-visibility:auto; contain-intrinsic-size:1250px; }
.video-proof--curated .section-heading { align-items:end; }
.video-proof--curated .section-heading > p { max-width:520px; }
.video-proof--curated .video-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.video-proof--curated .video-card {
  overflow:hidden;
  border:1px solid rgba(8,103,120,.16);
  border-radius:20px;
  background:#fff;
  box-shadow:0 12px 30px rgba(2,47,56,.08);
  transform:translateZ(0);
  transition:transform 360ms var(--ease),border-color 360ms var(--ease),box-shadow 360ms var(--ease);
}
.video-proof--curated .video-card:hover {
  border-color:rgba(8,103,120,.32);
  box-shadow:0 18px 38px rgba(2,47,56,.12);
  transform:translateY(-3px);
}
.video-proof--curated .local-video-card {
  aspect-ratio:9 / 16;
  max-height:560px;
  border-radius:0;
  background:#073b45;
  box-shadow:none;
}
.video-proof--curated .local-video-card video { object-fit:cover; }
.video-proof--curated .local-video-card__play {
  background:linear-gradient(180deg,rgba(2,35,43,.02) 42%,rgba(2,35,43,.56) 100%);
  transition:background 260ms var(--ease),opacity 220ms var(--ease);
}
.video-proof--curated .local-video-card__play:hover {
  background:linear-gradient(180deg,rgba(2,35,43,.04) 35%,rgba(2,35,43,.66) 100%);
}
.video-proof--curated .local-video-card__play span {
  width:54px;
  height:54px;
  border:1px solid rgba(255,255,255,.86);
  background:rgba(255,255,255,.94);
  color:#075766;
  box-shadow:0 10px 24px rgba(0,0,0,.16);
  backdrop-filter:none;
}
.video-proof--curated .local-video-card__play b { color:#fff; text-shadow:0 1px 12px rgba(0,0,0,.28); }
.video-proof--curated .local-project-video p {
  min-height:78px;
  margin:0;
  padding:15px 17px 17px;
  display:grid;
  align-content:center;
  gap:4px;
  background:#fff;
  color:#123b42;
  letter-spacing:0;
  text-transform:none;
}
.video-proof--curated .local-project-video p span {
  color:#4d6f6b;
  font-size:9px;
  font-weight:800;
  letter-spacing:.09em;
  text-transform:uppercase;
}
.video-proof--curated .local-project-video p b {
  color:#073f4a;
  font-family:var(--display);
  font-size:clamp(.98rem,1.2vw,1.12rem);
  line-height:1.16;
}
@media (max-width:980px) {
  .video-proof--curated .video-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .video-proof--curated .local-video-card { max-height:620px; }
}
@media (max-width:680px) {
  .video-proof--curated .section-heading { align-items:start; }
  .video-proof--curated .video-grid { grid-template-columns:1fr; gap:14px; }
  .video-proof--curated .video-card { border-radius:16px; }
  .video-proof--curated .local-video-card { max-height:72svh; }
  .video-proof--curated .local-project-video p { min-height:72px; padding:14px 15px 16px; }
}
@media (prefers-reduced-motion:reduce) {
  .video-proof--curated .video-card { transition:none !important; }
}


/* === 2026-08-09 V12 · premium mosaic + carousel glide refinement === */

/* Carousel: compositor-friendly track and refined interaction feedback. */
.project-proof-carousel__track {
  will-change: transform;
  transform-style: preserve-3d;
  backface-visibility: hidden;
}
.project-proof-carousel__viewport {
  touch-action: pan-y pinch-zoom;
}
.project-proof-carousel.is-stepping .project-proof-card {
  transition-duration: 760ms;
}
.project-proof-carousel__button {
  transition: background 240ms ease, color 240ms ease, border-color 240ms ease,
              box-shadow 320ms cubic-bezier(.16,1,.3,1), transform 320ms cubic-bezier(.16,1,.3,1);
}
.project-proof-carousel__button:hover,
.project-proof-carousel__button:focus-visible { transform: translateY(-1px); }
.project-proof-carousel__button:active { transform: translateY(0) scale(.965); }

/* Consolidated real-work section. One asset = one editorial appearance. */
.recent-media-section.gallery-page {
  position: relative;
  padding-top: clamp(78px, 8vw, 118px);
  padding-bottom: clamp(82px, 8vw, 122px);
  content-visibility: auto;
  contain-intrinsic-size: 1800px;
}
.recent-media-section.gallery-page::before {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 1px;
  background: rgba(7,105,119,.13);
  content: "";
}
.recent-media-heading {
  display: grid;
  grid-template-columns: minmax(0,1.15fr) minmax(280px,.85fr);
  align-items: end;
  gap: clamp(34px, 7vw, 98px);
  margin-bottom: clamp(34px, 4.4vw, 58px);
}
.recent-media-heading__copy h2 {
  max-width: 9.3em;
  margin-bottom: 18px;
}
.recent-media-heading__text {
  max-width: 590px;
  margin: 0;
  color: #526d71;
  font-size: 13px;
  line-height: 1.8;
}
.recent-media-toolbar {
  display: grid;
  justify-items: end;
  gap: 13px;
  padding-bottom: 5px;
}
.recent-media-toolbar > p {
  margin: 0;
  color: #61787b;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.recent-media-toolbar .filter-list {
  justify-content: flex-end;
  margin: 0;
}

/* Natural-ratio masonry: no stretching and no aggressive crop. */
.recent-media-mosaic {
  columns: 3;
  column-gap: clamp(12px, 1.35vw, 18px);
}
.recent-media-card {
  position: relative;
  display: block;
  width: 100%;
  margin: 0 0 clamp(12px, 1.35vw, 18px);
  break-inside: avoid;
  overflow: hidden;
  border: 1px solid rgba(7,105,119,.13);
  border-radius: 20px;
  background: #eaf1ef;
  color: #fff;
  isolation: isolate;
  box-shadow: 0 14px 34px rgba(3,47,56,.055);
  transform: translateZ(0);
  transition: transform 560ms cubic-bezier(.16,1,.3,1),
              box-shadow 560ms cubic-bezier(.16,1,.3,1),
              border-color 360ms ease;
}
.recent-media-card--feature {
  column-span: all;
  margin-bottom: clamp(14px, 1.55vw, 22px);
}
.recent-media-card > img {
  position: relative;
  inset: auto;
  display: block;
  width: 100%;
  height: auto;
  max-height: none;
  object-fit: contain;
  object-position: center;
  background: #eaf1ef;
  transform: scale(1.001);
  transition: transform 900ms cubic-bezier(.16,1,.3,1);
}
.recent-media-card::after {
  position: absolute;
  z-index: 1;
  inset: auto 0 0;
  height: 48%;
  background: linear-gradient(180deg, rgba(3,47,56,0), rgba(3,47,56,.84));
  content: "";
  pointer-events: none;
}
.recent-media-card::before {
  position: absolute;
  z-index: 2;
  top: 15px;
  left: 15px;
  display: grid;
  min-width: 34px;
  height: 28px;
  place-items: center;
  border: 1px solid rgba(255,255,255,.62);
  border-radius: 999px;
  background: rgba(3,47,56,.72);
  color: #fff;
  content: attr(data-mosaic-index);
  font-size: 9px;
  font-weight: 850;
  letter-spacing: .08em;
}
.recent-media-card__caption {
  position: absolute !important;
  z-index: 2 !important;
  right: 0;
  bottom: 0;
  left: 0;
  padding: clamp(18px, 2.1vw, 28px) !important;
  pointer-events: none;
}
.recent-media-card__caption > span {
  display: block;
  margin-bottom: 7px;
  color: #e2f0ee;
  font-size: 9px;
  font-weight: 850;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.recent-media-card__caption h3 {
  max-width: 15em;
  margin: 0;
  color: #fff;
  font-size: clamp(1.25rem, 1.8vw, 1.9rem);
  line-height: 1.02;
  text-wrap: balance;
}
.recent-media-card--feature .recent-media-card__caption h3 {
  max-width: 12em;
  font-size: clamp(2rem, 3.4vw, 3.7rem);
}
.recent-media-card .gallery-grid__trigger {
  position: absolute;
  z-index: 4;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
  border-radius: inherit;
  padding: 0;
  background: transparent;
  color: transparent;
  opacity: 1;
  cursor: zoom-in;
}
.recent-media-card .gallery-grid__trigger span {
  position: absolute;
  top: 15px;
  right: 15px;
  display: grid;
  width: 40px;
  height: 40px;
  min-height: 0;
  place-items: center;
  border: 1px solid rgba(255,255,255,.72);
  border-radius: 50%;
  padding: 0;
  background: #fff;
  color: var(--brand-ink);
  box-shadow: 0 8px 24px rgba(3,47,56,.13);
  font-size: 0;
  opacity: .92;
  transform: none;
  transition: transform 360ms cubic-bezier(.16,1,.3,1), opacity 260ms ease, background 260ms ease, color 260ms ease;
}
.recent-media-card .gallery-grid__trigger span::before {
  content: "↗";
  font-size: 16px;
  font-weight: 700;
}
.recent-media-card:hover,
.recent-media-card:focus-within {
  border-color: rgba(7,105,119,.30);
  box-shadow: 0 24px 54px rgba(3,47,56,.105);
  transform: translateY(-3px);
}
.recent-media-card:hover > img,
.recent-media-card:focus-within > img { transform: scale(1.018); }
.recent-media-card:hover .gallery-grid__trigger span,
.recent-media-card:focus-within .gallery-grid__trigger span {
  background: var(--brand);
  color: #fff;
  transform: translateY(-1px) rotate(3deg);
}
.recent-media-card[hidden] { display: none !important; }

/* Curated video proof stays intentionally separate from the still-image mosaic. */
.video-proof--curated {
  border-top: 1px solid rgba(7,105,119,.10);
  padding-top: clamp(78px, 8vw, 112px);
}
.video-proof--curated .video-card {
  border-radius: 18px;
  overflow: hidden;
}

@media (max-width: 980px) {
  .recent-media-heading { grid-template-columns: 1fr; align-items: start; gap: 24px; }
  .recent-media-toolbar { justify-items: start; }
  .recent-media-toolbar .filter-list { justify-content: flex-start; }
  .recent-media-mosaic { columns: 2; }
  .recent-media-card--feature { column-span: all; }
}
@media (max-width: 620px) {
  .recent-media-section.gallery-page { padding-top: 66px; padding-bottom: 74px; }
  .recent-media-heading { margin-bottom: 28px; }
  .recent-media-heading__copy h2 { max-width: 8.4em; }
  .recent-media-toolbar > p { display: none; }
  .recent-media-toolbar .filter-list { width: 100%; overflow-x: auto; flex-wrap: nowrap; justify-content: flex-start; padding-bottom: 4px; scrollbar-width: none; }
  .recent-media-toolbar .filter-list::-webkit-scrollbar { display: none; }
  .recent-media-mosaic { columns: 1; }
  .recent-media-card,
  .recent-media-card--feature { column-span: none; margin-bottom: 12px; border-radius: 17px; }
  .recent-media-card__caption { padding: 17px !important; }
  .recent-media-card--feature .recent-media-card__caption h3 { font-size: clamp(1.65rem, 8vw, 2.5rem); }
  .recent-media-card .gallery-grid__trigger span { top: 12px; right: 12px; width: 38px; height: 38px; }
  .recent-media-card::before { top: 12px; left: 12px; }
}
@media (hover: none) {
  .recent-media-card:hover { transform: none; }
  .recent-media-card .gallery-grid__trigger span { opacity: .96; }
}
@media (prefers-reduced-motion: reduce) {
  .recent-media-card,
  .recent-media-card > img,
  .recent-media-card .gallery-grid__trigger span,
  .project-proof-carousel__button { transition: none !important; }
}
/* V12 hard reset for legacy recent-media aspect rules after migration to masonry. */
.recent-media-mosaic .recent-media-card,
.recent-media-mosaic .recent-media-card--feature,
.recent-media-mosaic .recent-media-card--portrait,
.recent-media-mosaic .recent-media-card--landscape,
.recent-media-mosaic .recent-media-card--balanced {
  aspect-ratio: auto !important;
  grid-column: auto !important;
  min-height: 0 !important;
}


/* === 2026-08-09 V13 · final reserve curation / 50 photos + 10 videos === */
.recent-media-mosaic .recent-media-card[data-gallery-item="Commercial"] .recent-media-card__caption span { color:#0a6472; }
.recent-media-mosaic .recent-media-card:nth-child(5n+2) { break-inside:avoid; }

.team-detail-strip {
  margin-top: clamp(18px,2.5vw,34px);
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  padding-top:clamp(18px,2.5vw,30px);
  border-top:1px solid rgba(8,103,120,.14);
}
.team-detail-strip figure {
  margin:0;
  overflow:hidden;
  border:1px solid rgba(8,103,120,.13);
  border-radius:18px;
  background:#fff;
  box-shadow:0 10px 28px rgba(5,56,66,.07);
  transition:transform 360ms var(--ease),box-shadow 360ms var(--ease),border-color 360ms var(--ease);
}
.team-detail-strip figure:hover {
  transform:translateY(-3px);
  border-color:rgba(8,103,120,.26);
  box-shadow:0 16px 34px rgba(5,56,66,.10);
}
.team-detail-strip img {
  display:block;
  width:100%;
  height:auto;
  max-height:470px;
  object-fit:cover;
  object-position:center 20%;
  background:#edf3f1;
}
.team-detail-strip figcaption {
  display:grid;
  gap:4px;
  padding:14px 16px 17px;
}
.team-detail-strip figcaption span {
  color:#5c7775;
  font-size:9px;
  font-weight:800;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.team-detail-strip figcaption b {
  color:#083f49;
  font-family:var(--display);
  font-size:clamp(.98rem,1.2vw,1.12rem);
  line-height:1.18;
}

/* The expanded set stays balanced on wide screens without reducing video detail. */
.video-proof--curated .video-grid { align-items:start; }
.video-proof--curated .local-video-card video { width:100%; height:100%; }

@media (min-width:1320px) {
  .video-proof--curated .video-grid {
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:14px;
  }
  .video-proof--curated .local-video-card { max-height:560px; }
}

@media (max-width:900px) {
  .team-detail-strip { grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
  .team-detail-strip figcaption { padding:12px 12px 14px; }
}
@media (max-width:680px) {
  .team-detail-strip { grid-template-columns:1fr; gap:12px; }
  .team-detail-strip figure { display:grid; grid-template-columns:minmax(118px,38%) 1fr; min-height:170px; }
  .team-detail-strip img { height:100%; max-height:none; object-position:center 18%; }
  .team-detail-strip figcaption { align-content:center; }
}
@media (prefers-reduced-motion:reduce) {
  .team-detail-strip figure { transition:none!important; }
}

/* ============================================================
   V16 — Fullscreen wellbeing interstitial between review + FAQ
   ============================================================ */
.wellbeing-interstitial {
  position: relative;
  z-index: 1;
  height: 138svh;
  min-height: 900px;
  background: var(--brand);
  isolation: isolate;
}

.wellbeing-interstitial__sticky {
  position: sticky;
  top: var(--header-height);
  height: calc(100svh - var(--header-height));
  min-height: 640px;
  overflow: hidden;
  background: var(--brand);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.18), inset 0 -1px 0 rgba(0, 0, 0, 0.05);
  isolation: isolate;
}

.wellbeing-interstitial__orange {
  position: absolute;
  z-index: 0;
  inset: 0 0 auto;
  height: 58%;
  background: linear-gradient(180deg, #f5a20f 0%, #f3a00e 64%, #ee970b 100%);
}

.wellbeing-interstitial__portrait {
  position: absolute;
  z-index: 2;
  top: clamp(8px, 1.7vh, 22px);
  left: 50%;
  width: min(54vw, 780px);
  height: min(68vh, 650px);
  transform: translateX(-50%);
  pointer-events: none;
}

.wellbeing-interstitial__portrait img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 5%;
  filter: saturate(0.98) contrast(1.015);
}

.wellbeing-interstitial__ring {
  position: absolute;
  z-index: 3;
  top: 27%;
  left: 50%;
  width: min(126vw, 2050px);
  aspect-ratio: 1.42 / 1;
  transform: translateX(-50%);
  border: clamp(105px, 12vw, 220px) solid #f7f7f5;
  border-radius: 50%;
  pointer-events: none;
}

.wellbeing-interstitial__halo {
  position: absolute;
  z-index: 1;
  inset: 0;
  background:
    radial-gradient(circle at 50% 48%, rgba(255, 255, 255, 0.03) 0 24%, transparent 48%),
    linear-gradient(180deg, transparent 0 45%, rgba(3, 55, 65, 0.08) 75%, rgba(3, 55, 65, 0.18) 100%);
  pointer-events: none;
}

.wellbeing-interstitial__copy {
  position: absolute;
  z-index: 5;
  top: 49%;
  left: 50%;
  width: min(560px, calc(100% - 48px));
  transform: translate(-50%, -50%);
  color: #fff;
  text-align: center;
  text-shadow: 0 2px 18px rgba(2, 42, 50, 0.22);
}

.wellbeing-interstitial__copy::before {
  position: absolute;
  z-index: -1;
  top: 50%;
  left: 50%;
  width: 115%;
  height: 150%;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(0, 69, 80, 0.18), transparent 67%);
  content: "";
  pointer-events: none;
}

.wellbeing-interstitial__copy > span {
  display: inline-block;
  margin-bottom: 13px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.19em;
  opacity: 0.92;
  text-transform: uppercase;
}

.wellbeing-interstitial__copy h2 {
  display: grid;
  gap: 2px;
  margin: 0;
  color: #fff;
  font-family: var(--body);
  letter-spacing: -0.045em;
  line-height: 0.98;
}

.wellbeing-interstitial__copy h2 strong,
.wellbeing-interstitial__copy h2 em {
  display: block;
  color: #fff;
  font-style: normal;
}

.wellbeing-interstitial__copy h2 strong {
  font-size: clamp(2.3rem, 4.1vw, 4.9rem);
  font-weight: 700;
}

.wellbeing-interstitial__copy h2 em {
  font-size: clamp(2rem, 3.65vw, 4.35rem);
  font-weight: 400;
  letter-spacing: -0.035em;
}

.wellbeing-interstitial__line {
  position: absolute;
  z-index: 5;
  right: clamp(24px, 4vw, 70px);
  bottom: clamp(24px, 4vw, 58px);
  width: clamp(62px, 7vw, 116px);
  height: 1px;
  background: rgba(255, 255, 255, 0.55);
}

.faq-shell--after-wellbeing {
  position: relative;
  z-index: 6;
  margin-top: -9svh;
  border-radius: clamp(30px, 4.2vw, 68px) clamp(30px, 4.2vw, 68px) 0 0;
  background: var(--cream);
  box-shadow: 0 -26px 70px rgba(3, 47, 56, 0.12);
}

.faq-shell--after-wellbeing .faq-section {
  padding-top: clamp(95px, 10vw, 142px);
}

@media (max-width: 900px) {
  .wellbeing-interstitial {
    height: 122svh;
    min-height: 780px;
  }

  .wellbeing-interstitial__sticky {
    top: var(--header-height);
    min-height: 580px;
  }

  .wellbeing-interstitial__orange { height: 56%; }

  .wellbeing-interstitial__portrait {
    top: clamp(18px, 4vh, 44px);
    width: min(82vw, 680px);
    height: min(58vh, 570px);
  }

  .wellbeing-interstitial__ring {
    top: 31%;
    width: 160vw;
    border-width: clamp(88px, 15vw, 160px);
  }

  .wellbeing-interstitial__copy {
    top: 52%;
    width: min(540px, calc(100% - 36px));
  }

  .faq-shell--after-wellbeing { margin-top: -7svh; }
}

@media (max-width: 620px) {
  .wellbeing-interstitial {
    height: 112svh;
    min-height: 720px;
  }

  .wellbeing-interstitial__sticky {
    top: var(--header-height);
    min-height: 560px;
  }

  .wellbeing-interstitial__orange { height: 54%; }

  .wellbeing-interstitial__portrait {
    top: 26px;
    width: 100vw;
    height: 50vh;
    max-height: 500px;
  }

  .wellbeing-interstitial__portrait img {
    object-position: 50% 0;
  }

  .wellbeing-interstitial__ring {
    top: 33%;
    width: 205vw;
    border-width: clamp(82px, 22vw, 125px);
  }

  .wellbeing-interstitial__copy {
    top: 53%;
    width: calc(100% - 34px);
  }

  .wellbeing-interstitial__copy > span {
    margin-bottom: 9px;
    font-size: 9px;
  }

  .wellbeing-interstitial__copy h2 strong { font-size: clamp(2.05rem, 11vw, 3.15rem); }
  .wellbeing-interstitial__copy h2 em { font-size: clamp(1.85rem, 9.6vw, 2.75rem); }
  .wellbeing-interstitial__line { display: none; }
  .faq-shell--after-wellbeing {
    margin-top: -5svh;
    border-radius: 28px 28px 0 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .wellbeing-interstitial {
    height: auto;
    min-height: 0;
  }
  .wellbeing-interstitial__sticky {
    position: relative;
    top: auto;
    height: min(88svh, 780px);
  }
  .faq-shell--after-wellbeing { margin-top: 0; }
}

/* === 2026-08-09 V17 · user-supplied WebP gallery integration === */
.recent-media-mosaic .recent-media-card--graphic::after {
  height: 22%;
  background: linear-gradient(180deg, rgba(3,47,56,0), rgba(3,47,56,.24));
}
.recent-media-mosaic .recent-media-card--graphic .recent-media-card__caption {
  opacity: 0;
}
.recent-media-mosaic .recent-media-card--graphic > img {
  background: #f7f7f4;
}
@media (max-width: 620px) {
  .recent-media-mosaic .recent-media-card--graphic .recent-media-card__caption { display: none; }
}

/* ============================================================
   V19 — Final campaign artwork interstitial
   Supplied advertising artwork + sticky fullscreen transition
   ============================================================ */
.wellbeing-interstitial--campaign {
  position: relative;
  z-index: 1;
  height: 172svh;
  min-height: 980px;
  background: #0a6978;
  isolation: isolate;
}

.wellbeing-interstitial--campaign .wellbeing-interstitial__sticky {
  --wb-inset: 3.2%;
  --wb-radius: 34px;
  --wb-scale: 1.018;
  position: sticky;
  top: 0;
  width: 100%;
  height: 100svh;
  min-height: 620px;
  overflow: hidden;
  clip-path: inset(var(--wb-inset) round var(--wb-radius));
  background:
    linear-gradient(180deg,
      #f4a106 0%,
      #f4a106 30%,
      #f6f4ef 30%,
      #f6f4ef 73%,
      #0a6978 73%,
      #0a6978 100%);
  box-shadow: 0 0 0 1px rgba(255,255,255,.12), 0 28px 76px rgba(3,47,56,.14);
  isolation: isolate;
  will-change: clip-path;
}

.wellbeing-interstitial--campaign .wellbeing-interstitial__artwork {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  margin: 0;
  overflow: hidden;
  background: inherit;
}

.wellbeing-interstitial--campaign .wellbeing-interstitial__artwork img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: 50% 50%;
  transform: scale(var(--wb-scale));
  transform-origin: 50% 50%;
  filter: saturate(1.015) contrast(1.012);
  will-change: transform;
}

/* Blend the artwork into wide screens instead of showing hard pillar-box bars. */
@media (min-aspect-ratio: 3/2) {
  .wellbeing-interstitial--campaign .wellbeing-interstitial__artwork {
    background:
      linear-gradient(180deg,
        #f4a106 0%,
        #f4a106 29%,
        #f6f4ef 29%,
        #f6f4ef 72%,
        #0a6978 72%,
        #0a6978 100%);
  }
}

@media (max-width: 900px) {
  .wellbeing-interstitial--campaign {
    height: 150svh;
    min-height: 820px;
  }
  .wellbeing-interstitial--campaign .wellbeing-interstitial__sticky {
    min-height: 600px;
  }
  .wellbeing-interstitial--campaign .wellbeing-interstitial__artwork img {
    /* On portrait screens, fill the viewport while keeping the woman + slogan centered. */
    object-fit: cover;
    object-position: 50% 50%;
  }
  .faq-shell--after-wellbeing { margin-top: -7svh; }
}

@media (max-width: 620px) {
  .wellbeing-interstitial--campaign {
    height: 136svh;
    min-height: 740px;
  }
  .wellbeing-interstitial--campaign .wellbeing-interstitial__sticky {
    min-height: 560px;
  }
  .wellbeing-interstitial--campaign .wellbeing-interstitial__artwork img {
    object-position: 50% 47%;
  }
  .faq-shell--after-wellbeing {
    margin-top: -4svh;
    border-radius: 28px 28px 0 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .wellbeing-interstitial--campaign {
    height: auto;
    min-height: 0;
  }
  .wellbeing-interstitial--campaign .wellbeing-interstitial__sticky {
    --wb-inset: 0%;
    --wb-radius: 0px;
    --wb-scale: 1;
    position: relative;
    top: auto;
    height: min(92svh, 860px);
  }
  .faq-shell--after-wellbeing { margin-top: 0; }
}


/* ===== Premium refinement pass — 2026-08-10 ===== */

/* Footer structure refined to match the approved end-of-page composition */
.site-footer {
  padding-top: clamp(72px, 8vw, 96px);
  background:
    linear-gradient(180deg, rgba(5, 70, 81, 0.03), rgba(5, 70, 81, 0) 120px),
    #032f38;
}
.footer__top {
  grid-template-columns: minmax(260px, .9fr) minmax(540px, 1.1fr);
  gap: clamp(34px, 6vw, 96px);
  align-items: start;
}
.footer__brand {
  max-width: 390px;
}
.footer__brand .logo img {
  width: min(100%, 206px);
}
.footer__brand > p {
  margin-bottom: 30px;
  max-width: 250px;
}
.footer__links {
  grid-template-columns: minmax(120px, 1fr) minmax(220px, 1.15fr) minmax(140px, .9fr);
  gap: clamp(24px, 4vw, 62px);
}
.footer__links > div {
  gap: 10px;
}
.footer__links a,
.footer__links p,
.footer__links button {
  max-width: 100%;
  word-break: break-word;
}
.footer__bottom {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: center;
  gap: 18px;
}
.footer__bottom > span:nth-child(2),
.footer__bottom > span:nth-child(3) {
  text-align: center;
}
.footer__bottom > span:last-child {
  text-align: right;
}

/* Service image trio — consistent, realistic and premium */
.service-media-proof__grid {
  align-items: stretch;
}
.service-media-proof__grid article {
  display: flex;
  flex-direction: column;
  height: 100%;
  border-radius: 24px;
  overflow: hidden;
  background: linear-gradient(180deg, #ffffff, #f8fbfb);
  box-shadow: 0 20px 48px rgba(3, 47, 56, 0.08);
}
.service-media-proof__grid article > img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}
.service-media-proof__grid article:nth-child(1) > img {
  object-position: center 56%;
}
.service-media-proof__grid article:nth-child(2) > img {
  object-position: center 62%;
}
.service-media-proof__grid article:nth-child(3) > img {
  object-position: center 54%;
}
.service-media-proof__grid article > div {
  display: flex;
  flex: 1;
  flex-direction: column;
  justify-content: space-between;
  gap: 12px;
  padding: 22px 22px 24px;
}
.service-media-proof__grid h3 {
  max-width: 16ch;
  line-height: 0.98;
}

/* Before & after carousel controls */
.project-proof-carousel {
  border-radius: 30px;
  overflow: visible;
}
.project-proof-carousel__controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-top: 22px;
  padding: 0 4px;
}
.project-proof-carousel__progress {
  position: relative;
  flex: 1;
  max-width: 220px;
  height: 7px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(7, 105, 119, 0.12);
  box-shadow: inset 0 1px 2px rgba(3, 47, 56, 0.08);
}
.project-proof-carousel__progress span {
  display: block;
  width: 36%;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #076977, #0a8594);
  box-shadow: 0 2px 12px rgba(7, 105, 119, 0.26);
  animation: deloguCarouselProgress 5.8s linear infinite;
  transform-origin: left center;
}
@keyframes deloguCarouselProgress {
  0% { transform: translateX(-120%); }
  100% { transform: translateX(320%); }
}
.project-proof-carousel__buttons {
  display: flex;
  gap: 10px;
}
.project-proof-carousel__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  border: 1px solid rgba(7, 105, 119, 0.18);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.92);
  color: var(--brand-ink);
  box-shadow: 0 12px 28px rgba(3, 47, 56, 0.08);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.project-proof-carousel__button span {
  font-size: 18px;
  line-height: 1;
}
.project-proof-carousel__button:hover,
.project-proof-carousel__button:focus-visible {
  border-color: rgba(7, 105, 119, 0.34);
  background: #ffffff;
  color: var(--brand);
}
.project-proof-carousel.is-paused .project-proof-carousel__progress span {
  animation-play-state: paused;
}

/* Google reviews action */
.reviews-showcase__actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-top: 26px;
  padding: 24px 26px;
  border: 1px solid rgba(7, 105, 119, 0.12);
  border-radius: 22px;
  background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(246,250,249,.98));
  box-shadow: 0 20px 40px rgba(3, 47, 56, 0.06);
}
.reviews-showcase__actions p {
  margin: 0;
  max-width: 560px;
  color: var(--muted);
}
.button--google {
  white-space: nowrap;
}

/* Contact map section */
.contact-map-section {
  padding-top: 0;
}
.contact-map-section__heading {
  margin-bottom: 24px;
}
.contact-map-shell {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr);
  gap: 24px;
  align-items: stretch;
}
.contact-map-embed,
.contact-map-panel {
  overflow: hidden;
  border: 1px solid rgba(7, 105, 119, 0.12);
  border-radius: 28px;
  background: linear-gradient(180deg, #ffffff, #f7faf9);
  box-shadow: 0 24px 56px rgba(3, 47, 56, 0.08);
}
.contact-map-embed {
  position: relative;
  min-height: 620px;
}
.contact-map-embed::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(255,255,255,0.03), rgba(3,47,56,0.04));
}
.contact-map-embed iframe {
  width: 100%;
  height: 100%;
  min-height: 620px;
  border: 0;
  display: block;
}
.contact-map-panel {
  display: flex;
  flex-direction: column;
}
.contact-map-card {
  margin: 0;
  border-bottom: 1px solid rgba(7, 105, 119, 0.1);
  background: #f4f8f7;
}
.contact-map-card img {
  display: block;
  width: 100%;
  height: auto;
}
.contact-map-panel__content {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 14px;
  padding: 24px;
}
.contact-map-panel__content > span {
  color: var(--brand);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.contact-map-panel__content h3 {
  margin: 0;
  font-size: clamp(1.45rem, 2.1vw, 2rem);
  line-height: 1.02;
}
.contact-map-panel__content p {
  margin: 0;
  color: var(--muted);
}
.contact-map-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  padding-top: 6px;
}
.contact-map-actions .button {
  min-height: 48px;
}

@media (max-width: 1120px) {
  .contact-map-shell {
    grid-template-columns: 1fr;
  }
  .contact-map-embed,
  .contact-map-embed iframe {
    min-height: 500px;
  }
}

@media (max-width: 980px) {
  .footer__top,
  .footer__links,
  .contact-map-shell,
  .reviews-showcase__actions {
    grid-template-columns: 1fr;
  }
  .reviews-showcase__actions {
    display: grid;
  }
  .footer__bottom {
    grid-template-columns: 1fr;
    justify-items: start;
  }
  .footer__bottom > span:nth-child(2),
  .footer__bottom > span:nth-child(3),
  .footer__bottom > span:last-child {
    text-align: left;
  }
}

@media (max-width: 768px) {
  .project-proof-carousel__controls {
    gap: 14px;
  }
  .project-proof-carousel__progress {
    max-width: none;
  }
  .contact-map-panel__content,
  .reviews-showcase__actions {
    padding: 20px;
  }
}

@media (max-width: 620px) {
  .project-proof-carousel__controls {
    align-items: center;
    flex-wrap: wrap;
  }
  .project-proof-carousel__progress {
    order: 2;
    width: 100%;
  }
  .project-proof-carousel__buttons {
    margin-left: auto;
  }
  .contact-map-embed,
  .contact-map-embed iframe {
    min-height: 360px;
  }
}

/* ============================================================
   V22 AUDITED FINAL — 2026-08-10
   Exact corrections requested by client review
   ============================================================ */

/* HOME · service cards: exact service imagery, unified crop and height */
.services-overview .service-grid {
  align-items: stretch;
}
.services-overview .service-card {
  height: 100%;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.services-overview .service-card__media {
  aspect-ratio: 16 / 10;
  min-height: 0;
  overflow: hidden;
}
.services-overview .service-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.services-overview .service-card__body {
  flex: 1;
  display: flex;
  flex-direction: column;
}
.services-overview .service-card__body .text-link {
  margin-top: auto;
}

/* HOME · campaign artwork: always show the FULL artwork and the slogan.
   Never crop the lower typography on desktop, tablet or mobile. */
.wellbeing-interstitial--campaign {
  height: 168svh;
  min-height: 920px;
  background: #0a6978;
}
.wellbeing-interstitial--campaign .wellbeing-interstitial__sticky {
  --wb-scale: 1;
  background: linear-gradient(180deg,#f4a106 0 29%,#f6f4ef 29% 73%,#0a6978 73% 100%);
}
.wellbeing-interstitial--campaign .wellbeing-interstitial__artwork {
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(180deg,#f4a106 0 29%,#f6f4ef 29% 73%,#0a6978 73% 100%);
}
.wellbeing-interstitial--campaign .wellbeing-interstitial__artwork img {
  width: 100%;
  height: 100%;
  object-fit: contain !important;
  object-position: center !important;
  transform: none !important;
  filter: saturate(1.01) contrast(1.01);
}
.wellbeing-interstitial__campaign-label {
  position: absolute;
  left: 50%;
  bottom: clamp(18px, 3vh, 34px);
  transform: translateX(-50%);
  z-index: 3;
  margin: 0;
  padding: 9px 15px;
  border: 1px solid rgba(255,255,255,.32);
  border-radius: 999px;
  background: rgba(3,47,56,.76);
  color: #fff;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow: 0 8px 24px rgba(3,47,56,.14);
}
@media (max-width: 900px) {
  .wellbeing-interstitial--campaign { height: 145svh; min-height: 760px; }
  .wellbeing-interstitial--campaign .wellbeing-interstitial__artwork img { object-fit: contain !important; }
}
@media (max-width: 620px) {
  .wellbeing-interstitial--campaign { height: 128svh; min-height: 660px; }
  .wellbeing-interstitial--campaign .wellbeing-interstitial__sticky { min-height: 520px; }
  .wellbeing-interstitial__campaign-label { bottom: 12px; font-size: 9px; padding: 7px 11px; }
}

/* SERVICES · three editorial blocks: equal visual height across every breakpoint */
.service-media-proof__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: clamp(16px, 2vw, 28px);
  align-items: stretch;
}
.service-media-proof__grid article {
  height: 100%;
  min-height: 0;
  display: flex;
  flex-direction: column;
  border-radius: 26px;
  overflow: hidden;
  background: #fff;
  border: 1px solid rgba(4,73,84,.10);
  box-shadow: 0 22px 52px rgba(3,47,56,.08);
}
.service-media-proof__grid article > img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3 !important;
  object-fit: cover !important;
  object-position: center !important;
  flex: 0 0 auto;
}
.service-media-proof__grid article > div {
  flex: 1;
  min-height: 250px;
  padding: clamp(20px,2vw,30px);
}
.service-media-proof__grid h3 {
  max-width: 17ch;
}
@media (max-width: 980px) {
  .service-media-proof__grid { grid-template-columns: 1fr; }
  .service-media-proof__grid article { display: grid; grid-template-columns: minmax(220px,42%) 1fr; }
  .service-media-proof__grid article > img { height: 100%; aspect-ratio: auto !important; }
  .service-media-proof__grid article > div { min-height: 0; }
}
@media (max-width: 680px) {
  .service-media-proof__grid article { display:flex; }
  .service-media-proof__grid article > img { aspect-ratio: 4/3 !important; height:auto; }
}

/* GALLERY · real mosaic converted into a premium horizontal carousel */
.recent-media-carousel {
  position: relative;
  margin-top: clamp(26px,4vw,42px);
}
.recent-media-carousel__viewport {
  overflow-x: auto;
  overflow-y: hidden;
  overscroll-behavior-inline: contain;
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  -ms-overflow-style: none;
  cursor: grab;
  border-radius: 28px;
  outline: none;
  padding: 3px 1px 8px;
}
.recent-media-carousel__viewport::-webkit-scrollbar { display:none; }
.recent-media-carousel__viewport:active { cursor: grabbing; }
.recent-media-carousel__viewport:focus-visible {
  box-shadow: 0 0 0 3px rgba(7,105,119,.18);
}
.recent-media-carousel .recent-media-mosaic {
  columns: unset !important;
  display: grid !important;
  grid-template-rows: repeat(2, clamp(220px, 24vw, 340px));
  grid-auto-columns: clamp(270px, 31vw, 430px);
  grid-auto-flow: column dense;
  gap: clamp(12px,1.3vw,20px);
  width: max-content;
  min-width: 100%;
  padding: 2px;
}
.recent-media-carousel .recent-media-card {
  width: auto !important;
  height: 100% !important;
  margin: 0 !important;
  break-inside: auto !important;
  scroll-snap-align: start;
  border-radius: 24px;
  overflow: hidden;
  box-shadow: 0 18px 44px rgba(3,47,56,.10);
}
.recent-media-carousel .recent-media-card--feature,
.recent-media-carousel .recent-media-card--landscape,
.recent-media-carousel .recent-media-card--graphic {
  grid-row: span 2;
}
.recent-media-carousel .recent-media-card > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .72s cubic-bezier(.16,1,.3,1), filter .72s cubic-bezier(.16,1,.3,1);
}
.recent-media-carousel .recent-media-card:hover > img,
.recent-media-carousel .recent-media-card:focus-within > img {
  transform: scale(1.025);
  filter: saturate(1.02) contrast(1.015);
}
.recent-media-carousel__controls {
  display: grid;
  grid-template-columns: auto minmax(100px,1fr) auto;
  align-items: center;
  gap: 18px;
  margin-top: 20px;
  padding: 0 2px;
}
.recent-media-carousel__status {
  min-width: 72px;
  display: inline-flex;
  align-items: baseline;
  gap: 5px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .1em;
}
.recent-media-carousel__status b {
  color: var(--brand-ink);
  font-size: 14px;
}
.recent-media-carousel__progress {
  height: 5px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(7,105,119,.12);
}
.recent-media-carousel__progress span {
  display:block;
  width: 0%;
  height:100%;
  border-radius:inherit;
  background: linear-gradient(90deg,#f3a10b,#0a7b88);
  transition: width .42s cubic-bezier(.16,1,.3,1);
}
.recent-media-carousel__nav { display:flex; gap:10px; }
.recent-media-carousel__button {
  width: 46px;
  height: 46px;
  display:inline-grid;
  place-items:center;
  border: 1px solid rgba(7,105,119,.16);
  border-radius:999px;
  background:rgba(255,255,255,.94);
  color:var(--brand-ink);
  box-shadow:0 10px 28px rgba(3,47,56,.08);
  font-size:18px;
  transition: transform .28s cubic-bezier(.16,1,.3,1), background .28s ease, color .28s ease;
}
.recent-media-carousel__button:hover,
.recent-media-carousel__button:focus-visible {
  transform: translateY(-2px);
  background:var(--brand);
  color:#fff;
}
.recent-media-carousel__button:active { transform: scale(.96); }
@media (max-width: 900px) {
  .recent-media-carousel .recent-media-mosaic {
    grid-template-rows: repeat(2, 250px);
    grid-auto-columns: min(76vw, 360px);
  }
}
@media (max-width: 620px) {
  .recent-media-carousel .recent-media-mosaic {
    grid-template-rows: 360px;
    grid-auto-columns: min(84vw, 330px);
  }
  .recent-media-carousel .recent-media-card,
  .recent-media-carousel .recent-media-card--feature,
  .recent-media-carousel .recent-media-card--landscape,
  .recent-media-carousel .recent-media-card--graphic { grid-row: span 1; }
  .recent-media-carousel__controls { grid-template-columns: auto 1fr; }
  .recent-media-carousel__progress { grid-column: 1 / -1; grid-row: 2; }
}

/* TESTIMONIALS · Google review CTA visibly anchored below all reviews */
.reviews-showcase__actions {
  margin-top: clamp(28px,4vw,44px) !important;
  padding: clamp(22px,3vw,30px) !important;
  border-radius: 26px !important;
}
.reviews-showcase__actions .button--google {
  background:#fff;
  color:var(--brand-ink);
  border-color:rgba(7,105,119,.22);
}
.reviews-showcase__actions .button--google:hover,
.reviews-showcase__actions .button--google:focus-visible {
  background:var(--brand);
  color:#fff;
}

/* CONTACT · real Google map + branded regional context card */
.contact-map-section { padding-top: clamp(34px,5vw,64px); }
.contact-map-shell {
  grid-template-columns: minmax(0,1.35fr) minmax(340px,.65fr) !important;
  align-items: stretch;
}
.contact-map-embed { min-height: clamp(480px,56vw,680px) !important; }
.contact-map-embed iframe { min-height: inherit !important; filter: saturate(.86) contrast(1.02); }
.contact-map-panel { min-height: 100%; }
.contact-map-card img { aspect-ratio: 4/3; object-fit: cover; }
@media (max-width: 1050px) {
  .contact-map-shell { grid-template-columns: 1fr !important; }
  .contact-map-card img { max-height: 460px; }
}

/* FOOTER · exact approved end-of-page composition on every page */
.site-footer {
  padding: clamp(70px,7vw,96px) 0 0 !important;
  background:#03343e !important;
}
.footer__top {
  display:grid !important;
  grid-template-columns:minmax(270px,1.05fr) minmax(620px,1.55fr) !important;
  gap:clamp(48px,7vw,110px) !important;
  align-items:start !important;
  padding-bottom:clamp(56px,7vw,86px) !important;
}
.footer__links {
  display:grid !important;
  grid-template-columns:minmax(130px,.75fr) minmax(255px,1.35fr) minmax(160px,.9fr) !important;
  gap:clamp(30px,4vw,64px) !important;
}
.footer__links a,
.footer__links p { line-height:1.55; }
.footer__links .footer-contact-link { white-space: normal; overflow-wrap: anywhere; }
.footer__bottom {
  padding: 22px 0 26px !important;
  border-top:1px solid rgba(255,255,255,.14) !important;
  display:grid !important;
  grid-template-columns:1.15fr .9fr 1.5fr .65fr !important;
  gap:18px !important;
}
@media (max-width: 1080px) {
  .footer__top { grid-template-columns:1fr !important; }
  .footer__links { grid-template-columns:repeat(3,minmax(0,1fr)) !important; }
}
@media (max-width: 720px) {
  .footer__links { grid-template-columns:1fr !important; }
  .footer__bottom { grid-template-columns:1fr !important; }
  .footer__bottom > * { text-align:left !important; }
}

/* Final CTA is identical before footer on every public page */
.cta-band { margin-bottom:0 !important; }

/* 4K containment: keep content refined rather than endlessly stretching */
@media (min-width: 1900px) {
  .container { max-width: 1640px; }
  .service-media-proof__grid,
  .services-overview .service-grid { gap: 30px; }
}
@media (min-width: 2600px) {
  .container { max-width: 1880px; }
  .hero__copy h1 { max-width: 15ch; }
}

@media (prefers-reduced-motion: reduce) {
  .recent-media-carousel__viewport { scroll-behavior:auto; }
  .recent-media-carousel .recent-media-card > img,
  .recent-media-carousel__button,
  .recent-media-carousel__progress span { transition:none !important; }
}
.recent-media-carousel__viewport.is-dragging {
  cursor: grabbing;
  scroll-snap-type: none;
  user-select: none;
}
.recent-media-carousel__viewport.is-dragging .gallery-grid__trigger { pointer-events: none; }

/* ============================================================
   V25 · Full gallery mosaic — navigation only inside lightbox
   ============================================================ */
.recent-media-section.gallery-page {
  overflow: visible;
}
.recent-media-mosaic {
  display: block;
  columns: 3;
  column-gap: clamp(14px, 1.35vw, 22px);
  width: 100%;
  overflow: visible;
}
.recent-media-mosaic .recent-media-card,
.recent-media-mosaic .recent-media-card--feature,
.recent-media-mosaic .recent-media-card--portrait,
.recent-media-mosaic .recent-media-card--landscape,
.recent-media-mosaic .recent-media-card--balanced,
.recent-media-mosaic .recent-media-card--graphic {
  column-span: none !important;
  break-inside: avoid;
  width: 100%;
  margin: 0 0 clamp(14px, 1.35vw, 22px);
}
.recent-media-mosaic .recent-media-card > img {
  width: 100%;
  height: auto;
  max-height: none;
  object-fit: contain;
  object-position: center;
}
/* Hide any legacy horizontal-carousel UI if an older cached DOM fragment is encountered. */
.recent-media-carousel__controls,
.recent-media-carousel__status,
.recent-media-carousel__progress,
.recent-media-carousel__nav {
  display: none !important;
}

/* Side navigation belongs exclusively to the opened image viewer. */
.gallery-lightbox__nav {
  width: clamp(46px, 4vw, 58px);
  height: clamp(46px, 4vw, 58px);
  border: 1px solid rgba(255,255,255,.5);
  background: rgba(255,255,255,.96);
  color: var(--brand-ink);
  box-shadow: 0 16px 38px rgba(0,0,0,.22);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.gallery-lightbox__nav span {
  font-size: clamp(18px, 2vw, 23px);
  font-weight: 800;
}
.gallery-lightbox__nav:hover,
.gallery-lightbox__nav:focus-visible {
  background: var(--brand);
  color: #fff;
  border-color: rgba(255,255,255,.72);
}

@media (min-width: 1560px) {
  .recent-media-mosaic { columns: 4; }
}
@media (min-width: 2200px) {
  .recent-media-mosaic {
    columns: 4;
    column-gap: clamp(18px, 1vw, 30px);
  }
}
@media (max-width: 980px) {
  .recent-media-mosaic { columns: 2; }
}
@media (max-width: 620px) {
  .recent-media-mosaic { columns: 1; }
  .recent-media-mosaic .recent-media-card { margin-bottom: 14px; }
  .gallery-lightbox__nav {
    width: 46px;
    height: 46px;
  }
}

/* ============================================================
   V26 · End-of-page scene
   CTA + footer complete the viewport beneath the sticky header.
   ============================================================ */
.site-end-scene {
  --end-scene-height: calc(100svh - var(--actual-header-height, var(--header-height)));
  position: relative;
  display: flex;
  min-height: var(--end-scene-height);
  flex-direction: column;
  overflow: clip;
  background: #03343e;
  isolation: isolate;
}
@supports (height: 100dvh) {
  .site-end-scene { --end-scene-height: calc(100dvh - var(--actual-header-height, var(--header-height))); }
}
.site-end-scene::before {
  position: absolute;
  z-index: 0;
  right: 0;
  bottom: 0;
  left: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(242,154,15,.38), transparent);
  content: "";
  pointer-events: none;
}
.site-end-scene > .cta-band,
.site-end-scene > .site-footer {
  position: relative;
  z-index: 1;
  width: 100%;
}
.site-end-scene > .cta-band {
  display: flex;
  min-height: clamp(245px, 31svh, 350px);
  flex: 0 0 auto;
  align-items: center;
  margin: 0 !important;
  padding: clamp(34px, 5.2svh, 68px) 0 !important;
  background: #064957 !important;
}
.site-end-scene .cta-band__layout {
  width: min(1200px, calc(100% - 72px));
  min-width: 0;
  margin: 0 auto;
  align-items: center;
  gap: clamp(32px, 6vw, 96px);
}
.site-end-scene .cta-band__layout > div:first-child {
  min-width: 0;
  flex: 1 1 auto;
}
.site-end-scene .cta-band__layout h2 {
  max-width: 13.5ch;
  font-size: clamp(3.15rem, 5.25vw, 5.25rem);
  line-height: .9;
  letter-spacing: -.035em;
  text-wrap: balance;
}
.site-end-scene .cta-band__layout > div:last-child {
  width: min(100%, 275px);
  flex: 0 0 auto;
  justify-content: center;
  gap: 16px;
}
.site-end-scene .cta-band__layout > div:last-child p {
  max-width: 260px;
  color: rgba(231,245,243,.9);
  font-size: 12px;
  line-height: 1.6;
}
.site-end-scene .cta-band__layout .button {
  min-width: 230px;
  justify-content: space-between;
}

.site-end-scene > .site-footer {
  display: flex;
  min-height: 0;
  flex: 1 1 auto;
  flex-direction: column;
  justify-content: space-between;
  padding: 0 !important;
  background: #03343e !important;
}
.site-end-scene .footer__top {
  width: min(1200px, calc(100% - 72px));
  min-width: 0;
  flex: 1 1 auto;
  align-content: center;
  margin: 0 auto;
  padding: clamp(38px, 5.5svh, 72px) 0 clamp(34px, 5svh, 64px) !important;
}
.site-end-scene .footer__brand {
  align-self: start;
}
.site-end-scene .footer__brand .logo {
  display: inline-flex;
  margin-bottom: clamp(18px, 2.4svh, 26px);
}
.site-end-scene .footer__brand .logo img {
  width: clamp(176px, 12vw, 205px);
}
.site-end-scene .footer__brand > p {
  margin-bottom: clamp(18px, 2.8svh, 28px);
}
.site-end-scene .footer__links {
  align-self: start;
}
.site-end-scene .footer__links > div {
  min-width: 0;
}
.site-end-scene .footer__bottom {
  width: min(1200px, calc(100% - 72px));
  min-width: 0;
  flex: 0 0 auto;
  margin: 0 auto;
  padding: clamp(17px, 2.1svh, 24px) 0 clamp(18px, 2.2svh, 26px) !important;
}

/* Mid-height notebooks: retain the complete scene without clipping. */
@media (min-width: 1081px) and (max-height: 820px) {
  .site-end-scene > .cta-band {
    min-height: 225px;
    padding: 26px 0 !important;
  }
  .site-end-scene .cta-band__layout h2 {
    font-size: clamp(2.8rem, 4.5vw, 4.4rem);
  }
  .site-end-scene .footer__top {
    padding-top: 28px !important;
    padding-bottom: 25px !important;
  }
  .site-end-scene .footer__brand .logo { margin-bottom: 14px; }
  .site-end-scene .footer__brand > p { margin-bottom: 16px; }
  .site-end-scene .footer__links { gap: 28px !important; }
  .site-end-scene .footer__links > div { gap: 7px; }
  .site-end-scene .footer__links button,
  .site-end-scene .footer__links a,
  .site-end-scene .footer__links p { font-size: 12px; line-height: 1.45; }
  .site-end-scene .footer__bottom { padding: 13px 0 15px !important; font-size: 9px; }
}

/* Large desktop / 4K: preserve alignment with the header and use the extra height as intentional breathing room. */
@media (min-width: 1900px) {
  .site-end-scene .cta-band__layout,
  .site-end-scene .footer__top,
  .site-end-scene .footer__bottom {
    width: min(1640px, calc(100% - 120px));
  }
  .site-end-scene > .cta-band {
    min-height: clamp(330px, 28svh, 520px);
  }
  .site-end-scene .cta-band__layout h2 {
    max-width: 14ch;
    font-size: clamp(5rem, 4.25vw, 7rem);
  }
  .site-end-scene .cta-band__layout > div:last-child {
    width: 330px;
  }
  .site-end-scene .cta-band__layout > div:last-child p { font-size: 14px; }
  .site-end-scene .cta-band__layout .button { min-width: 285px; min-height: 58px; }
  .site-end-scene .footer__brand .logo img { width: 235px; }
  .site-end-scene .footer__brand > p,
  .site-end-scene .footer__links button,
  .site-end-scene .footer__links a,
  .site-end-scene .footer__links p { font-size: 14px; }
  .site-end-scene .footer__links b { font-size: 11px; }
  .site-end-scene .footer__bottom { font-size: 10px; }
}
@media (min-width: 2600px) {
  .site-end-scene .cta-band__layout,
  .site-end-scene .footer__top,
  .site-end-scene .footer__bottom {
    width: min(1880px, calc(100% - 160px));
  }
}

/* Tablet: same visual hierarchy, natural height when the footer requires more room. */
@media (max-width: 1080px) {
  .site-end-scene {
    min-height: calc(100svh - var(--header-height));
    overflow: visible;
  }
  .site-end-scene > .cta-band {
    min-height: 0;
    padding: clamp(54px, 8vw, 78px) 0 !important;
  }
  .site-end-scene .cta-band__layout {
    width: min(100% - 48px, 860px);
    align-items: flex-start;
  }
  .site-end-scene .cta-band__layout h2 {
    max-width: 12.5ch;
    font-size: clamp(3.1rem, 7.8vw, 5.2rem);
  }
  .site-end-scene .footer__top,
  .site-end-scene .footer__bottom {
    width: min(100% - 48px, 860px);
  }
  .site-end-scene .footer__top {
    padding: clamp(52px, 7vw, 72px) 0 46px !important;
  }
}

/* Phones: no forced cropping; all footer information remains visible and aligned. */
@media (max-width: 720px) {
  .site-end-scene { min-height: 0; }
  .site-end-scene > .cta-band {
    padding: 52px 0 56px !important;
  }
  .site-end-scene .cta-band__layout {
    width: calc(100% - 36px);
    flex-direction: column;
    align-items: stretch;
    gap: 30px;
  }
  .site-end-scene .cta-band__layout h2 {
    max-width: 10.8ch;
    font-size: clamp(2.7rem, 13vw, 4rem);
    line-height: .91;
  }
  .site-end-scene .cta-band__layout > div:last-child {
    width: 100%;
  }
  .site-end-scene .cta-band__layout > div:last-child p { max-width: 100%; }
  .site-end-scene .cta-band__layout .button {
    width: 100%;
    min-width: 0;
  }
  .site-end-scene .footer__top,
  .site-end-scene .footer__bottom {
    width: calc(100% - 36px);
  }
  .site-end-scene .footer__top {
    padding: 52px 0 42px !important;
  }
  .site-end-scene .footer__brand .logo img { width: 178px; }
  .site-end-scene .footer__links {
    gap: 32px !important;
  }
  .site-end-scene .footer__bottom {
    gap: 9px !important;
    padding: 18px 0 24px !important;
    font-size: 9px;
    line-height: 1.55;
  }
}

/* Short landscape phones/tablets: avoid artificial full-height trapping. */
@media (max-height: 600px) and (max-width: 1080px) {
  .site-end-scene { min-height: 0; }
}

/* ============================================================
   V27 · Final CTA line discipline + mosaic visibility audit
   "enjoy your life." always starts on its own line.
   ============================================================ */
.site-end-scene .cta-band__layout h2 em {
  display: block;
  width: max-content;
  max-width: 100%;
  white-space: nowrap;
}

/* Keep the three-line CTA composition intentional on every desktop size. */
@media (min-width: 721px) {
  .site-end-scene .cta-band__layout h2 {
    max-width: 15ch;
    text-wrap: nowrap;
  }
  .site-end-scene .cta-band__layout h2 em {
    letter-spacing: -.04em;
  }
}

/* Tablet: preserve the requested line break without forcing horizontal overflow. */
@media (min-width: 481px) and (max-width: 720px) {
  .site-end-scene .cta-band__layout h2 {
    max-width: 100%;
    font-size: clamp(2.75rem, 9.8vw, 4rem);
  }
  .site-end-scene .cta-band__layout h2 em {
    font-size: .96em;
  }
}

/* Phones: keep the full phrase "enjoy your life." on one dedicated line. */
@media (max-width: 480px) {
  .site-end-scene .cta-band__layout h2 {
    max-width: 100%;
    font-size: clamp(2.15rem, 10.8vw, 3rem);
    line-height: .93;
    letter-spacing: -.045em;
  }
  .site-end-scene .cta-band__layout h2 em {
    font-size: .93em;
    letter-spacing: -.05em;
  }
}

/* The default gallery state is a complete static mosaic: all project images visible. */
.recent-media-mosaic > [data-gallery-item]:not([hidden]) {
  visibility: visible;
}
.recent-media-mosaic > [data-gallery-item][hidden] {
  display: none !important;
}

/* ============================================================
   V28 · Final scene lockup
   Header + closing CTA + footer complete one deliberate viewport.
   The closing statement is always exactly TWO visual lines:
   1. Leave the cleaning to us
   2. while you enjoy your life.
   ============================================================ */

.site-end-scene {
  --scene-inline: 72px;
  --scene-max: 1200px;
  --end-scene-height: calc(100svh - var(--actual-header-height, var(--header-height)));
  position: relative;
  display: grid;
  grid-template-rows: minmax(250px, 0.41fr) minmax(0, 0.59fr);
  width: 100%;
  min-height: var(--end-scene-height);
  height: var(--end-scene-height);
  overflow: hidden;
  background: #03343e;
}

@supports (height: 100dvh) {
  .site-end-scene {
    --end-scene-height: calc(100dvh - var(--actual-header-height, var(--header-height)));
  }
}

.site-end-scene > .cta-band,
.site-end-scene > .site-footer {
  min-height: 0;
  width: 100%;
  margin: 0 !important;
}

.site-end-scene > .cta-band {
  display: flex;
  align-items: center;
  padding: clamp(26px, 4.5svh, 52px) 0 !important;
  background: #064957 !important;
}

.site-end-scene .cta-band__layout,
.site-end-scene .footer__top,
.site-end-scene .footer__bottom {
  width: min(var(--scene-max), calc(100% - var(--scene-inline)));
  max-width: none;
  margin-inline: auto;
}

.site-end-scene .cta-band__layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(230px, 280px);
  align-items: center;
  gap: clamp(34px, 5vw, 86px);
}

.site-end-scene .cta-band__layout > div:first-child {
  min-width: 0;
}

.site-end-scene .cta-band__layout h2 {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: 100%;
  max-width: none;
  margin: 0;
  font-size: clamp(3rem, 4.35vw, 4.7rem);
  line-height: 0.91;
  letter-spacing: -0.045em;
  text-wrap: nowrap;
}

.site-end-scene .cta-band__layout h2 .cta-line {
  display: block;
  width: max-content;
  max-width: 100%;
  white-space: nowrap;
}

.site-end-scene .cta-band__layout h2 .cta-line--two {
  margin-top: 0.06em;
}

.site-end-scene .cta-band__layout h2 .cta-line--two em {
  display: inline;
  width: auto;
  max-width: none;
  margin: 0;
  color: var(--accent, #f2a20d);
  white-space: inherit;
}

.site-end-scene .cta-band__layout > div:last-child {
  width: 100%;
  min-width: 0;
  align-self: center;
}

.site-end-scene .cta-band__layout > div:last-child p {
  max-width: 280px;
  margin-bottom: 14px;
}

.site-end-scene .cta-band__layout .button {
  width: 100%;
  min-width: 0;
}

.site-end-scene > .site-footer {
  display: flex;
  min-height: 0;
  flex-direction: column;
  justify-content: space-between;
  padding: 0 !important;
  background: #03343e !important;
}

.site-end-scene .footer__top {
  display: grid;
  grid-template-columns: minmax(260px, .88fr) minmax(0, 1.12fr);
  gap: clamp(32px, 5vw, 80px);
  align-items: center;
  flex: 1 1 auto;
  padding: clamp(28px, 4.3svh, 50px) 0 clamp(22px, 3.5svh, 42px) !important;
}

.site-end-scene .footer__links {
  grid-template-columns: minmax(100px, .8fr) minmax(180px, 1.2fr) minmax(125px, .85fr);
  gap: clamp(20px, 3vw, 46px) !important;
}

.site-end-scene .footer__bottom {
  display: grid;
  grid-template-columns: 1.05fr .9fr 1.4fr .65fr;
  gap: 16px;
  align-items: center;
  flex: 0 0 auto;
  padding: clamp(12px, 1.7svh, 18px) 0 clamp(14px, 1.9svh, 20px) !important;
}

.site-end-scene .footer__bottom > span:nth-child(2),
.site-end-scene .footer__bottom > span:nth-child(3) { text-align: center; }
.site-end-scene .footer__bottom > span:last-child { text-align: right; }

/* Compact desktop/notebooks: scene still finishes within one viewport. */
@media (min-width: 1081px) and (max-height: 850px) {
  .site-end-scene {
    grid-template-rows: minmax(205px, 0.38fr) minmax(0, 0.62fr);
  }
  .site-end-scene > .cta-band {
    padding: 20px 0 !important;
  }
  .site-end-scene .cta-band__layout h2 {
    font-size: clamp(2.65rem, 4vw, 4rem);
  }
  .site-end-scene .footer__top {
    padding: 24px 0 18px !important;
  }
  .site-end-scene .footer__brand .logo { margin-bottom: 10px; }
  .site-end-scene .footer__brand .logo img { width: 170px; }
  .site-end-scene .footer__brand > p { margin-bottom: 12px; }
  .site-end-scene .footer__links { gap: 22px !important; }
  .site-end-scene .footer__links > div { gap: 5px; }
  .site-end-scene .footer__links a,
  .site-end-scene .footer__links p,
  .site-end-scene .footer__links button { font-size: 11px; line-height: 1.35; }
  .site-end-scene .footer__bottom { padding: 10px 0 12px !important; font-size: 8.5px; }
}

/* Wide/4K: preserve the SAME alignment line as the global header/container. */
@media (min-width: 1900px) {
  .site-end-scene {
    --scene-inline: 120px;
    --scene-max: 1640px;
    grid-template-rows: minmax(310px, .40fr) minmax(0, .60fr);
  }
  .site-end-scene .cta-band__layout h2 {
    font-size: clamp(4.8rem, 4vw, 6.6rem);
  }
  .site-end-scene .cta-band__layout {
    grid-template-columns: minmax(0, 1fr) minmax(290px, 340px);
  }
  .site-end-scene .footer__brand .logo img { width: 230px; }
  .site-end-scene .footer__links a,
  .site-end-scene .footer__links p,
  .site-end-scene .footer__links button { font-size: 14px; }
  .site-end-scene .footer__bottom { font-size: 10px; }
}

@media (min-width: 2600px) {
  .site-end-scene {
    --scene-inline: 160px;
    --scene-max: 1880px;
  }
  .site-end-scene .cta-band__layout h2 {
    font-size: clamp(5.8rem, 3.6vw, 7.4rem);
  }
}

/* Tablet: two-line phrase preserved, scene flows naturally when footer needs more room. */
@media (max-width: 1080px) {
  .site-end-scene {
    --scene-inline: 48px;
    --scene-max: 860px;
    display: flex;
    height: auto;
    min-height: calc(100svh - var(--actual-header-height, var(--header-height)));
    overflow: visible;
    flex-direction: column;
  }
  .site-end-scene > .cta-band {
    flex: 0 0 auto;
    padding: clamp(46px, 7vw, 68px) 0 !important;
  }
  .site-end-scene .cta-band__layout {
    grid-template-columns: minmax(0, 1fr) minmax(210px, 250px);
    gap: 28px;
  }
  .site-end-scene .cta-band__layout h2 {
    font-size: clamp(2.9rem, 6.7vw, 4.6rem);
  }
  .site-end-scene > .site-footer {
    flex: 1 1 auto;
  }
  .site-end-scene .footer__top {
    padding: 46px 0 38px !important;
  }
}

/* Phones: header + CTA + footer stay complete, readable and aligned. */
@media (max-width: 720px) {
  .site-end-scene {
    --scene-inline: 36px;
    min-height: 0;
  }
  .site-end-scene > .cta-band {
    padding: 42px 0 46px !important;
  }
  .site-end-scene .cta-band__layout {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 26px;
  }
  .site-end-scene .cta-band__layout h2 {
    font-size: clamp(1.72rem, 7.15vw, 3rem);
    line-height: .94;
    letter-spacing: -.04em;
  }
  .site-end-scene .cta-band__layout h2 .cta-line {
    max-width: 100%;
  }
  .site-end-scene .cta-band__layout > div:last-child p {
    max-width: none;
  }
  .site-end-scene .footer__top {
    grid-template-columns: 1fr;
    gap: 34px;
    padding: 44px 0 34px !important;
  }
  .site-end-scene .footer__links {
    grid-template-columns: 1fr;
    gap: 28px !important;
  }
  .site-end-scene .footer__bottom {
    grid-template-columns: 1fr;
    gap: 8px;
    padding: 16px 0 22px !important;
    font-size: 9px;
    line-height: 1.5;
  }
  .site-end-scene .footer__bottom > span,
  .site-end-scene .footer__bottom > span:nth-child(2),
  .site-end-scene .footer__bottom > span:nth-child(3),
  .site-end-scene .footer__bottom > span:last-child { text-align: left; }
}

/* Longer PT/ES second line is optically scaled to preserve the same two-line lockup. */
html[data-language="pt-BR"] .site-end-scene .cta-line--two,
html[data-language="es"] .site-end-scene .cta-line--two {
  font-size: .82em;
}
@media (max-width: 720px) {
  html[data-language="pt-BR"] .site-end-scene .cta-line--two,
  html[data-language="es"] .site-end-scene .cta-line--two {
    font-size: .74em;
  }
}

/* Short landscape mobile/tablet: do not trap the content in a forced viewport height. */
@media (max-width: 1080px) and (max-height: 600px) {
  .site-end-scene { min-height: 0; }
}

/* V28 mobile lockup: the complete closing scene is composed inside the available viewport. */
@media (max-width: 720px) and (min-height: 700px) {
  .site-end-scene {
    display: grid;
    grid-template-rows: minmax(210px, .30fr) minmax(0, .70fr);
    height: calc(100svh - var(--actual-header-height, var(--header-height)));
    min-height: calc(100svh - var(--actual-header-height, var(--header-height)));
    overflow: hidden;
  }
  @supports (height: 100dvh) {
    .site-end-scene {
      height: calc(100dvh - var(--actual-header-height, var(--header-height)));
      min-height: calc(100dvh - var(--actual-header-height, var(--header-height)));
    }
  }
  .site-end-scene > .cta-band {
    min-height: 0;
    padding: 20px 0 !important;
  }
  .site-end-scene .cta-band__layout {
    gap: 14px;
  }
  .site-end-scene .cta-band__layout .eyebrow {
    margin-bottom: 9px;
    font-size: 8px;
  }
  .site-end-scene .cta-band__layout h2 {
    font-size: clamp(1.62rem, 6.9vw, 2.15rem);
  }
  .site-end-scene .cta-band__layout > div:last-child {
    gap: 8px;
  }
  .site-end-scene .cta-band__layout > div:last-child p {
    margin: 0;
    font-size: 10px;
    line-height: 1.35;
  }
  .site-end-scene .cta-band__layout .button {
    min-height: 42px;
    padding: 10px 14px;
    font-size: 10px;
  }
  .site-end-scene > .site-footer {
    overflow: hidden;
  }
  .site-end-scene .footer__top {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
    align-content: center;
    padding: 14px 0 10px !important;
  }
  .site-end-scene .footer__brand {
    display: grid;
    grid-template-columns: auto minmax(0,1fr);
    grid-template-rows: auto auto;
    column-gap: 14px;
    row-gap: 5px;
    align-items: center;
  }
  .site-end-scene .footer__brand .logo {
    grid-row: 1 / 3;
    margin: 0;
  }
  .site-end-scene .footer__brand .logo img {
    width: 126px;
  }
  .site-end-scene .footer__brand > p {
    margin: 0;
    font-size: 10px;
    line-height: 1.3;
  }
  .site-end-scene .footer__brand > button {
    justify-self: start;
    font-size: 9px;
  }
  .site-end-scene .footer__links {
    display: grid !important;
    grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr) !important;
    gap: 12px 22px !important;
  }
  .site-end-scene .footer__links > div {
    gap: 3px;
  }
  .site-end-scene .footer__links > div:nth-child(2) {
    grid-column: 1 / -1;
    grid-row: 2;
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 14px;
  }
  .site-end-scene .footer__links > div:nth-child(2) > b {
    grid-column: 1 / -1;
  }
  .site-end-scene .footer__links b {
    font-size: 8px;
    line-height: 1.2;
  }
  .site-end-scene .footer__links a,
  .site-end-scene .footer__links p,
  .site-end-scene .footer__links button {
    font-size: 9px;
    line-height: 1.27;
  }
  .site-end-scene .footer__links small {
    margin-top: 1px;
    font-size: 6.5px;
  }
  .site-end-scene .footer__bottom {
    grid-template-columns: 1fr 1fr;
    gap: 5px 10px;
    padding: 9px 0 12px !important;
    font-size: 7px;
    line-height: 1.3;
  }
  .site-end-scene .footer__bottom > span,
  .site-end-scene .footer__bottom > span:nth-child(2),
  .site-end-scene .footer__bottom > span:nth-child(3),
  .site-end-scene .footer__bottom > span:last-child {
    text-align: left;
  }
  .site-end-scene .footer__bottom > span:nth-child(3) {
    grid-column: 1 / -1;
  }
}

/* =========================================================
   V29 — Footer typography refinement without increasing height
   Slightly larger information, same end-scene footprint.
   ========================================================= */
.site-end-scene .footer__top {
  gap: clamp(28px, 4.4vw, 68px);
  padding-top: clamp(24px, 3.8svh, 44px) !important;
  padding-bottom: clamp(18px, 3svh, 36px) !important;
}
.site-end-scene .footer__brand .logo {
  margin-bottom: 18px;
}
.site-end-scene .footer__brand .logo img {
  width: 204px;
}
.site-end-scene .footer__brand > p {
  margin-bottom: 20px;
  font-size: 14px;
  line-height: 1.55;
}
.site-end-scene .footer__brand > button {
  font-size: 13px;
  line-height: 1.35;
}
.site-end-scene .footer__links {
  gap: clamp(18px, 2.65vw, 40px) !important;
}
.site-end-scene .footer__links > div {
  gap: 8px;
}
.site-end-scene .footer__links b {
  margin-bottom: 4px;
  font-size: 10.8px;
  line-height: 1.2;
  letter-spacing: .125em;
}
.site-end-scene .footer__links a,
.site-end-scene .footer__links p,
.site-end-scene .footer__links button {
  font-size: 14px;
  line-height: 1.48;
}
.site-end-scene .footer__links small {
  font-size: 8px;
  line-height: 1.25;
}
.site-end-scene .footer__bottom {
  padding-top: clamp(10px, 1.35svh, 14px) !important;
  padding-bottom: clamp(11px, 1.45svh, 16px) !important;
  font-size: 10.4px;
  line-height: 1.3;
}

/* Short notebook heights: increase readability while reclaiming spacing. */
@media (min-width: 1081px) and (max-height: 850px) {
  .site-end-scene .footer__top {
    gap: 26px;
    padding: 18px 0 13px !important;
  }
  .site-end-scene .footer__brand .logo { margin-bottom: 7px; }
  .site-end-scene .footer__brand .logo img { width: 176px; }
  .site-end-scene .footer__brand > p { margin-bottom: 8px; font-size: 12px; line-height: 1.4; }
  .site-end-scene .footer__brand > button { font-size: 11.5px; }
  .site-end-scene .footer__links { gap: 18px !important; }
  .site-end-scene .footer__links > div { gap: 3px; }
  .site-end-scene .footer__links b { margin-bottom: 2px; font-size: 9px; }
  .site-end-scene .footer__links a,
  .site-end-scene .footer__links p,
  .site-end-scene .footer__links button { font-size: 12px; line-height: 1.3; }
  .site-end-scene .footer__links small { font-size: 7px; }
  .site-end-scene .footer__bottom { padding: 7px 0 9px !important; font-size: 9px; }
}

/* Large/4K displays: modestly scale typography, not the footer block. */
@media (min-width: 1900px) {
  .site-end-scene .footer__top {
    padding-top: clamp(26px, 3.25svh, 40px) !important;
    padding-bottom: clamp(19px, 2.6svh, 31px) !important;
  }
  .site-end-scene .footer__brand .logo img { width: 238px; }
  .site-end-scene .footer__brand > p { font-size: 15px; }
  .site-end-scene .footer__brand > button { font-size: 14px; }
  .site-end-scene .footer__links b { font-size: 11.5px; }
  .site-end-scene .footer__links a,
  .site-end-scene .footer__links p,
  .site-end-scene .footer__links button { font-size: 15px; line-height: 1.45; }
  .site-end-scene .footer__links small { font-size: 8.5px; }
  .site-end-scene .footer__bottom { font-size: 10.8px; }
}

/* Tablet: stronger readability while retaining the same natural block height. */
@media (max-width: 1080px) and (min-width: 721px) {
  .site-end-scene .footer__top {
    gap: 23px;
    padding: 38px 0 28px !important;
  }
  .site-end-scene .footer__brand > p { font-size: 13.5px; }
  .site-end-scene .footer__brand > button { font-size: 12.5px; }
  .site-end-scene .footer__links b { font-size: 10px; }
  .site-end-scene .footer__links a,
  .site-end-scene .footer__links p,
  .site-end-scene .footer__links button { font-size: 13.5px; }
  .site-end-scene .footer__bottom { font-size: 9.8px; }
}

/* Phones: only a small type lift; spacing is tightened to keep the scene intact. */
@media (max-width: 720px) {
  .site-end-scene .footer__top {
    gap: 28px;
    padding: 36px 0 27px !important;
  }
  .site-end-scene .footer__brand > p { font-size: 12px; }
  .site-end-scene .footer__brand > button { font-size: 11.5px; }
  .site-end-scene .footer__links b { font-size: 9.5px; }
  .site-end-scene .footer__links a,
  .site-end-scene .footer__links p,
  .site-end-scene .footer__links button { font-size: 12.5px; line-height: 1.42; }
  .site-end-scene .footer__links small { font-size: 7.5px; }
  .site-end-scene .footer__bottom { font-size: 9.4px; line-height: 1.4; }
}

/* V28 mobile viewport lockup has stricter height: micro-adjust type and reclaim gaps. */
@media (max-width: 720px) and (min-height: 700px) {
  .site-end-scene .footer__top {
    gap: 11px;
    padding: 10px 0 7px !important;
  }
  .site-end-scene .footer__brand {
    column-gap: 12px;
    row-gap: 3px;
  }
  .site-end-scene .footer__brand .logo img { width: 128px; }
  .site-end-scene .footer__brand > p { font-size: 10.5px; line-height: 1.25; }
  .site-end-scene .footer__brand > button { font-size: 9.5px; }
  .site-end-scene .footer__links { gap: 8px 18px !important; }
  .site-end-scene .footer__links > div { gap: 2px; }
  .site-end-scene .footer__links b { font-size: 8.4px; }
  .site-end-scene .footer__links a,
  .site-end-scene .footer__links p,
  .site-end-scene .footer__links button { font-size: 9.5px; line-height: 1.23; }
  .site-end-scene .footer__links small { font-size: 6.8px; }
  .site-end-scene .footer__bottom { gap: 4px 9px; padding: 6px 0 8px !important; font-size: 7.4px; }
}

/* =========================================================
   V30 — Footer information scale refinement
   Increase Explore / Contact / Hours readability without
   increasing the overall footer/end-scene height.
   ========================================================= */
.site-end-scene .footer__links {
  gap: clamp(18px, 2.35vw, 36px) !important;
}
.site-end-scene .footer__links > div {
  gap: 5px;
}
.site-end-scene .footer__links b {
  margin-bottom: 3px;
  font-size: 12px;
  line-height: 1.1;
  letter-spacing: .12em;
}
.site-end-scene .footer__links a,
.site-end-scene .footer__links p,
.site-end-scene .footer__links button {
  font-size: 15.5px;
  line-height: 1.36;
}
.site-end-scene .footer__links small {
  font-size: 8.5px;
  line-height: 1.12;
}
.site-end-scene .footer__top {
  padding-top: clamp(21px, 3.1svh, 38px) !important;
  padding-bottom: clamp(15px, 2.35svh, 29px) !important;
}

/* Short notebooks: preserve height by compressing spacing, not typography. */
@media (min-width: 1081px) and (max-height: 850px) {
  .site-end-scene .footer__top {
    gap: 22px;
    padding: 15px 0 10px !important;
  }
  .site-end-scene .footer__links { gap: 16px !important; }
  .site-end-scene .footer__links > div { gap: 2px; }
  .site-end-scene .footer__links b {
    margin-bottom: 1px;
    font-size: 10px;
  }
  .site-end-scene .footer__links a,
  .site-end-scene .footer__links p,
  .site-end-scene .footer__links button {
    font-size: 13px;
    line-height: 1.22;
  }
  .site-end-scene .footer__links small { font-size: 7.2px; }
}

/* 4K / very wide displays: ideal visual scale without increasing the block. */
@media (min-width: 1900px) {
  .site-end-scene .footer__top {
    padding-top: clamp(23px, 2.8svh, 34px) !important;
    padding-bottom: clamp(16px, 2.15svh, 25px) !important;
  }
  .site-end-scene .footer__links > div { gap: 5px; }
  .site-end-scene .footer__links b { font-size: 12.8px; }
  .site-end-scene .footer__links a,
  .site-end-scene .footer__links p,
  .site-end-scene .footer__links button {
    font-size: 16.5px;
    line-height: 1.34;
  }
  .site-end-scene .footer__links small { font-size: 9px; }
}

/* Tablet */
@media (max-width: 1080px) and (min-width: 721px) {
  .site-end-scene .footer__top {
    gap: 20px;
    padding: 32px 0 22px !important;
  }
  .site-end-scene .footer__links > div { gap: 4px; }
  .site-end-scene .footer__links b { font-size: 10.8px; }
  .site-end-scene .footer__links a,
  .site-end-scene .footer__links p,
  .site-end-scene .footer__links button {
    font-size: 14.4px;
    line-height: 1.34;
  }
}

/* Phones */
@media (max-width: 720px) {
  .site-end-scene .footer__top {
    gap: 24px;
    padding: 30px 0 21px !important;
  }
  .site-end-scene .footer__links > div { gap: 3px; }
  .site-end-scene .footer__links b { font-size: 10px; }
  .site-end-scene .footer__links a,
  .site-end-scene .footer__links p,
  .site-end-scene .footer__links button {
    font-size: 13.2px;
    line-height: 1.34;
  }
  .site-end-scene .footer__links small { font-size: 7.8px; }
}

/* Locked mobile end-scene: a micro lift while keeping the viewport composition intact. */
@media (max-width: 720px) and (min-height: 700px) {
  .site-end-scene .footer__top {
    gap: 9px;
    padding: 8px 0 5px !important;
  }
  .site-end-scene .footer__links { gap: 6px 15px !important; }
  .site-end-scene .footer__links > div { gap: 1px; }
  .site-end-scene .footer__links b { font-size: 8.8px; }
  .site-end-scene .footer__links a,
  .site-end-scene .footer__links p,
  .site-end-scene .footer__links button {
    font-size: 10px;
    line-height: 1.18;
  }
  .site-end-scene .footer__links small { font-size: 6.8px; }
}

/* =========================================================
   V31 — Footer typography final lift
   Slightly larger Explore / Contact / Hours information
   while preserving the exact end-scene/footer footprint.
   ========================================================= */
@media (min-width: 1081px) {
  .site-end-scene .footer__links {
    grid-template-columns: minmax(110px, .78fr) minmax(300px, 1.5fr) minmax(170px, .9fr);
    gap: clamp(16px, 2.2vw, 32px) !important;
  }
  .site-end-scene .footer__links > div {
    gap: 4px;
  }
  .site-end-scene .footer__links b {
    margin-bottom: 2px;
    font-size: 13px;
    line-height: 1.04;
    letter-spacing: .115em;
  }
  .site-end-scene .footer__links a,
  .site-end-scene .footer__links p,
  .site-end-scene .footer__links button {
    font-size: 16.4px;
    line-height: 1.28;
  }
  .site-end-scene .footer__links small {
    font-size: 9px;
    line-height: 1.05;
  }
  .site-end-scene .footer__top {
    padding-top: clamp(18px, 2.65svh, 32px) !important;
    padding-bottom: clamp(12px, 1.95svh, 24px) !important;
  }
}

/* Short notebooks: larger type, tighter rhythm. */
@media (min-width: 1081px) and (max-height: 850px) {
  .site-end-scene .footer__links {
    grid-template-columns: minmax(100px, .74fr) minmax(275px, 1.55fr) minmax(155px, .86fr);
    gap: 14px !important;
  }
  .site-end-scene .footer__links > div { gap: 1px; }
  .site-end-scene .footer__links b {
    margin-bottom: 0;
    font-size: 10.6px;
  }
  .site-end-scene .footer__links a,
  .site-end-scene .footer__links p,
  .site-end-scene .footer__links button {
    font-size: 13.8px;
    line-height: 1.16;
  }
  .site-end-scene .footer__links small { font-size: 7.5px; }
  .site-end-scene .footer__top { padding: 12px 0 8px !important; }
}

/* Large / 4K: stronger optical scale without growing the block. */
@media (min-width: 1900px) {
  .site-end-scene .footer__links b { font-size: 13.8px; }
  .site-end-scene .footer__links a,
  .site-end-scene .footer__links p,
  .site-end-scene .footer__links button {
    font-size: 17.5px;
    line-height: 1.27;
  }
  .site-end-scene .footer__links small { font-size: 9.5px; }
  .site-end-scene .footer__top {
    padding-top: clamp(19px, 2.3svh, 29px) !important;
    padding-bottom: clamp(12px, 1.75svh, 21px) !important;
  }
}

/* Tablet: modest increase, no added footer height. */
@media (max-width: 1080px) and (min-width: 721px) {
  .site-end-scene .footer__links > div { gap: 3px; }
  .site-end-scene .footer__links b { font-size: 11.5px; }
  .site-end-scene .footer__links a,
  .site-end-scene .footer__links p,
  .site-end-scene .footer__links button {
    font-size: 15.1px;
    line-height: 1.26;
  }
  .site-end-scene .footer__links small { font-size: 8.3px; }
  .site-end-scene .footer__top { padding: 28px 0 18px !important; }
}

/* Phones: maintain readability and scene fit. */
@media (max-width: 720px) {
  .site-end-scene .footer__links > div { gap: 2px; }
  .site-end-scene .footer__links b { font-size: 10.5px; }
  .site-end-scene .footer__links a,
  .site-end-scene .footer__links p,
  .site-end-scene .footer__links button {
    font-size: 13.8px;
    line-height: 1.27;
  }
  .site-end-scene .footer__links small { font-size: 8px; }
  .site-end-scene .footer__top { padding: 27px 0 18px !important; }
}

/* Locked mobile end-scene: only a subtle lift to avoid vertical overflow. */
@media (max-width: 720px) and (min-height: 700px) {
  .site-end-scene .footer__links b { font-size: 9.1px; }
  .site-end-scene .footer__links a,
  .site-end-scene .footer__links p,
  .site-end-scene .footer__links button {
    font-size: 10.5px;
    line-height: 1.14;
  }
  .site-end-scene .footer__links small { font-size: 7px; }
  .site-end-scene .footer__links { gap: 5px 13px !important; }
  .site-end-scene .footer__top { gap: 8px; padding: 6px 0 4px !important; }
}

/* =========================================================
   V32 — Thaty visual curation
   Founder-led imagery, purposeful image rhythm and honest labels.
   ========================================================= */
.page-hero--about {
  background:
    radial-gradient(circle at 79% 22%, rgba(245, 162, 8, 0.18), transparent 27%),
    linear-gradient(132deg, #063e49 0%, #075967 56%, #0a6b76 100%);
}
.page-hero--about::before {
  position: absolute;
  z-index: 1;
  right: min(5vw, 82px);
  bottom: clamp(34px, 6vw, 84px);
  width: min(23vw, 320px);
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255, 211, 128, 0.94));
  content: "";
}
.page-hero--about .page-hero__image {
  inset: 0 0 0 48%;
  z-index: 0;
  background: #0a5863;
}
.page-hero--about .page-hero__image img {
  object-position: 69% 48% !important;
  transform: none !important;
}
.page-hero--about .page-hero__overlay {
  z-index: 1;
  background:
    linear-gradient(90deg, rgba(3, 50, 60, 1) 0%, rgba(4, 69, 80, 0.98) 32%, rgba(4, 72, 82, 0.82) 47%, rgba(4, 65, 75, 0.26) 67%, rgba(4, 57, 67, 0.06) 100%),
    linear-gradient(0deg, rgba(0, 29, 35, 0.42), transparent 57%);
}
.page-hero--about .container { position: relative; z-index: 2; }
.page-hero--about .page-hero__content { max-width: 42rem; }
.page-hero--about .page-hero__content h1 { max-width: 10.2em; }

.wellbeing-band__story-photo img { object-position: 50% 31% !important; }
.wellbeing-band__story-photo figcaption { background: linear-gradient(180deg, transparent, rgba(2, 39, 47, 0.95) 67%); }

.services-overview .service-card:nth-child(1) .service-card__media img { object-position: 63% 50%; }
.services-overview .service-card:nth-child(2) .service-card__media img { object-position: 68% 49%; }
.service-stories #residential .service-stories__media img { object-position: 61% 47%; }
.service-stories #commercial .service-stories__media img { object-position: 62% 47%; }
.service-media-proof__grid article:nth-child(1) > img { object-position: 65% 48% !important; }
.service-media-proof__grid article:nth-child(2) > img { object-position: 65% 50% !important; }
.service-media-proof__grid article:nth-child(3) > img { object-position: 69% 48% !important; }

.transformation-card--1 img { object-position: 68% 49%; }
.transformation-card--2 img { object-position: 64% 49%; }
.transformation-card--3 img { object-position: 66% 48%; }
.transformation-card--4 img { object-position: center 53%; }
.transformation-card span {
  border-color: rgba(255, 255, 255, 0.68);
  background: rgba(2, 57, 67, 0.3);
  backdrop-filter: blur(5px);
}
.transformation-card b { max-width: 10ch; text-shadow: 0 2px 16px rgba(0, 29, 35, 0.62); }

@media (max-width: 780px) {
  .page-hero--about .page-hero__image { inset: 0; opacity: 0.7; }
  .page-hero--about .page-hero__image img { object-position: 68% 49% !important; }
  .page-hero--about .page-hero__overlay {
    background:
      linear-gradient(90deg, rgba(3, 50, 60, 0.98) 0%, rgba(3, 59, 69, 0.93) 55%, rgba(4, 63, 73, 0.58) 100%),
      linear-gradient(0deg, rgba(0, 26, 32, 0.46), transparent 65%);
  }
  .page-hero--about::before { right: 24px; bottom: 31px; width: 114px; }
  .page-hero--about .page-hero__content { max-width: 28rem; }
  .wellbeing-band__story-photo img { object-position: 50% 26% !important; }
}

/* ============================================================
   V29 · Gallery mosaic corrections · 2026-08-14
   ============================================================ */

/* Keep the first feature-card title in the same hierarchy as the rest of the mosaic. */
.recent-media-mosaic .recent-media-card[data-mosaic-index="01"] .recent-media-card__caption h3 {
  max-width: 15em;
  font-size: clamp(1.35rem, 1.9vw, 2.15rem);
  line-height: 1.02;
  letter-spacing: -.035em;
}

@media (max-width: 620px) {
  .recent-media-mosaic .recent-media-card[data-mosaic-index="01"] .recent-media-card__caption h3 {
    font-size: clamp(1.45rem, 7.2vw, 2rem);
    max-width: 13em;
  }
}

/* V33 · Thaty trust callout + premium service-area map */
.gallery-callout--thaty {
  position: relative;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  min-height: clamp(560px, 48vw, 690px);
  border: 1px solid rgba(7, 105, 119, 0.09);
  background: #f1f7f6;
  box-shadow: 0 24px 70px rgba(4, 60, 72, 0.08);
}
.gallery-callout--thaty > .gallery-callout__image {
  width: 100%;
  min-height: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 52% center;
}
.gallery-callout--thaty > .gallery-callout__content {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  padding: clamp(56px, 6vw, 92px) clamp(42px, 6vw, 92px);
}
.gallery-callout--thaty .eyebrow { margin-bottom: clamp(20px, 2.2vw, 30px); }
.gallery-callout--thaty h2 {
  max-width: 570px;
  margin-bottom: clamp(28px, 3vw, 38px);
  font-size: clamp(4rem, 5.5vw, 6.25rem);
  line-height: .86;
  letter-spacing: -.06em;
}
.gallery-callout--thaty h2 em { color: #a55a00; }
.gallery-callout--thaty .gallery-callout__content > p:not(.eyebrow) {
  max-width: 450px;
  margin-bottom: 30px;
  color: #627d82;
  font-size: clamp(13px, 1vw, 15px);
  line-height: 1.75;
}
.gallery-callout--thaty .button { min-width: 180px; }

.service-area-section { padding-top: clamp(92px, 9vw, 128px); }
.service-area-section .section-heading { margin-bottom: clamp(34px, 4vw, 52px); }
.service-area-map {
  position: relative;
  min-height: clamp(480px, 49vw, 620px);
  overflow: hidden;
  border: 1px solid rgba(7, 105, 119, .12);
  border-radius: 28px;
  background: #dceae8;
  box-shadow: 0 28px 80px rgba(5, 60, 72, .12);
  isolation: isolate;
}
.service-area-map__frame { position: absolute; inset: 0; background: #dceae8; }
.service-area-map__frame iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
  filter: saturate(.82) contrast(1.02);
  opacity: 0;
  transform: scale(1.005);
  transition: opacity .45s var(--ease);
}
.service-area-map.is-map-ready .service-area-map__frame iframe { opacity: 1; }
.service-area-map__loading {
  position: absolute;
  z-index: 1;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  background: linear-gradient(135deg, #e9f3f1, #d5e7e4);
  color: var(--brand);
  font-size: 12px;
  letter-spacing: .02em;
  transition: opacity .35s ease, visibility .35s ease;
}
.service-area-map__loading span {
  width: 18px;
  height: 18px;
  border: 2px solid rgba(7, 105, 119, .22);
  border-top-color: var(--brand);
  border-radius: 50%;
  animation: serviceMapSpin .8s linear infinite;
}
.service-area-map.is-map-ready .service-area-map__loading { opacity: 0; visibility: hidden; }
.service-area-map__card {
  position: absolute;
  z-index: 2;
  left: clamp(22px, 3.2vw, 44px);
  bottom: clamp(22px, 3.2vw, 44px);
  width: min(390px, calc(100% - 44px));
  padding: clamp(28px, 3vw, 40px);
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: 22px;
  background: rgba(3, 60, 72, .96);
  box-shadow: 0 24px 60px rgba(2, 44, 52, .26);
  color: #fff;
  backdrop-filter: blur(12px);
}
.service-area-map__card h3 {
  margin-bottom: 18px;
  color: #fff;
  font-size: clamp(2rem, 3vw, 3.15rem);
  line-height: .92;
}
.service-area-map__card > p:not(.eyebrow) {
  margin-bottom: 24px;
  color: #d7e8e6;
  font-size: 13px;
  line-height: 1.7;
}
.service-area-map__card .button { width: 100%; }
@keyframes serviceMapSpin { to { transform: rotate(360deg); } }

@media (max-width: 900px) {
  .gallery-callout--thaty { grid-template-columns: 1fr; min-height: 0; }
  .gallery-callout--thaty > .gallery-callout__image { min-height: 0; height: auto; aspect-ratio: 4 / 3; object-position: 50% 42%; }
  .gallery-callout--thaty > .gallery-callout__content { padding: 50px 34px 56px; }
  .gallery-callout--thaty h2 { font-size: clamp(3.55rem, 11vw, 5.2rem); }
  .service-area-map { min-height: 650px; }
  .service-area-map__card { right: 22px; left: 22px; width: auto; }
}

@media (max-width: 600px) {
  .gallery-callout--thaty { margin-bottom: 78px; }
  .gallery-callout--thaty > .gallery-callout__image { aspect-ratio: 1 / 1.02; object-position: 51% 46%; }
  .gallery-callout--thaty > .gallery-callout__content { padding: 40px 22px 46px; }
  .gallery-callout--thaty h2 { margin-bottom: 24px; font-size: clamp(3.15rem, 15vw, 4.3rem); }
  .service-area-map {
    display: grid;
    min-height: 0;
    overflow: visible;
    border-radius: 22px;
    background: transparent;
    box-shadow: none;
  }
  .service-area-map__frame {
    position: relative;
    min-height: 390px;
    overflow: hidden;
    border: 1px solid rgba(7, 105, 119, .12);
    border-radius: 22px;
    box-shadow: 0 20px 50px rgba(5, 60, 72, .10);
  }
  .service-area-map__card {
    position: relative;
    right: auto;
    bottom: auto;
    left: auto;
    width: auto;
    margin: -28px 14px 0;
    padding: 28px 24px;
  }
  .service-area-map__card h3 { font-size: clamp(2.25rem, 11vw, 3rem); }
}

@media (prefers-reduced-motion: reduce) {
  .service-area-map__loading span { animation: none; }
  .service-area-map__frame iframe { transition: none; }
}
.no-js .service-area-map__frame iframe { opacity: 1; }
.no-js .service-area-map__loading { display: none; }

/* ============================================================
   V34 — Final Clean Homes campaign artwork
   Approved yellow / petrol / ivory palette, borderless framing.
   Keeps the full 4:3 artwork visible while wide-screen overflow
   is filled by a subtle extension of the same campaign image.
   ============================================================ */
.wellbeing-interstitial--campaign {
  background: #021e2e;
}

.wellbeing-interstitial--campaign .wellbeing-interstitial__sticky {
  --wb-inset: 0%;
  --wb-radius: 0px;
  overflow: hidden;
  clip-path: none !important;
  background: #021e2e;
  box-shadow: none;
}

.wellbeing-interstitial--campaign .wellbeing-interstitial__artwork {
  position: absolute;
  isolation: isolate;
  overflow: hidden;
  background: #021e2e;
}

.wellbeing-interstitial--campaign .wellbeing-interstitial__artwork::before {
  position: absolute;
  z-index: 0;
  inset: -5%;
  background:
    linear-gradient(90deg, rgba(2,30,46,.30), rgba(2,30,46,0) 22%, rgba(2,30,46,0) 78%, rgba(2,30,46,.30)),
    url('../images/experience/clean-homes-happy-people-premium-final.webp') center / cover no-repeat;
  content: "";
  filter: blur(30px) saturate(.90) brightness(.76);
  opacity: .48;
  transform: scale(1.075);
  pointer-events: none;
}

.wellbeing-interstitial--campaign .wellbeing-interstitial__artwork::after {
  position: absolute;
  z-index: 1;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(2,30,46,.14) 0%, transparent 18%, transparent 82%, rgba(2,30,46,.14) 100%),
    linear-gradient(180deg, rgba(255,255,255,.018), transparent 28%, transparent 72%, rgba(2,30,46,.06));
  content: "";
  pointer-events: none;
}

.wellbeing-interstitial--campaign .wellbeing-interstitial__artwork img {
  position: relative;
  z-index: 2;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain !important;
  object-position: 50% 50% !important;
  transform: none !important;
  filter: saturate(1.006) contrast(1.008);
}

/* Large / ultrawide monitors: full artwork stays intact with seamless side fill. */
@media (min-width: 1600px) {
  .wellbeing-interstitial--campaign .wellbeing-interstitial__artwork::before {
    filter: blur(36px) saturate(.88) brightness(.72);
    opacity: .54;
  }
}

/* Tablet: prioritize full composition and slogan readability. */
@media (max-width: 900px) {
  .wellbeing-interstitial--campaign .wellbeing-interstitial__artwork::before {
    inset: -7%;
    filter: blur(24px) saturate(.90) brightness(.76);
    opacity: .42;
  }
  .wellbeing-interstitial--campaign .wellbeing-interstitial__artwork img {
    object-fit: contain !important;
    object-position: center !important;
  }
}

/* Phones: preserve Thaty, the white arc and the complete slogan without crop. */
@media (max-width: 620px) {
  .wellbeing-interstitial--campaign {
    height: 118svh;
    min-height: 650px;
  }
  .wellbeing-interstitial--campaign .wellbeing-interstitial__sticky {
    min-height: 540px;
  }
  .wellbeing-interstitial--campaign .wellbeing-interstitial__artwork::before {
    inset: -10%;
    filter: blur(20px) saturate(.90) brightness(.72);
    opacity: .38;
  }
  .wellbeing-interstitial--campaign .wellbeing-interstitial__artwork img {
    object-fit: contain !important;
    object-position: 50% 50% !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .wellbeing-interstitial--campaign .wellbeing-interstitial__artwork::before {
    filter: none;
    opacity: .18;
    transform: none;
  }
}

/* ========================================================================== 
   DELOGU'S · RESPONSIVE UX AUDIT V30 · 2026-08-14
   Final mobile/tablet/notebook guardrails + premium navigation.
   Designed as progressive enhancement: older engines fall back cleanly.
   ========================================================================== */

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  overflow-wrap: break-word;
}

:where(main, section, article, aside, nav, form, fieldset, figure, div) {
  min-width: 0;
}

:where(img, video, iframe, svg) {
  max-width: 100%;
}

video,
iframe {
  display: block;
}

:where(section, article, div)[id] {
  scroll-margin-top: calc(var(--header-height) + 18px);
}

/* Keep interactive controls comfortably tappable without inflating desktop UI. */
:where(.button, .text-link, .filter-list button, summary, .gallery-lightbox__close, .gallery-lightbox__nav) {
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}

/* Tablet + compact notebook navigation: collapse before the desktop header crowds. */
@media (max-width: 1140px) {
  :root { --header-height: 74px; }

  .site-header {
    height: var(--header-height);
    border-bottom: 1px solid rgba(7, 105, 119, 0.13);
    background: rgba(255, 255, 255, 0.985);
    box-shadow: 0 10px 26px rgba(5, 60, 72, 0.10), 0 1px 0 rgba(255,255,255,.9) inset;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }

  .site-header::before {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(242,154,15,.56) 32%, rgba(7,105,119,.24) 70%, transparent);
    content: "";
    pointer-events: none;
  }

  .header__inner {
    height: 100%;
    gap: 14px;
  }

  .logo img {
    width: clamp(146px, 18vw, 172px);
  }

  .header__phone { display: none; }

  .header__actions {
    gap: 10px;
    margin-left: auto;
  }

  .header__actions > .button {
    min-height: 44px;
    border-radius: 12px;
    padding: 11px 15px;
    box-shadow: 0 8px 18px rgba(7,105,119,.14);
    font-size: 10px;
    white-space: nowrap;
  }

  body.menu-open::before {
    position: fixed;
    z-index: 29;
    top: var(--header-height);
    right: 0;
    bottom: 0;
    left: 0;
    background: rgba(3, 47, 56, 0.24);
    content: "";
    pointer-events: none;
  }

  .site-nav {
    counter-reset: delogus-mobile-nav;
    position: fixed;
    z-index: 48;
    top: var(--header-height);
    right: 0;
    bottom: 0;
    left: auto;
    visibility: hidden;
    display: grid;
    width: min(470px, calc(100vw - 64px));
    min-height: 0;
    align-content: start;
    gap: 0;
    margin: 0;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: clamp(24px, 4svh, 38px) clamp(24px, 5vw, 38px) max(30px, env(safe-area-inset-bottom));
    border-left: 1px solid rgba(7, 105, 119, 0.11);
    border-bottom: 0;
    background:
      radial-gradient(circle at 92% 8%, rgba(242,154,15,.10), transparent 25%),
      linear-gradient(160deg, rgba(255,255,255,.995), rgba(244,249,248,.995));
    box-shadow: -24px 28px 60px rgba(4, 48, 57, 0.18);
    opacity: 0;
    transform: translate3d(18px, 0, 0);
    transition: opacity 220ms var(--ease), transform 280ms var(--ease), visibility 0s linear 280ms;
    -webkit-overflow-scrolling: touch;
  }

  .site-nav::before {
    display: block;
    margin: 0 0 18px;
    color: #63878d;
    content: "NAVIGATION";
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .18em;
    line-height: 1;
  }

  .site-nav.is-open {
    visibility: visible;
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition: opacity 220ms var(--ease), transform 280ms var(--ease), visibility 0s linear 0s;
  }

  .site-nav > a {
    counter-increment: delogus-mobile-nav;
    position: relative;
    display: grid;
    min-height: 62px;
    grid-template-columns: 34px minmax(0,1fr) 22px;
    align-items: center;
    gap: 12px;
    border-bottom: 1px solid rgba(7, 105, 119, 0.11);
    padding: 13px 2px;
    color: #075d6b;
    font-family: var(--display);
    font-size: clamp(1.75rem, 3.2vw, 2.25rem);
    font-weight: 700;
    letter-spacing: -0.035em;
    line-height: .96;
    text-transform: none;
    transition: color 180ms ease, padding-left 220ms var(--ease), background 180ms ease;
  }

  .site-nav > a::before {
    color: #9bb2b6;
    content: "0" counter(delogus-mobile-nav);
    font-family: var(--body);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .08em;
    line-height: 1;
  }

  .site-nav > a::after {
    position: static;
    width: auto;
    height: auto;
    background: transparent;
    color: #a5b9bd;
    content: "→";
    font-family: var(--body);
    font-size: 16px;
    font-weight: 500;
    opacity: 1;
    transform: none;
    transition: color 180ms ease, transform 220ms var(--ease);
  }

  .site-nav > a:hover,
  .site-nav > a:focus-visible,
  .site-nav > a.active {
    color: var(--brand-ink);
    padding-left: 6px;
    transform: none;
  }

  .site-nav > a:hover::after,
  .site-nav > a:focus-visible::after,
  .site-nav > a.active::after {
    color: var(--accent-ink);
    opacity: 1;
    transform: translateX(3px);
  }

  .site-nav > a.active {
    box-shadow: inset 3px 0 0 var(--accent);
    background: linear-gradient(90deg, rgba(242,154,15,.07), transparent 72%);
    padding-left: 10px;
  }

  .site-nav__mobile-cta {
    display: flex;
    width: 100%;
    min-height: 54px;
    align-items: center;
    justify-content: space-between;
    margin-top: 24px;
    border: 1px solid var(--brand) !important;
    border-radius: 13px;
    padding: 15px 17px !important;
    background: linear-gradient(135deg, #087584, #05616f) !important;
    box-shadow: 0 12px 24px rgba(7,105,119,.18), 0 1px 0 rgba(255,255,255,.20) inset;
    color: #fff !important;
    font-family: var(--body) !important;
    font-size: 10px !important;
    font-weight: 800;
    letter-spacing: .08em;
    line-height: 1.1;
    text-transform: uppercase;
  }

  .site-nav__mobile-cta::after { display: none !important; }
  .site-nav__mobile-cta span { color: #ffd27c; font-size: 16px; }

  .menu-button {
    position: relative;
    display: flex;
    width: 46px;
    height: 46px;
    flex: 0 0 46px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    border: 1px solid rgba(7, 105, 119, 0.22);
    border-radius: 14px;
    padding: 0;
    background: linear-gradient(180deg, #fff, #f7fbfa);
    box-shadow: 0 7px 16px rgba(7,105,119,.09), 0 1px 0 rgba(255,255,255,.9) inset;
    color: var(--brand);
    -webkit-tap-highlight-color: transparent;
  }

  .menu-button::after {
    position: absolute;
    top: 8px;
    right: 8px;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: var(--accent);
    box-shadow: 0 0 0 3px rgba(242,154,15,.10);
    content: "";
    transition: opacity 180ms ease, transform 220ms var(--ease);
  }

  .menu-button i,
  .menu-button i:last-child {
    display: block;
    width: 20px;
    height: 2px;
    border-radius: 999px;
    background: var(--brand);
    transform-origin: center;
    transition: width 180ms ease, transform 220ms var(--ease), background 180ms ease;
  }

  .menu-button i:last-child { width: 14px; margin-left: 6px; }

  .site-header.is-menu-open .menu-button {
    border-color: rgba(242,154,15,.48);
    background: #fffaf1;
  }

  .site-header.is-menu-open .menu-button::after { opacity: 0; transform: scale(.5); }
  .site-header.is-menu-open .menu-button i:first-child { width: 20px; transform: translateY(4px) rotate(45deg); }
  .site-header.is-menu-open .menu-button i:last-child { width: 20px; margin-left: 0; transform: translateY(-4px) rotate(-45deg); }

  /* Prevent tablet/compact notebook sections from feeling desktop-cramped. */
  .section { padding-block: clamp(82px, 8vw, 112px); }
  .container { width: min(calc(100% - 54px), 1040px); }

  .form-row,
  .contact-form .form-row { min-width: 0; }
}

/* Smartphone portrait: full-width editorial menu and cleaner header hierarchy. */
@media (max-width: 780px) {
  :root { --header-height: 68px; }

  .container { width: calc(100% - 40px); }
  .section { padding-block: clamp(72px, 18vw, 92px); }

  .site-header { height: var(--header-height); }
  .logo img { width: clamp(140px, 42vw, 154px); }

  .header__actions { gap: 8px; }
  .header__actions > .button { display: none; }

  .site-nav {
    right: 0;
    left: 0;
    width: 100%;
    padding: 22px max(20px, env(safe-area-inset-left)) max(26px, calc(env(safe-area-inset-bottom) + 18px)) max(20px, env(safe-area-inset-right));
    border-left: 0;
    box-shadow: 0 24px 42px rgba(4,48,57,.18);
    transform: translate3d(0, -10px, 0);
  }

  .site-nav.is-open { transform: translate3d(0, 0, 0); }

  .site-nav > a {
    min-height: 58px;
    grid-template-columns: 30px minmax(0,1fr) 20px;
    gap: 10px;
    padding-block: 11px;
    font-size: clamp(1.72rem, 8.6vw, 2.22rem);
  }

  .site-nav__mobile-cta { margin-top: 20px; }
  .menu-button { width: 44px; height: 44px; flex-basis: 44px; border-radius: 13px; }

  /* iOS/Android: 16px form controls prevent focus zoom and improve legibility. */
  input,
  textarea,
  select,
  .quote-modal input,
  .quote-modal textarea,
  .quote-modal select { font-size: 16px; }

  .form-row { grid-template-columns: 1fr; }
  .quote-modal { max-height: calc(100svh - 24px); overflow-y: auto; padding: 38px 22px 24px; }
  .modal-backdrop { align-items: flex-start; padding: 12px; }

  /* Reduce GPU-heavy effects on touch hardware while preserving the visual language. */
  .modal-backdrop,
  .lightbox-backdrop,
  .comparison-modal-backdrop,
  .site-header {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }
}

@media (max-width: 430px) {
  .container { width: calc(100% - 32px); }
  .site-nav { padding-inline: 16px; }
  .site-nav::before { margin-bottom: 13px; }
  .site-nav > a { min-height: 55px; font-size: clamp(1.62rem, 8.3vw, 2rem); }
  .logo img { width: min(145px, 42vw); }
  .menu-button { width: 43px; height: 43px; flex-basis: 43px; }
}

@media (max-width: 360px) {
  .container { width: calc(100% - 28px); }
  .logo img { width: 132px; }
  .site-nav { padding-inline: 14px; }
  .site-nav > a { min-height: 52px; grid-template-columns: 27px minmax(0,1fr) 18px; font-size: 1.55rem; }
  .site-nav__mobile-cta { min-height: 52px; }
}

/* Short landscape phones and tablets: menu remains fully navigable without clipping. */
@media (max-width: 1140px) and (max-height: 620px) {
  .site-nav { padding-top: 14px; padding-bottom: 18px; }
  .site-nav::before { display: none; }
  .site-nav > a { min-height: 44px; padding-block: 7px; font-size: clamp(1.35rem, 3.6vh + .55rem, 1.75rem); }
  .site-nav__mobile-cta { min-height: 46px; margin-top: 12px; padding-block: 11px !important; }
}

/* Large screens: protect readability rather than stretching content across 4K/5K/8K. */
@media (min-width: 1920px) {
  .container { width: min(1320px, calc(100% - 128px)); }
  .section { padding-block: clamp(126px, 7vw, 166px); }
}

@media (min-width: 3000px) {
  .container { width: min(1440px, calc(100% - 192px)); }
}

/* Graceful rendering on older/less capable browsers. */
@supports not (backdrop-filter: blur(1px)) {
  .site-header { background: #fff; }
  .modal-backdrop,
  .lightbox-backdrop,
  .comparison-modal-backdrop { background: rgba(2,29,35,.94); }
}

@media (hover: none), (pointer: coarse) {
  .button:hover,
  .text-link:hover,
  .service-card:hover,
  .video-card:hover,
  .gallery-grid article:hover,
  .transformation-card:hover,
  .detail-card:hover,
  .review-card:hover { transform: none !important; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .site-nav,
  .site-nav > a,
  .site-nav > a::after,
  .menu-button,
  .menu-button i,
  .menu-button::after { transition-duration: 0.01ms !important; }
}

/* V30.1 interaction safety + no-JS fallback */
@media (max-width: 1140px) {
  body.menu-open::before { pointer-events: auto; }

  html.no-js .site-header {
    position: relative;
    height: auto;
  }

  html.no-js .header__inner {
    flex-wrap: wrap;
    padding-block: 12px;
  }

  html.no-js .menu-button { display: none; }

  html.no-js .site-nav {
    position: static;
    visibility: visible;
    width: 100%;
    max-height: none;
    opacity: 1;
    transform: none;
    box-shadow: none;
  }
}

/* V30.2 · mobile content polish + low-power rendering */
@media (max-width: 780px) {
  .wellbeing-interstitial--campaign .wellbeing-interstitial__artwork::before {
    inset: 0;
    background: linear-gradient(135deg, #021e2e 0%, #063845 52%, #021e2e 100%);
    filter: none;
    opacity: .34;
    transform: none;
  }

  .wellbeing-interstitial--campaign .wellbeing-interstitial__artwork img {
    filter: none;
  }

  .service-area-map__card {
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }

  .footer-contact-link,
  .footer__links a,
  .contact-list a,
  .contact-list li,
  .legal-page,
  .quote-modal small {
    overflow-wrap: anywhere;
    word-break: normal;
  }

  .gallery-page__intro {
    align-items: stretch;
  }

  .filter-list {
    width: 100%;
    flex-wrap: nowrap;
    justify-content: flex-start;
    gap: 8px;
    overflow-x: auto;
    padding: 2px 1px 8px;
    scrollbar-width: none;
    scroll-snap-type: x proximity;
    -webkit-overflow-scrolling: touch;
  }

  .filter-list::-webkit-scrollbar { display: none; }
  .filter-list button {
    min-height: 44px;
    flex: 0 0 auto;
    scroll-snap-align: start;
    white-space: nowrap;
  }

  .service-area-map__frame iframe { min-height: 390px; }
}

@media (max-width: 600px) {
  .footer__top,
  .footer__links {
    row-gap: 30px;
  }

  .footer__bottom {
    gap: 10px;
    line-height: 1.55;
  }

  .faq-list summary {
    min-height: 54px;
    gap: 14px;
  }
}

@media (prefers-reduced-data: reduce) {
  .hero__mesh,
  .wellbeing-interstitial--campaign .wellbeing-interstitial__artwork::before {
    display: none;
  }
}


/* 2026-08-16 — Final founder portrait treatment.
   Preserve the approved editorial card while displaying Thaty's full black-uniform portrait without crop. */
.wellbeing-band__story-photo {
  width: min(100%, 448px);
  background: linear-gradient(145deg, rgba(3, 47, 56, 0.92), rgba(2, 35, 43, 0.98));
}
.wellbeing-band__story-photo img {
  width: 100%;
  height: auto !important;
  aspect-ratio: 1003 / 1568;
  object-fit: contain !important;
  object-position: center top !important;
  background: #032f38;
  filter: saturate(0.99) contrast(1.015);
}
.wellbeing-band__story-photo:hover img {
  transform: none;
  filter: saturate(1.02) contrast(1.02);
}
@media (max-width: 1140px) {
  .wellbeing-band__story-photo { width: min(100%, 430px); }
  .wellbeing-band__story-photo img { height: auto !important; object-position: center top !important; }
}
@media (max-width: 560px) {
  .wellbeing-band__story-photo { width: 100%; max-width: 410px; margin-inline: auto; }
  .wellbeing-band__story-photo img { height: auto !important; }
  .wellbeing-band__story-photo figcaption { padding-top: 52px; }
}

/* ===== Footer quote CTA color refinement — 2026-08-16 ===== */
.site-footer .footer__brand .text-link.text-link--light {
  color: var(--accent) !important;
}
.site-footer .footer__brand .text-link.text-link--light:hover,
.site-footer .footer__brand .text-link.text-link--light:focus-visible {
  color: #ffffff !important;
}
.site-footer .footer__brand .text-link.text-link--light span {
  color: currentColor;
}

/* ===== 404 hero alignment refinement — 2026-08-16 ===== */
.not-found {
  position: relative;
  display: flex;
  min-height: var(--viewport-hero);
  align-items: stretch;
  overflow: hidden;
  background: var(--brand-ink);
  color: #ffffff;
  isolation: isolate;
}
.not-found::before {
  position: absolute;
  z-index: 0;
  inset: 0;
  background: url('../images/404-background-premium.webp') center right / cover no-repeat;
  content: '';
}
.not-found::after {
  position: absolute;
  z-index: 0;
  inset: 0;
  background:
    linear-gradient(90deg,
      rgba(3, 47, 56, 0.96) 0%,
      rgba(3, 59, 70, 0.90) 34%,
      rgba(3, 62, 72, 0.60) 59%,
      rgba(3, 47, 56, 0.18) 100%),
    linear-gradient(0deg, rgba(0, 27, 33, 0.28), transparent 58%);
  content: '';
}
.not-found .container {
  position: relative;
  z-index: 1;
  display: grid;
  min-height: var(--viewport-hero);
  align-items: center;
  width: min(1200px, calc(100% - 72px));
  padding-block: clamp(54px, 9vh, 126px);
}
.not-found article {
  width: min(100%, 650px);
  max-width: 650px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
.not-found .eyebrow {
  margin-bottom: 18px;
  color: #ffffff;
}
.not-found .eyebrow > span {
  background: var(--accent);
  box-shadow: 0 0 0 5px rgba(242, 154, 15, 0.12);
}
.not-found h1 {
  max-width: 8.9em;
  margin-bottom: clamp(18px, 1.8vw, 24px);
}
.not-found h1 em {
  color: var(--accent) !important;
}
.not-found p {
  max-width: 510px;
  margin-bottom: clamp(24px, 2.6vw, 32px);
  color: #e7f1f0;
}
.not-found .hero__actions {
  align-items: center;
  gap: 14px 18px;
}
.not-found .button--accent {
  min-width: 154px;
}
.not-found .text-link--light {
  color: #ffffff;
}
.not-found .text-link--light:hover,
.not-found .text-link--light:focus-visible {
  color: var(--accent);
}

@media (max-width: 780px) {
  .not-found::before {
    background-position: 68% center;
  }
  .not-found::after {
    background:
      linear-gradient(90deg, rgba(3, 47, 56, 0.96) 0%, rgba(3, 58, 68, 0.88) 70%, rgba(3, 47, 56, 0.52) 100%),
      linear-gradient(0deg, rgba(0, 27, 33, 0.32), transparent 62%);
  }
  .not-found .container {
    width: min(100% - 40px, 1200px);
    min-height: var(--viewport-hero);
    padding-block: clamp(48px, 8svh, 76px);
  }
  .not-found article {
    max-width: 520px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }
  .not-found h1 {
    max-width: 9.2em;
  }
}

@media (max-width: 520px) {
  .not-found::before {
    background-position: 72% center;
  }
  .not-found::after {
    background:
      linear-gradient(90deg, rgba(3, 47, 56, 0.97) 0%, rgba(3, 55, 65, 0.91) 74%, rgba(3, 47, 56, 0.58) 100%),
      linear-gradient(0deg, rgba(0, 27, 33, 0.35), transparent 58%);
  }
  .not-found .container {
    width: calc(100% - 32px);
    padding-block: 44px;
  }
  .not-found .eyebrow {
    margin-bottom: 14px;
  }
  .not-found h1 {
    max-width: 8.2em;
    margin-bottom: 18px;
  }
  .not-found p {
    max-width: 34ch;
    margin-bottom: 24px;
  }
  .not-found .hero__actions {
    align-items: flex-start;
    flex-direction: column;
    gap: 18px;
  }
  .not-found .hero__actions .button {
    width: auto;
    min-width: 158px;
  }
}


/* ==========================================================================
   FINAL REVIEW — mobile contact, founder story and desktop service alignment
   ========================================================================== */

/* Desktop service cards: three equal columns, no orphan card. */
@media (min-width: 1025px) {
  .service-depth .detail-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(18px, 1.6vw, 26px); }
  .service-depth .detail-card,
  .service-depth .detail-card--featured,
  .service-depth .detail-card--accent { grid-column: auto; min-width: 0; }
}

/* Founder history is a complementary editorial chapter; existing About blocks remain untouched. */
.founder-origin-story {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 11% 18%, rgba(242,154,15,.10), transparent 28%),
    linear-gradient(145deg, #f7fbfa 0%, #eef6f4 62%, #fdfaf4 100%);
}
.founder-origin-story::before {
  position: absolute; inset: 0; pointer-events: none; content: "";
  background-image: linear-gradient(rgba(7,105,119,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(7,105,119,.035) 1px, transparent 1px);
  background-size: 52px 52px; mask-image: linear-gradient(90deg, #000, transparent 72%);
}
.founder-origin-story__layout { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(280px,.78fr) minmax(0,1.22fr); gap: clamp(48px, 7vw, 110px); align-items: start; }
.founder-origin-story__intro { position: sticky; top: calc(var(--header-height) + 42px); min-width: 0; }
.founder-origin-story__intro h2 { margin: 14px 0 22px; font-size: clamp(2.65rem, 4.7vw, 5rem); line-height: .96; letter-spacing: -.045em; }
.founder-origin-story__lead { max-width: 46ch; color: var(--muted); font-size: clamp(.95rem,1.15vw,1.06rem); line-height: 1.75; }
.founder-origin-story__route { display: grid; grid-template-columns: max-content 1fr max-content 1fr max-content; gap: 12px; align-items: center; margin-top: 38px; padding: 18px 0 0; border-top: 1px solid rgba(7,105,119,.16); }
.founder-origin-story__route > div { display: grid; gap: 2px; min-width: 0; }
.founder-origin-story__route span { color: var(--accent-text-on-light, #a86100); font-size: 10px; font-weight: 900; letter-spacing: .12em; }
.founder-origin-story__route b { color: var(--brand); font-size: 13px; }
.founder-origin-story__route small { color: #6c8a90; font-size: 10px; }
.founder-origin-story__route i { width: 100%; height: 1px; background: linear-gradient(90deg, rgba(242,154,15,.86), rgba(7,105,119,.24)); }
.founder-origin-story__body { min-width: 0; padding: clamp(30px,3.4vw,54px); border: 1px solid rgba(7,105,119,.12); border-radius: 28px; background: rgba(255,255,255,.86); box-shadow: 0 28px 72px rgba(4,57,67,.08); }
.founder-story__lang { display: grid; gap: 17px; }
.founder-story__lang[hidden] { display: none !important; }
.founder-story__lang p { margin: 0; color: #355f67; font-size: clamp(.94rem,1.03vw,1.02rem); line-height: 1.78; }
.founder-story__lang p:first-child { color: var(--brand); font-size: clamp(1.18rem,1.5vw,1.4rem); font-weight: 750; line-height: 1.55; }
.founder-origin-story__quote { margin: 34px 0 0; padding: 24px 0 4px 24px; border-left: 3px solid var(--accent); color: var(--brand); font-family: var(--serif, Georgia, serif); font-size: clamp(1.35rem,2vw,2rem); line-height: 1.35; }
.founder-origin-story__quote cite { display: block; margin-top: 12px; color: #628087; font-family: inherit; font-size: .58em; font-style: normal; font-weight: 650; }
.founder-origin-story__slogan { margin: 22px 0 0; color: var(--accent-text-on-light, #a86100); font-size: 12px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }

/* Mobile navigation contact shortcuts. */
.site-nav__mobile-contact { display: none; }
@media (max-width: 1140px) {
  .site-nav__mobile-contact { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 12px; }
  .mobile-contact-action { display: flex; min-width: 0; min-height: 64px; flex-direction: column; justify-content: center; gap: 3px; border: 1px solid rgba(7,105,119,.14); border-radius: 14px; padding: 12px 13px; background: #fff; color: var(--brand) !important; box-shadow: 0 8px 20px rgba(4,57,67,.07); text-decoration: none; }
  .mobile-contact-action::after { display: none !important; }
  .mobile-contact-action span { color: var(--brand); font-size: 12px; font-weight: 900; letter-spacing: .04em; text-transform: uppercase; }
  .mobile-contact-action small { min-width: 0; color: #66858b; font-size: 10px; line-height: 1.35; overflow-wrap: anywhere; }
  .mobile-contact-action--sms { border-color: rgba(242,154,15,.34); background: #fffaf1; }
}
@media (max-width: 430px) {
  .site-nav__mobile-contact { grid-template-columns: 1fr; }
  .mobile-contact-action { min-height: 58px; }
}

/* Persistent mobile conversion dock: SMS, email and quote always one tap away. */
.mobile-contact-dock { display: none; }
@media (max-width: 780px) {
  body { padding-bottom: calc(68px + env(safe-area-inset-bottom)); }
  .mobile-contact-dock {
    position: fixed; z-index: 72; right: 10px; bottom: max(10px, env(safe-area-inset-bottom)); left: 10px;
    display: grid; grid-template-columns: .8fr .9fr 1.3fr; min-height: 58px; overflow: hidden;
    border: 1px solid rgba(7,105,119,.16); border-radius: 18px; padding: 5px;
    background: rgba(255,255,255,.97); box-shadow: 0 20px 44px rgba(2,45,54,.20); transition: opacity 180ms ease, transform 220ms var(--ease);
  }
  .mobile-contact-dock__item { display: flex; min-width: 0; min-height: 48px; align-items: center; justify-content: center; gap: 6px; border: 0; border-radius: 13px; padding: 7px 8px; background: transparent; color: var(--brand); font: inherit; font-size: 10px; font-weight: 850; letter-spacing: .035em; text-decoration: none; white-space: nowrap; }
  .mobile-contact-dock__item--quote { background: var(--brand); color: #fff; }
  .mobile-contact-dock__icon { display: grid; width: 20px; height: 20px; place-items: center; border-radius: 50%; background: rgba(242,154,15,.13); color: var(--accent-text-on-light, #a86100); font-size: 11px; font-weight: 900; }
  .mobile-contact-dock__item--quote .mobile-contact-dock__icon { background: rgba(255,255,255,.12); color: #ffd18a; }
  body.menu-open .mobile-contact-dock,
  body.modal-open .mobile-contact-dock { opacity: 0; pointer-events: none; transform: translateY(12px); }
  .site-end-scene { padding-bottom: 12px; }
}
@media (max-width: 360px) {
  .mobile-contact-dock { right: 7px; left: 7px; grid-template-columns: .75fr .82fr 1.43fr; }
  .mobile-contact-dock__item { gap: 4px; padding-inline: 5px; font-size: 9px; }
}

/* Contact page: mobile contact actions read as obvious tap targets, not passive text. */
@media (max-width: 780px) {
  .contact-list { gap: 10px; }
  .contact-list li { border: 1px solid rgba(7,105,119,.13); border-radius: 16px; padding: 16px 17px; background: #fff; box-shadow: 0 9px 22px rgba(4,57,67,.06); }
  .contact-list li:first-child { border-color: rgba(242,154,15,.30); background: #fffaf2; }
  .contact-list a { display: inline-flex; min-height: 42px; align-items: center; margin-top: 4px; font-size: 1rem; font-weight: 800; overflow-wrap: anywhere; }
  .contact-channel-label--inline { display: block; margin-top: 2px; }
}

/* Language control must remain visible but compact on all header sizes. */
.language-control { z-index: 91; }
@media (max-width: 1140px) {
  .language-control { order: -1; }
}

@media (max-width: 900px) {
  .founder-origin-story__layout { grid-template-columns: 1fr; gap: 34px; }
  .founder-origin-story__intro { position: static; }
  .founder-origin-story__route { max-width: 560px; }
}
@media (max-width: 560px) {
  .founder-origin-story__intro h2 { font-size: clamp(2.4rem, 11vw, 3.2rem); }
  .founder-origin-story__body { padding: 26px 21px; border-radius: 22px; }
  .founder-origin-story__route { grid-template-columns: 1fr; gap: 9px; }
  .founder-origin-story__route i { width: 1px; height: 22px; margin-left: 11px; background: linear-gradient(var(--accent), rgba(7,105,119,.20)); }
}

/* ========================================================================== 
   DELOGU'S · DESKTOP HEADER VERTICAL ALIGNMENT · 2026-08-17
   Restores the approved header proportions while centering every control
   within the available header height. This deliberately overrides the
   earlier refined-header auto-height rule that could pin content to the top.
   ========================================================================== */
@media (min-width: 1141px) {
  html.has-refined-header .site-header {
    height: var(--header-height);
  }

  html.has-refined-header .header__inner {
    height: 100%;
    min-height: var(--header-height);
    align-items: center;
    padding-block: 12px;
  }

  html.has-refined-header .logo,
  html.has-refined-header .site-nav,
  html.has-refined-header .header__actions,
  html.has-refined-header .language-control,
  html.has-refined-header .header__phone,
  html.has-refined-header .header__actions > .button {
    align-self: center;
  }

  html.has-refined-header .logo {
    height: 100%;
    align-items: center;
  }

  html.has-refined-header .logo img {
    max-height: 70px;
  }

  html.has-refined-header .site-nav {
    min-height: 44px;
    align-items: center;
  }

  html.has-refined-header .site-nav a,
  html.has-refined-header .site-nav button {
    display: inline-flex;
    min-height: 40px;
    align-items: center;
    padding-block: 10px;
  }

  html.has-refined-header .header__actions {
    min-height: 48px;
    align-items: center;
  }

  html.has-refined-header .language-control {
    display: flex;
    align-items: center;
  }

  html.has-refined-header .header__phone {
    margin: 0;
    padding-block: 6px;
    line-height: 1.25;
  }

  html.has-refined-header .header__actions > .button,
  html.has-refined-header .language-trigger {
    margin-block: 0;
  }
}

/* ==========================================================================
   DELOGU'S · HEADER CTA VISIBILITY FIX · 2026-08-17
   Keep the approved filled quote button on desktop and prevent the
   mobile-menu CTA from leaking into the desktop navigation.
   ========================================================================== */
@media (min-width: 1141px) {
  html.has-refined-header .site-nav__mobile-cta,
  .site-nav__mobile-cta {
    display: none !important;
  }

  html.has-refined-header .header__actions > .button.button--small.button--accent {
    display: inline-flex !important;
  }
}
