/* =====================================================================
   CODESENZE – Contact page (modern)        prefix: ct-
   ===================================================================== */
.ct-page{
  --ct-ink:#0b1b2e; --ct-muted:#5a6a7d; --ct-navy:#07111f; --ct-blue:#256199; --ct-cyan:#4fd1ff; --ct-violet:#a074ff;
  --ct-accent:#ffc83d; --ct-soft:#f3f7fb; --ct-line:rgba(11,27,46,.1); --ct-r:28px;
  --ct-grad:linear-gradient(100deg,#5fd8ff 0%,#6f9bff 50%,#b985ff 100%);
  background:var(--ct-soft); color:var(--ct-ink); line-height:1.7; overflow-x:clip;
}
.ct-page *,.ct-page *::before,.ct-page *::after{ box-sizing:border-box; }
.ct-page h1,.ct-page h2,.ct-page h3{ margin:0; letter-spacing:-.02em; line-height:1.15; text-wrap:balance; }
.ct-page p{ margin:0; margin-bottom:15px }
.ct-grad{ background:var(--ct-grad); -webkit-background-clip:text; background-clip:text; color:transparent; -webkit-text-fill-color:transparent; }

/* reveal */
.ct-js [data-ct-reveal]{ opacity:0; transform:translateY(30px); transition:opacity .9s cubic-bezier(.2,.7,.2,1) var(--d,0ms), transform .9s cubic-bezier(.2,.7,.2,1) var(--d,0ms); }
.ct-js [data-ct-reveal].is-in{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){ .ct-js [data-ct-reveal]{ opacity:1; transform:none; transition:none; } }

.ct-eyebrow{ display:inline-flex; align-items:center; gap:10px; padding:8px 16px 8px 14px; margin-bottom:20px; border-radius:999px; font-size:12.5px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; line-height:1;
  color:#fff; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.16); }
.ct-eyebrow::before{ content:""; width:7px; height:7px; border-radius:50%; background:var(--ct-accent); box-shadow:0 0 0 4px rgba(255,200,61,.25); }

/* ================= HERO ================= */
.ct-hero{ position:relative; overflow:hidden; color:#fff; padding:clamp(140px,15vw,150px) 0 clamp(130px,14vw,190px);
  background:radial-gradient(1100px 560px at 78% -12%,#16426e 0%,transparent 62%), var(--ct-navy); }
.ct-blobs{ position:absolute; inset:0; pointer-events:none; }
.ct-blobs i{ position:absolute; border-radius:50%; filter:blur(90px); }
.ct-blobs .b1{ width:440px; height:440px; left:-140px; top:-40px; background:#1f7bff; opacity:.5; }
.ct-blobs .b2{ width:400px; height:400px; right:-100px; top:100px; background:#8a4dff; opacity:.42; }
.ct-gridbg{ position:absolute; inset:0; pointer-events:none; background-image:linear-gradient(rgba(255,255,255,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.055) 1px,transparent 1px); background-size:64px 64px;
  -webkit-mask-image:radial-gradient(ellipse at 50% 28%,#000 22%,transparent 72%); mask-image:radial-gradient(ellipse at 50% 28%,#000 22%,transparent 72%); }
.ct-hero .small-container{ position:relative; z-index:1; }
.ct-crumbs{ display:flex; gap:10px; margin-bottom:26px; font-size:14px; color:rgba(255,255,255,.6); }
.ct-crumbs a{ color:rgba(255,255,255,.85); text-decoration:none; }
.ct-crumbs a:hover{ color:var(--ct-accent); }
.ct-h1{ max-width:900px; font-size:clamp(36px,5.4vw,74px); font-weight:600; letter-spacing:-.035em; line-height:1.05; color:#fff; }
.ct-lead{ max-width:720px; margin-top:26px !important; font-size:clamp(16px,1.4vw,19px); color:rgba(255,255,255,.76); }

/* ================= MAIN ================= */
.ct-main{ position:relative; z-index:2; margin-top:-100px; padding-bottom:clamp(72px,9vw,120px); }
.ct-grid{ display:grid; grid-template-columns:5fr 7fr; gap:28px; align-items:start; }
@media (max-width:991.98px){ .ct-grid{ grid-template-columns:1fr; } .ct-form-card{ order:-1; } .ct-main{ margin-top:-70px; } }

/* --- info card --- */
.ct-info{ position:relative; isolation:isolate; overflow:hidden; padding:clamp(28px,3.6vw,44px); border-radius:var(--ct-r); color:#fff;
  background:linear-gradient(150deg,#123b66 0%,#0a2038 55%,#0b1b2e 100%); }
.ct-info::after{ content:""; position:absolute; z-index:-1; right:-110px; top:-110px; width:320px; height:320px; border-radius:50%; background:radial-gradient(circle,rgba(79,209,255,.32),transparent 65%); }
.ct-info h3{ margin-bottom:6px; font-size:24px; font-weight:600; color:#fff; }
.ct-info .sub{ margin-bottom:12px; font-size:15px; color:rgba(255,255,255,.7); }
.ct-item{ display:flex; align-items:center; gap:18px; padding:20px 0; border-bottom:1px solid rgba(255,255,255,.1); }
.ct-item:last-of-type{ border-bottom:0; }
.ct-ico{ flex:0 0 56px; width:56px; height:56px; display:grid; place-items:center; border-radius:18px; color:#fff; background:linear-gradient(135deg,#1f7bff,#8a4dff); transition:transform .35s ease; }
.ct-item:hover .ct-ico{ transform:rotate(-6deg) scale(1.06); }
.ct-ico svg{ width:26px; height:26px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.ct-item .lbl{ display:block; margin-bottom:2px; font-size:12px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; color:var(--ct-accent); }
.ct-item .val{ display:block; font-size:clamp(16px,1.5vw,19px); font-weight:600; color:#fff; text-decoration:none; word-break:break-word; }
a.val:hover{ color:var(--ct-accent); }
.ct-next{ margin-top:18px; padding-top:28px; border-top:1px solid rgba(255,255,255,.14); }
.ct-next h4{ margin:0 0 18px; font-size:13px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; color:rgba(255,255,255,.7); }
.ct-steps{ list-style:none; margin:0; padding:0; counter-reset:s; }
.ct-steps li{ position:relative; counter-increment:s; padding:0 0 20px 50px; }
.ct-steps li:last-child{ padding-bottom:0; }
.ct-steps li::before{ content:counter(s); position:absolute; left:0; top:0; width:34px; height:34px; display:grid; place-items:center; border-radius:50%; font-size:14px; font-weight:700; color:#0b1b2e; background:var(--ct-accent); }
.ct-steps li::after{ content:""; position:absolute; left:16px; top:38px; bottom:4px; border-left:2px dashed rgba(255,255,255,.2); }
.ct-steps li:last-child::after{ display:none; }
.ct-steps b{ display:block; font-size:16px; font-weight:600; color:#fff; }
.ct-steps span{ font-size:14.5px; color:rgba(255,255,255,.68); }

/* --- form card --- */
.ct-form-card{ padding:clamp(28px,4vw,52px); border-radius:var(--ct-r); background:#fff; border:1px solid var(--ct-line); }
.ct-live{ display:inline-flex; align-items:center; gap:9px; padding:8px 14px; margin-bottom:18px; border-radius:999px; font-size:13px; font-weight:600; color:#146c3a; background:#e9f9ef; }
.ct-live i{ width:8px; height:8px; border-radius:50%; background:#22c55e; box-shadow:0 0 0 4px rgba(34,197,94,.25); animation:ctPulse 2s infinite; }
@keyframes ctPulse{ 50%{ box-shadow:0 0 0 8px rgba(34,197,94,0); } }
.ct-h2{ font-size:clamp(28px,3.2vw,42px); font-weight:600; color:var(--ct-ink); }
.ct-sub{ margin:12px 0 30px; color:var(--ct-muted); }

.ct-fields{ display:grid; grid-template-columns:1fr 1fr; gap:22px 22px; }
.ct-field.full,.ct-captcha,.ct-submit{ grid-column:1 / -1; }
@media (max-width:575.98px){ .ct-fields{ grid-template-columns:1fr; } }
.ct-form label{ display:block; margin:0 0 8px; font-size:14px; font-weight:600; color:#33445a; }
.ct-form label span{ color:#e5484d; margin-left:2px; }
.ct-form .ct-input{ display:block; width:100%; height:58px; padding:0 18px; border:1.5px solid #dbe3ec; border-radius:14px; background:#f8fafc; font:inherit; font-size:15.5px; color:var(--ct-ink); box-shadow:none; outline:0;
  transition:border-color .25s ease, background .25s ease, box-shadow .25s ease; }
.ct-form textarea.ct-input{ height:auto; min-height:160px; padding:16px 18px; resize:vertical; line-height:1.6; }
.ct-form .ct-input::placeholder{ color:#9aa8b8; }
.ct-form .ct-input:hover{ border-color:#c3cfdc; }
.ct-form .ct-input:focus{ border-color:var(--ct-blue); background:#fff; box-shadow:0 0 0 4px rgba(37,97,153,.14); }
.ct-form .ct-input.is-invalid{ border-color:#e5484d; background:#fff6f6; }
.ct-form .ct-input.is-invalid:focus{ box-shadow:0 0 0 4px rgba(229,72,77,.15); }
.ct-form em{ display:block; margin-top:7px; font-style:normal; font-size:13.5px; font-weight:500; color:#e5484d; }
.ct-form em:empty{ display:none; }
.ct-captcha .g-recaptcha{ margin-bottom:8px; }
@media (max-width:379.98px){ .ct-captcha .g-recaptcha{ transform:scale(.88); transform-origin:0 0; } }

.ct-btn{ position:relative; display:inline-flex; align-items:center; justify-content:center; gap:12px; min-width:220px; padding:19px 34px; border:0; border-radius:999px; cursor:pointer;
  background:var(--ct-accent); color:#0b1b2e; font:inherit; font-size:16px; font-weight:700; line-height:1; transition:transform .3s ease, background .3s ease, color .3s ease; }
.ct-btn svg{ width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:2.3; stroke-linecap:round; stroke-linejoin:round; transition:transform .3s ease; }
.ct-btn:hover{ background:var(--ct-ink); color:#fff; transform:translateY(-3px); }
.ct-btn:hover svg{ transform:translateX(5px); }
.ct-btn:disabled{ cursor:wait; opacity:.85; transform:none; }
.ct-btn.is-loading svg{ display:none; }
.ct-btn.is-loading::after{ content:""; width:18px; height:18px; border-radius:50%; border:2.5px solid currentColor; border-right-color:transparent; animation:ctSpin .7s linear infinite; }
@keyframes ctSpin{ to{ transform:rotate(360deg); } }
@media (max-width:575.98px){ .ct-btn{ width:100%; } }

.ct-alert{ margin-top:18px; padding:15px 18px; border-radius:14px; font-size:15px; font-weight:500; }
.ct-alert:empty{ display:none; }
.ct-alert.is-ok{ color:#146c3a; background:#e9f9ef; border:1px solid #bfe8cf; }
.ct-alert.is-err{ color:#b42318; background:#fff1f1; border:1px solid #f5c2c0; }