/* ==========================================================================
   booking — STRUCTURE
   Speaking invitation page and form. Every visual value is supplied by
   eil-core tokens; butterfly artwork remains an approved external asset.
   ========================================================================== */

.eil-booking{position:relative;overflow:hidden}
.eil-booking h4{margin:0;color:var(--eil-heading);font-family:var(--eil-font-display);line-height:1.25}

/* --- opening ------------------------------------------------------------- */
.eil-booking-head{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr);gap:34px 72px;align-items:center}
.eil-booking-intro h2{font-size:var(--eil-step4);letter-spacing:-.025em;margin-top:12px;max-width:16ch}
.eil-booking-intro .eil-lede{margin-top:22px;max-width:58ch}
.eil-booking-formats{list-style:none;margin:26px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:9px}
.eil-booking-formats li{padding:7px 13px;border:1px solid var(--eil-border);border-radius:var(--eil-radius-pill);
  color:var(--eil-heading);background:var(--eil-surface);font-family:var(--eil-font-display);font-size:.82rem;font-weight:700}

.eil-booking-quote{margin:0;position:relative;min-height:390px;padding:190px 34px 34px;overflow:hidden;
  border:1px solid var(--eil-border);border-radius:var(--eil-radius);background:var(--eil-surface);box-shadow:var(--eil-shadow)}
.eil-booking-quote::before{content:"";position:absolute;inset:22px;border:1px solid var(--eil-border);
  border-radius:var(--eil-radius-pill);opacity:.55;transform:rotate(-12deg)}
.eil-booking-marks{position:absolute;inset:30px 28px auto;display:flex;align-items:center;justify-content:center;gap:12px}
.eil-booking-marks img{width:clamp(76px,8vw,112px);height:auto;object-fit:contain}
.eil-booking-marks img:first-child{transform:translateY(20px) rotate(-7deg)}
.eil-booking-marks img:last-child{transform:translateY(18px) rotate(7deg)}
.eil-booking-quote blockquote{position:relative;margin:0;color:var(--eil-heading);font-family:var(--eil-font-display);
  font-size:clamp(1.35rem,1.1rem + .9vw,1.9rem);font-weight:700;line-height:1.25;text-wrap:balance}
.eil-booking-quote figcaption{position:relative;margin-top:12px;color:var(--eil-accent-text);font-size:.9rem;font-weight:700}

/* --- credibility --------------------------------------------------------- */
.eil-booking-cred{margin:42px 0 58px;padding:20px 0;border-top:1px solid var(--eil-border);border-bottom:1px solid var(--eil-border);
  display:grid;grid-template-columns:auto 1fr;gap:18px 30px;align-items:center}
.eil-booking-cred p{color:var(--eil-text-dim);font-family:var(--eil-font-display);font-size:.72rem;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase}
.eil-booking-cred ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px 0}
.eil-booking-cred li{color:var(--eil-heading);font-family:var(--eil-font-display);font-weight:700;font-size:.92rem}
.eil-booking-cred li:not(:last-child)::after{content:"·";display:inline-block;margin:0 16px;color:var(--eil-accent-text)}

/* --- invitation + form -------------------------------------------------- */
.eil-booking-body{display:grid;grid-template-columns:minmax(250px,.62fr) minmax(0,1.38fr);gap:38px 68px;align-items:start}
.eil-booking-welcome{position:sticky;top:78px}
.eil-booking-welcome h3{font-size:var(--eil-step3);margin:10px 0 18px}
.eil-booking-welcome>p:last-of-type{color:var(--eil-text-dim);max-width:45ch}
.eil-booking-note{margin-top:28px;padding:22px 24px;border-left:3px solid var(--eil-accent);background:var(--eil-surface)}
.eil-booking-note h4{font-size:1rem}
.eil-booking-note ul{margin:12px 0 0;padding-left:1.15em;color:var(--eil-text-dim);font-size:.9rem}
.eil-booking-note li+li{margin-top:7px}

.eil-booking-request{min-width:0;padding:clamp(24px,4vw,42px);border:1px solid var(--eil-border);
  border-radius:var(--eil-radius);background:var(--eil-surface);box-shadow:var(--eil-shadow)}
.eil-booking-form-head{margin-bottom:28px}
.eil-booking-form-head h3{font-size:var(--eil-step2);margin:7px 0 8px}
.eil-booking-form-head>p:last-child{color:var(--eil-text-dim);font-size:.84rem}

.eil-booking-errors{margin:0 0 24px;padding:18px 20px;border:2px solid var(--eil-accent);border-radius:var(--eil-radius-sm);
  background:var(--eil-surface-2)}
.eil-booking-errors h4{font-size:1rem}
.eil-booking-errors>p{margin-top:4px;color:var(--eil-text-dim);font-size:.88rem}
.eil-booking-errors ul{margin:10px 0 0;padding-left:1.2em}
.eil-booking-errors a{color:var(--eil-accent-text);font-weight:700}

.eil-booking-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 18px}
.eil-booking-field{min-width:0;margin:0;padding:0;border:0}
.eil-booking-field--wide{grid-column:1/-1}
.eil-booking-field>label,.eil-booking-field>legend{display:block;margin:0 0 7px;padding:0;color:var(--eil-heading);
  font-family:var(--eil-font-display);font-size:.88rem;font-weight:700}
.eil-booking-field input:not([type="radio"]),.eil-booking-field select,.eil-booking-field textarea{display:block;width:100%;min-width:0;
  padding:12px 13px;border:1.5px solid var(--eil-text-dim);border-radius:var(--eil-radius-sm);
  background:var(--eil-surface-2);color:var(--eil-text);font:inherit;line-height:1.4}
.eil-booking-field textarea{resize:vertical;min-height:116px}
.eil-booking-field input:not([type="radio"]):hover,.eil-booking-field select:hover,.eil-booking-field textarea:hover{border-color:var(--eil-accent)}
.eil-booking-field input:not([type="radio"])[aria-invalid="true"],.eil-booking-field select[aria-invalid="true"],
.eil-booking-field textarea[aria-invalid="true"]{border-width:3px;border-color:var(--eil-accent);padding:10.5px 11.5px}
.eil-booking-help{margin-top:6px;color:var(--eil-text-dim);font-size:.76rem}
.eil-booking-error{margin-top:7px;padding-left:9px;border-left:3px solid var(--eil-accent);color:var(--eil-heading);font-size:.8rem;font-weight:700}
.eil-booking-error::before{content:"! ";color:var(--eil-accent-text)}

.eil-booking-choice-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.eil-booking-choice-row label{display:flex;align-items:center;gap:10px;min-height:48px;padding:10px 13px;
  border:1.5px solid var(--eil-text-dim);border-radius:var(--eil-radius-sm);background:var(--eil-surface-2);
  color:var(--eil-heading);font-family:var(--eil-font-display);font-size:.88rem;font-weight:700;cursor:pointer}
.eil-booking-choice-row label:hover{border-color:var(--eil-accent)}
.eil-booking-choice-row input{width:1.05rem;height:1.05rem;margin:0;accent-color:var(--eil-accent);flex:none}
.eil-booking-choices[data-booking-invalid="true"] .eil-booking-choice-row label{border-width:3px;border-color:var(--eil-accent);padding:8.5px 11.5px}

.eil-booking-submit{margin-top:28px;padding-top:24px;border-top:1px solid var(--eil-border);display:flex;align-items:center;gap:14px 20px;flex-wrap:wrap}
.eil-booking-submit p{color:var(--eil-text-dim);font-size:.78rem;max-width:34ch}

@media (max-width:940px){
  .eil-booking-head,.eil-booking-body{grid-template-columns:1fr}
  .eil-booking-intro h2{max-width:19ch}
  .eil-booking-quote{min-height:340px;max-width:680px;width:100%;padding-top:180px}
  .eil-booking-body{gap:30px}
  .eil-booking-welcome{position:static}
}

@media (max-width:680px){
  .eil-booking-cred{grid-template-columns:1fr}
  .eil-booking-cred ul{display:grid;gap:8px}
  .eil-booking-cred li:not(:last-child)::after{content:"";margin:0}
  .eil-booking-fields,.eil-booking-choice-row{grid-template-columns:1fr}
  .eil-booking-field--wide{grid-column:auto}
  .eil-booking-request{padding:24px 20px}
  .eil-booking-quote{padding-inline:24px}
  .eil-booking-marks{gap:6px}
  .eil-booking-submit .eil-btn{width:100%;text-align:center}
}

@media (prefers-reduced-motion:reduce){
  .eil-booking-marks img{transform:none}
}
