/* =========================================================================
   ATLANTIS STRENGTH, Contact
   Reuses tokens.css + styles.css + industries.css (.crumbs/.ihero) +
   adn.css (.apply* form fields). Adds: contact split, method cards,
   map block, newsletter band, FAQ accordion. No page JS.
   ========================================================================= */

/* ------------------------ Contact split (form + info) ------------------- */
.contact{ background:var(--atl-ink-1000); padding-block:clamp(56px,7vw,104px); border-top:1px solid var(--atl-ink-800); }
.contact__grid{ display:grid; grid-template-columns:0.95fr 1.15fr; gap:clamp(36px,5vw,72px); align-items:start; }
/* grid children default to min-width:auto, long emails would push the track wider than the viewport */
.contact__grid > *{ min-width:0; }

/* Left column, direct contact methods */
.contact__aside .section-title{ margin-bottom:20px; }
.contact__lede{ font-size:15.5px; line-height:1.7; color:var(--atl-ink-300); margin:0 0 34px; max-width:44ch; }
.contact__lede a{ color:#fff; text-decoration:underline; text-underline-offset:3px; }
.contact__lede a:hover{ color:var(--accent); }
.contact__pagehead{ margin-bottom:36px; }
.contact__pagehead .section-title{ margin-bottom:14px; }
.contact__pagehead .contact__lede{ max-width:68ch; margin-bottom:0; }
.methods{ display:flex; flex-direction:column; gap:14px; }
.method{ display:flex; align-items:flex-start; gap:16px; padding:20px 22px;
  background:var(--atl-ink-900); border:1px solid var(--atl-ink-700);
  transition:border-color var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out); }
.method:hover{ border-color:var(--accent); transform:translateY(-2px); }
.method__icon{ flex:none; display:inline-flex; align-items:center; justify-content:center;
  width:46px; height:46px; border:1px solid var(--accent); border-radius:50%; color:var(--accent); }
.method__body{ min-width:0; display:flex; flex-direction:column; gap:3px; }
.method__label{ font-family:var(--font-sans); font-weight:700; font-size:11px; letter-spacing:.1em;
  text-transform:uppercase; color:var(--atl-ink-400); }
.method__value{ font-family:var(--font-display); font-weight:700; font-size:17px; text-transform:uppercase;
  color:#fff; letter-spacing:.01em; line-height:1.2; overflow-wrap:anywhere; }
.method__value a{ transition:color var(--dur-quick) var(--ease-out); }
.method__value a:hover{ color:var(--accent); }
.method__sub{ font-size:13px; color:var(--atl-ink-400); line-height:1.4; }

/* Right column, the form (reuses .apply__* fields from adn.css) */
.contact__formwrap{ background:var(--atl-ink-900); border:1px solid var(--atl-ink-700);
  border-top:2px solid var(--accent); padding:clamp(28px,3vw,44px); }
.contact__formhead{ font-family:var(--font-display); font-weight:700; font-size:clamp(20px,2vw,26px);
  text-transform:uppercase; color:#fff; letter-spacing:.01em; margin:0 0 8px; }
.contact__formsub{ font-size:14px; line-height:1.6; color:var(--atl-ink-300); margin:0 0 28px; }
.contact__consent{ grid-column:1 / -1; display:flex; align-items:flex-start; gap:11px;
  font-size:12.5px; line-height:1.5; color:var(--atl-ink-400); }
.contact__consent input{ flex:none; width:17px; height:17px; margin-top:1px; accent-color:var(--accent); }

/* ------------------------------- Map block ------------------------------ */
.locate{ background:#000; padding-block:clamp(56px,7vw,104px); border-top:1px solid var(--atl-ink-800); }
.locate__grid{ display:grid; grid-template-columns:1fr 1.25fr; gap:clamp(32px,4vw,60px); align-items:stretch; }
.locate__card{ display:flex; flex-direction:column; }
.locate__card .section-title{ margin-bottom:22px; }
.locate__rows{ display:flex; flex-direction:column; gap:0; margin-bottom:28px; }
.locate__row{ display:flex; gap:14px; padding:16px 0; border-bottom:1px solid var(--atl-ink-700); }
.locate__row svg{ flex:none; color:var(--accent); margin-top:2px; }
.locate__rowlabel{ font-size:11px; letter-spacing:.09em; text-transform:uppercase; color:var(--atl-ink-400); margin-bottom:4px; }
.locate__rowval{ font-size:14.5px; line-height:1.55; color:var(--atl-ink-100); }
.locate__rowval a{ color:#fff; transition:color var(--dur-quick) var(--ease-out); }
.locate__rowval a:hover{ color:var(--accent); }
.locate__actions{ display:flex; gap:14px; flex-wrap:wrap; margin-top:auto; }

.locate__map{ position:relative; min-height:340px; overflow:hidden;
  border:1px solid var(--atl-ink-700); background:var(--atl-ink-900); isolation:isolate; }
/* Prototype map: engineered-grid backdrop + centre pin. Swap for a live embed later. */
.locate__map::before{ content:""; position:absolute; inset:0; z-index:-1; opacity:.5;
  background:
    linear-gradient(rgba(194,32,50,.05) 1px, transparent 1px) 0 0 / 100% 44px,
    linear-gradient(90deg, rgba(194,32,50,.05) 1px, transparent 1px) 0 0 / 44px 100%,
    linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px) 0 0 / 100% 132px,
    linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px) 0 0 / 132px 100%,
    radial-gradient(120% 120% at 70% 30%, #16171a 0%, #0b0b0c 70%); }
.locate__pin{ position:absolute; top:50%; left:50%; transform:translate(-50%,-100%); color:var(--accent); }
.locate__pin svg{ filter:drop-shadow(0 8px 14px rgba(0,0,0,.6)); }
.locate__pulse{ position:absolute; top:50%; left:50%; width:22px; height:22px; transform:translate(-50%,-50%);
  border-radius:50%; background:rgba(194,32,50,.35); }
/* Location beacon: a slow, restrained radar pulse (motion only; reduced-motion off). */
@keyframes locatePulse{
  0%   { transform:translate(-50%,-50%) scale(.6);  opacity:.55; }
  70%  { transform:translate(-50%,-50%) scale(2.6); opacity:0; }
  100% { transform:translate(-50%,-50%) scale(2.6); opacity:0; }
}
html.motion .locate__pulse{ animation:locatePulse 3s var(--ease-out) infinite; }
.locate__tag{ position:absolute; left:20px; bottom:20px; display:flex; flex-direction:column; gap:2px;
  padding:14px 18px; background:rgba(8,8,9,.86); border:1px solid var(--atl-ink-700); backdrop-filter:blur(4px); }
.locate__tagname{ font-family:var(--font-display); font-weight:700; font-size:14px; text-transform:uppercase; color:#fff; letter-spacing:.02em; }
.locate__tagaddr{ font-size:12.5px; color:var(--atl-ink-300); }

/* ------------------------------- Newsletter ----------------------------- */
.news{ position:relative; overflow:hidden;
  background:radial-gradient(130% 180% at 82% 0%, var(--atl-red) 0%, #7d1421 45%, #14060a 100%); }
.news::before{ content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(0,0,0,.5), transparent 60%); }
.news__inner{ position:relative; display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,4vw,60px);
  align-items:center; padding-block:clamp(44px,5vw,72px); }
.news__title{ font-family:var(--font-display); font-weight:800; text-transform:uppercase; color:#fff;
  font-size:clamp(24px,3vw,40px); line-height:1; letter-spacing:var(--track-tight); margin:0 0 10px; }
.news__sub{ color:rgba(255,255,255,.88); font-size:15px; line-height:1.55; margin:0; max-width:46ch; }
.news__form{ display:flex; gap:12px; flex-wrap:wrap; }
.news__input{ flex:1 1 220px; min-width:0; height:52px; padding:0 18px; border:1px solid rgba(255,255,255,.5);
  background:rgba(0,0,0,.2); color:#fff; font-family:var(--font-sans); font-size:14px; outline:none;
  transition:border-color var(--dur-quick) var(--ease-out), background var(--dur-quick) var(--ease-out); }
.news__input::placeholder{ color:rgba(255,255,255,.7); }
.news__input:focus{ border-color:#fff; background:rgba(0,0,0,.32); }
.news__btn{ flex:0 0 auto; height:52px; }

/* --------------------------------- FAQ ---------------------------------- */
.faq{ background:var(--atl-ink-1000); padding-block:clamp(56px,7vw,104px); border-top:1px solid var(--atl-ink-800); }
.faq__list{ max-width:900px; margin:0 auto; border-top:1px solid var(--atl-ink-700); }
.faq__item{ border-bottom:1px solid var(--atl-ink-700); }
.faq__q{ list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:20px;
  padding:22px 4px; font-family:var(--font-display); font-weight:700; font-size:clamp(15px,1.5vw,19px);
  text-transform:uppercase; color:#fff; letter-spacing:.01em; line-height:1.3;
  transition:color var(--dur-quick) var(--ease-out); }
.faq__q::-webkit-details-marker{ display:none; }
.faq__q:hover{ color:var(--accent); }
.faq__icon{ position:relative; flex:none; width:18px; height:18px; }
.faq__icon::before, .faq__icon::after{ content:""; position:absolute; background:var(--accent);
  transition:transform var(--dur-base) var(--ease-out), opacity var(--dur-base) var(--ease-out); }
.faq__icon::before{ top:8px; left:0; width:18px; height:2px; }
.faq__icon::after{ top:0; left:8px; width:2px; height:18px; }
.faq__item[open] .faq__icon::after{ transform:rotate(90deg); opacity:0; }
.faq__a{ padding:0 4px 24px; }
.faq__a p{ margin:0; font-size:15px; line-height:1.7; color:var(--atl-ink-300); max-width:74ch; }
/* The answer eases in when an item opens (native <details> otherwise snaps). */
@keyframes faqOpen{ from{ opacity:0; transform:translateY(-6px); } to{ opacity:1; transform:none; } }
html.motion .faq__item[open] .faq__a{ animation:faqOpen var(--dur-base) var(--ease-out); }

/* ------------------------------ Responsive ------------------------------ */
@media (max-width:1080px){
  .contact__grid{ grid-template-columns:1fr; }
  .locate__grid{ grid-template-columns:1fr; }
  .locate__map{ min-height:300px; order:-1; }
  .news__inner{ grid-template-columns:1fr; }
}
@media (max-width:620px){
  .news__btn{ width:100%; }
  .locate__actions .btn{ width:100%; }
}

/* ------------------------------- Reduced motion ------------------------- */
@media (prefers-reduced-motion: reduce){
  html.motion .locate__pulse{ animation:none !important; }
  html.motion .faq__item[open] .faq__a{ animation:none !important; }
  .method, .method:hover{ transition:none !important; transform:none !important; }
  .faq__icon::before, .faq__icon::after,
  .faq__item[open] .faq__icon::after{ transition:none !important; }
}
