
:root{
  --contact-navy:#064b7f;
  --contact-deep:#023a66;
  --contact-blue:#078fd5;
  --contact-cyan:#19c2c7;
  --contact-sky:#edf8fd;
  --contact-sky-2:#f7fcff;
  --contact-line:#cfe4ef;
  --contact-text:#4d6b7f;
  --contact-white:#fff;
  --contact-shadow:0 20px 48px rgba(3,63,104,.10);
}
.contact-page{background:#f7fbfe;color:var(--contact-text)}
.contact-shell{width:min(1240px,calc(100% - 48px));margin:auto}
.contact-hero{
  position:relative;overflow:hidden;
  background:
    radial-gradient(circle at 88% 12%,rgba(25,194,199,.16),transparent 30%),
    radial-gradient(circle at 6% 90%,rgba(7,143,213,.10),transparent 30%),
    linear-gradient(135deg,#f9fdff,#eaf6fc);
  border-bottom:1px solid var(--contact-line);
}
.contact-hero::after{
  content:"";position:absolute;right:-130px;bottom:-180px;width:430px;height:430px;border-radius:50%;
  border:70px solid rgba(255,255,255,.50);
}
.contact-hero-grid{
  position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,.95fr) minmax(430px,1.05fr);
  gap:54px;align-items:center;padding:78px 0 74px;
}
.contact-kicker{margin:0 0 12px;color:var(--contact-blue);font:900 12px/1.2 Arial,sans-serif;letter-spacing:.22em;text-transform:uppercase}
.contact-hero h1{margin:0 0 18px;color:var(--contact-deep);font-size:58px;line-height:1.04;letter-spacing:-1.5px;max-width:760px}
.contact-hero-copy>p:not(.contact-kicker){margin:0;color:#506f83;font-size:18px;line-height:1.75;max-width:720px}
.contact-reassurance{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:26px}
.contact-reassurance article{background:rgba(255,255,255,.82);border:1px solid #d5e8f2;border-radius:20px;padding:17px;box-shadow:0 8px 24px rgba(3,63,104,.05)}
.contact-reassurance strong{display:block;color:var(--contact-navy);font-size:14px;margin-bottom:5px}
.contact-reassurance span{display:block;font-size:12px;line-height:1.55;color:#5b7789}
.contact-visual{
  position:relative;min-height:480px;border-radius:34px;background:linear-gradient(145deg,#075b91 0%,#087fd0 55%,#19c2c7 100%);
  box-shadow:var(--contact-shadow);overflow:hidden;padding:34px;display:flex;align-items:flex-end;color:#fff;
}
.contact-visual::before,.contact-visual::after{content:"";position:absolute;border-radius:50%;border:1px solid rgba(255,255,255,.32)}
.contact-visual::before{width:380px;height:380px;right:-110px;top:-110px;box-shadow:0 0 0 55px rgba(255,255,255,.05),0 0 0 110px rgba(255,255,255,.035)}
.contact-visual::after{width:170px;height:170px;left:-50px;bottom:120px;background:rgba(255,255,255,.04)}
.contact-visual-card{position:relative;z-index:2;width:100%;padding:28px;border:1px solid rgba(255,255,255,.28);border-radius:26px;background:rgba(0,47,78,.22);backdrop-filter:blur(10px)}
.contact-visual-card span{display:inline-flex;padding:7px 10px;border-radius:999px;background:rgba(255,255,255,.16);font-size:11px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}
.contact-visual-card h2{margin:14px 0 10px;color:#fff;font-size:34px;line-height:1.08}
.contact-visual-card p{margin:0;color:rgba(255,255,255,.88);font-size:15px;line-height:1.7}
.contact-section{padding:72px 0 86px;background:#f7fbfe}
.contact-layout{display:grid;grid-template-columns:minmax(0,.72fr) minmax(520px,1.28fr);gap:36px;align-items:start}
.contact-side{position:sticky;top:116px}
.contact-side-card{background:#fff;border:1px solid var(--contact-line);border-radius:26px;padding:28px;box-shadow:0 12px 32px rgba(3,63,104,.07)}
.contact-side-card h2{margin:0 0 12px;color:var(--contact-navy);font-size:30px;line-height:1.12}
.contact-side-card>p{margin:0;color:#5a7485;font-size:15px;line-height:1.75}
.contact-side-list{display:grid;gap:14px;margin-top:22px}
.contact-side-list div{display:grid;grid-template-columns:42px 1fr;gap:12px;align-items:start}
.contact-side-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:14px;background:#eaf7fc;color:var(--contact-blue);font-size:18px;font-weight:900}
.contact-side-list strong{display:block;color:var(--contact-navy);font-size:14px;margin-bottom:4px}
.contact-side-list span{display:block;color:#607b8d;font-size:13px;line-height:1.55}
.contact-form-card{background:#fff;border:1px solid var(--contact-line);border-radius:30px;padding:34px;box-shadow:var(--contact-shadow)}
.contact-form-head{margin-bottom:26px}
.contact-form-head h2{margin:0 0 9px;color:var(--contact-deep);font-size:34px;line-height:1.1}
.contact-form-head p{margin:0;color:#617c8e;font-size:14px;line-height:1.65}
.contact-required-note{margin-top:8px!important;color:#7890a0!important;font-size:12px!important}
.contact-field{margin-bottom:17px}
.contact-field label{display:block;margin:0 0 7px;color:#174f73;font-size:13px;font-weight:800}
.contact-field label .req{color:#078fd5}
.contact-input,.contact-select,.contact-textarea{
  width:100%;border:1px solid #c7deea;border-radius:14px;background:#fbfdff;color:#173f59;
  font:500 15px Arial,sans-serif;outline:none;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease;
}
.contact-input,.contact-select{height:50px;padding:0 15px}
.contact-textarea{min-height:128px;padding:14px 15px;resize:vertical}
.contact-input:focus,.contact-select:focus,.contact-textarea:focus{border-color:#4eb0dc;box-shadow:0 0 0 4px rgba(7,143,213,.09);background:#fff}
.contact-phone{display:grid;grid-template-columns:82px minmax(0,1fr);border:1px solid #c7deea;border-radius:14px;overflow:hidden;background:#fbfdff}
.contact-phone:focus-within{border-color:#4eb0dc;box-shadow:0 0 0 4px rgba(7,143,213,.09);background:#fff}
.contact-phone-prefix{display:flex;align-items:center;justify-content:center;border-right:1px solid #d8e8f0;background:#edf8fd;color:#075b8d;font-size:14px;font-weight:900}
.contact-phone input{height:48px;border:0!important;border-radius:0!important;box-shadow:none!important;background:transparent!important}
.contact-help{display:block;margin-top:6px;color:#7b94a3;font-size:11px;line-height:1.45}
.contact-optional{
  margin:22px 0;border:1px solid #d5e7ef;border-radius:17px;background:#f8fcfe;overflow:hidden;
}
.contact-optional summary{cursor:pointer;padding:16px 18px;color:#075b8d;font-size:13px;font-weight:900;list-style:none}
.contact-optional summary::-webkit-details-marker{display:none}
.contact-optional summary::after{content:"+";float:right;font-size:18px;line-height:1}
.contact-optional[open] summary::after{content:"−"}
.contact-optional-inner{padding:0 18px 4px}
.contact-consent{display:grid;grid-template-columns:22px 1fr;gap:10px;align-items:start;margin:22px 0 18px;padding:17px;border-radius:16px;background:#eff9fd;border:1px solid #cde5f0}
.contact-consent input{width:18px;height:18px;margin-top:2px;accent-color:#078fd5}
.contact-consent label{color:#42657b;font-size:12px;line-height:1.65}
.contact-consent a{color:#078fd5;font-weight:900}
.contact-submit{
  width:100%;min-height:54px;border:0;border-radius:14px;background:linear-gradient(135deg,#078fd5,#19c2c7);
  color:#fff;font:900 15px Arial,sans-serif;cursor:pointer;box-shadow:0 12px 26px rgba(7,143,213,.20)
}
.contact-submit:hover{transform:translateY(-1px)}
.contact-submit:disabled{opacity:.68;cursor:wait;transform:none}
.contact-security-note{margin:11px 0 0;text-align:center;color:#849aa8;font-size:11px;line-height:1.5}
.contact-alert{margin-bottom:20px;padding:15px 17px;border-radius:14px;font-size:13px;line-height:1.6}
.contact-alert.error{background:#fff1f1;border:1px solid #f0c9c9;color:#8b3333}
.contact-hp{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.contact-footer-note{padding:28px 0;background:#eaf6fc;border-top:1px solid #d6e9f2;text-align:center;color:#547185;font-size:13px}
.contact-footer-note strong{color:#064b7f}
@media(max-width:1080px){
  .contact-hero-grid,.contact-layout{grid-template-columns:1fr}
  .contact-visual{min-height:360px}
  .contact-side{position:relative;top:auto}
}
@media(max-width:760px){
  .contact-shell{width:min(100% - 28px,1240px)}
  .contact-hero-grid{padding:48px 0 50px;gap:28px}
  .contact-hero h1{font-size:39px}
  .contact-hero-copy>p:not(.contact-kicker){font-size:16px}
  .contact-reassurance{grid-template-columns:1fr}
  .contact-visual{min-height:330px;border-radius:26px;padding:20px}
  .contact-visual-card{padding:22px;border-radius:22px}
  .contact-visual-card h2{font-size:28px}
  .contact-section{padding:48px 0 62px}
  .contact-form-card,.contact-side-card{padding:23px 20px;border-radius:22px}
  .contact-form-head h2{font-size:29px}
}
