/* ============================================================
   Form stage: a dedicated dark section that holds a contact form.
   Moving gradient background (js/formstage.js, the reel's colour
   field) + a liquid-glass card. Used on home, contact and
   free-proposal in all three languages.
   ============================================================ */
.fstage{
  /* local dark theme: inline styles that read these vars follow it */
  --ink:#f7f6f4;--bg:#0b0a08;--muted:rgba(247,246,244,.72);--line:rgba(247,246,244,.16);--navy:#c9a86e;
  --fs-champ:#c9a86e;--fs-gold-1:#f6e7c6;--fs-gold-2:#d4b47a;--fs-gold-3:#a88a55;
  position:relative;isolation:isolate;overflow:hidden;color:var(--ink);
  padding:120px 48px 128px;border-top:0;
  background:
    radial-gradient(60% 50% at 18% 22%,rgba(120,106,73,.55),transparent 70%),
    radial-gradient(55% 45% at 85% 78%,rgba(201,168,110,.28),transparent 70%),
    #0b0a08;
}
.fstage-bg{position:absolute;inset:0;width:100%;height:100%;z-index:-2;display:block;opacity:0;transition:opacity 1.2s ease}
.fstage-bg.is-on{opacity:1}
/* film grain + edge vignette, both static (no per-frame cost) */
.fstage::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.09;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.fstage::after{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(120% 90% at 50% 45%,transparent 55%,rgba(5,5,4,.6) 100%)}

.fstage-inner{position:relative;max-width:760px;margin:0 auto;text-align:center}
.fstage .sec-label,.fstage .contact-eyebrow{color:var(--fs-champ);justify-content:center}
.fstage .sec-h2,.fstage .contact-headline{color:#fff;margin-left:auto;margin-right:auto}
.fstage .sec-intro,.fstage .contact-pricing{color:var(--muted);margin-left:auto;margin-right:auto;max-width:38em}
.fs-grad{background:linear-gradient(100deg,var(--fs-gold-1) 0%,var(--fs-gold-2) 45%,var(--fs-gold-3) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}

/* liquid-glass card */
.fstage-card{position:relative;margin:44px auto 0;max-width:640px;text-align:left;padding:40px 40px 34px;border-radius:22px;
  background:linear-gradient(140deg,rgba(255,255,255,.11),rgba(255,255,255,.045) 45%,rgba(255,255,255,.025));
  border:1px solid rgba(255,255,255,.14);border-top-color:rgba(255,255,255,.34);
  box-shadow:0 1px 0 rgba(255,255,255,.18) inset,0 40px 120px rgba(0,0,0,.55);
  -webkit-backdrop-filter:blur(18px) saturate(1.15);backdrop-filter:blur(18px) saturate(1.15);overflow:hidden}
.fstage-card::before{content:'';position:absolute;inset:0;pointer-events:none;border-radius:inherit;
  background:radial-gradient(120% 60% at 12% 0%,rgba(255,255,255,.16),rgba(255,255,255,0) 55%)}
.fstage-card::after{content:'';position:absolute;top:0;bottom:0;left:-60%;width:45%;pointer-events:none;transform:skewX(-18deg);opacity:0;
  background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.18),rgba(255,255,255,0))}
.fstage-card.is-in::after{animation:fsSheen 1.6s cubic-bezier(.19,1,.22,1) .35s 1 both}
@keyframes fsSheen{0%{left:-60%;opacity:1}100%{left:130%;opacity:0}}
.fstage-card>*{position:relative}
.fstage .contact-or{display:block;text-align:center;color:var(--muted);margin-bottom:22px}

/* fields (both form systems: .pform/.pf-* and .contact-form/.cf-*) */
.fstage .pform{max-width:none;margin:0}
.fstage .pf-field,.fstage .cf-field{margin:0 0 18px;padding:0;border:0}
.fstage .cf-field:last-of-type{border:0}
.fstage .pf-label,.fstage .cf-label{color:rgba(247,246,244,.8);margin-bottom:8px}
html[lang="th"] .fstage .pf-label,html[lang="th"] .fstage .cf-label,
html[lang="th"] .fstage .sec-label,html[lang="th"] .fstage .contact-eyebrow,
html[lang="th"] .fstage .contact-or,html[lang="th"] .fstage .contact-pricing,
html[lang="th"] .fstage .contact-expect-label{letter-spacing:normal;text-transform:none;font-family:var(--sans)}
html[lang="th"] .fstage .pf-label,html[lang="th"] .fstage .cf-label{font-size:14px}
.fstage .pf-field input,.fstage .pf-field textarea,.fstage .cf-field input,.fstage .cf-field textarea{
  width:100%;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.16);border-radius:12px;
  padding:14px 16px;font-family:var(--sans);font-size:16px;font-weight:300;line-height:1.6;color:#fff;
  transition:border-color .25s,box-shadow .25s,background .25s}
.fstage .pf-field textarea,.fstage .cf-field textarea{min-height:130px;resize:vertical}
.fstage .pf-field input::placeholder,.fstage .pf-field textarea::placeholder,
.fstage .cf-field input::placeholder,.fstage .cf-field textarea::placeholder{color:rgba(247,246,244,.5)}
.fstage .pf-field input:hover,.fstage .pf-field textarea:hover,.fstage .cf-field input:hover,.fstage .cf-field textarea:hover{border-color:rgba(255,255,255,.28)}
.fstage .pf-field input:focus,.fstage .pf-field textarea:focus,.fstage .cf-field input:focus,.fstage .cf-field textarea:focus{
  outline:none;border-color:var(--fs-champ);background:rgba(255,255,255,.08);box-shadow:0 0 0 3px rgba(201,168,110,.28)}

/* submit: full-width gold */
.fstage-card button[type=submit]{display:flex;width:100%;justify-content:center;align-items:center;margin-top:8px;padding:18px 28px;border:0;border-radius:12px;cursor:pointer;
  background:linear-gradient(100deg,var(--fs-gold-1) 0%,var(--fs-gold-2) 48%,var(--fs-gold-3) 100%);color:#16130d;
  font-family:var(--mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase;font-weight:500;
  box-shadow:0 12px 40px rgba(201,168,110,.25);transition:transform .25s cubic-bezier(.19,1,.22,1),box-shadow .25s,filter .25s}
html[lang="th"] .fstage-card button[type=submit]{letter-spacing:normal;text-transform:none;font-family:var(--sans);font-size:16px;font-weight:600}
.fstage-card button[type=submit]::before{display:none}
.fstage-card button[type=submit]:hover{transform:translateY(-2px);filter:brightness(1.05);box-shadow:0 18px 50px rgba(201,168,110,.35);color:#16130d}
.fstage-card button[type=submit]:active{transform:translateY(0)}
.fstage-card button[type=submit]:focus-visible{outline:2px solid #fff;outline-offset:3px}
.fstage-card button[type=submit]:disabled{cursor:wait;filter:saturate(.6) brightness(.9);transform:none}
.fstage .pf-note{color:var(--muted);text-align:center;margin-top:16px}
.fstage .pf-note a{color:var(--fs-champ);border-bottom-color:rgba(201,168,110,.45)}
.fstage .pf-done{color:var(--fs-champ);border-top-color:var(--fs-champ);padding:16px 0 8px}

/* alternative contact buttons under the card */
.fstage .pf-alt,.fstage .fstage-alt{margin-top:36px;text-align:center}
.fstage .pf-or{display:block;color:var(--muted);margin-bottom:16px}
.fstage .btn-row{justify-content:center;flex-wrap:wrap}
.fstage .btn{border-color:rgba(255,255,255,.3);color:#fff;border-radius:999px}
.fstage .btn::before{background:#fff;border-radius:inherit}
.fstage .btn:hover{color:#0b0a08}
.fstage .btn:focus-visible{outline:2px solid var(--fs-champ);outline-offset:3px}

/* homepage contact block: single centred column */
.fstage.contact-section{padding:120px 48px 128px;border-top:0}
.fstage .contact-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:28px}
.fstage .book-call-btn{margin:0;background:#fff;color:#0b0a08;border-radius:999px}
.fstage .book-call-btn:hover{background:var(--fs-champ);color:#0b0a08}
.fstage .line-btn{margin:0;border-radius:999px}
.fstage .contact-expect{margin:40px auto 0;padding-top:28px;border-top:1px solid var(--line);max-width:640px}
.fstage .contact-expect-label{text-align:center;color:var(--muted)}
.fstage .contact-expect-list{flex-direction:row;flex-wrap:wrap;justify-content:center;gap:10px 28px}
.fstage .contact-expect-list li{color:var(--muted)}
.fstage .contact-expect-list li::before{background:var(--fs-champ)}
.fstage .book-call-btn:focus-visible,.fstage .line-btn:focus-visible{outline:2px solid var(--fs-champ);outline-offset:3px}

@media(max-width:768px){
  .fstage,.fstage.contact-section{padding:84px 20px 92px}
  .fstage-card{padding:28px 20px 24px;border-radius:18px;margin-top:32px}
  .fstage .contact-actions>a{width:100%;justify-content:center}
  .fstage .contact-expect-list{flex-direction:column;align-items:flex-start;max-width:22em;margin:0 auto}
}
@media(prefers-reduced-motion:reduce){
  .fstage-card.is-in::after{animation:none}
  .fstage-bg{transition:none}
}
.fstage-card + .btn-row{margin-top:32px}
.fstage .sec-h2,.fstage .contact-headline{text-wrap:balance}
html[lang="th"] .fstage .sec-label,html[lang="th"] .fstage .contact-eyebrow,html[lang="th"] .fstage .contact-or,html[lang="th"] .fstage .pf-or{font-size:14px}
html[lang="th"] .fstage .contact-pricing{font-size:15px;line-height:1.7}
html[lang="ja"] .fstage .pf-label,html[lang="ja"] .fstage .cf-label,html[lang="ja"] .fstage .contact-or{font-size:13px;letter-spacing:.04em;font-family:var(--sans)}
html[lang="ja"] .fstage-card button[type=submit]{font-family:var(--sans);font-size:15px;letter-spacing:.06em;font-weight:600}
html[lang="th"] .fstage .book-call-btn{font-family:var(--sans);font-size:15px;letter-spacing:normal;text-transform:none;font-weight:600}
html[lang="th"] .fstage .contact-expect-label{font-size:14px}

/* ── Existing dark sections get the same live background (cta bands, blog contact box, home results, dark page sections) ── */
.fs-live{position:relative;isolation:isolate;overflow:hidden}
.fs-live>.fstage-bg{z-index:-2}
.fs-live>.fs-veil{position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.09'/%3E%3C/svg%3E"),
    radial-gradient(120% 90% at 50% 45%,transparent 50%,rgba(5,5,4,.55) 100%),
    rgba(11,10,8,.42)}
.cta-band.fs-live p,.contact-cta.fs-live p{color:rgba(247,246,244,.82)}
