.gh-contact-cards { --contact-bg:#e8eff0; --contact-card:#fafdface; --contact-ink:#173e32; --contact-muted:#516960; --contact-line:#c8d9d3; padding:80px 0; background:var(--contact-bg); color:var(--contact-ink); }
.gh-contact-heading { position:relative; margin-bottom:40px; }
.gh-contact-cards h2 { position:relative; z-index:1; font:clamp(38px,4.7vw,68px)/1.12 var(--serif); margin:24px 0 16px; max-width:1050px; overflow-wrap:anywhere; }
.gh-contact-intro { font-size:17px; line-height:1.6; max-width:700px; color:var(--contact-muted); }
.gh-contact-mountains { position:absolute; width:260px; height:90px; right:0; bottom:0; opacity:.12; pointer-events:none; }
.gh-contact-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:20px; }
.gh-contact-card { padding:24px; border:1px solid var(--contact-line); border-radius:24px; background:var(--contact-card); min-width:0; }
.gh-contact-cards h3 { font:clamp(27px,2.5vw,36px)/1.18 var(--serif); margin:0 0 24px; overflow-wrap:anywhere; }
.gh-contact-row { display:flex; align-items:flex-start; gap:16px; padding:20px 0; border-bottom:1px solid var(--contact-line); }
.gh-contact-row:first-of-type { padding-top:0; }
.gh-contact-row:last-child { border:0; padding-bottom:0; }
.gh-contact-symbol { display:inline-flex; flex:0 0 44px; width:44px; height:44px; align-items:center; justify-content:center; border-radius:50%; background:#dfeae4; }
.gh-contact-cards svg:not(.gh-contact-mountains):not(.gh-contact-forest) { width:22px; height:22px; flex-shrink:0; }
.gh-contact-row-copy { min-width:0; flex:1; }
.gh-contact-label { color:var(--contact-muted); font-size:14px; line-height:1.4; margin-bottom:4px; }
.gh-contact-value { display:block; font-size:clamp(17px,1.6vw,23px); line-height:1.4; overflow-wrap:anywhere; }
.gh-contact-action { display:flex; align-items:center; justify-content:center; gap:10px; min-height:48px; padding:12px 16px; border:1px solid var(--contact-ink); border-radius:999px; background:var(--contact-ink); color:#fff; text-decoration:none; font:500 15px/1.4 var(--sans,Arial,sans-serif); text-align:center; transition:background .2s ease,box-shadow .2s ease; }
.gh-contact-row .gh-contact-action { margin-top:12px; }
.gh-contact-action span { overflow-wrap:anywhere; min-width:0; }
.gh-contact-action--outline { color:var(--contact-ink); background:transparent; }
.gh-contact-action:hover { background:#2b5947; color:#fff; box-shadow:0 4px 12px #173e321a; }
.gh-contact-cards a:focus-visible { outline:3px solid #327c65; outline-offset:4px; }
.gh-contact-directions { position:relative; overflow:hidden; display:flex; flex-direction:column; align-items:flex-start; }
.gh-contact-symbol--large { width:64px; height:64px; flex-basis:64px; margin:4px 0 20px; }
.gh-contact-directions address { font-style:normal; font-size:18px; line-height:1.6; margin-bottom:24px; overflow-wrap:anywhere; }
.gh-contact-directions .gh-contact-action { width:100%; }
.gh-contact-map-link { font-size:15px; line-height:1.5; text-decoration:underline; text-underline-offset:5px; margin-top:24px; padding-top:20px; width:100%; border-top:1px solid var(--contact-line); }
.gh-contact-forest { display:block; width:calc(100% + 48px); height:112px; flex-shrink:0; margin:24px -24px -24px; opacity:.15; pointer-events:none; }
.gh-contact-map-card { display:flex; flex-direction:column; border:1px solid var(--contact-line); border-radius:24px; overflow:hidden; background:#dfeae4; min-width:0; }
.gh-contact-map { display:block; width:100%; height:360px; flex:1 0 360px; border:0; }
.gh-contact-map-caption { display:flex; flex-wrap:wrap; gap:8px 16px; align-items:center; justify-content:space-between; padding:16px; background:#fafdface; font-size:14px; line-height:1.5; }
.gh-contact-map-caption>a { text-decoration:underline; text-underline-offset:4px; }
.gh-contact-map-empty { min-height:360px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:20px; padding:32px; text-align:center; }
.gh-contact-cards [data-contact-reveal] { transition:opacity .55s ease,transform .55s ease; }
.gh-contact-cards .contact-pending { opacity:0; transform:translateY(18px); }
.gh-contact-cards [data-contact-reveal]:focus-within { opacity:1; transform:none; }
@media(min-width:700px) { .gh-contact-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .gh-contact-map-card { grid-column:1/-1; } .gh-contact-forest { margin-top:auto; padding-top:24px; height:152px; } }
@media(min-width:1200px) { .gh-contact-grid { grid-template-columns:minmax(0,1fr) minmax(0,.9fr) minmax(0,1.3fr); gap:24px; } .gh-contact-map-card { grid-column:auto; } .gh-contact-map { min-height:480px; } }
@media(max-width:699px) { .gh-contact-cards { padding:56px 0; } .gh-contact-cards .gh-shell { width:calc(100% - 40px); } .gh-contact-heading { margin-bottom:28px; } .gh-contact-cards h2 { margin-top:20px; } .gh-contact-mountains { width:140px; top:0; bottom:auto; } .gh-contact-card { padding:20px; } .gh-contact-row { gap:12px; } .gh-contact-symbol { width:36px; height:36px; flex-basis:36px; } .gh-contact-symbol--large { width:52px; height:52px; flex-basis:52px; } .gh-contact-forest { width:calc(100% + 40px); margin:24px -20px -20px; height:80px; } }
@media(prefers-reduced-motion:reduce) { .gh-contact-cards [data-contact-reveal] { transition:none; opacity:1; transform:none; } .gh-contact-action { transition:none; } }
