/* =========================================================================
   contact.css — the Contact page (Cool). Tokens only. Class prefix: ct-
   Reuses base.css atoms + a few legal.css classes (legal-counsel, legal-note).
   ========================================================================= */

.ct-page{ padding:var(--sp-20) 0 var(--sp-16); position:relative; }
.ct-page::before{
  content:""; position:absolute; inset:0 0 auto 0; height:480px; z-index:0; pointer-events:none;
  background:radial-gradient(120% 100% at 50% -8%, rgba(var(--glow-rgb),.12), transparent 64%);
}
.ct-wrap{ position:relative; z-index:1; max-width:1080px; margin:0 auto; padding:0 var(--sp-6); }

.ct-page a:focus-visible,
.ct-page button:focus-visible,
.ct-page input:focus-visible,
.ct-page textarea:focus-visible,
.ct-page select:focus-visible{ outline:2px solid var(--accent-hover); outline-offset:3px; border-radius:var(--r-xs); }

/* masthead */
.ct-masthead{ max-width:720px; }
.ct-h1{ font-family:var(--font-heading); font-weight:300; font-size:clamp(40px,5.2vw,64px);
  line-height:var(--lh-tight); letter-spacing:var(--tracking-tight); color:var(--fg-on-dark-1); margin:var(--sp-4) 0 0; }
.ct-summary{ font-family:var(--font-body); font-weight:300; font-size:var(--fs-18);
  line-height:var(--lh-relaxed); color:var(--fg-on-dark-2); margin:var(--sp-5) 0 0; max-width:60ch; }
.ct-summary .nam-em{ font-size:1.02em; }

/* emergency carve-out */
.ct-emergency{ display:flex; gap:var(--sp-4); align-items:flex-start; margin-top:var(--sp-8);
  border:1px solid rgba(226,106,106,.4); border-left:3px solid var(--status-danger);
  border-radius:var(--r-md); padding:var(--sp-5) var(--sp-6); background:rgba(226,106,106,.07); max-width:760px; }
.ct-emergency__mk{ flex:0 0 auto; width:34px; height:34px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  color:var(--status-danger); border:1px solid rgba(226,106,106,.5); font-family:var(--font-heading); font-weight:700; font-size:var(--fs-18); }
.ct-emergency__t{ font-family:var(--font-heading); font-weight:600; font-size:var(--fs-14);
  letter-spacing:var(--tracking-wide); text-transform:uppercase; color:var(--fg-on-dark-1); margin:0 0 4px; }
.ct-emergency__d{ font-size:var(--fs-15); line-height:var(--lh-relaxed); color:var(--fg-on-dark-2); margin:0; }
.ct-emergency__d strong{ color:var(--fg-on-dark-1); }

/* layout: routing grid + form side by side on wide */
.ct-cols{ display:grid; grid-template-columns:1.1fr .9fr; gap:var(--sp-12); margin-top:var(--sp-16); align-items:start; }
@media(max-width:900px){ .ct-cols{ grid-template-columns:1fr; gap:var(--sp-12); } }

.ct-coltitle{ font-family:var(--font-heading); font-weight:600; font-size:var(--fs-12);
  letter-spacing:var(--tracking-wider); text-transform:uppercase; color:var(--accent-hover); margin:0 0 var(--sp-5); }

/* routing cards */
.ct-routes{ display:grid; grid-template-columns:1fr 1fr; gap:var(--sp-3); }
@media(max-width:560px){ .ct-routes{ grid-template-columns:1fr; } }
.ct-route{ display:block; border:1px solid var(--border-on-dark); border-radius:var(--r-lg);
  padding:var(--sp-5) var(--sp-6); background:rgba(255,255,255,.015);
  transition:border-color var(--dur-base), background var(--dur-base), transform var(--dur-fast); }
a.ct-route:hover{ border-color:var(--border-on-dark-strong); background:rgba(255,255,255,.04); transform:translateY(-2px); }
.ct-route__icon{ width:36px; height:36px; border-radius:var(--r-md); display:flex; align-items:center; justify-content:center;
  color:var(--accent-hover); background:var(--accent-soft); margin-bottom:var(--sp-4); }
.ct-route__label{ font-family:var(--font-heading); font-weight:500; font-size:var(--fs-16); color:var(--fg-on-dark-1); margin:0 0 4px; }
.ct-route__value{ font-size:var(--fs-14); color:var(--accent-hover); font-weight:500; word-break:break-word; }
.ct-route__note{ font-size:var(--fs-13); line-height:var(--lh-normal); color:var(--fg-on-dark-3); margin-top:var(--sp-2); }

/* hours strip */
.ct-hours{ display:flex; flex-wrap:wrap; gap:var(--sp-3) var(--sp-6); align-items:center; margin-top:var(--sp-6);
  padding-top:var(--sp-5); border-top:1px solid var(--border-on-dark); }
.ct-hours__item{ display:inline-flex; align-items:center; gap:var(--sp-2); font-size:var(--fs-13); color:var(--fg-on-dark-2); }
.ct-hours__item .nam-icon, .ct-hours__item svg{ color:var(--accent-hover); }
.ct-hours__k{ font-family:var(--font-mono); font-size:var(--fs-12); color:var(--fg-on-dark-3); }

/* form card */
.ct-form-card{ border:1px solid var(--border-on-dark-strong); border-radius:var(--r-lg);
  padding:var(--sp-8); background:rgba(var(--glow-rgb),.04); position:sticky; top:var(--sp-8); }
@media(max-width:900px){ .ct-form-card{ position:static; } }
.ct-form-card__h{ font-family:var(--font-heading); font-weight:400; font-size:var(--fs-24); color:var(--fg-on-dark-1); margin:0 0 var(--sp-2); }
.ct-form-card__d{ font-size:var(--fs-14); line-height:var(--lh-relaxed); color:var(--fg-on-dark-3); margin:0 0 var(--sp-6); }
.ct-field{ display:flex; flex-direction:column; gap:var(--sp-2); margin-bottom:var(--sp-4); }
.ct-field label{ font-family:var(--font-heading); font-weight:600; font-size:var(--fs-12);
  letter-spacing:var(--tracking-wide); text-transform:uppercase; color:var(--fg-on-dark-3); }
.ct-input, .ct-select, .ct-textarea{ font:inherit; font-size:var(--fs-15); color:var(--fg-on-dark-1);
  background:var(--bg-dark-card); border:1px solid var(--border-on-dark-strong); border-radius:var(--r-sm); padding:13px 15px; }
.ct-input::placeholder, .ct-textarea::placeholder{ color:var(--fg-on-dark-3); }
.ct-textarea{ resize:vertical; min-height:120px; line-height:var(--lh-normal); }
.ct-row{ display:grid; grid-template-columns:1fr 1fr; gap:var(--sp-4); }
@media(max-width:480px){ .ct-row{ grid-template-columns:1fr; } }
.ct-submit{ width:100%; justify-content:center; margin-top:var(--sp-2); }
.ct-form__fine{ font-size:var(--fs-12); line-height:var(--lh-normal); color:var(--fg-on-dark-3); margin-top:var(--sp-4); text-align:center; }
.ct-form__done{ text-align:center; padding:var(--sp-8) 0; }
.ct-form__done-mk{ width:54px; height:54px; border-radius:50%; margin:0 auto var(--sp-5);
  display:flex; align-items:center; justify-content:center; color:#fff; background:var(--accent); box-shadow:var(--glow-md); }
.ct-form__done-t{ font-family:var(--font-heading); font-weight:400; font-size:var(--fs-24); color:var(--fg-on-dark-1); margin:0 0 var(--sp-2); }
.ct-form__done-d{ font-size:var(--fs-15); line-height:var(--lh-relaxed); color:var(--fg-on-dark-2); margin:0; }

/* mailing / seam footer row */
.ct-seamrow{ margin-top:var(--sp-16); padding-top:var(--sp-10); border-top:1px solid var(--border-on-dark);
  display:grid; grid-template-columns:1fr auto; gap:var(--sp-8); align-items:center; }
@media(max-width:700px){ .ct-seamrow{ grid-template-columns:1fr; gap:var(--sp-5); } }
.ct-seamrow__t{ font-family:var(--font-edit); font-style:italic; font-size:var(--fs-18); line-height:var(--lh-snug); color:var(--fg-on-dark-1); margin:0; max-width:56ch; }
.ct-seamrow__mail{ font-size:var(--fs-13); color:var(--fg-on-dark-3); margin-top:var(--sp-3); }
.ct-seamrow__links{ display:flex; flex-wrap:wrap; gap:var(--sp-3); }
