/* Customer home page: photo-led, dark hero with a booking bar. Loaded on the home page only. */
:root { --h-deep: #0A3324; --h-deep-2: #06241A; --h-tint: #E8F1EA; --h-orange: #F5A04B; --h-muted: #4B5C52; }

/* Nav floats over the hero on the home page */
.has-hero .nav { position: fixed; left: 0; right: 0; top: 0; background: transparent; backdrop-filter: none; border-bottom: 0; }
.has-hero .nav__in { min-height: 88px; }
.has-hero .brand, .has-hero .nav__links a { color: #fff; }
.has-hero .nav__links a:hover { color: #fff; opacity: .8; }
.has-hero .nav__burger { border-color: rgba(255,255,255,.5); }
.has-hero .nav__burger span, .has-hero .nav__burger span::before, .has-hero .nav__burger span::after { background: #fff; }
.has-hero .nav:has(.nav__check:checked) { background: var(--h-deep); }
.has-hero .nav .btn--primary { background: #fff; color: var(--h-deep); }
.has-hero .nav__check:checked ~ .nav__links a { color: #fff; border-color: rgba(255,255,255,.18); }

.brand .w-all { font-weight: 300; }
.brand .w-play { font-weight: 800; }

.h-h2 { font-family: var(--font-display); font-weight: 700; font-size: clamp(1.9rem, 2.2vw + 1rem, 2.75rem); letter-spacing: -0.02em; line-height: 1.05; margin: 0; }
.h-eyebrow { font-size: var(--text-xs); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--h-muted); margin: 0 0 6px; }
.btn--dark { background: var(--h-deep); color: #fff; }
.btn--dark:hover { background: #0f4a33; }

/* Hero */
.h-hero { position: relative; background: var(--h-deep); color: #fff; overflow: clip; isolation: isolate; min-height: 720px; display: flex; align-items: stretch; }
.h-hero__photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 60%; z-index: -2; }
.h-hero__shade { position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(7,36,25,.94) 0%, rgba(7,36,25,.78) 42%, rgba(7,36,25,.25) 100%); }
.h-hero__in { display: flex; align-items: flex-start; gap: var(--space-lg); padding-top: 168px; width: 100%; }
.h-hero__copy { flex: 1 1 620px; min-width: 0; padding-bottom: 96px; }
.h-chip { display: inline-block; margin: 0 0 var(--space-md); padding: 7px 14px; border-radius: 999px; background: rgba(255,255,255,.12); font-weight: 600; font-size: .9rem; }
.h-hero h1 { font-size: clamp(2.6rem, 4.4vw + 1rem, 4.75rem); line-height: .98; letter-spacing: -0.03em; font-weight: 700; }
.h-hero__lead { margin-top: var(--space-lg); font-size: 1.2rem; line-height: 1.5; color: #D3E4D9; max-width: 34em; }
.h-hero__note { margin-top: var(--space-md); font-size: var(--text-sm); color: #BFD6C7; }
.h-hero__phone { flex: 0 0 300px; align-self: flex-end; margin-bottom: -120px; }
.h-hero__phone .phone { --w: 290px; background: #0E1F18; box-shadow: 0 30px 70px -20px rgba(0,0,0,.6); }

/* Booking bar */
.h-book { margin-top: var(--space-xl); display: flex; flex-wrap: wrap; align-items: stretch; gap: 0; max-width: 660px; background: #fff; color: var(--color-ink); border-radius: 22px; padding: 10px; box-shadow: 0 24px 60px -20px rgba(0,0,0,.55); }
.h-book__f { flex: 1 1 150px; display: grid; gap: 2px; padding: 10px 16px; border-right: 1px solid #E1E8E2; min-width: 0; }
.h-book__f:nth-of-type(3) { border-right: 0; }
.h-book__f select { cursor: pointer; }
.h-book__f > span { font-size: .75rem; font-weight: 700; color: var(--h-muted); letter-spacing: .06em; text-transform: uppercase; }
.h-book__f input, .h-book__f select { border: 0; padding: 0; font: 600 1.05rem var(--font-body); color: var(--color-ink); background: transparent; outline-offset: 4px; min-width: 0; width: 100%; appearance: none; }
.h-book__f input::placeholder { color: #6A7A70; font-weight: 500; }
.h-book__go { flex: 0 0 auto; min-height: 56px; padding: 0 28px; border: 0; border-radius: 14px; background: var(--h-orange); color: var(--h-deep); font: 700 1.05rem var(--font-body); cursor: pointer; transition: background-color var(--dur-short) var(--ease-out); }
.h-book__go:hover { background: #f7b068; }

/* Sports */
.h-sports { padding-block: 96px 72px; }
.h-head { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--space-lg); flex-wrap: wrap; }
.h-tiles { list-style: none; margin: 36px 0 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; }
.h-tile { position: relative; aspect-ratio: 3 / 4; border-radius: 20px; overflow: hidden; background: var(--h-deep); color: #fff; }
.h-tile img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.h-tile::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(7,36,25,0) 45%, rgba(7,36,25,.9) 100%); }
.h-tile__name { position: absolute; left: 18px; bottom: 16px; z-index: 1; font-family: var(--font-display); font-weight: 700; font-size: 1.35rem; }

/* Steps */
.h-steps { background: var(--h-tint); padding-block: 88px; }
.h-steps .h-h2 { max-width: 16em; }
.h-cards { list-style: none; margin: 48px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.h-card { background: #fff; border-radius: 24px; overflow: hidden; display: flex; flex-direction: column; }
.h-card__shot { height: 300px; overflow: hidden; background: #D5E5DA; display: flex; justify-content: center; padding-top: 28px; box-sizing: border-box; }
.h-card__shot img { width: 210px; height: auto; align-self: flex-start; margin-top: -26px; border-radius: 22px 22px 0 0; box-shadow: 0 20px 40px -20px rgba(0,0,0,.4); }
.h-card__body { padding: 24px 28px 32px; }
.h-card__n { font-family: var(--font-display); font-weight: 800; font-size: .95rem; color: #B45E07; letter-spacing: .08em; }
.h-card h3 { margin: 6px 0 8px; font-family: var(--font-display); font-size: 1.5rem; font-weight: 700; }
.h-card p { margin: 0; color: var(--h-muted); line-height: 1.55; }

/* Team */
.h-team { background: var(--h-deep); color: #fff; overflow: clip; }
.h-team__in { display: flex; flex-wrap: wrap; align-items: center; gap: 48px; padding-top: 96px; }
.h-team__copy { flex: 1 1 440px; min-width: 0; padding-bottom: 96px; }
.h-team__copy > p { margin-top: 20px; font-size: 1.15rem; line-height: 1.55; color: #CFE3D6; max-width: 28em; }
.h-list { list-style: none; margin: 32px 0 0; padding: 0; max-width: 460px; }
.h-list li { padding: 18px 0; border-top: 1px solid #285B45; display: grid; gap: 2px; }
.h-list li:last-child { border-bottom: 1px solid #285B45; }
.h-list strong { font-family: var(--font-display); font-size: 1.2rem; }
.h-list span { color: #BFD6C7; }
.h-team__phones { flex: 1 1 440px; position: relative; height: 560px; min-width: 0; }
.h-team__phones .phone { position: absolute; --w: 250px; background: #F6F8F4; box-shadow: 0 30px 60px -20px rgba(0,0,0,.6); }
.h-team__phones .phone:first-child { left: 6%; top: 0; }
.h-team__phones .phone:last-child { left: 46%; top: 70px; }

/* Owner strip */
.h-owner { padding-block: 88px; }
.h-owner__card { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-lg); background: #fff; border: 1px solid #DCE5DE; border-radius: 28px; padding: 36px 40px; }
.h-owner__card > div { max-width: 620px; }
.h-owner__card h2 { margin: 0; font-family: var(--font-display); font-weight: 700; font-size: 1.85rem; letter-spacing: -0.01em; }
.h-owner__card p:not(.h-eyebrow) { margin: 10px 0 0; color: var(--h-muted); line-height: 1.55; }

/* Closing banner */
.h-cta { position: relative; color: #fff; background: var(--h-deep); overflow: clip; isolation: isolate; }
.h-cta__photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.h-cta__shade { position: absolute; inset: 0; z-index: -1; background: rgba(7,36,25,.82); }
.h-cta__in { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 32px; padding-block: 88px; }
.h-cta h2 { margin: 0; font-family: var(--font-display); font-weight: 700; font-size: clamp(2rem, 2.4vw + 1rem, 3rem); letter-spacing: -0.02em; line-height: 1.03; }
.h-cta p { margin: 14px 0 0; font-size: 1.15rem; color: #D3E4D9; }
.h-cta__stores { display: flex; gap: 12px; flex-wrap: wrap; }
.h-cta__stores span { display: inline-flex; align-items: center; min-height: 56px; padding: 0 26px; border-radius: 14px; background: #fff; color: var(--h-deep); font-weight: 700; }

@media (max-width: 62rem) {
  .h-hero { min-height: 0; }
  .h-hero__in { flex-direction: column; padding-top: 128px; }
  .h-hero__copy { padding-bottom: 32px; flex-basis: auto; }
  .h-hero__phone { flex: none; align-self: center; margin-bottom: -90px; }
  .h-hero__phone .phone { --w: 230px; }
  .h-tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .h-cards { grid-template-columns: minmax(0, 1fr); }
  .h-card { flex-direction: row; }
  .h-card__shot { flex: 0 0 200px; height: auto; min-height: 240px; }
  .h-card__shot img { width: 150px; }
  .h-team__phones { height: 440px; }
  .h-team__phones .phone { --w: 200px; }
  .h-team__copy { padding-bottom: 32px; }
  .has-hero .nav__check:checked ~ .nav__cta .btn { background: var(--h-orange); }
}
@media (max-width: 40rem) {
  .h-book { padding: 8px; }
  .h-book__f { flex-basis: 100%; border-right: 0; border-bottom: 1px solid #E1E8E2; }
  .h-book__go { width: 100%; margin-top: 8px; }
  .h-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .h-card { flex-direction: column; }
  .h-card__shot { flex: none; height: 260px; }
  .h-card__shot img { width: 190px; }
  .h-team__phones { height: 400px; }
  .h-team__phones .phone { --w: 170px; }
  .h-team__phones .phone:last-child { left: 50%; }
  .h-owner__card { padding: 28px 24px; }
  .h-owner__card .btn { width: 100%; }
}

/* Court finder */
.is-courts .brand .w-all, .has-hero .brand .w-all { font-weight: 300; }
.c-hero { position: relative; isolation: isolate; background: var(--h-deep); color: #fff; padding-block: 140px 88px; }
.c-hero__bg { position: absolute; inset: 0; z-index: -1; overflow: hidden; }
.c-hero__bg img { width: 100%; height: 100%; object-fit: cover; object-position: center 55%; }
.c-hero__shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(7,36,25,.95) 0%, rgba(7,36,25,.8) 55%, rgba(7,36,25,.5) 100%); }
.c-hero h1 { font-size: clamp(2rem, 2.6vw + 1rem, 3.25rem); letter-spacing: -0.03em; line-height: 1; font-weight: 700; }
.c-hero__lead { margin: var(--space-md) 0 0; color: #D3E4D9; font-size: 1.15rem; max-width: 36em; }
.c-hero .h-book { margin-top: var(--space-lg); max-width: 760px; }
.c-results { padding-block: 40px 88px; }
.c-bar { display: flex; align-items: center; justify-content: space-between; gap: var(--space-md); margin-bottom: var(--space-lg); }
.c-count { margin: 0; font-weight: 700; font-size: 1.05rem; }
.c-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.c-card { background: #fff; border: 1px solid #E3EAE4; border-radius: 22px; overflow: hidden; display: flex; flex-direction: column; }
.c-card__img { position: relative; aspect-ratio: 4 / 3; background: var(--h-deep); }
.c-card__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.c-tag { position: absolute; left: 14px; top: 14px; padding: 5px 12px; border-radius: 999px; background: #fff; font-weight: 700; font-size: .8rem; }
.c-card__body { padding: 18px 20px 22px; display: flex; flex-direction: column; flex: 1; }
.c-card__row { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; }
.c-card h2 { margin: 0; font-family: var(--font-display); font-size: 1.2rem; font-weight: 700; line-height: 1.25; overflow-wrap: anywhere; }
.c-rate { font-weight: 700; white-space: nowrap; }
.c-rate small { font-weight: 500; color: var(--h-muted); margin-left: 4px; }
.c-place { margin: 4px 0 0; color: var(--h-muted); font-size: .95rem; }
.c-price { margin: 14px 0 0; }
.c-price strong { font-family: var(--font-display); font-size: 1.4rem; }
.c-price span { color: var(--h-muted); }
.c-card__go { margin-top: 18px; width: 100%; }
.c-empty { padding: 56px 24px; text-align: center; background: #fff; border: 1px dashed #C9D6CD; border-radius: 22px; display: grid; gap: 12px; justify-items: center; }
.c-empty h2 { margin: 0; font-family: var(--font-display); font-size: 1.6rem; }
.c-empty p { margin: 0; color: var(--h-muted); }
.c-pages { display: flex; align-items: center; justify-content: center; gap: 20px; margin-top: 36px; font-weight: 600; }
.c-pages a { text-decoration-color: var(--color-accent); text-underline-offset: 5px; text-decoration-thickness: 2px; }
.c-pages [aria-disabled="true"] { color: #8A988F; }
.c-app { margin-top: 56px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px; background: var(--h-deep); color: #fff; border-radius: 28px; padding: 36px 40px; }
.c-app h2 { margin: 0; font-family: var(--font-display); font-size: 1.6rem; }
.c-app p { margin: 8px 0 0; color: #CFE3D6; max-width: 36em; }
.c-app__stores { display: flex; gap: 12px; flex-wrap: wrap; }
.c-app__stores span { display: inline-flex; align-items: center; min-height: 52px; padding: 0 22px; border-radius: 14px; background: #fff; color: var(--h-deep); font-weight: 700; }
@media (max-width: 62rem) { .c-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 40rem) { .c-grid { grid-template-columns: minmax(0, 1fr); } .c-app { padding: 28px 24px; } .c-hero { padding-block: 110px 48px; } }

/* ---------- Inner pages (players, venue owners, how it works, features, pricing) ---------- */
.p-hero { position: relative; background: var(--h-deep); color: #fff; overflow: clip; isolation: isolate; }
.p-hero__photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.p-hero__shade { position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(7,36,25,.95) 0%, rgba(7,36,25,.82) 60%, rgba(7,36,25,.55) 100%); }
.p-hero__in { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 32px; padding-top: 148px; }
.p-hero__copy { flex: 1 1 520px; min-width: 0; padding-bottom: 88px; }
.p-eyebrow { margin: 0 0 16px; font-size: var(--text-xs); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--h-orange); }
.p-hero h1 { font-size: clamp(2.2rem, 3.2vw + 1rem, 3.75rem); line-height: 1; letter-spacing: -0.03em; font-weight: 700; max-width: 14em; }
.p-hero__lead { margin-top: 22px; font-size: 1.2rem; line-height: 1.5; color: #D3E4D9; max-width: 30em; }
.p-hero__actions { margin-top: 32px; display: flex; gap: 12px; flex-wrap: wrap; }
.p-hero .btn--ghost { border-color: #3B6B55; color: #fff; }
.p-hero .btn--ghost:hover { border-color: #fff; }
.p-hero__phone { flex: 0 0 300px; align-self: flex-end; margin-bottom: -110px; }
.p-hero__phone .phone { --w: 270px; background: #0E1F18; box-shadow: 0 30px 70px -20px rgba(0,0,0,.6); }

.p-split { padding-block: 104px 72px; }
.p-split__in { display: flex; flex-wrap: wrap; align-items: center; gap: 56px; }
.p-split__copy { flex: 1 1 380px; min-width: 0; }
.p-points { list-style: none; margin: 28px 0 0; padding: 0; }
.p-points li { padding: 16px 0; border-top: 1px solid #DCE5DE; display: grid; gap: 2px; }
.p-points li:last-child { border-bottom: 1px solid #DCE5DE; }
.p-points strong { font-family: var(--font-display); font-size: 1.2rem; }
.p-points span { color: var(--h-muted); }
.p-lead { margin: 18px 0 0; font-size: 1.15rem; line-height: 1.55; color: #33463B; max-width: 28em; }
.p-media { flex: 1 1 420px; background: var(--h-tint); border-radius: 32px; display: flex; justify-content: center; gap: 20px; padding: 40px 24px 0; overflow: hidden; height: 500px; box-sizing: border-box; }
.p-media--blue { background: #E3EAF8; }
.p-media .phone { --w: 200px; flex: none; align-self: flex-start; background: #0E1F18; }
.p-media .phone + .phone { margin-top: 40px; }
.p-media--one .phone { --w: 220px; }

.p-dark { background: var(--h-deep); color: #fff; overflow: clip; }
.p-dark__in { display: flex; flex-wrap: wrap; align-items: center; gap: 48px; padding-top: 88px; }
.p-dark__copy { flex: 1 1 420px; min-width: 0; padding-bottom: 88px; }
.p-dark .p-points li { border-color: #285B45; }
.p-dark .p-points span { color: #BFD6C7; }
.p-dark__phones { flex: 1 1 440px; position: relative; height: 540px; min-width: 0; }
.p-dark__phones .phone { position: absolute; --w: 230px; background: #F6F8F4; box-shadow: 0 30px 60px -20px rgba(0,0,0,.6); }
.p-dark__phones .phone:first-child { left: 4%; top: 0; }
.p-dark__phones .phone:last-child { left: 44%; top: 70px; }
.p-dark__phones--one { display: flex; justify-content: center; align-items: flex-end; height: auto; }
.p-dark__phones--one .phone { position: static; --w: 240px; margin-bottom: -60px; }

.p-trio { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.p-trio .h-tile { aspect-ratio: 4 / 3; border-radius: 24px; }
.p-trio .h-tile__name { font-size: 1.35rem; }
.p-section { padding-block: 0 88px; }
.p-section--tint { background: var(--h-tint); padding-block: 88px; }
.p-grid2 { list-style: none; margin: 32px 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 40px; }
.p-grid2 li { padding: 16px 0; border-bottom: 1px solid #DCE5DE; display: grid; gap: 2px; }
.p-grid2 strong { font-family: var(--font-display); font-size: 1.1rem; }
.p-grid2 span { color: var(--h-muted); }
.p-grid4 { list-style: none; margin: 32px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.p-grid4 li { border-top: 3px solid var(--h-orange); padding-top: 14px; display: grid; gap: 6px; align-content: start; }
.p-grid4 strong { font-family: var(--font-display); font-size: 1.2rem; }
.p-grid4 span { color: var(--h-muted); line-height: 1.5; }

.p-tracks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.p-track { background: #fff; border: 1px solid #DCE5DE; border-radius: 28px; padding: 36px; }
.p-track--dark { background: var(--h-deep); color: #fff; border-color: var(--h-deep); }
.p-track__eyebrow { margin: 0; font-size: var(--text-xs); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--h-muted); }
.p-track--dark .p-track__eyebrow { color: #BFD6C7; }
.p-track h2 { margin: 6px 0 0; font-family: var(--font-display); font-weight: 700; font-size: 1.9rem; letter-spacing: -0.01em; }
.p-steps { list-style: none; margin: 24px 0 0; padding: 0; }
.p-steps li { display: flex; gap: 16px; padding: 16px 0; border-top: 1px solid #E3EAE4; }
.p-track--dark .p-steps li { border-color: #285B45; }
.p-steps__n { flex: none; width: 36px; height: 36px; border-radius: 50%; background: var(--h-deep); color: #fff; display: flex; align-items: center; justify-content: center; font-family: var(--font-display); font-weight: 800; }
.p-track--dark .p-steps__n { background: var(--h-orange); color: var(--h-deep); }
.p-steps strong { display: block; font-family: var(--font-display); font-size: 1.15rem; }
.p-steps div span { color: var(--h-muted); }
.p-track--dark .p-steps div span { color: #BFD6C7; }
.p-flow { display: flex; flex-wrap: wrap; align-items: stretch; gap: 12px; margin-top: 36px; }
.p-flow__card { flex: 1 1 220px; background: #fff; border: 1px solid #DCE5DE; border-radius: 22px; padding: 24px; }
.p-flow__card--dark { background: var(--h-deep); color: #fff; border-color: var(--h-deep); }
.p-flow__card small { display: block; font-size: var(--text-xs); font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--h-muted); }
.p-flow__card--dark small { color: #BFD6C7; }
.p-flow__card strong { display: block; margin-top: 10px; font-family: var(--font-display); font-weight: 800; font-size: 1.6rem; letter-spacing: -0.02em; }
.p-flow__card p { margin: 6px 0 0; color: var(--h-muted); }
.p-flow__card--dark p { color: #BFD6C7; }
.p-flow__arrow { flex: 0 0 28px; display: flex; align-items: center; justify-content: center; color: var(--h-orange); font-size: 1.6rem; }

.p-group { display: flex; flex-wrap: wrap; gap: 48px; padding-block: 56px; border-bottom: 1px solid #DCE5DE; }
.p-group:last-child { border-bottom: 0; }
.p-group__title { flex: 1 1 280px; min-width: 0; }
.p-group__title h2 { margin-top: 8px; }
.p-group .p-grid2 { flex: 2 1 560px; margin: 0; min-width: 0; }
.p-group .p-grid2 li { border-bottom-color: #E3EAE4; }

.p-faq { background: var(--h-tint); padding-block: 80px; }

.p-band { background: var(--h-deep); color: #fff; }
.p-band__in { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 28px; padding-block: 72px; }
.p-band h2 { margin: 0; font-family: var(--font-display); font-weight: 700; font-size: clamp(1.9rem, 2.2vw + 1rem, 2.5rem); letter-spacing: -0.02em; }
.p-band p { margin: 10px 0 0; font-size: 1.15rem; color: #D3E4D9; max-width: 32em; }
.p-band__actions { display: flex; gap: 12px; flex-wrap: wrap; }
.p-band .btn--ghost { border-color: #3B6B55; color: #fff; }
.p-band__apps { display: flex; gap: 12px; flex-wrap: wrap; }
.p-band__apps span { display: inline-flex; align-items: center; min-height: 52px; padding: 0 22px; border-radius: 14px; background: #fff; color: var(--h-deep); font-weight: 700; }

@media (max-width: 62rem) {
  .p-hero__in { padding-top: 120px; }
  .p-hero__copy { padding-bottom: 32px; flex-basis: auto; }
  .p-hero__phone { flex: none; align-self: center; margin-bottom: -90px; }
  .p-hero__phone .phone { --w: 220px; }
  .p-tracks { grid-template-columns: minmax(0, 1fr); }
  .p-grid4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .p-dark__phones { height: 440px; }
  .p-dark__phones .phone { --w: 190px; }
  .p-dark__copy { padding-bottom: 32px; }
  .p-media { height: 420px; }
  .p-split { padding-block: 72px 48px; }
  .p-flow__arrow { display: none; }
}
@media (max-width: 40rem) {
  .p-trio { grid-template-columns: minmax(0, 1fr); }
  .p-grid2 { grid-template-columns: minmax(0, 1fr); }
  .p-grid4 { grid-template-columns: minmax(0, 1fr); }
  .p-track { padding: 26px 22px; }
  .p-media .phone { --w: 160px; }
  .p-media--one .phone { --w: 190px; }
  .p-dark__phones .phone { --w: 150px; }
  .p-dark__phones .phone:last-child { left: 50%; }
  .p-band .btn { width: 100%; }
  .p-hero .btn { width: 100%; }
  .p-hero__actions { flex-direction: column; }
}
.p-track.p-steps li:first-child { border-top: 0; }

/* ---------- Sticky header ---------- */
.nav { transition: background-color var(--dur-short) var(--ease-out), box-shadow var(--dur-short) var(--ease-out); }
.has-hero .nav.is-solid { background: rgba(7, 36, 25, .94); backdrop-filter: blur(10px); box-shadow: 0 1px 0 rgba(255,255,255,.08); }
.has-hero .nav.is-solid .nav__in { min-height: 72px; }
.has-hero .nav__in { transition: min-height var(--dur-short) var(--ease-out); }

/* ---------- Search bar dropdowns and place suggestions ---------- */
.h-book__f { position: relative; }
.dd { position: relative; }
.dd__btn { all: unset; box-sizing: border-box; display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; cursor: pointer; font: 600 1.05rem var(--font-body); color: var(--color-ink); }
.dd__btn:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 4px; border-radius: 6px; }
.dd__val { text-transform: none; letter-spacing: 0; font-size: inherit; font-weight: inherit; color: inherit; }
.dd__chev { flex: none; width: 9px; height: 9px; border-right: 2px solid #4B5C52; border-bottom: 2px solid #4B5C52; transform: rotate(45deg) translateY(-2px); transition: transform var(--dur-short) var(--ease-out); }
.dd.is-open .dd__chev { transform: rotate(-135deg) translateY(-2px); }
.dd__list, .ac__list { position: absolute; left: -16px; right: -16px; top: calc(100% + 22px); z-index: 60; min-width: 220px; margin: 0; padding: 8px; list-style: none; background: #fff; color: var(--color-ink); border: 1px solid #E1E8E2; border-radius: 18px; box-shadow: 0 24px 48px -16px rgba(10, 51, 36, .38); max-height: 300px; overflow: auto; }
.dd__opt { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 11px 14px; border-radius: 12px; cursor: pointer; font-weight: 600; }
.dd__opt.is-active, .dd__opt:hover { background: #E8F1EA; }
.dd__opt.is-selected { color: var(--h-deep); }
.dd__opt.is-selected::after { content: ""; flex: none; width: 12px; height: 7px; border-left: 2.5px solid var(--h-deep); border-bottom: 2.5px solid var(--h-deep); transform: rotate(-45deg) translateY(-2px); }
.ac__opt { display: grid; gap: 1px; padding: 10px 14px; border-radius: 12px; cursor: pointer; }
.ac__opt strong { font-weight: 700; }
.ac__opt span { font-size: .85rem; font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--h-muted); }
.ac__opt.is-active, .ac__opt:hover { background: #E8F1EA; }

/* ---------- "Book in the app" dialog ---------- */
.dlg { border: 0; padding: 0; border-radius: 28px; width: min(440px, calc(100vw - 32px)); max-height: calc(100dvh - 32px); box-shadow: 0 40px 80px -20px rgba(0,0,0,.5); color: var(--color-ink); background: #fff; }
.dlg::backdrop { background: rgba(7, 36, 25, .65); backdrop-filter: blur(3px); }
.dlg__box { position: relative; padding: 32px 28px 28px; text-align: center; }
.dlg__x { position: absolute; right: 14px; top: 14px; width: 44px; height: 44px; border: 0; border-radius: 50%; background: #F0F4F1; font-size: 1.6rem; line-height: 1; cursor: pointer; color: var(--color-ink); }
.dlg__x:hover { background: #E3EAE5; }
.dlg h2 { margin: 0 36px; font-family: var(--font-display); font-size: 1.5rem; letter-spacing: -0.01em; line-height: 1.15; overflow-wrap: anywhere; }
.dlg__lead { margin: 10px auto 0; color: var(--h-muted); font-size: .95rem; max-width: 30em; }
.dlg__qr { width: 220px; height: 220px; margin: 20px auto 0; padding: 12px; background: #fff; border: 1px solid #E1E8E2; border-radius: 20px; box-sizing: border-box; display: grid; place-items: center; }
.dlg__qr svg { width: 100%; height: 100%; display: block; }
.dlg__link { margin: 12px 0 0; font-size: .85rem; word-break: break-all; color: var(--h-muted); }
.dlg__row { margin-top: 10px; }
.dlg__copy { min-height: 44px; }
.dlg__send { margin-top: 22px; padding-top: 20px; border-top: 1px solid #E3EAE4; text-align: left; }
.dlg__send label { display: block; font-weight: 700; margin-bottom: 8px; }
.dlg__field { display: flex; gap: 8px; align-items: stretch; flex-wrap: wrap; }
.dlg__code { display: flex; align-items: center; padding: 0 14px; border: 1.5px solid #D5E2D9; border-radius: 14px; background: #F3F7F4; font-weight: 700; }
.dlg__field input { flex: 1 1 140px; min-width: 0; min-height: 52px; padding: 0 14px; border: 1.5px solid #D5E2D9; border-radius: 14px; font: 600 1.05rem var(--font-body); color: var(--color-ink); }
.dlg__field input:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 1px; }
.dlg__field .btn { min-height: 52px; }
.dlg__status { min-height: 1.4em; margin: 10px 0 0; font-weight: 600; color: #1B6B45; }
.dlg__status.is-bad { color: var(--color-error); }
body:has(dialog[open]) { overflow: hidden; }
@media (max-width: 40rem) { .dd__list, .ac__list { left: -8px; right: -8px; top: calc(100% + 14px); } .dlg__box { padding: 28px 20px 22px; } .dlg__field .btn { width: 100%; } }

/* ---------- Dialog, wide two-column layout ---------- */
.dlg { width: min(780px, calc(100vw - 32px)); max-height: none; overflow: visible; }
.dlg__box { padding: 32px 36px 32px; text-align: left; }
.dlg h2 { margin: 0 52px 0 0; font-size: 1.6rem; }
.dlg__lead { margin: 8px 0 0; max-width: 38em; }
.dlg__cols { display: flex; align-items: stretch; gap: 36px; margin-top: 24px; }
.dlg__col--qr { flex: 0 0 240px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.dlg__qr { width: 220px; height: 220px; margin: 0; }
.dlg__hint { margin: 12px 0 0; font-size: .9rem; font-weight: 600; color: var(--h-muted); }
.dlg__col--send { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; justify-content: center; gap: 22px; padding-left: 36px; border-left: 1px solid #E3EAE4; }
.dlg__send { margin: 0; padding: 0; border: 0; display: grid; gap: 10px; }
.dlg__send label { margin: 0; font-size: 1.05rem; }
.dlg__field { flex-wrap: nowrap; }
.dlg__field input { flex: 1 1 0; }
.dlg__go { width: 100%; min-height: 52px; }
.dlg__status { margin: 0; min-height: 1.3em; }
.dlg__copyrow { display: grid; gap: 8px; justify-items: start; }
.dlg__link { font-size: .85rem; color: var(--h-muted); word-break: break-all; }
.dlg__copy { min-height: 44px; }
@media (max-width: 40rem) {
  .dlg { max-height: calc(100dvh - 24px); overflow: auto; }
  .dlg__box { padding: 24px 20px 22px; }
  .dlg h2 { font-size: 1.3rem; }
  .dlg__cols { flex-direction: column; gap: 20px; margin-top: 18px; }
  .dlg__col--qr { flex: none; }
  .dlg__qr { width: 190px; height: 190px; }
  .dlg__col--send { padding-left: 0; border-left: 0; border-top: 1px solid #E3EAE4; padding-top: 20px; }
}

/* Search results: leave room for the sticky header when scrolled to */
#results { scroll-margin-top: 16px; }
