/* ===================== Contact page ===================== */
.ct{ padding-top:calc(var(--nav-h,72px) + clamp(40px,6vw,80px)); background:linear-gradient(180deg,#F2F8FA 0%,#fff 55%); }
.ct-w{ display:grid; gap:44px; align-items:start; }
@media (min-width:1000px){ .ct-w{ grid-template-columns:minmax(0,56fr) minmax(0,44fr); gap:0; } .ct-book{ padding-right:56px; border-right:1px solid var(--line); } .ct-direct{ padding-left:56px; } }
.ct-h{ margin:0; font-size:clamp(2.1rem,4vw,3.2rem); font-weight:800; letter-spacing:-.035em; line-height:1.1; color:var(--navy); }
.ct-h2{ margin:0; font-size:clamp(1.8rem,3.2vw,2.6rem); font-weight:800; letter-spacing:-.03em; line-height:1.15; color:var(--navy); }
.ct-l{ margin:16px 0 0; max-width:52ch; font-size:1.05rem; line-height:1.7; color:#33485A; }
.ct-card{ margin-top:30px; padding:18px; border-radius:24px; background:#fff; border:1px solid var(--line); box-shadow:0 30px 60px -44px rgba(16,43,70,.5); }
.ct-card iframe{ display:block; width:100%; height:640px; border:0; border-radius:14px; background:#fff; }
.ct-ph{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; min-height:420px; padding:30px; border:2px dashed #C9DCE3; border-radius:16px; text-align:center; color:#4F6370; }
.ct-ph-ic{ display:grid; place-items:center; width:56px; height:56px; border-radius:16px; background:var(--navy); color:var(--mint); }
.ct-ph-ic svg{ width:26px; height:26px; }
.ct-ph b{ font-size:1.1rem; font-weight:800; color:var(--navy); }
.ct-ph span:last-child{ max-width:36ch; font-size:.92rem; line-height:1.6; }
.ct-list{ list-style:none; margin:30px 0 0; padding:0; border-top:1px solid var(--line); }
.ct-list li{ display:flex; align-items:flex-start; gap:18px; padding:22px 0; border-bottom:1px solid var(--line); }
.ct-ic{ flex:none; display:grid; place-items:center; width:48px; height:48px; border-radius:50%; background:var(--turq); color:#fff; transition:background .3s,color .3s; }
.ct-ic svg{ width:21px; height:21px; }
.ct-list li:hover .ct-ic{ background:var(--mint); color:var(--navy); }
.ct-list b{ display:block; font-size:.74rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--turq); }
.ct-list a{ display:inline-block; margin-top:6px; font-size:1.05rem; font-weight:600; line-height:1.55; color:var(--navy); text-decoration:none; }
.ct-list a:hover{ color:var(--turq); text-decoration:underline; text-underline-offset:3px; }
@media (max-width:640px){ .ct-card{ padding:10px; } .ct-card iframe{ height:720px; } }
/* banner */
.ct{ padding-top:clamp(56px,7vw,96px); }
.ct-hero .ah-l > p{ max-width:50ch; }
.ct-viz{ position:relative; z-index:2; margin:0; border-radius:64px 14px 64px 14px; overflow:hidden; background:radial-gradient(120% 120% at 0% 0%,#1D6A90 0%,#102B46 55%,#0B2038 100%); box-shadow:0 40px 70px -46px rgba(16,43,70,.7); }
.ct-viz::before{ content:""; position:absolute; inset:0; background-image:radial-gradient(rgba(127,198,221,.14) 1px,transparent 1.2px); background-size:22px 22px; }
.ct-viz svg{ position:relative; display:block; width:100%; height:auto; font-family:inherit; }
.cv-card{ fill:#fff; }
.cv-h{ fill:#102B46; } .cv-hb{ fill:#5BFBC2; }
.cv-day{ fill:#F1F6F8; stroke:#DCE7EC; } .cv-day.on{ fill:#102B46; stroke:#102B46; }
.cv-dl{ fill:#C9DCE3; } .cv-dn{ fill:#9FC4D2; }
.cv-day.on + .cv-dl, .cv-day.on ~ .cv-dl{ fill:#5BFBC2; } .cv-day.on ~ .cv-dn{ fill:#fff; }
.cv-slot{ fill:#fff; stroke:#B9D0D9; stroke-width:1.4; } .cv-slot.on{ fill:#5BFBC2; stroke:#5BFBC2; animation:cvPulse 3s ease-in-out infinite; }
.cv-tick circle{ fill:#102B46; } .cv-tick path{ stroke:#5BFBC2; }
.cv-chat rect:first-child, .cv-chat path{ fill:#5BFBC2; } .cv-cl{ fill:#102B46; opacity:.75; } .cv-cl.s{ opacity:.45; }
.cv-chat{ animation:cvFloat 6s ease-in-out infinite; }
.cv-ln{ fill:none; stroke:rgba(127,198,221,.6); stroke-width:2; stroke-dasharray:2 7; stroke-linecap:round; }
.cv-node{ fill:#1B7699; stroke:rgba(255,255,255,.25); stroke-width:1.5; }
.cv-ico{ stroke:#fff; }
.cv-t{ font-size:12px; font-weight:800; fill:#CDE9F2; }
.cv-dot{ fill:#5BFBC2; filter:drop-shadow(0 0 5px rgba(91,251,194,.9)); }
@keyframes cvFloat{ 0%,100%{ transform:translate(250px,20px); } 50%{ transform:translate(250px,12px); } }
@keyframes cvPulse{ 0%,100%{ opacity:1; } 50%{ opacity:.65; } }
@media (prefers-reduced-motion:reduce){ .cv-chat,.cv-slot.on{ animation:none; } .cv-dot{ display:none; } }
/* contact section on white so it separates from the banner */
.ct{ background:#fff; }
.ct-hero{ background:linear-gradient(160deg,#E6F3F7 0%,#EEF8F5 100%); }
/* banner photo */
.ct-img{ aspect-ratio:16/10; }
.ct-img img{ display:block; width:100%; height:100%; object-fit:cover; object-position:42% 50%; }
