/* ==========================================================================
   London Escorts Hub: components
   Hero, cards, grids, casting card, tiles, chips, filters, sheets, term pages,
   profile, FAQ, calls to action.
   ========================================================================== */

/* ---- Hero ----------------------------------------------------------------- */

.leh-hero { position: relative; overflow: hidden; border-bottom: 1px solid var(--leh-line); }
.leh-hero::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background:
    radial-gradient(760px 520px at 78% 42%, rgba(201, 168, 106, 0.13), transparent 62%),
    radial-gradient(520px 380px at 8% 92%, rgba(201, 168, 106, 0.06), transparent 60%);
}
.leh-hero__inner {
  position: relative; display: grid; gap: 40px; align-items: center;
  padding-block: clamp(32px, 5vw, 72px);
}
@media (min-width: 1024px) {
  .leh-hero__inner { grid-template-columns: 1.15fr 0.85fr; gap: 40px; min-height: calc(86vh - var(--leh-header-h)); }
}
.leh-hero__copy { animation: leh-rise var(--leh-slow) var(--leh-ease) both; }
.leh-hero__title { font-size: var(--leh-fs-hero) !important; line-height: 0.98 !important; margin-bottom: 22px !important; max-width: none; }
.leh-hero__title em { font-style: italic; font-weight: 500; color: var(--leh-gold-bright); }

.leh-finder {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; max-width: 660px; margin: 28px 0 24px; padding: 10px;
  border: 1px solid var(--leh-line-strong); border-radius: var(--leh-radius-lg);
  background: rgba(14, 13, 11, 0.6);
  -webkit-backdrop-filter: var(--leh-blur); backdrop-filter: var(--leh-blur);
  box-shadow: var(--leh-shadow-soft);
}
/* Phones: the area on its own row, then Available today beside the button, then near me. */
.leh-finder .leh-select { grid-column: 1 / -1; min-height: 46px; border-color: transparent; background-color: rgba(244, 239, 230, 0.04); }
@media (min-width: 640px) {
  .leh-finder { grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; }
  .leh-finder .leh-select { grid-column: auto; }
}
.leh-finder__toggle {
  display: inline-flex; align-items: center; gap: 9px; min-height: 46px; padding: 0 14px;
  border-radius: var(--leh-radius-md); background: rgba(244, 239, 230, 0.04);
  font-size: 0.84rem; color: var(--leh-ink-2); cursor: pointer; white-space: nowrap;
}
.leh-finder__toggle input { width: 17px; height: 17px; margin: 0; accent-color: var(--leh-gold); }
.leh-finder .leh-btn { min-height: 46px; padding-inline: 20px; border-radius: var(--leh-radius-md); }

.leh-hero__trust { display: flex; flex-wrap: wrap; gap: 10px 22px; margin: 0; padding: 0; list-style: none; font-size: 0.84rem; color: var(--leh-muted); }
.leh-hero__trust li { display: inline-flex; align-items: center; gap: 8px; }
.leh-hero__trust .leh-icon { width: 18px; height: 18px; color: var(--leh-gold); }

.leh-hero__art { position: relative; display: none; }
@media (min-width: 1024px) { .leh-hero__art { display: block; align-self: stretch; min-height: 560px; } }
.leh-arch {
  position: absolute; overflow: hidden; margin: 0;
  border-radius: 999px 999px var(--leh-radius-md) var(--leh-radius-md);
  border: 1px solid var(--leh-gold-line); background: var(--leh-surface);
  box-shadow: var(--leh-shadow);
  animation: leh-rise var(--leh-slow) var(--leh-ease) both;
}
.leh-arch img { width: 100%; height: 100%; object-fit: cover; object-position: center 18%; }
.leh-arch::after {
  content: ""; position: absolute; inset: 8px; border-radius: inherit; pointer-events: none;
  border: 1px solid rgba(227, 200, 147, 0.26);
}
.leh-arch--1 { width: 46%; height: 80%; left: 27%; top: 6%; z-index: 2; animation-delay: 120ms; }
.leh-arch--2 { width: 33%; height: 56%; left: 0; top: 32%; animation-delay: 260ms; }
.leh-arch--3 { width: 33%; height: 56%; right: 0; top: 16%; animation-delay: 380ms; }

/* ---- Stats ---------------------------------------------------------------- */

.leh-stats {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; margin: 0; padding: 0; list-style: none;
  background: var(--leh-line); border: 1px solid var(--leh-line); border-radius: var(--leh-radius-lg); overflow: hidden;
}
@media (min-width: 900px) { .leh-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.leh-stat { padding: 22px 22px 20px; background: var(--leh-raised); }
.leh-stat__value { display: block; font: 500 clamp(2rem, 2.6vw + 1rem, 2.9rem)/1 var(--leh-font-display); color: var(--leh-gold-bright); }
.leh-stat__label { display: block; margin-top: 8px; font-size: 0.8rem; color: var(--leh-muted); }

/* ---- Grids ---------------------------------------------------------------- */

.leh-grid {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px;
  margin: 0; padding: 0; list-style: none;
}
@media (min-width: 640px) { .leh-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; } }
@media (min-width: 1024px) { .leh-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; } }
.leh-grid__item { min-width: 0; }
.leh-grid__item.is-hidden { display: none; }

.leh-grid--rail {
  grid-auto-flow: column; grid-template-columns: none; grid-auto-columns: 46%;
  /* proximity, not mandatory: a mandatory snap tugged rails sideways during slow vertical scrolls on iPhone */
  overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x proximity;
  /* Top room so a card lifting on hover keeps its border: a sideways scroller clips vertically too. */
  margin: -8px calc(var(--leh-gutter) * -1) 0; padding: 8px var(--leh-gutter) 14px;
  scroll-padding-inline: var(--leh-gutter); scrollbar-width: none;
}
.leh-grid--rail::-webkit-scrollbar { display: none; }
.leh-grid--rail > .leh-grid__item { scroll-snap-align: start; }
/* Touch screens scroll rails freely: WebKit re-settled snapped rails as a fling slowed down, which shook the page on iPhone. */
@media (pointer: coarse) { .leh-grid--rail { scroll-snap-type: none; } }
@media (min-width: 640px) { .leh-grid--rail { grid-auto-columns: 31%; } }
@media (min-width: 1024px) {
  .leh-grid--rail { grid-auto-columns: calc((100% - 66px) / 4); margin-inline: 0; padding-inline: 0; scroll-padding-inline: 0; }
}

/* The bar under a rail: shows how far along it you are, and can be dragged or tapped. */
.leh-railbar { position: relative; height: 22px; margin-top: 2px; cursor: pointer; touch-action: none; }
.leh-railbar[hidden] { display: none; }
.leh-railbar::before {
  content: ""; position: absolute; top: 50%; left: 0; right: 0; height: 2px; margin-top: -1px;
  border-radius: var(--leh-pill); background: var(--leh-line-strong);
}
.leh-railbar__thumb {
  position: absolute; top: 50%; left: 0; width: 30%; height: 4px; margin-top: -2px;
  border-radius: var(--leh-pill); background: var(--leh-gold-grad); box-shadow: 0 0 10px rgba(201, 168, 106, 0.3);
  transition: height var(--leh-fast) var(--leh-ease), margin-top var(--leh-fast) var(--leh-ease);
}
.leh-railbar:hover .leh-railbar__thumb, .leh-railbar.is-dragging .leh-railbar__thumb { height: 6px; margin-top: -3px; }

/* Previous and next buttons over a rail's edges, for screens with a mouse. */
.leh-railshell { position: relative; }
.leh-railnav { display: none; }
@media (hover: hover) and (min-width: 1024px) {
  .leh-railnav {
    position: absolute; top: 40%; z-index: 2; display: grid; place-items: center;
    width: 46px; height: 46px; margin-top: -23px; padding: 0;
    border: 1px solid var(--leh-gold-line); border-radius: 50%;
    background-color: rgba(14, 13, 11, 0.92);
    color: var(--leh-gold-bright); box-shadow: var(--leh-shadow-soft); cursor: pointer;
    transition: opacity var(--leh-mid) var(--leh-ease), background-color var(--leh-fast) var(--leh-ease), color var(--leh-fast) var(--leh-ease);
  }
  .leh-railnav[hidden] { display: none; }
  .leh-railnav--prev { left: -23px; }
  .leh-railnav--next { right: -23px; }
  .leh-railnav .leh-icon { width: 18px; height: 18px; }
  .leh-railnav--prev .leh-icon { transform: rotate(180deg); }
  .leh-railnav:hover { border-color: var(--leh-gold); background-color: var(--leh-gold); color: #15110a; }
  .leh-railnav:focus-visible { outline: 2px solid var(--leh-gold); outline-offset: 3px; }
  .leh-railnav:disabled { opacity: 0; pointer-events: none; }
}

/* ---- Card ----------------------------------------------------------------- */

.leh-card {
  position: relative; height: 100%; isolation: isolate; overflow: hidden;
  border: 1px solid var(--leh-line); border-radius: var(--leh-radius-md); background: var(--leh-surface);
  transition: border-color var(--leh-mid) var(--leh-ease), transform var(--leh-mid) var(--leh-ease);
}
@media (hover: hover) {
  .leh-card:hover { border-color: var(--leh-gold-line); transform: translateY(-3px); box-shadow: var(--leh-shadow-soft); }
  .leh-card:hover .leh-card__img { transform: scale(1.045); }
}
/* Touch screens get the same look while a finger rests on a card or taps it (core.js adds is-pressed). */
@media (hover: none) {
  .leh-card.is-pressed { border-color: var(--leh-gold-line); transform: translateY(-3px); box-shadow: var(--leh-shadow-soft); }
  .leh-card.is-pressed .leh-card__img { transform: scale(1.045); }
}
/* No hover lift while the page scrolls (core.js sets the class): it repainted every card the pointer passed. */
.is-scrolling .leh-card { pointer-events: none; }
.leh-card.is-featured { border-color: var(--leh-gold-line); }
.leh-card__link { display: flex; flex-direction: column; height: 100%; color: inherit !important; text-decoration: none !important; }
.leh-card__media { position: relative; display: block; aspect-ratio: 2 / 3; overflow: hidden; background: var(--leh-surface-2); }
.leh-card__img { width: 100%; height: 100%; object-fit: cover; object-position: center 20%; transition: transform var(--leh-slow) var(--leh-ease); }
.leh-card__media::after {
  content: ""; position: absolute; inset: auto 0 0; height: 34%; pointer-events: none;
  background: linear-gradient(180deg, transparent, rgba(8, 7, 6, 0.5));
}
.leh-card__badges { position: absolute; top: 10px; left: 10px; right: 56px; z-index: 2; display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }

.leh-badge {
  display: inline-flex; align-items: center; gap: 6px; height: 24px; padding: 0 10px;
  border: 1px solid var(--leh-line-strong); border-radius: var(--leh-pill);
  background: rgba(8, 7, 6, 0.78);
  color: var(--leh-ink); font: 600 0.6rem/1 var(--leh-font-body); letter-spacing: 0.12em; text-transform: uppercase;
  white-space: nowrap;
}
.leh-badge--featured { border-color: var(--leh-gold-line); color: var(--leh-gold-bright); }
.leh-badge--new { color: var(--leh-gold-bright); }
/* A one-letter seal: N for new, R for recommended, S for selfies. The word is in the title and for screen readers. */
.leh-badge--letter {
  display: inline-grid; place-items: center; width: 24px; padding: 0; gap: 0; border-color: var(--leh-gold-line); border-radius: 50%;
  color: var(--leh-gold-bright); font-size: 0.66rem; line-height: 1; letter-spacing: 0; text-align: center; cursor: help;
}
.leh-badge--letter > span[aria-hidden] { display: block; transform: translateY(0.5px); }
/* That half pixel only helps screens that round text to whole pixels. Phones and retina
   screens place text exactly, and there the plain box is already dead centre. */
@media (max-width: 639px), (min-resolution: 2dppx) { .leh-badge--letter > span[aria-hidden] { transform: none; } }
/* Desktop Chrome and Firefox, measured with tools/webkit-test/centre-check.js over ten seals at 100% to
   200% zoom: the letter's box is trimmed to its capitals, and each seal gets a layer of its own so the
   ring and the letter land on the same pixels. Capitals then sit about a quarter of a pixel from centre
   or better, where the rules above left them up to a pixel and a half high. Phones and Safari keep those rules. */
@media (hover: hover) and (pointer: fine) {
  @supports (text-box: trim-both cap alphabetic) and (not (font: -apple-system-body)) {
    .leh-badge--letter { will-change: transform; }
    .leh-badge--letter > span[aria-hidden] { transform: none; text-box: trim-both cap alphabetic; }
  }
}
.leh-badge--live::before {
  content: ""; width: 6px; height: 6px; border-radius: 50%;
  background: var(--leh-live); box-shadow: 0 0 0 3px var(--leh-live-veil);
}

.leh-card__distance {
  position: absolute; left: 10px; bottom: 10px; z-index: 2;
  display: inline-flex; align-items: center; gap: 5px; height: 26px; padding: 0 10px 0 8px;
  border-radius: var(--leh-pill); background: rgba(8, 7, 6, 0.82);
  border: 1px solid var(--leh-gold-line); color: var(--leh-ink); font-size: 0.72rem;
}
.leh-card__distance .leh-icon { width: 14px; height: 14px; color: var(--leh-gold); }

/* The panel overlaps the photo by a pixel on a solid background. Chrome redraws the photo's clipped
   bottom edge on every frame of the hover zoom, and that edge flickered against the panel. */
.leh-card__body { position: relative; display: grid; gap: 3px; margin-top: -1px; padding: 13px 14px 13px; background: var(--leh-surface); }
/* Rounded tiles whose photo zooms get their own layer once, so the rounded clip is not redrawn each frame. */
@media (hover: hover) { .leh-tiles--feature .leh-tile, .leh-split__card, .leh-portrait { will-change: transform; } }
.leh-card__title { display: flex; align-items: center; gap: 7px; min-width: 0; }
.leh .leh-card__name {
  margin: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;
  font: 500 1.42rem/1.1 var(--leh-font-display); color: var(--leh-ink);
}
.leh-card__tick {
  display: inline-grid; place-items: center; flex: none; width: 17px; height: 17px; border-radius: 50%;
  background: var(--leh-gold); color: #15110a;
}
.leh-card__tick .leh-icon { width: 11px; height: 11px; stroke-width: 2.6; }
.leh-card__meta { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: 0.8rem; color: var(--leh-muted); }
.leh-card__foot {
  display: flex; align-items: baseline; justify-content: space-between; gap: 8px;
  margin-top: 7px; padding-top: 9px; border-top: 1px solid var(--leh-line);
}
.leh-card__price { font-size: 0.76rem; color: var(--leh-soft); white-space: nowrap; }
.leh-card__price strong { font: 500 1.12rem/1 var(--leh-font-display); color: var(--leh-gold-bright); }
.leh-card__updated { font-size: 0.66rem; color: var(--leh-soft); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.leh-card__orientation {
  flex: none; padding: 3px 8px; border: 1px solid var(--leh-gold-line); border-radius: var(--leh-pill);
  font: 600 0.58rem/1.2 var(--leh-font-body); letter-spacing: 0.12em; text-transform: uppercase; color: var(--leh-gold); white-space: nowrap;
}
@media (max-width: 479px) {
  .leh .leh-card__name { font-size: 1.22rem; }
  /* Phones leave her orientation to the profile. TS stays, because clients look for it. */
  .leh-card__updated, .leh-card__orientation:not(.leh-card__orientation--ts) { display: none; }
  .leh-card__body { padding: 11px 11px 11px; }
}

.leh-save {
  position: absolute; top: 8px; right: 8px; z-index: 3;
  display: grid; place-items: center; width: 38px; height: 38px; padding: 0;
  border: 1px solid var(--leh-line-strong); border-radius: 50%;
  background: rgba(8, 7, 6, 0.7);
  color: var(--leh-ink); transition: color var(--leh-fast), border-color var(--leh-fast), transform var(--leh-fast);
}
.leh-save:hover { border-color: var(--leh-gold-line); }
.leh-save:active { transform: scale(0.92); }
.leh-save .leh-icon { width: 18px; height: 18px; }
.leh-save[aria-pressed="true"], .leh-btn[aria-pressed="true"] { color: var(--leh-gold) !important; border-color: var(--leh-gold-line); }
.leh-save[aria-pressed="true"] .leh-icon, .leh-btn[aria-pressed="true"] .leh-icon--heart { fill: currentColor; }

.leh-noph {
  position: absolute; inset: 0; display: grid; place-content: center; justify-items: center; gap: 10px;
  background: radial-gradient(circle at 50% 36%, var(--leh-surface-2), var(--leh-bg-deep));
}
.leh-noph__letter { font: italic 500 4.2rem/1 var(--leh-font-display); color: var(--leh-gold); }
.leh-noph__note { font-size: 0.62rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--leh-soft); }

/* ---- Casting card --------------------------------------------------------- */

.leh-card--casting {
  border-style: dashed; border-color: var(--leh-gold-line);
  background: radial-gradient(120% 80% at 50% 0%, rgba(201, 168, 106, 0.15), transparent 62%), var(--leh-raised);
}
.leh-card--casting .leh-card__link { justify-content: center; min-height: 100%; }
.leh-casting {
  display: grid; justify-items: center; align-content: center; gap: 12px;
  min-height: 340px; height: 100%; padding: 28px 18px; text-align: center;
}
.leh-casting__icon {
  display: grid; place-items: center; width: 50px; height: 50px; border-radius: 50%;
  border: 1px solid var(--leh-gold-line); color: var(--leh-gold);
}
.leh-casting__eyebrow { font: 600 0.62rem/1 var(--leh-font-body); letter-spacing: 0.24em; text-transform: uppercase; color: var(--leh-gold); }
.leh-casting__title { font: 500 1.5rem/1.15 var(--leh-font-display); color: var(--leh-ink); }
.leh-casting__text { max-width: 26ch; font-size: 0.82rem; line-height: 1.55; color: var(--leh-muted); }

/* ---- Tiles ---------------------------------------------------------------- */

.leh-tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(236px, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.leh-tile {
  display: flex; align-items: center; gap: 14px; height: 100%; padding: 16px 18px;
  border: 1px solid var(--leh-line); border-radius: var(--leh-radius-md); background: var(--leh-raised);
  color: inherit !important; text-decoration: none !important;
  transition: border-color var(--leh-mid) var(--leh-ease), background var(--leh-mid) var(--leh-ease);
}
.leh-tile.has-face { padding: 9px 16px 9px 9px; }
.leh-tile:hover { border-color: var(--leh-gold-line); background: var(--leh-surface); }
.leh-tile__media { width: 52px; height: 70px; flex: none; overflow: hidden; border-radius: 3px; background: var(--leh-surface-2); }
.leh-tile__img { width: 100%; height: 100%; object-fit: cover; object-position: center 18%; }
.leh-tile__body { display: grid; gap: 4px; min-width: 0; }
.leh-tile__name { font: 500 1.24rem/1.12 var(--leh-font-display); color: var(--leh-ink); }
.leh-tile__meta { font-size: 0.76rem; color: var(--leh-muted); }

.leh-tiles--feature { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 900px) { .leh-tiles--feature { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.leh-tiles--feature .leh-tile { position: relative; display: block; min-height: 220px; padding: 0; overflow: hidden; }
.leh-tiles--feature .leh-tile__media { position: absolute; inset: 0; width: auto; height: auto; border-radius: 0; }
.leh-tiles--feature .leh-tile__img { transition: transform var(--leh-slow) var(--leh-ease); }
.leh-tiles--feature .leh-tile:hover .leh-tile__img { transform: scale(1.05); }
.leh-tiles--feature .leh-tile__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(8, 7, 6, 0.05) 30%, rgba(8, 7, 6, 0.86)); }
.leh-tiles--feature .leh-tile__body { position: absolute; inset: auto 0 0; padding: 16px; }
.leh-tiles--feature .leh-tile__name { font-size: 1.55rem; }

/* ---- Chips ---------------------------------------------------------------- */

.leh-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.leh-chip {
  display: inline-flex; align-items: center; gap: 7px; min-height: 36px; padding: 0 14px;
  border: 1px solid var(--leh-line-strong); border-radius: var(--leh-pill);
  background: rgba(244, 239, 230, 0.02); color: var(--leh-ink-2) !important;
  font-size: 0.82rem; line-height: 1; text-decoration: none !important; white-space: nowrap;
  transition: border-color var(--leh-fast) var(--leh-ease), background var(--leh-fast) var(--leh-ease), color var(--leh-fast) var(--leh-ease);
}
button.leh-chip { cursor: pointer; }
.leh-chip:hover { border-color: var(--leh-gold-line); color: var(--leh-ink) !important; }
.leh-chip__count { color: var(--leh-soft); font-size: 0.72rem; }
.leh-chip[aria-pressed="true"], .leh-chip.is-on {
  border-color: var(--leh-gold); background: var(--leh-gold-veil); color: var(--leh-gold-bright) !important;
}
.leh-chip .leh-icon { width: 15px; height: 15px; }
.leh-chip--solid { background: var(--leh-surface); }
.leh-chips.is-collapsed > .leh-chips__extra { display: none; }
.leh-chip--more { border-color: var(--leh-gold-line); color: var(--leh-gold) !important; font-weight: 500; }
.leh-chip--more:hover { border-color: var(--leh-gold); background: var(--leh-gold-veil); color: var(--leh-gold-bright) !important; }

/* ---- Filters -------------------------------------------------------------- */

/* One panel above a listing: facet dropdowns and sorting, then search, then
   what is applied. On phones the facets scroll sideways and open as sheets. */

.leh-filters {
  position: relative;
  margin: 0 0 clamp(22px, 2.6vw, 32px); padding: 14px;
  border: 1px solid var(--leh-line); border-radius: var(--leh-radius-lg);
  background: linear-gradient(180deg, rgba(244, 239, 230, 0.035), rgba(244, 239, 230, 0.01)), var(--leh-raised);
  box-shadow: var(--leh-shadow-soft);
}
.leh-filters[hidden], .leh-filters [hidden] { display: none !important; }
/* The bar needs JavaScript. A class set in the head, before anything paints,
   lets it show together with the grid instead of after it. */
html:not(.leh-js) .leh-filters { display: none; }

.leh-filters__row { display: flex; align-items: flex-start; gap: 10px; }
.leh-filters__facets { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; flex: 1; min-width: 0; }
.leh-filters__sort {
  flex: none; width: auto; min-height: 40px; padding: 8px 40px 8px 16px;
  border-radius: var(--leh-pill); font-size: 0.84rem; background-position: right 14px center;
}

.leh-filters__search { position: relative; margin-top: 10px; }
.leh-filters__search > .leh-icon {
  position: absolute; top: 50%; left: 18px; width: 18px; height: 18px;
  transform: translateY(-50%); color: var(--leh-gold); pointer-events: none;
}
.leh-filters__q { min-height: 50px; padding-left: 48px; border-radius: var(--leh-pill); font-size: 0.95rem; }

.leh-filters__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; margin-top: 12px; padding: 0 4px; }
.leh-filters__status { margin: 0; font-size: 0.82rem; color: var(--leh-muted); }
.leh-filters__status strong { color: var(--leh-ink); font-weight: 600; }
.leh-filters__pills { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.leh-filters__pills .leh-chip { min-height: 30px; padding: 0 10px 0 12px; font-size: 0.76rem; }
.leh-filters__reset, .leh-facet__clear {
  padding: 6px; border: 0; background: none; cursor: pointer;
  color: var(--leh-muted); font-size: 0.8rem; text-decoration: underline; text-underline-offset: 3px;
}
.leh-filters__reset:hover, .leh-facet__clear:hover { color: var(--leh-ink); }

.leh-facet { position: relative; }
.leh-facet__toggle {
  display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 14px 0 16px;
  border: 1px solid var(--leh-line-strong); border-radius: var(--leh-pill);
  background: rgba(244, 239, 230, 0.02); color: var(--leh-ink-2);
  font: 500 0.84rem/1 var(--leh-font-body); white-space: nowrap; cursor: pointer;
  transition: border-color var(--leh-fast) var(--leh-ease), background var(--leh-fast) var(--leh-ease), color var(--leh-fast) var(--leh-ease);
}
.leh-facet__toggle:hover, .leh-facet.is-open > .leh-facet__toggle { border-color: var(--leh-gold-line); color: var(--leh-ink); }
.leh-facet.is-active > .leh-facet__toggle, .leh-near[aria-pressed="true"] {
  border-color: var(--leh-gold); background: var(--leh-gold-veil); color: var(--leh-gold-bright);
}
.leh-facet__caret { width: 13px; height: 13px; transform: rotate(90deg); opacity: 0.7; transition: transform var(--leh-fast) var(--leh-ease); }
.leh-facet.is-open .leh-facet__caret { transform: rotate(-90deg); }
.leh-facet__badge {
  display: inline-grid; place-items: center; min-width: 18px; height: 18px; padding: 0 5px; border-radius: var(--leh-pill);
  background: var(--leh-gold); color: #15110a; font-size: 0.64rem; font-weight: 700;
}
.leh-near { padding-left: 13px; }
.leh-near .leh-icon { width: 16px; height: 16px; color: var(--leh-gold); }
.leh-near.is-busy { opacity: 0.65; pointer-events: none; }

.leh-facet__panel {
  position: absolute; top: calc(100% + 8px); left: 0; z-index: 50;
  display: flex; flex-direction: column; width: 320px; max-height: min(460px, 62vh);
  border: 1px solid var(--leh-line-strong); border-radius: var(--leh-radius-md);
  background: var(--leh-surface); box-shadow: var(--leh-shadow);
  animation: leh-drop var(--leh-mid) var(--leh-ease);
}
.leh-facet__panel:focus { outline: none; }
.leh-facet.is-flipped > .leh-facet__panel { left: auto; right: 0; }
.leh-facet__head { display: none; }
.leh-facet__search { position: relative; padding: 10px 10px 4px; }
.leh-facet__search > .leh-icon {
  position: absolute; top: calc(50% + 3px); left: 22px; width: 15px; height: 15px;
  transform: translateY(-50%); color: var(--leh-soft); pointer-events: none;
}
.leh-facet__find { min-height: 40px; padding: 8px 12px 8px 36px; border-radius: var(--leh-radius); font-size: 0.86rem; }
.leh-facet__list { flex: 1; min-height: 0; margin: 0; padding: 4px 6px 8px; overflow-y: auto; overscroll-behavior: contain; list-style: none; }
.leh-facet__group {
  padding: 12px 10px 6px;
  font: 600 0.62rem/1.2 var(--leh-font-body); letter-spacing: 0.2em; text-transform: uppercase; color: var(--leh-gold);
}
.leh-facet__opt {
  display: flex; align-items: center; gap: 12px; padding: 9px 10px; border-radius: var(--leh-radius);
  color: var(--leh-ink-2); font-size: 0.88rem; line-height: 1.25; cursor: pointer;
}
.leh-facet__opt:hover { background: rgba(244, 239, 230, 0.045); color: var(--leh-ink); }
.leh-facet__opt input {
  -webkit-appearance: none; appearance: none; flex: none; display: grid; place-items: center;
  width: 18px; height: 18px; margin: 0; border: 1px solid var(--leh-line-strong); border-radius: 4px;
  background: transparent; cursor: pointer;
  transition: background var(--leh-fast) var(--leh-ease), border-color var(--leh-fast) var(--leh-ease);
}
.leh-facet__opt input::after {
  content: ""; width: 9px; height: 5px; margin-top: -2px;
  border: solid #15110a; border-width: 0 0 2px 2px; transform: rotate(-45deg) scale(0);
  transition: transform var(--leh-fast) var(--leh-ease);
}
.leh-facet__opt input:checked { border-color: var(--leh-gold); background: var(--leh-gold); }
.leh-facet__opt input:checked::after { transform: rotate(-45deg) scale(1); }
.leh-facet__opt input:focus-visible { outline: 2px solid var(--leh-gold-line); outline-offset: 2px; }
.leh-facet__name { flex: 1; min-width: 0; }
.leh-facet__hint { display: block; margin-top: 3px; font-size: 0.72rem; color: var(--leh-soft); }
.leh-facet__num { flex: none; color: var(--leh-soft); font-size: 0.74rem; font-variant-numeric: tabular-nums; }
.leh-facet__item.is-empty .leh-facet__opt { opacity: 0.4; cursor: default; }
.leh-facet__item.is-empty .leh-facet__opt:hover { background: none; }
.leh-facet__none { padding: 14px 10px; color: var(--leh-muted); font-size: 0.84rem; }
.leh-facet__foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px; border-top: 1px solid var(--leh-line); }
.leh-filters__scrim { display: none; }

@keyframes leh-drop { from { transform: translateY(-6px); opacity: 0; } to { transform: none; opacity: 1; } }
@keyframes leh-sheet-up { from { transform: translateY(48px); opacity: 0; } to { transform: none; opacity: 1; } }

@media (max-width: 899px) {
  .leh-filters { display: flex; flex-direction: column; padding: 12px; }
  .leh-filters__search { order: -1; margin: 0 0 10px; }
  /* Every filter stays in view: the buttons wrap onto more lines instead of scrolling sideways. */
  .leh-filters__row { flex-direction: column; align-items: stretch; gap: 8px; }
  .leh-filters__facets { flex-wrap: wrap; gap: 6px; }
  .leh-facet__toggle { min-height: 38px; padding: 0 12px 0 14px; font-size: 0.82rem; }
  .leh-filters__sort { width: 100%; }
  .leh-facet__panel {
    position: fixed; top: auto; right: 0; bottom: 0; left: 0; z-index: 96;
    width: auto; max-height: 84vh; border-width: 1px 0 0; border-radius: 18px 18px 0 0;
    animation-name: leh-sheet-up;
  }
  .leh-facet.is-flipped > .leh-facet__panel { left: 0; }
  .leh-facet__head { display: flex; align-items: center; justify-content: space-between; padding: 14px 10px 4px 20px; }
  .leh-facet__title { margin: 0; font: 500 1.55rem/1.1 var(--leh-font-display); color: var(--leh-ink); }
  .leh-facet__search { padding: 6px 14px 4px; }
  .leh-facet__search > .leh-icon { left: 26px; }
  .leh-facet__list { padding: 4px 10px 10px; }
  .leh-facet__opt { padding: 12px 10px; font-size: 0.95rem; }
  .leh-facet__foot { padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); }
  .leh-filters__scrim:not([hidden]) {
    display: block; position: fixed; inset: 0; z-index: 95;
    background: rgba(5, 4, 3, 0.62); animation: leh-fade var(--leh-mid) var(--leh-ease);
  }
}

/* Phones zoom into any field whose text is under 16px the moment it is tapped, so on
   touch screens every field stays at 16px or more. Pinch zoom itself is left alone. */
@media (pointer: coarse), (max-width: 899px) {
  .leh .leh-input, .leh .leh-select, .leh .leh-textarea { font-size: max(16px, 1em); }
}

.leh-empty {
  display: grid; justify-items: center; gap: 12px; margin: 10px 0; padding: 44px 20px; text-align: center;
  border: 1px dashed var(--leh-line-strong); border-radius: var(--leh-radius-lg); color: var(--leh-muted);
}
.leh-empty__title { margin: 0; font: 500 1.6rem/1.2 var(--leh-font-display); color: var(--leh-ink); }
.leh-empty p { margin: 0; max-width: 46ch; }

/* Saved page: the count and Clear all above the cards, and quiet placeholders while they load. */
.leh-savedbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0 0 16px; }
.leh .leh-savedbar__count { margin: 0; font-size: 0.86rem; color: var(--leh-muted); }
.leh-savedbar__count strong { font-weight: 600; color: var(--leh-ink); }
.leh-skel {
  display: block; aspect-ratio: 2 / 3.4; border: 1px solid var(--leh-line); border-radius: var(--leh-radius-md);
  background: linear-gradient(100deg, transparent 30%, rgba(244, 239, 230, 0.05) 50%, transparent 70%) 0 0 / 300% 100% no-repeat, var(--leh-raised);
  animation: leh-skel 1.4s ease-in-out infinite;
}
@keyframes leh-skel { from { background-position: 100% 0, 0 0; } to { background-position: 0 0, 0 0; } }
@media (prefers-reduced-motion: reduce) { .leh-skel { animation: none; } }

/* ---- Term and listing pages ---------------------------------------------- */

.leh-termhead { padding: clamp(22px, 3.2vw, 40px) 0 clamp(20px, 2.4vw, 32px); }
.leh .leh-termhead__title { margin: 0 0 14px; font-size: var(--leh-fs-h1); }
.leh-termhead__lede { margin: 0; }
.leh-pagehead__facts li.is-verified { color: var(--leh-ink); }

.leh-block { margin-top: var(--leh-gap-block); }
.leh-termhead + .leh-block { margin-top: clamp(8px, 1.4vw, 20px); } /* the head already carries its own space */
.leh-block:empty { display: none; }
.leh-fallback { margin-top: clamp(32px, 3.4vw, 48px); padding-top: clamp(24px, 3vw, 36px); border-top: 1px solid var(--leh-line); }
/* With nobody listed, the closest escorts follow the page head directly: no divider, no extra gap. */
.leh-fallback--solo { margin-top: clamp(8px, 1.4vw, 20px); padding-top: 0; border-top: 0; }

.leh-guide--solo { grid-template-columns: 1fr !important; }
.leh-tiles--list { grid-template-columns: 1fr; gap: 0; }
.leh-guide--solo .leh-tiles--list { grid-template-columns: repeat(auto-fill, minmax(236px, 1fr)); column-gap: 32px; }
.leh-tiles--list .leh-tile { padding: 12px 2px; border: 0; border-bottom: 1px solid var(--leh-line); border-radius: 0; background: transparent; }
.leh-tiles--list li:last-child .leh-tile { border-bottom: 0; }
.leh-tiles--list .leh-tile:hover { background: transparent; }
.leh-tiles--list .leh-tile:hover .leh-tile__name { color: var(--leh-gold-bright); }
.leh-tiles--list .leh-tile__body { display: flex; align-items: baseline; justify-content: space-between; gap: 14px; width: 100%; }
.leh-tiles--list .leh-tile__name { font-size: 1.15rem; }
.leh-tiles--list .leh-tile__meta { white-space: nowrap; }

.leh-guide { display: grid; gap: 28px; }
@media (min-width: 1024px) { .leh-guide { grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr); gap: 64px; align-items: start; } }
.leh-factbox { padding: 24px; border: 1px solid var(--leh-line); border-radius: var(--leh-radius-lg); background: var(--leh-raised); }
.leh-factbox dl { display: grid; gap: 16px; margin: 0; }
.leh-factbox dt { font: 600 0.64rem/1.2 var(--leh-font-body); letter-spacing: 0.18em; text-transform: uppercase; color: var(--leh-soft); }
.leh-factbox dd { margin: 5px 0 0; color: var(--leh-ink); }

.leh-faq { display: grid; gap: 10px; }
.leh-faq details { border: 1px solid var(--leh-line); border-radius: var(--leh-radius-md); background: var(--leh-raised); }
.leh-faq details[open] { border-color: var(--leh-gold-line); }
.leh-faq summary {
  display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 18px 20px;
  list-style: none; cursor: pointer; font: 500 1.22rem/1.3 var(--leh-font-display); color: var(--leh-ink);
}
.leh-faq summary::-webkit-details-marker { display: none; }
.leh-faq summary::after { content: "+"; flex: none; font: 300 1.6rem/1 var(--leh-font-body); color: var(--leh-gold); transition: transform var(--leh-mid) var(--leh-ease); }
.leh-faq details[open] summary::after { transform: rotate(45deg); }
.leh-faq__answer { padding: 0 20px 20px; color: var(--leh-muted); }
.leh-faq__answer p { margin: 0; }

/* ---- Guides --------------------------------------------------------------- */

.leh-guidebody { display: grid; gap: 28px; margin-top: clamp(8px, 1.4vw, 20px); }
.leh-guidebody__text { min-width: 0; }
.leh-guidebody__text > :first-child { margin-top: 0; }
.leh-guidebody__aside { display: grid; gap: 14px; align-content: start; min-width: 0; }
@media (min-width: 1024px) {
  .leh-guidebody { grid-template-columns: minmax(0, 1fr) 290px; gap: 72px; align-items: start; }
  /* The contents list comes first in the page for phones, and sits beside the text on desktop. */
  .leh-guidebody__aside { order: 2; position: sticky; top: calc(var(--leh-header-h) + 24px); }
}
.leh-toc { padding: 18px 20px; border: 1px solid var(--leh-line); border-radius: var(--leh-radius-lg); background: var(--leh-raised); }
.leh .leh-toc__title { margin: 0 0 12px; font: 600 0.64rem/1.2 var(--leh-font-body); letter-spacing: 0.18em; text-transform: uppercase; color: var(--leh-soft); }
.leh-toc__list { display: grid; gap: 9px; margin: 0; padding-left: 1.3em; font-size: 0.9rem; line-height: 1.4; }
.leh-toc__list li::marker { color: var(--leh-gold); font-variant-numeric: tabular-nums; }
.leh-toc__list a { color: var(--leh-ink-2) !important; text-decoration: none !important; }
.leh-toc__list a:hover { color: var(--leh-gold-bright) !important; }
.leh-guidebook { display: none; }
@media (min-width: 1024px) {
  .leh-guidebook {
    display: grid; gap: 10px; padding: 20px; border: 1px solid var(--leh-gold-line); border-radius: var(--leh-radius-lg);
    background: radial-gradient(240px 140px at 100% 0%, rgba(201, 168, 106, 0.14), transparent 70%), var(--leh-raised);
  }
  .leh .leh-guidebook__title { margin: 0; font: 500 1.35rem/1.2 var(--leh-font-display); color: var(--leh-ink); }
  .leh .leh-guidebook p:not(.leh-guidebook__title) { margin: 0; font-size: 0.86rem; color: var(--leh-muted); }
  .leh-guidebook .leh-btn { justify-self: start; }
}
/* The short "In short" box a guide opens with. */
.leh-prose .leh-keypoints { padding: 20px 22px; border: 1px solid var(--leh-line); border-radius: var(--leh-radius-lg); background: var(--leh-raised); }
.leh-prose .leh-keypoints > p:first-child { margin: 0; font: 600 0.64rem/1.2 var(--leh-font-body); letter-spacing: 0.18em; text-transform: uppercase; color: var(--leh-soft); }
.leh-prose .leh-keypoints ul { margin: 12px 0 0; }
.leh-prose .leh-tablewrap { overflow-x: auto; }
.leh-prose .leh-tablewrap table { min-width: 460px; font-size: 0.94rem; }
.leh-prose .leh-tablewrap th { font: 600 0.66rem/1.3 var(--leh-font-body); letter-spacing: 0.14em; text-transform: uppercase; color: var(--leh-soft); }

/* ---- Home: steps, split, CTA ---------------------------------------------- */

.leh-steps {
  display: grid; gap: 1px; margin: 0; padding: 0; list-style: none;
  background: var(--leh-line); border: 1px solid var(--leh-line); border-radius: var(--leh-radius-lg); overflow: hidden;
}
@media (min-width: 900px) { .leh-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.leh-step { padding: 30px 26px; background: var(--leh-raised); }
.leh-step__num { font: italic 500 2.6rem/1 var(--leh-font-display); color: var(--leh-gold); }
.leh .leh-step__title { margin: 14px 0 8px; font-size: 1.55rem; }
.leh-step p { margin: 0; font-size: 0.93rem; color: var(--leh-muted); }

.leh-split { display: grid; gap: 14px; }
@media (min-width: 900px) { .leh-split { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; } }
.leh-split__card {
  position: relative; isolation: isolate; overflow: hidden; display: grid; align-content: end; gap: 10px; min-height: 260px; padding: clamp(24px, 3vw, 36px);
  border: 1px solid var(--leh-line); border-radius: var(--leh-radius-lg); background: var(--leh-surface);
  color: inherit !important; text-decoration: none !important;
  transition: border-color var(--leh-mid) var(--leh-ease);
}
.leh-split__card:hover { border-color: var(--leh-gold-line); }
.leh-split__media { position: absolute; inset: 0; z-index: -1; }
.leh-split__media img { width: 100%; height: 100%; object-fit: cover; object-position: center 20%; opacity: 0.4; transition: transform var(--leh-slow) var(--leh-ease), opacity var(--leh-slow); }
.leh-split__card:hover .leh-split__media img { transform: scale(1.04); opacity: 0.5; }
.leh-split__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(8, 7, 6, 0.1), rgba(8, 7, 6, 0.9)); }
.leh .leh-split__title { margin: 0; font-size: clamp(1.8rem, 1.6vw + 1rem, 2.4rem); }
.leh-split__card p { margin: 0; color: var(--leh-ink-2); }
.leh-split__link { display: inline-flex; align-items: center; gap: 8px; margin-top: 6px; font: 600 0.72rem/1 var(--leh-font-body); letter-spacing: 0.16em; text-transform: uppercase; color: var(--leh-gold); }
.leh-split__link .leh-icon { width: 16px; height: 16px; }

.leh-cta {
  position: relative; overflow: hidden; display: grid; gap: 22px; padding: clamp(28px, 5vw, 64px);
  border: 1px solid var(--leh-gold-line); border-radius: var(--leh-radius-lg);
  background: radial-gradient(700px 320px at 92% 0%, rgba(201, 168, 106, 0.17), transparent 62%), var(--leh-raised);
}
@media (min-width: 900px) { .leh-cta { grid-template-columns: minmax(0, 1.5fr) auto; align-items: center; } }
.leh .leh-cta__title { margin: 0 0 10px; }
.leh-cta p { margin: 0; color: var(--leh-muted); }
.leh-cta__actions { display: flex; flex-wrap: wrap; gap: 10px; }

.leh-copy { display: grid; gap: 28px; }
@media (min-width: 1024px) { .leh-copy { grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: 72px; } }
.leh .leh-copy__title { margin: 0; }

/* ---- Profile -------------------------------------------------------------- */

.leh-proftop { padding-top: clamp(18px, 3vw, 28px); }
.leh-profile { display: grid; gap: 26px; padding-bottom: 12px; }
@media (min-width: 960px) {
  .leh-profile { grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr); gap: 56px; align-items: start; }
  .leh-gallery { position: sticky; top: calc(var(--leh-header-h) + 20px); }
}

.leh-gallery { min-width: 0; }
.leh-gallery__main {
  display: grid; grid-auto-flow: column; grid-auto-columns: 100%;
  overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none;
  border: 1px solid var(--leh-line); border-radius: var(--leh-radius-lg); background: var(--leh-surface);
}
/* Phones keep the page margins around her photo, and tablets stop at the desktop size. */
@media (min-width: 640px) and (max-width: 959px) { .leh-gallery { width: 100%; max-width: 560px; margin-inline: auto; } }
.leh-gallery__main::-webkit-scrollbar { display: none; }
.leh-gallery__slide { position: relative; margin: 0; aspect-ratio: 2 / 3; scroll-snap-align: start; background: var(--leh-surface-2); }
.leh-gallery__slide img { width: 100%; height: 100%; object-fit: cover; }
.leh-gallery__count {
  position: absolute; right: 12px; bottom: 12px; z-index: 2; padding: 6px 11px; border-radius: var(--leh-pill);
  background: rgba(8, 7, 6, 0.8);
  border: 1px solid var(--leh-line-strong); font-size: 0.74rem; color: var(--leh-ink);
}
.leh-gallery__thumbs { display: flex; gap: 8px; margin-top: 10px; overflow-x: auto; scrollbar-width: none; }
.leh-gallery__thumbs::-webkit-scrollbar { display: none; }
.leh-gallery__thumb {
  flex: none; width: 62px; height: 93px; padding: 0; overflow: hidden;
  border: 1px solid var(--leh-line); border-radius: 4px; background: none; opacity: 0.55;
  transition: opacity var(--leh-fast), border-color var(--leh-fast);
}
.leh-gallery__thumb img { width: 100%; height: 100%; object-fit: cover; }
.leh-gallery__thumb[aria-current="true"], .leh-gallery__thumb:hover { opacity: 1; border-color: var(--leh-gold); }

.leh-pro { min-width: 0; }
.leh .leh-pro__name { display: flex; align-items: center; gap: 14px; margin: 0 0 6px; font-size: clamp(2.8rem, 3.6vw + 1.2rem, 4.4rem); line-height: 1; }
.leh-pro__name .leh-card__tick { width: 26px; height: 26px; }
.leh-pro__name .leh-card__tick .leh-icon { width: 16px; height: 16px; }
.leh-pro__tagline { margin: 0 0 16px; font: italic 500 1.4rem/1.35 var(--leh-font-display); color: var(--leh-ink-2); }
.leh-pro__meta { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 0 0 22px; padding: 0; list-style: none; font-size: 0.88rem; color: var(--leh-muted); }
.leh-pro__meta li { display: inline-flex; align-items: center; gap: 7px; }
.leh-pro__meta .leh-icon { width: 17px; height: 17px; color: var(--leh-gold); }
.leh-pro__meta .is-live { color: var(--leh-live); }

.leh-verify { display: grid; gap: 8px; margin: 0 0 24px; }
.leh-verify details { border: 1px solid var(--leh-gold-line); border-radius: var(--leh-radius-md); background: var(--leh-gold-veil); }
.leh-verify summary { display: flex; align-items: center; gap: 10px; padding: 11px 14px; list-style: none; cursor: pointer; font-size: 0.87rem; color: var(--leh-ink); }
.leh-verify summary::-webkit-details-marker { display: none; }
.leh-verify summary .leh-icon { width: 18px; height: 18px; color: var(--leh-gold); }
.leh-verify__date { margin-left: auto; font-size: 0.74rem; color: var(--leh-muted); white-space: nowrap; }
.leh-verify p { margin: 0; padding: 0 14px 12px 42px; font-size: 0.82rem; color: var(--leh-muted); }

.leh-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 0 0 28px; }
.leh-actions .leh-btn:first-child { grid-column: 1 / -1; }
@media (min-width: 640px) {
  .leh-actions { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) auto auto; }
  .leh-actions .leh-btn:first-child { grid-column: auto; }
}

.leh-panel { padding: 24px 0; border-top: 1px solid var(--leh-line); }
.leh .leh-panel__title { margin: 0 0 16px; font-size: 1.6rem; }

/* What her agency's site shows: badges, client reviews and duo partners. */
.leh-proof {
  margin: 22px 0 0; padding: 20px;
  border: 1px solid var(--leh-gold-line); border-radius: var(--leh-radius-lg);
  background:
    radial-gradient(120% 140% at 0% 0%, rgba(201, 168, 106, 0.13), transparent 55%),
    linear-gradient(180deg, rgba(244, 239, 230, 0.04), rgba(244, 239, 230, 0.01)),
    var(--leh-raised);
  box-shadow: var(--leh-shadow-soft);
}
/* The card already closes this part, so the next panel needs no rule of its own on top. */
.leh-proof + .leh-panel { border-top: 0; }
.leh-proof__badges { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.leh-proof__badges + .leh-proof__grid { margin-top: 16px; }
.leh-proof__badge {
  display: inline-flex; align-items: center; gap: 7px; min-height: 30px; padding: 0 13px 0 10px;
  border: 1px solid var(--leh-gold-line); border-radius: var(--leh-pill); background: var(--leh-gold-veil);
  color: var(--leh-gold-bright); font: 600 0.64rem/1 var(--leh-font-body); letter-spacing: 0.16em; text-transform: uppercase;
}
.leh-proof__badge .leh-icon { width: 14px; height: 14px; color: var(--leh-gold); }
.leh-proof__grid { display: grid; gap: 12px; }
@media (min-width: 560px) { .leh-proof__grid { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); } }
.leh-proof__cell { padding: 16px 18px 14px; border: 1px solid var(--leh-line); border-radius: var(--leh-radius-md); background: rgba(8, 7, 6, 0.36); }
/* Two classes deep, so the site-wide paragraph margin (.leh p) never adds gaps in here. */
.leh-proof .leh-proof__label { margin: 0 0 10px; font: 600 0.62rem/1.2 var(--leh-font-body); letter-spacing: 0.22em; text-transform: uppercase; color: var(--leh-gold); }
.leh-proof .leh-proof__figure { display: flex; align-items: baseline; gap: 10px; margin: 0; }
.leh-proof__num {
  font: 500 3.2rem/0.9 var(--leh-font-display);
  background: var(--leh-gold-grad); -webkit-background-clip: text; background-clip: text; color: transparent;
}
.leh-proof__unit { font: 500 1.25rem/1 var(--leh-font-display); color: var(--leh-ink-2); }
.leh-stars { display: inline-block; font-size: 1rem; line-height: 1; letter-spacing: 2px; }
.leh-stars::before {
  content: "\2605\2605\2605\2605\2605";
  background: linear-gradient(90deg, var(--leh-gold-bright) var(--leh-fill, 0%), rgba(244, 239, 230, 0.18) var(--leh-fill, 0%));
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.leh-proof__figure .leh-stars { font-size: 1.15rem; }
.leh-proof .leh-proof__text { margin: 10px 0 0; font-size: 0.86rem; line-height: 1.55; color: var(--leh-ink-2); }
/* Fills its cell and may wrap, so it can never spill out of the card at any width. */
.leh-proof .leh-proof__cta { display: flex; width: 100%; margin-top: 14px; justify-content: center; white-space: normal; text-align: center; }
.leh-proof__faces { display: flex; margin: 16px 0 0; padding: 0 0 0 8px; list-style: none; }
.leh-proof__faces li { margin-left: -8px; }
.leh-proof__face {
  position: relative; display: grid; place-items: center; width: 46px; height: 46px; overflow: hidden;
  border: 2px solid var(--leh-raised); border-radius: 50%; background: var(--leh-surface-2); box-shadow: 0 0 0 1px var(--leh-gold-line);
  color: var(--leh-gold) !important; font: 500 1.15rem/1 var(--leh-font-display); text-decoration: none !important;
  transition: transform var(--leh-fast) var(--leh-ease);
}
.leh-proof__face:hover { z-index: 1; transform: translateY(-3px); }
.leh-proof__face img { width: 100%; height: 100%; object-fit: cover; object-position: center 18%; }
.leh-proof .leh-proof__note { margin: 12px 0 0; font-size: 0.76rem; line-height: 1.5; color: var(--leh-soft); }
.leh-proof__note a { color: var(--leh-ink-2); }

.leh-specs {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0;
  background: var(--leh-raised); border: 1px solid var(--leh-line); border-radius: var(--leh-radius-md); overflow: hidden;
}
@media (min-width: 640px) { .leh-specs { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
/* Hairlines drawn by each cell, so a short last row leaves no grey block. */
.leh-spec { padding: 12px 14px; box-shadow: 1px 0 0 var(--leh-line), 0 1px 0 var(--leh-line); }
.leh-spec--wide { grid-column: 1 / -1; }
.leh-spec--wide .leh-chips { margin-top: 10px; }
.leh-spec dt { font: 600 0.6rem/1.2 var(--leh-font-body); letter-spacing: 0.16em; text-transform: uppercase; color: var(--leh-soft); }
.leh-spec dd { margin: 5px 0 0; font-size: 0.95rem; color: var(--leh-ink); }

.leh-rates { width: 100%; border-collapse: collapse; font-size: 0.95rem; }
.leh-rates th { padding: 0 0 10px; text-align: right; font: 600 0.62rem/1.2 var(--leh-font-body); letter-spacing: 0.16em; text-transform: uppercase; color: var(--leh-soft); }
.leh-rates th:first-child, .leh-rates td:first-child { text-align: left; }
.leh-rates td { padding: 12px 0; border-top: 1px solid var(--leh-line); text-align: right; color: var(--leh-ink-2); font-variant-numeric: tabular-nums; }
.leh-rates td.is-price { font: 500 1.2rem/1 var(--leh-font-display); color: var(--leh-gold-bright); }
.leh-rates td.is-none { color: var(--leh-soft); }
/* On profiles the last row gets its closing line, so it sits between two lines like every other row. */
.leh-panel .leh-rates tbody tr:last-child td { border-bottom: 1px solid var(--leh-line); }
/* Small print under a table or form. Not .leh-note: that is the pop-up notice, which is fixed and hidden until shown. */
.leh-footnote { margin: 12px 0 0; font-size: 0.72rem; line-height: 1.5; color: var(--leh-soft); }

.leh-agencycard {
  display: flex; align-items: center; gap: 16px; padding: 18px;
  border: 1px solid var(--leh-line); border-radius: var(--leh-radius-lg); background: var(--leh-raised);
}
.leh-agencycard__mark {
  display: grid; place-items: center; flex: none; width: 54px; height: 54px; border-radius: 50%;
  border: 1px solid var(--leh-gold-line); color: var(--leh-gold); font: 500 1.5rem/1 var(--leh-font-display);
}
.leh-agencycard__body { display: grid; gap: 3px; min-width: 0; flex: 1; }
.leh-agencycard__name { font: 500 1.35rem/1.15 var(--leh-font-display); color: var(--leh-ink); }
.leh-agencycard__meta { font-size: 0.8rem; color: var(--leh-muted); }

.leh-safety {
  display: flex; gap: 14px; margin-top: 24px; padding: 18px;
  border: 1px solid var(--leh-line-strong); border-radius: var(--leh-radius-md); background: rgba(232, 149, 138, 0.05);
  font-size: 0.86rem; color: var(--leh-muted);
}
.leh-safety .leh-icon { width: 22px; height: 22px; color: var(--leh-alert); }
.leh-safety p { margin: 0; }
/* Her agency card sits right above the safety note, without a double gap. */
.leh-panel--agency { padding-bottom: 0; }
.leh-panel--agency + .leh-safety { margin-top: 14px; }

.leh-actionbar {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 70;
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 50px; gap: 8px;
  padding: 10px var(--leh-gutter) calc(10px + env(safe-area-inset-bottom));
  background: rgba(9, 8, 7, 0.96);
  border-top: 1px solid var(--leh-line);
  transform: translateY(110%); transition: transform var(--leh-mid) var(--leh-ease);
}
.leh-actionbar.is-visible { transform: none; }
.leh-actionbar .leh-btn { min-height: 48px; padding: 0 12px; }
.leh-actionbar .leh-save { position: static; width: 50px; height: 48px; border-radius: var(--leh-pill); }
@media (min-width: 960px) { .leh-actionbar { display: none; } }
.leh-is-profile .leh-footer { padding-bottom: calc(100px + env(safe-area-inset-bottom)); }
@media (min-width: 960px) { .leh-is-profile .leh-footer { padding-bottom: calc(28px + env(safe-area-inset-bottom)); } }

/* ---- Agencies ------------------------------------------------------------- */

.leh-agencycard__mark.has-logo, .leh-agencymark.has-logo { padding: 9px; overflow: hidden; background: #000; }
.leh-agencymark.has-logo { padding: 13px; }
.leh-agencycard__mark img, .leh-agencymark img { width: 100%; height: 100%; object-fit: contain; }
.leh-agencymark {
  display: grid; place-items: center; flex: none; width: 78px; height: 78px; border-radius: 50%;
  border: 1px solid var(--leh-gold-line); color: var(--leh-gold); font: 500 2.1rem/1 var(--leh-font-display);
}
.leh-agencyhead__top { display: flex; align-items: center; gap: 18px; margin-bottom: 16px; }
.leh .leh-agencyhead__top .leh-termhead__title { margin: 0; }
.leh-agencyhead .leh-actions { max-width: 680px; margin: 24px 0 0; }
.leh-agencyrow + .leh-agencyrow { margin-top: clamp(32px, 3.4vw, 48px); }

/* Each agency on the agencies hub opens with a frosted card: its mark, name
   and intro, then its numbers on glass tiles. */
.leh-agencypanel {
  position: relative; isolation: isolate; overflow: hidden;
  display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 14px;
  margin: 0 0 20px; padding: 16px;
  border: 1px solid rgba(201, 168, 106, 0.24); border-radius: var(--leh-radius-lg);
  background:
    radial-gradient(420px 240px at 0% 0%, rgba(201, 168, 106, 0.22), transparent 70%),
    radial-gradient(380px 220px at 100% 100%, rgba(201, 168, 106, 0.12), transparent 70%),
    linear-gradient(160deg, rgba(244, 239, 230, 0.06), rgba(244, 239, 230, 0.015)),
    rgba(19, 17, 14, 0.72);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06), 0 18px 44px rgba(0, 0, 0, 0.32);
}
.leh-agencypanel__mark { display: block; text-decoration: none !important; }
.leh-agencypanel .leh-agencymark { width: 52px; height: 52px; font-size: 1.5rem; box-shadow: 0 0 0 4px rgba(201, 168, 106, 0.08); }
.leh-agencypanel .leh-agencymark.has-logo { padding: 8px; }
.leh-agencypanel__text { min-width: 0; }
.leh .leh-agencypanel__text .leh-eyebrow { margin: 0 0 4px; }
.leh .leh-agencypanel__title { margin: 0; font-size: clamp(1.55rem, 1.4vw + 1.1rem, 2.4rem); line-height: 1.05; }
.leh-agencypanel__title a { color: var(--leh-ink) !important; text-decoration: none !important; transition: color var(--leh-fast) var(--leh-ease); }
.leh-agencypanel__title a:hover { color: var(--leh-gold-bright) !important; }
.leh .leh-agencypanel__intro {
  display: -webkit-box; margin: 6px 0 0; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2;
  font-size: 0.88rem; line-height: 1.5; color: var(--leh-muted);
}
.leh-agencypanel__stats { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 0; padding: 0; list-style: none; }
.leh-agencystat {
  display: grid; align-content: center; gap: 3px; min-width: 0; padding: 10px 12px;
  border: 1px solid rgba(244, 239, 230, 0.1); border-radius: var(--leh-radius-md);
  /* Frosted with layered light rather than a live blur, which made the page stutter while scrolling. */
  background: linear-gradient(160deg, rgba(244, 239, 230, 0.1), rgba(244, 239, 230, 0.03) 60%), rgba(19, 17, 14, 0.35);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.07);
}
.leh-agencystat strong { overflow: hidden; font: 500 1.25rem/1.1 var(--leh-font-display); color: var(--leh-gold-bright); white-space: nowrap; text-overflow: ellipsis; }
.leh-agencystat span { font: 600 0.58rem/1.25 var(--leh-font-body); letter-spacing: 0.15em; text-transform: uppercase; color: var(--leh-soft); }
.leh-agencypanel__link {
  grid-column: 1 / -1; justify-self: start; display: inline-flex; align-items: center; gap: 8px;
  font: 600 0.7rem/1 var(--leh-font-body); letter-spacing: 0.16em; text-transform: uppercase; white-space: nowrap;
  color: var(--leh-gold) !important; text-decoration: none !important;
}
.leh-agencypanel__link .leh-icon { width: 16px; height: 16px; transition: transform var(--leh-mid) var(--leh-ease); }
.leh-agencypanel__link:hover .leh-icon { transform: translateX(4px); }
/* Phones: an odd last tile, usually where the agency is based, takes the full row so its words fit. */
@media (max-width: 639px) {
  .leh-agencypanel__stats > .leh-agencystat:last-child:nth-child(odd) { grid-column: 1 / -1; }
}
/* Phones and tablets: the numbers first, the link last. */
@media (max-width: 899px) {
  .leh-agencypanel__stats { order: 1; }
  .leh-agencypanel__link { order: 2; }
}
@media (min-width: 640px) {
  .leh-agencypanel__stats { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; }
}
@media (min-width: 900px) {
  .leh-agencypanel { grid-template-columns: auto minmax(0, 1fr) auto; gap: 20px 24px; padding: 24px 26px; }
  .leh-agencypanel .leh-agencymark { width: 72px; height: 72px; font-size: 2rem; }
  .leh-agencypanel .leh-agencymark.has-logo { padding: 12px; }
  .leh .leh-agencypanel__intro { font-size: 0.95rem; }
  .leh-agencypanel__link { grid-column: auto; justify-self: end; }
  .leh-agencystat { padding: 14px 16px; }
  .leh-agencystat strong { font-size: 1.6rem; }
}

/* ---- Locations hub -------------------------------------------------------- */

.leh-areafinder { max-width: 520px; margin-top: 24px; }
.leh-boroughs { display: grid; gap: 10px; }
@media (min-width: 900px) { .leh-boroughs { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; } }
.leh-borough { border: 1px solid var(--leh-line); border-radius: var(--leh-radius-md); background: var(--leh-raised); }
.leh-borough[open] { border-color: var(--leh-line-strong); }
.leh-borough__summary {
  display: flex; align-items: baseline; justify-content: space-between; gap: 12px;
  padding: 16px 18px; list-style: none; cursor: pointer;
}
.leh-borough__summary::-webkit-details-marker { display: none; }
.leh-borough__name { font: 500 1.35rem/1.15 var(--leh-font-display); color: var(--leh-ink); }
.leh-borough__count { font-size: 0.76rem; color: var(--leh-muted); white-space: nowrap; }
.leh-arealist { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0 18px 18px; list-style: none; }
.leh-arealist__link {
  display: inline-flex; align-items: center; gap: 6px; min-height: 32px; padding: 0 12px;
  border: 1px solid var(--leh-line); border-radius: var(--leh-pill);
  color: var(--leh-muted) !important; font-size: 0.8rem; text-decoration: none !important;
}
.leh-arealist__link.has-escorts { color: var(--leh-ink) !important; border-color: var(--leh-line-strong); }
.leh-arealist__link.is-borough { color: var(--leh-gold-bright) !important; border-color: var(--leh-gold-line); }
.leh-arealist__link:hover { border-color: var(--leh-gold-line); color: var(--leh-ink) !important; }
.leh-arealist li.is-hidden, .leh-borough.is-hidden, .leh-region.is-hidden { display: none; }

/* ---- Advertise ------------------------------------------------------------ */

.leh-paths { display: grid; gap: 16px; }
@media (min-width: 960px) { .leh-paths { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; } }
.leh-path {
  display: flex; flex-direction: column; gap: 12px; padding: clamp(24px, 3vw, 40px);
  border: 1px solid var(--leh-line); border-radius: var(--leh-radius-lg); background: var(--leh-raised);
  scroll-margin-top: calc(var(--leh-header-h) + 16px);
}
.leh-path--agency {
  border-color: var(--leh-gold-line);
  background: radial-gradient(620px 300px at 100% 0%, rgba(201, 168, 106, 0.12), transparent 62%), var(--leh-raised);
}
.leh-path__top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 12px; }
.leh .leh-path__top .leh-eyebrow { margin: 0; }
.leh-path__badge {
  display: inline-flex; align-items: center; gap: 6px; padding: 5px 11px; border-radius: var(--leh-pill);
  border: 1px solid var(--leh-gold-line); background: var(--leh-gold-veil); color: var(--leh-gold-bright);
  font: 600 0.62rem/1 var(--leh-font-body); letter-spacing: 0.16em; text-transform: uppercase;
}
.leh-path__badge .leh-icon { width: 13px; height: 13px; }
.leh .leh-path__title { margin: 0; font-size: clamp(1.7rem, 1.3vw + 1rem, 2.3rem); }
.leh .leh-path__intro { margin: 0; color: var(--leh-muted); }
.leh-path__steps { counter-reset: leh-step; margin: 8px 0 18px; padding: 0; list-style: none; }
.leh-path__step {
  counter-increment: leh-step; display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 4px 12px;
  padding: 16px 0; border-top: 1px solid var(--leh-line);
}
.leh-path__step::before {
  content: counter(leh-step, decimal-leading-zero); grid-row: 1 / span 2;
  font: italic 500 1.45rem/1.1 var(--leh-font-display); color: var(--leh-gold);
}
.leh .leh-path__step strong { font: 500 1.22rem/1.25 var(--leh-font-display); color: var(--leh-ink); }
.leh-path__step span { font-size: 0.93rem; line-height: 1.6; color: var(--leh-muted); }
.leh-path > .leh-btn { margin-top: auto; align-self: flex-start; }

.leh-standards {
  display: grid; gap: 1px; margin: 0; padding: 0; list-style: none;
  background: var(--leh-line); border: 1px solid var(--leh-line); border-radius: var(--leh-radius-lg); overflow: hidden;
}
@media (min-width: 640px) { .leh-standards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .leh-standards { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.leh-standard { display: grid; align-content: start; gap: 10px; padding: 26px 24px; background: var(--leh-raised); }
.leh-standard .leh-icon { width: 26px; height: 26px; color: var(--leh-gold); }
.leh .leh-standard__title { margin: 4px 0 0; font-size: 1.4rem; }
.leh .leh-standard p { margin: 0; font-size: 0.93rem; color: var(--leh-muted); }

.leh-checklist { display: grid; gap: 14px; margin: 0; padding: 0; list-style: none; }
.leh-checklist li { display: flex; align-items: flex-start; gap: 12px; color: var(--leh-ink-2); }
.leh-checklist .leh-icon { flex: none; width: 18px; height: 18px; margin-top: 4px; color: var(--leh-gold); }

.leh-split__card--static { min-height: 0; align-content: start; }
.leh-split__card--static:hover { border-color: var(--leh-line); }
/* Linked cards without a photo start at the top, so a short card has no gap above its text. */
.leh-split__card--plain { min-height: 0; align-content: start; }

.leh-copy--center { align-items: center; }
.leh .leh-copy__intro { margin: 0 0 20px; color: var(--leh-muted); }

/* Apply */
.leh-apply { scroll-margin-top: calc(var(--leh-header-h) + 16px); }
.leh-apply__grid {
  display: grid; gap: clamp(26px, 3.4vw, 48px); padding: clamp(22px, 4vw, 56px);
  border: 1px solid var(--leh-gold-line); border-radius: var(--leh-radius-lg);
  background: radial-gradient(760px 340px at 0% 0%, rgba(201, 168, 106, 0.14), transparent 62%), var(--leh-raised);
}
@media (min-width: 1024px) { .leh-apply__grid { grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); align-items: start; } }
.leh .leh-apply__title { margin: 0 0 12px; font-size: var(--leh-fs-h2); }
.leh .leh-apply__intro > p { color: var(--leh-muted); }
.leh-apply__intro .leh-checklist { margin-top: 22px; }
.leh .leh-apply__alt { margin: 26px 0 10px; font-size: var(--leh-fs-small); color: var(--leh-soft); }
.leh-live-dot {
  position: relative; display: inline-block; width: 8px; height: 8px; margin-right: 10px; vertical-align: 1px; border-radius: 50%;
  background: var(--leh-live);
}
/* The pulse grows a ring with transform and opacity only, so it never repaints the page. */
.leh-live-dot::after {
  content: ""; position: absolute; inset: 0; border-radius: 50%; background: rgba(142, 211, 165, 0.55);
  animation: leh-pulse 2.2s ease-out infinite;
}
@keyframes leh-pulse {
  0% { transform: scale(1); opacity: 0.9; }
  70%, 100% { transform: scale(3.4); opacity: 0; }
}
.leh-apply__panel { padding: clamp(18px, 2.6vw, 30px); border: 1px solid var(--leh-line); border-radius: var(--leh-radius-lg); background: rgba(8, 7, 6, 0.45); }
.leh-apply__form { display: grid; gap: 18px; }
.leh-apply__fields { display: grid; gap: 18px; }
@media (min-width: 640px) { .leh-apply__fields { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.leh-apply__wide { grid-column: 1 / -1; }
.leh-apply__fields[data-for]:not([hidden]) { animation: leh-rise var(--leh-mid) var(--leh-ease); }
/* Without JavaScript, only the chosen kind of applicant's questions show. */
.leh-apply__form:has(input[name="type"][value="agency"]:checked) [data-for="independent"],
.leh-apply__form:has(input[name="type"][value="independent"]:checked) [data-for="agency"] { display: none; }
.leh-apply__checks { min-width: 0; margin: 0; padding: 0; border: 0; }
.leh-apply__checks legend { float: left; width: 100%; margin-bottom: 8px; padding: 0; }
.leh-apply__checkrow { display: flex; flex-wrap: wrap; gap: 8px; clear: both; }
.leh-apply__checkrow .leh-choice { min-height: 50px; }
.leh-apply__type { display: flex; flex-wrap: wrap; gap: 10px; min-width: 0; margin: 0; padding: 0; border: 0; }
.leh-apply__type legend { float: left; width: 100%; margin-bottom: 10px; padding: 0; }
.leh-choice {
  display: inline-flex; align-items: center; gap: 10px; min-height: 48px; padding: 0 16px;
  border: 1px solid var(--leh-line-strong); border-radius: var(--leh-radius-md); background: rgba(244, 239, 230, 0.03);
  color: var(--leh-ink-2); font-size: 0.92rem; cursor: pointer;
  transition: border-color var(--leh-fast) var(--leh-ease), background var(--leh-fast) var(--leh-ease);
}
.leh-choice input { flex: none; width: 18px; height: 18px; margin: 0; accent-color: var(--leh-gold); }
.leh-choice:has(input:checked) { border-color: var(--leh-gold-line); background: var(--leh-gold-veil); color: var(--leh-ink); }
.leh-choice--consent { align-items: flex-start; min-height: 0; padding: 14px 16px; font-size: 0.86rem; line-height: 1.55; }
.leh-choice--consent input { margin-top: 2px; }
.leh-optional { margin-left: 6px; font-weight: 500; letter-spacing: 0.04em; text-transform: none; color: var(--leh-soft); }
.leh-apply__trap { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.leh-apply__form .leh-footnote { margin: 0; text-align: center; }

/* Phones: tighter spacing, and short answers side by side. */
@media (max-width: 639px) {
  .leh-apply__grid { gap: 22px; padding: 16px; }
  .leh-apply__panel { padding: 14px; }
  .leh-apply__form, .leh-apply__fields { gap: 12px; }
  .leh-apply__fields .leh-field { gap: 6px; align-content: end; }
  .leh-apply__type { gap: 8px; }
  .leh-apply__type legend { margin-bottom: 8px; }
  .leh-apply__form .leh-choice { min-height: 42px; padding: 0 12px; gap: 8px; font-size: 0.84rem; line-height: 1.25; }
  .leh-apply__checkrow .leh-choice { min-height: 42px; }
  .leh-apply__form .leh-input, .leh-apply__form .leh-select { min-height: 44px; padding-top: 9px; padding-bottom: 9px; }
  .leh-apply__form .leh-textarea { min-height: 110px; }
  .leh-apply__form .leh-choice--consent { min-height: 0; padding: 10px 12px; font-size: 0.8rem; line-height: 1.5; }
}
@media (min-width: 360px) and (max-width: 639px) {
  .leh-apply__fields { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 10px; }
  .leh-apply__fields > .leh-apply__wide,
  .leh-apply__fields > .leh-apply__checks,
  .leh-apply__fields > .leh-field:has(input[type="email"], input[type="url"], input[type="tel"], textarea) { grid-column: 1 / -1; }
}
.leh .leh-notice { margin: 0 0 16px; padding: 14px 16px; border-radius: var(--leh-radius-md); font-size: 0.92rem; color: var(--leh-ink); }
.leh-notice--ok { border: 1px solid rgba(142, 211, 165, 0.4); background: var(--leh-live-veil); }
.leh-notice--error { border: 1px solid rgba(232, 149, 138, 0.45); background: rgba(232, 149, 138, 0.08); }

/* ---- Portrait ------------------------------------------------------------- */

.leh-portrait { position: relative; display: block; width: min(100%, 380px); margin-top: clamp(22px, 3vw, 34px); color: inherit !important; text-decoration: none !important; }
.leh-portrait__frame {
  position: relative; display: block; aspect-ratio: 4 / 5; overflow: hidden;
  border-radius: 999px 999px var(--leh-radius-lg) var(--leh-radius-lg);
  border: 1px solid var(--leh-gold-line); background: var(--leh-surface); box-shadow: var(--leh-shadow);
}
.leh-portrait__frame::before {
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: linear-gradient(180deg, transparent 52%, rgba(8, 7, 6, 0.78));
}
.leh-portrait__frame::after {
  content: ""; position: absolute; inset: 10px; z-index: 1; pointer-events: none;
  border-radius: inherit; border: 1px solid rgba(227, 200, 147, 0.3);
}
.leh-portrait__img { width: 100%; height: 100%; object-fit: cover; object-position: center 18%; transition: transform var(--leh-slow) var(--leh-ease); }
.leh-portrait:hover .leh-portrait__img { transform: scale(1.04); }
.leh-portrait__caption { position: absolute; left: 0; right: 0; bottom: 24px; z-index: 2; display: grid; justify-items: center; gap: 6px; text-align: center; }
.leh-portrait__name { font: 500 1.6rem/1 var(--leh-font-display); color: var(--leh-ink); }
.leh-portrait__meta { font: 600 0.62rem/1.2 var(--leh-font-body); letter-spacing: 0.22em; text-transform: uppercase; color: var(--leh-gold-bright); }

/* ---- About (home) --------------------------------------------------------- */

.leh-about {
  display: grid; gap: clamp(22px, 3.4vw, 52px); align-items: center;
  padding: clamp(18px, 3vw, 36px);
  border: 1px solid var(--leh-gold-line); border-radius: var(--leh-radius-lg);
  background: radial-gradient(720px 320px at 100% 0%, rgba(201, 168, 106, 0.1), transparent 62%), var(--leh-raised);
}
@media (min-width: 860px) { .leh-about { grid-template-columns: minmax(200px, 270px) minmax(0, 1fr); } }
.leh .leh-about__portrait { width: 100%; max-width: 270px; margin: 0 auto; }
.leh-about__portrait .leh-portrait__frame::after { inset: 8px; }
.leh-about__portrait .leh-portrait__caption { bottom: 18px; }
.leh-about__portrait .leh-portrait__name { font-size: 1.3rem; }
.leh .leh-about__title { margin: 0 0 14px; font-size: clamp(1.8rem, 1.5vw + 1.1rem, 2.5rem); }
.leh-about__prose { font-size: 0.98rem; line-height: 1.75; }
.leh-about__prose > * + * { margin-top: 0.8em; }
.leh .leh-about__facts { margin: 20px 0 0; padding-top: 16px; border-top: 1px solid var(--leh-line); }

/* ---- Demand chart --------------------------------------------------------- */

.leh .leh-demand {
  margin: clamp(22px, 3vw, 36px) 0 0; padding: clamp(20px, 2.6vw, 30px) clamp(20px, 2.6vw, 30px) 18px;
  border: 1px solid var(--leh-gold-line); border-radius: var(--leh-radius-lg);
  background: radial-gradient(520px 260px at 100% 0%, rgba(201, 168, 106, 0.12), transparent 62%), var(--leh-raised);
  box-shadow: var(--leh-shadow-soft);
}
.leh-demand__head { display: grid; gap: 6px; margin-bottom: 26px; }
.leh-demand__label { font: 600 0.64rem/1.2 var(--leh-font-body); letter-spacing: 0.2em; text-transform: uppercase; color: var(--leh-gold); }
.leh .leh-demand__total { font: 500 clamp(2.4rem, 2.6vw + 1.2rem, 3.4rem)/1 var(--leh-font-display); color: var(--leh-gold-bright); font-variant-numeric: tabular-nums; }
.leh-demand__note { font-size: 0.84rem; color: var(--leh-muted); }
.leh-demand__bars {
  position: relative; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); align-items: end; gap: clamp(10px, 1.8vw, 22px);
  height: 220px; margin: 0 0 36px; padding: 0 4px; list-style: none;
  border-bottom: 1px solid var(--leh-line-strong);
  background: repeating-linear-gradient(to top, transparent 0 calc(25% - 1px), var(--leh-line) calc(25% - 1px) 25%);
}
.leh-demand__bar { position: relative; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; gap: 8px; height: 100%; }
.leh-demand__value {
  font: 500 1.05rem/1 var(--leh-font-display); color: var(--leh-ink); font-variant-numeric: tabular-nums;
  transition: opacity 600ms var(--leh-ease) calc(var(--leh-i) * 120ms + 900ms);
}
.leh-demand__fill {
  position: relative; width: min(100%, 56px); height: calc(var(--leh-h) * 0.84); min-height: 4px; overflow: hidden;
  border-radius: 6px 6px 1px 1px;
  background: linear-gradient(180deg, #ecd6a8 0%, #c9a86a 55%, #8f7040 100%);
  box-shadow: 0 0 24px rgba(201, 168, 106, 0.18);
  transform-origin: bottom; transition: transform 1300ms cubic-bezier(0.2, 0.7, 0.2, 1) calc(var(--leh-i) * 120ms);
}
.leh-demand__fill::after {
  content: ""; position: absolute; left: 0; right: 0; top: 0; height: 40%;
  background: linear-gradient(180deg, transparent, rgba(255, 244, 220, 0.45), transparent);
  transform: translateY(250%);
  animation: leh-bar-light 3.6s ease-in-out infinite; animation-delay: calc(var(--leh-i) * 300ms);
}
.leh-demand__name { position: absolute; top: calc(100% + 10px); left: 50%; transform: translateX(-50%); white-space: nowrap; font-size: 0.78rem; color: var(--leh-muted); }
.leh .leh-demand__foot { margin: 0; font-size: 0.74rem; color: var(--leh-soft); }
.leh-demand[data-state="waiting"] .leh-demand__fill { transform: scaleY(0); }
.leh-demand[data-state="waiting"] .leh-demand__value { opacity: 0; }
/* Moved with transform, not top, so the light never repaints the chart. */
@keyframes leh-bar-light { 0% { transform: translateY(250%); } 60%, 100% { transform: translateY(-100%); } }

@media (prefers-reduced-motion: reduce) {
  .leh-live-dot::after, .leh-demand__fill::after { animation: none !important; }
  .leh-demand__fill::after { display: none; }
}

/* ---- Escorts near me ------------------------------------------------------ */

.leh-nearcta { display: flex; flex-wrap: wrap; gap: 10px; margin: 20px 0 4px; }
/* The near-me shortcut: the last row of the home page finder, with a gentle pulse. */
.leh-nearpill {
  grid-column: 1 / -1; display: flex; align-items: center; gap: 10px; min-width: 0; min-height: 46px; margin: 0; padding: 5px 14px 5px 6px;
  border: 1px solid var(--leh-gold-line); border-radius: var(--leh-radius-md);
  background: linear-gradient(90deg, rgba(201, 168, 106, 0.16), rgba(201, 168, 106, 0.03));
  color: var(--leh-ink-2) !important; font-size: 0.88rem; line-height: 1.2; text-decoration: none !important;
  transition: border-color var(--leh-fast) var(--leh-ease), box-shadow var(--leh-mid) var(--leh-ease);
}
.leh-nearpill:hover { border-color: var(--leh-gold); box-shadow: 0 8px 26px rgba(201, 168, 106, 0.16); }
.leh-nearpill__icon { position: relative; display: grid; place-items: center; flex: none; width: 30px; height: 30px; border-radius: 50%; background: var(--leh-gold-grad); color: #15110a; }
.leh-nearpill__icon .leh-icon { width: 16px; height: 16px; }
.leh-nearpill__icon::after { content: ""; position: absolute; inset: -4px; border: 1px solid var(--leh-gold); border-radius: 50%; animation: leh-near-ring 2.4s var(--leh-ease) infinite; }
@keyframes leh-near-ring { 0% { transform: scale(0.8); opacity: 0.9; } 70%, 100% { transform: scale(1.35); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .leh-nearpill__icon::after { animation: none; opacity: 0.4; } }
/* Lifted a hair: the lowercase words otherwise sit low beside the pin. */
.leh-nearpill__text { min-width: 0; padding-bottom: 0.12em; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
/* Chrome and Safari on desktop take no lift: measured in Chrome, that leaves equal gaps above the
   capitals and below the baseline. Firefox keeps the lift: once Firefox 156 gained text-box support,
   centre-check.js showed the lift equal at 100% zoom and 0.8px better at 125%. Phones keep it too. */
@media (hover: hover) and (pointer: fine) {
  @supports (text-box: trim-both cap alphabetic) and (not (-moz-appearance: none)) { .leh-finder .leh-nearpill__text { padding-bottom: 0; } }
}
.leh-nearpill__text strong { color: var(--leh-gold-bright); font-weight: 600; }
.leh-nearpill__text span { color: var(--leh-muted); }
.leh-nearpill__arrow { flex: none; width: 16px; height: 16px; margin-left: auto; color: var(--leh-gold); transition: transform var(--leh-fast) var(--leh-ease); }
.leh-nearpill:hover .leh-nearpill__arrow { transform: translateX(3px); }
/* Narrow phones: a touch smaller, so "closest to you first" is never cut short. */
@media (max-width: 400px) { .leh-finder .leh-nearpill { gap: 8px; padding-right: 12px; font-size: 0.8rem; } }

/* ---- Featured agency on the home page -------------------------------------- */

.leh-star {
  display: grid; gap: 18px 28px; align-items: center; padding: clamp(20px, 3vw, 34px);
  border: 1px solid var(--leh-gold-line); border-radius: var(--leh-radius-lg);
  background:
    radial-gradient(110% 150% at 0% 0%, rgba(201, 168, 106, 0.16), transparent 55%),
    linear-gradient(180deg, rgba(244, 239, 230, 0.04), rgba(244, 239, 230, 0.01)),
    var(--leh-raised);
  box-shadow: var(--leh-shadow-soft);
}
@media (min-width: 900px) { .leh-star { grid-template-columns: auto minmax(0, 1fr) auto; } }
.leh-star__mark { display: block; width: fit-content; text-decoration: none !important; }
.leh .leh-star__title { margin: 6px 0 10px; font-size: clamp(1.9rem, 1.6vw + 1.3rem, 2.7rem); line-height: 1.05; }
.leh-star__title a { color: var(--leh-ink) !important; text-decoration: none !important; }
.leh-star__title a:hover { color: var(--leh-gold-bright) !important; }
.leh .leh-star__text { margin: 0; color: var(--leh-ink-2); }
.leh-star__actions { display: flex; flex-wrap: wrap; gap: 10px; }
/* The banner keeps the page's rhythm: no second gap above it, and no hairline
   under it where the areas band starts. */
.leh-section--star + .leh-section--band { border-top-color: transparent; }

/* ---- Notices -------------------------------------------------------------- */

/* Below desktop the notice spans the page content, lined up with its edges on every page and
   every phone or tablet width. On desktop it is a card in the bottom corner. */
.leh-note {
  position: fixed; right: var(--leh-gutter); bottom: calc(16px + env(safe-area-inset-bottom)); left: var(--leh-gutter); z-index: 99;
  display: flex; justify-content: center; pointer-events: none;
  opacity: 0; visibility: hidden; transform: translateY(14px);
  transition: opacity var(--leh-mid) var(--leh-ease), transform var(--leh-mid) var(--leh-ease), visibility 0s linear var(--leh-mid);
}
.leh-note.is-shown { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
/* Clear of the call bar on phone profiles. */
body:has(.leh-actionbar.is-visible) .leh-note { bottom: calc(84px + env(safe-area-inset-bottom)); }
@media (min-width: 960px) {
  .leh-note { right: 28px; bottom: 28px; left: auto; justify-content: flex-end; }
  .leh .leh-note__card { width: 400px; }
}
.leh-note__card {
  position: relative; display: flex; align-items: center; gap: 14px;
  width: 100%; padding: 12px 44px 12px 12px; pointer-events: auto;
  border: 1px solid var(--leh-gold-line); border-radius: var(--leh-radius-lg);
  background: linear-gradient(180deg, rgba(244, 239, 230, 0.05), rgba(244, 239, 230, 0.01)), var(--leh-surface);
  box-shadow: var(--leh-shadow);
}
.leh-note__media {
  display: grid; place-items: center; flex: none; width: 52px; height: 66px; overflow: hidden;
  border-radius: var(--leh-radius); background: var(--leh-surface-2);
}
.leh-note__media.is-icon { width: 44px; height: 44px; border: 1px solid var(--leh-gold-line); border-radius: 50%; color: var(--leh-gold); }
.leh-note__media .leh-icon { width: 20px; height: 20px; fill: currentColor; }
.leh-note__img { width: 100%; height: 100%; object-fit: cover; object-position: center 18%; }
.leh-note__body { min-width: 0; }
.leh .leh-note__title { margin: 0; font: 500 1.22rem/1.2 var(--leh-font-display); color: var(--leh-ink); }
.leh .leh-note__text { margin: 2px 0 0; font-size: 0.82rem; line-height: 1.45; color: var(--leh-ink-2); }
.leh .leh-note__actions { display: flex; flex-wrap: wrap; gap: 4px 18px; margin: 8px 0 0; }
.leh-note__action {
  padding: 0; border: 0; background: none; cursor: pointer;
  color: var(--leh-gold-bright) !important; font: 600 0.68rem/1.4 var(--leh-font-body);
  letter-spacing: 0.14em; text-transform: uppercase; text-decoration: none !important;
}
.leh-note__action:hover { color: var(--leh-ink) !important; }
.leh-note__close {
  position: absolute; top: 8px; right: 8px; display: grid; place-items: center; width: 28px; height: 28px; padding: 0;
  border: 0; border-radius: 50%; background: none; color: var(--leh-muted); font-size: 1.2rem; line-height: 1; cursor: pointer;
}
.leh-note__close:hover { background: rgba(244, 239, 230, 0.06); color: var(--leh-ink); }

/* Saved state reads at a glance, and the heart gives a small beat when tapped. */
.leh-btn[aria-pressed="true"] { background-color: var(--leh-gold-veil); }
[data-save].is-popping .leh-icon { animation: leh-pop var(--leh-mid) var(--leh-ease); }
@keyframes leh-pop { 0% { transform: scale(1); } 45% { transform: scale(1.3); } 100% { transform: scale(1); } }


/* ---- Button labels on the optical centre ---------------------------------- */

/* Capital letters sit a touch high in their line, so every button label gets a
   hair more room on top. The button keeps its height; the words just read as
   centred. Two classes deep and last in the file, so it holds wherever a
   component resets a button's padding. */
.leh .leh-btn { padding-top: 0.12em; }
