/* ===== Self-hosted fonts (replaces Google Fonts: no render-blocking request, no third-party connection) ===== */
@font-face{font-family:"Playfair Display";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/playfair-display-400.woff2) format("woff2");}
@font-face{font-family:"Playfair Display";font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/playfair-display-700.woff2) format("woff2");}
@font-face{font-family:"Playfair Display";font-style:normal;font-weight:800;font-display:swap;src:url(/assets/fonts/playfair-display-800.woff2) format("woff2");}
@font-face{font-family:"Lato";font-style:normal;font-weight:300;font-display:swap;src:url(/assets/fonts/lato-300.woff2) format("woff2");}
@font-face{font-family:"Lato";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/lato-400.woff2) format("woff2");}
@font-face{font-family:"Lato";font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/lato-700.woff2) format("woff2");}
@font-face{font-family:"Lato";font-style:normal;font-weight:900;font-display:swap;src:url(/assets/fonts/lato-900.woff2) format("woff2");}
/* Metric-matched fallbacks: stop the text jumping when the web font swaps in (Cumulative Layout Shift) */
@font-face{font-family:"Playfair Display Fallback";font-weight:400;src:local("Times New Roman"),local("TimesNewRomanPSMT"),local("Tinos"),local("Liberation Serif");size-adjust:112.67%;ascent-override:96.03%;descent-override:22.28%;line-gap-override:0.00%;}
@font-face{font-family:"Playfair Display Fallback";font-weight:700;src:local("Times New Roman Bold"),local("TimesNewRomanPS-BoldMT"),local("Tinos Bold"),local("Liberation Serif Bold");size-adjust:108.07%;ascent-override:100.12%;descent-override:23.23%;line-gap-override:0.00%;}
@font-face{font-family:"Playfair Display Fallback";font-weight:800;src:local("Times New Roman Bold"),local("TimesNewRomanPS-BoldMT"),local("Tinos Bold"),local("Liberation Serif Bold");size-adjust:108.83%;ascent-override:99.42%;descent-override:23.06%;line-gap-override:0.00%;}
@font-face{font-family:"Lato Fallback";font-weight:300;src:local("Arial"),local("ArialMT"),local("Arimo"),local("Liberation Sans");size-adjust:95.20%;ascent-override:103.67%;descent-override:22.37%;line-gap-override:0.00%;}
@font-face{font-family:"Lato Fallback";font-weight:400;src:local("Arial"),local("ArialMT"),local("Arimo"),local("Liberation Sans");size-adjust:98.08%;ascent-override:100.63%;descent-override:21.72%;line-gap-override:0.00%;}
@font-face{font-family:"Lato Fallback";font-weight:700;src:local("Arial Bold"),local("Arial-BoldMT"),local("Arimo Bold"),local("Liberation Sans Bold");size-adjust:92.78%;ascent-override:106.38%;descent-override:22.96%;line-gap-override:0.00%;}
@font-face{font-family:"Lato Fallback";font-weight:900;src:local("Arial Bold"),local("Arial-BoldMT"),local("Arimo Bold"),local("Liberation Sans Bold");size-adjust:94.80%;ascent-override:104.11%;descent-override:22.47%;line-gap-override:0.00%;}

/* SPK 'N' SPN — shared header, top bar, footer, floating buttons, quote strip.
   One file used by every page so header/footer always look and behave the same. */
:root {
  --gold: #c9a44a; --gold-light: #e2c47a; --gold-dark: #826220; --gold-faint: #faf3e0;
  --navy: #502f17; --charcoal: #2e2e2e; --white: #ffffff; --off-white: #f9f6ef;
  --border: #e8e0cc; --transition: 0.3s ease;
  --font-display:"Playfair Display","Playfair Display Fallback",Georgia,serif; --font-body:"Lato","Lato Fallback",sans-serif;
}
.top-bar .container, .site-header .container, .site-footer .container, .quote-strip .container {
  max-width: 1200px; margin: 0 auto; padding: 0 24px;
}
.site-header ul, .site-footer ul { list-style: none; margin: 0; padding: 0; }
.site-header a, .site-footer a, .top-bar a { text-decoration: none; }
.site-header, .site-footer { font-family: var(--font-body); }

.top-bar {
  background: var(--navy);
  color: rgba(255, 255, 255, 0.80);
  font-size: 0.82rem;
  letter-spacing: 0.03em;
  padding: 7px 0;
}
.top-bar .container {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
}
.top-bar a {
  color: var(--gold-light);
  transition: var(--transition);
}
.top-bar a:hover {
  color: var(--white);
}
.top-bar-left,
.top-bar-right {
  display: flex;
  gap: 20px;
  align-items: center;
  flex-wrap: wrap;
}
.top-bar svg {
  width: 14px;
  height: 14px;
  fill: var(--gold);
  vertical-align: middle;
  margin-right: 4px;
}
header.site-header {
  background: var(--white);
  box-shadow: 0 2px 20px rgba(0, 0, 0, 0.07);
  position: sticky;
  top: 0;
  z-index: 1000;
}
.nav-wrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 76px;
  gap: 20px;
  position: relative;
}
.logo-link {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-shrink: 0;
}
.logo-link img {
  height: 58px;
  width: auto;
}
.logo-text-wrap {
  display: flex;
  flex-direction: column;
  line-height: 1.1;
}
.logo-name {
  font-family: var(--font-display);
  font-size: 1.18rem;
  font-weight: 700;
  color: var(--navy);
}
.logo-tagline {
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gold-dark);
  font-weight: 700;
}
#main-nav ul {
  display: flex;
  gap: 4px;
  align-items: center;
}
#main-nav ul li a {
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--charcoal);
  padding: 8px 14px;
  border-radius: 6px;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  transition: var(--transition);
}
#main-nav ul li a:hover {
  color: var(--gold);
  background: var(--gold-faint);
}
#main-nav ul li a.active {
  color: var(--gold-dark);
}
.has-dropdown {
  position: relative;
}
.has-dropdown>a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.has-dropdown>a::after {
  content: '';
  width: 0;
  height: 0;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 5px solid currentColor;
  transition: transform var(--transition);
}
.has-dropdown:hover>a::after,
.has-dropdown:focus-within>a::after,
.has-dropdown.open>a::after {
  transform: rotate(180deg);
}
.dropdown-menu {
  display: none;
  position: absolute;
  top: 100%;
  margin-top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 300px;
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 8px;
  box-shadow: 0 14px 42px rgba(0, 0, 0, 0.14);
  overflow: hidden;
  z-index: 200;
}
.has-dropdown:hover .dropdown-menu,
.has-dropdown:focus-within .dropdown-menu {
  display: block;
}
.dropdown-header {
  background: var(--gold-faint);
  border-bottom: 1px solid var(--border);
  padding: 10px 16px;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gold-dark);
}
.dropdown-items {
  padding: 6px;
}
.dropdown-item {
  display: block;
  padding: 10px 12px;
  border-radius: 6px;
  color: var(--charcoal);
  font-size: 0.84rem;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: none;
}
.dropdown-item:hover {
  color: var(--gold-dark);
  background: var(--gold-faint);
}
.dropdown-footer {
  border-top: 1px solid var(--border);
  padding: 8px 16px;
  background: var(--off-white);
}
.dropdown-footer a {
  padding: 0;
  color: var(--gold-dark);
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.nav-review {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 10px 16px !important;
  border: 1.5px solid var(--gold) !important;
  border-radius: 6px !important;
  color: var(--gold-dark) !important;
  background: var(--white) !important;
  font-weight: 800 !important;
  box-shadow: 0 3px 12px rgba(201, 164, 74, 0.18);
}
.nav-review::before {
  content: "G";
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #4285F4;
  color: #fff;
  font-size: 0.72rem;
  font-weight: 800;
  line-height: 1;
}
.nav-review:hover {
  background: var(--gold-faint) !important;
  color: var(--navy) !important;
  transform: translateY(-1px);
}
.nav-cta {
  background: var(--gold) !important;
  color: var(--white) !important;
  padding: 10px 20px !important;
  border-radius: 6px !important;
  box-shadow: 0 3px 12px rgba(201, 164, 74, 0.35) !important;
}
.has-dropdown>a::after {
  margin-left: auto;
}
.has-dropdown.open .dropdown-menu {
  display: block;
}
.nav-cta:hover {
  background: var(--gold-dark) !important;
  transform: translateY(-1px);
}
.hamburger {
  display: none;
  cursor: pointer;
  flex-direction: column;
  gap: 5px;
  background: none;
  border: none;
  padding: 6px;
}
.hamburger span {
  display: block;
  width: 24px;
  height: 2.5px;
  background: var(--navy);
  border-radius: 2px;
  transition: var(--transition);
}
.hamburger.open span:nth-child(1) {
  transform: translateY(7.5px) rotate(45deg);
}
.hamburger.open span:nth-child(2) {
  opacity: 0;
}
.hamburger.open span:nth-child(3) {
  transform: translateY(-7.5px) rotate(-45deg);
}
footer.site-footer {
  background: #502F17;
  color: rgba(255, 255, 255, 0.65);
  padding: 60px 0 0;
}
.footer-grid {
  display: grid;
  grid-template-columns: 1.6fr 1fr 1fr 1fr;
  gap: 40px;
  padding-bottom: 48px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.footer-brand .logo-name {
  color: var(--white);
  font-size: 1.1rem;
}
.footer-brand .logo-tagline {
  color: var(--gold);
}
.footer-brand p {
  font-size: 0.85rem;
  line-height: 1.8;
  margin-top: 14px;
}
.footer-socials {
  display: flex;
  gap: 10px;
  margin-top: 20px;
}
.social-btn {
  width: 38px;
  height: 38px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.10);
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: var(--transition);
}
.social-btn:hover {
  background: var(--gold);
  border-color: var(--gold);
}
.social-btn svg {
  width: 16px;
  height: 16px;
  fill: rgba(255, 255, 255, 0.7);
}
.social-btn:hover svg {
  fill: var(--white);
}
.footer-col h4, .footer-col h3, .footer-col h3, .footer-col h3, .footer-col h3, .footer-col h3, .footer-col h3, .footer-col h3, .footer-col h3, .footer-col h3, .footer-col h3, .footer-col h3, .footer-col h3, .footer-col h3, .footer-col h3, .footer-col h3, .footer-col h3, .footer-col h3, .footer-col h3, .footer-col h3, .footer-col h3, .footer-col h3, .footer-col h3, .footer-col h3, .footer-col h3, .footer-col h2, .footer-col h3, .footer-col h3, .footer-col h3, .footer-col h3, .footer-col h3, .footer-col h3, .footer-col h3, .footer-col h3, .footer-col h3, .footer-col h3, .footer-col h3, .footer-col h3, .footer-col h3, .footer-col h3, .footer-col h3, .footer-col h3, .footer-col h3 {
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--white);
  margin-bottom: 18px;
}
.footer-col ul li {
  margin-bottom: 10px;
}
.footer-col ul li a {
  font-size: 0.86rem;
  color: rgba(255, 255, 255, 0.55);
  transition: var(--transition);
}
.footer-col ul li a:hover {
  color: var(--gold-light);
  padding-left: 4px;
}
.footer-contact-item {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  margin-bottom: 14px;
  font-size: 0.85rem;
}
.footer-contact-item svg {
  width: 16px;
  height: 16px;
  fill: var(--gold);
  flex-shrink: 0;
  margin-top: 3px;
}
.footer-contact-item a {
  color: rgba(255, 255, 255, 0.65);
  transition: var(--transition);
}
.footer-contact-item a:hover {
  color: var(--gold-light);
}
.footer-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  padding: 20px 0;
  font-size: 0.78rem;
}
.footer-bottom a {
  color: var(--gold-light);
}
.footer-bottom a:hover {
  text-decoration: underline;
}
.sticky-whatsapp {
  display: none;
  position: fixed;
  bottom: 88px;
  right: 20px;
  z-index: 999;
  background: #25D366;
  color: var(--white);
  width: 56px;
  height: 56px;
  border-radius: 50%;
  align-items: center;
  justify-content: center;
  box-shadow: 0 6px 24px rgba(37, 211, 102, 0.45);
  transition: var(--transition);
}
.sticky-whatsapp:hover {
  background: #1ebe5d;
  transform: scale(1.08);
}
.sticky-whatsapp svg {
  width: 26px;
  height: 26px;
  fill: var(--white);
}
.sticky-call {
  display: none;
  position: fixed;
  bottom: 20px;
  right: 20px;
  z-index: 999;
  background: var(--gold);
  color: var(--white);
  width: 56px;
  height: 56px;
  border-radius: 50%;
  align-items: center;
  justify-content: center;
  box-shadow: 0 6px 24px rgba(201, 164, 74, 0.55);
  transition: var(--transition);
}
.sticky-call:hover {
  background: var(--gold-dark);
  transform: scale(1.08);
}
.sticky-call svg {
  width: 24px;
  height: 24px;
  fill: var(--white);
}

@media (max-width: 900px) {
.hamburger {
  display: flex;
}
#main-nav {
  display: none;
  position: absolute;
  top: 76px;
  left: 0;
  right: 0;
  background: var(--white);
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12);
  padding: 16px 24px 24px;
}
#main-nav.open {
  display: block;
}
#main-nav ul {
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
}
#main-nav ul li {
  width: 100%;
}
#main-nav ul li a {
  display: block;
  padding: 12px 16px;
  border-radius: 8px;
}
.nav-cta {
  margin-top: 8px;
  text-align: center !important;
}
.footer-grid {
  grid-template-columns: 1fr 1fr;
}
header.site-header {
  z-index: 2000;
}
#main-nav {
  max-height: calc(100vh - 76px);
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}
#main-nav .dropdown-menu {
  position: static;
  transform: none;
  width: 100%;
  margin: 4px 0 8px;
  box-shadow: none;
  border-radius: 8px;
}
#main-nav .has-dropdown:hover .dropdown-menu,
#main-nav .has-dropdown:focus-within .dropdown-menu {
  display: none;
}
#main-nav .has-dropdown.open .dropdown-menu {
  display: block;
}
}

@media (max-width: 560px) {
.footer-grid {
  grid-template-columns: 1fr;
}
}

@media (max-width: 768px) {
.sticky-whatsapp {
  display: flex;
}
.sticky-call {
  display: flex;
}
.top-bar {
  display: none;
}
}

/* ── footer: 5 columns + sub-headings ── */
footer.site-footer .footer-grid { grid-template-columns: 1.5fr 1fr 1fr 1.1fr 1.3fr; gap: 32px; }
.footer-col h4.footer-sub, .footer-col h3.footer-sub, .footer-col h3.footer-sub, .footer-col h3.footer-sub, .footer-col h3.footer-sub, .footer-col h3.footer-sub, .footer-col h3.footer-sub, .footer-col h3.footer-sub, .footer-col h3.footer-sub, .footer-col h3.footer-sub, .footer-col h3.footer-sub, .footer-col h3.footer-sub, .footer-col h3.footer-sub, .footer-col h3.footer-sub, .footer-col h3.footer-sub, .footer-col h3.footer-sub, .footer-col h3.footer-sub, .footer-col h3.footer-sub, .footer-col h3.footer-sub, .footer-col h3.footer-sub, .footer-col h3.footer-sub, .footer-col h3.footer-sub, .footer-col h3.footer-sub, .footer-col h3.footer-sub, .footer-col h3.footer-sub, .footer-col h2.footer-sub, .footer-col h3.footer-sub, .footer-col h3.footer-sub, .footer-col h3.footer-sub, .footer-col h3.footer-sub, .footer-col h3.footer-sub, .footer-col h3.footer-sub, .footer-col h3.footer-sub, .footer-col h3.footer-sub, .footer-col h3.footer-sub, .footer-col h3.footer-sub, .footer-col h3.footer-sub, .footer-col h3.footer-sub, .footer-col h3.footer-sub, .footer-col h3.footer-sub, .footer-col h3.footer-sub, .footer-col h3.footer-sub, .footer-col h3.footer-sub { margin-top: 26px; }
@media (max-width: 1100px) {
  footer.site-footer .footer-grid { grid-template-columns: 1fr 1fr 1fr; }
  footer.site-footer .footer-brand { grid-column: 1 / -1; }
}
@media (max-width: 700px) { footer.site-footer .footer-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 480px) { footer.site-footer .footer-grid { grid-template-columns: 1fr; } }

/* ── wide / right-aligned dropdowns ── */
.dropdown-menu.dd-wide { width: 590px; }
.dd-cols { display: grid; grid-template-columns: 1fr 1fr; }
.dd-col + .dd-col { border-left: 1px solid var(--border); }
.has-dropdown.dd-right .dropdown-menu { left: auto; right: 0; transform: none; }
.dropdown-item[aria-current="page"] { color: var(--gold-dark); background: var(--gold-faint); }
@media (max-width: 900px) {
  .dd-cols { grid-template-columns: 1fr; }
  .dd-col + .dd-col { border-left: 0; border-top: 1px solid var(--border); }
}

/* ── quick quote strip (placed under the hero on pages without a form) ── */
.quote-strip { background: var(--off-white); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); padding: 34px 0; font-family: var(--font-body); }
.quote-strip-inner { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 2.1fr); gap: 32px; align-items: center; }
.quote-strip h2 { font-family: var(--font-display); color: var(--navy); font-size: 1.6rem; line-height: 1.25; margin: 0 0 8px; }
.quote-strip .qs-sub { margin: 0 0 10px; font-size: 0.95rem; color: #555; line-height: 1.6; }
.quote-strip .qs-call { margin: 0; font-size: 0.92rem; }
.quote-strip .qs-call a { color: var(--gold-dark); font-weight: 700; }
.qs-form { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.qs-field { display: flex; flex-direction: column; gap: 4px; }
.qs-field label { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--navy); }
.qs-field input, .qs-field select { width: 100%; padding: 11px 12px; border: 1.5px solid var(--border); border-radius: 8px; font: inherit; font-size: 0.92rem; background: #fff; color: var(--charcoal); }
.qs-field input:focus, .qs-field select:focus { outline: none; border-color: var(--gold); box-shadow: 0 0 0 3px rgba(201, 164, 74, 0.22); }
.qs-submit { align-self: end; background: var(--gold); color: #fff; border: 0; border-radius: 8px; padding: 12px 18px; font: inherit; font-weight: 700; font-size: 0.95rem; cursor: pointer; transition: var(--transition); box-shadow: 0 3px 12px rgba(201, 164, 74, 0.35); }
.qs-submit:hover { background: var(--gold-dark); }
.qs-submit:disabled { opacity: 0.65; cursor: wait; }
.qs-note { grid-column: 1 / -1; font-size: 0.78rem; color: #777; margin: 0; }
.qs-form .form-status { grid-column: 1 / -1; display: none; font-size: 0.9rem; margin: 0; font-weight: 700; }
@media (max-width: 900px) { .quote-strip-inner { grid-template-columns: 1fr; gap: 20px; } .qs-form { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .qs-form { grid-template-columns: 1fr; } }

/* ── thank-you page ── */
.thanks-wrap { max-width: 760px; margin: 0 auto; padding: 80px 24px; text-align: center; font-family: var(--font-body); }
.thanks-wrap h1 { font-family: var(--font-display); color: var(--navy); font-size: clamp(1.9rem, 4vw, 2.6rem); margin: 0 0 14px; }
.thanks-wrap p { color: #555; line-height: 1.7; margin: 0 0 14px; font-size: 1.05rem; }
.thanks-tick { width: 72px; height: 72px; border-radius: 50%; background: var(--gold-faint); border: 2px solid var(--gold); display: grid; place-items: center; margin: 0 auto 24px; }
.thanks-tick svg { width: 34px; height: 34px; fill: var(--gold-dark); }
.thanks-actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; margin-top: 26px; }
.thanks-actions a { padding: 13px 24px; border-radius: 8px; font-weight: 700; text-decoration: none; }
.thanks-actions .t-primary { background: var(--gold); color: #fff; }
.thanks-actions .t-secondary { border: 1.5px solid var(--gold); color: var(--gold-dark); }

/* ── oven hub: neighbourhood links ── */
.suburb-links { margin: 34px auto 0; text-align: center; }
.suburb-links h3 { color: #fff; font-family: var(--font-display); font-size: 1.15rem; margin: 0 0 14px; }
.suburb-pills { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
.suburb-pills a { padding: 9px 18px; border: 1.5px solid var(--gold); border-radius: 999px; color: var(--gold-light); font-weight: 700; font-size: 0.9rem; text-decoration: none; transition: var(--transition); }
.suburb-pills a:hover { background: var(--gold); color: #fff; }

/* ── related links block (internal linking) ── */
.rel-links{padding:56px 0;background:var(--off-white,#faf8f3);border-top:1px solid var(--border,#eadfc8);}
.rel-links h2{font-family:var(--font-display,Georgia,serif);font-size:1.5rem;color:var(--navy,#502F17);margin-bottom:6px;}
.rel-links .rel-intro{color:var(--text-body,#4a4a4a);font-size:.95rem;margin-bottom:22px;}
.rel-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
.rel-grid li{background:var(--white,#fff);border:1px solid var(--border,#eadfc8);border-radius:12px;padding:16px 18px;display:flex;flex-direction:column;gap:4px;}
.rel-grid a{font-weight:700;color:var(--gold-dark,#8a6d1f);text-decoration:none;line-height:1.35;}
.rel-grid a:hover{text-decoration:underline;}
.rel-grid span{font-size:.85rem;color:var(--text-body,#4a4a4a);line-height:1.5;}
@media(max-width:900px){.rel-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:560px){.rel-grid{grid-template-columns:1fr;}}

/* ── Cookie consent banner + footer "Cookie settings" link ── */
.cookie-banner {
  position: fixed;
  left: 16px;
  right: 16px;
  bottom: 16px;
  z-index: 2200;
  max-width: 780px;
  margin: 0 auto;
  background: var(--white);
  color: var(--charcoal);
  border: 1px solid var(--border);
  border-top: 4px solid var(--gold);
  border-radius: 12px;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.22);
  font-family: var(--font-body);
}
.cookie-banner[hidden] { display: none; }
.cookie-banner-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px 24px;
  padding: 18px 20px;
}
.cookie-banner-copy { flex: 1 1 320px; min-width: 0; }
.cookie-banner-title {
  margin: 0 0 4px;
  font-size: 1rem;
  font-weight: 700;
  color: var(--navy);
}
.cookie-banner-text {
  margin: 0;
  font-size: 0.88rem;
  line-height: 1.6;
}
.cookie-banner-text a {
  color: var(--gold-dark);
  font-weight: 700;
  text-decoration: underline;
}
.cookie-banner-status {
  margin: 6px 0 0;
  font-size: 0.8rem;
  color: var(--gold-dark);
}
.cookie-banner-status:empty { display: none; }
.cookie-banner-actions { display: flex; gap: 10px; flex: 0 0 auto; }
.cookie-btn {
  min-width: 104px;
  min-height: 44px;
  padding: 10px 22px;
  border: 2px solid var(--navy);
  border-radius: 8px;
  font-family: inherit;
  font-size: 0.92rem;
  font-weight: 700;
  cursor: pointer;
  transition: var(--transition);
}
.cookie-btn-accept { background: var(--navy); color: var(--white); }
.cookie-btn-reject { background: var(--white); color: var(--navy); }
.cookie-btn:hover { background: var(--gold-faint); color: var(--navy); }
.cookie-btn-accept:hover { background: var(--charcoal); border-color: var(--charcoal); color: var(--white); }
.cookie-btn:focus-visible,
.cookie-banner-text a:focus-visible,
.footer-bottom .cookie-settings:focus-visible {
  outline: 3px solid var(--gold-dark);
  outline-offset: 2px;
}
.footer-bottom .cookie-settings {
  background: none;
  border: 0;
  padding: 0;
  margin: 0;
  font: inherit;
  color: var(--gold-light);
  cursor: pointer;
}
.footer-bottom .cookie-settings:hover { text-decoration: underline; }
@media (max-width: 560px) {
  .cookie-banner { left: 8px; right: 8px; bottom: 8px; }
  .cookie-banner-actions { width: 100%; }
  .cookie-btn { flex: 1 1 0; }
}

/* ── Blog byline + Google reviews link ── */
.post-byline {
  margin: 14px 0 0;
  font-size: 0.9rem;
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.88);
}
.post-byline a { color: var(--gold-light); font-weight: 700; text-decoration: underline; }
.post-byline a:hover { color: var(--white); }
.post-byline time { white-space: nowrap; }
.post-byline .sep { margin: 0 8px; opacity: 0.6; }
.gbp-link { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.gbp-link:hover { text-decoration-thickness: 2px; }

/* ── Contextual related-reading block ── */
.related-reading {
  margin: 32px 0;
  padding: 18px 22px;
  background: var(--gold-faint);
  border-left: 4px solid var(--gold);
  border-radius: 8px;
  font-size: 0.95rem;
  line-height: 1.75;
  color: var(--text-body);
}
.related-reading p { margin: 0; }
.related-reading a { color: var(--gold-dark); font-weight: 700; text-decoration: underline; text-underline-offset: 2px; }
.related-reading a:hover { color: var(--navy); }
.related-reading-wrap { padding: 8px 0 0; }
.related-reading-wrap .related-reading { max-width: 900px; margin: 24px auto; }

/* ── Shared page styles (consolidated from the per-page <style> blocks) ── */
img { display:block; max-width:100%; height:auto; }
ul { list-style:none; }
.breadcrumb-bar { background:var(--gold-faint); border-bottom:1px solid var(--border); padding:12px 0; }
.breadcrumb-list a { color:var(--gold-dark); font-weight:700; transition:var(--transition); }
.breadcrumb-list a:hover { color:var(--navy); }
.breadcrumb-list span { color:var(--text-light); }
.page-hero-bg { position:absolute; inset:0; background-image:url('/assets/hero-bg.webp'); background-size:cover; background-position:center; opacity:0.18; }
.page-hero h1 { font-family:var(--font-display); font-size:clamp(1.9rem,4vw,3.2rem); font-weight:800; color:var(--white); line-height:1.18; margin-bottom:18px; }
.page-hero h1 span { color:var(--gold-light); }
.trust-badge svg { width:18px; height:18px; fill:var(--gold); flex-shrink:0; }
.hero-btns { display:flex; gap:14px; flex-wrap:wrap; }
.hero-form-card { background:var(--white); border-radius:var(--radius-lg); padding:36px 30px; box-shadow:var(--shadow-lg); border-top:4px solid var(--gold); }
.hero-form-card h2 { font-family:var(--font-display); font-size:1.35rem; color:var(--navy); margin-bottom:6px; }
.hero-form-card p { font-size:0.84rem; color:var(--text-light); margin-bottom:22px; }
.hero-trust-pills { display:flex; flex-wrap:wrap; gap:10px; margin-top:28px; }
.pill svg { width:13px; height:13px; fill:var(--gold); }
.trust-bar { background:var(--gold-faint); border-bottom:1px solid var(--border); padding:22px 0; }
.trust-items { display:flex; justify-content:center; flex-wrap:wrap; gap:32px 48px; }
.trust-item { display:flex; align-items:center; gap:10px; font-size:0.84rem; font-weight:700; color:var(--navy); letter-spacing:0.02em; }
.trust-item svg { width:22px; height:22px; fill:var(--gold); flex-shrink:0; }
.text-center .section-desc { margin:0 auto; }
.divider.center { margin-left:auto; margin-right:auto; }
.intro-section { background:var(--white); }
.service-card:hover .service-icon { background:var(--gold); }
.service-card:hover .service-icon svg { fill:var(--white); }
.why-inner { display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; }
.intro-grid { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
.intro-img-wrap { position:relative; border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-lg); }
.intro-img-wrap img { width:100%; height:560px; object-fit:cover; display:block; }
.img-badge .num { font-size:1.9rem; font-weight:700; line-height:1; }
.img-badge .txt { font-size:0.58rem; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; line-height:1.3; }
@media(max-width:860px) {
.intro-grid { grid-template-columns:1fr; }
.intro-img-wrap { max-width:520px; margin:0 auto; }
}
.included-section { background:var(--off-white); }
.rooms-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:48px; }
.pricing-section { background:var(--white); }
.price-row { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:18px 28px; border-bottom:1px solid var(--border); }
.price-row:last-child { border-bottom:none; }
.price-row:nth-child(odd) { background:var(--off-white); }
.price-item-name { font-weight:700; color:var(--navy); font-size:0.97rem; }
.price-item-sub { display:block; font-size:0.78rem; color:var(--text-light); font-weight:400; margin-top:2px; }
.price-item-amount { font-family:var(--font-display); font-weight:700; color:var(--gold-dark); font-size:1.12rem; white-space:nowrap; }
.image-gallery-section { background:var(--off-white); }
.why-section { background:var(--white); }
.why-points { margin-top:32px; display:flex; flex-direction:column; gap:18px; }
.why-point { display:flex; gap:16px; align-items:flex-start; }
.why-point-icon { width:44px; height:44px; flex-shrink:0; background:var(--gold-faint); border-radius:10px; display:flex; align-items:center; justify-content:center; border:1.5px solid var(--border); }
.why-point-icon svg { width:20px; height:20px; fill:var(--gold); }
.why-point-text h4 { font-size:0.95rem; font-weight:700; color:var(--navy); margin-bottom:4px; }
.why-point-text h4, .why-point-text h3 { font-size:0.95rem; font-weight:700; color:var(--navy); margin-bottom:4px; }
.why-point-text p { font-size:0.84rem; color:var(--text-light); }
@media (max-width: 860px) {
.why-inner { grid-template-columns:1fr; }
}
.process { background:var(--white); }
.testimonials { background:var(--gold-faint); }
.process-section { background:var(--off-white); }
.process-steps.five { grid-template-columns:repeat(5,1fr); }
.areas-section { background:var(--navy); }
.areas-section .section-title { color:var(--white); }
.areas-section .section-desc { color:rgba(255,255,255,0.65); }
.areas-section .section-label { color:var(--gold-light); }
.areas-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:16px; margin-top:48px; }
.area-icon { font-size:2rem; margin-bottom:12px; }
.area-card h3 { font-family:var(--font-display); font-size:1rem; color:var(--white); font-weight:700; margin-bottom:6px; }
.area-card p { font-size:0.75rem; color:rgba(255,255,255,0.5); }
.area-card .area-link { display:inline-block; margin-top:12px; font-size:0.74rem; font-weight:700; color:var(--gold-light); letter-spacing:0.06em; text-transform:uppercase; }
.areas-note { text-align:center; margin-top:36px; color:rgba(255,255,255,0.55); font-size:0.86rem; }
.areas-note strong { color:var(--gold-light); }
.faq-toggle { width:100%; text-align:left; padding:18px 20px; background:var(--white); border:none; font-family:var(--font-body); font-size:0.97rem; font-weight:700; color:var(--navy); cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:16px; }
.faq-toggle svg { width:20px; height:20px; fill:var(--gold); flex-shrink:0; transition:.3s; transform:rotate(0deg); }
.faq-toggle[aria-expanded="true"] { background:var(--gold-faint); }
.faq-toggle[aria-expanded="true"] svg { transform:rotate(180deg); }
.stars { color:var(--gold); font-size:1rem; letter-spacing:2px; margin-bottom:14px; }
.review-text { font-size:0.92rem; color:var(--text-body); line-height:1.75; font-style:italic; margin-bottom:20px; }
.reviewer { display:flex; align-items:center; gap:12px; }
.reviewer-avatar { width:44px; height:44px; border-radius:50%; background:var(--gold); display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-size:1.1rem; font-weight:700; color:var(--white); flex-shrink:0; }
.reviewer-name { font-weight:700; font-size:0.9rem; color:var(--navy); }
.reviewer-loc { font-size:0.76rem; color:var(--text-light); }
.seo-inner { max-width:860px; margin:0 auto; }
.seo-inner h2 { font-family:var(--font-display); font-size:1.6rem; color:var(--navy); font-weight:700; margin-bottom:14px; margin-top:36px; }
.seo-inner h2:first-child { margin-top:0; }
.seo-inner h3 { font-family:var(--font-display); font-size:1.15rem; color:var(--navy); font-weight:700; margin:24px 0 10px; }
.seo-inner p { font-size:0.97rem; color:var(--text-body); line-height:1.9; margin-bottom:14px; }
.breadcrumb-inner a { color:var(--gold-dark); font-weight:700; }
.breadcrumb-inner a:hover { color:var(--navy); }
.article-hero::after { content:''; position:absolute; bottom:-2px; left:0; right:0; height:60px; background:var(--off-white); clip-path:polygon(0 60%, 100% 0, 100% 100%, 0 100%); }
.article-hero h1 span { color:var(--gold-light); }
.check-list li::before { content:''; flex-shrink:0; width:20px; height:20px; margin-top:2px; background:var(--gold); border-radius:50%; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='white' d='M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z'/%3E%3C/svg%3E"); background-size:13px; background-repeat:no-repeat; background-position:center; }
.info-box-content { flex:1; }
.post-hero-inner { position:relative; z-index:2; max-width:820px; }
.post-hero h1 span { color:var(--gold-light); }
.faq-question[aria-expanded="true"] svg { transform:rotate(180deg); }
.faq-answer.open { display:block; }
.tag { padding:6px 14px; background:var(--gold-faint); border:1px solid var(--border); border-radius:50px; font-size:0.78rem; color:var(--charcoal); font-weight:700; transition:var(--transition); }
.article-content h3 { font-family:var(--font-display); font-size:1.12rem; font-weight:700; color:var(--charcoal); margin:28px 0 10px; }
.sidebar { display:flex; flex-direction:column; gap:28px; }
.widget-head h3 { font-family:var(--font-display); font-size:1rem; color:var(--navy); font-weight:700; }
.widget-body { padding:20px; }
.popular-title a:hover { color:var(--gold-dark); }
.popular-meta { font-size:0.74rem; color:var(--text-light); margin-top:4px; }
.cta-widget { background:var(--navy); border-radius:8px; padding:28px 22px; text-align:center; }
.cta-widget p { font-size:0.85rem; color:rgba(255,255,255,0.65); line-height:1.7; margin-bottom:20px; }
.cta-widget .btn-gold:hover { background:var(--gold-dark); }
.cat-list li { border-bottom:1px solid var(--border); }
.cat-list li:last-child { border-bottom:none; }
.cat-list li a { display:flex; align-items:center; justify-content:space-between; padding:11px 0; font-size:0.88rem; color:var(--text-body); transition:var(--transition); }
.cat-list li a:hover { color:var(--gold-dark); padding-left:6px; }
.cat-count { background:var(--gold-faint); color:var(--gold-dark); border-radius:50px; font-size:0.72rem; font-weight:700; padding:2px 10px; }
.related-post:last-child { padding-bottom:0; margin-bottom:0; border-bottom:none; }
.related-title a:hover { color:var(--gold-dark); }
.tags-wrap { display:flex; flex-wrap:wrap; gap:8px; }
.fade-in.visible { opacity:1; transform:none; }
.gallery-grid { display:grid; grid-template-columns:1.5fr 1fr 1fr; gap:18px; margin-top:46px; }
.gallery-item img { width:100%; height:381px; object-fit:cover; display:block; transition:transform 0.5s ease; }
.gallery-item:first-child img { height:380px; }
.gallery-item:hover img { transform:scale(1.04); }
.gallery-item-label { position:absolute; bottom:0; left:0; right:0; background:linear-gradient(to top, rgba(80,47,23,0.85) 0%, transparent 100%); padding:30px 18px 16px; color:var(--white); font-size:0.84rem; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; }
.tag:hover { background:var(--gold); color:var(--white); border-color:var(--gold); }
.newsletter-form button:hover { background:var(--gold-dark); }
.author-avatar svg { width:28px; height:28px; fill:var(--gold-light); }
.post-link { display:inline-flex; align-items:center; gap:6px; font-size:0.8rem; font-weight:700; color:var(--gold-dark); letter-spacing:0.04em; text-transform:uppercase; transition:var(--transition); }
.post-link:hover { gap:10px; color:var(--navy); }
.post-link svg { width:14px; height:14px; fill:currentColor; }
.share-label { font-size:0.8rem; font-weight:700; color:var(--navy); text-transform:uppercase; letter-spacing:0.1em; }
.cat-pill { position:absolute; top:12px; left:12px; background:rgba(201,164,74,0.92); color:var(--white); font-size:0.68rem; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; padding:4px 12px; border-radius:50px; }
.cta-banner h2 span { color:var(--gold-light); }
.btn-primary:hover { background:var(--gold-dark); transform:translateY(-2px); }
.area-hero { position:relative; overflow:hidden; background:#502f17; color:var(--white); padding:78px 0 72px; }
.area-hero-bg { position:absolute; inset:0; background-image:url("/assets/areas-hero.webp"); background-size:cover; background-position:center; background-repeat:no-repeat; z-index:0; }
.area-hero::after { content:""; position:absolute; inset:0; background:linear-gradient(rgba(80, 47, 23, 0.64), rgba(80, 47, 23, 0.78)); z-index:1; }
.area-hero > .container { position:relative; z-index:2; }
.breadcrumbs { font-size:0.78rem; letter-spacing:0.06em; text-transform:uppercase; color:rgba(255, 255, 255, 0.7); margin-bottom:18px; }
.breadcrumbs a:hover { color:var(--gold-light); }
.area-hero h1 { font-family:var(--font-display); font-size:clamp(2rem, 4.4vw, 3.1rem); line-height:1.15; color:var(--white); max-width:900px; }
.area-hero h1 span { color:var(--gold-light); }
.area-hero p.lead { margin-top:18px; max-width:760px; color:rgba(255, 255, 255, 0.86); font-size:1.03rem; }
.hero-stats { display:flex; gap:14px; flex-wrap:wrap; margin-top:40px; padding-top:30px; border-top:1px solid rgba(255, 255, 255, 0.12); }
.stat-num { font-family:var(--font-display); font-size:1.8rem; font-weight:700; color:var(--gold-light); line-height:1; }
.section { padding:72px 0; }
.section.alt { background:var(--off-white); }
.section-head { text-align:center; max-width:760px; margin:0 auto 44px; }
.eyebrow { font-size:0.74rem; font-weight:700; letter-spacing:0.16em; text-transform:uppercase; color:var(--gold-dark); }
.section-head p { margin-top:12px; color:var(--text-light); }
.prose h2 { font-family:var(--font-display); font-size:clamp(1.5rem, 2.6vw, 2rem); color:var(--navy); margin-bottom:14px; }
.prose h3 { font-family:var(--font-display); font-size:1.2rem; color:var(--navy); margin:24px 0 8px; }
.prose p { margin-bottom:14px; }
.prose ul.ticks li { position:relative; padding-left:26px; margin-bottom:8px; }
.prose ul.ticks li::before { content:"✓"; position:absolute; left:0; color:var(--gold-dark); font-weight:700; }
.grid-3 { display:grid; grid-template-columns:repeat(auto-fit, minmax(280px, 1fr)); gap:22px; }
.card { background:var(--white); border:1px solid var(--border); border-radius:var(--radius-lg); padding:26px; box-shadow:var(--shadow); transition:var(--transition); }
.card:hover { transform:translateY(-4px); box-shadow:var(--shadow-lg); }
.card h3 { font-family:var(--font-display); font-size:1.15rem; color:var(--navy); margin-bottom:8px; }
.card p { font-size:0.94rem; }
.card-icon { width:46px; height:46px; border-radius:10px; background:var(--gold-faint); color:var(--gold-dark); display:grid; place-items:center; font-size:1.2rem; margin-bottom:14px; }
.pill-grid { display:flex; flex-wrap:wrap; gap:10px; }
.faq-item h3 { font-family:var(--font-display); font-size:1.05rem; color:var(--navy); margin-bottom:6px; }
.faq-item p { font-size:0.95rem; }
.cta-band { background:linear-gradient(120deg, var(--navy), #7a4a24); color:var(--white); padding:62px 0; text-align:center; }
.cta-band h2 { font-family:var(--font-display); font-size:clamp(1.6rem, 3vw, 2.2rem); color:var(--white); }
.cta-band p { color:rgba(255, 255, 255, 0.85); margin-top:10px; }
.cta-band .hero-btns { justify-content:center; }
.area-links { display:flex; flex-wrap:wrap; gap:12px; justify-content:center; }
.area-links a { border:1px solid var(--border); background:var(--white); border-radius:999px; padding:10px 20px; font-weight:700; font-size:0.88rem; color:var(--navy); transition:var(--transition); }
.area-links a:hover { background:var(--gold-faint); color:var(--gold-dark); }
.cta-phone svg { width:18px; height:18px; fill:var(--gold); }
.cta-note { position:relative; color:rgba(255,255,255,0.5); font-size:0.82rem; margin-top:20px; }
.form-group { margin-bottom:14px; }
.form-group label { display:block; font-size:0.78rem; font-weight:700; color:var(--charcoal); margin-bottom:5px; letter-spacing:0.04em; text-transform:uppercase; }
.form-group input, .form-group select, .form-group textarea { width:100%; padding:11px 14px; border:1.5px solid var(--border); border-radius:8px; font-family:var(--font-body); font-size:0.9rem; color:var(--charcoal); background:var(--white); transition:var(--transition); outline:none; appearance:none; }
.form-group input:focus, .form-group select:focus, .form-group textarea:focus { border-color:var(--gold); box-shadow:0 0 0 3px rgba(201,164,74,0.15); }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.hero-form-card .btn-primary { width:100%; justify-content:center; margin-top:4px; padding:14px; font-size:0.95rem; }
.form-note { text-align:center; font-size:0.73rem; color:var(--text-light); margin-top:10px; }
.form-note svg { width:12px; height:12px; fill:var(--gold); vertical-align:middle; }
@media (max-width: 900px) {
.hero-form-card { max-width:480px; margin:0 auto; }
}
@media (max-width: 1060px) {
.article-layout { grid-template-columns:1fr; }
}
.fade-in.visible { opacity:1; transform:translateY(0); }
.fade-delay-3 { transition-delay:0.3s; }
.seo-content { background:var(--white); padding:70px 0; }
.hero-price-rate { display:inline-flex; align-items:center; gap:8px; margin:0 0 18px; padding:8px 16px; border-radius:999px; border:1px solid rgba(201,164,74,0.45); background:rgba(201,164,74,0.16); color:var(--gold-light); font-size:0.95rem; font-weight:800; line-height:1.3; }
.hero-price-rate strong { color:var(--white); }
@media (max-width: 560px) {
.hero-price-rate { font-size:0.86rem; align-items:flex-start; }
}
@media (max-width: 768px) {
.hero-form-card { padding:24px 20px; }
}
@media (max-width: 1060px) {
.blog-layout { grid-template-columns:1fr; }
}
*, *::before, *::after { box-sizing:border-box; }
.article-body table, .article-content table { min-width:560px; }
.article-body > table, .article-content > table { display:block; overflow-x:auto; width:100%; }
@media (max-width: 1060px) {
.blog-layout, .article-layout { grid-template-columns:minmax(0, 1fr) !important; }
.sidebar { position:static !important; width:100%; max-width:100%; }
}
@media (max-width: 768px) {
.article-wrap, .article-main, .blog-main { padding:36px 0 54px !important; }
.sidebar { display:grid !important; grid-template-columns:minmax(0, 1fr) !important; gap:18px; }
.cta-widget, .mini-progress { grid-column:auto !important; }
.info-box { flex-direction:column; gap:10px; padding:18px 16px; }
.share-bar, .share-buttons, .cta-buttons, .blog-search, .newsletter-form { align-items:stretch; flex-direction:column; width:100%; }
.share-btn, .cta-btn, .blog-search button, .newsletter-form button { justify-content:center; width:100%; }
.blog-search { border-radius:14px; overflow:hidden; }
.blog-search input, .newsletter-form input { width:100% !important; min-width:0 !important; border-right:1px solid var(--border) !important; }
.filter-inner { overflow-x:auto; flex-wrap:nowrap; padding-bottom:4px; scrollbar-width:thin; }
.filter-label, .filter-btn { flex:0 0 auto; }
.blog-layout, .article-layout { overflow:hidden; }
.featured-body, .post-body { padding-left:18px !important; padding-right:18px !important; }
}
.hfix-2.hfix-2.hfix-2 { margin-top:0 !important; max-width:unset !important; overflow-wrap:unset !important; word-break:unset !important; }
@media (max-width: 768px) {
.hfix-2.hfix-2.hfix-2 { font-size:1rem !important; }
}

/* ── Mobile layouts for grids that had no small-screen rule (oven page, service pages) ── */
@media (max-width: 900px) {
  .rooms-grid { grid-template-columns: repeat(2, 1fr); }
  .process-steps.five { grid-template-columns: repeat(3, 1fr); gap: 36px; }
  .process-steps.five::before { display: none; }
}
@media (max-width: 760px) {
  .process-steps.five { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
  .rooms-grid { grid-template-columns: 1fr; }
  .areas-grid { grid-template-columns: repeat(2, 1fr); }
  .gallery-grid { grid-template-columns: 1fr; }
}
@media (max-width: 460px) {
  .process-steps.five { grid-template-columns: 1fr; }
}

/* ── Small-screen overflow fixes found by testing every page at 320–768px ── */
.info-strip-item > div:last-child { min-width: 0; }
.info-strip-value, .info-strip-value a, .info-strip-sub { overflow-wrap: anywhere; }
@media (max-width: 900px) {
  .info-strip .info-strip-inner { grid-template-columns: minmax(0, 1fr); }
  .info-strip .info-strip-item { border-right: none; border-bottom: 1px solid var(--border); padding: 22px 20px; }
  .info-strip .info-strip-item:last-child { border-bottom: none; }
}
.story-image .story-stat-badges { flex-wrap: wrap; }
.story-image, .story-image img { max-width: 100%; }
.coverage-chip { min-width: 0; }
.coverage-chip span { overflow-wrap: anywhere; }
.inline-cta p { max-width: 100%; }
.inline-cta .btn-primary, .btn-primary { max-width: 100%; white-space: normal; text-align: center; justify-content: center; }
.contact-layout > * { min-width: 0; }
.contact-form-card input, .contact-form-card select, .contact-form-card textarea { max-width: 100%; min-width: 0; }
@media (max-width: 900px) { .contact-layout { grid-template-columns: minmax(0, 1fr); } }

/* ── Accessibility: contrast + link visibility (axe/Lighthouse findings) ── */
.footer-brand .logo-tagline { color: var(--gold); }
.area-card p, .areas-section .area-card p { color: rgba(255,255,255,0.78); }
.areas-section .areas-note, .areas-note { color: rgba(255,255,255,0.8); }
.areas-note a { text-decoration: underline; text-underline-offset: 3px; }

/* Accessible gold buttons: dark text on gold (5:1), white on the darker hover gold (5.6:1) */
.btn-primary { color: var(--navy); }
.btn-primary:hover, .btn-primary:focus-visible { color: var(--white); }
.service-number, .service-card-link { color: var(--navy); }

/* ── Accessibility overrides (win over per-page inline CSS): AA contrast for gold buttons, dark sections, small grey text ── */
a.btn-primary, button.btn-primary, .btn-primary, .btn-gold, .btn-gold-sm, a.price-cta, .qs-submit,
.detail-badge, .service-number, .service-card-link { color: var(--navy) !important; }
.btn-primary:hover, .btn-primary:focus-visible, .btn-gold:hover, .btn-gold-sm:hover, a.price-cta:hover, .qs-submit:hover { color: var(--white) !important; }
.service-card-link svg { fill: var(--navy) !important; }
.areas-section .section-title span, .local-area .section-title span, .why-dark .section-title span,
.wider-coverage .section-title span, .why-services .section-title span { color: var(--gold-light) !important; }
.area-card p, .area-card p a, .areas-section .area-card p { color: rgba(255,255,255,0.78) !important; }
.mini-room-count { color: rgba(255,255,255,0.75) !important; }
.qs-note { color: var(--text-light) !important; }
.detail-content h2 span, .image-content-side h2 span, .landlord-content h2 span { color: var(--gold-dark) !important; }
.newsletter h2 span { color: var(--gold-dark) !important; }

/* more AA contrast fixes */
.experience-badge .num, .experience-badge .txt, .img-badge, .img-badge .num, .img-badge .txt,
.popular-tag, .area-cta-btn, .featured-badge, .filter-btn.active { color: var(--navy) !important; }
.area-cta-btn:hover, .filter-btn.active:hover { color: var(--white) !important; }
.stat-badge .num, .popular-num, .featured-body .read-more { color: var(--gold-dark) !important; }
.price-card:not(.featured) .price-amount { color: var(--gold-dark) !important; }
.price-card.featured .price-note, .landlord-cta-box p, .why-dark .why-card p, .why-services .why-card p { color: rgba(255,255,255,0.8) !important; }

/* last AA contrast pass */
.tip-card .pro-label, .cat-pill, .newsletter-form button { color: var(--navy) !important; }
.step-card-num { color: var(--gold-dark) !important; }
.blog-related-links > a, .blog-related-links a { color: var(--gold-dark) !important; }
.reason-card h3, .cert-card .hfix-1 { color: #25663f !important; }
.warning > .info-box-content > strong, .info-box.warning strong { color: #8f5208 !important; }
.share-fb { background: #1559c7 !important; color: #fff !important; }
.share-wa { background: #0b7a3e !important; color: #fff !important; }

/* final AA touches */
.btn-cta-gold, .image-block-badge { color: var(--navy) !important; }
.toc-num { color: var(--gold-dark) !important; }
.summary-card > p, .summary-cta-block > p, .featured-img-placeholder > span { color: rgba(255,255,255,0.8) !important; }
p > a[href^="tel:"], p > a[href^="mailto:"] { text-decoration: underline; text-underline-offset: 3px; }
.calc-cta, .inline-cta-btn { color: var(--navy) !important; }
.step { min-width: 0; overflow-wrap: anywhere; }
@media (max-width: 400px) { .process-steps:not(.five) { grid-template-columns: minmax(0, 1fr); } }
