/* ============================================================
   PAGE — CONTACT
   ============================================================ */

/* ---------------- Opening screen ---------------- */
.ct-hero{
  position:relative; overflow:hidden;
  padding-top: calc(var(--header-h) + clamp(2rem,5vw,4.5rem));
  padding-bottom: clamp(2.5rem,6vw,5rem);
  background: var(--bg-alt);
  border-bottom:1px solid var(--line-soft);
}
.ct-hero__halo{
  position:absolute; inset:-30% -10%;
  background:
    radial-gradient(28% 44% at 82% 16%, var(--halo-1), transparent 66%),
    radial-gradient(26% 40% at 54% 6%,  var(--halo-2), transparent 66%),
    radial-gradient(24% 40% at 10% 34%, var(--halo-3), transparent 68%);
  filter: blur(30px); animation: haloDrift 21s ease-in-out infinite; pointer-events:none;
}
.ct-hero__in{
  position:relative; z-index:2;
  display:grid; grid-template-columns: minmax(0,1.05fr) minmax(0,.95fr);
  gap: clamp(1.8rem,4.5vw,4.5rem); align-items:center;
}
@media (max-width:940px){ .ct-hero__in{ grid-template-columns:1fr; } }

.ct-hero__body{ display:grid; gap: clamp(.8rem,1.6vw,1.15rem); }
.ct-hero h1{ font-size: clamp(2.1rem,5.2vw,4rem); }

/* quick-contact tiles */
.ct-hero__quick{
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:.7rem; margin-top:.7rem;
}
@media (max-width:760px){ .ct-hero__quick{ grid-template-columns:1fr; } }

.ct-quick{
  display:flex; align-items:center; gap:.85rem;
  padding: .9rem 1rem;
  border-radius: var(--r-md);
  border:1px solid var(--line); background: var(--bg-elev);
  transition: transform .35s var(--e-out), border-color .35s, box-shadow .35s;
  min-width:0;
}
.ct-quick:hover{ transform: translateY(-3px); border-color:transparent; box-shadow: var(--shadow-glow); }
.ct-quick__ico{
  width:38px; height:38px; flex:none; border-radius:50%;
  display:grid; place-items:center; color:#fff;
  background-image: var(--grad-hot);
}
.ct-quick__ico svg{ width:17px; height:17px; stroke:currentColor; fill:none; stroke-width:1.5; }
.ct-quick--wa .ct-quick__ico{ background-image:none; background:#25D366; }
.ct-quick__t{ display:grid; gap:.15rem; min-width:0; }
.ct-quick__t b{
  font-size:9.5px; letter-spacing:.22em; text-transform:uppercase;
  color:var(--text-mut); font-weight:500;
}
.ct-quick__t em{
  font-style:normal; font-size:var(--t-sm); color:var(--text);
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}

.ct-hero__trust{
  display:flex; align-items:center; gap:.7rem; flex-wrap:wrap;
  font-size:var(--t-xs); letter-spacing:.16em; text-transform:uppercase;
  color:var(--text-mut); margin-top:.5rem;
}

.ct-hero__media{ position:relative; }
.ct-hero__media .frame{ aspect-ratio: 4/3; border-radius: var(--r-lg); }
.ct-hero__badge{
  position:absolute; left:-1rem; bottom:-1rem; z-index:4;
  padding: 1rem 1.35rem; border-radius: var(--r-md);
  background: var(--bg-elev); border:1px solid transparent;
  background-image: linear-gradient(var(--bg-elev), var(--bg-elev)), var(--grad-hot);
  background-origin: border-box; background-clip: padding-box, border-box;
  box-shadow: var(--shadow-md); display:grid; gap:.25rem;
}
@media (max-width:940px){ .ct-hero__badge{ left:auto; right:1rem; bottom:-.8rem; } }
.ct-hero__badge .n{ font-family:var(--f-display); font-size: var(--t-lg); line-height:1; }
.ct-hero__badge .l{
  font-size:9.5px; letter-spacing:.22em; text-transform:uppercase; color:var(--text-mut);
}


.ct-grid{
  display:grid; grid-template-columns: minmax(0,1.1fr) minmax(0,.9fr);
  gap: clamp(2rem,5vw,5rem); align-items:start;
}
@media (max-width:940px){ .ct-grid{ grid-template-columns:1fr; } }

/* ---------------- Form card ---------------- */
.ct-form{
  position:relative; overflow:hidden;
  padding: clamp(1.6rem,3.4vw,3rem);
  border-radius: var(--r-lg);
  background: var(--bg-elev);
  border:1px solid var(--line);
  box-shadow: var(--shadow-md);
}
.ct-form__halo{
  position:absolute; inset:-40%;
  background:
    radial-gradient(28% 40% at 20% 12%, var(--halo-1), transparent 66%),
    radial-gradient(26% 38% at 84% 20%, var(--halo-2), transparent 66%);
  filter: blur(34px); pointer-events:none;
  animation: haloDrift 20s ease-in-out infinite;
}
.ct-form > *{ position:relative; z-index:2; }

.ct-form__head{ margin-bottom: 2rem; display:grid; gap:.6rem; }
.ct-form__head h2{ font-size: var(--t-lg); }

.ct-row{ display:grid; grid-template-columns:1fr 1fr; gap: 1.7rem; }
@media (max-width:560px){ .ct-row{ grid-template-columns:1fr; } }
.ct-row .field + .field{ margin-top:0; }

.ct-form .field + .ct-row,
.ct-form .ct-row + .field,
.ct-form .ct-row + .ct-row,
.ct-form .field-group + *{ margin-top:1.7rem; }

.field-group{ display:grid; gap:.85rem; }
.field-group > .meta{ margin-bottom:.1rem; }

.ct-submit{
  margin-top: 2.2rem; display:flex; flex-wrap:wrap;
  gap:1rem; align-items:center; justify-content:space-between;
}

/* ---------------- Side rail ---------------- */
.ct-side{ display:grid; gap: clamp(1rem,2vw,1.6rem); }

.ct-card{
  padding: clamp(1.3rem,2.6vw,2rem);
  border-radius: var(--r-md);
  border:1px solid var(--line-soft);
  background: var(--surface);
  display:grid; gap:.7rem;
  transition: border-color .4s var(--e-out), transform .5s var(--e-out);
}
.ct-card:hover{ transform: translateY(-4px); border-color: var(--line); }
.ct-card__k{
  font-size:9.5px; letter-spacing:.26em; text-transform:uppercase; color:var(--text-mut);
}
.ct-card__v{
  font-family:var(--f-display); font-weight:300;
  font-size: clamp(1.05rem,2.1vw,1.45rem); word-break:break-word;
}
.ct-card__v:hover{ color: var(--accent); }
.ct-card p{ font-size:var(--t-sm); color:var(--text-mut); }

.ct-social{ display:flex; gap:.6rem; flex-wrap:wrap; }
.ct-social a{
  width:46px; height:46px; border-radius:50%;
  border:1px solid var(--line); display:grid; place-items:center;
  color:var(--text);
  transition: background-image .4s, border-color .4s, color .4s, transform .45s var(--e-out);
}
.ct-social a:hover{
  background-image: var(--grad-hot); border-color:transparent; color:#fff;
  transform: translateY(-4px); box-shadow: var(--shadow-glow);
}
.ct-social svg{ width:17px; height:17px; fill:currentColor; }

/* ---------------- Availability strip ---------------- */
.ct-avail{
  display:grid; grid-template-columns:repeat(4,1fr); gap:1px;
  background: var(--line); border:1px solid var(--line);
  border-radius: var(--r-md); overflow:hidden;
}
@media (max-width:700px){ .ct-avail{ grid-template-columns:repeat(2,1fr); } }
.ct-avail__cell{
  background: var(--bg); padding: clamp(1rem,2vw,1.5rem);
  display:grid; gap:.4rem; text-align:center;
}
.ct-avail__cell .yr{ font-family:var(--f-display); font-size: var(--t-lg); }
.ct-avail__cell .st{
  font-size:9.5px; letter-spacing:.22em; text-transform:uppercase;
}
.ct-avail__cell .st.open{ color: var(--accent-3); }
.ct-avail__cell .st.few{ color: var(--accent-hi); }
.ct-avail__cell .st.closed{ color: var(--text-mut); }

/* ---------------- Map / area block ---------------- */
.ct-map{
  position:relative; overflow:hidden; border-radius: var(--r-lg);
  min-height: clamp(220px, 30vw, 340px);
  display:grid; place-items:center; text-align:center;
  background: var(--bg-invert); color: var(--text-invert);
  padding: clamp(1.6rem,4vw,3rem);
}
.ct-map .motif-bg{ opacity:.10; }
.ct-map__halo{
  position:absolute; inset:-30%;
  background:
    radial-gradient(30% 44% at 24% 30%, var(--halo-1), transparent 66%),
    radial-gradient(28% 40% at 76% 66%, var(--halo-3), transparent 66%);
  filter: blur(32px); animation: haloDrift 23s ease-in-out infinite; pointer-events:none;
}
.ct-map__in{ position:relative; z-index:2; display:grid; gap:1rem; justify-items:center; }
.ct-map h3{ color: var(--text-invert); font-size: var(--t-lg); }
.ct-map p{ color: color-mix(in srgb, var(--text-invert) 72%, transparent); max-width:46ch; }
.ct-map__tags{ display:flex; flex-wrap:wrap; gap:.5rem; justify-content:center; margin-top:.4rem; }
.ct-map__tags span{
  padding:.4em .95em; border-radius:var(--r-pill);
  border:1px solid color-mix(in srgb, var(--text-invert) 24%, transparent);
  font-size:9.5px; letter-spacing:.2em; text-transform:uppercase;
  color: color-mix(in srgb, var(--text-invert) 80%, transparent);
}
