/* Shared HT Ytrengöring design for the eight full-image city pages. */
.location-page .hero { min-height: 680px; }
.location-page .hero-image { object-position: var(--hero-position, 50% 52%); }
.location-page .hero-shade { background: linear-gradient(90deg, #102b48ed 0%, #173a5cc9 41%, #15385657 100%); }
.location-page .hero-content { padding-block: 76px 85px; }
.location-page .hero h1 { font-size: clamp(3rem, 4.8vw, 4.25rem); line-height: 1.08; max-width: 750px; margin-bottom: 20px; }
.location-page .hero h1 span { font-weight: 800; }
.location-page .hero-lead { max-width: 580px; font-size: 1.65rem; line-height: 1.35; letter-spacing: -.5px; margin: 0 0 18px; }
.location-page .hero-description { max-width: 510px; font-size: 1.0625rem; line-height: 1.75; }
.location-page .hero-note { font-size: .8125rem; }
.location-page .eyebrow { font-size: .75rem; letter-spacing: 1.7px; }
.location-page .hero-caption { font-size: .75rem; }
.location-page .hero-caption span:first-child { font-size: .8125rem; }
.location-page .results-section { grid-template-columns: .94fr 1.06fr; gap: 76px; }
.location-page .comparison { aspect-ratio: 1; }
.location-page .comparison-caption { font-size: .875rem; }
.location-page .image-source { font-size: .75rem; line-height: 1.6; }
.location-page .image-label { font-size: .75rem; }
.location-page .section-copy > p:not(.eyebrow) { font-size: 1rem; line-height: 1.8; }
.location-page .surface-list { list-style: none; margin: 23px 0 27px; padding: 0; border-top: 1px solid var(--line); }
.location-page .surface-list li { display: grid; grid-template-columns: 112px 1fr; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.location-page .surface-list strong { font-size: .9375rem; }
.location-page .surface-list span { font-size: .875rem; color: var(--muted); line-height: 1.65; }
.location-process { background: var(--navy); color: #fff; padding-block: 76px; }
.location-process .section-heading { align-items: center; }
.location-process h2 { max-width: 650px; font-size: clamp(2rem, 3.3vw, 2.75rem); }
.location-process .section-heading > p { font-size: 1rem; line-height: 1.75; max-width: 330px; }
.location-process .steps { margin-bottom: 0; gap: 30px; }
.location-process .steps h3 { font-size: 1.3125rem; }
.location-process .steps p { font-size: 1rem; }
.location-process .steps .step-number { font-size: .875rem; }
.location-local { display: grid; grid-template-columns: 1.05fr 1fr; gap: 80px; align-items: center; }
.location-local figure { margin: 0; }
.location-local figure > img { width: 100%; height: 470px; object-fit: cover; border-radius: 12px; }
.location-local figcaption { font-size: .75rem; color: var(--muted); margin-top: 12px; line-height: 1.65; }
.location-local .area-box p { font-size: .9375rem; line-height: 1.75; }
.location-page .faq-section summary, .location-page .faq-section details p { font-size: 1rem; }
.location-page .faq-section details p { line-height: 1.75; }
.location-page .quote-form input:not([type=checkbox]),
.location-page .quote-form select, .location-page .quote-form textarea { font-size: 1rem; }
.location-page .quote-form label { font-size: .875rem; }
.location-page .quote-form .consent { font-size: .8125rem; }
.location-page .form-footnote { font-size: .75rem; }
.location-page .contact-copy h2 { font-size: clamp(2rem, 3.4vw, 2.75rem); }
.location-page .trust-grid strong { font-size: .875rem; }
.location-page .trust-grid small { font-size: .8125rem; }
.location-page .contact-grid { gap: 75px; }
.location-page .contact-details small { font-size: .8125rem; }
.location-page .review-inner blockquote { font-size: clamp(1.375rem, 2.2vw, 1.6875rem); }
.location-page .review-inner figcaption, .location-page .review-rating a { font-size: .8125rem; }
.location-page footer p, .location-page .footer-bottom { font-size: .8125rem; }
.location-page .footer-grid { grid-template-columns: 1.1fr .9fr 1fr 1.05fr; gap: 35px; }
.location-page footer a { overflow-wrap: anywhere; }

/* Image-first layout with a light process section and a darker trust band. */
.location-page.layout-reversed .results-section { grid-template-columns: 1.06fr .94fr; }
.location-page.layout-reversed .results-section .comparison-column { order: -1; }
.location-page.layout-reversed .trust-strip { background: var(--navy); color: #fff; border: 0; }
.location-page.layout-reversed .trust-grid small { color: #d1e0eb; }
.location-page.layout-reversed .trust-icon { color: #c0e1eb; border-color: #ffffff50; }
.location-page.layout-reversed .trust-grid > div + div { border-color: #ffffff2e; }
.location-page.layout-reversed .location-process { background: #f0f5f8; color: var(--navy); }
.location-page.layout-reversed .location-process .eyebrow { color: #527f92; }
.location-page.layout-reversed .location-process .section-heading > p { color: var(--muted); }
.location-page.layout-reversed .steps { grid-template-columns: 1fr; gap: 0; }
.location-page.layout-reversed .steps article { display: grid; grid-template-columns: 60px 1fr 1.4fr; align-items: start; gap: 25px; padding: 24px 0; border-top: 1px solid #cddce7; }
.location-page.layout-reversed .steps h3, .location-page.layout-reversed .steps p { margin: 0; }
.location-page.layout-reversed .steps p { color: var(--muted); }
.location-page.layout-reversed .step-number { color: #588096; margin: 3px 0 0; }
.location-page.layout-reversed .location-local .section-copy { order: -1; }

/* Centered hero keeps the full-width photograph and HT's navy overlay. */
.location-page.layout-centered .hero-shade { background: linear-gradient(180deg, #112d4999, #102c48d9); }
.location-page.layout-centered .hero-content { text-align: center; }
.location-page.layout-centered .hero h1,
.location-page.layout-centered .hero-lead,
.location-page.layout-centered .hero-description { margin-inline: auto; }
.location-page.layout-centered .hero-description { max-width: 580px; }
.location-page.layout-centered .hero-actions, .location-page.layout-centered .hero-note { justify-content: center; }
.location-page.layout-centered .hero-caption { display: none; }
.location-page.layout-centered .location-process .section-heading { display: block; text-align: center; }
.location-page.layout-centered .location-process h2 { margin-inline: auto; }
.location-page.layout-centered .location-process .section-heading > p { margin: 20px auto 0; max-width: 580px; }
.location-page.layout-centered .contact-section { background: #edf3f7; color: var(--navy); }
.location-page.layout-centered .contact-copy .eyebrow { color: #507d91; }
.location-page.layout-centered .contact-copy > p:not(.eyebrow),
.location-page.layout-centered .contact-details > span,
.location-page.layout-centered .contact-details small { color: var(--muted); }
.location-page.layout-centered .contact-copy .check-list { color: var(--ink); }
.location-page.layout-centered .contact-copy .check-list li:before { color: #3f8095; }
.location-page.layout-centered .contact-details { border-color: #cddae4; }

@media (max-width: 1230px) {
  .location-page .results-section, .location-local { gap: 50px; }
  .location-page .contact-grid { gap: 50px; }
  .location-page .footer-grid { gap: 24px; }
}
@media (max-width: 960px) {
  .location-page .hero { min-height: 650px; }
  .location-page .hero h1 { font-size: 3.5rem; }
  .location-page .results-section, .location-local { gap: 32px; }
  .location-page .surface-list li { grid-template-columns: 1fr; gap: 3px; }
  .location-local figure > img { height: 435px; }
  .location-page .contact-grid { gap: 32px; }
  .location-page .footer-grid { grid-template-columns: 1fr 1fr 1fr; }
  .location-process .section-heading > p { max-width: none; }
}
@media (max-width: 740px) {
  .location-page .wrap { width: calc(100% - 40px); }
  .location-page .hero { min-height: 635px; align-items: center; }
  .location-page .hero-content { padding-block: 57px 62px; }
  .location-page .hero-image { object-position: var(--hero-mobile-position, 35% 52%); }
  .location-page .hero-shade { background: linear-gradient(90deg, #102b48e3, #153856aa); }
  .location-page.layout-centered .hero-shade { background: #102d48c9; }
  .location-page .hero .eyebrow { font-size: .75rem; line-height: 1.7; letter-spacing: 1px; margin-bottom: 20px; }
  .location-page .hero h1 { font-size: clamp(2.0625rem, 9.3vw, 3rem); line-height: 1.12; letter-spacing: -1px; margin-bottom: 21px; overflow-wrap: normal; }
  .location-page .hero-lead { font-size: 1.375rem; line-height: 1.45; }
  .location-page .hero-description { font-size: 1rem; line-height: 1.7; margin-bottom: 24px; }
  .location-page .hero-actions { align-items: stretch; gap: 10px; max-width: 350px; }
  .location-page.layout-centered .hero-actions { margin-inline: auto; }
  .location-page .hero-actions .button { width: 100%; font-size: .9375rem; min-height: 52px; gap: 14px; }
  .location-page .hero-note { font-size: .75rem; line-height: 1.6; margin-top: 17px; }
  .location-page .trust-grid { gap: 17px; }
  .location-page .trust-icon { display: grid; flex-shrink: 0; }
  .location-page .trust-grid strong { font-size: .875rem; }
  .location-page .trust-grid small { font-size: .8125rem; }
  .location-page .results-section, .location-page.layout-reversed .results-section, .location-local { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .location-page .results-section .section-copy { order: -2; }
  .location-page .comparison { aspect-ratio: .92; }
  .location-page h2 { font-size: clamp(1.875rem, 7.9vw, 2.25rem); line-height: 1.2; }
  .location-page .surface-list li { grid-template-columns: 95px 1fr; gap: 13px; }
  .location-process { padding-block: 56px; }
  .location-process .section-heading { margin-bottom: 28px; }
  .location-process .steps { gap: 25px; }
  .location-process .steps article { padding-left: 40px; }
  .location-page.layout-reversed .steps { gap: 0; }
  .location-page.layout-reversed .steps article { display: block; padding: 23px 0 24px 42px; position: relative; }
  .location-page.layout-reversed .steps .step-number { position: absolute; top: 24px; left: 0; margin: 0; }
  .location-page.layout-reversed .steps h3 { margin-bottom: 12px; }
  .location-process .steps h3 { font-size: 1.25rem; }
  .location-process .steps p { font-size: 1rem; }
  .location-local .section-copy { order: -1; }
  .location-local figure > img { height: 325px; }
  .location-page .faq-section { gap: 28px; }
  .location-page .faq-section h2 br { display: none; }
  .location-page .contact-grid { grid-template-columns: minmax(0, 1fr); gap: 35px; }
  .location-page .contact-copy h2 { font-size: clamp(1.875rem, 8vw, 2.3rem); }
  .location-page .contact-copy .check-list { font-size: .875rem; }
  .location-page .contact-details > a { font-size: 1.75rem; }
  .location-page .contact-details > a.email { font-size: .9375rem; overflow-wrap: anywhere; }
  .location-page .quote-form { padding: 25px 20px; }
  .location-page .quote-form h3 { font-size: 1.4375rem; }
  .location-page .quote-form .form-row { grid-template-columns: minmax(0, 1fr); }
  .location-page .footer-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 24px 18px; }
  .location-page .footer-bottom { flex-wrap: wrap; gap: 8px; font-size: .75rem; }
  .location-page .mobile-booking { min-height: 52px; bottom: max(12px, env(safe-area-inset-bottom)); }
}
@media (max-width: 370px) {
  .location-page .wrap { width: calc(100% - 32px); }
  .location-page .hero h1 { font-size: 2rem; }
  .location-page .surface-list li { grid-template-columns: 1fr; gap: 4px; }
  .location-page .hero .eyebrow { font-size: .75rem; letter-spacing: .4px; }
  .location-page .rating-source { display: none; }
}

/* Local review index; excluded from individual domain builds. */
.preview-index { background: #f0f5f8; min-height: 100vh; padding-bottom: 60px; }
.preview-header { background: white; border-bottom: 1px solid var(--line); }
.preview-header .wrap { min-height: 98px; display: flex; justify-content: space-between; align-items: center; gap: 20px; }
.preview-header img { width: 120px; height: 74px; object-fit: contain; }
.preview-header span { font-size: .875rem; color: var(--muted); }
.preview-intro { padding-block: 55px 27px; }
.preview-intro h1 { font-size: clamp(2rem, 4vw, 3rem); letter-spacing: -1px; margin: 0 0 13px; line-height: 1.2; }
.preview-intro p { color: var(--muted); max-width: 650px; }
.preview-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 25px; }
.preview-card { display: block; overflow: hidden; background: white; border: 1px solid #dce5ec; border-radius: 12px; transition: transform .2s, box-shadow .2s; }
.preview-card:hover { transform: translateY(-3px); box-shadow: 0 10px 25px #17354e16; }
.preview-card img { width: 100%; height: 200px; object-fit: cover; object-position: center 56%; }
.preview-card > div { padding: 21px 23px; }
.preview-card h2 { font-size: 1.5rem; margin-bottom: 8px; display: flex; justify-content: space-between; gap: 15px; }
.preview-card p { font-size: .8125rem; color: var(--muted); overflow-wrap: anywhere; margin: 0; }
.preview-existing { margin-top: 35px; display: flex; flex-wrap: wrap; gap: 15px 30px; }
@media (max-width: 960px) { .preview-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 580px) {
  .preview-index .wrap { width: calc(100% - 36px); }
  .preview-header .wrap { min-height: 85px; }
  .preview-header span { font-size: .75rem; }
  .preview-intro { padding-block: 35px 17px; }
  .preview-cards { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .preview-card img { height: 215px; }
}
