/* Contact: illuminated workshop portrait, direct actions and a focused inquiry. */
.contact-main{background:#091719;color:#f2fffd}
.contact-main svg{fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;width:24px;height:24px;flex:none}
.contact-main a,.contact-main button{-webkit-tap-highlight-color:transparent}
.contact-main a:focus-visible,.contact-main button:focus-visible{outline:2px solid #b3fff3;outline-offset:6px}
.contact-page .site-header a[aria-current="page"]{color:#affcf0;text-decoration:underline;text-underline-offset:8px;text-decoration-thickness:1px}
.contact-main .eyebrow{font-size:.75rem;letter-spacing:.13em;color:#add6d2}
.contact-hero{display:grid;grid-template-columns:1.15fr 1fr;align-items:center;gap:7%;padding-top:52px;padding-bottom:88px;position:relative}
.contact-hero-copy{position:relative;z-index:2;min-width:0}
.contact-hero .breadcrumbs{margin-bottom:48px}
.contact-eyebrow{display:flex;gap:14px;align-items:center;margin:0 0 24px}
.contact-spark{display:inline-block;flex:none;width:8px;height:8px;border-radius:50%;background:#a0f9e7;box-shadow:0 0 0 5px #a0f9e711,0 0 22px #a0f9e750}
.contact-hero h1{font-size:clamp(3rem,5.45vw,5.25rem);line-height:1.13;letter-spacing:-.045em;margin:0;overflow-wrap:break-word}
.contact-hero h1 span,.contact-hero h1 em{display:block}
.contact-hero h1 em{font-style:normal;color:#9dece3;background:linear-gradient(100deg,#e0fff2 3%,#8fe3de 58%,#76a9b6);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin-top:.16em;padding:0 0 .12em}
.contact-lead{font-size:1.06rem;line-height:1.85;color:#b7cfcc;max-width:470px;margin:27px 0 30px}
.contact-hero-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.contact-primary{display:inline-flex;align-items:center;justify-content:center;gap:13px;background:#b7f7e9;color:#092521;border:1px solid #b7f7e9;min-height:56px;box-shadow:0 6px 35px #83e7d714}
.contact-primary>svg:last-child{width:19px;transition:transform .22s}
.contact-primary:hover>svg:last-child{transform:translateX(3px)}
.contact-call-button{display:inline-flex;justify-content:center;align-items:center;gap:10px;border:1px solid #93c3be44;padding:14px 18px;min-height:56px;border-radius:4px;font-size:1rem;color:#e0f5f1;transition:border-color .2s,background .2s}
.contact-call-button:hover{border-color:#b7f7e9;background:#b7f7e911}
.contact-appointment{font-size:.82rem;color:#9ab9b5;line-height:1.6;margin-top:17px}
.contact-visual{margin:24px 0 0;position:relative;min-width:0;isolation:isolate}
.contact-visual:before{content:"";position:absolute;inset:-15%;z-index:-1;background:radial-gradient(ellipse at 55% 55%,#49d6d52b,transparent 65%);animation:contact-aura 8s ease-in-out infinite alternate}
.contact-visual-frame{height:540px;border:1px solid #9be6dd59;position:relative;overflow:hidden;border-radius:130px 8px 8px 8px;background:#143b3c;box-shadow:0 40px 75px #0004}
.contact-visual-frame picture,.contact-visual-frame img{display:block;width:100%;height:100%}
.contact-visual-frame img{object-fit:cover;object-position:43% 48%;filter:sepia(.3) hue-rotate(116deg) saturate(.9);opacity:.9}
.contact-visual-frame:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#06202405 45%,#071e20ed 100%);pointer-events:none}
.contact-photo-index{position:absolute;top:26px;right:22px;font:400 .65rem var(--mono);letter-spacing:.15em;color:#e0fffb;background:#092523b8;padding:9px 11px;z-index:1}
.contact-visual figcaption{position:absolute;bottom:31px;left:30px;right:24px;z-index:1;font-size:1.15rem;letter-spacing:-.02em;display:flex;gap:16px;align-items:center;color:#effffc}
.contact-photo-rule{width:30px;height:1px;flex:none;background:#affff1;box-shadow:0 0 10px #9ffff0}
.contact-photo-tag{position:absolute;left:-26px;bottom:95px;z-index:2;display:flex;align-items:center;gap:15px;padding:15px 19px;background:#0c2c2d;border:1px solid #97dcd570;box-shadow:0 10px 35px #0004;font-size:.85rem}
.contact-orbit{position:absolute;inset:-18px 24px 22px -20px;border:1px solid #76d1c52b;border-radius:145px 14px 14px 14px;z-index:-1}
.contact-details-rail{display:grid;grid-template-columns:1.1fr 1fr .8fr;border-top:1px solid #6bada34a;border-bottom:1px solid #6bada34a;background:linear-gradient(105deg,#123433b0,#10252660);position:relative}
.contact-details-rail>a{display:flex;gap:17px;align-items:center;min-width:0;padding:28px 25px;color:#d9f1eb;transition:background .2s}
.contact-details-rail>a:hover{background:#a4e8dc0c}
.contact-details-rail>a+a{border-left:1px solid #6bada333}
.contact-details-rail>a>span:not(.contact-rail-icon){display:flex;flex-direction:column;gap:4px;min-width:0}
.contact-details-rail small{font:400 .64rem var(--mono);letter-spacing:.09em;color:#a1c5bf;line-height:1.6}
.contact-details-rail strong{font-size:1.04rem;font-weight:600;line-height:1.4}
.contact-details-rail a>span>span{font-size:.8rem;color:#a6c5bf;line-height:1.5}
.contact-rail-icon{color:#adf4e6;display:flex}
.contact-details-rail>a>svg{width:18px;margin-left:auto;color:#a5ded1}
.contact-inquiry{display:grid;grid-template-columns:.9fr 1.1fr;gap:9%;padding-top:112px;padding-bottom:115px;align-items:start;scroll-margin-top:100px}
.contact-inquiry-intro{padding-top:19px;min-width:0}
.contact-inquiry h2,.contact-visit h2{font-size:clamp(2.7rem,4.35vw,4.2rem);line-height:1.08;margin:21px 0 23px}
.contact-inquiry-intro>p:not(.eyebrow){font-size:1rem;line-height:1.85;color:#adc9c3;max-width:440px}
.contact-inquiry-photo{margin:34px 0 25px;border:1px solid #82c3b63f;border-radius:4px;overflow:hidden;background:#102c2a}
.contact-inquiry-photo picture,.contact-inquiry-photo img{display:block;width:100%;height:auto}
.contact-inquiry-photo img{aspect-ratio:1.75;object-fit:cover;filter:saturate(.8)}
.contact-inquiry-photo>a{display:flex;align-items:center;justify-content:space-between;padding:16px 21px;font-size:.875rem;color:#d4f7ef;transition:background .2s}
.contact-inquiry-photo>a:hover{background:#a2e5d511}
.contact-inquiry-photo svg{width:18px}
.contact-inquiry-note{display:flex;gap:16px;align-items:start;font-size:.875rem!important}
.contact-inquiry-note>svg{width:22px;height:22px;margin-top:.25em;color:#b7f7e9;stroke-width:1.5}
.contact-form-panel{border:1px solid #81c0b757;border-top:2px solid #b1f3e3;border-radius:6px;background:linear-gradient(155deg,#163936,#0d2424 60%);box-shadow:0 20px 65px #0002;min-width:0}
.contact-form-heading{display:flex;align-items:center;gap:14px;padding:25px 30px;border-bottom:1px solid #8ac0b425;font-size:1.125rem;font-weight:600}
.contact-form-panel .request-form{background:transparent;border:0;border-radius:0;padding:28px 30px 30px;box-shadow:none}
.contact-form-panel .field input,.contact-form-panel .field select,.contact-form-panel .field textarea{background:#081c1bd9;border-color:#8cc6bd52;border-radius:4px;color:#f2fffd}
.contact-form-panel .field input:focus,.contact-form-panel .field select:focus,.contact-form-panel .field textarea:focus{outline:2px solid #aeefd8;outline-offset:2px;border-color:#a2e7d2}
.contact-form-panel .request-submit{margin-top:8px;background:#b7f7e9;color:#092521}
.contact-form-panel .field-help,.contact-form-panel .form-note,.contact-form-panel .request-scope{color:#adc9c3}
.contact-form-panel .request-scope{font-size:.78rem;margin-top:12px;line-height:1.7}
.contact-visit{border-top:1px solid #609d953a;border-bottom:1px solid #609d953a;background:linear-gradient(105deg,#0c292c,#102622);scroll-margin-top:90px;position:relative}
.contact-visit-grid{display:grid;grid-template-columns:1fr 1fr;gap:9%;align-items:center;padding-top:72px;padding-bottom:72px}
/* Site-specific route drawing with a separate photographic reference. */
.contact-route-map{min-width:0;width:100%;max-width:520px;justify-self:center}
.contact-location-art{position:relative;min-width:0;isolation:isolate}
.contact-location-sketch{display:block;width:100%;height:auto;max-height:545px;object-fit:contain;filter:none}
.contact-route-preview{display:flex;align-items:center;gap:20px;width:100%;margin:14px 0 0;padding:12px 18px 12px 12px;border:1px solid #6bafc83d;border-radius:12px;background:linear-gradient(110deg,#13333a,#0b262a66);color:#ddf9f5;text-align:left;font:inherit;cursor:pointer;transition:border-color .2s,background .2s}
.contact-route-preview:hover{border-color:#9edbd39c;background:#143438}
.contact-route-image{position:relative;display:block;flex:0 0 72px;overflow:hidden;border-radius:6px;isolation:isolate;background:#153847}
.contact-route-image img{display:block;width:100%;height:auto;aspect-ratio:1122/1402;object-fit:contain;filter:saturate(.68) contrast(1.04)}
.contact-route-image:after,.contact-map-full:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(155deg,#117cb74a,#087d9830 58%,#14507740);mix-blend-mode:color}
.contact-route-caption{display:flex;flex-direction:column;gap:7px;min-width:0;flex:1}
.contact-route-caption strong{font-size:1rem;font-weight:600;line-height:1.35}
.contact-route-caption>span{font-size:.8rem;line-height:1.5;color:#a3d0cc}
.contact-route-preview>svg{width:19px;height:19px;color:#a8eadd}
.contact-map-dialog{padding:14px;border:1px solid #8bd8cd66;border-radius:12px;background:#0a1e22;color:#e2faf5;width:min(760px,calc(100vw - 24px));max-height:calc(100dvh - 24px);box-shadow:0 24px 90px #0009;overflow:auto;overscroll-behavior:contain}
.contact-map-dialog::backdrop{background:#020d10db;backdrop-filter:blur(7px)}
.contact-map-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 0 12px}
.contact-map-toolbar h3{font-size:1rem;letter-spacing:0}
.contact-map-toolbar form{margin:0}
.contact-map-close{display:grid;place-items:center;width:44px;height:44px;border:1px solid #91cac24d;border-radius:50%;background:#183937;color:#d2fff4;cursor:pointer}
.contact-map-close:hover{background:#254c48}
.contact-map-close:focus-visible{outline:2px solid #b3fff3;outline-offset:2px}
.contact-map-full{position:relative;isolation:isolate;overflow:hidden;border-radius:6px;background:#102a31}
.contact-map-full img{display:block;width:auto;max-width:100%;height:auto;max-height:calc(100dvh - 116px);object-fit:contain;margin:auto;filter:saturate(.8)}
body.contact-map-open{overflow:hidden}
.contact-map-dialog.contact-map-fallback[open]{position:fixed;inset:0;margin:auto;z-index:1000;height:fit-content;box-shadow:0 0 0 100vmax #020d10db}

.contact-visit-copy{min-width:0}
.contact-visit-copy address{font-size:1.22rem;font-style:normal;line-height:1.6;color:#e3f9ef;margin:0 0 19px}
.contact-visit-copy>p:not(.eyebrow){color:#abc9be;font-size:.95rem;line-height:1.8;max-width:410px}
.contact-visit-copy .contact-appointment{font-size:.84rem!important}
.contact-visit-actions{display:flex;gap:22px;align-items:center;flex-wrap:wrap;margin-top:27px}
.contact-copy{font:inherit;font-size:.85rem;color:#caf2e4;background:none;border:0;border-bottom:1px solid #80bda887;padding:10px 0;cursor:pointer}
.contact-copy:hover{color:white;border-color:white}
.contact-copy-status{font-size:.8rem!important;min-height:1.8em;margin:10px 0 0!important}
.contact-social-strip{display:flex;align-items:center;justify-content:space-between;gap:35px;padding-top:58px;padding-bottom:62px}
.contact-social-strip h2{font-size:clamp(1.5rem,2.5vw,2.5rem);margin-top:10px}
.contact-social-links{display:flex;gap:12px;flex:none}
.contact-social-links .hero-social-link{width:62px;height:62px;border:1px solid #92ccbb55;border-radius:50%;color:#b4e6d6;background:#112b27;transition:transform .2s,background .2s}
.contact-social-links .hero-social-link:hover{transform:translateY(-3px);background:#20483f}
.contact-social-links .social-logo{fill:currentColor;stroke:none;width:24px;height:24px}
@keyframes contact-aura{from{opacity:.65}to{opacity:1}}

@media(min-width:1500px){.contact-hero{padding-top:68px;padding-bottom:100px}.contact-visual-frame{height:585px}}
@media(max-width:1100px){.contact-hero{gap:5%}.contact-hero h1{font-size:clamp(3.1rem,5.1vw,4.6rem)}.contact-visual-frame{height:500px;border-top-left-radius:100px}.contact-hero-actions{gap:10px}.contact-hero-actions .button,.contact-call-button{font-size:.9rem;padding:13px 15px}.contact-details-rail{grid-template-columns:1fr 1fr}.contact-details-rail .contact-rail-inquiry{grid-column:1/-1;border-left:0;border-top:1px solid #6bada333;padding:19px 25px}.contact-rail-inquiry>span{flex-direction:row!important;align-items:center;gap:22px!important}.contact-inquiry{gap:5%}.contact-form-panel .request-form{padding:25px 22px}.contact-form-heading{padding:23px 22px}.contact-visit-grid{gap:5%}}
@media(max-width:800px){.contact-hero{grid-template-columns:1fr;gap:40px;padding-top:26px;padding-bottom:44px}.contact-hero .breadcrumbs{margin-bottom:30px}.contact-hero h1{font-size:clamp(2.9rem,7.6vw,4.9rem);max-width:680px}.contact-hero h1 em{margin-top:.16em}.contact-lead{max-width:570px;margin:21px 0 23px}.contact-hero-actions .button,.contact-call-button{font-size:1rem}.contact-visual{margin:0 0 0 13px}.contact-visual-frame{height:350px;border-top-left-radius:88px}.contact-visual-frame img{object-position:50% 53%}.contact-photo-tag{left:-13px;bottom:90px}.contact-visual figcaption{bottom:26px}.contact-details-rail>a{padding:24px 19px;gap:13px}.contact-rail-icon{display:none}.contact-details-rail strong{font-size:.98rem}.contact-details-rail>a>svg{width:16px}.contact-inquiry{grid-template-columns:1fr;gap:32px;padding-top:64px;padding-bottom:64px;scroll-margin-top:85px}.contact-inquiry-intro{padding-top:0}.contact-inquiry h2,.contact-visit h2{font-size:clamp(2.5rem,6.5vw,3.5rem);margin:15px 0 20px}.contact-inquiry h2 br{display:none}.contact-inquiry h2 br:after{content:" "}.contact-inquiry-intro>p:not(.eyebrow){max-width:600px}.contact-inquiry-photo{display:none}.contact-inquiry-note{margin-top:18px}.contact-form-panel .request-form{padding:26px}.contact-form-heading{padding:23px 26px}.contact-visit-grid{grid-template-columns:1fr;gap:30px;padding-top:42px;padding-bottom:42px}.contact-visit-copy{grid-row:1}.contact-location-sketch{max-height:490px}.contact-route-map{max-width:440px}.contact-route-preview{gap:16px;margin-top:8px}.contact-route-image{flex-basis:64px}.contact-social-strip{padding-top:42px;padding-bottom:45px;flex-wrap:wrap;gap:23px}.contact-social-links .hero-social-link{width:54px;height:54px}}
@media(max-width:480px){.contact-hero h1{font-size:clamp(2.25rem,9.8vw,3.2rem);letter-spacing:-.04em}.contact-lead{font-size:1rem;line-height:1.8}.contact-hero-actions{align-items:stretch;display:grid;grid-template-columns:1fr}.contact-hero-actions .button,.contact-call-button{min-height:54px}.contact-hero-actions .button{justify-content:center}.contact-visual-frame{height:300px;border-top-left-radius:74px}.contact-photo-index{font-size:.58rem;top:19px;right:16px}.contact-visual figcaption{left:20px;font-size:1.02rem;gap:11px}.contact-photo-tag{font-size:.8rem;padding:13px 16px}.contact-details-rail{grid-template-columns:1fr}.contact-details-rail>a+a{border-left:0;border-top:1px solid #6bada333}.contact-details-rail>a{padding:23px 20px}.contact-rail-icon{display:flex}.contact-rail-inquiry>span{align-items:flex-start;flex-direction:column!important;gap:5px!important}.contact-inquiry h2{font-size:2.55rem}.contact-form-heading{padding:22px 20px}.contact-form-panel .request-form{padding:23px 18px}.contact-form-panel .field-row{grid-template-columns:1fr;gap:0}.contact-form-panel .field{margin-bottom:18px}.contact-main .contact-visit-actions{gap:16px}.contact-visit-copy address{font-size:1.1rem}.contact-social-strip h2{font-size:1.8rem}.contact-social-links{gap:12px}}
@media(prefers-reduced-motion:reduce){.contact-main *,.contact-main *:before,.contact-main *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(forced-colors:active){.contact-hero h1 em{-webkit-text-fill-color:CanvasText;background:none}.contact-spark{background:Highlight}.contact-primary,.contact-call-button{border:1px solid ButtonText}.contact-visual:before{display:none}}
