/* Hallmark · shape: Index-First, draw 4a804b · genre: editorial · theme: brand, existing Grid-derived system
 * paper: oklch(98% .005 135) · accent: existing green · display: Manrope · body: Onest · hero: Banner · nav: shared edge-aligned · footer: shared colophon block · signature: Saperna-Slobidska 22 and its real map pin
 * axes: pale/grotesk/green · posture: restrained · contrast: ink 15.86, muted on well 5.78, action 8.29 · fold: CTA bottom 507px at 1280x800 · v2.0.0 */
/* Hallmark · pre-emit critique: P4 H4 E4 S5 R5 V4 · weakest: E, reused the existing request boundary rather than creating a second submission flow */
/* Hallmark · waive 59 · Index-First directory, functional rows and a real map · Compact contacts sections keep one useful journey instead of padding the address into a marketing page */
/* Hallmark · hero-review: fix, 1 resolved by larger display · finish-review: subagent, 2 resolved · capture artifacts replaced with viewport sequences · gap: none */
@import url('../tokens.css');
@import url('../base.css');
:root{--contacts-display:clamp(3.75rem,5.7vw,5.5rem)}
html{scroll-behavior:smooth}
.contacts-page{font-synthesis:none}
.contacts-page .section-shell{width:calc(100% - 2 * var(--gutter));max-width:calc(var(--container) - 2 * var(--gutter));margin-inline:auto}
.contacts-page a{text-decoration:none}
.contacts-page :is(a,button,input,textarea):focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}
.contacts-skip{position:fixed;top:calc(-1 * var(--space-3xl));left:var(--space-md);padding:var(--space-sm) var(--space-lg);background:var(--color-action);color:var(--color-on-action);z-index:var(--z-tooltip)}
.contacts-skip:focus-visible{top:var(--space-md)}
.contacts-breadcrumbs{display:flex;align-items:center;gap:var(--space-sm);padding-block:var(--space-lg);font-size:var(--text-xs);color:var(--color-muted)}
.contacts-breadcrumbs a:hover{color:var(--color-action)}
.contacts-hero{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:var(--space-2xl);align-items:center;padding-block:var(--space-xl) var(--space-2xl);min-height:440px}
.contacts-hero h1{font-size:var(--contacts-display);line-height:1.06;letter-spacing:-.035em}
.contacts-lead{font-size:var(--text-lead);line-height:1.55;max-width:45ch;margin-top:var(--space-lg)}
.contacts-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-lg);margin-top:var(--space-lg)}
.contacts-primary{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:var(--space-sm) var(--space-lg);border:1px solid var(--color-action);border-radius:var(--radius-pill);background:var(--color-action);color:var(--color-on-action);font:600 var(--text-sm)/1.5 var(--font-body);white-space:nowrap;cursor:pointer;transition:background-color var(--dur-short) var(--ease-out)}
.contacts-primary:hover{background:var(--color-action-hover);color:var(--color-on-action)}
.contacts-primary:active{transform:translateY(1px)}
.contacts-primary:disabled{opacity:.55;cursor:not-allowed;transform:none}
.contacts-primary[aria-busy=true]{cursor:progress}
.contacts-page .contacts-text-link{display:inline-flex;align-items:center;min-height:48px;color:var(--color-ink);font-size:var(--text-sm);text-decoration:underline;text-underline-offset:.2em}
.contacts-page .contacts-text-link:hover{color:var(--color-action)}
.contacts-visit{padding:var(--space-xl);background:var(--color-paper-2)}
.contacts-visit h2{font:600 var(--text-title)/1.3 var(--font-display);letter-spacing:-.02em;max-width:none}
.contacts-visit address{font-size:var(--text-2xl);line-height:1.4;letter-spacing:-.025em;font-style:normal;margin-top:var(--space-lg);max-width:25ch}
.contacts-visit p{margin-top:var(--space-lg);font-size:var(--text-sm);color:var(--color-muted)}
.contacts-visit .contacts-text-link{margin-top:var(--space-md)}
@media(max-width:960px){.contacts-hero{gap:var(--space-xl)}.contacts-visit{padding:var(--space-lg)}}
@media(max-width:640px){.contacts-hero{grid-template-columns:minmax(0,1fr);gap:var(--space-xl);padding-block:var(--space-lg) var(--space-xl);min-height:0}.contacts-hero h1{font-size:var(--text-display-s)}.contacts-lead{font-size:var(--text-md)}.contacts-visit address{font-size:var(--text-xl)}.contacts-breadcrumbs{padding-block:var(--space-lg) var(--space-xs)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.contacts-primary{transition:none}}
.contacts-directory{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:var(--gap-columns);padding-block:var(--space-2xl) var(--space-3xl);border-top:1px solid var(--color-rule)}
.contacts-directory h2,.contacts-location h2,.contacts-enquiry h2{font-size:var(--text-section);line-height:1.1;max-width:17ch}
.contacts-rows{border-top:1px solid var(--color-rule)}
.contacts-rows>a{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-sm) var(--space-lg);padding-block:var(--space-lg);border-bottom:1px solid var(--color-rule)}
.contacts-rows>a>span{font-size:var(--text-sm);color:var(--color-muted)}
.contacts-rows>a>strong{font:400 var(--text-xl)/1.4 var(--font-numeric)}
.contacts-rows>a[href^='mailto:']>strong{font-family:var(--font-body);font-size:var(--text-lg)}
.contacts-rows>a:hover{color:var(--color-action)}
.contacts-messengers{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-xs) var(--space-lg);margin-top:var(--space-lg)}
.contacts-messengers a{display:inline-flex;align-items:center;gap:var(--space-xs);min-height:48px;font-size:var(--text-sm)}
.contacts-messengers svg{width:24px;height:24px;flex-shrink:0}
.contacts-messengers a:hover{color:var(--color-action)}
.contacts-location{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:var(--gap-columns);align-items:center;padding-bottom:var(--space-3xl)}
.contacts-location address{font:400 var(--text-lg)/1.65 var(--font-body);font-style:normal;margin-top:var(--space-lg)}
.contacts-location .contacts-text-link{margin-top:var(--space-lg)}
.contacts-map{display:block;width:100%;height:440px;border:0;background:var(--color-paper-2)}
.contacts-enquiry{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:var(--gap-columns);align-items:start;padding-bottom:var(--space-3xl)}
.contacts-enquiry-copy>p{font-size:var(--text-md);line-height:1.65;max-width:45ch;margin-top:var(--space-lg);color:var(--color-muted)}
.contacts-enquiry-copy .contacts-hours{font-size:var(--text-sm)}
.contacts-form-panel{padding:var(--space-xl);background:var(--color-paper-2);min-width:0}
.contacts-form{display:flex;flex-direction:column;gap:var(--space-lg)}
.contacts-field>label{display:block;font-size:var(--text-sm);margin-bottom:var(--space-xs)}
.contacts-field>label>span{color:var(--color-muted);font-size:var(--text-xs)}
.contacts-field input,.contacts-field textarea{display:block;width:100%;min-width:0;min-height:48px;padding:var(--space-sm) var(--space-md);border:1px solid var(--color-muted);border-radius:var(--radius-pill);background:var(--color-paper);color:var(--color-ink);font:400 var(--text-md)/1.5 var(--font-body);outline-offset:-3px}
.contacts-field textarea{resize:vertical;min-height:120px}
.contacts-field :is(input,textarea):hover{background:var(--color-image)}
.contacts-field :is(input,textarea):disabled{opacity:.55;cursor:not-allowed}
.contacts-field input[aria-invalid=true]{border-color:var(--color-error)}
.contacts-field .contacts-field-help{min-height:1lh;margin-top:var(--space-2xs);font-size:var(--text-xs);line-height:1.5;color:var(--color-error)}
.contacts-consent{display:flex;align-items:flex-start;gap:var(--space-sm);font-size:var(--text-xs);line-height:1.6}
.contacts-consent input{width:18px;height:18px;flex-shrink:0;margin:var(--space-2xs) 0 0;accent-color:var(--color-action)}
.contacts-page .contacts-consent a{text-decoration:underline}
.contacts-form-error{font-size:var(--text-sm);color:var(--color-error);line-height:1.6}
.contacts-form .contacts-primary{align-self:start;min-width:200px}
.contacts-success h3{font-size:var(--text-title);line-height:1.25}
.contacts-success>p{font-size:var(--text-md);line-height:1.65;margin-top:var(--space-lg)}
.contacts-success .contacts-success-reference{font-size:var(--text-xs);overflow-wrap:anywhere;color:var(--color-muted)}
.contacts-success .contacts-text-link{margin-top:var(--space-lg)}
.contacts-noscript{font-size:var(--text-sm);margin-top:var(--space-md)}
@media(max-width:960px){.contacts-directory{grid-template-columns:minmax(0,1fr);row-gap:var(--space-xl)}.contacts-directory h2{max-width:none}.contacts-directory h2 br{display:none}.contacts-rows>a>strong{font-size:var(--text-lg)}.contacts-map{height:380px}.contacts-form-panel{padding:var(--space-lg)}}
@media(max-width:640px){.contacts-directory{padding-block:var(--space-xl) var(--space-2xl)}.contacts-location,.contacts-enquiry{grid-template-columns:minmax(0,1fr);gap:var(--space-xl);padding-bottom:var(--space-2xl)}.contacts-rows>a{display:block}.contacts-rows>a>span{display:block;margin-bottom:var(--space-xs)}.contacts-rows>a>strong{font-size:var(--text-xl)}.contacts-messengers{gap:var(--space-xs) var(--space-md)}.contacts-messengers a{font-size:var(--text-md)}.contacts-map{height:320px}.contacts-form-panel{padding:var(--space-lg) var(--space-md)}.contacts-form .contacts-primary{width:100%;min-width:0}.contacts-enquiry-copy>p{max-width:45ch}}
