/* =====================================================
   CONTACT US PAGE — Mainland
   Built on the homepage design system (style.css).
   A distinct editorial identity: dark immersive hero,
   indexed channel cards, a "direct line" timeline beside
   the form, a full-bleed map band, and platform cards.
   ===================================================== */

/* ---------- HERO (light, editorial) ---------- */
.ct-hero{
  background:var(--paper);color:var(--ink);position:relative;overflow:hidden;
  border-bottom:1px solid var(--line);
  padding-top:clamp(150px,16vw,210px);padding-bottom:clamp(50px,7vw,90px);
}
.ct-hero::before{
  content:"CONTACT";position:absolute;right:-22px;bottom:-40px;
  font-family:"Bebas Neue";font-size:clamp(7rem,20vw,20rem);
  color:rgba(22,21,15,.035);white-space:nowrap;line-height:1;letter-spacing:.04em;pointer-events:none;
}
.ct-hero .wrap{position:relative;z-index:2}
.ct-hero-grid{display:grid;grid-template-columns:1fr .9fr;gap:clamp(30px,5vw,80px);align-items:flex-end}
.ct-hero .kicker{margin-bottom:24px}
.ct-hero h1{
  font-size:clamp(3.4rem,8vw,6.4rem);color:var(--ink);
  letter-spacing:.03em;line-height:.94;
}
.ct-hero h1 .gold{color:var(--gold)}
.ct-hero-lead p{color:var(--muted);font-size:1.08rem;line-height:1.8;margin:0 0 24px;max-width:400px}
.ct-meta{display:flex;flex-wrap:wrap;gap:10px}
.ct-meta span{
  font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);
  border:1px solid var(--line-2);border-radius:100px;padding:.5rem 1rem;
}

/* ---------- SECTION HEADER ---------- */
.ct-shead{margin-bottom:clamp(34px,4vw,56px)}
.ct-shead .kicker{margin-bottom:18px}
.ct-shead h2{font-size:clamp(2rem,3.2vw,3rem);margin:0;line-height:1.04}
.ct-shead h2 em{font-style:italic}

/* ---------- CHANNELS (three ways to begin) ---------- */
.ct-channels-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2vw,26px)}
.ch-card{
  position:relative;background:var(--paper);border:1px solid var(--line);border-radius:6px;
  padding:clamp(30px,3.4vw,44px);display:flex;flex-direction:column;gap:20px;
  transition:.45s var(--ease);overflow:hidden;
}
.ch-card::after{content:"";position:absolute;left:0;top:0;height:3px;width:0;background:var(--gold);transition:.5s var(--ease)}
.ch-card:hover{border-color:var(--gold);transform:translateY(-6px);box-shadow:var(--shadow)}
.ch-card:hover::after{width:100%}
.ch-ix{position:absolute;top:26px;right:30px;font-family:"Bebas Neue";font-size:1.35rem;color:var(--line-2);letter-spacing:.06em}
.ch-ic{width:46px;height:46px;color:var(--gold)}
.ch-ic svg{width:100%;height:100%}
.ch-card .ct-label{margin-bottom:0}
.ch-val{font-size:1.06rem;color:var(--ink-2);line-height:1.7;font-style:normal}
.ch-link{color:var(--ink-2);border-bottom:1px solid var(--line-2);padding-bottom:2px;transition:.35s var(--ease)}
.ch-link:hover{color:var(--gold);border-color:var(--gold)}

/* ---------- THE CONVERSATION (timeline + form) ---------- */
.ct-talk{background:var(--stone)}
.ct-talk .wrap{display:grid;grid-template-columns:.82fr 1.18fr;gap:clamp(42px,5vw,90px);align-items:start}
.ct-talk-intro .kicker{margin-bottom:18px}
.ct-talk-intro h2{font-size:clamp(2rem,3.2vw,3rem);margin:0 0 18px;line-height:1.04}
.ct-talk-intro h2 em{font-style:italic;color:var(--gold)}
.ct-talk-intro > p{color:var(--muted);line-height:1.78;max-width:380px;margin:0 0 clamp(30px,4vw,44px)}

/* numbered steps */
.talk-steps{position:relative}
.talk-steps::after{content:"";position:absolute;left:18px;top:18px;bottom:18px;width:1px;background:var(--line-2)}
.talk-step{position:relative;padding-left:58px;padding-bottom:clamp(24px,3vw,34px)}
.talk-step:last-child{padding-bottom:0}
.talk-step .sn{
  position:absolute;left:0;top:-2px;width:37px;height:37px;border-radius:50%;
  background:var(--paper);border:1px solid var(--line-2);display:flex;align-items:center;justify-content:center;
  font-family:"Bebas Neue";font-size:1.1rem;color:var(--gold);letter-spacing:.04em;z-index:2;
}
.talk-step h4{font-family:"DM Sans";font-weight:700;font-size:1.02rem;letter-spacing:.01em;margin:4px 0 7px}
.talk-step p{font-size:.9rem;color:var(--muted);line-height:1.65;margin:0;max-width:320px}

/* ---------- FORM CARD ---------- */
.ct-form{
  background:var(--paper);border:1px solid var(--line);border-radius:8px;
  padding:clamp(28px,4vw,52px);
}
.ct-form-head h3{font-size:clamp(1.7rem,2.4vw,2.3rem);margin:0 0 10px;letter-spacing:.03em}
.ct-form-head p{color:var(--muted);font-size:.98rem;line-height:1.7;margin:0 0 clamp(26px,3vw,36px)}

.ct-label{
  font-size:.66rem;font-weight:700;letter-spacing:.24em;text-transform:uppercase;
  color:var(--gold);margin-bottom:12px;
}
.ct-field{margin-bottom:24px}
.ct-row{display:grid;grid-template-columns:1fr 1fr;gap:22px}

/* subject pills */
.ct-subjects{display:flex;flex-wrap:wrap;gap:10px}
.ct-subjects input{position:absolute;opacity:0;pointer-events:none}
.ct-subjects label{
  cursor:pointer;font-size:16px;font-weight:600;color:var(--ink-2);
  border:1px solid var(--line-2);background:var(--stone);border-radius:60px;
  padding:12px 30px;transition:.3s var(--ease);user-select:none;
}
.ct-subjects label:hover{border-color:var(--ink)}
.ct-subjects input:checked + label{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.ct-subjects input:focus-visible + label{outline:2px solid var(--gold);outline-offset:2px}

/* inputs */
.ct-input,.ct-textarea{
  width:100%;font-family:"DM Sans",sans-serif;font-size:1rem;color:var(--ink);
  background:var(--paper);border:1px solid var(--line-2);border-radius:4px;
  padding:.95rem 1.1rem;transition:.3s var(--ease);
}
.ct-textarea{resize:vertical;min-height:150px;line-height:1.6}
.ct-input::placeholder,.ct-textarea::placeholder{color:var(--muted);opacity:.7}
.ct-input:focus,.ct-textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px var(--gold-light)}

.ct-submit{
  margin-top:6px;border:none;cursor:pointer;font-family:"DM Sans",sans-serif;width:100%;
  font-size:.78rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;
  background:var(--ink);color:var(--paper);padding:1.15rem 2.2rem;border-radius:2px;
  display:inline-flex;align-items:center;justify-content:center;gap:12px;transition:.4s var(--ease);
}
.ct-submit:hover{background:var(--gold);color:#fff}
.ct-submit svg{transition:.4s var(--ease)}
.ct-submit:hover svg{transform:translateX(5px)}

/* alerts */
.ct-alert{border-radius:6px;padding:1rem 1.25rem;margin-bottom:26px;font-size:.95rem;line-height:1.6;border:1px solid}
.ct-alert.ok{background:var(--gold-light);border-color:var(--gold);color:var(--ink-2)}
.ct-alert.err{background:#fbece8;border-color:#d9784f;color:#7a3417}
.ct-alert ul{margin:.4rem 0 0;padding-left:1.1rem}

/* inline field errors + invalid state */
.ct-form-el .error{display:none;margin-top:7px;font-size:.8rem;color:#c0392b;letter-spacing:.01em}
.ct-input.is-invalid,.ct-textarea.is-invalid{border-color:#d9784f;box-shadow:0 0 0 3px rgba(217,120,79,.12)}

/* submit response message */
.ct-form-message{margin-top:16px;font-size:.95rem;line-height:1.6}
.ct-form-message:empty{margin-top:0}
.ct-form-message.ok{color:#1e7a4d}
.ct-form-message.err{color:#c0392b}

/* ---------- MAP BAND (full-bleed) ---------- */
.ct-map-band{position:relative;background:var(--ink)}
.ct-map-band iframe{display:block;width:100%;height:clamp(380px,48vh,540px);border:0;filter:grayscale(.25) contrast(1.05)}
.ct-map-card{
  position:absolute;top:50%;left:max(32px,calc((100% - 1280px)/2 + 32px));transform:translateY(-50%);
  background:var(--ink);color:var(--paper);border-radius:8px;padding:clamp(28px,3vw,40px);
  max-width:360px;box-shadow:var(--shadow);border:1px solid rgba(255,255,255,.12);
}
.ct-map-card .ct-label{color:var(--gold);margin-bottom:14px}
.ct-map-card address{font-style:normal;color:rgba(255,255,255,.82);font-size:1.05rem;line-height:1.85;margin-bottom:24px}
.ct-map-card .map-btn{
  display:inline-flex;align-items:center;gap:10px;font-size:.74rem;font-weight:700;letter-spacing:.16em;
  text-transform:uppercase;color:var(--ink);background:var(--gold);padding:.85rem 1.4rem;border-radius:2px;
  transition:.4s var(--ease);
}
.ct-map-card .map-btn:hover{background:var(--paper)}

/* ---------- PLATFORM CARDS ---------- */
.ct-projects{background:var(--paper)}
.ct-projects-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2vw,28px)}
.pj-card{
  position:relative;border:1px solid var(--line);border-radius:6px;padding:clamp(30px,3.4vw,46px);
  transition:.45s var(--ease);background:var(--paper);overflow:hidden;
}
.pj-card::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:0;background:var(--stone);z-index:0;transition:.5s var(--ease)}
.pj-card:hover{border-color:var(--gold);transform:translateY(-6px);box-shadow:var(--shadow)}
.pj-card:hover::after{height:100%}
.pj-card > *{position:relative;z-index:1}
.pj-ix{font-family:"Bebas Neue";font-size:1.3rem;color:var(--line-2);letter-spacing:.06em;margin-bottom:18px}
.pj-card h3{font-family:"Bebas Neue";font-size:2rem;letter-spacing:.07em;color:var(--gold);margin:0 0 12px}
.pj-card p{font-size:.94rem;color:var(--muted);line-height:1.65;margin:0 0 26px;max-width:240px}
.pj-card a.pj-lnk{
  font-size:.72rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-2);
  display:inline-flex;align-items:center;gap:9px;transition:.35s var(--ease);
}
.pj-card a.pj-lnk:hover{color:var(--gold);gap:14px}

/* ---------- RESPONSIVE ---------- */
@media(max-width:991px){
  .ct-hero-grid{grid-template-columns:1fr;gap:30px;align-items:start}
  .ct-channels-grid{grid-template-columns:1fr}
  .ct-talk .wrap{grid-template-columns:1fr;gap:48px}
  .ct-projects-grid{grid-template-columns:1fr}
  .ct-map-card{position:static;transform:none;max-width:none;border-radius:0;
    margin:0;border-left:0;border-right:0}
  .ct-map-band{display:flex;flex-direction:column}
  .ct-map-band iframe{order:-1;height:320px}
}
@media(max-width:640px){
  .ct-hero::before{display:none}
  .ct-row{grid-template-columns:1fr;gap:0}
  .ct-meta{gap:8px}
}
