.contact-page-hero { padding-top:clamp(7rem,10vw,10rem); background:var(--color-paper); border-bottom:1px solid var(--color-border); }
.contact-page-hero__grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(2rem,6vw,7rem); align-items:end; }
.contact-page-hero__copy { padding-bottom:clamp(4rem,8vw,8rem); }
.contact-page-hero h1 { max-width:8ch; font-size:clamp(4rem,7vw,8.5rem); line-height:.92; letter-spacing:-.055em; }
.contact-page-hero__copy > p:last-child { max-width:34rem; margin:2rem 0 0; color:var(--color-muted); line-height:1.7; }
.contact-page-hero__media { position:relative; min-height:clamp(34rem,52vw,56rem); margin:0; overflow:hidden; }
.contact-page-hero__media img { position:absolute; inset:0; height:100%; object-fit:cover; }
.contact-page-hero__media figcaption { position:absolute; right:1.2rem; bottom:1.2rem; padding:.55rem .75rem; color:#fff; background:rgba(17,17,15,.72); font-size:.65rem; letter-spacing:.09em; text-transform:uppercase; }
.contact-path { background:#f1eee7; }
.contact-path__heading { display:grid; grid-template-columns:.55fr 1fr 1fr; gap:clamp(2rem,5vw,6rem); align-items:start; }
.contact-path__heading h2 { max-width:9ch; font-size:clamp(3rem,5vw,5.8rem); }
.contact-path__heading > p:last-child { max-width:32rem; color:var(--color-muted); line-height:1.7; }
.contact-path__steps { display:grid; grid-template-columns:repeat(3,1fr); margin-top:clamp(4rem,7vw,7rem); border-block:1px solid var(--color-border); }
.contact-path__steps article { min-height:17rem; padding:1.6rem clamp(1.2rem,2.7vw,2.7rem) 2.3rem; }
.contact-path__steps article + article { border-left:1px solid var(--color-border); }
.contact-path__steps span { color:#8a857c; font-size:.65rem; letter-spacing:.14em; }
.contact-path__steps h3 { margin-top:3.8rem; font-size:clamp(1.8rem,2.7vw,2.8rem); }
.contact-path__steps p { max-width:24rem; margin:1rem 0 0; color:var(--color-muted); font-size:.9rem; line-height:1.65; }
.contact-enquiry { background:var(--color-paper); }
.contact-enquiry__grid { display:grid; grid-template-columns:.72fr 1.28fr; gap:clamp(3rem,8vw,9rem); align-items:start; }
.contact-enquiry__details { position:sticky; top:7rem; }
.contact-enquiry__details h2 { max-width:10ch; font-size:clamp(3rem,4.8vw,5.6rem); }
.contact-enquiry__details > p:not(.eyebrow):not(.contact-enquiry__note) { max-width:32rem; margin:2rem 0 0; color:var(--color-muted); line-height:1.75; }
.contact-enquiry__details dl { margin:3.5rem 0 0; border-top:1px solid var(--color-border); }
.contact-enquiry__details dl div { display:grid; grid-template-columns:8rem 1fr; gap:1rem; padding:1rem 0; border-bottom:1px solid var(--color-border); }
.contact-enquiry__details dt { color:#8a857c; font-size:.67rem; letter-spacing:.12em; text-transform:uppercase; }
.contact-enquiry__details dd { margin:0; font-size:.88rem; overflow-wrap:anywhere; }
.contact-enquiry__details dd a { border-bottom:1px solid currentColor; }
.contact-enquiry__note { max-width:28rem; margin:1.4rem 0 0; color:var(--color-muted); font-size:.72rem; line-height:1.6; }
.contact-form { padding:clamp(1.5rem,4vw,4rem); border:1px solid var(--color-border); background:#fff; box-shadow:0 1.8rem 5rem rgba(25,22,18,.07); }
.contact-form__heading { margin-bottom:3rem; }
.contact-form__heading h2 { max-width:12ch; font-size:clamp(2.5rem,4vw,4.5rem); }
.contact-form__row { display:grid; grid-template-columns:1fr 1fr; gap:1.2rem; }
.contact-form label { display:block; margin-bottom:1.35rem; }
.contact-form label > span:first-child { display:block; margin-bottom:.52rem; color:#5e5a53; font-size:.67rem; letter-spacing:.08em; text-transform:uppercase; }
.contact-form input,.contact-form select,.contact-form textarea { width:100%; border:1px solid var(--color-border); border-radius:0; color:var(--color-text); background:#fbfaf7; outline:0; }
.contact-form input,.contact-form select { min-height:3.25rem; padding:.7rem .8rem; }
.contact-form textarea { min-height:10rem; padding:.85rem; resize:vertical; }
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus { border-color:#6f685c; box-shadow:0 0 0 2px rgba(111,104,92,.12); }
.contact-form__consent { display:grid!important; grid-template-columns:auto 1fr; gap:.75rem; align-items:start; margin:1rem 0 1.6rem!important; }
.contact-form__consent input { width:1rem; min-height:1rem; margin:.15rem 0 0; accent-color:var(--color-dark); }
.contact-form__consent span { margin:0!important; color:var(--color-muted)!important; font-size:.72rem!important; line-height:1.55; letter-spacing:0!important; text-transform:none!important; }
.contact-form .button { width:100%; }
.contact-form__privacy { margin:1rem 0 0; color:#8a857c; font-size:.64rem; line-height:1.55; }
@media(max-width:64rem) {
 .contact-page-hero__grid,.contact-enquiry__grid { grid-template-columns:1fr; }
 .contact-page-hero__copy { padding-bottom:1rem; }
 .contact-page-hero__media { min-height:42rem; }
 .contact-enquiry__details { position:static; }
 .contact-path__heading { grid-template-columns:1fr 1fr; }
 .contact-path__heading .eyebrow { grid-column:1/-1; }
}
@media(max-width:48rem) {
 .contact-page-hero { padding-top:7rem; }
 .contact-page-hero h1 { font-size:clamp(3.7rem,16vw,6rem); }
 .contact-page-hero__media { min-height:28rem; }
 .contact-path__heading,.contact-path__steps,.contact-form__row { grid-template-columns:1fr; }
 .contact-path__steps article + article { border-left:0; border-top:1px solid var(--color-border); }
 .contact-path__steps article { min-height:0; }
 .contact-path__steps h3 { margin-top:2rem; }
 .contact-enquiry__details dl div { grid-template-columns:6rem 1fr; }
}

/* Compact contact presentation and light footer. */
.contact-enquiry--compact { padding:clamp(6rem,8vw,8rem) 0 clamp(3rem,5vw,5rem); background:var(--color-paper); }
.contact-page__intro { margin-bottom:clamp(2rem,4vw,3.5rem); }
.contact-page__intro h1 { margin:.6rem 0; font-size:clamp(2.6rem,4vw,4rem); line-height:1.08; }
.contact-page__intro > p:last-child { max-width:44rem; color:var(--color-muted); line-height:1.65; }
.contact-enquiry__grid { grid-template-columns:minmax(17rem,.85fr) minmax(0,1.15fr); gap:clamp(2rem,6vw,6rem); }
.contact-enquiry__details { position:static; }
.contact-enquiry__details h2 { max-width:none; font-size:clamp(1.65rem,2.6vw,2.5rem); line-height:1.15; }
.contact-enquiry__details > p:not(.eyebrow):not(.contact-enquiry__note) { margin:1rem 0 0; line-height:1.65; }
.contact-enquiry__details dl { margin:1.6rem 0 0; }
.contact-enquiry__details dl div { padding:.85rem 0; }
.contact-enquiry__details dt { font-size:.73rem; letter-spacing:0; text-transform:none; }
.contact-enquiry__details dd { font-size:.92rem; }
.contact-enquiry__details dd a,.contact-enquiry__location a { text-decoration:underline; text-underline-offset:.2em; border:0; }
.contact-enquiry__location img { display:block; width:100%; aspect-ratio:1.5; object-fit:cover; }
.contact-enquiry__location p { margin:.8rem 0 0; font-size:.9rem; line-height:1.6; }
.contact-enquiry__location img { width:100%; height:auto; aspect-ratio:auto; object-fit:contain; }
.contact-map { padding:clamp(3rem,5vw,5rem) 0; border-top:1px solid var(--color-border); background:var(--color-paper); }
.contact-quote .contact-map { min-width:0; padding:0; border:0; background:transparent; }
.contact-map__heading { display:flex; justify-content:space-between; align-items:end; gap:2rem; margin-bottom:1.5rem; }
.contact-map__heading h2 { margin:.4rem 0 0; font-size:clamp(1.8rem,2.8vw,2.8rem); }
.contact-map__heading a { font-size:.9rem; text-decoration:underline; text-underline-offset:.2em; }
.contact-map iframe { display:block; width:100%; height:clamp(21rem,40vw,31rem); border:1px solid var(--color-border); }
.contact-quote .contact-map iframe { height:clamp(24rem,38vw,36rem); }
.contact-map__directions { display:inline-block; margin-top:.9rem; font-size:.9rem; text-decoration:underline; text-underline-offset:.2em; }
.contact-quote { padding:clamp(3rem,5vw,5rem) 0 clamp(4rem,6vw,6rem); border-top:1px solid var(--color-border); background:#fff; }
.contact-quote__inner { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:clamp(2rem,4vw,4.5rem); align-items:start; }
.contact-quote__inner--form-only { display:block; max-width:64rem; }
.contact-quote__form-column { min-width:0; }
.contact-quote__heading { margin-bottom:2rem; text-align:left; }
.contact-quote__heading h2 { margin:.6rem 0; font-size:clamp(2rem,3.2vw,3.3rem); line-height:1.15; }
.contact-quote__heading > p:last-child { color:var(--color-muted); }
.contact-form { padding:0; border:0; box-shadow:none; }
.contact-form label > span:first-child { font-size:.77rem; letter-spacing:0; text-transform:none; }
.contact-form .button { width:auto; min-width:13rem; }
.contact-form__privacy,.contact-form__notice { font-size:.77rem; }
.contact-form__trap { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.contact-form__error { display:block; margin-top:.4rem; color:#8c332c; font-size:.77rem; }
.contact-form__error[hidden] { display:none; }
.contact-form [aria-invalid="true"] { border-color:#8c332c; }
.contact-form__notice:not([hidden]) { margin-top:1rem; padding:1rem; border:1px solid var(--color-border); line-height:1.6; overflow-wrap:anywhere; }
.contact-form__security { margin:0 0 1.25rem; max-width:100%; }
.contact-form .button:disabled { opacity:.65; cursor:default; }
.site-footer { padding-top:0; border-top:1px solid #c9c3b9; color:#201d19; background:#fff; }
.site-footer__grid { display:grid; grid-template-columns:minmax(13rem,1.35fr) 1fr 1fr 1fr; gap:clamp(1.25rem,2.5vw,3rem); align-items:start; padding-block:clamp(2rem,4vw,4rem); }
.site-footer__brand-image { display:block; width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; }
.site-footer__heading { margin:0 0 .9rem; color:#302a24; font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; }
.site-footer__phones { display:grid; justify-items:start; gap:.75rem; margin-bottom:clamp(2rem,5vw,5rem); }
.site-footer__phone { display:flex; flex-wrap:wrap; align-items:baseline; gap:.25rem .5rem; max-width:100%; font-size:1.25rem; }
.site-footer__phone-label { color:#8a857c; font-size:.65rem; letter-spacing:.1em; text-transform:uppercase; }
.site-footer__contact p:not(.site-footer__heading) { font-size:.86rem; line-height:1.55; }
.site-footer__channels { display:flex; flex-direction:column; gap:1rem; padding-top:1.7rem; font-size:.85rem; overflow-wrap:anywhere; }
.site-footer__social { display:flex; gap:.65rem; align-items:center; }
.site-footer__social a { display:grid; width:2.5rem; height:2.5rem; place-items:center; border:1px solid #c9c3b9; border-radius:50%; color:#302a24; }
.site-footer__social-pending { display:grid; width:2.5rem; height:2.5rem; place-items:center; border:1px solid #d7d2cb; border-radius:50%; color:#77716a; cursor:default; }
.site-footer__social a:hover { border-color:#865839; background:#f5eee8; }
.site-footer__social svg { width:1.25rem; height:1.25rem; fill:currentColor; }
.site-footer__links { display:grid; gap:.5rem; }
.site-footer__links a,.site-footer__channels a { color:#25221e; font-size:.84rem; }
.site-footer__links a:hover,.site-footer__channels a:hover,.site-footer__phone:hover { color:#865839; text-decoration:underline; }
.site-footer__bottom { display:flex; justify-content:space-between; gap:1rem; padding-block:1.6rem; border-top:1px solid #dedbd6; color:#5e5952; font-size:.8rem; }
/* Optional credit above the divider; the approved bottom row stays unchanged. */
.site-footer__credit { display:flex; justify-content:flex-end; padding-bottom:.5rem; color:#5e5952; font-size:.8rem; }
/* Reserve room for the fixed contact rail, including a device's safe area. */
.site-footer__credit--with-dock { padding-right:max(0px,calc(6rem + env(safe-area-inset-right,0px) - var(--gutter))); }
.site-footer__credit-link { display:inline-flex; align-items:center; justify-content:center; gap:.4rem; min-height:2.75rem; min-width:2.75rem; border-radius:.2rem; }
.site-footer__credit-mark { width:1.25rem; height:1.25rem; flex-shrink:0; }
.site-footer__credit-link:hover { color:#302a24; text-decoration:underline; text-underline-offset:.2em; }
@media(max-width:72rem) {
 .site-footer__grid { grid-template-columns:1.25fr 1fr 1fr; }
 .site-footer__brand-block { grid-column:1/-1; }
 .site-footer__brand-image { max-width:22rem; }
}
@media(max-width:48rem) {
 .contact-quote__inner { grid-template-columns:1fr; }
 .contact-quote .contact-map { order:2; }
 .contact-quote__form-column { order:1; }
 .contact-quote .contact-map iframe { height:clamp(21rem,65vw,27rem); }
 .contact-map__heading { align-items:start; flex-direction:column; gap:.7rem; }
 .contact-enquiry__grid { grid-template-columns:1fr; }
 .contact-quote__heading { text-align:left; }
 .site-footer__grid { grid-template-columns:1fr 1fr; }
 .site-footer__brand-block { grid-column:1/-1; }
 .site-footer__brand-image { max-width:22rem; }
 .site-footer__channels { padding-top:0; }
 .site-footer__credit-text { display:none; }
 .site-footer__credit--with-dock { padding-right:max(0px,calc(5.5rem + env(safe-area-inset-right,0px) - var(--gutter))); }
 .site-footer__bottom { flex-direction:column; }
}
@media(max-width:32rem) { .site-footer__grid { grid-template-columns:1fr; } .site-footer__brand-block { grid-column:auto; } }
