:root { --hvc-forest:#0b4438; --hvc-deep:#052f27; --hvc-lime:#d8fb42; --hvc-coral:#f06445; --hvc-cream:#f7f4e9; --hvc-paper:#fffdf8; --hvc-muted:#687b74; }
.hv-contact-page { overflow:hidden; padding:0 0 110px; color:var(--hvc-deep); background:radial-gradient(circle at 8% 13%,rgba(216,251,66,.2),transparent 24%),var(--hvc-cream); }
.hv-contact-shell { width:min(1460px,calc(100% - 64px)); margin-inline:auto; }
.hv-contact-label { display:flex; align-items:center; gap:13px; margin:0 0 18px; color:#718b19; font-size:13px; font-weight:900; letter-spacing:.13em; text-transform:uppercase; }
.hv-contact-label span { width:48px; height:3px; border-radius:4px; background:var(--hvc-lime); }
.hv-contact-intro { display:grid; grid-template-columns:minmax(0,.92fr) minmax(420px,1.08fr); gap:clamp(52px,8vw,130px); align-items:center; min-height:680px; padding-block:90px; }
.hv-contact-intro__copy h2,.hv-contact-heading h2,.hv-contact-closing h2 { margin:0; font-family:Newsreader,Georgia,serif; font-weight:560; letter-spacing:-.045em; line-height:.94; text-wrap:balance; }
.hv-contact-intro__copy h2 { max-width:760px; font-size:clamp(44px,5vw,74px); }
.hv-contact-intro__copy>p:not(.hv-contact-label) { max-width:690px; margin:27px 0 0; color:var(--hvc-muted); font-size:18px; line-height:1.7; }
.hv-contact-intro__location { display:flex; align-items:center; gap:16px; width:max-content; max-width:100%; margin-top:35px; padding:14px 19px 14px 14px; border:1px solid rgba(11,68,56,.13); border-radius:20px; background:rgba(255,253,248,.72); box-shadow:0 18px 50px rgba(11,68,56,.08); backdrop-filter:blur(12px); }
.hv-contact-intro__location>svg { width:54px; height:54px; padding:12px; border-radius:16px; background:var(--hvc-lime); stroke:var(--hvc-deep); stroke-width:1.7; }
.hv-contact-intro__location small,.hv-contact-intro__location strong { display:block; }
.hv-contact-intro__location small { margin-bottom:4px; color:#778a83; font-size:11px; font-weight:850; letter-spacing:.1em; text-transform:uppercase; }
.hv-contact-intro__location strong { font-size:16px; }
.hv-contact-orbit { position:relative; min-height:520px; isolation:isolate; }
.hv-contact-orbit::before { position:absolute; z-index:-1; inset:7% 2%; border-radius:48% 52% 44% 56%; background:linear-gradient(145deg,var(--hvc-deep),var(--hvc-forest)); box-shadow:0 42px 100px rgba(5,47,39,.22); content:""; transform:rotate(-4deg); }
.hv-contact-orbit>svg { position:absolute; inset:0; width:100%; height:100%; overflow:visible; }
.hv-contact-orbit__route,.hv-contact-orbit__ring { stroke:rgba(216,251,66,.42); stroke-width:1.4; stroke-dasharray:7 11; animation:hvcRoute 18s linear infinite; }
.hv-contact-orbit__route.is-second { stroke:rgba(255,255,255,.28); stroke-dasharray:3 9; animation-direction:reverse; }
.hv-contact-orbit__ring { transform-origin:279px 240px; animation:hvcSpin 20s linear infinite; }
.hv-contact-orbit__ring.is-inner { animation-direction:reverse; animation-duration:14s; }
.hv-contact-orbit__node { fill:var(--hvc-lime); filter:drop-shadow(0 8px 14px rgba(216,251,66,.35)); }
.hv-contact-orbit__node.is-two { fill:#fff; }.hv-contact-orbit__node.is-three { fill:var(--hvc-coral); }
.hv-contact-orbit__pin { position:absolute; top:50%; left:50%; display:grid; width:170px; height:170px; place-items:center; border:1px solid rgba(255,255,255,.18); border-radius:50%; color:#fff; background:rgba(255,255,255,.08); box-shadow:0 0 0 24px rgba(216,251,66,.045),0 0 0 48px rgba(216,251,66,.025); transform:translate(-50%,-50%); backdrop-filter:blur(12px); }
.hv-contact-orbit__pin svg { width:62px; height:62px; stroke:var(--hvc-lime); stroke-width:1.6; }.hv-contact-orbit__pin span { margin-top:-24px; font-size:13px; font-weight:850; }
.hv-contact-orbit__chip { position:absolute; padding:10px 16px; border-radius:999px; color:var(--hvc-deep); background:#fff; font-size:12px; font-weight:900; box-shadow:0 15px 38px rgba(0,0,0,.16); animation:hvcFloat 4s ease-in-out infinite; }.hv-contact-orbit__chip.is-email { top:15%; left:8%; }.hv-contact-orbit__chip.is-phone { right:4%; bottom:14%; background:var(--hvc-lime); animation-delay:-2s; }
.hv-contact-directory { position:relative; padding:105px 0 115px; color:#fff; background:var(--hvc-deep); }
.hv-contact-directory__pattern { position:absolute; inset:0; opacity:.14; background-image:radial-gradient(rgba(216,251,66,.75) 1px,transparent 1px); background-size:18px 18px; mask-image:linear-gradient(110deg,#000,transparent 75%); animation:hvcPattern 22s linear infinite; }
.hv-contact-directory .hv-contact-shell { position:relative; }
.hv-contact-heading { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(320px,.65fr); gap:60px; align-items:end; margin-bottom:55px; }
.hv-contact-heading h2 { color:#fff; font-size:clamp(43px,5.2vw,76px); }.hv-contact-heading h2 em,.hv-contact-closing h2 em { color:var(--hvc-lime); font-weight:500; }
.hv-contact-heading>p { max-width:520px; margin:0; color:rgba(255,255,255,.67); font-size:17px; line-height:1.7; }
.hv-contact-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.hv-contact-card { --hvc-card-bg:#fff; position:relative; display:flex; min-width:0; min-height:300px; overflow:hidden; padding:21px; border:1px solid rgba(255,255,255,.15); border-radius:24px; color:var(--hvc-deep); background:var(--hvc-card-bg); flex-direction:column; box-shadow:0 20px 55px rgba(0,0,0,.14); transform:perspective(900px) rotateX(var(--hvc-ry,0deg)) rotateY(var(--hvc-rx,0deg)); transition:transform .25s ease,box-shadow .25s ease; }
.hv-contact-card:hover { box-shadow:0 35px 90px rgba(0,0,0,.27); }
.hv-contact-card::after { position:absolute; right:-85px; bottom:-100px; width:220px; height:220px; border:1px solid rgba(11,68,56,.13); border-radius:50%; box-shadow:0 0 0 34px rgba(11,68,56,.03),0 0 0 68px rgba(11,68,56,.02); content:""; }
.hv-contact-card--address { color:#fff; background:linear-gradient(135deg,#14584a,var(--hvc-forest)); }.hv-contact-card--address::after { border-color:rgba(216,251,66,.35); box-shadow:0 0 0 34px rgba(216,251,66,.04),0 0 0 68px rgba(216,251,66,.025); }
.hv-contact-card--email { background:var(--hvc-lime); }.hv-contact-card--card-support { color:#fff; background:linear-gradient(145deg,#17604f,var(--hvc-deep)); }.hv-contact-card--direct { background:linear-gradient(120deg,#f7f4e9,#fff); }
.hv-contact-card__top { position:relative; z-index:1; display:flex; align-items:flex-start; justify-content:space-between; }
.hv-contact-card__icon { display:grid; width:58px; height:58px; place-items:center; border-radius:18px; color:var(--hvc-deep); background:var(--hvc-lime); box-shadow:0 12px 25px rgba(0,0,0,.1); }.hv-contact-card--email .hv-contact-card__icon { background:#fff; }.hv-contact-card--card-support .hv-contact-card__icon { background:var(--hvc-lime); }.hv-contact-card--direct .hv-contact-card__icon { color:#fff; background:var(--hvc-coral); }
.hv-contact-card__icon svg { width:31px; height:31px; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.7; }
.hv-contact-card__index { color:rgba(11,68,56,.38); font-family:Newsreader,Georgia,serif; font-size:26px; }.hv-contact-card--address .hv-contact-card__index { color:rgba(255,255,255,.36); }
.hv-contact-card>div:nth-child(2) { position:relative; z-index:1; margin-top:auto; padding-top:26px; }
.hv-contact-card p { margin:0 0 8px; color:#75877f; font-size:10px; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }.hv-contact-card--address p,.hv-contact-card--card-support p { color:var(--hvc-lime); }.hv-contact-card--card-support small { color:rgba(255,255,255,.64); }
.hv-contact-card h3 { max-width:100%; margin:0; color:inherit; font-family:Newsreader,Georgia,serif; font-size:clamp(17px,1.45vw,22px); font-weight:620; line-height:1.08; letter-spacing:-.025em; overflow-wrap:anywhere; }
.hv-contact-card small { display:block; margin-top:7px; color:#71837c; font-size:11px; line-height:1.45; }.hv-contact-card--address small { color:rgba(255,255,255,.6); }
.hv-contact-card>a { position:relative; z-index:2; display:flex; align-items:center; justify-content:space-between; gap:10px; width:100%; margin-top:20px; padding-top:15px; border-top:1px solid rgba(11,68,56,.13); color:inherit; font-size:11px; font-weight:900; line-height:1.3; text-decoration:none; }.hv-contact-card--address>a,.hv-contact-card--card-support>a { border-color:rgba(255,255,255,.16); }.hv-contact-card>a svg { width:20px; height:20px; flex:0 0 20px; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.8; transition:transform .25s ease; }.hv-contact-card>a:hover svg { transform:translate(4px,-4px); }
.hv-contact-card__direct-list { display:grid; gap:0; }
.hv-contact-card__direct-list>a { position:relative; z-index:2; display:grid; gap:2px; padding:7px 0; border-bottom:1px solid rgba(11,68,56,.11); color:inherit; text-decoration:none; }
.hv-contact-card__direct-list>a span { color:#74857d; font-size:9px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.hv-contact-card__direct-list>a strong { font-size:13px; line-height:1.2; white-space:nowrap; }
.hv-contact-card__message-actions { position:relative; z-index:2; display:flex; gap:7px; margin-top:12px!important; padding-top:0!important; }
.hv-contact-card__message-actions a { display:flex; min-height:34px; flex:1; align-items:center; justify-content:center; border-radius:10px; color:#fff; background:var(--hvc-forest); font-size:10px; font-weight:900; text-decoration:none; }
.hv-contact-closing { display:grid; grid-template-columns:100px minmax(0,1fr) auto; gap:34px; align-items:center; margin-top:100px; padding:46px; border:1px solid rgba(11,68,56,.12); border-radius:34px; background:var(--hvc-paper); box-shadow:0 30px 85px rgba(11,68,56,.1); }
.hv-contact-closing__icon { display:grid; width:100px; height:100px; place-items:center; border-radius:29px; color:var(--hvc-deep); background:var(--hvc-lime); transform:rotate(-4deg); }.hv-contact-closing__icon svg { width:57px; height:57px; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.5; }
.hv-contact-closing h2 { font-size:clamp(37px,4vw,60px); }.hv-contact-closing>a { display:flex; min-height:64px; align-items:center; gap:20px; padding:0 23px; border-radius:18px; color:#fff; background:var(--hvc-forest); font-size:14px; font-weight:900; text-decoration:none; box-shadow:8px 9px 0 rgba(216,251,66,.55); transition:transform .25s ease,box-shadow .25s ease; }.hv-contact-closing>a:hover { transform:translateY(-3px); box-shadow:5px 12px 0 rgba(216,251,66,.72); }.hv-contact-closing>a svg { width:25px; stroke:currentColor; stroke-width:1.8; }
[data-hv-contact-reveal] { opacity:0; transform:translateY(24px); transition:opacity .65s ease,transform .65s cubic-bezier(.2,.75,.2,1); }[data-hv-contact-reveal].is-visible { opacity:1; transform:none; }
@keyframes hvcRoute { to { stroke-dashoffset:-180; } }@keyframes hvcSpin { to { transform:rotate(360deg); } }@keyframes hvcFloat { 50% { transform:translateY(-10px) rotate(2deg); } }@keyframes hvcPattern { to { background-position:90px 54px; } }
@media(max-width:1050px){.hv-contact-intro{grid-template-columns:1fr;min-height:auto}.hv-contact-orbit{min-height:500px}.hv-contact-heading{grid-template-columns:1fr;gap:24px}.hv-contact-closing{grid-template-columns:82px 1fr}.hv-contact-closing__icon{width:82px;height:82px}.hv-contact-closing>a{grid-column:1/-1;justify-content:center}}
@media(max-width:900px){.hv-contact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.hv-contact-page{padding-bottom:70px}.hv-contact-shell{width:calc(100% - 28px)}.hv-contact-intro{gap:35px;padding-block:60px}.hv-contact-intro__copy h2{font-size:43px}.hv-contact-intro__copy>p:not(.hv-contact-label){font-size:16px}.hv-contact-intro__location{width:100%}.hv-contact-orbit{min-height:390px}.hv-contact-orbit__pin{width:130px;height:130px}.hv-contact-orbit__pin svg{width:48px}.hv-contact-directory{padding:75px 0}.hv-contact-heading h2{font-size:43px}.hv-contact-grid{grid-template-columns:1fr}.hv-contact-card{min-height:280px;padding:22px;border-radius:23px}.hv-contact-card__icon{width:58px;height:58px;border-radius:18px}.hv-contact-card__icon svg{width:31px}.hv-contact-card h3{font-size:22px}.hv-contact-card>a{font-size:13px}.hv-contact-card__direct-list>a strong{font-size:15px}.hv-contact-closing{grid-template-columns:1fr;margin-top:65px;padding:25px;border-radius:25px}.hv-contact-closing__icon{width:72px;height:72px;border-radius:21px}.hv-contact-closing h2{font-size:39px}.hv-contact-closing>a{grid-column:1;min-height:58px;font-size:13px}.hv-contact-label{font-size:11px}}
@media(prefers-reduced-motion:reduce){.hv-contact-page *{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.hv-contact-card{transform:none!important}}
