/* Contact page composition. */
.hero.contact-hero .hero__inner{padding-block:calc(var(--header-h) + .75rem) 1.5rem}.contact-hero h1{font-size:clamp(1.9rem,1.4rem + 2vw,2.75rem);margin-bottom:.25em}.contact-hero .hero__lead{margin-bottom:0;font-size:var(--fs-base)}.contact-hero .breadcrumbs{margin-bottom:.75rem}
.contact-emergency{background:var(--info-soft);border-bottom:1px solid var(--line-strong);padding-block:1.25rem}
.contact-emergency__card{display:grid;gap:1rem;align-items:center}
.contact-emergency__kicker{display:flex;align-items:center;gap:.7rem;margin:0 0 .25rem;font-family:var(--font-display);font-weight:600;font-size:var(--fs-xl);color:var(--ink)}
.contact-emergency__copy{margin:0;color:var(--fg-muted);max-width:44rem;font-size:var(--fs-sm)}
.contact-emergency__call{justify-content:flex-start;gap:.9rem;text-align:left;min-height:3.5rem}
.contact-emergency__call span{display:flex;flex-direction:column;font-family:var(--font-display);font-weight:700;font-size:var(--fs-xl);line-height:1.1}
.contact-emergency__call small{font-family:var(--font-body);font-weight:500;font-size:var(--fs-xs)}
@media (min-width:56rem){.contact-emergency__card{grid-template-columns:1fr auto;gap:3rem;min-height:5rem}}

.contact-grid{display:grid;gap:2.5rem}
@media (min-width:64rem){.contact-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:5rem;align-items:start}.contact-aside{position:sticky;top:calc(var(--header-h) + 1.5rem)}}
.contact-points{list-style:none;margin:2rem 0 0;padding:0;display:grid;gap:1.25rem}
.contact-points li{display:grid;grid-template-columns:auto 1fr;gap:.9rem}
.contact-points .icon{width:1.5rem;height:1.5rem;color:var(--accent-text);margin-top:.15rem}
.contact-points strong{display:block;font-family:var(--font-display)}
.contact-points span{color:var(--fg-muted);font-size:var(--fs-sm)}
.contact-form-wrap{background:var(--bg);border:1px solid var(--border);border-radius:var(--r-3);padding:clamp(1.25rem,.8rem + 2vw,2.5rem)}
.contact-aside h2{font-size:2rem;line-height:1.15}

.enq__types{grid-template-columns:1fr 1fr;gap:.5rem}
.enq__types .choice__card{flex-direction:row;align-items:center;gap:.65rem;padding:.7rem .85rem;min-height:3.25rem}
.enq__types .choice__card .icon{flex:none;width:1.25rem;height:1.25rem}
.enq__types .choice__title{font-size:var(--fs-sm);line-height:1.2}
.enq__types .choice__desc{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media (max-width:29.99rem){.enq__types .choice__card .icon{display:none}}
.choice-cards--compact{grid-template-columns:repeat(auto-fit,minmax(min(100%,8.5rem),1fr));margin-bottom:1.25rem}
.choice-cards--compact .choice__card{padding:.7rem .8rem;font-size:var(--fs-sm)}
.choice-cards legend small{font-weight:400;color:var(--fg-subtle)}
.enq .alert{margin-bottom:1.25rem}

/* Progressive disclosure with no JS: show the panel for the checked radio. Browsers without :has() show all panels. */
.enq__panel{margin-bottom:.25rem}
@supports selector(:has(*)){
  .enq__panel{display:none}
  .enq:has(input[name=type][value=breakdown]:checked) .enq__panel[data-type=breakdown],
  .enq:has(input[name=type][value=call-handling]:checked) .enq__panel[data-type=call-handling],
  .enq:has(input[name=type][value=bespoke]:checked) .enq__panel[data-type=bespoke],
  .enq:has(input[name=type][value=fleet-contract]:checked) .enq__panel[data-type=fleet-contract],
  .enq:has(input[name=type][value=network]:checked) .enq__panel[data-type=network]{display:block;animation:enq-in var(--dur-3) var(--ease)}
}
@keyframes enq-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.enq .btn[type=submit]{margin-top:.5rem}
/* shared partial: fixed-type embeds always show their own extras; privacy line; compact (landing) variant */
.enq__panel--on{display:block!important}
.enq__heading{font-size:var(--fs-xl);margin-bottom:1rem}
.enq__privacy{margin:1rem 0 0;font-size:var(--fs-xs);color:var(--fg-muted);line-height:1.55}
.enq--compact .btn[type=submit]{width:100%}
