/* ============================================================
   ARCORE — Contact forms, modals & cookies banner (shared)
   Themed per property via --fm-* tokens.
   Dark (hub/factoring/corecap) by default · cream override for Arca.
   ============================================================ */

/* ---------- theme tokens: dark default ---------- */
body{
  --fm-overlay:rgba(8,9,11,.62);
  --fm-card:var(--carbon);
  --fm-border:var(--slate);
  --fm-line:var(--slate);
  --fm-text:var(--white);
  --fm-soft:var(--mist);
  --fm-field:var(--graphite);
  --fm-field-border:var(--steel);
  --fm-field-text:var(--white);
  --fm-accent:var(--accent,var(--gold));
  --fm-accent-rgb:var(--accent-rgb,244,178,62);
  --fm-on-accent:#0A0B0D;
  --fm-radius:16px;
  --fm-font-d:var(--ff-arcore);
  --fm-font-m:var(--ff-corecap);
  --fm-font-t:var(--ff-text);
  --fm-req:var(--coral);
  --fm-hard:transparent;
}
body.corecap{ --fm-font-d:var(--ff-corecap); }

/* ---------- theme tokens: cream override (Arca) ---------- */
body.arca, body[data-form-theme="arca"]{
  --fm-overlay:rgba(36,28,20,.52);
  --fm-card:#FFFFFF;
  --fm-border:#EAE2D5;
  --fm-line:#F1EADD;
  --fm-text:#241C14;
  --fm-soft:#6B5D4F;
  --fm-field:#FFFFFF;
  --fm-field-border:#D9CDBA;
  --fm-field-text:#241C14;
  --fm-accent:#FF6B57;
  --fm-accent-rgb:255,107,87;
  --fm-on-accent:#FFFFFF;
  --fm-radius:20px;
  --fm-font-d:var(--ff-arca);
  --fm-font-m:var(--ff-corecap);
  --fm-font-t:var(--ff-text);
  --fm-req:#E5462F;
  --fm-hard:#241C14;
}

/* ============================================================
   MODAL OVERLAY
   ============================================================ */
.fm-overlay{
  position:fixed; inset:0; z-index:10000;
  display:flex; align-items:flex-start; justify-content:center;
  padding:max(20px,4vh) 18px; overflow-y:auto;
  background:var(--fm-overlay);
  opacity:0; transition:opacity .2s ease;
  -webkit-font-smoothing:antialiased;
}
.fm-overlay.open{ opacity:1; }
.fm-overlay[hidden]{ display:none; }

.fm-modal{
  position:relative; width:100%; max-width:520px; margin:auto;
  background:var(--fm-card); color:var(--fm-text);
  border:1px solid var(--fm-border); border-radius:var(--fm-radius);
  padding:32px; box-shadow:0 30px 70px -28px rgba(0,0,0,.7), 0 12px 30px rgba(0,0,0,.35);
  transform:scale(.95); opacity:0;
  transition:transform .2s cubic-bezier(.2,.8,.2,1), opacity .2s ease;
}
.fm-overlay.open .fm-modal{ transform:scale(1); opacity:1; }
@media (prefers-reduced-motion:reduce){
  .fm-overlay,.fm-modal{ transition:none; }
  .fm-modal{ transform:none; }
}

.fm-close{
  position:absolute; top:14px; right:14px; width:38px; height:38px;
  display:grid; place-items:center; cursor:pointer;
  background:transparent; border:1px solid var(--fm-border); border-radius:10px;
  color:var(--fm-soft); font-size:17px; line-height:1;
  transition:color .18s, border-color .18s, background .18s;
}
.fm-close:hover{ color:var(--fm-text); border-color:var(--fm-accent); }
.fm-close:focus-visible{ outline:2px solid var(--fm-accent); outline-offset:2px; }

/* ============================================================
   FORM (shared by modal + dedicated pages)
   ============================================================ */
.arcore-form, .arca-viral-form{ font-family:var(--fm-font-t); }
.arcore-form h2, .arca-viral-form h2{
  font-family:var(--fm-font-d); font-weight:800; letter-spacing:-.02em; line-height:1.15;
  font-size:clamp(21px,3vw,25px); color:var(--fm-text); padding-right:34px;
}
body:not(.arca):not([data-form-theme="arca"]) .arcore-form h2,
body:not(.arca):not([data-form-theme="arca"]) .arca-viral-form h2{ font-weight:700; }
.arcore-form .lead, .arca-viral-form .lead{
  color:var(--fm-soft); font-size:14px; line-height:1.55; margin-top:9px; max-width:46ch;
}

.arcore-form label, .arca-viral-form label{
  display:block; margin-top:15px;
  font-family:var(--fm-font-t); font-size:13.5px; font-weight:600; color:var(--fm-text);
}
.arcore-form .req, .arca-viral-form .req{ color:var(--fm-req); font-weight:700; }

.arcore-form input, .arca-viral-form input,
.arcore-form select, .arca-viral-form select,
.arcore-form textarea, .arca-viral-form textarea{
  width:100%; margin-top:7px;
  background:var(--fm-field); border:1px solid var(--fm-field-border);
  border-radius:11px; padding:12px 14px;
  color:var(--fm-field-text); font-family:var(--fm-font-t); font-size:15px;
  transition:border-color .18s, box-shadow .18s;
}
.arcore-form textarea, .arca-viral-form textarea{ resize:vertical; min-height:78px; line-height:1.5; }
.arcore-form input::placeholder, .arca-viral-form input::placeholder,
.arcore-form textarea::placeholder, .arca-viral-form textarea::placeholder{ color:var(--fm-soft); opacity:.8; }
.arcore-form input:focus, .arca-viral-form input:focus,
.arcore-form select:focus, .arca-viral-form select:focus,
.arcore-form textarea:focus, .arca-viral-form textarea:focus{
  outline:none; border-color:var(--fm-accent);
  box-shadow:0 0 0 3px rgba(var(--fm-accent-rgb),.18);
}
.arcore-form select, .arca-viral-form select{
  -webkit-appearance:none; appearance:none; cursor:pointer; padding-right:40px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none' stroke='%239AA0AD' stroke-width='1.8'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 14px center;
}
.arcore-form small, .arca-viral-form small{
  display:block; margin-top:5px; font-family:var(--fm-font-m);
  font-size:11px; color:var(--fm-soft); line-height:1.45;
}

/* ---------- consent block (Habeas Data) ---------- */
.form-consent{
  margin-top:20px; padding-top:16px; border-top:1px solid var(--fm-line);
  display:flex; flex-direction:column; gap:11px;
}
.checkbox-row{
  display:flex; align-items:flex-start; gap:10px; margin-top:0;
  font-family:var(--fm-font-t); font-size:13.5px; font-weight:400; line-height:1.45;
  color:var(--fm-soft); cursor:pointer;
}
.checkbox-row input[type="checkbox"]{
  width:18px; height:18px; margin:1px 0 0; flex:none;
  accent-color:var(--fm-accent); cursor:pointer;
}
.checkbox-row span{ color:var(--fm-soft); }
.checkbox-row a{ color:var(--fm-accent); text-decoration:underline; text-underline-offset:2px; font-weight:600; }
.checkbox-row a:hover{ filter:brightness(1.08); }

/* ---------- submit ---------- */
.fm-submit{
  margin-top:20px; width:100%;
  font-family:var(--fm-font-d); font-weight:700; font-size:15.5px; line-height:1;
  border:none; border-radius:12px; padding:15px 24px; cursor:pointer;
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  background:var(--fm-accent); color:var(--fm-on-accent);
  transition:transform .16s ease, box-shadow .16s ease, filter .16s ease;
}
.fm-submit .arrow{ transition:transform .16s ease; }
.fm-submit:hover .arrow{ transform:translateX(3px); }
.fm-submit:hover{ filter:brightness(1.06); transform:translateY(-2px); }
.fm-submit:focus-visible{ outline:2px solid var(--fm-accent); outline-offset:3px; }
.fm-submit[disabled]{ opacity:.72; cursor:wait; transform:none; filter:none; }
/* Arca hard-shadow offset style */
body.arca .fm-submit, body[data-form-theme="arca"] .fm-submit{
  border-radius:14px; box-shadow:4px 4px 0 var(--fm-hard);
}
body.arca .fm-submit:hover, body[data-form-theme="arca"] .fm-submit:hover{
  transform:translate(-2px,-2px); box-shadow:6px 6px 0 var(--fm-hard); filter:none;
}
body.arca .fm-submit:active, body[data-form-theme="arca"] .fm-submit:active{
  transform:translate(2px,2px); box-shadow:1px 1px 0 var(--fm-hard);
}

.fm-error{
  margin-top:14px; padding:12px 14px; border-radius:11px;
  background:rgba(229,70,47,.1); border:1px solid rgba(229,70,47,.35);
  color:var(--fm-text); font-family:var(--fm-font-t); font-size:13px; line-height:1.5;
}
.fm-error[hidden]{ display:none; }

/* ============================================================
   COOKIES BANNER
   ============================================================ */
.cookies-banner{
  position:fixed; left:50%; bottom:16px; transform:translateX(-50%) translateY(10px);
  width:calc(100% - 32px); max-width:720px; z-index:9990;
  background:var(--fm-card); border:1px solid var(--fm-border); border-radius:14px;
  padding:16px;
  box-shadow:0 1px 0 rgba(255,255,255,.04) inset, 0 18px 40px -18px rgba(0,0,0,.55), 0 50px 80px -60px rgba(0,0,0,.5);
  opacity:0; transition:opacity .3s ease, transform .3s ease;
}
.cookies-banner.show{ opacity:1; transform:translateX(-50%) translateY(0); }
.cookies-banner[hidden]{ display:none; }
@media (prefers-reduced-motion:reduce){ .cookies-banner{ transition:opacity .2s ease; transform:translateX(-50%); } }
.cookies-banner-content{ display:flex; align-items:center; gap:18px; flex-wrap:wrap; }
.cookies-banner p{
  flex:1 1 300px; margin:0;
  font-family:var(--fm-font-t); font-size:13px; line-height:1.5; color:var(--fm-soft);
}
.cookies-banner a{ color:var(--fm-accent); text-decoration:underline; text-underline-offset:2px; font-weight:600; }
.cookies-banner-actions{ display:flex; gap:10px; flex:none; }
.btn-cookies-accept, .btn-cookies-reject{
  font-family:var(--fm-font-d); font-weight:700; font-size:14px; line-height:1;
  border-radius:10px; padding:11px 20px; cursor:pointer;
  transition:transform .16s ease, filter .16s ease, border-color .16s ease, color .16s ease;
}
.btn-cookies-accept{ background:var(--fm-accent); color:var(--fm-on-accent); border:none; }
.btn-cookies-accept:hover{ filter:brightness(1.06); transform:translateY(-1px); }
.btn-cookies-reject{ background:transparent; color:var(--fm-text); border:1px solid var(--fm-border); }
.btn-cookies-reject:hover{ border-color:var(--fm-accent); color:var(--fm-accent); }
.btn-cookies-accept:focus-visible, .btn-cookies-reject:focus-visible{ outline:2px solid var(--fm-accent); outline-offset:2px; }
@media (max-width:560px){
  .cookies-banner-content{ flex-direction:column; align-items:stretch; }
  .cookies-banner-actions{ justify-content:flex-end; }
}

/* ============================================================
   ARCA — hero viral trigger + post-calc CTA block (Form 3)
   ============================================================ */
.arca button.conv{
  background:none; border:none; padding:0; margin:0; font:inherit; cursor:pointer;
  color:var(--coral-deep); font-weight:600;
  text-decoration:underline; text-underline-offset:3px; text-decoration-thickness:2px;
  text-decoration-color:var(--coral);
}
.arca button.conv:hover{ color:var(--coral); }
.arca button.conv:focus-visible{ outline:2px solid var(--coral); outline-offset:3px; border-radius:3px; }

.arca .post-calc-cta{
  max-width:760px; margin:24px auto 0; text-align:center;
  background:var(--paper); border:1px solid var(--line); border-radius:var(--r-md);
  box-shadow:var(--sh-soft); padding:32px 28px;
}
.arca .post-calc-cta h3{ font-family:var(--ff-d); font-weight:800; font-size:clamp(20px,2.6vw,24px); color:var(--ink); }
.arca .post-calc-cta .cta-stack{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; margin-top:22px; }
.arca .post-calc-cta .cta-fallback{
  font-family:var(--ff-m); font-size:12.5px; color:var(--ink-faint); margin-top:20px; line-height:1.6;
}
.arca .post-calc-cta .cta-fallback a{ color:var(--coral-deep); text-decoration:underline; text-underline-offset:2px; }
.arca .btn-outline{
  font-family:var(--ff-d); font-weight:700; font-size:15.5px; line-height:1;
  border-radius:14px; padding:14px 24px; cursor:pointer;
  display:inline-flex; align-items:center; gap:9px;
  background:var(--paper); color:var(--coral-deep); border:1.5px solid var(--coral);
  box-shadow:4px 4px 0 rgba(255,107,87,.22);
  transition:transform .15s var(--ease), box-shadow .15s var(--ease);
}
.arca .btn-outline .arrow{ transition:transform .15s var(--ease); }
.arca .btn-outline:hover .arrow{ transform:translateX(3px); }
.arca .btn-outline:hover{ transform:translate(-2px,-2px); box-shadow:6px 6px 0 rgba(255,107,87,.22); }
.arca .btn-outline:active{ transform:translate(2px,2px); box-shadow:1px 1px 0 rgba(255,107,87,.22); }
.arca .btn-outline:focus-visible{ outline:2px solid var(--coral); outline-offset:3px; }

/* ============================================================
   DEDICATED CONTACT / THANK-YOU PAGE SCAFFOLD
   ============================================================ */
.fm-page{ min-height:100vh; display:flex; flex-direction:column; }
.fm-page-bar{
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  max-width:760px; width:100%; margin:0 auto; padding:22px 26px;
}
.fm-page-main{
  flex:1; display:flex; align-items:center; justify-content:center;
  padding:32px 18px 96px;
}
.fm-card{
  width:100%; max-width:520px;
  background:var(--fm-card); border:1px solid var(--fm-border); border-radius:var(--fm-radius);
  padding:34px; box-shadow:0 30px 70px -30px rgba(0,0,0,.6);
}
.fm-back{
  font-family:var(--fm-font-m); font-size:12.5px; color:var(--fm-soft);
  display:inline-flex; align-items:center; gap:7px; transition:color .18s;
}
.fm-back:hover{ color:var(--fm-accent); }

/* thank-you content */
.fm-thanks{ text-align:center; }
.fm-thanks .fm-seal{
  display:inline-flex; align-items:center; gap:8px; margin:0 auto;
  font-family:var(--fm-font-m); font-size:12px; font-weight:700; letter-spacing:.5px;
  padding:7px 14px; border-radius:100px;
  background:rgba(var(--fm-accent-rgb),.12); color:var(--fm-accent);
}
.fm-thanks .fm-seal .dot{ width:7px; height:7px; border-radius:50%; background:var(--fm-accent); }
.fm-thanks h1{
  font-family:var(--fm-font-d); font-weight:800; letter-spacing:-.02em; line-height:1.1;
  font-size:clamp(28px,5vw,40px); color:var(--fm-text); margin-top:18px;
}
body:not(.arca):not([data-form-theme="arca"]) .fm-thanks h1{ font-weight:700; }
.fm-thanks .fm-sla{ color:var(--fm-text); font-size:17px; line-height:1.6; margin:18px auto 0; max-width:44ch; }
.fm-thanks .fm-sub{ color:var(--fm-soft); font-size:14px; line-height:1.65; margin:20px auto 0; max-width:46ch; }
.fm-thanks .fm-sub a{ color:var(--fm-accent); text-decoration:underline; text-underline-offset:2px; }
.fm-thanks .fm-actions{ margin-top:30px; display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }
