/* Removals London 24 — site stylesheet (2026 redesign)
   Mobile-first. Replaces RemovalsLondon.css + MobileRL24.css in the shared
   templates; the old files are kept on disk for anything still linking them. */

/* ---------- Design tokens ---------- */
:root {
  --brand: #c8006d;          /* text, links, buttons — 5.7:1 on white */
  --brand-strong: #a3005a;   /* hover / pressed */
  --brand-bright: #ff008b;   /* decorative only (logo ring, accents) — not for text */
  --brand-tint: #fdf0f6;
  --ink: #13233f;            /* headings, header, footer */
  --ink-soft: #24365a;
  --text: #2b2f36;
  --muted: #5a6070;
  --surface: #f6f3ef;
  --card: #ffffff;
  --line: #e3dfd8;
  --ok: #1d7a46;
  --no: #b3261e;

  --font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --radius: 10px;
  --radius-lg: 16px;
  --shadow: 0 1px 2px rgba(19,35,63,.06), 0 4px 16px rgba(19,35,63,.06);
  --container: 1180px;
  --gutter: 16px;
  --space-1: .5rem; --space-2: 1rem; --space-3: 1.5rem; --space-4: 2rem; --space-5: 3rem; --space-6: 4.5rem;
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0; background: #fff; color: var(--text);
  font: 400 1.0625rem/1.65 var(--font);
  text-rendering: optimizeLegibility;
}
img, iframe, video { max-width: 100%; height: auto; }
img { border: 0; }
a { color: var(--brand); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 2px; }
a:hover { color: var(--brand-strong); text-decoration-thickness: 2px; }
:focus-visible { outline: 3px solid var(--brand-bright); outline-offset: 2px; border-radius: 3px; }
h1, h2, h3, h4, h5, h6 { color: var(--ink); line-height: 1.25; margin: 1.6em 0 .5em; font-weight: 700; letter-spacing: -.01em; }
h1 { font-size: clamp(1.75rem, 4.5vw, 2.6rem); margin-top: 0; letter-spacing: -.02em; }
h2 { font-size: clamp(1.4rem, 3vw, 1.85rem); }
h3 { font-size: 1.3rem; }
h4 { font-size: 1.15rem; }
h5, h6 { font-size: 1.05rem; }
p, ul, ol { margin: 0 0 1em; }
ul, ol { padding-left: 1.25em; }
li { margin: .25em 0; }
table { border-collapse: collapse; width: 100%; }
hr { border: 0; border-top: 1px solid var(--line); margin: var(--space-4) 0; }
big { font-size: inherit; font-weight: 700; background: none; }

.container { width: 100%; max-width: var(--container); margin: 0 auto; padding: 0 var(--gutter); }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip-link { position: absolute; left: var(--gutter); top: -100px; z-index: 100; background: var(--ink); color: #fff; padding: .6rem 1rem; border-radius: var(--radius); }
.skip-link:focus { top: var(--gutter); color: #fff; }

/* ---------- Buttons ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .5em;
  min-height: 48px; padding: .7em 1.4em; border-radius: 999px; border: 2px solid transparent;
  font: 700 1rem/1.2 var(--font); text-decoration: none; cursor: pointer;
  transition: background-color .15s, color .15s, border-color .15s;
}
.btn-primary { background: var(--brand); color: #fff; }
.btn-primary:hover { background: var(--brand-strong); color: #fff; }
.btn-secondary { background: transparent; color: var(--ink); border-color: var(--ink); }
.btn-secondary:hover { background: var(--ink); color: #fff; }
.btn-light { background: #fff; color: var(--ink); }
.btn-light:hover { background: var(--brand-tint); color: var(--ink); }
.btn-block { display: flex; width: 100%; }

/* ---------- Header ---------- */
.site-header { position: sticky; top: 0; z-index: 50; background: #fff; border-bottom: 1px solid var(--line); }
.header-inner { display: flex; align-items: center; gap: var(--space-2); min-height: 68px; flex-wrap: wrap; }
.brand { display: inline-flex; align-items: center; gap: .6rem; text-decoration: none; color: var(--ink); margin-right: auto; padding: .5rem 0; }
.brand:hover { color: var(--ink); }
.brand-mark { width: 42px; height: 42px; flex: none; }
.brand-name { font-weight: 800; font-size: 1.15rem; line-height: 1.1; letter-spacing: -.01em; }
.brand-name span { color: var(--brand); }
.nav-toggle {
  display: none; align-items: center; gap: .4rem; min-height: 44px; padding: 0 .9rem;
  background: none; border: 1px solid var(--line); border-radius: var(--radius); color: var(--ink);
  font: 600 .95rem var(--font); cursor: pointer;
}
.nav-toggle-bars, .nav-toggle-bars::before, .nav-toggle-bars::after { display: block; width: 18px; height: 2px; background: currentColor; position: relative; content: ""; }
.nav-toggle-bars::before { position: absolute; top: -6px; }
.nav-toggle-bars::after { position: absolute; top: 6px; }
.site-nav ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .1rem .25rem; }
.site-nav li { margin: 0; }
.site-nav a {
  display: block; padding: .6rem .7rem; border-radius: 8px; color: var(--ink);
  font-weight: 600; font-size: .98rem; text-decoration: none;
}
.site-nav a:hover { background: var(--surface); color: var(--brand); }
.site-nav a[aria-current="page"] { color: var(--brand); box-shadow: inset 0 -2px 0 var(--brand); border-radius: 0; }
.header-cta { white-space: nowrap; }

/* JS-enhanced mobile menu (without JS the nav simply wraps below the logo) */
@media (max-width: 899px) {
  .js .nav-toggle { display: inline-flex; }
  .js .site-nav { display: none; width: 100%; order: 3; padding: 0 0 var(--space-2); }
  .js .site-nav.is-open { display: block; }
  .site-nav ul { flex-direction: column; }
  .js .site-nav a { padding: .8rem .5rem; border-bottom: 1px solid var(--line); border-radius: 0; }
  .site-nav { width: 100%; order: 3; }
  .header-cta { order: 2; padding: .55em 1em; min-height: 44px; font-size: .95rem; }
}
@media (max-width: 420px) {
  .brand-name { font-size: 1rem; }
  .brand-mark { width: 36px; height: 36px; }
  .header-cta .long { display: none; }
}
@media (min-width: 900px) {
  .header-inner { flex-wrap: nowrap; min-height: 76px; }
  .brand { margin-right: 0; }
  .site-nav { order: 2; margin-left: auto; }
  .header-cta { order: 3; }
}

/* ---------- Page layout ---------- */
.page-head { background: var(--surface); border-bottom: 1px solid var(--line); padding: var(--space-4) 0 var(--space-3); }
.page-head h1 { margin: 0; }
.breadcrumbs { font-size: .9rem; color: var(--muted); margin: 0 0 .6rem; }
.breadcrumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .3rem; }
.breadcrumbs li { margin: 0; }
.breadcrumbs li + li::before { content: "/"; margin-right: .3rem; color: var(--line); }
.breadcrumbs a { color: var(--muted); }

.layout { display: grid; gap: var(--space-4); padding-top: var(--space-4); padding-bottom: var(--space-5); }
@media (min-width: 960px) {
  .layout { grid-template-columns: minmax(0, 1fr) 320px; gap: var(--space-5); }
}
.layout-single { padding-top: var(--space-4); padding-bottom: var(--space-5); max-width: 860px; }

/* ---------- Long-form content (legacy page bodies) ---------- */
.content { min-width: 0; }
.content .title, .content h2.title, .content h3.title { margin-top: 0; }
.content .title a { color: inherit; text-decoration: none; }
.content .entry { text-align: left; }
.content ul { list-style: none; padding-left: 0; }
.content ul li { position: relative; padding-left: 1.7em; }
.content ul li::before {
  content: ""; position: absolute; left: 0; top: .45em; width: 1.05em; height: 1.05em; border-radius: 50%;
  background: var(--brand-tint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.5l2.5 2.5L12 5.5' fill='none' stroke='%23c8006d' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/80% no-repeat;
}
.content ul ul li::before { width: .4em; height: .4em; top: .7em; left: .4em; background: var(--muted); }
.content ul.no li::before {
  background: #fdecea url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M5 5l6 6M11 5l-6 6' fill='none' stroke='%23b3261e' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") center/75% no-repeat;
}
.content ul.form li::before, .content ul.plain li::before { display: none; }
.content ul.form li, .content ul.plain li { padding-left: 0; }
.content ol { padding-left: 1.4em; }
.content p.bigger, .content .bigger { font-size: 1.2rem; font-weight: 600; color: var(--ink); }
.content .subhead { font-size: 1.3rem; font-weight: 700; color: var(--ink); }
.content h5, .content .h5 { font-size: .95rem; font-weight: 400; color: var(--muted); line-height: 1.7; }
.content h5 a, .content .h5 a { color: var(--brand); }
.content img.right { float: right; margin: 0 0 1rem 1.25rem; max-width: 45%; }
.content img.left { float: left; margin: 0 1.25rem 1rem 0; max-width: 45%; }
.content img.Full { width: 100%; }
.content img.DwaImg { width: calc(50% - .5rem); margin: .25rem; }
.content iframe { width: 100%; aspect-ratio: 16 / 9; height: auto; border: 0; border-radius: var(--radius); }
.content table td, .content table th { border: 1px solid var(--line); padding: .5rem .7rem; text-align: left; vertical-align: top; }
.content table th { background: var(--surface); }
.content tr.teven { background: var(--surface); }
.content .entry::after { content: ""; display: table; clear: both; }
.content a.related { text-decoration: none; }
.content blockquote { margin: 1.5em 0; padding: 1em 1.25em; border-left: 4px solid var(--brand); background: var(--surface); border-radius: 0 var(--radius) var(--radius) 0; }
.content #list2 ol { padding-left: 1.6em; }
.content #list2 ol li::marker { color: var(--brand); font-weight: 800; }
.content #list2 ol li p b { display: block; color: var(--ink); }
.table-scroll { overflow-x: auto; }
@media (max-width: 600px) {
  .content img.right, .content img.left { float: none; display: block; margin: 0 auto 1rem; max-width: 100%; }
  .nomobile { display: none !important; }
}

/* ---------- Sidebar ---------- */
.sidebar { display: flex; flex-direction: column; gap: var(--space-3); min-width: 0; }
.card { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: var(--space-3); box-shadow: var(--shadow); }
.card h2, .card h3, .card h4 { margin-top: 0; }
.card-quote { background: var(--ink); color: #e9edf5; border: 0; }
.card-quote h2 { color: #fff; font-size: 1.35rem; }
.card-quote p { color: #c9cfdb; }
.card-quote .btn { width: 100%; }
.sidebar-photo { border-radius: var(--radius-lg); width: 100%; display: block; }
.sidebar .extra { font-size: .98rem; }
.sidebar .extra h3 { font-size: 1.2rem; margin-top: 0; }
.sidebar .extra img { border-radius: var(--radius); }
.sidebar .extra #list2 { width: auto; }
.sidebar .extra #list2 ol { padding-left: 1.4em; }
.sidebar .extra #list2 li::marker { color: var(--brand); font-weight: 800; }
.sidebar .extra #list2 li p b { display: block; color: var(--ink); }
.sidebar .extra img.right { float: right; margin: 0 0 .5rem .75rem; max-width: 40%; }
@media (min-width: 960px) { .sidebar-sticky { position: sticky; top: 96px; } }

.reviews { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-2); }
.reviews li { margin: 0; padding: 0; }
.reviews blockquote, .reviews li > p { margin: 0 0 .4rem; font-style: italic; color: var(--text); }
.reviews li::before { content: "\201C"; display: block; font: 700 2.4rem/1 Georgia, serif; color: var(--brand-bright); height: 1.1rem; }
.rating-note { font-size: .92rem; color: var(--muted); }

.social { display: flex; gap: .5rem; flex-wrap: wrap; }
.social a {
  display: inline-flex; align-items: center; gap: .45rem; min-height: 44px; padding: .4rem .85rem;
  border: 1px solid var(--line); border-radius: 999px; color: var(--ink); text-decoration: none; font-weight: 600; font-size: .92rem;
}
.social a:hover { border-color: var(--brand); color: var(--brand); }
.social svg { width: 18px; height: 18px; fill: currentColor; }

/* ---------- Footer ---------- */
.footer-links-bar { border-top: 1px solid var(--line); padding: var(--space-2) 0; text-align: center; font-size: .95rem; }
.footer-links-bar a { margin: 0 .5rem; }
.site-footer { background: var(--ink); color: #c9cfdb; padding: var(--space-5) 0 var(--space-3); font-size: .97rem; }
.site-footer a { color: #fff; text-decoration: none; }
.site-footer a:hover { color: #ff8cc8; text-decoration: underline; }
.footer-grid { display: grid; gap: var(--space-4); grid-template-columns: 1fr; }
@media (min-width: 700px) { .footer-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .footer-grid { grid-template-columns: 1.4fr 1fr 1fr 1fr; } }
.site-footer h2 { color: #fff; font-size: 1.02rem; margin: 0 0 .8rem; letter-spacing: .02em; }
.site-footer ul { list-style: none; margin: 0; padding: 0; }
.site-footer li { margin: 0 0 .45rem; }
.footer-brand .brand { color: #fff; padding: 0; margin-bottom: .8rem; }
.footer-brand .brand:hover { color: #fff; text-decoration: none; }
.footer-brand .brand-name span { color: #ff8cc8; }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.14); margin-top: var(--space-4); padding-top: var(--space-3); display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; justify-content: space-between; font-size: .9rem; }
.footer-bottom a { color: #c9cfdb; }

/* ---------- Homepage sections ---------- */
.hero { background: linear-gradient(180deg, var(--brand-tint) 0%, #fff 100%); border-bottom: 1px solid var(--line); }
.hero-inner { display: grid; gap: var(--space-4); padding-top: var(--space-5); padding-bottom: var(--space-5); align-items: center; }
@media (min-width: 900px) { .hero-inner { grid-template-columns: 1.25fr .75fr; } }
.eyebrow { display: inline-block; font-weight: 700; font-size: .85rem; letter-spacing: .08em; text-transform: uppercase; color: var(--brand); margin-bottom: .75rem; }
.hero h1 { font-size: clamp(2rem, 5.5vw, 3.1rem); margin-bottom: .4em; }
.hero .lead { font-size: clamp(1.08rem, 2vw, 1.25rem); color: var(--text); max-width: 38em; }
.hero-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin: var(--space-3) 0 var(--space-2); }
.hero-points { list-style: none; padding: 0; margin: var(--space-3) 0 0; display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; font-weight: 600; color: var(--ink); font-size: .97rem; }
.hero-points li { display: inline-flex; align-items: center; gap: .4rem; margin: 0; }
.hero-points svg { width: 20px; height: 20px; flex: none; }
.hero-art { justify-self: center; max-width: 320px; width: 100%; }
.hero-art img { border-radius: 24px; box-shadow: var(--shadow); width: 100%; }

.section { padding: var(--space-6) 0; }
.section-alt { background: var(--surface); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.section-head { max-width: 46em; margin-bottom: var(--space-4); }
.section-head h2 { margin-top: 0; }
.section-head p { color: var(--muted); font-size: 1.08rem; }

.grid { display: grid; gap: var(--space-3); }
@media (min-width: 640px) { .grid-2, .grid-3, .grid-4 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 980px) { .grid-3 { grid-template-columns: repeat(3, 1fr); } .grid-4 { grid-template-columns: repeat(4, 1fr); } }

.service-card { display: flex; flex-direction: column; gap: .4rem; height: 100%; }
.service-card h3 { margin: .2rem 0 .2rem; font-size: 1.18rem; }
.service-card h3 a { color: var(--ink); text-decoration: none; }
.service-card h3 a::after { content: ""; position: absolute; inset: 0; }
.service-card { position: relative; transition: border-color .15s, transform .15s; }
.service-card:hover { border-color: var(--brand); }
.service-card p { color: var(--muted); margin: 0; font-size: .98rem; }
.service-card .more { margin-top: auto; padding-top: .5rem; font-weight: 700; color: var(--brand); font-size: .95rem; }
.icon-badge { width: 48px; height: 48px; border-radius: 12px; background: var(--brand-tint); display: grid; place-items: center; }
.icon-badge svg { width: 26px; height: 26px; stroke: var(--brand); fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

.check-list { list-style: none; padding: 0; margin: 0; display: grid; gap: .75rem; }
@media (min-width: 700px) { .check-list.cols-2 { grid-template-columns: 1fr 1fr; gap: .75rem 2rem; } }
.check-list li { position: relative; padding-left: 2rem; margin: 0; }
.check-list li::before {
  content: ""; position: absolute; left: 0; top: .2em; width: 1.35em; height: 1.35em; border-radius: 50%;
  background: var(--brand) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.5l2.5 2.5L12 5.5' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/70% no-repeat;
}
.check-list strong { color: var(--ink); }
.check-list.cross li::before {
  background: #fdecea url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M5 5l6 6M11 5l-6 6' fill='none' stroke='%23b3261e' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") center/70% no-repeat;
}

.steps { counter-reset: step; list-style: none; padding: 0; margin: 0; display: grid; gap: var(--space-3); }
@media (min-width: 800px) { .steps { grid-template-columns: repeat(3, 1fr); } }
.steps li { counter-increment: step; margin: 0; }
.steps li::before {
  content: counter(step); display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%;
  background: var(--ink); color: #fff; font-weight: 800; font-size: 1.15rem; margin-bottom: .8rem;
}
.steps h3 { margin: 0 0 .35rem; font-size: 1.15rem; }
.steps p { color: var(--muted); margin: 0; }

.area-links { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; padding: 0; margin: 0; }
.area-links li { margin: 0; }
.area-links a {
  display: inline-block; padding: .5rem .9rem; border: 1px solid var(--line); border-radius: 999px; background: #fff;
  color: var(--ink); text-decoration: none; font-weight: 600; font-size: .95rem;
}
.area-links a:hover { border-color: var(--brand); color: var(--brand); }

.two-col { display: grid; gap: var(--space-4); align-items: start; }
@media (min-width: 900px) { .two-col { grid-template-columns: 1fr 1fr; gap: var(--space-5); } }

.faq details { border: 1px solid var(--line); border-radius: var(--radius); background: #fff; margin-bottom: .75rem; }
.faq summary {
  cursor: pointer; list-style: none; padding: 1rem 3rem 1rem 1.15rem; font-weight: 700; color: var(--ink); position: relative;
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; position: absolute; right: 1.15rem; top: 50%; transform: translateY(-50%); font-size: 1.4rem; color: var(--brand); font-weight: 400; }
.faq details[open] summary::after { content: "\2212"; }
.faq details > div { padding: 0 1.15rem 1rem; }
.faq details > div p:last-child { margin-bottom: 0; }

.cta-band { background: var(--ink); color: #c9cfdb; border-radius: var(--radius-lg); padding: var(--space-4); display: grid; gap: var(--space-2); align-items: center; }
@media (min-width: 800px) { .cta-band { grid-template-columns: 1fr auto; padding: var(--space-4) var(--space-5); } }
.cta-band h2 { color: #fff; margin: 0 0 .3rem; }
.cta-band p { margin: 0; }

/* Click-to-load YouTube (no third-party request until the visitor asks for it) */
.video-facade { position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; border-radius: var(--radius-lg); overflow: hidden; background: var(--ink) center/cover no-repeat; border: 0; padding: 0; cursor: pointer; color: #fff; font: 700 1rem var(--font); }
.video-facade::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(19,35,63,.15), rgba(19,35,63,.65)); }
.video-facade .play { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 72px; height: 72px; border-radius: 50%; background: var(--brand); display: grid; place-items: center; box-shadow: 0 6px 24px rgba(0,0,0,.3); }
.video-facade .play svg { width: 28px; height: 28px; fill: #fff; margin-left: 4px; }
.video-facade .label { position: absolute; left: 1rem; bottom: .9rem; right: 1rem; text-align: left; }
.video-facade:hover .play { background: var(--brand-strong); }
.video-frame { width: 100%; aspect-ratio: 16 / 9; border: 0; border-radius: var(--radius-lg); display: block; }

/* ---------- Legacy helpers still used in page bodies ---------- */
.clear { clear: both; }
.center { text-align: center; }
.ok_box, .error_box { padding: var(--space-3); border-radius: var(--radius); margin: var(--space-3) 0; }
.ok_box { background: #e8f5ee; border: 1px solid #b7dfc7; }
.error_box { background: #fdecea; border: 1px solid #f3c1bb; }
#kw, h1.gora, #addr { display: none; }

/* ---------- Motion & print ---------- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
}
@media print {
  .site-header, .site-footer, .sidebar, .footer-links-bar, .skip-link { display: none !important; }
  .layout { display: block; }
  a { color: inherit; }
}

/* Sidebar testimonials markup from the legacy includes */
#reviews { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-2); }
#reviews li { margin: 0; padding: 0; }
#reviews li > p { margin: 0 0 .4rem; font-style: italic; }
#reviews li::before { content: "\201C"; display: block; font: 700 2.4rem/1 Georgia, serif; color: var(--brand-bright); height: 1.1rem; }
.h4 { font-size: 1.15rem; margin-top: 0; }

/* Mobile: quote CTA lives in a sticky bottom bar instead of the header */
.mobile-cta { display: none; }
@media (max-width: 899px) {
  .header-cta { display: none; }
  .mobile-cta {
    display: block; position: fixed; left: 0; right: 0; bottom: 0; z-index: 40;
    padding: .6rem var(--gutter) calc(.6rem + env(safe-area-inset-bottom));
    background: rgba(255,255,255,.96); border-top: 1px solid var(--line); box-shadow: 0 -4px 16px rgba(19,35,63,.08);
  }
  body:has(.mobile-cta) { padding-bottom: 76px; }
}
.site-footer .btn-light, .site-footer .btn-light:hover { color: var(--ink); text-decoration: none; }
@media (max-width: 899px) { .hero-art { max-width: 200px; } .hero-inner { padding-top: var(--space-4); padding-bottom: var(--space-4); } }

/* Quote page: partner form on the left, photo on the right (form only on phones).
   The SkyDreams form centres itself inside its iframe, so the form column is kept
   close to the form's own width - otherwise an empty strip appears on its left. */
.layout-single.layout-wide { max-width: var(--container); }
.quote-layout { display: grid; gap: var(--space-4); align-items: start; }
.quote-layout .quote-form { min-width: 0; }
.quote-layout .quote-form h3 { margin-top: 0; }
.quote-layout .quote-form iframe { width: 100% !important; max-width: 100%; border: 0; }
.quote-layout .quote-photo img { width: 100%; height: auto; border-radius: var(--radius-lg); display: block; }
@media (min-width: 900px) {
  .quote-layout { grid-template-columns: minmax(0, 540px) minmax(240px, 340px); gap: var(--space-5); }
  .quote-layout .quote-photo { position: sticky; top: 96px; }
}
