/* A calmer reading rhythm and a single, balanced contact experience. */
.contact-intro { padding:20px 0 38px; }
.contact-intro .breadcrumbs { margin-bottom:32px; }
.contact-intro-row { display:flex; justify-content:space-between; align-items:center; gap:48px; }
.contact-intro-row>div { max-width:730px; }
.contact-intro h1 { font-size:clamp(40px,4.5vw,64px); line-height:1.06; margin-bottom:20px; }
.contact-intro .eyebrow { margin-bottom:14px; }
.contact-intro-row>div>p:last-child { font-size:15px; line-height:1.75; color:var(--muted); max-width:650px; margin-bottom:0; }
.contact-call { flex:none; text-align:left; justify-content:flex-start; padding:16px 22px; border-radius:18px; font-size:18px; }
.contact-call small { display:block; font-size:11px; color:var(--muted); font-weight:400; margin-bottom:3px; }
.contact-call>.icon { width:23px; height:23px; color:var(--brand-link); }
.contact-booking-section { padding:12px 0 72px; }
.contact-booking { display:grid; grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr); border:1px solid var(--edge); border-radius:30px; box-shadow:var(--shadow); background:var(--glass); overflow:hidden; }
.contact-concierge { min-width:0; padding:40px; display:flex; flex-direction:column; gap:32px; border-right:1px solid var(--line); background:radial-gradient(ellipse at 0 0,color-mix(in srgb,var(--brand-cooling) 10%,transparent),transparent 66%); }
.contact-concierge h2 { font-size:clamp(26px,2.5vw,34px); line-height:1.16; letter-spacing:-.045em; margin:0 0 15px; }
.contact-concierge .eyebrow { font-size:10px; letter-spacing:.09em; }
.contact-concierge p { color:var(--muted); font-size:13px; line-height:1.7; margin:0; }
.contact-concierge>div:first-child>p:last-child { max-width:300px; }
.contact-channels { display:grid; border-block:1px solid var(--line); }
.contact-channel { display:flex; align-items:center; gap:15px; min-width:0; padding:20px 0; }
.contact-channel+.contact-channel { border-top:1px solid var(--line); }
.contact-channel>span { flex:1; min-width:0; }
.contact-channel>.icon:first-child { color:var(--brand-link); width:20px; height:20px; }
.contact-channel>.icon:last-child { width:17px; height:17px; color:var(--muted); transition:translate .2s ease; }
.contact-channel small { display:block; color:var(--muted); font-size:12px; line-height:1.6; }
.contact-channel strong { display:block; font-size:23px; letter-spacing:-.035em; font-weight:550; line-height:1.6; }
.contact-channel-email strong { font-size:14px; letter-spacing:0; }
.contact-channel-email small { overflow-wrap:anywhere; }
.contact-channel:hover strong { color:var(--brand-link); }
.contact-channel:hover>.icon:last-child { translate:3px 0; }
.contact-concierge h3 { font-size:14px; line-height:1.5; letter-spacing:0; margin:0 0 12px; display:flex; gap:10px; align-items:center; }
.contact-hours h3>.icon { width:18px; height:18px; color:var(--brand-link); }
.contact-hours>p { line-height:1.9; }
.contact-hours .emergency-note { margin-top:20px; padding:14px; background:color-mix(in srgb,var(--brand-accent) 6%,transparent); border-left:2px solid var(--brand-accent); border-radius:0 12px 12px 0; font-size:12px; line-height:1.65; }
.contact-hours .emergency-note .icon { color:var(--heating-link); width:17px; height:17px; }
.contact-hours .emergency-note a { text-decoration:none; }
.contact-hours .emergency-note a:hover { text-decoration:underline; }
.contact-next { margin-top:auto; }
.contact-next ol { list-style:none; padding:0; margin:0; display:grid; gap:18px; }
.contact-next li { display:flex; gap:13px; }
.contact-next li>span { flex:none; color:var(--brand-link); width:27px; height:27px; display:grid; place-items:center; border:1px solid var(--line); border-radius:50%; font-size:10px; margin-top:1px; }
.contact-next strong { display:block; font-size:12px; font-weight:550; margin-bottom:3px; }
.contact-next li p { font-size:12px; line-height:1.65; }
.contact-booking>.booking-panel { border:0; box-shadow:none; background:transparent; border-radius:0; padding:40px; min-width:0; }
.contact-page-copy { margin:40px auto 0; }
.inner-hero-layout { grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); align-items:start; gap:48px; }
.inner-hero-layout>.inner-hero-copy { padding-top:26px; }
.inner-hero-layout h1 { font-size:clamp(38px,4.4vw,58px); }
.service-hero-visual { position:relative; margin:36px 0 0; border-radius:24px; overflow:hidden; border:1px solid var(--edge); aspect-ratio:4/3; background:var(--ice); }
.service-hero-visual img { width:100%; height:100%; object-fit:cover; opacity:.85; }
.service-hero-visual::after { content:''; position:absolute; inset:0; pointer-events:none; background:linear-gradient(180deg,transparent 60%,color-mix(in srgb,var(--brand-background) 45%,transparent)); }

/* Avoid counting both the HTML line break and its source newline. */
.contact-detail p,.contact-details>p { white-space:normal; }
.contact-detail a { overflow-wrap:anywhere; }
.service-card p,.reasons-grid p,.faq-answer { font-size:14px; }
.service-card { display:flex; flex-direction:column; }
.service-card .text-link { margin-top:auto; }
.service-card p { min-height:0; margin-bottom:24px; }
.reasons-grid p { line-height:1.75; }
.faq-item summary { font-size:15px; }
.equipment-card .equipment-link { width:44px; height:44px; min-width:44px; min-height:44px; }
.service-list a { min-height:36px; }
.content-layout>aside>.sticky-card h2 { font-size:28px; line-height:1.2; margin-bottom:18px; }
.content-layout>aside>.sticky-card>p { font-size:14px; line-height:1.8; }
.content-layout>aside>.sticky-card>p:has(a) { margin-top:20px; }
.content-layout>aside>.sticky-card>a:last-child:not(.button) { font-size:13px; color:var(--brand-link); display:inline-flex; min-height:36px; align-items:center; }
.maintenance-enquiry { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr); gap:48px; padding:clamp(28px,4vw,48px); border:1px solid var(--line); border-radius:28px; background:radial-gradient(ellipse at 95% 10%,color-mix(in srgb,var(--brand-air) 9%,transparent),transparent 60%),var(--glass); box-shadow:var(--shadow); }
.maintenance-enquiry .section-heading { margin:0; }
.maintenance-enquiry h2 { font-size:clamp(30px,3vw,43px); }
.maintenance-enquiry .section-intro { font-size:14px; }
.maintenance-enquiry-action { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:20px; }
.maintenance-enquiry-action>.icon-disc { margin:0; color:var(--air-link); }
.maintenance-enquiry .plan-note { margin:0; font-size:12px; }
.plan-names { display:flex; flex-wrap:wrap; gap:8px; list-style:none; padding:0; margin:22px 0 0; }
.plan-names li { padding:5px 12px; border:1px solid var(--line); border-radius:999px; color:var(--muted); font-size:12px; }
@media(max-width:1100px) {
  .inner-hero-layout { gap:30px; grid-template-columns:minmax(0,.95fr) minmax(0,1.15fr); }
  .contact-concierge,.contact-booking>.booking-panel { padding:30px; }
  .contact-booking { grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); }
  .contact-intro-row { gap:30px; }
  .contact-call { font-size:16px; padding:14px 17px; }
}
@media(max-width:850px) {
  .inner-hero-layout { grid-template-columns:1fr; gap:32px; }
  .inner-hero-layout>.inner-hero-copy { padding-top:0; }
  .service-hero-visual { display:none; }
  .contact-intro-row { align-items:flex-start; flex-direction:column; gap:22px; }
  .contact-intro { padding-bottom:24px; }
  .contact-booking { grid-template-columns:1fr; }
  .contact-booking>.booking-panel { order:-1; padding:30px; }
  .contact-concierge { border-right:0; border-top:1px solid var(--line); display:grid; grid-template-columns:1fr 1fr; gap:28px; }
  .contact-next { margin-top:0; }
  .contact-concierge h2 br { display:none; }
  .contact-channels { border-top:0; align-self:start; }
  .contact-channels .contact-channel:first-child { padding-top:0; }
  .maintenance-enquiry { grid-template-columns:1fr; gap:26px; }
  .maintenance-enquiry-action { flex-direction:row; flex-wrap:wrap; align-items:center; justify-content:flex-start; gap:18px; }
  .maintenance-enquiry-action>.icon-disc { display:none; }
}
@media(max-width:600px) {
  .contact-intro { padding-top:10px; }
  .contact-intro .breadcrumbs { margin-bottom:24px; }
  .contact-intro-row>div>p:last-child { font-size:14px; }
  .contact-call { min-height:58px; padding:11px 18px; width:100%; }
  .contact-booking { border-radius:24px; }
  .contact-booking>.booking-panel,.contact-concierge { padding:24px 20px; }
  .contact-concierge { grid-template-columns:1fr; gap:28px; }
  .contact-channels { border-top:1px solid var(--line); }
  .contact-channels .contact-channel:first-child { padding-top:20px; }
  .contact-next ol { gap:16px; }
  .contact-booking-section { padding-bottom:48px; }
  .service-card p,.reasons-grid p,.faq-answer { font-size:14px; }
  .faq-item { padding-inline:20px; }
  .faq-answer { padding-right:0; }
  .content-layout>aside>.sticky-card h2 { font-size:28px; }
  .maintenance-enquiry { padding:26px 22px; }
}
@media(prefers-reduced-motion:reduce) { .contact-channel>.icon:last-child { transition:none; translate:none; } }
html[data-ambient-motion=paused] .contact-channel>.icon:last-child { transition:none; translate:none; }
