body{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}
.contact-main{
  flex:1;position:relative;z-index:1;
  padding:calc(var(--header-h) + clamp(1.5rem,4vh,3rem)) var(--container-pad) clamp(2rem,4vh,3rem);
}

/* Hero */
.contact-hero{text-align:center;margin-bottom:clamp(1.5rem,4vh,2.5rem)}
.contact-hero h1{
  font-size:clamp(1.6rem,3vw + .5rem,2.4rem);
  letter-spacing:-.015em;line-height:1.2;margin:0 0 .6rem;
}
.contact-hero h1::after{
  content:'';display:block;width:48px;height:2px;
  margin:14px auto 0;
  background:linear-gradient(90deg,var(--acc),var(--acc-2));
  border-radius:2px;opacity:.5;
}
.contact-hero p{
  color:var(--muted);
  font-size:clamp(.95rem,1vw + .4rem,1.1rem);
  max-width:560px;margin:.8rem auto 0;line-height:1.65;
}

/* Grid */
.contact-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(1rem,2vw,1.5rem);
  max-width:960px;margin:0 auto;
}

/* Cards */
.contact-card{
  padding:clamp(1.5rem,3vw,2.5rem);
  border:1px solid var(--border);border-radius:18px;
  background:linear-gradient(to bottom, rgba(8,14,26,0.85), rgba(8,14,26,0.35));
  box-shadow:var(--shadow);
}
@supports (backdrop-filter:blur(0)) or (-webkit-backdrop-filter:blur(0)){
  .contact-card{-webkit-backdrop-filter:saturate(140%) blur(10px);backdrop-filter:saturate(140%) blur(10px)}
}
.contact-card h2{
  font-size:clamp(1.15rem,1.5vw + .4rem,1.4rem);
  margin:0 0 1.2rem;letter-spacing:-.01em;
}
.contact-card h2::after{
  content:'';display:block;width:36px;height:2px;margin-top:10px;
  background:linear-gradient(90deg,var(--acc),var(--acc-2));
  border-radius:2px;opacity:.5;
}

/* Form */
.form-group{margin-bottom:.9rem}
.form-group label{
  display:block;font-size:.82rem;color:var(--muted);
  margin-bottom:.35rem;letter-spacing:.02em;font-weight:500;
}
.form-group input,
.form-group textarea{
  width:100%;padding:.7rem .9rem;
  background:rgba(10,16,28,.5);
  border:1px solid var(--border);border-radius:10px;
  color:var(--text);font-family:inherit;font-size:.92rem;
  transition:border-color .2s ease, background .2s ease, box-shadow .2s ease;
  outline:none;
}
.form-group input::placeholder,
.form-group textarea::placeholder{color:rgba(184,193,214,.3)}
.form-group input:focus,
.form-group textarea:focus{
  border-color:var(--acc-2);
  background:rgba(10,16,28,.65);
  box-shadow:0 0 0 3px rgba(47,125,225,.12);
}
.form-group textarea{resize:vertical;min-height:110px}
.phone-row{display:flex;gap:0}
.phone-row select{
  flex-shrink:0;width:90px;
  padding:.7rem .45rem .7rem .7rem;
  background:rgba(10,16,28,.5);
  border:1px solid var(--border);border-radius:10px 0 0 10px;
  color:var(--text);font-family:inherit;font-size:.88rem;
  outline:none;cursor:pointer;
  -webkit-appearance:none;appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%236a7a9a'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right .55rem center;
  transition:border-color .2s ease, background .2s ease, box-shadow .2s ease;
}
.phone-row select:focus{
  border-color:var(--acc-2);
  background-color:rgba(10,16,28,.65);
  box-shadow:0 0 0 3px rgba(47,125,225,.12);
  z-index:1;position:relative;
}
.phone-row input{
  flex:1;min-width:0;
  border-radius:0 10px 10px 0;
  border-left:none;
}
.phone-row input:focus{z-index:1;position:relative;border-left:1px solid var(--acc-2)}
[data-theme="light"] .phone-row select{
  background-color:rgba(255,255,255,.7);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%232c3e50'/%3E%3C/svg%3E");
}

.form-submit{
  display:inline-flex;align-items:center;gap:.5rem;
  margin-top:.3rem;
  padding:.8rem 1.8rem;
  background:linear-gradient(180deg, rgba(10,16,28,.92), rgba(10,16,28,.62));
  border:1px solid rgba(123,192,255,.5);
  border-radius:.8rem;
  color:var(--text);font-weight:600;font-size:.92rem;
  cursor:pointer;font-family:inherit;
  transition:background .25s ease, border-color .25s ease, box-shadow .25s ease, transform .06s ease;
}
.form-submit:hover,.form-submit:focus-visible{
  background:
    radial-gradient(120% 160% at 50% 0%, rgba(123,192,255,.16) 0%, transparent 70%),
    linear-gradient(180deg, rgba(10,16,28,.92), rgba(10,16,28,.62));
  border-color:rgba(123,192,255,.85);
  box-shadow:0 12px 28px rgba(47,125,225,.28), 0 0 0 5px rgba(123,192,255,.08);
}
.form-submit:active{transform:translateY(1px)}
.form-submit:disabled{opacity:.5;cursor:default;transform:none}
.form-submit svg{flex-shrink:0}

/* Map */
.contact-map{
  border-radius:12px;
  overflow:hidden;
  background:#0d1b2a;
}
.contact-map #map{
  display:block;
  margin:-3px;
  width:calc(100% + 6px);
  height:calc(240px + 6px);
}
.map-caption{
  display:flex;align-items:center;gap:.4rem;
  margin-top:.6rem;
  font-size:.75rem;color:var(--muted);opacity:.45;
  letter-spacing:.01em;
}
.map-caption svg{flex-shrink:0;opacity:.6}
/* Map fallback (shown when Google Maps fails to load) */
.map-fallback{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  height:240px;gap:.5rem;color:var(--muted);
}
.map-fallback svg{opacity:.4}
.map-fallback p{margin:0;font-size:.9rem;opacity:.55}
.map-fallback a{
  font-size:.78rem;color:var(--acc-2);text-decoration:none;opacity:.6;
  transition:opacity .2s ease;
}
.map-fallback a:hover{opacity:1}

/* Kill any Google Maps internal borders/outlines/background seams */
.contact-map .gm-style{
  background:#0d1b2a!important;
  border:none!important;outline:none!important;
  box-shadow:none!important;
}
.contact-map .gm-style>div,
.contact-map .gm-style iframe{
  border:none!important;outline:none!important;
  box-shadow:none!important;
}
/* Subtle map attribution (required by Google ToS, but minimized) */
.contact-map .gm-style-cc,
.contact-map .gmnoprint:not(.gm-bundled-control){
  opacity:.35!important;transform:scale(.85);transform-origin:bottom right;
}
.contact-map .gm-style-cc:hover,
.contact-map .gmnoprint:not(.gm-bundled-control):hover{opacity:.7!important}
.contact-map .gm-style-cc a,
.contact-map .gm-style-cc button,
.contact-map .gm-style-cc span{opacity:.6!important}

/* Identity section */
.contact-identity{
  padding-bottom:1.3rem;
  margin-bottom:1.3rem;
  border-bottom:1px solid rgba(120,140,180,.1);
}
.contact-identity h2{margin-bottom:.2rem}
.identity-tagline{
  color:var(--muted);font-size:.88rem;
  margin:0 0 1.1rem;opacity:.55;
}
.identity-org{margin-bottom:.7rem}
.identity-org:last-child{margin-bottom:0}
.identity-prefix{
  display:block;font-size:.72rem;
  color:var(--muted);opacity:.5;
  margin-bottom:.1rem;
}
.identity-name{
  display:block;font-size:.95rem;
  color:var(--text);font-weight:600;letter-spacing:.01em;
}
.identity-meta{
  display:block;font-size:.8rem;
  color:var(--muted);opacity:.6;margin-top:.1rem;
}
.identity-link{
  text-decoration:none;color:inherit;
  transition:color .2s ease;
}
.identity-link:hover{color:var(--acc-2)}

/* Back link */
.contact-footer-link{text-align:center;margin-top:clamp(1rem,2vh,1.5rem)}
.contact-back{
  display:inline-flex;align-items:center;gap:.3rem;
  font-size:.82rem;color:var(--muted);text-decoration:none;
  transition:color .2s ease;
}
.contact-back:hover{color:var(--acc-2)}

/* Field error highlight */
.form-group.field-error input,
.form-group.field-error textarea,
.form-group.field-error select{
  border-color:rgba(220,53,69,.7);
  box-shadow:0 0 0 3px rgba(220,53,69,.12);
}
[data-theme="light"] .form-group.field-error input,
[data-theme="light"] .form-group.field-error textarea,
[data-theme="light"] .form-group.field-error select{
  border-color:rgba(220,53,69,.5);
  box-shadow:0 0 0 3px rgba(220,53,69,.08);
}

/* Toast notification */
.form-toast{
  position:fixed;bottom:calc(2rem + env(safe-area-inset-bottom, 0px));
  left:50%;transform:translateX(-50%) translateY(100px);
  padding:.85rem 1.5rem;
  max-width:calc(100vw - 2rem);
  background:rgba(47,125,225,.92);
  color:#fff;font-size:.9rem;font-weight:500;
  border-radius:12px;
  box-shadow:0 8px 32px rgba(0,0,0,.4);
  z-index:1500;opacity:0;
  transition:transform .4s cubic-bezier(.16,1,.3,1), opacity .4s ease;
  pointer-events:none;
  text-align:center;line-height:1.45;
}
.form-toast.visible{transform:translateX(-50%) translateY(0);opacity:1;pointer-events:auto;cursor:pointer}
.form-toast.error{background:rgba(220,53,69,.92)}

/* Light theme overrides */
[data-theme="light"] .contact-card{
  background:linear-gradient(to bottom, rgba(255,255,255,.92), rgba(255,255,255,.80));
  border-color:rgba(20,42,78,.14);
}
[data-theme="light"] .form-group input,
[data-theme="light"] .form-group textarea{
  background:rgba(255,255,255,.7);
  border-color:rgba(20,42,78,.18);color:var(--text);
}
[data-theme="light"] .form-group input:focus,
[data-theme="light"] .form-group textarea:focus{
  background:rgba(255,255,255,.9);
  box-shadow:0 0 0 3px rgba(47,125,225,.1);
}
[data-theme="light"] .form-group input::placeholder,
[data-theme="light"] .form-group textarea::placeholder{color:rgba(44,62,80,.35)}
[data-theme="light"] .contact-identity{border-bottom-color:rgba(20,42,78,.1)}
.form-consent{
  display:flex;align-items:flex-start;gap:.7rem;
  cursor:pointer;font-size:.75rem;color:var(--muted);
  line-height:1.55;margin-top:.2rem;
  padding:.7rem .85rem;
  background:rgba(255,255,255,.025);
  border:1px solid rgba(120,140,180,.08);
  border-radius:.65rem;
  transition:border-color .2s ease, background .2s ease;
}
.form-consent:hover{
  border-color:rgba(120,140,180,.15);
  background:rgba(255,255,255,.04);
}
.form-consent input[type="checkbox"]{
  -webkit-appearance:none;appearance:none;
  flex-shrink:0;margin-top:1px;
  width:18px;height:18px;cursor:pointer;
  border:1.5px solid rgba(120,140,180,.25);
  border-radius:5px;
  background:rgba(255,255,255,.04);
  transition:all .2s ease;
  position:relative;
}
.form-consent input[type="checkbox"]:checked{
  background:var(--acc);
  border-color:var(--acc);
}
.form-consent input[type="checkbox"]:checked::after{
  content:'';position:absolute;
  left:5.5px;top:2px;
  width:5px;height:10px;
  border:solid #fff;border-width:0 2px 2px 0;
  transform:rotate(45deg);
}
.form-consent input[type="checkbox"]:focus-visible{
  box-shadow:0 0 0 3px rgba(47,125,225,.2);
}
.form-consent span{user-select:none;opacity:.7}
[data-theme="light"] .form-consent{
  color:rgba(44,62,80,.6);
  background:rgba(0,0,0,.02);
  border-color:rgba(20,42,78,.08);
}
[data-theme="light"] .form-consent:hover{
  background:rgba(0,0,0,.035);
  border-color:rgba(20,42,78,.14);
}
[data-theme="light"] .form-consent input[type="checkbox"]{
  border-color:rgba(44,62,80,.2);
  background:rgba(255,255,255,.6);
}
[data-theme="light"] .form-submit{
  background:linear-gradient(180deg, rgba(255,255,255,.94), rgba(255,255,255,.80));
  border-color:rgba(47,125,225,.45);color:var(--text);
}

/* Honeypot trap */
.hp-trap{position:absolute;left:-9999px;top:-9999px;opacity:0;height:0;overflow:hidden}

/* Responsive */
@media (max-width:860px){
  .contact-grid{grid-template-columns:1fr}
  .form-toast{bottom:calc(4rem + env(safe-area-inset-bottom, 0px));font-size:.84rem;padding:.75rem 1.2rem}
}
@media (max-width:380px){
  .contact-card{padding:1.2rem}
}
