/* ============================== CONTACT ============================== */

.contact-hero{ text-align:center; padding: clamp(3rem,6vw,5rem) 0 3rem; }
.contact-hero h1{ font-size: clamp(2.2rem,4.8vw,3.6rem); max-width:20ch; margin: 1rem auto 0; }
.contact-hero p{ color: var(--ink-dim); max-width:56ch; margin: 1.1rem auto 0; }

.reason-grid{ display:grid; grid-template-columns: repeat(3,1fr); gap:1.4rem; }
.reason-card{ padding:2rem 1.6rem; text-align:center; }
.reason-card .ico{ width:56px; height:56px; border-radius:18px; display:grid; place-items:center; margin-inline:auto; font-size:1.6rem; }
.reason-card h3{ font-size:1.1rem; margin-top:1rem; }
.reason-card p{ font-size:.85rem; color: var(--ink-faint); margin-top:.5rem; line-height:1.5; }
.reason-card a{ display:inline-block; margin-top:1rem; font-weight:800; font-family:var(--f-display); color: var(--coral); font-size:.9rem; }
@media (max-width:820px){ .reason-grid{ grid-template-columns:1fr; } }

.contact-form-wrap{ max-width:640px; margin:0 auto; padding:2.4rem clamp(1.5rem,4vw,3rem); }
.form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:1.1rem; margin-top:1.6rem; }
.form-field{ display:flex; flex-direction:column; gap:.5rem; }
.form-field.full{ grid-column:1/-1; }
.form-field label{ font-size:.82rem; font-weight:700; color: var(--ink-dim); }
.form-field input, .form-field select, .form-field textarea{ padding:.85em 1em; border-radius: var(--radius-sm); border:2px solid var(--line); background: var(--cream); font-size:.9rem; transition: border-color var(--dur-fast); }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus{ border-color: var(--coral); }
.form-field textarea{ resize:vertical; min-height:110px; }
.form-status{ font-size:.85rem; margin-top:1rem; min-height:1.2em; font-weight:700; }
.form-status.is-success{ color: var(--mint-dim); }
.form-status.is-error{ color: var(--coral-dim); }
.contact-form-wrap .btn{ margin-top:1.6rem; width:100%; }

.contact-toast-backdrop{ position:fixed; inset:0; z-index:290; background:rgba(43,33,24,.18); opacity:0; visibility:hidden; transition:opacity .25s ease,visibility .25s ease; }
.contact-toast-backdrop.is-visible{ opacity:1; visibility:visible; }
.contact-toast{ position:fixed; top:50%; left:50%; z-index:300; width:min(360px,calc(100vw - 2rem)); box-sizing:border-box; transform:translate(-50%,-45%) scale(.96); padding:4.2rem 1.5rem 1.5rem; border:1px solid rgba(43,33,24,.1); border-top:6px solid var(--coral); border-radius:var(--radius-md); background:var(--cream-card); color:var(--ink); font-family:var(--f-display); text-align:center; box-shadow:0 18px 50px rgba(43,33,24,.24); opacity:0; visibility:hidden; transition:opacity .25s ease,visibility .25s ease,transform .25s ease; }
.contact-toast.is-visible{ opacity:1; visibility:visible; transform:translate(-50%,-50%) scale(1); }
.contact-success-icon{ position:absolute; top:1.15rem; left:50%; display:grid; place-items:center; width:42px; height:42px; transform:translateX(-50%); border-radius:50%; background:var(--g-coral); color:#fff; font-size:1.35rem; box-shadow:var(--shadow-coral); }
.contact-confetti{ position:absolute; top:.55rem; left:50%; width:100%; transform:translateX(-50%); color:var(--sun-dim); font-size:.72rem; letter-spacing:.25rem; white-space:nowrap; }
.contact-toast h2{ margin:0; font-size:1.25rem; }
.contact-toast p{ margin:.6rem auto 1.25rem; color:var(--ink-faint); font-family:var(--f-body); font-size:.78rem; font-weight:600; line-height:1.5; max-width:34ch; }
.contact-toast button{ border:0; border-radius:4px; padding:.6rem 1.4rem; background:var(--coral); color:#fff; font-family:var(--f-display); font-size:.68rem; font-weight:800; text-transform:uppercase; cursor:pointer; }
.contact-toast button:hover{ background:var(--coral-dim); transform:translateY(-1px); }

.faq-wrap{ max-width:760px; margin:0 auto; display:flex; flex-direction:column; gap:.9rem; }
.acc-item{ border-radius: var(--radius-md); overflow:hidden; background: var(--cream-card); box-shadow: var(--shadow-sm); }
.acc-trigger{ width:100%; display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1.2rem 1.5rem; text-align:left; font-family:var(--f-display); font-weight:700; font-size:.98rem; }
.acc-trigger .plus{ flex:none; width:22px; height:22px; position:relative; }
.acc-trigger .plus::before, .acc-trigger .plus::after{ content:""; position:absolute; background: var(--coral); border-radius:2px; transition: transform var(--dur-med); }
.acc-trigger .plus::before{ left:0; top:50%; width:100%; height:3px; transform:translateY(-50%); }
.acc-trigger .plus::after{ top:0; left:50%; width:3px; height:100%; transform:translateX(-50%); }
.acc-item.is-open .acc-trigger .plus::after{ transform: translateX(-50%) rotate(90deg); opacity:0; }
.acc-panel{ max-height:0; overflow:hidden; transition: max-height var(--dur-med) var(--ease-out); }
.acc-panel-inner{ padding:0 1.5rem 1.3rem; color: var(--ink-dim); font-size:.9rem; line-height:1.6; }
