
/* motion tokens (transitions-polish scale) */
:root{--duration-stagger:40ms;--duration-micro:80ms;--duration-quick:150ms;--duration-fast:250ms;--duration-medium:350ms;--duration-slow:400ms;--duration-very-slow:500ms;--ease-smooth-out:cubic-bezier(0.22,1,0.36,1)}
:root:root{--gen-line:#9aa3c7;--gen-strong:#132EA1;--gen-ink:rgba(19,46,161,.26);--gen-surface:#fff;--gen-text:#0b0d16;--gen-muted:#6b7290}
.sr{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* ================= CONTACT ================= */
.ct-hero .hero-inner{padding-block:calc(var(--hdr-h) + clamp(56px,8vw,112px)) clamp(150px,16vw,220px)}
.ct-quick{display:flex;flex-wrap:wrap;gap:10px;margin:36px 0 0;padding:0;list-style:none}
.ct-quick a{display:inline-flex;align-items:center;gap:10px;min-height:46px;padding:0 18px;border-radius:999px;color:#fff;text-decoration:none;font-weight:600;font-size:.92rem;background:rgba(5,6,9,.38);border:1px solid rgba(255,255,255,.26);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:border-color var(--duration-medium),transform var(--duration-medium) var(--ease-smooth-out)}
.ct-quick a:hover,.ct-quick a:focus-visible{transition-duration:var(--duration-fast);transform:translateY(-2px);border-color:transparent;background:linear-gradient(rgba(5,6,9,.55),rgba(5,6,9,.55)) padding-box,var(--g-bright) border-box;border:1px solid transparent}
.ct-quick svg{width:18px;height:18px}
.ct-band{padding:0 0 clamp(72px,9vw,128px)!important;z-index:5;display:flow-root}
.ct-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:48px clamp(40px,6vw,96px);align-items:start}
.ct-info{padding-top:clamp(56px,7vw,96px);min-width:0}
.ct-info .lede{margin:22px 0 36px}
.ct-cards{display:grid;gap:14px}
.ct-card{position:relative;display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:4px 18px;align-items:center;padding:20px 22px;border-radius:20px;background:var(--paper-2);border:1px solid var(--line-l);transition:border-color var(--duration-medium),box-shadow var(--duration-medium) var(--ease-smooth-out),transform var(--duration-medium) var(--ease-smooth-out)}
.ct-card:hover{transition-duration:var(--duration-fast);transform:translateY(-3px);border-color:transparent;background:linear-gradient(var(--paper-2),var(--paper-2)) padding-box,var(--g-logo) border-box;box-shadow:0 22px 44px -28px rgba(19,46,161,.45)}
.ct-card .ic{grid-row:1/3;width:52px;height:52px;border-radius:16px;display:grid;place-items:center;background:var(--g-logo);color:#fff}
.ct-card .ic svg{width:24px;height:24px}
.ct-card h3{margin:0;font:700 .7rem var(--f-label);letter-spacing:.22em;text-transform:uppercase;color:var(--muted-l)}
.ct-card a.v,.ct-card p.v{grid-column:2;margin:0;font-family:var(--f-display);font-weight:600;font-size:clamp(1rem,1.5vw,1.18rem);color:var(--on-l);text-decoration:none;overflow-wrap:anywhere;line-height:1.35}
.ct-card a.v:hover{text-decoration:underline;text-underline-offset:4px}
.ct-card p.v{font-family:var(--f-body);font-weight:600;font-size:1rem}
.ct-act{grid-column:3;grid-row:1/3;display:flex;gap:6px}
.ct-act a,.ct-act button{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line-l);background:#fff;color:var(--on-l);cursor:pointer;position:relative;transition:transform var(--duration-medium) var(--ease-smooth-out),border-color var(--duration-fast)}
.ct-act a:hover,.ct-act button:hover{transition-duration:var(--duration-fast);transform:translateY(-2px);border-color:transparent;background:linear-gradient(#fff,#fff) padding-box,var(--g-logo) border-box;border:1px solid transparent}
.ct-act svg{width:18px;height:18px}
.ct-act .tip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%,4px);padding:6px 10px;border-radius:8px;background:var(--ink);color:#fff;font:600 .74rem var(--f-body);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--duration-quick) var(--ease-smooth-out),transform var(--duration-quick) var(--ease-smooth-out)}
.ct-act .tip.on{opacity:1;transform:translate(-50%,0);transition-duration:var(--duration-fast)}
/* form card overlaps the hero */
.ct-form{position:relative;margin-top:calc(-1 * clamp(110px,12vw,170px));padding:clamp(28px,3.4vw,48px);border-radius:28px;background:#fff;border:1px solid var(--line-l);box-shadow:0 50px 90px -50px rgba(5,6,9,.55);min-width:0;isolation:isolate}
.ct-form::before{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1px;background:var(--g-logo);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.55;pointer-events:none}
.ct-form h2{font-family:var(--f-display);font-weight:400;font-size:clamp(1.7rem,2.8vw,2.4rem);letter-spacing:-.025em;line-height:1.1;margin:0 0 28px}
.fld{position:relative;display:grid;gap:8px;margin-bottom:20px}
.fld label{font:700 .72rem var(--f-label);letter-spacing:.16em;text-transform:uppercase;color:var(--on-l)}
.fld{--fld-h:54px}
.fld input,.fld textarea,.fld select{box-sizing:border-box;width:100%;border:1px solid var(--line-l);border-radius:14px;background-color:var(--paper-2);padding:14px 16px;font:500 1rem/24px var(--f-body);color:var(--on-l);transition:border-color var(--duration-fast),background var(--duration-fast),box-shadow var(--duration-fast)}
.fld input,.fld select{height:var(--fld-h);min-height:var(--fld-h)}
.fld textarea{min-height:140px;line-height:1.5;resize:vertical}
/* Selects match the text inputs exactly. Never name a select's placeholder state `.ph`: the homepage's global `.ph` is the 4:3 photo frame
   (aspect-ratio:4/3 made the Industry select 382px tall on desktop) and `.fld select` pins aspect-ratio so no global rule can stretch it. */
.fld select{-moz-appearance:none;appearance:none;-webkit-appearance:none;aspect-ratio:auto;overflow:visible;text-overflow:ellipsis;white-space:nowrap;display:block;align-self:start;margin:0;cursor:pointer;padding-right:46px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23132EA1' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;background-size:16px}
.fld select.is-ph{color:#8a91a8}
.fld select option{color:#0b0d16}
.fld-row .fld{align-content:start}
.fld-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 16px}
.fld-row.one{grid-template-columns:minmax(0,1fr)}
@media (max-width:620px){.fld-row{grid-template-columns:minmax(0,1fr)}}
.fld input::placeholder,.fld textarea::placeholder{color:#8a91a8}
.fld input:hover,.fld textarea:hover,.fld select:hover{border-color:#c7cde0}
.fld input:focus,.fld textarea:focus,.fld select:focus{outline:none;background-color:#fff;border-color:transparent;box-shadow:0 0 0 1.5px #3b58e0,0 0 0 6px rgba(8,158,243,.14)}
.fld.bad input,.fld.bad textarea,.fld.bad select{border-color:#d33a4a;background-color:#fff7f8}
.fld .hint{margin:0;font:500 .82rem/1.4 var(--f-body);color:var(--muted-l)}
.fld .err{min-height:1.1em;margin:0;font:600 .82rem var(--f-body);color:#b4202f;opacity:0;transform:translateY(-4px);transition:opacity var(--duration-quick),transform var(--duration-quick) var(--ease-smooth-out)}
.fld.bad .err{opacity:1;transform:none;transition-duration:var(--duration-fast)}
.fld .ok{position:absolute;right:14px;top:44px;pointer-events:none;width:20px;height:20px;color:#14a36a;opacity:0;transform:scale(.6);transition:opacity var(--duration-fast),transform var(--duration-fast) cubic-bezier(.34,1.36,.64,1)}
.fld.good .ok{opacity:1;transform:none}
.ct-sub{width:100%;justify-content:center;min-height:56px;margin-top:6px;position:relative}
.ct-sub[aria-busy=true],.ct-sub:disabled{pointer-events:none;opacity:.8;cursor:progress}
.ct-sub .spin{width:18px;height:18px;border-radius:50%;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;display:none;animation:spin .8s linear infinite}
.ct-sub[aria-busy=true] .spin{display:inline-block}
@keyframes spin{to{transform:rotate(360deg)}}
.ct-consent{margin:14px 0 0;font-size:.82rem;line-height:1.5;color:var(--muted-l);text-align:center}
.ct-consent a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.ct-note{margin:14px 0 0;font-size:.86rem;color:var(--muted-l);text-align:center}
.ct-note.err{color:#b4202f;font-weight:600}
.ct-done{display:grid;place-items:center;text-align:center;gap:12px;padding:40px 8px}
.ct-done[hidden]{display:none}
.ct-done .ck{width:72px;height:72px;border-radius:50%;display:grid;place-items:center;background:var(--g-logo);color:#fff}
.ct-done .ck svg{width:34px;height:34px}
.ct-done b{font-family:var(--f-display);font-weight:600;font-size:1.4rem}
.ct-done p{margin:0;color:var(--muted-l);max-width:36ch}
/* map */
.ct-map{position:relative;height:clamp(460px,62vh,640px);overflow:hidden;background:#0a0d1c;isolation:isolate}
.ct-map .poster{position:absolute;inset:-6%;background:url(../img2/map-bgc-dark.jpg) 48.4% 45.4%/cover no-repeat;transform-origin:48.4% 45.4%}
.ct-map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;opacity:0;transition:opacity var(--duration-slow) var(--ease-smooth-out);filter:grayscale(.15)}
.ct-map.live iframe{opacity:1}
.ct-map.live .pin,.ct-map.live .poster,.ct-map.live .attr{opacity:0;transition:opacity var(--duration-slow)}
.ct-map::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(5,6,9,.78),rgba(5,6,9,.15) 55%,transparent);z-index:1}
.ct-map.live::after{opacity:0}
.pin{position:absolute;left:var(--px,62%);top:50%;z-index:2;width:0;height:0}
.pin i{position:absolute;left:-60px;top:-60px;width:120px;height:120px;border-radius:50%;border:1.5px solid rgba(8,158,243,.7);animation:ring 2.4s var(--ease-smooth-out) infinite}
.pin i:nth-child(2){animation-delay:.8s}.pin i:nth-child(3){animation-delay:1.6s}
@keyframes ring{from{transform:scale(.15);opacity:1}to{transform:scale(1);opacity:0}}
.pin b{position:absolute;left:-22px;top:-52px;width:44px;height:52px;display:grid;place-items:start center}
.pin b svg{width:44px;height:52px;filter:drop-shadow(0 10px 18px rgba(8,158,243,.55))}
.ct-loc{position:absolute;z-index:3;left:max(var(--gl),calc((100% - 1272px)/2));top:50%;transform:translateY(-50%);width:min(480px,calc(100% - 2*var(--gl)));padding:clamp(24px,3vw,34px);border-radius:24px;color:#fff;background:rgba(10,14,32,.55);backdrop-filter:blur(16px) saturate(140%);-webkit-backdrop-filter:blur(16px) saturate(140%);border:1px solid rgba(255,255,255,.22)}
.ct-loc .eyebrow{color:#dfe3f2}
.ct-loc address{font-style:normal;font-family:var(--f-display);font-size:clamp(1.1rem,1.6vw,1.3rem);line-height:1.5;margin:14px 0 22px}
.ct-loc .ct-row{display:flex;flex-wrap:wrap;gap:10px}
.ct-loc .btn{color:#fff}
.ct-loc .time{display:flex;align-items:center;gap:10px;margin:0 0 18px;font:600 .86rem var(--f-body);color:#c9cee0}
.ct-loc .time i{width:8px;height:8px;border-radius:50%;background:#2fe39a;box-shadow:0 0 0 0 rgba(47,227,154,.6);animation:pulse 2.2s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 10px rgba(47,227,154,0)}100%{box-shadow:0 0 0 0 rgba(47,227,154,0)}}
.ct-map .attr{position:absolute;right:10px;bottom:8px;z-index:3;font-size:.7rem;color:rgba(255,255,255,.7)}
.ct-map .attr a{color:inherit}
.ct-map.live .ct-loc{top:auto;bottom:24px;transform:none}
@media (max-width:1000px){.ct-grid{grid-template-columns:1fr}.ct-form{order:-1}.ct-info{padding-top:0}}
@media (max-width:700px){.ct-map{height:auto;min-height:620px;display:flex;align-items:flex-end;padding:300px 0 20px}.ct-map::after{background:linear-gradient(0deg,rgba(5,6,9,.85) 30%,transparent 70%)}.ct-loc{position:relative;left:auto;top:auto;transform:none;margin:0 var(--gl)}.pin{top:150px;left:50%!important}.ct-map.live .ct-loc{bottom:auto}.ct-card{grid-template-columns:44px minmax(0,1fr);}.ct-card .ic{width:44px;height:44px}.ct-act{grid-column:2;grid-row:auto;margin-top:8px}}
@media (prefers-reduced-motion:reduce){.pin i,.ct-loc .time i{animation:none}.pin i{opacity:.5;transform:scale(.6)}}
