/* ============================================================
   TAPFLASH | CONTACT
   ============================================================ */
body { overflow-x: hidden; }
.contact-hero { position: relative; overflow: hidden; padding: 100px 0 165px; background: #f8fafc; }.contact-grid-pattern { position: absolute; inset: 0; opacity: .4; background-image: radial-gradient(rgba(37,99,235,.19) .65px,transparent .65px); background-size: 18px 18px; mask-image: linear-gradient(90deg,black,transparent 72%); }.contact-orb { position: absolute; border-radius: 50%; filter: blur(75px); pointer-events: none; }.contact-orb--blue { width: 440px; height: 440px; top: -290px; right: 8%; background: rgba(37,99,235,.13); }.contact-orb--green { width: 300px; height: 300px; left: -120px; bottom: -170px; background: rgba(34,197,94,.13); }.contact-hero-copy { position: relative; z-index: 1; }.contact-hero h1 { max-width: 900px; color: var(--navy); font-size: clamp(44px,5.5vw,70px); line-height: 1.03; }.contact-hero h1 span { position: relative; color: var(--blue); }.contact-hero h1 span::after { content: ''; position: absolute; left: 0; bottom: -4px; width: 100%; height: 4px; border-radius: 5px; background: var(--green); transform: scaleX(0); transform-origin: left; animation: underlineIn .8s .7s forwards; }.contact-hero-copy > p { max-width: 700px; margin-top: 24px; color: var(--text); font-size: 17px; line-height: 1.75; }.contact-trust-row { display: flex; flex-wrap: wrap; gap: 24px; margin-top: 35px; }.contact-trust-row span { display: flex; align-items: center; gap: 7px; color: var(--text); font-size: 10px; font-weight: 600; }.contact-trust-row svg { width: 14px; color: var(--green); }

/* Main form and sidebar */
.contact-main-section { position: relative; z-index: 2; margin-top: -85px; padding-bottom: 116px; }.contact-layout { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(330px,.65fr); gap: 22px; align-items: start; }.contact-form-card { padding: 38px; border: 1px solid var(--border); border-radius: 28px; background: white; box-shadow: 0 30px 70px rgba(15,23,42,.09); }.form-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding-bottom: 28px; border-bottom: 1px solid var(--border); }.section-kicker { display: inline-block; margin-bottom: 10px; color: var(--blue); font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }.form-heading h2 { font-size: 28px; }.form-step { padding: 6px 9px; border-radius: 99px; color: var(--text); background: #f8fafc; font-size: 8px; font-weight: 700; }
.contact-form { padding-top: 27px; }.inquiry-fieldset { min-width: 0; margin: 0 0 27px; padding: 0; border: 0; }.inquiry-fieldset legend { margin-bottom: 11px; color: var(--navy); font-size: 10px; font-weight: 700; }.inquiry-options { display: grid; grid-template-columns: repeat(3,1fr); gap: 9px; }.inquiry-options label { cursor: pointer; }.inquiry-options input { position: absolute; opacity: 0; pointer-events: none; }.inquiry-options label > span { display: flex; flex-direction: column; min-height: 94px; padding: 13px; border: 1px solid var(--border); border-radius: 13px; background: #f8fafc; transition: border-color .18s ease,background .18s ease,box-shadow .18s ease; }.inquiry-options label > span > svg { width: 17px; margin-bottom: 11px; color: var(--blue); }.inquiry-options strong,.inquiry-options small { display: block; }.inquiry-options strong { font-size: 9px; }.inquiry-options small { margin-top: 3px; color: var(--text); font-size: 7px; }.inquiry-options input:checked + span { border-color: var(--blue); background: rgba(37,99,235,.055); box-shadow: 0 0 0 2px rgba(37,99,235,.08); }.inquiry-options input:focus-visible + span { outline: 2px solid var(--blue); outline-offset: 2px; }
.form-fields-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 17px; }.field-group { margin-bottom: 18px; }.field-group label { display: block; margin-bottom: 7px; color: var(--navy); font-size: 9px; font-weight: 700; }.field-group label span { color: var(--blue); }.input-wrap { position: relative; }.input-wrap > svg:first-child { position: absolute; z-index: 1; top: 50%; left: 13px; width: 14px; color: #94a3b8; transform: translateY(-50%); pointer-events: none; }.input-wrap input,.input-wrap select,.input-wrap textarea { width: 100%; border: 1px solid var(--border); border-radius: 11px; color: var(--navy); background: #f8fafc; font: 400 11px 'Inter'; transition: border-color .18s ease,box-shadow .18s ease,background .18s ease; }.input-wrap input,.input-wrap select { height: 45px; padding: 0 13px 0 38px; }.input-wrap textarea { min-height: 125px; padding: 13px 13px 13px 38px; resize: vertical; line-height: 1.6; }.input-wrap input::placeholder,.input-wrap textarea::placeholder { color: #94a3b8; }.input-wrap input:focus,.input-wrap select:focus,.input-wrap textarea:focus { outline: 0; border-color: var(--blue); background: white; box-shadow: 0 0 0 3px rgba(37,99,235,.09); }.select-wrap select { appearance: none; padding-right: 35px; }.select-wrap > svg:last-child { position: absolute; top: 50%; right: 12px; width: 13px; color: #94a3b8; transform: translateY(-50%); pointer-events: none; }.textarea-wrap > svg:first-child { top: 17px; transform: none; }.field-hint { display: flex; justify-content: space-between; gap: 10px; margin-top: 6px; color: #94a3b8; font-size: 7px; }.submit-button { display: flex; align-items: center; justify-content: space-between; width: 100%; margin-top: 4px; padding: 14px 17px; border: 0; border-radius: 11px; color: white; background: linear-gradient(90deg,var(--blue),#1d4ed8); font: 700 11px 'Inter'; cursor: pointer; box-shadow: 0 12px 28px rgba(37,99,235,.22); transition: transform .18s ease,box-shadow .18s ease; }.submit-button:hover { transform: translateY(-1px); box-shadow: 0 16px 32px rgba(37,99,235,.3); }.submit-button svg { width: 15px; }.form-privacy { display: flex; align-items: center; justify-content: center; gap: 5px; margin-top: 11px; color: #94a3b8; font-size: 7px; }.form-privacy svg { width: 10px; }
.contact-sidebar { display: grid; gap: 16px; }.direct-contact-card,.regional-card { overflow: hidden; border-radius: 23px; }.direct-contact-card { padding: 28px; color: white; background: var(--navy); }.sidebar-kicker { color: var(--green); font-size: 8px; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; }.direct-contact-card h2 { margin-top: 9px; color: white; font-size: 24px; }.direct-contact-card > p { margin-top: 8px; color: #94a3b8; font-size: 10px; line-height: 1.6; }.contact-methods { display: grid; gap: 8px; margin-top: 24px; }.contact-methods a { display: grid; grid-template-columns: 35px 1fr 14px; gap: 10px; align-items: center; padding: 11px; border: 1px solid rgba(255,255,255,.08); border-radius: 12px; background: rgba(255,255,255,.035); transition: background .18s ease,border-color .18s ease; }.contact-methods a:hover { border-color: rgba(96,165,250,.3); background: rgba(255,255,255,.06); }.method-icon { display: grid; place-items: center; width: 35px; height: 35px; border-radius: 10px; color: #60a5fa; background: rgba(37,99,235,.12); }.method-icon--green { color: var(--green); background: rgba(34,197,94,.1); }.method-icon svg,.contact-methods > a > svg { width: 14px; }.contact-methods > a > svg { color: #64748b; }.contact-methods small,.contact-methods strong,.contact-methods em { display: block; }.contact-methods small { color: #64748b; font-size: 6px; text-transform: uppercase; letter-spacing: .05em; }.contact-methods strong { margin-top: 2px; font-size: 8px; }.contact-methods em { margin-top: 2px; color: #94a3b8; font-size: 6px; font-style: normal; }.support-hours { display: flex; gap: 9px; margin-top: 19px; padding-top: 17px; border-top: 1px solid rgba(255,255,255,.08); }.support-hours > svg { width: 14px; color: var(--green); }.support-hours span,.support-hours strong { display: block; }.support-hours span { color: #64748b; font-size: 6px; text-transform: uppercase; }.support-hours strong { margin-top: 3px; font-size: 8px; }
.regional-card { border: 1px solid var(--border); background: white; }.regional-card-top { display: flex; justify-content: space-between; align-items: center; padding: 14px 16px; }.regional-card-top > span:first-child { display: flex; align-items: center; gap: 6px; color: var(--navy); font-size: 8px; font-weight: 700; }.regional-card-top svg { width: 13px; color: var(--blue); }.regional-live { display: flex; align-items: center; gap: 4px; color: #16a34a; font-size: 6px; }.regional-live i { width: 5px; height: 5px; border-radius: 50%; background: var(--green); }.contact-map { position: relative; height: 180px; overflow: hidden; background: #101d32; }.contact-map-grid { position: absolute; inset: -20%; background-image: linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px); background-size: 25px 25px; transform: rotate(-5deg); }.contact-map > svg { position: absolute; inset: 0; width: 100%; height: 100%; fill: none; stroke: rgba(96,165,250,.4); stroke-width: 1.4; stroke-dasharray: 4 5; }.contact-city { position: absolute; display: flex; align-items: center; gap: 5px; color: white; font-size: 6px; font-weight: 600; }.contact-city i { width: 7px; height: 7px; border: 2px solid #dbeafe; border-radius: 50%; background: var(--blue); box-shadow: 0 0 0 5px rgba(37,99,235,.14); }.contact-city--one { left: 14%; top: 58%; }.contact-city--two { right: 9%; top: 27%; }.contact-city--three { right: 23%; bottom: 20%; }.contact-city--one i { background: var(--green); box-shadow: 0 0 0 5px rgba(34,197,94,.14); }.regional-bottom { display: flex; justify-content: space-between; padding: 13px 16px; font-size: 8px; }.regional-bottom span { color: var(--text); }

/* Next steps */
.next-steps-section { padding: 110px 0; background: #f8fafc; }.next-steps-heading { max-width: 680px; margin-bottom: 48px; }.next-steps-heading h2,.faq-heading h2 { color: var(--navy); font-size: clamp(31px,4vw,46px); line-height: 1.12; }.next-steps-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 15px; }.next-steps-grid article { position: relative; min-height: 235px; padding: 25px; border: 1px solid var(--border); border-radius: 19px; background: white; }.next-number { position: absolute; top: 23px; right: 24px; color: #e2e8f0; font: 800 25px 'Manrope'; }.next-icon { display: grid; place-items: center; width: 42px; height: 42px; margin-bottom: 34px; border-radius: 12px; color: var(--blue); background: rgba(37,99,235,.09); }.next-icon svg { width: 18px; }.next-steps-grid h3 { font-size: 15px; }.next-steps-grid p { margin-top: 9px; color: var(--text); font-size: 10px; line-height: 1.7; }
.next-steps-grid article{overflow:hidden;transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}.next-steps-grid article::after{content:'';position:absolute;left:-45%;top:0;width:28%;height:100%;background:linear-gradient(90deg,transparent,rgba(37,99,235,.055),transparent);transform:skewX(-15deg);animation:nextCardScan 8s ease-in-out infinite}.next-steps-grid article:nth-child(2)::after{animation-delay:-2.6s}.next-steps-grid article:nth-child(3)::after{animation-delay:-5.2s}.next-steps-grid.revealed .next-icon{animation:nextIconPulse 3.6s ease-in-out infinite}.next-steps-grid.revealed article:nth-child(2) .next-icon{animation-delay:-1.2s}.next-steps-grid.revealed article:nth-child(3) .next-icon{animation-delay:-2.4s}@media(hover:hover){.next-steps-grid article:hover{transform:translateY(-5px);border-color:rgba(37,99,235,.22);box-shadow:0 20px 42px rgba(15,23,42,.08)}}

/* FAQ */
.contact-faq-section { padding: 110px 0; color: white; background: #0b1324; }.faq-layout { display: grid; grid-template-columns: .65fr 1.35fr; gap: 85px; }.section-kicker--green { color: var(--green); }.faq-heading h2 { color: white; }.faq-heading p { margin-top: 15px; color: #94a3b8; font-size: 12px; line-height: 1.7; }.faq-list { border-top: 1px solid rgba(255,255,255,.1); }.faq-list details { border-bottom: 1px solid rgba(255,255,255,.1); }.faq-list summary { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 21px 0; color: white; font: 700 13px 'Manrope'; cursor: pointer; list-style: none; }.faq-list summary::-webkit-details-marker { display: none; }.faq-list summary svg { width: 16px; color: var(--green); transition: transform .2s ease; }.faq-list details[open] summary svg { transform: rotate(45deg); }.faq-list details p { max-width: 650px; padding: 0 35px 20px 0; color: #94a3b8; font-size: 10px; line-height: 1.7; }

/* Animated support layer behind the FAQ content. */
.contact-faq-section{position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(circle at 18% 45%,rgba(37,99,235,.1),transparent 34%),radial-gradient(circle at 86% 25%,rgba(34,197,94,.07),transparent 30%),#0b1324}.contact-faq-section>.container{position:relative;z-index:2}
.faq-motion{position:absolute;z-index:0;inset:0;pointer-events:none;opacity:.58}.faq-motion::before{content:'';position:absolute;inset:0;background-image:radial-gradient(rgba(96,165,250,.16) 1px,transparent 1px);background-size:28px 28px;mask-image:linear-gradient(90deg,black,transparent 38%,transparent 62%,black);animation:faqGridDrift 18s linear infinite}.faq-motion::after{content:'';position:absolute;left:42%;top:15%;width:330px;height:330px;border:1px solid rgba(37,99,235,.1);border-radius:50%;box-shadow:0 0 0 70px rgba(37,99,235,.025),0 0 0 140px rgba(34,197,94,.018);animation:faqOrbitBreathe 7s ease-in-out infinite}
.faq-motion svg{position:absolute;inset:0;width:100%;height:100%}.faq-motion path{fill:none;stroke:rgba(96,165,250,.18);stroke-width:1.2;stroke-linecap:round;stroke-dasharray:7 13;animation:faqRouteFlow 10s linear infinite}.faq-motion path+path{stroke:rgba(34,197,94,.16);animation-direction:reverse;animation-duration:13s}
.faq-question{position:absolute;display:grid;place-items:center;width:46px;height:46px;border:1px solid rgba(96,165,250,.22);border-radius:50% 50% 50% 12px;color:rgba(96,165,250,.55);background:rgba(15,29,50,.48);font:800 20px Manrope,sans-serif;box-shadow:0 13px 35px rgba(0,0,0,.14);animation:faqQuestionFloat 7s ease-in-out infinite}.faq-question--one{left:5%;top:18%}.faq-question--two{left:35%;bottom:9%;scale:.68;animation-delay:-2s}.faq-question--three{right:8%;top:12%;scale:.82;animation-delay:-4s}.faq-question--four{right:29%;bottom:7%;scale:.55;animation-delay:-5.5s}
.faq-chat{position:absolute;left:47%;top:12%;display:flex;align-items:center;justify-content:center;gap:5px;width:72px;height:44px;border:1px solid rgba(34,197,94,.2);border-radius:17px 17px 5px;background:rgba(15,29,50,.5);animation:faqQuestionFloat 8s -3s ease-in-out infinite}.faq-chat i{width:6px;height:6px;border-radius:50%;background:#22c55e;animation:faqTyping 1.35s ease-in-out infinite}.faq-chat i:nth-child(2){animation-delay:.18s}.faq-chat i:nth-child(3){animation-delay:.36s}
.faq-list details{position:relative;transition:background .3s ease,padding .3s ease,border-color .3s ease}.faq-list details::before{content:'';position:absolute;left:0;top:50%;width:3px;height:0;border-radius:5px;background:var(--green);translate:0 -50%;transition:height .3s ease}.faq-list details[open]{padding-inline:16px;background:rgba(255,255,255,.025);border-color:rgba(34,197,94,.2)}.faq-list details[open]::before{height:58%}.faq-list details[open] p{animation:faqAnswerIn .38s cubic-bezier(.2,.8,.2,1) both}.faq-list summary:hover{color:#bfdbfe}.faq-list summary svg{transition:transform .3s ease,color .3s ease}.faq-list details[open] summary svg{color:#4ade80;filter:drop-shadow(0 0 6px rgba(34,197,94,.35))}

/* Reveal and responsive */
[data-reveal] { opacity: 0; transform: translateY(22px); transition: opacity .65s cubic-bezier(.2,.8,.2,1),transform .65s cubic-bezier(.2,.8,.2,1); }[data-reveal].revealed { opacity: 1; transform: none; }[data-reveal-group] > * { opacity: 0; transform: translateY(18px); transition: opacity .55s cubic-bezier(.2,.8,.2,1),transform .55s cubic-bezier(.2,.8,.2,1); }[data-reveal-group].revealed > * { opacity: 1; transform: none; }[data-reveal-group].revealed > *:nth-child(2) { transition-delay: .08s; }[data-reveal-group].revealed > *:nth-child(3) { transition-delay: .16s; }
.contact-grid-pattern{animation:contactGridDrift 20s linear infinite}.contact-orb{animation:contactOrbDrift 9s ease-in-out infinite}.contact-orb--green{animation-delay:-4.5s}
@keyframes underlineIn { to { transform: scaleX(1); } }
@keyframes contactGridDrift{to{background-position:18px 18px}}
@keyframes contactOrbDrift{0%,100%{translate:0 0;scale:.92}50%{translate:25px -15px;scale:1.08}}
@keyframes faqGridDrift{to{background-position:28px 28px}}
@keyframes faqOrbitBreathe{0%,100%{scale:.9;opacity:.35}50%{scale:1.08;opacity:.8}}
@keyframes faqRouteFlow{to{stroke-dashoffset:-220}}
@keyframes faqQuestionFloat{0%,100%{translate:0 0;rotate:-3deg}50%{translate:9px -14px;rotate:3deg}}
@keyframes faqTyping{0%,60%,100%{scale:.6;opacity:.3}30%{scale:1.2;opacity:1}}
@keyframes faqAnswerIn{from{opacity:0;translate:0 -7px}to{opacity:1;translate:0 0}}
@keyframes nextCardScan{0%,30%{translate:0 0;opacity:0}45%{opacity:1}68%,100%{translate:620% 0;opacity:0}}
@keyframes nextIconPulse{0%,100%{scale:.95;box-shadow:0 0 0 0 rgba(37,99,235,.12)}50%{scale:1.05;box-shadow:0 0 0 8px rgba(37,99,235,0)}}
@media (max-width: 980px) { .contact-layout { grid-template-columns: 1fr; }.contact-sidebar { grid-template-columns: 1fr 1fr; }.faq-layout { gap: 45px; } }
@media (max-width: 760px) { .contact-hero { padding: 82px 0 145px; }.contact-form-card { padding: 28px; }.form-fields-grid { grid-template-columns: 1fr; gap: 0; }.contact-sidebar { grid-template-columns: 1fr; }.next-steps-section,.contact-faq-section { padding: 84px 0; }.next-steps-grid { grid-template-columns: 1fr; }.faq-layout { grid-template-columns: 1fr; gap: 35px; } }
@media (max-width: 560px) { .contact-hero h1 { font-size: 39px; }.contact-hero-copy > p { font-size: 15px; }.contact-trust-row { display: grid; gap: 10px; }.contact-form-card { padding: 23px 18px; border-radius: 22px; }.inquiry-options { grid-template-columns: 1fr; }.inquiry-options label > span { min-height: 76px; }.field-hint { display: block; }.field-hint span { display: block; margin-top: 3px; }.next-steps-grid article { min-height: 205px; } }
@media (prefers-reduced-motion: reduce) { *,*::before,*::after { animation-duration: .01ms !important;animation-iteration-count: 1 !important;transition-duration: .01ms !important; }[data-reveal],[data-reveal-group] > * { opacity: 1 !important;transform: none !important; } }
