/* ============================================================
   PE POLISH — the "blow me away" refinement layer.
   Loads LAST on every page (after pe-letterforms.css).
   Three jobs: tactile button states, double-frame borders with
   corner flourishes, and refined small-text detailing.
   Rules: never touches .pe-metal letterforms, never changes copy,
   never flattens metal to solid. All motion honors
   prefers-reduced-motion. Barry 2026-09-25: "stepped up not
   trimmed down" — this layer ADDS craft, removes nothing.
   ============================================================ */

/* ============ 1. BUTTONS — tactile depth everywhere ============ */

/* universal press: every button dips when tapped */
.btn:active,
.btn-gold:active,
.ic-text-barry:active,
.ic-wc-cta:active,
.mobile-cta:active,
.contact-action:active,
.choice:active,
.radio-pill:active,
.wz-stepper-ctl button:active,
.wz-source-row button:active,
#pe-consent-bar .pe-cbtn:active,
.city-hero .btn:active,
.venue-hero .btn:active {
  transform:translateY(1px)!important;
  filter:brightness(.95)!important;
  transition-duration:.06s;
}

/* universal focus ring: champagne, always visible for keyboard users */
.btn:focus-visible,
.btn-gold:focus-visible,
.ic-text-barry:focus-visible,
.ic-wc-cta:focus-visible,
.mobile-cta:focus-visible,
.contact-action:focus-visible,
.wz-stepper-ctl button:focus-visible,
.wz-source-row button:focus-visible,
.wz-textbtn:focus-visible,
#pe-consent-bar .pe-cbtn:focus-visible,
.city-hero .btn:focus-visible,
.venue-hero .btn:focus-visible {
  outline:2px solid #f1d18b!important;
  outline-offset:3px;
}

/* --- .btn-gold (planner gold submit) → full machined-gold grade --- */
.btn-gold {
  position:relative;overflow:hidden;isolation:isolate;
  background:linear-gradient(180deg,#fff9dd 0%,#ffedb8 13%,#f5d271 32%,#e0a83c 50%,#c68f27 64%,#a9771c 82%,#b5852c 100%)!important;
  border:1px solid rgba(56,36,6,.95)!important;
  box-shadow:
    0 0 0 1px rgba(20,12,2,.85),
    inset 0 2px 3px rgba(255,255,255,.9),
    inset 0 -5px 12px rgba(90,52,6,.5),
    inset 2px 0 5px rgba(255,255,255,.28),
    inset -2px 0 5px rgba(70,42,4,.32),
    0 12px 30px rgba(0,0,0,.6),
    0 0 36px rgba(232,195,108,.32)!important;
  text-shadow:0 1px 0 rgba(255,246,214,.85)!important;
  transition:transform .22s cubic-bezier(.2,.7,.25,1.15),box-shadow .25s ease,filter .25s ease;
}
.btn-gold::before { /* machined top glint */
  content:"";position:absolute;inset:1px;border-radius:inherit;pointer-events:none;
  background:radial-gradient(120% 90% at 50% 0%,rgba(255,255,255,.75),rgba(255,255,255,0) 65%);
}
.btn-gold::after { /* sheen sweep on hover */
  content:"";position:absolute;top:-25%;bottom:-25%;left:-75%;width:45%;pointer-events:none;
  background:linear-gradient(105deg,transparent,rgba(255,255,255,.6),transparent);
  transform:skewX(-18deg);transition:left .65s ease;
}
.btn-gold:hover { filter:brightness(1.07)!important;transform:translateY(-2px);
  box-shadow:
    0 0 0 1px rgba(20,12,2,.85),
    inset 0 2px 3px rgba(255,255,255,.95),
    inset 0 -5px 12px rgba(90,52,6,.5),
    0 16px 38px rgba(0,0,0,.62),
    0 0 60px rgba(232,195,108,.5)!important;
}
.btn-gold:hover::after { left:145%; }

/* --- .ic-text-barry (planner direct-line pill) → same machined grade --- */
.ic-text-barry {
  position:relative;overflow:hidden;isolation:isolate;
  background:linear-gradient(180deg,#fff9dd 0%,#ffe9ad 16%,#f0cd6d 36%,#dd9f36 56%,#bd8a26 78%,#cf9c33 100%)!important;
  border:1px solid rgba(56,36,6,.9)!important;
  box-shadow:
    0 0 0 1px rgba(20,12,2,.8),
    inset 0 2px 3px rgba(255,255,255,.9),
    inset 0 -4px 10px rgba(90,52,6,.45),
    0 10px 28px rgba(0,0,0,.55),
    0 0 42px rgba(233,185,95,.4)!important;
  text-shadow:0 1px 0 rgba(255,246,214,.8)!important;
  transition:transform .22s cubic-bezier(.2,.7,.25,1.15),box-shadow .25s ease,filter .25s ease;
}
.ic-text-barry::before {
  content:"";position:absolute;inset:1px;border-radius:inherit;pointer-events:none;
  background:radial-gradient(120% 90% at 50% 0%,rgba(255,255,255,.7),rgba(255,255,255,0) 65%);
}
.ic-text-barry::after {
  content:"";position:absolute;top:-25%;bottom:-25%;left:-75%;width:45%;pointer-events:none;
  background:linear-gradient(105deg,transparent,rgba(255,255,255,.6),transparent);
  transform:skewX(-18deg);transition:left .65s ease;
}
.ic-text-barry:hover { filter:brightness(1.08)!important;transform:translateY(-2px);
  box-shadow:
    0 0 0 1px rgba(20,12,2,.8),
    inset 0 2px 3px rgba(255,255,255,.95),
    inset 0 -4px 10px rgba(90,52,6,.45),
    0 14px 34px rgba(0,0,0,.6),
    0 0 64px rgba(233,185,95,.55)!important;
}
.ic-text-barry:hover::after { left:145%; }

/* --- ghost/secondary buttons: gradient-border ring + depth --- */
.btn-ghost,
.btn:not(.btn-primary):not(.btn-gold) {
  position:relative;
  border:1px solid rgba(232,195,108,.7)!important;
  background:linear-gradient(180deg,rgba(232,195,108,.2),rgba(232,195,108,.05))!important;
  box-shadow:
    inset 0 0 0 1px rgba(20,12,2,.5),
    inset 0 1px 0 rgba(255,235,180,.35),
    0 4px 16px rgba(0,0,0,.5)!important;
  transition:transform .22s cubic-bezier(.2,.7,.25,1.15),box-shadow .25s ease,background .25s ease,border-color .25s ease;
}
.btn-ghost:hover,
.btn:not(.btn-primary):not(.btn-gold):hover {
  border-color:rgba(246,219,156,.95)!important;
  background:linear-gradient(180deg,rgba(232,195,108,.34),rgba(232,195,108,.1))!important;
  box-shadow:
    inset 0 0 0 1px rgba(20,12,2,.5),
    inset 0 1px 0 rgba(255,235,180,.5),
    0 8px 24px rgba(0,0,0,.55),
    0 0 34px rgba(232,195,108,.4)!important;
  transform:translateY(-2px);
}

/* --- v19-city/venue buttons (11 venue pages): bevel + sheen + press --- */
.city-hero .btn-primary, .venue-hero .btn-primary, .city-cta .btn-primary, .venue-cta .btn-primary {
  position:relative;overflow:hidden;isolation:isolate;
  border:1px solid rgba(56,36,6,.9)!important;
  box-shadow:
    0 0 0 1px rgba(20,12,2,.7),
    inset 0 2px 3px rgba(255,255,255,.75),
    inset 0 -4px 10px rgba(90,52,6,.4),
    0 10px 28px rgba(0,0,0,.5),
    0 0 32px rgba(212,165,72,.3)!important;
  text-shadow:0 1px 0 rgba(255,246,214,.7)!important;
  transition:transform .22s cubic-bezier(.2,.7,.25,1.15),box-shadow .25s ease,filter .25s ease;
}
.city-hero .btn-primary::after, .venue-hero .btn-primary::after, .city-cta .btn-primary::after, .venue-cta .btn-primary::after {
  content:"";position:absolute;top:-25%;bottom:-25%;left:-75%;width:45%;pointer-events:none;
  background:linear-gradient(105deg,transparent,rgba(255,255,255,.55),transparent);
  transform:skewX(-18deg);transition:left .65s ease;
}
.city-hero .btn-primary:hover::after, .venue-hero .btn-primary:hover::after, .city-cta .btn-primary:hover::after, .venue-cta .btn-primary:hover::after { left:145%; }
.city-hero .btn-primary:hover, .venue-hero .btn-primary:hover, .city-cta .btn-primary:hover, .venue-cta .btn-primary:hover {
  filter:brightness(1.07);
  box-shadow:
    0 0 0 1px rgba(20,12,2,.7),
    inset 0 2px 3px rgba(255,255,255,.85),
    inset 0 -4px 10px rgba(90,52,6,.4),
    0 14px 34px rgba(0,0,0,.55),
    0 0 52px rgba(212,165,72,.45)!important;
}
.city-hero .btn-ghost, .venue-hero .btn-ghost {
  box-shadow:inset 0 1px 0 rgba(255,235,180,.25),0 4px 14px rgba(0,0,0,.4)!important;
  transition:transform .22s ease,box-shadow .25s ease,border-color .25s ease,background .25s ease;
}
.city-hero .btn-ghost:hover, .venue-hero .btn-ghost:hover {
  transform:translateY(-2px);
  box-shadow:inset 0 1px 0 rgba(255,235,180,.4),0 8px 20px rgba(0,0,0,.45),0 0 26px rgba(212,165,72,.35)!important;
}

/* --- index .contact-action cards: tactile refine --- */
.contact-action {
  transition:transform .2s ease,box-shadow .25s ease,background .25s ease,color .25s ease,border-color .25s ease;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 6px 18px rgba(0,0,0,.35);
}
.contact-action:hover, .contact-action:focus-visible {
  box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 10px 26px rgba(0,0,0,.4),0 0 30px rgba(232,195,108,.28);
  transform:translateY(-2px);
}

/* --- planner choice chips: pressed + selected glow --- */
.choice, .radio-pill { transition:transform .15s ease,box-shadow .25s ease,border-color .25s ease,background .25s ease; }
.choice:has(input:checked), .radio-pill:has(input:checked) {
  box-shadow:inset 0 1px 0 rgba(255,235,180,.25),0 0 0 1px rgba(232,189,96,.55),0 0 22px rgba(232,189,96,.22)!important;
}
.wz-source-row button { transition:transform .15s ease,box-shadow .25s ease,border-color .25s ease,background .25s ease; }
.wz-source-row button.is-on {
  box-shadow:inset 0 1px 0 rgba(255,235,180,.3),0 0 0 1px rgba(232,189,96,.5),0 0 20px rgba(232,189,96,.25)!important;
}
.wz-stepper-ctl button { transition:transform .15s ease,background .25s ease,box-shadow .25s ease; }
.wz-stepper-ctl button:hover { box-shadow:0 0 18px rgba(232,195,108,.35); }

/* --- cookie consent buttons: machined gold + ghost ring --- */
#pe-consent-bar { box-shadow:0 -12px 40px rgba(0,0,0,.7),0 -1px 0 rgba(212,175,55,.55)!important; }
#pe-consent-bar .pe-cbtn {
  transition:transform .2s ease,box-shadow .25s ease,filter .25s ease,background .25s ease;
  box-shadow:inset 0 1px 0 rgba(255,235,180,.3),0 4px 14px rgba(0,0,0,.45);
}
#pe-consent-bar .pe-cbtn.gold {
  border:1px solid rgba(56,36,6,.9)!important;
  box-shadow:
    0 0 0 1px rgba(20,12,2,.7),
    inset 0 2px 3px rgba(255,255,255,.8),
    inset 0 -3px 8px rgba(90,52,6,.4),
    0 6px 18px rgba(0,0,0,.5),
    0 0 26px rgba(232,195,108,.3)!important;
  text-shadow:0 1px 0 rgba(255,246,214,.75);
}
#pe-consent-bar .pe-cbtn.gold:hover { filter:brightness(1.08);transform:translateY(-1px);
  box-shadow:
    0 0 0 1px rgba(20,12,2,.7),
    inset 0 2px 3px rgba(255,255,255,.9),
    inset 0 -3px 8px rgba(90,52,6,.4),
    0 8px 22px rgba(0,0,0,.55),
    0 0 40px rgba(232,195,108,.45)!important;
}
#pe-consent-bar .pe-cbtn:not(.gold):hover {
  border-color:rgba(246,219,156,.9)!important;
  box-shadow:inset 0 1px 0 rgba(255,235,180,.4),0 6px 18px rgba(0,0,0,.5),0 0 24px rgba(232,195,108,.3)!important;
  transform:translateY(-1px);
}

/* ============ 2. BORDERS — double frames + corner flourishes ============ */

/* double-frame: inner hairline gold inside the card's own border */
.mix-card {
  box-shadow:inset 0 0 0 1px rgba(212,165,72,.16),0 18px 44px rgba(0,0,0,.5)!important;
}
.mix-card:hover {
  box-shadow:inset 0 0 0 1px rgba(237,198,109,.45),0 26px 60px rgba(0,0,0,.6),0 0 46px rgba(212,165,72,.14)!important;
}
.quote {
  box-shadow:inset 0 0 0 1px rgba(212,175,55,.16),0 20px 60px #000!important;
}
.package {
  box-shadow:inset 0 0 0 1px rgba(212,175,55,.14),0 16px 46px rgba(21,14,2,.1)!important;
}
.package.featured {
  box-shadow:inset 0 0 0 1px rgba(237,198,109,.38),var(--shadow)!important;
}
.party-card {
  box-shadow:inset 0 0 0 1px rgba(212,175,55,.14),0 14px 40px rgba(21,14,2,.12)!important;
}
.reel-slot {
  box-shadow:inset 0 0 0 1px rgba(231,190,99,.28),0 26px 70px #000!important;
}
.lock-panel {
  box-shadow:inset 0 0 0 1px rgba(212,165,72,.16),0 18px 44px rgba(0,0,0,.5)!important;
}
.ic-welcome-card, .ic-ch-card {
  box-shadow:inset 0 0 0 1px rgba(232,195,108,.22),0 30px 90px rgba(0,0,0,.75),0 0 70px rgba(212,165,72,.12)!important;
}
.ic-ch-card { position:relative; }
.service-card {
  box-shadow:inset 0 0 0 1px rgba(232,195,108,.2)!important;
}
.city-hero img, .venue-hero img {
  box-shadow:inset 0 0 0 1px rgba(212,165,72,.2),0 24px 60px rgba(0,0,0,.55)!important;
}

/* corner flourishes: machined gold L-corners on the flagship frames */
.package.featured::before, .ic-welcome-card::before, .ic-ch-card::before {
  content:"";position:absolute;top:9px;left:9px;width:30px;height:30px;pointer-events:none;z-index:5;
  border-top:2px solid rgba(240,205,119,.95);border-left:2px solid rgba(240,205,119,.95);
  border-top-left-radius:3px;
  filter:drop-shadow(0 0 6px rgba(240,205,119,.5));
}
.package.featured::after, .ic-welcome-card::after, .ic-ch-card::after {
  content:"";position:absolute;bottom:9px;right:9px;width:30px;height:30px;pointer-events:none;z-index:5;
  border-bottom:2px solid rgba(240,205,119,.95);border-right:2px solid rgba(240,205,119,.95);
  border-bottom-right-radius:3px;
  filter:drop-shadow(0 0 6px rgba(240,205,119,.5));
}

/* gradient hairline rules: nav, footer, mix footer, hr */
.nav { border-bottom:1px solid transparent!important;
  border-image:linear-gradient(90deg,transparent,rgba(212,165,72,.55) 18%,rgba(212,165,72,.55) 82%,transparent) 1!important;
}
footer { border-top:1px solid transparent!important;
  border-image:linear-gradient(90deg,transparent,rgba(212,165,72,.5) 20%,rgba(212,165,72,.5) 80%,transparent) 1!important;
}
.mix-foot { border-top:1px solid transparent!important;
  border-image:linear-gradient(90deg,transparent,rgba(212,165,72,.45) 25%,rgba(212,165,72,.45) 75%,transparent) 1!important;
}
hr { border:0!important;height:1px!important;
  background:linear-gradient(90deg,transparent,rgba(212,165,72,.55),transparent)!important;
}
.overline::before, .overline::after {
  background:linear-gradient(90deg,transparent,currentColor)!important;
  height:1px!important;
}
.residency-list { border-top:1px solid transparent!important;
  border-image:linear-gradient(90deg,rgba(232,189,96,.5),rgba(232,189,96,.08)) 1!important;
}
.residency { transition:background .3s ease,padding-left .3s ease; }
.residency:hover { background:linear-gradient(90deg,rgba(232,189,96,.07),transparent 70%); }

/* ============ 3. TEXT — refined detailing ============ */

/* champagne selection */
::selection { background:rgba(212,165,72,.88);color:#141005; }

/* tabular numerals on every price, time, and stat */
.price, .tier .price, .package .price, .party-card .price, .upgrade-price,
.residency time, .lock-pct, .addon-price, .hero-meta strong, .year-stamp b {
  font-variant-numeric:tabular-nums lining-nums;
}

/* mix kickers: engraved hairline rules both sides */
.mix-kicker {
  display:inline-flex;align-items:center;gap:.8em;
  font-size:.68rem;font-weight:800;letter-spacing:.24em;text-transform:uppercase;
  color:#d9ab4c!important;
}
.mix-kicker::before, .mix-kicker::after {
  content:"";width:30px;height:5px;opacity:.75;
  border-top:1px solid currentColor;border-bottom:1px solid currentColor;
}
.mix-card-meta {
  border-top:1px solid rgba(212,165,72,.18);
  padding-top:.9rem;letter-spacing:.12em;
}

/* venue/city dek + section eyebrows: refined spacing and glow */
.city-hero > p:first-of-type, .venue-hero p {
  letter-spacing:.04em;text-shadow:0 2px 14px rgba(0,0,0,.8);
}
.city-hero .venue-eyebrow, .venue-hero .venue-eyebrow {
  letter-spacing:.3em!important;
}

/* section numbers: engraved coin numerals */
.sec-no {
  display:inline-grid;place-items:center;
  width:1.9em;height:1.9em;margin-right:.7em;
  border:1px solid rgba(212,175,55,.65);border-radius:50%;
  font-size:.72em;font-weight:800;letter-spacing:.05em;color:#efca79!important;
  box-shadow:inset 0 1px 2px rgba(255,240,200,.25),inset 0 -2px 4px rgba(0,0,0,.5),0 0 14px rgba(212,175,55,.25);
  text-shadow:0 1px 2px rgba(0,0,0,.8);
  vertical-align:.15em;
}

/* small functional text: crisper pairing */
.form-note, .faq p, .review-more, .addon span, .addon-body, .roster-card small {
  letter-spacing:.015em;
}
.field label, .choice-label {
  letter-spacing:.14em!important;
}

/* planner step numbers → machined medallions */
.step-number {
  background:radial-gradient(circle at 50% 30%,rgba(255,240,200,.28),rgba(255,240,200,0) 60%),#171208!important;
  box-shadow:inset 0 1px 2px rgba(255,240,200,.35),inset 0 -2px 5px rgba(0,0,0,.6),0 0 16px rgba(217,171,76,.35)!important;
  border:1px solid rgba(217,171,76,.85)!important;
  text-shadow:0 1px 2px rgba(0,0,0,.9);
}

/* swipe tabs: tactile press */
.swipe-tab { transition:transform .15s ease,border-color .25s ease,background .25s ease,box-shadow .25s ease; }
.swipe-tab:active { transform:scale(.96); }
.swipe-tab.active {
  box-shadow:inset 0 1px 0 rgba(255,235,180,.35),0 0 0 1px rgba(232,189,96,.5),0 0 24px rgba(232,189,96,.25)!important;
}

/* refined link underlines on gold links */
a.gold-u, .ig-link { text-underline-offset:3px;text-decoration-thickness:1px; }

/* ============ 4. mobile overflow repairs ============
   Pre-existing issues found in the 44-page QA sweep (2026-09-25).
   All scoped; desktop layouts untouched. */
@media (max-width:900px) {
  /* pay.html: the header Email pill duplicates the hamburger menu's
     "Email Barry" link — hiding it keeps the 390px header on-screen */
  body.page-pay .nav a.nav-text { display:none; }
}
@media (max-width:640px) {
  /* booked.html: body is display:flex (row) — the balance-auth section
     rendered squeezed side-by-side with the receipt card. Stack it. */
  body:has(#auth-wrap) { flex-direction:column; }
  #auth-wrap { width:100%;box-sizing:border-box; }
}
/* corporate.html: the 32px contact email is one unbreakable string —
   let it wrap instead of jutting 137px past the viewport */
.phone-big { overflow-wrap:anywhere; }
/* corporate.html: footer nav anchors have no whitespace between them, so the
   five links formed one unbreakable 396px row (which also stretched the fixed
   cookie bar via innerWidth). Wrapping flex, matching the other pages. */
.footer-links { display:flex;flex-wrap:wrap;gap:.5rem 1.3rem; }
.footer-links a { margin-right:0; }

/* ============ 5. reduced motion ============ */
@media (prefers-reduced-motion:reduce) {
  .btn-gold::after, .ic-text-barry::after,
  .city-hero .btn-primary::after, .venue-hero .btn-primary::after,
  .city-cta .btn-primary::after, .venue-cta .btn-primary::after { display:none; }
  .btn:active, .btn-gold:active, .ic-text-barry:active, .mobile-cta:active,
  .contact-action:active { transform:none; }
}
