/* ═══ contact.css — OWNER: G (v4 /contact/). Page-local styles adapted from
   sections.css (A3 book/faq/form recipes) + additions.css (A4 schedule embed)
   so /contact/ stays decoupled from the legacy single-page modules.
   Consumes tokens.css + scenes.css only. Motion: transform/opacity ≤600ms. ═══ */

/* ── Book scene (recipe from sections.css .book-*) ── */
.book-inner{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start;}
.book-cta h1{font-family:'Cormorant Garamond',serif;font-size:clamp(2rem,3.2vw,2.8rem);color:var(--white);line-height:1.15;margin-bottom:16px;font-weight:600;}
.book-cta h1 em{font-style:italic;color:var(--gold);}
.book-cta>p{font-size:0.92rem;color:var(--muted);line-height:1.8;margin-bottom:36px;}
.book-options{display:flex;flex-direction:column;gap:14px;}
.book-option{display:flex;align-items:center;gap:var(--s-2);padding:20px var(--s-3);border:1px solid var(--glass-border);text-decoration:none;background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));box-shadow:var(--glass-shadow);transition:border-color var(--dur-fast),transform var(--dur-micro) var(--ease-out),box-shadow var(--dur-micro) var(--ease-out);}
.book-option:hover{border-color:var(--gold);transform:translateY(var(--lift));box-shadow:var(--glass-shadow-lift);}
.book-option-icon{width:44px;height:44px;flex-shrink:0;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;color:var(--gold);font-size:1.1rem;}
.book-option-text h3{font-size:0.88rem;font-weight:600;color:var(--white);margin-bottom:2px;}
.book-option-text p{font-size:0.78rem;color:var(--muted);}
.book-option-arr{margin-left:auto;color:var(--gold);transition:transform .25s ease;}
.book-option:hover .book-option-arr{transform:translateX(5px);}

/* ── Form (recipe from sections.css .book-form/.fg) ── */
.book-form{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border-gold);box-shadow:var(--glass-shadow);padding:var(--s-5);position:relative;}
.book-form::before{content:'';position:absolute;top:0;left:0;right:0;height:120px;background:var(--glass-highlight);pointer-events:none;}
.book-form h3{font-family:'Cormorant Garamond',serif;font-size:1.5rem;color:var(--white);margin-bottom:28px;}
.f-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.fg{display:flex;flex-direction:column;gap:6px;margin-bottom:14px;}
.fg label{font-size:0.68rem;letter-spacing:0.15em;text-transform:uppercase;color:var(--muted);}
.fg input,.fg textarea,.fg select{background:rgba(var(--white-rgb),0.04);border:1px solid var(--border-subtle);color:var(--white);padding:11px 14px;font-family:'DM Sans',sans-serif;font-size:0.88rem;outline:none;transition:border-color 0.2s;}
.fg input:focus,.fg textarea:focus{border-color:var(--gold);}
.fg input::placeholder,.fg textarea::placeholder{color:var(--muted);}
.fg textarea{resize:vertical;min-height:72px;}
.fg select{color:var(--muted);cursor:pointer;}
.fg select option{background:var(--navy-card);}
.form-submit{width:100%;background:var(--gold);color:var(--navy);border:none;padding:15px;font-family:'DM Sans',sans-serif;font-size:0.78rem;font-weight:700;letter-spacing:0.13em;text-transform:uppercase;cursor:pointer;margin-top:4px;transition:background .2s,box-shadow .2s,transform .2s;}
.form-submit:hover{background:var(--gold-light);box-shadow:0 10px 30px rgba(var(--accent-rgb),0.32);transform:translateY(-2px);}
.form-submit:disabled{opacity:0.6;cursor:default;transform:none;box-shadow:none;}
.form-error{font-size:0.82rem;color:var(--warn);line-height:1.7;margin-top:14px;}
.form-error a{color:var(--gold);text-decoration:underline;}
.form-error[hidden]{display:none;}
.book-form-success{min-height:280px;display:flex;flex-direction:column;justify-content:center;outline:none;}
.book-form-success[hidden]{display:none;}
.book-form-success h3{margin-bottom:12px;}
.book-form-success p{font-size:0.9rem;color:var(--muted);line-height:1.8;}

/* ── FAQ scene (recipe from sections.css .faq-*) ── */
.faq-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start;}
.faq-item{border-bottom:1px solid var(--border);cursor:pointer;}
.faq-q{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px 0;font-size:0.95rem;font-weight:500;color:var(--white);user-select:none;}
.faq-q:focus-visible{outline:2px solid var(--gold);outline-offset:2px;}
.faq-toggle{width:26px;height:26px;flex-shrink:0;background:var(--glass-bg-light);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border-gold);display:flex;align-items:center;justify-content:center;color:var(--gold);font-size:1rem;transition:transform 0.3s;}
.faq-a{max-height:0;overflow:hidden;font-size:0.88rem;color:var(--muted);line-height:1.8;transition:max-height 0.4s ease,padding 0.3s;}
.faq-item.open .faq-a{max-height:280px;padding-bottom:20px;}
.faq-item.open .faq-toggle{transform:rotate(45deg);}

/* ── Schedule embed (recipe from additions.css A4:EMBED) ── */
.schedule-panel{padding:var(--s-3);}
#wa-calendly{width:100%;min-width:280px;height:700px;background:var(--glass-bg-soft);}
.schedule-fallback{text-align:center;font-size:var(--fs-sm);color:var(--muted);margin-top:var(--s-2);min-height:44px;display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap;}
.schedule-fallback a{color:var(--gold);}

/* ── No-backdrop-filter fallback (module-local, mirrors sections.css pattern) ── */
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .book-option,.book-form{background:rgba(var(--surface-rgb),0.92);}
  .faq-toggle{background:rgba(var(--surface-rgb),0.85);}
}

/* ── Page-local breakpoints (responsive.css is orchestrator-only) ── */
@media (max-width:1023px){
  .book-inner{grid-template-columns:1fr;gap:48px;}
  .faq-grid{grid-template-columns:1fr;gap:40px;}
  #wa-calendly{height:640px;}
}
@media (max-width:560px){
  .book-form{padding:var(--s-3);}
  .f-row{grid-template-columns:1fr;gap:0;}
  .book-option{padding:16px var(--s-2);}
}
