/* ============================================================
   Living Extra — Contact page
   Builds on livingextra.css tokens + shared .page-hero. Prefix: ct-
   ============================================================ */

/* ---------- Two-column: info + form ---------- */
.ct-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:44px;align-items:start}
/* min-width:auto would let the form's own padding push it past a 320px viewport */
.ct-grid>*{min-width:0}

/* info column */
.ct-info h2{font-size:clamp(24px,3vw,32px);margin-bottom:10px}
.ct-info .lead{color:var(--ink-2);font-size:15.5px;margin-bottom:26px;max-width:420px}
.ct-methods{display:flex;flex-direction:column;gap:14px}
.ct-method{display:flex;align-items:center;gap:16px;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:16px 18px;transition:.22s}
.ct-method:hover{border-color:var(--rose);box-shadow:var(--shadow);transform:translateY(-2px)}
.ct-method .mi{width:46px;height:46px;border-radius:12px;background:var(--rose-l);color:var(--rose);display:grid;place-items:center;flex-shrink:0;transition:.22s}
.ct-method:hover .mi{background:var(--rose);color:#fff}
.ct-method .ml{font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3)}
.ct-method .mv{font-family:var(--disp);font-weight:700;font-size:16px;color:var(--ink);margin-top:2px}
.ct-method a.mv:hover{color:var(--rose)}

.ct-extra{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:20px}
.ct-box{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:18px}
.ct-box h4{font-size:14px;margin-bottom:8px;display:flex;align-items:center;gap:8px}
.ct-box h4 svg{color:var(--rose)}
.ct-box p{color:var(--ink-2);font-size:13.5px;line-height:1.7}
.ct-social{display:flex;gap:10px;margin-top:12px}
.ct-social a{width:38px;height:38px;border-radius:11px;background:var(--bg);border:1px solid var(--line);display:grid;place-items:center;color:var(--ink-2);transition:.22s}
.ct-social a:hover{background:var(--rose);border-color:var(--rose);color:#fff;transform:translateY(-3px)}

/* form column */
.ct-form{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:32px}
.ct-form h3{font-size:22px;margin-bottom:6px}
.ct-form .fp{color:var(--ink-2);font-size:14.5px;margin-bottom:22px}
.ct-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.ct-field{display:flex;flex-direction:column;gap:6px}
.ct-field.full{grid-column:1/-1}
.ct-field label{font-size:12.5px;font-weight:700;color:var(--ink-2)}
.ct-field input,.ct-field select,.ct-field textarea{background:var(--bg);border:1.5px solid var(--line);border-radius:11px;padding:12px 14px;font-family:var(--sans);font-size:14.5px;font-weight:500;color:var(--ink);outline:none;transition:.18s;width:100%}
.ct-field input:focus,.ct-field select:focus,.ct-field textarea:focus{border-color:var(--rose);background:var(--card);box-shadow:0 0 0 3px var(--rose-l)}
.ct-field textarea{resize:vertical;min-height:130px}
.ct-form .btn{width:100%;justify-content:center;margin-top:6px}
.ct-consent{font-size:12.5px;color:var(--ink-3);margin-top:14px;text-align:center}
.ct-consent a{color:var(--rose);font-weight:600}
/* honeypot (spam trap) — visually hidden */
.ct-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* ---------- Map ---------- */
.ct-map-sec{position:relative;margin-top:8px}
.ct-map{position:relative;height:460px;background:var(--line-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.ct-map iframe{width:100%;height:100%;border:0;display:block;filter:grayscale(.1)}
.ct-map-card{position:absolute;top:50%;left:0;transform:translateY(-50%);z-index:2;background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-lg);padding:30px;max-width:380px;margin-left:max(26px,calc((100vw - 1260px)/2 + 26px))}
.ct-map-card .eyebrow{margin-bottom:12px}
.ct-map-card h3{font-size:22px;margin-bottom:12px}
.ct-map-card address{font-style:normal;color:var(--ink-2);font-size:14.5px;line-height:1.7;margin-bottom:18px}
.ct-map-card .row{display:flex;align-items:center;gap:10px;color:var(--ink-2);font-size:14px;font-weight:600;margin-bottom:8px}
.ct-map-card .row svg{color:var(--rose);flex-shrink:0}
.ct-map-card .btn{margin-top:12px}

@media(max-width:1040px){
  .ct-grid{grid-template-columns:1fr;gap:32px}
  .ct-map-card{position:static;transform:none;margin:0 0 -1px;max-width:none;border-radius:0;border-left:none;border-right:none}
  .ct-map-sec{display:flex;flex-direction:column}
}
@media(max-width:680px){
  .ct-fields{grid-template-columns:1fr}
  .ct-extra{grid-template-columns:1fr}
  .ct-form{padding:22px}
  .ct-map{height:360px}
  .ct-map-card{padding:24px}
}

/* Chat rows carry their own brand colour so LINE and WhatsApp are
   recognisable at a glance (loaded after livingextra.css, so these win
   the equal-specificity tie against the generic rose .mi styling). */
.ct-method.ct-chat--line .mi{background:#E7F8EC;color:#06C755}
.ct-method.ct-chat--line:hover .mi{background:#06C755;color:#fff}
.ct-method.ct-chat--wa .mi{background:#E6F9EE;color:#25D366}
.ct-method.ct-chat--wa:hover .mi{background:#25D366;color:#fff}
.ct-method.ct-chat--line:hover{border-color:#06C755}
.ct-method.ct-chat--wa:hover{border-color:#25D366}
.ct-method.ct-chat--line .ct-chat-go{color:#06C755}
.ct-method.ct-chat--wa .ct-chat-go{color:#25D366}
