/* ============================================================================
   OMNIKOM - s-footer
   CYCLE-10 LEDGER PASS: the decorative dashed "lane" wave (bezier + node lights
   + gliding token) and the global "fully booked" modal were both deleted; every
   .s-footer__lane-* and .bkm* rule went with them. What is left is a footer that
   pays for its height: brand, five air-gapped flowing link columns (never boxed),
   the compliance paragraph, and the legal bar. The one remaining ambient motion
   is the faint drifting background arc. Background steps up to --ink-40 (a
   deliberate "closing tray" value-step off the near-black body).
   ========================================================================== */

.s-footer{
  position:relative;
  overflow:hidden;
  background:var(--ink-40);
  padding-block:var(--sec-y);
  border-top:1px solid var(--ink-50);
}

/* ---- ambient background: one faint, slowly drifting arc ---- */
.s-footer__bg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  z-index:0;
  pointer-events:none;
}
.s-footer__bg-arc{
  fill:none;
  stroke:var(--royal);
  stroke-width:2;
  opacity:.16;
  animation:footerBgDrift 46s ease-in-out infinite;
  will-change:transform;
}
@keyframes footerBgDrift{
  0%,100%{ transform:translate3d(-34px,0,0) }
  50%{ transform:translate3d(34px,-16px,0) }
}

.s-footer__wrap{ position:relative; z-index:1 }

/* ============================================================================
   BRAND - logo, category-defining line, mono microcopy. Centered, spacious.
   ========================================================================== */
.s-footer__brand{
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  gap:14px;
  max-width:56ch;
  margin-inline:auto;
  padding-block-end:clamp(28px,4vw,44px);
}
.s-footer__logo{ display:inline-flex }
.s-footer__logo-img{ width:min(180px,44vw); height:auto }
.s-footer__claim{
  font-family:var(--f-display);
  font-weight:600;
  text-transform:lowercase;
  letter-spacing:-0.01em;
  font-size:var(--t-h4);
  line-height:1.25;
  color:var(--paper-full);
  max-width:32ch;
}
.s-footer__tagline{
  font-size:var(--t-label);
  letter-spacing:.04em;
  color:var(--paper-muted);
}

/* ============================================================================
   SITEMAP - five flowing (unboxed) columns, air between them, no borders.
   ========================================================================== */
.s-footer__grid{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  column-gap:var(--s-6);
  row-gap:var(--s-7);
  padding-block-end:var(--s-7);
}
.s-footer__col .eyebrow{ margin-bottom:var(--s-4); justify-content:center }
.s-footer__col{ text-align:center }
.s-footer__col ul{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:var(--s-3);
}
.s-footer__link{
  position:relative;
  display:inline-flex;
  width:fit-content;
  padding-block:6px;
  font-family:var(--f-body);
  font-size:var(--t-note);
  font-weight:400;
  letter-spacing:-0.005em;
  text-transform:lowercase;
  color:var(--paper);
  transition:color var(--dur-fast) var(--ease-standard);
}
.s-footer__link::after{
  content:"";
  position:absolute;
  left:0;
  bottom:-2px;
  width:100%;
  height:1px;
  background:var(--lime);
  transform:scaleX(0);
  transform-origin:center;
  transition:transform var(--dur-fast) var(--ease-standard);
}
.s-footer__link:hover,
.s-footer__link:focus-visible{ color:var(--paper-full) }
.s-footer__link:hover::after,
.s-footer__link:focus-visible::after{ transform:scaleX(1) }
.s-footer__link--all{ font-size:var(--t-note) }

/* ============================================================================
   DIVIDER + COMPLIANCE
   ========================================================================== */
.s-footer__hr{
  background:rgba(245,245,245,.12);
  margin-block:var(--s-5);
}
.s-footer__compliance{
  max-width:78ch;
  margin-inline:auto;
  text-align:center;
  margin-block-end:var(--s-6);
}
.s-footer__compliance-text{
  font-size:var(--t-note);
  line-height:1.6;
  letter-spacing:-0.005em;
  color:var(--paper);
}
.s-footer__compliance-link{
  margin-top:14px;
  justify-content:center;
}

/* ============================================================================
   BOTTOM BAR
   ========================================================================== */
.s-footer__bottom{
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:var(--s-4);
  padding-block-start:var(--s-5);
}
.s-footer__copyright{
  font-size:var(--t-eyebrow);
  letter-spacing:0;
  color:var(--paper-muted);
}
.s-footer__legal{
  display:flex;
  gap:var(--s-5);
}
.s-footer__legal .s-footer__link{ font-size:var(--t-eyebrow); padding-block:4px }
/* phone: the legal row rides the same 44px tap floor as the sitemap columns */
@media (max-width:767px){
  .s-footer__legal .s-footer__link{ padding-block:14px }
}

/* ============================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width:1023px){
  .s-footer{ padding-block:clamp(56px,10vw,96px) }
  .s-footer__grid{ grid-template-columns:repeat(3,1fr) }
}
@media (max-width:767px){
  .s-footer__grid{
    grid-template-columns:repeat(2,1fr);
    column-gap:var(--s-5);
    row-gap:var(--s-6);
  }
  .s-footer__link{ font-size:var(--t-eyebrow); padding-block:11px }
  .s-footer__bottom{ flex-direction:column; align-items:center; gap:var(--s-3); text-align:center }
}

/* ---- the booking dialog (cycle 16): onboarding form on the dialog primitive ---- */
.bkg{ position:fixed; inset:0; z-index:var(--z-modal); display:grid; place-items:center; padding:20px; }
.bkg[hidden]{ display:none; }
.bkg__scrim{ position:absolute; inset:0; background:rgba(0,0,0,.8); -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px); }
.bkg__card{
  position:relative; z-index:1; width:min(640px,100%); max-height:min(86dvh,780px); overflow:auto;
  background:var(--ink-10); border:1px solid var(--ink-40); border-radius:var(--r-card);
  padding:clamp(24px,4vw,40px);
}
.bkg__x{ position:absolute; top:14px; right:14px; width:40px; height:40px; border-radius:var(--r-btn);
  font-size:24px; line-height:1; color:var(--paper-muted); }
.bkg__x:hover{ color:var(--paper-full); }
.bkg__title{ margin-top:var(--s-3); font-size:var(--t-h3); }
.bkg__deck{ margin-top:var(--s-2); color:var(--paper); font-size:var(--t-note); max-width:44ch; }
.bkg__form{ margin-top:clamp(20px,3vw,28px); }
.bkg__grid{ display:grid; grid-template-columns:1fr; gap:14px 20px; }
@media (min-width:640px){ .bkg__grid{ grid-template-columns:1fr 1fr; } .bkg__field--full{ grid-column:1/-1; } }
.bkg__field{ display:flex; flex-direction:column; gap:6px; }
.bkg__label{ font-family:var(--f-mono); font-size:var(--t-label); letter-spacing:var(--track-eyebrow);
  text-transform:uppercase; color:var(--ink-60); }
.bkg__label em{ font-style:normal; color:var(--lime); }
.bkg__opt{ color:var(--ink-60); opacity:.7; text-transform:none; letter-spacing:0; }
.bkg__field input,.bkg__field select{
  width:100%; font-family:var(--f-body); font-size:var(--t-body); color:var(--paper-full);
  background:var(--ink-20); border:1px solid var(--ink-40); border-radius:var(--r-input);
  padding:11px 14px; line-height:1.4;
  transition:border-color var(--dur-base) var(--ease-standard);
}
.bkg__field input:focus,.bkg__field select:focus{ outline:none; border-color:var(--lime); }
.bkg__field input[aria-invalid="true"],.bkg__field select[aria-invalid="true"]{ border-color:var(--error,#e5484d); }
.bkg__hp{ position:absolute; left:-9999px; width:1px; height:1px; opacity:0; }
.bkg__turnstile:empty{ display:none; }
.bkg__turnstile{ margin-top:14px; }
.bkg__err{ margin-top:12px; color:var(--error,#e5484d); font-size:var(--t-small); }
.bkg__submit{ margin-top:18px; width:100%; justify-content:center; }
.bkg__note{ margin-top:12px; font-size:var(--t-eyebrow); color:var(--ink-60); text-align:center; }
.bkg__done{ text-align:left; }
.bkg__done .bkg__ok{ margin-top:20px; }

/* cycle-16 iteration (panel): dialog entrance/exit motion on the shared tokens,
   hidden-reveal fix, resting-field visibility, sticky submit on the scroll body */
:where(.js) .bkg{ opacity:0; transition:opacity var(--dur-base) var(--ease-standard); }
:where(.js) .bkg.is-open{ opacity:1; }
:where(.js) .bkg__card{ transform:translateY(10px); transition:transform var(--dur-base) var(--ease-standard); }
:where(.js) .bkg.is-open .bkg__card{ transform:none; }
.bkg__field[hidden]{ display:none; }
.bkg__field input,.bkg__field select{ border-color:var(--ink-50); }
.bkg__foot{
  flex:none; margin-top:12px; padding-top:12px; border-top:1px solid var(--ink-40);
}
.bkg__card{ display:flex; flex-direction:column; overflow:hidden; }
.bkg__form-wrap{ min-height:0; overflow:auto; margin-inline:calc(-1 * clamp(24px,4vw,40px)); padding-inline:clamp(24px,4vw,40px); }

@media (prefers-reduced-motion:reduce){ :where(.js) .bkg__card{ transform:none; } }
/* scroll affordance: content fades at the sticky-foot boundary instead of slicing flat */
.bkg__form-wrap{ -webkit-mask-image:linear-gradient(to bottom,#000 calc(100% - 18px),transparent); mask-image:linear-gradient(to bottom,#000 calc(100% - 18px),transparent); }

/* final polish (design confirm): taller phone fade so the cut never reads as a bare
   label; the reassurance line joins the card's left axis */
@media (max-width:520px){
  .bkg__form-wrap{ -webkit-mask-image:linear-gradient(to bottom,#000 calc(100% - 40px),transparent); mask-image:linear-gradient(to bottom,#000 calc(100% - 40px),transparent); }
}
.bkg__note{ text-align:left; }

/* the quiet full-page escape hatch under the dialog foot (operator 0a) */
.bkg__alt{ margin-top:8px; font-size:var(--t-eyebrow); color:var(--ink-60); }
.bkg__alt a{ color:var(--paper-muted); text-decoration:underline; text-underline-offset:3px; }
.bkg__alt a:hover{ color:var(--paper-full); }

/* turnstile gate hint (cycle 19, owner bug): shown only while the submit is locked */
.bkg__gate{ margin-top:10px; font-size:var(--t-eyebrow); color:var(--ink-60); }
.bkg__submit[disabled]{ opacity:.55; cursor:not-allowed; }
