/*
Theme Name:   Asian Escorts London — Luxury Child
Theme URI:    https://asianescortslondon.co.uk
Description:  Luxury black & gold child theme for Asian Escorts London. Custom "Escort" post type, profile grid (5 desktop / 2 mobile) and single-profile template. Built on GeneratePress.
Author:       Asian Escorts London
Version:      1.70.0
Template:     generatepress
Text Domain:  ael-child
*/

/* =============================================================
   ASIAN ESCORTS LONDON — DESIGN SYSTEM
   To use with Astra instead of GeneratePress, change the
   "Template:" line above to: astra
   ============================================================= */

:root {
    /* Core blacks */
    --ael-black:        #0a0a0a;
    --ael-black-2:      #101010;
    --ael-panel:        #161616;
    --ael-panel-2:      #1d1d1d;
    --ael-border:       #2a2a2a;
    --ael-border-soft:  rgba(255,255,255,0.06);

    /* Gold accent — refined champagne gold (slightly softer, less brassy) */
    --ael-gold:         #c9a24b;
    --ael-gold-light:   #e3c874;
    --ael-gold-deep:    #8f6f2e;
    --ael-gold-glow:    rgba(201,162,75,0.35);

    /* Text */
    --ael-text:         #f4f1ea;
    --ael-text-muted:   #a09a8e;
    /* Lightened from #6f6a60 in 1.97.0: that was 3.7:1 on the page background and
       only 3.1:1 on --ael-panel-2, below the 4.5:1 AA minimum for the 11-12px
       text it is used on (counts, notes, placeholders). #8a8478 clears 4.5:1 on
       every surface we place it on while keeping the same warm grey. */
    --ael-text-dim:     #8a8478;

    /* Type */
    --ael-serif: "Cormorant Garamond", "Playfair Display", Georgia, serif;
    --ael-sans:  "Jost", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

    /* Layout */
    --ael-maxw: 1360px;
    --ael-radius: 4px;
    --ael-gap: 20px;

    /* Grid columns */
    --ael-cols-desktop: 5;
    --ael-cols-mobile: 2;
}

/* ------------------------------------------------------------- Base */
body.ael-theme,
body {
    background-color: var(--ael-black);
    /* Subtle high-class diamond lattice in faint gold; scrolls with the page. */
    background-image:
        repeating-linear-gradient(45deg, rgba(201, 162, 75, 0.035) 0, rgba(201, 162, 75, 0.035) 1px, transparent 1px, transparent 28px),
        repeating-linear-gradient(-45deg, rgba(201, 162, 75, 0.035) 0, rgba(201, 162, 75, 0.035) 1px, transparent 1px, transparent 28px);
    background-attachment: scroll;
    color: var(--ael-text);
    font-family: var(--ael-sans);
    font-weight: 300;
    letter-spacing: 0.01em;
    -webkit-font-smoothing: antialiased;
}

.ael-theme a { color: var(--ael-gold); text-decoration: none; transition: color .25s ease; }
.ael-theme a:hover { color: var(--ael-gold-light); }

.ael-theme h1, .ael-theme h2, .ael-theme h3, .ael-theme h4 {
    font-family: var(--ael-serif);
    font-weight: 500;
    letter-spacing: 0.02em;
    color: var(--ael-text);
    line-height: 1.15;
}

.ael-container {
    max-width: var(--ael-maxw);
    margin: 0 auto;
    padding: 0 24px;
}

/* Gold hairline divider used under section titles */
.ael-rule {
    display: inline-block;
    width: 64px;
    height: 2px;
    background: linear-gradient(90deg, var(--ael-gold-deep), var(--ael-gold-light), var(--ael-gold-deep));
    margin: 14px 0 0;
    border: 0;
}

/* ------------------------------------------------------------- Section heading */
.ael-section {
    padding: 64px 0;
}
.ael-section-head {
    text-align: center;
    margin-bottom: 44px;
}
.ael-section-head .eyebrow {
    display: block;
    font-family: var(--ael-sans);
    text-transform: uppercase;
    letter-spacing: 0.35em;
    font-size: 12px;
    color: var(--ael-gold);
    margin-bottom: 10px;
}
.ael-section-head h2 {
    font-size: clamp(28px, 4vw, 46px);
    margin: 0;
}
.ael-section-head p {
    color: var(--ael-text-muted);
    max-width: 620px;
    margin: 14px auto 0;
    font-size: 16px;
}

/* =============================================================
   ESCORT GRID — 5 desktop / 2 mobile
   ============================================================= */
.ael-grid {
    display: grid;
    grid-template-columns: repeat(var(--ael-cols-desktop), 1fr);
    gap: var(--ael-gap);
}

/* Tablet: 3 across */
@media (max-width: 1100px) {
    .ael-grid { grid-template-columns: repeat(3, 1fr); }
}
/* Mobile: 2 across (as requested) */
@media (max-width: 680px) {
    .ael-grid {
        grid-template-columns: repeat(var(--ael-cols-mobile), 1fr);
        gap: 12px;
    }
}

/* ------------------------------------------------------------- Escort card */
.ael-card {
    position: relative;
    display: block;
    background: var(--ael-panel);
    border: 1px solid var(--ael-border);
    border-radius: var(--ael-radius);
    overflow: hidden;
    transition: transform .35s cubic-bezier(.2,.7,.3,1), border-color .35s ease, box-shadow .35s ease;
}
.ael-card:hover {
    transform: translateY(-6px);
    border-color: var(--ael-gold);
    box-shadow: 0 18px 40px rgba(0,0,0,.55), 0 0 0 1px var(--ael-gold-glow);
}

.ael-card__media {
    position: relative;
    aspect-ratio: 3 / 4;
    overflow: hidden;
    background: var(--ael-black-2);
}
.ael-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .6s cubic-bezier(.2,.7,.3,1);
}
.ael-card:hover .ael-card__media img { transform: scale(1.06); }

/* Bottom gradient so text is readable over any photo */
.ael-card__media::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(10,10,10,0) 45%, rgba(10,10,10,.85) 100%);
    pointer-events: none;
}

/* Badges (NEW / VIP) */
.ael-badge {
    position: absolute;
    top: 10px;
    left: 10px;
    z-index: 2;
    font-family: var(--ael-sans);
    font-size: 10px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    padding: 5px 10px;
    border-radius: 2px;
    background: rgba(10,10,10,.7);
    border: 1px solid var(--ael-gold);
    color: var(--ael-gold-light);
    backdrop-filter: blur(4px);
}
.ael-badge--vip { left: auto; right: 10px; background: var(--ael-gold); color: #1a1408; border-color: var(--ael-gold); }

.ael-card__body {
    position: absolute;
    bottom: 0; left: 0; right: 0;
    z-index: 2;
    padding: 14px 14px 16px;
}
.ael-card__name {
    font-family: var(--ael-serif);
    font-size: 22px;
    font-weight: 600;
    margin: 0;
    color: #fff;
    line-height: 1.05;
}
.ael-card__meta {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 4px;
    font-size: 12.5px;
    color: var(--ael-text-muted);
    letter-spacing: 0.03em;
}
.ael-card__meta .dot { width: 3px; height: 3px; border-radius: 50%; background: var(--ael-gold); display: inline-block; }

@media (max-width: 680px) {
    .ael-card__name { font-size: 17px; }
    .ael-card__meta { font-size: 11px; }
    .ael-card__body { padding: 10px 10px 12px; }
}

/* =============================================================
   BUTTONS
   ============================================================= */
.ael-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    font-family: var(--ael-sans);
    font-weight: 400;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    font-size: 13px;
    padding: 14px 28px;
    border-radius: 2px;
    border: 1px solid var(--ael-gold);
    color: var(--ael-gold-light);
    background: transparent;
    cursor: pointer;
    transition: all .3s ease;
}
.ael-btn:hover {
    background: var(--ael-gold);
    color: #17120a;
    box-shadow: 0 8px 24px var(--ael-gold-glow);
}
.ael-btn--solid {
    background: linear-gradient(135deg, var(--ael-gold-light), var(--ael-gold-deep));
    color: #17120a;
    border: 1px solid var(--ael-gold);
}
.ael-btn--solid:hover { filter: brightness(1.08); color: #17120a; }
.ael-btn--block { width: 100%; }

/* =============================================================
   SINGLE ESCORT PROFILE
   ============================================================= */
.ael-profile {
    padding: 48px 0 80px;
}
.ael-profile__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
    gap: 48px;
    align-items: start;
}
@media (max-width: 900px) {
    .ael-profile__grid { grid-template-columns: 1fr; gap: 28px; }
}

/* Gallery */
.ael-gallery__main {
    position: relative;
    aspect-ratio: 3 / 4;
    border: 1px solid var(--ael-border);
    border-radius: var(--ael-radius);
    overflow: hidden;
    background: var(--ael-panel);
}
.ael-gallery__main img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ael-gallery__thumbs {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 8px;
    margin-top: 8px;
}
.ael-gallery__thumbs img {
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    border-radius: 3px;
    border: 1px solid var(--ael-border);
    cursor: pointer;
    opacity: .7;
    transition: opacity .25s ease, border-color .25s ease;
}
.ael-gallery__thumbs img:hover,
.ael-gallery__thumbs img.is-active { opacity: 1; border-color: var(--ael-gold); }
.ael-gallery__thumbs img:focus-visible {
    opacity: 1;
    outline: 2px solid var(--ael-gold);
    outline-offset: 2px;
}

/* Profile detail column */
.ael-profile__name {
    font-size: clamp(34px, 5vw, 56px);
    margin: 0;
}
.ael-profile__tagline {
    color: var(--ael-gold);
    font-family: var(--ael-sans);
    letter-spacing: 0.2em;
    text-transform: uppercase;
    font-size: 13px;
    margin: 8px 0 0;
}
/* ---------------------------------------------------------- Reviews */
.ael-stars { display: inline-flex; gap: 2px; letter-spacing: 1px; }
.ael-stars__s { color: rgba(255,255,255,0.22); font-size: 15px; line-height: 1; }
.ael-stars__s.is-on { color: var(--ael-gold); }

.ael-reviews { max-width: 900px; margin: 56px auto 0; }
.ael-reviews__head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; flex-wrap: wrap; border-bottom: 1px solid var(--ael-border-soft); padding-bottom: 14px; margin-bottom: 22px; }
.ael-reviews__head h2 { margin: 0; font-size: 30px; }
.ael-reviews__count { color: var(--ael-text-dim); font-size: 20px; }
.ael-reviews__avg { color: var(--ael-text-muted); font-size: 14px; display: inline-flex; align-items: center; gap: 8px; }
.ael-reviews__avg strong { color: var(--ael-gold-light); font-size: 16px; }
.ael-reviews__list { display: grid; gap: 14px; margin-bottom: 34px; }
.ael-review { background: var(--ael-panel); border: 1px solid var(--ael-border-soft); border-radius: 12px; padding: 18px 20px; }
.ael-review__top { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 8px; }
.ael-review__meta { color: var(--ael-text-dim); font-size: 13px; }
.ael-review__meta strong { color: var(--ael-text); }
.ael-review__body { color: var(--ael-text-muted); line-height: 1.7; margin: 0; }
.ael-reviews__empty { color: var(--ael-text-muted); margin-bottom: 30px; }

.ael-rv-cta {
    display: flex; align-items: center; justify-content: space-between; gap: 16px;
    margin: 0 0 20px; padding: 18px 22px; text-decoration: none;
    border: 1px solid rgba(201, 162, 75, 0.45); border-radius: 14px;
    background: linear-gradient(135deg, rgba(201,162,75,0.12), rgba(201,162,75,0.03));
    transition: border-color .2s ease, background .2s ease, transform .2s ease;
}
.ael-rv-cta:hover { border-color: var(--ael-gold); transform: translateY(-2px); }
.ael-rv-cta__txt strong { display: block; color: var(--ael-gold-light); font-family: var(--ael-serif); font-size: 20px; }
.ael-rv-cta__txt span { display: block; color: var(--ael-text-muted); font-size: 13px; margin-top: 2px; }
.ael-rv-cta__arrow { flex: 0 0 auto; width: 42px; height: 42px; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: #17120a; background: var(--ael-gold); }
.ael-rv-formwrap { background: var(--ael-panel); border: 1px solid var(--ael-border-soft); border-radius: 14px; padding: 24px; }
.ael-rv-formwrap h3 { margin: 0 0 16px; font-size: 22px; }
.ael-rv-stars { display: inline-flex; flex-direction: row-reverse; gap: 4px; margin-bottom: 14px; }
.ael-rv-star { background: none; border: 0; cursor: pointer; font-size: 30px; line-height: 1; color: rgba(255,255,255,0.22); padding: 0 2px; transition: color .12s ease; -webkit-tap-highlight-color: transparent; }
.ael-rv-star.is-on, .ael-rv-star:hover { color: var(--ael-gold); }
/* The theme's default button styling paints a grey box on focus/tap — the star
   itself is the feedback, so keep it clean (focus ring kept for keyboards). */
.ael-rv-star:hover, .ael-rv-star:focus, .ael-rv-star:active {
    background: none;
    box-shadow: none;
    outline: none;
}
.ael-rv-star:focus-visible { outline: 1px solid var(--ael-gold); outline-offset: 3px; }
.ael-rv-row { margin-bottom: 12px; }
/* Scoped with .ael-theme (on <body>) purely to raise specificity to 0,2,1.
   GeneratePress styles inputs at 0,1,1 with a light background, which ties with
   a bare ".ael-rv-row input" and then wins or loses on load order alone. This
   makes the dark field independent of which stylesheet happens to print last. */
.ael-theme .ael-rv-row input,
.ael-theme .ael-rv-row textarea {
    width: 100%; box-sizing: border-box; background: var(--ael-black-2); border: 1px solid var(--ael-border);
    border-radius: 8px; color: var(--ael-text); padding: 11px 14px; font-family: var(--ael-sans); font-size: 16px;
}
.ael-theme .ael-rv-row input::placeholder,
.ael-theme .ael-rv-row textarea::placeholder { color: var(--ael-text-dim); }
.ael-theme .ael-rv-row input:focus,
.ael-theme .ael-rv-row textarea:focus { outline: none; border-color: var(--ael-gold); background: var(--ael-black-2); color: var(--ael-text); }
.ael-rv-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ael-rv-foot { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin-top: 4px; }
.ael-rv-msg { font-size: 13.5px; }
.ael-rv-msg.is-ok { color: #4caf68; }
.ael-rv-msg.is-err { color: #e06a6a; }
.ael-rv-note { color: var(--ael-text-dim); font-size: 12.5px; margin: 12px 0 0; }

/* All-reviews page. */
.ael-allrev { max-width: 900px; margin: 0 auto; }
.ael-allrev__profile { margin-bottom: 40px; }
.ael-allrev__phead { display: flex; align-items: center; gap: 14px; margin-bottom: 16px; }
.ael-allrev__thumb { width: 62px; height: 78px; border-radius: 8px; overflow: hidden; flex: 0 0 auto; background: var(--ael-black-2); }
.ael-allrev__thumb img { width: 100%; height: 100%; object-fit: cover; object-position: center top; display: block; }
.ael-allrev__pname { margin: 0; font-size: 22px; }
.ael-allrev__pname a { color: var(--ael-text); text-decoration: none; }
.ael-allrev__pname a:hover { color: var(--ael-gold); }
.ael-allrev__pmeta { color: var(--ael-text-muted); font-size: 13px; display: inline-flex; align-items: center; gap: 8px; }

/* Homepage trust strip. */
.ael-trustbar {
    border-top: 1px solid var(--ael-border-soft);
    border-bottom: 1px solid var(--ael-border-soft);
    background: rgba(201, 162, 75, 0.04);
    padding: 16px 0;
}
.ael-trustbar__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 14px 34px;
}
.ael-trustbar__item {
    display: inline-flex;
    align-items: center;
    line-height: 1;
    gap: 9px;
    margin: 0;
    font-family: var(--ael-sans);
    font-size: 13.5px;
    letter-spacing: 0.04em;
    color: var(--ael-text-muted);
    text-transform: uppercase;
}
.ael-trustbar__item svg { color: var(--ael-gold); flex: 0 0 auto; position: relative; top: 1px; }
.ael-trustbar__item a { color: var(--ael-gold-light); text-decoration: none; }
.ael-trustbar__item a:hover { color: var(--ael-gold); }
@media (max-width: 600px) {
    .ael-trustbar__list { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 14px; justify-items: center; }
    .ael-trustbar__item { font-size: 11.5px; letter-spacing: 0.02em; gap: 6px; }
}

/* Genuine-photos trust badge on each profile. */
.ael-genuine {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin: 14px 0 0;
    padding: 6px 14px;
    border: 1px solid rgba(201, 162, 75, 0.5);
    border-radius: 999px;
    background: rgba(201, 162, 75, 0.08);
    color: var(--ael-gold-light);
    font-family: var(--ael-sans);
    font-size: 12.5px;
    font-weight: 500;
    letter-spacing: 0.03em;
    text-decoration: none;
    transition: background .2s ease, border-color .2s ease;
}
.ael-genuine svg { color: var(--ael-gold); flex: 0 0 auto; }
.ael-genuine:hover { background: rgba(201, 162, 75, 0.16); border-color: var(--ael-gold); }
.ael-profile__price {
    font-family: var(--ael-serif);
    font-size: 30px;
    color: var(--ael-gold-light);
    margin: 22px 0 6px;
}
.ael-profile__price small { font-size: 14px; color: var(--ael-text-dim); font-family: var(--ael-sans); }

/* Stats table */
.ael-stats {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1px;
    background: var(--ael-border);
    border: 1px solid var(--ael-border);
    border-radius: var(--ael-radius);
    overflow: hidden;
    margin: 26px 0;
}
.ael-stats__item {
    background: var(--ael-panel);
    padding: 14px 16px;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 16px;
}
.ael-stats__item .label {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.16em;
    color: var(--ael-text-dim);
    flex: 0 0 108px;
    white-space: nowrap;
}
.ael-stats__item .value {
    color: var(--ael-text);
    font-size: 15px;
    text-align: left;
    white-space: nowrap;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* On phones the two-column grid can push wider than the screen and clip the
   right edge — collapse to a single column so it always fits the viewport. */
@media (max-width: 600px) {
    .ael-stats { grid-template-columns: 1fr; }
    .ael-stats__item { padding: 13px 16px; }
    .ael-stats__item .label { flex: 0 0 100px; }
}

/* About text */
.ael-about { color: var(--ael-text-muted); line-height: 1.85; font-size: 16px; }
.ael-about p { margin: 0 0 1em; }

/* Rates table */
.ael-rates { width: 100%; border-collapse: collapse; margin: 12px 0 26px; }
.ael-rates th, .ael-rates td {
    text-align: left;
    padding: 12px 14px;
    border-bottom: 1px solid var(--ael-border);
    font-size: 14px;
}
.ael-rates th { color: var(--ael-text-dim); text-transform: uppercase; letter-spacing: 0.12em; font-size: 11px; font-weight: 400; }
.ael-rates td:last-child, .ael-rates th:last-child { text-align: right; color: var(--ael-gold-light); }

/* Extras table (name + price add-ons) reuses the rates styling. */
.ael-extras td:first-child { color: var(--ael-text-muted); }
.ael-extras td:last-child { white-space: nowrap; }

/* Duo bookings note */
.ael-duo-note { color: var(--ael-text-muted); line-height: 1.8; font-size: 15px; margin: 0 0 14px; }

/* Duo partner cards shown compactly inside the (narrow) profile detail column. */
.ael-duo-cards { grid-template-columns: repeat(2, 1fr); gap: 12px; margin: 4px 0 8px; }
.ael-duo-cards .ael-card__name { font-size: 17px; }
.ael-duo-cards .ael-card__meta { font-size: 11px; }

/* Tag pills (services / languages) */
.ael-pills { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0 26px; }
.ael-pill {
    font-size: 12px;
    letter-spacing: 0.06em;
    padding: 7px 14px;
    border: 1px solid var(--ael-border);
    border-radius: 40px;
    color: var(--ael-text-muted);
    background: var(--ael-panel);
}

/* Sticky contact block */
.ael-contact {
    position: sticky;
    top: 24px;
    background: linear-gradient(180deg, var(--ael-panel-2), var(--ael-panel));
    border: 1px solid var(--ael-border);
    border-radius: var(--ael-radius);
    padding: 22px;
    margin-top: 8px;
}
.ael-contact .ael-btn { margin-bottom: 10px; }
.ael-contact__note { font-size: 12px; color: var(--ael-text-dim); text-align: center; margin: 6px 0 0; }

/* =============================================================
   HERO (front page / archive header)
   ============================================================= */
.ael-hero {
    position: relative;
    padding: 72px 0 58px;
    text-align: center;
    background-color: var(--ael-black);
    /* Only the subtle gold diagonal lines (no glow), like the previous backdrop. */
    background-image: repeating-linear-gradient(24deg, transparent 0, transparent 129px, rgba(201, 162, 75, 0.05) 129px, rgba(201, 162, 75, 0.05) 130px);
}
.ael-hero h1 { font-size: clamp(40px, 6vw, 76px); margin: 0; }
.ael-hero .eyebrow {
    text-transform: uppercase; letter-spacing: 0.4em; color: var(--ael-gold);
    font-size: 13px; margin-bottom: 14px; display: block;
}
.ael-hero p { color: var(--ael-text-muted); max-width: 640px; margin: 18px auto 0; font-size: 17px; }

/* =============================================================
   FILTER BAR
   ============================================================= */
.ael-filter {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
    margin-bottom: 36px;
}
.ael-filter a {
    font-size: 12.5px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--ael-text-muted);
    padding: 9px 18px;
    border: 1px solid var(--ael-border);
    border-radius: 40px;
    transition: all .25s ease;
}
.ael-filter a:hover, .ael-filter a.is-active {
    color: #17120a; background: var(--ael-gold); border-color: var(--ael-gold);
}

/* =============================================================
   AGE VERIFICATION GATE
   ============================================================= */
.ael-age-gate {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(6,6,6,.96);
    backdrop-filter: blur(6px);
    text-align: center;
    padding: 24px;
}
.ael-age-gate__inner {
    max-width: 480px;
    border: 1px solid var(--ael-border);
    background: var(--ael-panel);
    padding: 40px 34px;
    border-radius: var(--ael-radius);
}
.ael-age-gate h2 { font-size: 30px; margin: 0 0 6px; }
.ael-age-gate p { color: var(--ael-text-muted); font-size: 14px; margin: 12px 0 24px; }
.ael-age-gate .ael-btn { margin: 6px; }
.ael-age-gate__leave { color: var(--ael-text-dim); border-color: var(--ael-border); }

/* =============================================================
   PAGINATION
   ============================================================= */
.ael-pagination { display: flex; justify-content: center; gap: 8px; margin-top: 48px; }
.ael-pagination .page-numbers {
    padding: 10px 16px;
    border: 1px solid var(--ael-border);
    border-radius: 3px;
    color: var(--ael-text-muted);
}
.ael-pagination .page-numbers.current,
.ael-pagination .page-numbers:hover { background: var(--ael-gold); color: #17120a; border-color: var(--ael-gold); }

/* =============================================================
   MISC
   ============================================================= */
.ael-back {
    display: inline-flex; align-items: center; gap: 8px;
    color: var(--ael-text-muted); font-size: 13px;
    text-transform: uppercase; letter-spacing: 0.14em;
    margin-bottom: 20px;
}
.ael-back:hover { color: var(--ael-gold); }

/* =============================================================
   LOCATION PAGES (regions + areas) + interlinking
   ============================================================= */
.ael-hero--location { padding: 70px 0 46px; text-align: left; }
.ael-hero--location h1 { font-size: clamp(34px, 5vw, 60px); }
.ael-hero--location p { margin-left: 0; margin-right: 0; }
/* On prose pages, narrow the hero to the same 860px centred column as the body
   content, so the title and content share one aligned column. */
.ael-narrow-hero .ael-hero .ael-container { max-width: 860px; }

.ael-breadcrumb {
    display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
    font-size: 12px; letter-spacing: 0.06em; text-transform: uppercase;
    color: var(--ael-text-dim); margin-bottom: 18px;
}
.ael-breadcrumb a { color: var(--ael-text-muted); }
.ael-breadcrumb a:hover { color: var(--ael-gold); }
.ael-breadcrumb .current { color: var(--ael-gold); }

.ael-location-intro {
    max-width: 860px;
    color: var(--ael-text-muted);
    font-size: 17px;
    line-height: 1.9;
    margin-bottom: 44px;
}
.ael-location-intro p { margin: 0 0 1em; }

.ael-block-title { font-size: clamp(22px, 3vw, 30px); margin: 8px 0 0; }
.ael-block-title + .ael-rule { margin-bottom: 26px; }

/* Region page: area link cards */
.ael-area-links {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    margin-bottom: 52px;
}
@media (max-width: 1000px) { .ael-area-links { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 680px)  { .ael-area-links { grid-template-columns: repeat(2, 1fr); gap: 10px; } }
.ael-area-link {
    display: flex; align-items: center; justify-content: space-between; gap: 10px;
    padding: 16px 18px;
    background: var(--ael-panel);
    border: 1px solid var(--ael-border);
    border-radius: var(--ael-radius);
    transition: all .25s ease;
}
.ael-area-link:hover { border-color: var(--ael-gold); background: var(--ael-panel-2); transform: translateY(-2px); }
.ael-area-link__name { font-family: var(--ael-serif); font-size: 18px; color: var(--ael-text); }
.ael-area-link__arrow { color: var(--ael-gold); opacity: .6; transition: opacity .25s ease; }
.ael-area-link:hover .ael-area-link__arrow { opacity: 1; }

/* ---- Area cards: cover photo + name, used on region pages ---- */
.ael-area-cards {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
    margin-bottom: 52px;
}
@media (max-width: 1000px) { .ael-area-cards { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 680px)  { .ael-area-cards { grid-template-columns: repeat(2, 1fr); gap: 10px; } }
.ael-area-card {
    position: relative;
    display: block;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    border: 1px solid var(--ael-border);
    border-radius: 12px;
    background: linear-gradient(180deg, var(--ael-panel-2), var(--ael-panel));
    text-decoration: none;
    transition: border-color .3s ease, transform .3s cubic-bezier(.2,.7,.3,1), box-shadow .3s ease;
}
.ael-area-card__media { position: absolute; inset: 0; display: block; }
.ael-area-card__media img {
    width: 100%; height: 100%;
    object-fit: cover;
    object-position: center top;
    display: block;
    filter: saturate(.85) brightness(.85);
    transition: transform .5s cubic-bezier(.2,.7,.3,1), filter .3s ease;
}
/* Dark wash so the name always reads over any photo. */
.ael-area-card::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(8,8,8,0.15) 30%, rgba(8,8,8,0.88) 100%);
    z-index: 1;
}
/* Areas with no companion photo yet: gold diagonal weave + centred emblem. */
.ael-area-card--plain {
    background:
        repeating-linear-gradient(45deg, transparent 0, transparent 15px, rgba(201, 162, 75, 0.045) 15px, rgba(201, 162, 75, 0.045) 16px),
        radial-gradient(220px 140px at 50% 15%, rgba(201, 162, 75, 0.16), transparent 70%),
        linear-gradient(180deg, var(--ael-panel-2), var(--ael-panel));
}
.ael-area-card--plain::after {
    background: linear-gradient(180deg, rgba(8,8,8,0) 45%, rgba(8,8,8,0.8) 100%);
}
.ael-area-card__emblem {
    position: absolute;
    inset: 0 0 26px;                   /* lift clear of the name */
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--ael-gold);
    opacity: .5;
    transition: opacity .3s ease, transform .5s cubic-bezier(.2,.7,.3,1);
}
@media (hover: hover) {
    .ael-area-card--plain:hover .ael-area-card__emblem { opacity: .85; transform: scale(1.06); }
}
.ael-area-card__body {
    position: absolute;
    left: 0; right: 0; bottom: 0;
    z-index: 2;
    padding: 14px 15px;
    display: flex;
    flex-direction: column;
    gap: 3px;
}
.ael-area-card__name {
    font-family: var(--ael-serif);
    font-size: 19px;
    line-height: 1.15;
    color: var(--ael-text);
}
.ael-area-card__count {
    font-family: var(--ael-sans);
    font-size: 10.5px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--ael-gold);
}
.ael-area-card__arrow {
    position: absolute;
    top: 12px; right: 12px;
    z-index: 2;
    width: 30px; height: 30px;
    display: flex; align-items: center; justify-content: center;
    border-radius: 50%;
    color: var(--ael-gold-light);
    background: rgba(10, 8, 5, 0.55);
    border: 1px solid rgba(201, 162, 75, 0.35);
    opacity: 0;
    transform: translateX(-4px);
    transition: opacity .3s ease, transform .3s ease;
}
@media (hover: hover) {
    .ael-area-card:hover {
        border-color: var(--ael-gold);
        transform: translateY(-4px);
        box-shadow: 0 18px 40px rgba(0,0,0,.55);
    }
    .ael-area-card:hover .ael-area-card__media img { transform: scale(1.07); filter: saturate(1) brightness(1); }
    .ael-area-card:hover .ael-area-card__arrow { opacity: 1; transform: translateX(0); }
}
@media (max-width: 680px) {
    .ael-area-card__name { font-size: 16px; }
    .ael-area-card__body { padding: 11px 12px; }
    .ael-area-card__arrow { display: none; }
}

/* Client testimonials (homepage) */
.ael-testimonials__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}
@media (max-width: 900px) { .ael-testimonials__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .ael-testimonials__grid { grid-template-columns: 1fr; } }
.ael-testimonial {
    background: var(--ael-panel);
    border: 1px solid var(--ael-border);
    border-radius: var(--ael-radius);
    padding: 24px 22px;
    margin: 0;
}
.ael-testimonial__stars { color: var(--ael-gold); letter-spacing: 3px; font-size: 15px; margin-bottom: 12px; }
.ael-testimonial blockquote { margin: 0 0 14px; color: var(--ael-text-muted); font-size: 15px; line-height: 1.75; font-style: italic; }
.ael-testimonial figcaption { color: var(--ael-text); font-size: 14px; letter-spacing: 0.02em; }
.ael-testimonial figcaption span { color: var(--ael-text-dim); }

/* Browse-by-service directory (interlink block, kills service orphans) */
.ael-filter--services {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: center;
    max-width: 1040px;
    margin: 0 auto;
}
.ael-filter--services a,
.ael-filter--services button {
    font-family: var(--ael-sans);
    font-size: 13px;
    letter-spacing: 0.04em;
    padding: 8px 16px;
    border: 1px solid var(--ael-border);
    border-radius: 40px;
    color: var(--ael-text-muted);
    background: var(--ael-panel);
    cursor: pointer;
    transition: all .25s ease;
}
.ael-filter--services a:hover,
.ael-filter--services button:hover { border-color: var(--ael-gold); color: var(--ael-gold-light); background: var(--ael-panel-2); }
.ael-filter--services button.is-active {
    background: var(--ael-gold);
    border-color: var(--ael-gold);
    color: #17120a;
    font-weight: 500;
}

/* Instant service filter grid */
.ael-svcfilter__pills { margin-bottom: 34px; }
.ael-svcfilter [data-svcfilter-grid] { transition: opacity .2s ease; min-height: 120px; }
.ael-svcfilter [data-svcfilter-grid].is-loading { opacity: .35; pointer-events: none; }
.ael-areas__col--more h3 { color: var(--ael-gold); }

/* Interlink pills as links */
.ael-pills--links { margin-bottom: 8px; }
.ael-pills--links .ael-pill { transition: all .25s ease; }
.ael-pills--links .ael-pill:hover { border-color: var(--ael-gold); color: var(--ael-gold-light); background: var(--ael-panel-2); }

.ael-nearby { margin-top: 56px; }
.ael-empty { color: var(--ael-text-muted); font-size: 16px; padding: 20px 0 40px; }

/* Footer "Areas We Cover" directory */
.ael-areas {
    border-top: 1px solid var(--ael-border-soft);
    background:
        radial-gradient(900px 300px at 50% 120%, rgba(201, 162, 75,0.07), transparent 60%),
        var(--ael-black-2);
    padding: 64px 0 72px;
}
.ael-areas__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 36px;
}
@media (max-width: 800px) { .ael-areas__grid { grid-template-columns: 1fr; gap: 30px; } }
.ael-areas__col h3 { font-size: 22px; margin: 0 0 14px; padding-bottom: 12px; border-bottom: 1px solid var(--ael-border); }
.ael-areas__col h3 a { color: var(--ael-text); }
.ael-areas__col h3 a:hover { color: var(--ael-gold); }
.ael-areas__col ul {
    list-style: none; margin: 0; padding: 0;
    columns: 2; column-gap: 20px;
}
.ael-areas__col li { margin-bottom: 9px; break-inside: avoid; }
.ael-areas__col li a { color: var(--ael-text-muted); font-size: 14px; letter-spacing: 0.02em; }
.ael-areas__col li a:hover { color: var(--ael-gold); }

/* =============================================================
   GENERATEPRESS STRUCTURAL OVERRIDES
   Our templates are full-bleed. GeneratePress wraps content in a
   flex container + boxed max-width; these rules undo that so the
   live site matches the design. Scoped to .ael-fullwidth so normal
   WordPress pages keep GeneratePress' default container.
   ============================================================= */
body.ael-fullwidth #page.grid-container,
body.ael-fullwidth #page.container {
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}
/* Stop the flex layout from shrinking our sections to content width */
body.ael-fullwidth #content.site-content {
    display: block !important;
    max-width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
}
body.ael-fullwidth #primary.content-area,
body.ael-fullwidth #main {
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    float: none !important;
}
/* Hide any sidebar that slips through */
body.ael-fullwidth #right-sidebar,
body.ael-fullwidth #left-sidebar,
body.ael-fullwidth .widget-area.sidebar {
    display: none !important;
}
/* Our top-level sections always span the full content width */
body.ael-fullwidth .ael-hero,
body.ael-fullwidth .ael-section,
body.ael-fullwidth .ael-profile,
body.ael-fullwidth .ael-areas {
    width: 100% !important;
}
/* Neutralise GeneratePress "separate containers" boxes around our loop */
body.ael-fullwidth .inside-article,
body.ael-fullwidth .entry-content,
body.ael-fullwidth .page-content,
body.ael-fullwidth article.post,
body.ael-fullwidth .site-main > article {
    background: transparent !important;
    padding: 0 !important;
    margin: 0 !important;
    box-shadow: none !important;
    border: 0 !important;
}

/* =============================================================
   INTERLINKING: related profiles, nationality block, links
   ============================================================= */
/* Related profile rows on single escort */
.ael-related { margin-top: 56px; }
.ael-related .ael-block-title { margin-top: 0; }
.ael-related__more { text-align: center; margin-top: 26px; }

/* Linkified tagline, stats and services on the profile */
.ael-profile__tagline a { color: var(--ael-gold); }
.ael-profile__tagline a:hover { color: var(--ael-gold-light); }
.ael-stats__item .value a { color: var(--ael-text); border-bottom: 1px solid var(--ael-gold-deep); }
.ael-stats__item .value a:hover { color: var(--ael-gold-light); border-color: var(--ael-gold-light); }

/* Browse by Nationality block */
.ael-natblock { padding: 56px 0; }
.ael-natblock .ael-filter { margin-bottom: 0; }
.ael-natblock .ael-filter a { text-transform: none; letter-spacing: 0.04em; }
.ael-count {
    display: inline-block;
    margin-left: 6px;
    font-size: 11px;
    color: var(--ael-text-dim);
    opacity: 0.8;
}
.ael-natblock .ael-filter a:hover .ael-count,
.ael-natblock .ael-filter a.is-active .ael-count { color: inherit; }
.ael-filter--services a:hover .ael-count { color: inherit; }

/* =============================================================
   BADGES (stacked, multiple) — cards + profile
   ============================================================= */
/* Card: stack badges top-left over the photo */
.ael-card__badges {
    position: absolute;
    top: 10px;
    left: 10px;
    z-index: 3;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
}
.ael-card__badges .ael-badge {
    position: static;
    top: auto; left: auto; right: auto;
}

/* Profile: badge row above the name */
.ael-profile__badges {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 14px;
}
.ael-profile__badges .ael-badge { position: static; }

/* Badge colour variants */
.ael-badge--new {
    background: rgba(10,10,10,.72);
    border-color: var(--ael-gold);
    color: var(--ael-gold-light);
}
.ael-badge--recommended {
    background: linear-gradient(135deg, var(--ael-gold-light), var(--ael-gold-deep));
    border-color: transparent;
    color: #17120a;
}
.ael-badge--vip {
    background: var(--ael-gold);
    border-color: var(--ael-gold);
    color: #17120a;
}
.ael-badge--selfie {
    background: rgba(10,10,10,.72);
    border-color: var(--ael-border);
    color: var(--ael-text);
}
.ael-badge--available {
    background: rgba(18,54,30,.85);
    border-color: #2e7d4f;
    color: #8ff0a8;
}
.ael-badge--available::before {
    content: "";
    display: inline-block;
    width: 6px; height: 6px;
    border-radius: 50%;
    background: #46d17a;
    margin-right: 6px;
    vertical-align: middle;
}
/* Duo badge — distinct wine tone so it reads apart from the gold badges. */
.ael-badge--duo {
    background: rgba(58,20,34,.88);
    border-color: #a8607b;
    color: #f4cdd9;
}

/* =============================================================
   COMPACT MULTI-SELECT SEARCH / FILTER
   ============================================================= */
.ael-search { margin: 0 0 30px; }
.ael-search__row {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
}
/* Keyword input */
.ael-search__input-wrap { position: relative; flex: 1 1 240px; min-width: 180px; }
.ael-search__input-wrap svg {
    position: absolute; left: 14px; top: 50%; transform: translateY(-50%);
    width: 16px; height: 16px; color: var(--ael-text-dim); pointer-events: none;
}
.ael-search__input {
    width: 100%;
    background: var(--ael-panel);
    border: 1px solid var(--ael-border);
    color: var(--ael-text);
    padding: 13px 16px 13px 40px;
    border-radius: 40px;
    font-family: var(--ael-sans);
    /* 16px at every width: iOS Safari auto-zooms the page on focus for anything
       smaller, and that fires on iPad and larger iPhones too, not just below the
       mobile breakpoint. */
    font-size: 16px;
    letter-spacing: 0.02em;
}
.ael-search__input::placeholder { color: var(--ael-text-dim); }
.ael-search__input:focus { outline: none; border-color: var(--ael-gold); }

/* Dropdown fields */
.ael-search__field { position: relative; }
.ael-search__toggle {
    display: inline-flex; align-items: center; gap: 8px;
    background: var(--ael-panel);
    border: 1px solid var(--ael-border);
    color: var(--ael-text-muted);
    padding: 13px 18px;
    border-radius: 40px;
    cursor: pointer;
    font-family: var(--ael-sans);
    font-size: 12.5px; letter-spacing: 0.12em; text-transform: uppercase;
    white-space: nowrap;
    transition: border-color .2s ease, color .2s ease;
}
.ael-search__toggle:hover,
.ael-search__field.is-open .ael-search__toggle { border-color: var(--ael-gold); color: var(--ael-text); }
.ael-search__badge {
    background: var(--ael-gold); color: #17120a;
    border-radius: 20px; padding: 1px 8px; font-size: 11px; font-weight: 500; letter-spacing: 0;
}
/* Crisp gold chevron drawn with borders (the ▾ glyph inside is hidden). */
.ael-caret {
    display: inline-block;
    width: 9px;
    height: 9px;
    border-right: 2px solid var(--ael-gold);
    border-bottom: 2px solid var(--ael-gold);
    transform: rotate(45deg);
    transform-origin: center;
    margin-left: 6px;
    margin-bottom: 3px;
    font-size: 0;
    line-height: 0;
    opacity: 1;
    transition: transform 0.22s ease, margin-bottom 0.22s ease;
}
.ael-search__toggle:hover .ael-caret,
.ael-search__field.is-open .ael-caret { border-color: var(--ael-gold-light); }
.ael-search__field.is-open .ael-caret {
    transform: rotate(-135deg);
    margin-bottom: -2px;
}

/* Dropdown panel */
.ael-search__panel {
    position: absolute; z-index: 60;
    top: calc(100% + 8px); left: 0;
    width: 340px; max-width: 84vw;
    background: var(--ael-panel-2);
    border: 1px solid var(--ael-border);
    border-radius: 10px;
    box-shadow: 0 20px 46px rgba(0,0,0,.6);
    display: none;
}
.ael-search__field.is-open .ael-search__panel { display: block; }
.ael-search__panel-inner {
    max-height: 300px; overflow-y: auto;
    padding: 8px;
    display: grid; grid-template-columns: 1fr 1fr; gap: 2px;
}
.ael-search__opt {
    display: flex; align-items: center; gap: 8px;
    padding: 9px 10px; border-radius: 6px;
    cursor: pointer; font-size: 13px; color: var(--ael-text-muted);
    letter-spacing: 0.01em;
}
.ael-search__opt:hover { background: var(--ael-panel); color: var(--ael-text); }
.ael-search__opt.is-checked { color: var(--ael-gold-light); }
.ael-search__opt input { accent-color: var(--ael-gold); width: 15px; height: 15px; flex: 0 0 auto; }

.ael-search__submit { padding: 13px 26px; white-space: nowrap; }
.ael-search__clear {
    color: var(--ael-text-dim); font-size: 12px;
    text-transform: uppercase; letter-spacing: 0.12em; align-self: center;
}
.ael-search__clear:hover { color: var(--ael-gold); }

.ael-results-count {
    color: var(--ael-text-dim);
    font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase;
    margin: 0 0 20px;
}

/* Mobile: full width stacked, panels span the row */
@media (max-width: 680px) {
    .ael-search__row { gap: 8px; }
    .ael-search__input-wrap { flex: 1 1 100%; }
    .ael-search__row { position: relative; }
    .ael-search__field { flex: 1 1 calc(50% - 4px); position: static; }
    .ael-search__toggle { width: 100%; justify-content: space-between; }
    /* Break the dropdown out to the full width of the row so both option
       columns fit instead of being squeezed into a half-width field. */
    .ael-search__panel { width: auto; max-width: none; left: 0; right: 0; top: calc(100% + 8px); }
    .ael-search__panel-inner { grid-template-columns: 1fr; gap: 2px; }
    .ael-search__opt { min-width: 0; }
    .ael-search__opt-name { min-width: 0; overflow-wrap: anywhere; }
    .ael-search__submit { flex: 1 1 100%; }
    .ael-search__clear { flex: 1 1 100%; text-align: center; }
}

/* =============================================================
   ROUND SINGLE-LETTER BADGES (override)
   Circular coin badges showing the first letter (hover = full name).
   ============================================================= */
.ael-badge {
    width: 26px;
    height: 26px;
    min-width: 26px;
    padding: 0;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: var(--ael-sans);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0;
    line-height: 1;
    text-transform: uppercase;
    backdrop-filter: none;
    box-shadow: 0 2px 6px rgba(0,0,0,.4);
    cursor: default;
}
/* Remove the "live dot" from the round Available badge (letter only) */
.ael-badge--available::before { display: none; }

/* =============================================================
   BADGE POLISH — clean solid circles (no gradient corner shading)
   ============================================================= */
.ael-badge { overflow: hidden; }
.ael-badge--recommended {
    background: var(--ael-gold);
    color: #17120a;
    border-color: transparent;
}
.ael-card__badges .ael-badge { box-shadow: 0 2px 8px rgba(0,0,0,.55); }

/* =============================================================
   INSTANT (AJAX) FILTER — loading, empty, pagination
   ============================================================= */
.ael-grid.is-loading { opacity: .35; transition: opacity .15s ease; pointer-events: none; }
.ael-search-empty {
    text-align: center;
    color: var(--ael-text-muted);
    font-size: 16px;
    padding: 40px 0 20px;
}
.ael-search-empty[hidden] { display: none; }
.ael-search-empty strong { color: var(--ael-gold-light); }

.ael-pagination button.page-numbers {
    background: transparent;
    font-family: var(--ael-sans);
    cursor: pointer;
}
.ael-pagination .page-numbers {
    padding: 10px 16px;
    border: 1px solid var(--ael-border);
    border-radius: 3px;
    color: var(--ael-text-muted);
    font-size: 14px;
}
.ael-pagination .page-numbers.current,
.ael-pagination .page-numbers:hover { background: var(--ael-gold); color: #17120a; border-color: var(--ael-gold); }

/* =============================================================
   FILTER: per-option counts + active selection pills
   ============================================================= */
.ael-search__opt { justify-content: space-between; }
.ael-search__opt-name { flex: 1; }
.ael-opt-count {
    color: var(--ael-text-dim);
    font-size: 11px;
    min-width: 20px;
    text-align: right;
    font-variant-numeric: tabular-nums;
}
.ael-search__opt.is-checked .ael-opt-count { color: var(--ael-gold); }

.ael-search__active {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    margin-top: 14px;
}
.ael-search__active:empty { display: none; }
.ael-active-pill {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--ael-panel-2);
    border: 1px solid var(--ael-gold-deep);
    color: var(--ael-gold-light);
    border-radius: 40px;
    padding: 7px 10px 7px 15px;
    font-family: var(--ael-sans);
    font-size: 12.5px;
    letter-spacing: 0.02em;
    cursor: pointer;
    transition: all .2s ease;
}
.ael-active-pill .x { font-size: 16px; line-height: 1; opacity: .75; }
.ael-active-pill:hover { background: var(--ael-gold); color: #17120a; border-color: var(--ael-gold); }
.ael-active-pill:hover .x { opacity: 1; }
.ael-clear-all {
    background: transparent;
    border: 0;
    color: var(--ael-text-dim);
    text-transform: uppercase;
    letter-spacing: 0.14em;
    font-size: 11px;
    cursor: pointer;
    padding: 7px 10px;
}
.ael-clear-all:hover { color: var(--ael-gold); }

/* =============================================================
   GALLERY MAIN-PHOTO PREV/NEXT CHEVRONS
   ============================================================= */
.ael-gallery__nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 4;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: rgba(10, 10, 10, 0.55);
    border: 1px solid var(--ael-border);
    color: var(--ael-text);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    opacity: 0;
    transition: opacity .2s ease, background .2s ease, color .2s ease, border-color .2s ease;
}
/* SVG chevrons centre geometrically (unlike the ‹ / › text glyphs, which sit
   optically high), so the arrow is always dead-centre in the circle. */
.ael-gallery__nav svg { display: block; width: 22px; height: 22px; }
.ael-gallery__main:hover .ael-gallery__nav { opacity: 1; }
.ael-gallery__nav--prev { left: 12px; }
.ael-gallery__nav--next { right: 12px; }
.ael-gallery__nav:hover { background: var(--ael-gold); color: #17120a; border-color: var(--ael-gold); }
/* Always visible on touch devices (no hover) */
@media (hover: none) {
    .ael-gallery__nav { opacity: 1; }
}

/* Faceted search: options that would yield no results */
.ael-search__opt.is-disabled { opacity: .35; }
.ael-search__opt.is-disabled .ael-search__opt-name { text-decoration: line-through; }
.ael-search__opt.is-disabled input { cursor: not-allowed; }

/* =============================================================
   CARD PRICE + OUTCALL-ONLY LABEL
   ============================================================= */
.ael-card__price {
    margin-top: 6px;
    font-family: var(--ael-sans);
    font-size: 13.5px;
    color: var(--ael-gold-light);
    letter-spacing: 0.02em;
    display: flex;
    align-items: baseline;
    gap: 6px;
}
.ael-card__price .amt { font-weight: 500; }
.ael-card__price .unit { color: var(--ael-text-muted); font-size: 11px; text-transform: none; letter-spacing: 0.04em; }

/* =============================================================
   DISTANCE CHIP — "2.4 mi", bottom-right of the card
   Sits inside .ael-card__body, which is already absolutely placed over the
   foot of the photo, so the chip lines up with the price on the same baseline.
   ============================================================= */
/* Typography deliberately matches .ael-card__meta (the age / area line) so the
   distance reads as part of the same information, not as a separate badge. */
.ael-card__dist {
    position: absolute;
    right: 14px;
    bottom: 16px;
    z-index: 3;
    font-size: 12.5px;
    color: var(--ael-gold-light);
    letter-spacing: 0.03em;
    line-height: 1;
    white-space: nowrap;
    font-variant-numeric: lining-nums tabular-nums;
    /* Fades in once a location is known rather than popping. */
    animation: ael-dist-in .32s cubic-bezier(.2,.7,.3,1) both;
}
@keyframes ael-dist-in {
    from { opacity: 0; transform: translateY(4px); }
    to   { opacity: 1; transform: none; }
}
/* Keep the price clear of the distance so the two never collide. */
.ael-nearme__item.has-dist .ael-card__price { padding-right: 64px; }
@media (max-width: 680px) {
    .ael-card__dist { right: 10px; bottom: 12px; font-size: 11px; }
    .ael-nearme__item.has-dist .ael-card__price { padding-right: 54px; }
}

/* =============================================================
   ESCORTS NEAR ME — control panel
   ============================================================= */
.ael-nearme__panel {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 14px;
    margin: 0 auto 18px;
    padding: 20px 22px;
    max-width: 680px;
    border: 1px solid var(--ael-border);
    border-radius: 12px;
    background:
        radial-gradient(420px 160px at 50% -40%, rgba(201, 162, 75, 0.09), transparent 70%),
        var(--ael-panel);
}
.ael-nearme__locate { display: inline-flex; align-items: center; gap: 8px; }
.ael-nearme__or {
    color: var(--ael-text-dim);
    font-family: var(--ael-sans);
    font-size: 11px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}
.ael-nearme__pick { display: inline-flex; }
.ael-nearme__pick select {
    appearance: none;
    -webkit-appearance: none;
    min-width: 210px;
    padding: 12px 38px 12px 14px;
    border: 1px solid var(--ael-border);
    border-radius: 40px;
    background-color: var(--ael-black-2);
    /* Gold caret, inlined so it needs no image request. */
    background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c9a24b' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 14px center;
    background-size: 14px 14px;
    color: var(--ael-text);
    font-family: var(--ael-sans);
    /* 16px so iOS Safari does not zoom the page when the select takes focus. */
    font-size: 16px;
    cursor: pointer;
}
.ael-nearme__pick select:focus-visible,
.ael-nearme__reset:focus-visible { outline: 2px solid var(--ael-gold); outline-offset: 2px; }
.ael-nearme__reset {
    background: none;
    border: 0;
    padding: 6px 4px;
    color: var(--ael-text-muted);
    font-family: var(--ael-sans);
    font-size: 12px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    text-decoration: underline;
    text-underline-offset: 3px;
    cursor: pointer;
}
@media (hover: hover) {
    .ael-nearme__reset:hover { color: var(--ael-gold-light); }
}
.ael-nearme__status {
    min-height: 20px;
    margin: 0 0 22px;
    text-align: center;
    font-family: var(--ael-sans);
    font-size: 13px;
    color: var(--ael-text-muted);
}
.ael-nearme__status.is-ok { color: var(--ael-gold-light); }
.ael-nearme__status.is-warn { color: #e0b4b4; }
.ael-nearme__item { display: contents; }
.ael-nearme__note {
    margin: 26px auto 0;
    max-width: 640px;
    text-align: center;
    font-family: var(--ael-sans);
    font-size: 12px;
    line-height: 1.7;
    color: var(--ael-text-dim);
}
@media (max-width: 560px) {
    .ael-nearme__panel { flex-direction: column; gap: 12px; padding: 18px; }
    .ael-nearme__pick select { width: 100%; min-width: 0; }
    .ael-nearme__locate { width: 100%; justify-content: center; }
}

/* =============================================================
   HOMEPAGE "NEAR ME" CTA — luxury card
   ============================================================= */
.ael-nearcta-wrap { padding-top: 0; }
.ael-nearcta {
    position: relative;
    display: flex;
    align-items: center;
    gap: 30px;
    padding: 38px 44px;
    border: 1px solid var(--ael-border);
    border-radius: 14px;
    overflow: hidden;
    background:
        radial-gradient(560px 220px at 12% -30%, rgba(201, 162, 75, 0.13), transparent 68%),
        linear-gradient(180deg, var(--ael-panel-2), var(--ael-panel));
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.45);
}
/* Gold hairline inlay, the same framing device as the site icon. */
.ael-nearcta::after {
    content: "";
    position: absolute;
    inset: 7px;
    border: 1px solid rgba(201, 162, 75, 0.20);
    border-radius: 9px;
    pointer-events: none;
}
.ael-nearcta__emblem {
    flex: 0 0 auto;
    color: var(--ael-gold);
    line-height: 0;
    opacity: .95;
}
.ael-nearcta__body { position: relative; z-index: 1; }
.ael-nearcta__body .eyebrow { display: block; margin-bottom: 8px; }
.ael-nearcta__body h2 {
    font-family: var(--ael-serif);
    font-size: 34px;
    font-weight: 600;
    line-height: 1.15;
    margin: 0 0 10px;
    color: var(--ael-text);
}
.ael-nearcta__body p {
    margin: 0 0 20px;
    max-width: 62ch;
    color: var(--ael-text-muted);
    font-size: 14.5px;
    line-height: 1.75;
}
.ael-nearcta__btn { display: inline-flex; align-items: center; gap: 9px; }

@media (max-width: 780px) {
    .ael-nearcta { flex-direction: column; align-items: flex-start; gap: 18px; padding: 30px 24px; }
    .ael-nearcta__body h2 { font-size: 27px; }
    .ael-nearcta__btn { width: 100%; justify-content: center; }
}
@media (max-width: 680px) {
    .ael-card__price { font-size: 12px; margin-top: 4px; }
    .ael-card__price .unit { font-size: 10px; }
}

/* =============================================================
   GALLERY: lock main photo box (no layout bounce between images)
   ============================================================= */
.ael-gallery__main {
    position: relative;
    aspect-ratio: 3 / 4;
    overflow: hidden;
}
/* Absolutely fill the fixed box so a taller/shorter image can never resize it */
.ael-gallery__main img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
/* Fallback for very old browsers without aspect-ratio support */
@supports not (aspect-ratio: 3 / 4) {
    .ael-gallery__main { height: 0; padding-bottom: 133.33%; }
}

/* =============================================================
   HEADER NAVIGATION (custom, replaces GeneratePress header)
   ============================================================= */
body.ael-theme .site-header,
body.ael-theme .site-footer { display: none !important; }

.ael-nav {
    position: sticky;
    top: 0;
    z-index: 500;
    background: rgba(10, 10, 10, 0.96);
    border-bottom: 1px solid var(--ael-border-soft);
}
.ael-nav__inner {
    max-width: var(--ael-maxw);
    margin: 0 auto;
    padding: 0 24px;
    height: 74px;
    display: flex;
    align-items: center;
    gap: 28px;
}
.ael-nav a.ael-nav__brand {
    font-family: var(--ael-serif);
    font-size: 26px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #ffffff;
    white-space: nowrap;
}
.ael-nav a.ael-nav__brand:hover { color: #ffffff; }
.ael-nav a.ael-nav__brand span { color: var(--ael-gold); }

.ael-nav__menu { display: flex; align-items: center; gap: 4px; margin-left: auto; }
.ael-nav__menu > a,
.ael-nav__parent {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 10px 16px;
    color: var(--ael-text-muted);
    font-family: var(--ael-sans);
    font-size: 12.5px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    transition: color .25s ease;
    cursor: pointer;
}
.ael-nav__parent i {
    display: inline-block;
    width: 7px;
    height: 7px;
    margin-left: 7px;
    margin-bottom: 2px;
    border-right: 1.5px solid var(--ael-gold);
    border-bottom: 1.5px solid var(--ael-gold);
    transform: rotate(45deg);
    transform-origin: center;
    font-size: 0;
    line-height: 0;
    opacity: 1;
    transition: transform .22s ease, border-color .22s ease;
}
.ael-nav__item.is-open .ael-nav__parent i {
    transform: rotate(-135deg);
    margin-bottom: -1px;
    border-color: var(--ael-gold-light);
}
/* Hover flip gated to real-hover devices so a tap on iOS doesn't leave a sticky
   :hover that pins the chevron open until another item is tapped. */
@media (hover: hover) {
    .ael-nav__item:hover .ael-nav__parent i {
        transform: rotate(-135deg);
        margin-bottom: -1px;
        border-color: var(--ael-gold-light);
    }
}
.ael-nav__menu > a::after,
.ael-nav__parent::after {
    content: "";
    position: absolute;
    left: 16px; right: 16px; bottom: 6px;
    height: 1px;
    background: var(--ael-gold);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .3s ease;
}
@media (hover: hover) {
    .ael-nav__menu > a:hover,
    .ael-nav__item:hover .ael-nav__parent { color: var(--ael-text); }
    .ael-nav__menu > a:hover::after,
    .ael-nav__item:hover .ael-nav__parent::after { transform: scaleX(1); }
}

.ael-nav__item { position: relative; }
.ael-nav__drop {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%) translateY(10px);
    background: var(--ael-panel-2);
    border: 1px solid var(--ael-border);
    border-radius: 8px;
    box-shadow: 0 24px 50px rgba(0,0,0,.6);
    padding: 16px;
    min-width: 280px;
    opacity: 0;
    visibility: hidden;
    transition: opacity .25s ease, transform .25s ease, visibility .25s;
    z-index: 600;
}
@media (hover: hover) {
    .ael-nav__item:hover .ael-nav__drop { opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0); }
}
.ael-nav__cols { display: grid; grid-template-columns: 1fr 1fr; gap: 2px 14px; }
.ael-nav__drop--services { min-width: 560px; }
.ael-nav__cols.ael-nav__cols--3 { grid-template-columns: 1fr 1fr 1fr; max-height: 62vh; overflow-y: auto; }
.ael-nav__cols a,
.ael-nav__mega-col a {
    display: block;
    padding: 8px 12px;
    color: var(--ael-text-muted);
    font-size: 13px;
    letter-spacing: 0.02em;
    text-transform: none;
    border-radius: 5px;
    transition: background .2s ease, color .2s ease;
}
.ael-nav__cols a:hover,
.ael-nav__mega-col a:hover { color: var(--ael-gold-light); background: var(--ael-panel); }

.ael-nav__drop--mega {
    display: flex;
    gap: 24px;
    min-width: 620px;
    left: auto;
    right: 0;
    transform: translateY(10px);
    padding: 22px 24px;
}
@media (hover: hover) {
    .ael-nav__item:hover .ael-nav__drop--mega { transform: translateY(0); }
}
.ael-nav__mega-col { min-width: 170px; }
.ael-nav__mega-col h4 {
    font-family: var(--ael-serif);
    font-size: 17px;
    margin: 0 0 8px;
    padding: 0 12px;
}
.ael-nav__mega-col h4 a { color: var(--ael-gold); }
.ael-nav__more { color: var(--ael-gold) !important; font-size: 12px !important; letter-spacing: 0.08em !important; margin-top: 4px; }

.ael-nav__cta {
    margin-left: 10px;
    padding: 11px 24px;
    border: 1px solid var(--ael-gold);
    color: var(--ael-gold-light);
    border-radius: 2px;
    font-family: var(--ael-sans);
    font-size: 12px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    transition: all .3s ease;
    white-space: nowrap;
}
.ael-nav__cta:hover { background: var(--ael-gold); color: #17120a; box-shadow: 0 8px 24px var(--ael-gold-glow); }

.ael-nav__toggle {
    display: none;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    width: 42px; height: 42px;
    margin-left: auto;
    background: transparent;
    border: 1px solid var(--ael-border);
    border-radius: 4px;
    cursor: pointer;
}
.ael-nav__toggle span { display: block; width: 20px; height: 1.5px; background: var(--ael-gold); margin: 0 auto; transition: transform .25s ease, opacity .25s ease; }
.ael-nav.is-open .ael-nav__toggle span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.ael-nav.is-open .ael-nav__toggle span:nth-child(2) { opacity: 0; }
.ael-nav.is-open .ael-nav__toggle span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }

@media (max-width: 900px) {
    .ael-nav__toggle { display: flex; }
    .ael-nav__menu {
        position: fixed;
        top: 74px; left: 0; right: 0; bottom: 0;
        background: var(--ael-black);
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        padding: 14px 24px 40px;
        overflow-y: auto;
        transform: translateX(100%);
        transition: transform .3s ease;
        margin-left: 0;
    }
    .ael-nav.is-open .ael-nav__menu { transform: translateX(0); }
    .ael-nav__menu > a,
    .ael-nav__parent {
        padding: 16px 6px;
        border-bottom: 1px solid var(--ael-border-soft);
        letter-spacing: 0.1em;
        justify-content: space-between;
    }
    .ael-nav__menu > a::after, .ael-nav__parent::after { display: none; }
    .ael-nav__item { border-bottom: 1px solid var(--ael-border-soft); }
    .ael-nav__drop,
    .ael-nav__drop--mega {
        position: static;
        opacity: 1;
        visibility: visible;
        transform: none;
        box-shadow: none;
        border: 0;
        background: transparent;
        padding: 0 0 14px;
        min-width: 0;
        display: none;
        flex-direction: column;
        gap: 10px;
    }
    .ael-nav__item.is-open .ael-nav__drop,
    .ael-nav__item.is-open .ael-nav__drop--mega { display: block; }
    .ael-nav__cols { grid-template-columns: 1fr 1fr; }
    .ael-nav__cta { margin: 18px 0 0; text-align: center; }
}

/* =============================================================
   FOOTER (custom, replaces GeneratePress footer)
   ============================================================= */
.ael-footer {
    background:
        radial-gradient(900px 320px at 15% -20%, rgba(201, 162, 75,0.06), transparent 60%),
        var(--ael-black-2);
    border-top: 1px solid var(--ael-border-soft);
    padding: 66px 0 0;
}
.ael-footer__cols {
    display: grid;
    grid-template-columns: 1.6fr repeat(5, 1fr);
    gap: 40px;
}
/* Footer contact column */
.ael-footer__address {
    display: flex;
    gap: 8px;
    font-style: normal;
    color: var(--ael-text-muted);
    font-size: 14px;
    line-height: 1.6;
    margin: 0 0 16px;
}
.ael-footer__address .ael-ico { color: var(--ael-gold); flex: 0 0 auto; margin-top: 2px; }
.ael-footer__contact-list { list-style: none; margin: 0 0 20px; padding: 0; }
.ael-footer__contact-list li { margin-bottom: 11px; }
.ael-footer__contact-list a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--ael-text-muted);
    font-size: 14px;
    transition: color .2s ease;
}
.ael-footer__contact-list a:hover { color: var(--ael-gold); }
.ael-footer__contact-list .ael-ico { color: var(--ael-gold); }
/* Contact page method cards */
.ael-contact-methods {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    max-width: 960px;
    margin: 0 auto;
}
@media (max-width: 780px) { .ael-contact-methods { grid-template-columns: 1fr; } }
.ael-contact-method {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 8px;
    padding: 32px 22px;
    background: var(--ael-panel);
    border: 1px solid var(--ael-border);
    border-radius: var(--ael-radius);
    transition: transform .3s ease, border-color .3s ease, box-shadow .3s ease;
}
a.ael-contact-method:hover {
    transform: translateY(-5px);
    border-color: var(--ael-gold);
    box-shadow: 0 16px 36px rgba(0,0,0,.5);
}
.ael-contact-method__label {
    font-family: var(--ael-sans);
    font-size: 11px;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--ael-gold);
}
.ael-contact-method__value {
    font-family: var(--ael-serif);
    font-size: 24px;
    color: var(--ael-text);
}
a.ael-contact-method:hover .ael-contact-method__value { color: var(--ael-gold-light); }
.ael-contact-method__note { font-size: 13px; color: var(--ael-text-muted); }

/* Luxury canvas grouping the companion header + contact-method cards. */
.ael-contact-canvas {
    max-width: 780px;
    margin: 0 auto;
    padding: 32px 30px;
    background:
        radial-gradient(780px 240px at 50% -40%, rgba(201, 162, 75, 0.09), transparent 60%),
        var(--ael-panel);
    border: 1px solid var(--ael-gold-soft, rgba(201, 162, 75, 0.28));
    border-radius: 18px;
    box-shadow: 0 30px 70px -50px rgba(0, 0, 0, 0.9);
}
/* Inside the canvas the method cards sit closer together and lose their outer
   max-width (the canvas provides the frame). */
.ael-contact-canvas .ael-contact-methods { max-width: none; margin: 0; }
.ael-contact-canvas .ael-contact-method {
    background: var(--ael-panel-2);
    border-color: var(--ael-border-soft);
}
@media (max-width: 780px) {
    .ael-contact-canvas { padding: 22px 16px; }
}

/* Selected-companion card on the contact page (shown when arriving via "Book
   Now" on a profile: /contact/?companion=ID). Compact, horizontal, gold-accented.
   Inside the canvas it becomes a borderless header with a divider beneath. */
/* The companion + picker sit in a header block with a divider above the methods. */
.ael-contact-head { margin: 0 0 24px; padding: 0 0 24px; border-bottom: 1px solid var(--ael-border); }
.ael-contact-canvas .ael-contact-companion {
    max-width: none;
    margin: 0 0 18px;
    padding: 0;
    background: none;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}
/* Companion picker (luxury select). */
.ael-contact-picker__label {
    display: block;
    margin: 0 0 7px;
    font-family: var(--ael-sans);
    font-size: 10.5px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--ael-text-dim);
}
.ael-contact-picker__wrap { position: relative; max-width: 320px; }
.ael-contact-picker__wrap::after {
    content: "";
    position: absolute;
    right: 15px;
    top: 45%;
    width: 7px;
    height: 7px;
    border-right: 1.5px solid var(--ael-gold);
    border-bottom: 1.5px solid var(--ael-gold);
    transform: translateY(-50%) rotate(45deg);
    pointer-events: none;
}
.ael-contact-picker {
    -webkit-appearance: none;
    appearance: none;
    width: 100%;
    background: var(--ael-black-2, var(--ael-panel));
    border: 1px solid var(--ael-gold-soft, rgba(201, 162, 75, 0.30));
    border-radius: 8px;
    color: var(--ael-text);
    font-family: var(--ael-sans);
    font-size: 16px; /* 16px avoids iOS zoom-on-focus */
    padding: 11px 36px 11px 14px;
    cursor: pointer;
}
.ael-contact-picker:focus { outline: none; border-color: var(--ael-gold); }
.ael-contact-companion {
    display: flex;
    align-items: center;
    gap: 18px;
    max-width: 520px;
    margin: 0 auto 40px;
    padding: 16px 18px;
    background:
        radial-gradient(300px 120px at 0% 0%, rgba(201, 162, 75, 0.10), transparent 60%),
        linear-gradient(180deg, var(--ael-panel-2), var(--ael-panel));
    border: 1px solid var(--ael-gold-soft, rgba(201, 162, 75, 0.30));
    border-radius: 14px;
    box-shadow: 0 24px 60px -46px rgba(0, 0, 0, 0.9);
}
.ael-contact-companion__photo {
    flex: 0 0 auto;
    display: block;
    width: 92px;
    height: 120px;
    border-radius: 10px;
    overflow: hidden;
    border: 1px solid var(--ael-border);
}
.ael-contact-companion__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ael-contact-companion__info { min-width: 0; }
.ael-contact-companion__eyebrow {
    display: block;
    font-family: var(--ael-sans);
    text-transform: uppercase;
    letter-spacing: 0.2em;
    font-size: 10.5px;
    color: var(--ael-gold);
    margin-bottom: 5px;
}
.ael-contact-companion__name { font-family: var(--ael-serif); font-size: 26px; line-height: 1.05; margin: 0 0 5px; color: var(--ael-text); }
.ael-contact-companion__meta { color: var(--ael-text-muted); font-size: 13px; margin: 0 0 4px; }
.ael-contact-companion__price { color: var(--ael-gold-light); font-size: 15px; margin: 0 0 9px; }
.ael-contact-companion__price small { color: var(--ael-text-dim); font-size: 11px; }
.ael-contact-companion__link {
    font-family: var(--ael-sans);
    font-size: 11.5px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--ael-gold);
    text-decoration: none;
}
.ael-contact-companion__link:hover { color: var(--ael-gold-light); }
@media (max-width: 420px) {
    .ael-contact-companion { gap: 14px; padding: 14px; }
    .ael-contact-companion__photo { width: 78px; height: 104px; }
    .ael-contact-companion__name { font-size: 22px; }
}

/* Casting: how-to-apply steps + stacked contact methods */
.ael-casting__intro { color: var(--ael-text-muted); line-height: 1.8; margin: 0 0 22px; }
.ael-apply-steps { list-style: none; margin: 8px 0 32px; padding: 0; }
.ael-apply-steps li { display: flex; gap: 16px; margin-bottom: 20px; align-items: flex-start; }
.ael-apply-steps__num {
    flex: 0 0 auto;
    width: 34px; height: 34px;
    border-radius: 50%;
    border: 1px solid var(--ael-gold);
    color: var(--ael-gold-light);
    display: flex; align-items: center; justify-content: center;
    font-family: var(--ael-serif); font-size: 17px;
    /* Cormorant uses old-style figures (3, 4, 5, 7, 9 have descenders), which
       makes the numeral sit low and inconsistent inside the circle. Force lining
       figures so every digit is a uniform cap-height and centres cleanly. */
    font-variant-numeric: lining-nums;
    font-feature-settings: "lnum" 1;
    line-height: 1;
}
.ael-apply-steps strong { display: block; color: var(--ael-text); margin-bottom: 3px; font-size: 16px; }
.ael-apply-steps p { margin: 0; color: var(--ael-text-muted); font-size: 14.5px; line-height: 1.7; }
.ael-apply-contact__head { font-size: 18px; margin: 0 0 14px; }
.ael-apply-contact { display: grid; grid-template-columns: 1fr; gap: 12px; }
.ael-apply-contact .ael-contact-method { align-items: flex-start; text-align: left; padding: 18px 20px; gap: 4px; }
.ael-apply-contact .ael-contact-method__value { font-size: 19px; word-break: break-word; }

.ael-page-content { max-width: 760px; margin: 0 auto; }
.ael-page-content h2 { font-size: 26px; margin: 28px 0 8px; }
.ael-page-content p { margin: 0 0 1em; }

/* Guides hub: categorised high-class cards */
.ael-guides-group { margin-bottom: 52px; }
.ael-guides-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 22px;
}
@media (max-width: 900px) { .ael-guides-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .ael-guides-grid { grid-template-columns: 1fr; } }
.ael-guide-card {
    display: flex;
    flex-direction: column;
    background: var(--ael-panel);
    border: 1px solid var(--ael-border);
    border-radius: var(--ael-radius);
    padding: 26px 24px;
    transition: transform .35s cubic-bezier(.2,.7,.3,1), border-color .35s ease, box-shadow .35s ease;
}
.ael-guide-card:hover {
    transform: translateY(-6px);
    border-color: var(--ael-gold);
    box-shadow: 0 18px 40px rgba(0,0,0,.5), 0 0 0 1px var(--ael-gold-glow);
}
.ael-guide-card__cat {
    font-family: var(--ael-sans);
    font-size: 11px;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--ael-gold);
    margin-bottom: 12px;
}
.ael-guide-card__title {
    font-family: var(--ael-serif);
    font-size: 22px;
    line-height: 1.2;
    color: var(--ael-text);
    margin: 0 0 12px;
}
.ael-guide-card__excerpt {
    color: var(--ael-text-muted);
    font-size: 14.5px;
    line-height: 1.75;
    margin: 0 0 18px;
    flex: 1 1 auto;
}
.ael-guide-card__more {
    color: var(--ael-gold-light);
    font-size: 12px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}
.ael-guide-card:hover .ael-guide-card__more { color: var(--ael-gold); }
.ael-footer__brand h3 { font-family: var(--ael-serif); font-size: 27px; color: var(--ael-text); margin: 0 0 14px; }
.ael-footer__brand h3 span { color: var(--ael-gold); }
.ael-footer__brand p { color: var(--ael-text-muted); font-size: 14px; line-height: 1.85; max-width: 380px; }
.ael-footer__age { color: var(--ael-gold) !important; font-size: 12px !important; letter-spacing: 0.12em; text-transform: uppercase; margin-top: 16px !important; }
.ael-footer__col h4 {
    font-family: var(--ael-sans);
    font-size: 12px;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--ael-gold);
    margin: 0 0 18px;
}
.ael-footer__col ul { list-style: none; margin: 0; padding: 0; }
.ael-footer__col li { margin-bottom: 11px; }
.ael-footer__col a { color: var(--ael-text-muted); font-size: 14px; transition: color .2s ease, padding .2s ease; }
.ael-footer__col a:hover { color: var(--ael-gold); padding-left: 4px; }
.ael-footer__cta {
    display: inline-block;
    margin-top: 18px;
    padding: 11px 24px;
    border: 1px solid var(--ael-gold);
    color: var(--ael-gold-light);
    border-radius: 2px;
    font-size: 12px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    transition: all .3s ease;
}
.ael-footer__cta:hover { background: var(--ael-gold); color: #17120a; }
.ael-footer__bar {
    margin-top: 56px;
    border-top: 1px solid var(--ael-border);
    padding: 22px 0;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 10px;
}
.ael-footer__bar span { color: var(--ael-text-dim); font-size: 12px; letter-spacing: 0.03em; }
.ael-footer__legal-links { display: inline-flex; gap: 18px; }
.ael-footer__legal-links a { color: var(--ael-text-dim); font-size: 12px; letter-spacing: 0.03em; transition: color .2s ease; }
.ael-footer__legal-links a:hover { color: var(--ael-gold); }
.ael-legal { max-width: 860px; }

/* Blog / Journal */
.ael-blog-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 26px;
}
@media (max-width: 900px) { .ael-blog-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .ael-blog-grid { grid-template-columns: 1fr; } }
.ael-blog-card {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--ael-border-soft);
    border-radius: 12px;
    overflow: hidden;
    background: var(--ael-panel);
    text-decoration: none;
    transition: border-color .25s ease, transform .25s ease;
}
.ael-blog-card:hover { border-color: var(--ael-gold); transform: translateY(-3px); }
.ael-blog-card__media { display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--ael-black-2); }
.ael-blog-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ael-blog-card__body { padding: 20px 22px 24px; display: flex; flex-direction: column; flex: 1; }
.ael-blog-card__date { font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--ael-gold); margin-bottom: 8px; }
.ael-blog-card__title { font-size: 21px; margin: 0 0 10px; color: var(--ael-text); }
.ael-blog-card__excerpt { color: var(--ael-text-muted); font-size: 14.5px; line-height: 1.65; margin: 0 0 16px; }
.ael-blog-card__more { margin-top: auto; color: var(--ael-gold-light); font-size: 13px; letter-spacing: .04em; }
.ael-blog-morehead { text-align: center; margin-bottom: 30px; }
.ael-blog-morehead h2 { font-size: 30px; margin: 6px 0 0; color: var(--ael-text); }
.ael-blog-morecta { text-align: center; margin-top: 34px; }

/* Single post */
.ael-post__date { color: var(--ael-gold); font-size: 13px; letter-spacing: .1em; text-transform: uppercase; margin-top: 6px; }
.ael-post__hero-img { max-width: 900px; margin: 0 auto 34px; border-radius: 12px; overflow: hidden; }
.ael-post__hero-img img { width: 100%; height: auto; display: block; }
.ael-post__content { max-width: 800px; }

/* Link to Us / partner page */
.ael-partner { max-width: 860px; margin: 40px auto 0; }
.ael-partner__head { font-size: 24px; margin: 0 0 6px; }
.ael-partner__desc { color: var(--ael-text-muted); font-size: 15px; margin: 0 0 16px; }
.ael-partner__preview-label { font-size: 12px; text-transform: uppercase; letter-spacing: .1em; color: var(--ael-text-dim); margin: 16px 0 6px; }
.ael-partner__textpreview { color: var(--ael-text-muted); font-size: 15px; }
.ael-partner__grid { display: grid; grid-template-columns: 1fr; gap: 28px; max-width: 860px; margin: 20px auto 0; }
.ael-partner__banner { border: 1px solid var(--ael-border-soft); border-radius: 12px; padding: 22px; background: var(--ael-panel); }
.ael-partner__bmeta { display: flex; align-items: baseline; gap: 12px; margin-bottom: 14px; }
.ael-partner__bsize { font-family: var(--ael-serif); font-size: 18px; color: var(--ael-gold-light); }
.ael-partner__blabel { font-size: 12px; text-transform: uppercase; letter-spacing: .12em; color: var(--ael-text-dim); }
.ael-partner__bpreview { text-align: center; overflow-x: auto; margin-bottom: 16px; }
.ael-partner__bpreview img { max-width: 100%; height: auto; }
.ael-codebox {
    display: flex;
    flex-direction: column;
    background: #0d0d0d;
    border: 1px solid var(--ael-border);
    border-radius: 8px;
    overflow: hidden;
}
.ael-copy {
    align-self: flex-end;
    margin: 8px 8px 0;
    padding: 5px 14px;
    border: 1px solid var(--ael-gold);
    border-radius: 20px;
    background: transparent;
    color: var(--ael-gold-light);
    font-family: var(--ael-sans);
    font-size: 12px;
    letter-spacing: .04em;
    cursor: pointer;
    transition: background .2s ease, color .2s ease;
}
.ael-copy:hover, .ael-copy.is-copied { background: var(--ael-gold); color: #17120a; }
.ael-code {
    width: 100%;
    box-sizing: border-box;
    background: transparent;
    border: none;
    color: var(--ael-text-muted);
    font-family: Consolas, "SFMono-Regular", Menlo, monospace;
    font-size: 12.5px;
    line-height: 1.5;
    padding: 10px 16px 16px;
    resize: vertical;
    -webkit-appearance: none;
}
.ael-code:focus { outline: none; }

/* HTML sitemap page */
.ael-sitemap__group { margin-bottom: 44px; }
.ael-sitemap__group h2 {
    font-size: 24px;
    margin: 0 0 18px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--ael-border-soft);
}
.ael-sitemap__group h2 span {
    font-family: var(--ael-sans);
    font-size: 12px;
    letter-spacing: 0.08em;
    color: var(--ael-gold);
    vertical-align: middle;
    margin-left: 6px;
}
.ael-sitemap__list {
    list-style: none;
    margin: 0;
    padding: 0;
    column-width: 220px;
    column-gap: 40px;
}
.ael-sitemap__list li {
    margin: 0 0 10px;
    break-inside: avoid;
}
.ael-sitemap__list a {
    color: var(--ael-text-muted);
    font-size: 14.5px;
    transition: color .2s ease, padding .2s ease;
}
.ael-sitemap__list a:hover { color: var(--ael-gold); padding-left: 4px; }

/* Favourite heart on escort cards */
.ael-card__media { position: relative; }
.ael-fav {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 3;
    width: 40px;
    height: 40px;
    display: flex;
    /* Glyph pinned to the top of the tap target, so the 26px heart lines up with
       the 26px round badge on the left (both start at top: 10px). */
    align-items: flex-start;
    justify-content: center;
    padding: 0;
    -webkit-appearance: none;
    appearance: none;
    background: none !important;
    border: none !important;
    box-shadow: none !important;
    color: var(--ael-gold-light);
    cursor: pointer;
    /* Shadow keeps the plain heart readable over any photo, light or dark. */
    filter: drop-shadow(0 1px 3px rgba(0, 0, 0, 0.65));
    transition: transform .15s ease, color .2s ease;
}
/* Kill any inherited button hover/focus/tap background box. Note :focus-visible
   is deliberately NOT in this list — stripping the outline there would leave
   keyboard users with no visible focus on a control that sits on every card. */
.ael-fav:hover,
.ael-fav:focus,
.ael-fav:active {
    background: none !important;
    box-shadow: none !important;
    border: none !important;
    outline: none !important;
}
.ael-fav:focus-visible {
    background: none !important;
    box-shadow: none !important;
    border: none !important;
    outline: 2px solid var(--ael-gold);
    outline-offset: 2px;
    border-radius: 4px;
}
.ael-fav svg { width: 26px; height: 26px; fill: none; stroke: currentColor; stroke-width: 1.9; }
.ael-fav:hover { color: var(--ael-gold); transform: scale(1.14); }
.ael-fav.is-fav { color: var(--ael-gold); }
.ael-fav.is-fav svg { fill: var(--ael-gold); stroke: var(--ael-gold); }
.ael-fav.is-fav { animation: ael-fav-pop .28s ease; }
@keyframes ael-fav-pop { 0% { transform: scale(1); } 45% { transform: scale(1.3); } 100% { transform: scale(1); } }

/* Footer favourites count badge */
.ael-fav-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    margin-left: 5px;
    border-radius: 9px;
    background: var(--ael-gold);
    color: #17120a;
    font-size: 11px;
    font-weight: 600;
    line-height: 1;
    vertical-align: middle;
}
.ael-fav-badge.is-empty { background: var(--ael-border); color: var(--ael-text-muted); }

/* Favourites page empty state */
/* Favourite toast notification */
.ael-toast {
    position: fixed;
    left: 50%;
    bottom: 26px;
    transform: translateX(-50%) translateY(22px);
    z-index: 9999;
    display: flex;
    align-items: center;
    gap: 11px;
    width: max-content;
    max-width: min(400px, calc(100vw - 28px));
    padding: 14px 18px;
    border: 1px solid var(--ael-gold);
    border-radius: 14px;
    background: rgba(15, 12, 8, 0.96);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
    box-shadow: 0 12px 34px rgba(0, 0, 0, 0.55);
    color: var(--ael-text);
    font-size: 14px;
    line-height: 1.4;
    text-align: left;
    opacity: 0;
    pointer-events: none;
    transition: opacity .3s ease, transform .3s ease;
}
.ael-toast.is-show { opacity: 1; transform: translateX(-50%) translateY(0); }
.ael-toast__icon { color: var(--ael-gold); display: flex; flex: 0 0 auto; }
.ael-toast__icon:empty { display: none; }
/* On mobile, stretch to a comfortable full-width bar so the text isn't cramped. */
@media (max-width: 560px) {
    .ael-toast {
        left: 14px;
        right: 14px;
        width: auto;
        max-width: none;
        transform: translateY(22px);
    }
    .ael-toast.is-show { transform: translateY(0); }
}

.ael-fav-empty { text-align: center; color: var(--ael-text-muted); font-size: 16px; padding: 30px 0; }
.ael-fav-empty__heart { color: var(--ael-gold); font-size: 19px; }
.ael-fav-toolbar { display: flex; justify-content: flex-end; margin-bottom: 22px; }
.ael-fav-clear { font-size: 13px; padding: 9px 20px; }
.ael-fav-clear:hover { border-color: #c0553f; color: #d8735c; }

/* Guide FAQ accordion */
.ael-faq { max-width: 820px; margin: 52px auto 0; }
.ael-faq > h2 { font-size: clamp(26px, 4vw, 32px); text-align: center; margin: 0 0 26px; }
.ael-faq__item {
    border: 1px solid var(--ael-border-soft);
    border-radius: 12px;
    background: var(--ael-panel);
    margin-bottom: 12px;
    padding: 0 22px;
    transition: border-color .2s ease;
}
.ael-faq__item[open] { border-color: rgba(201, 162, 75, 0.5); }
.ael-faq__q {
    list-style: none;
    cursor: pointer;
    padding: 18px 0;
    font-family: var(--ael-serif);
    font-size: 19px;
    color: var(--ael-text);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}
.ael-faq__q::-webkit-details-marker { display: none; }
.ael-faq__q::after {
    content: "+";
    color: var(--ael-gold);
    font-size: 24px;
    line-height: 1;
    flex: 0 0 auto;
}
.ael-faq__item[open] .ael-faq__q::after { content: "\2212"; }
.ael-faq__a { padding: 0 0 20px; color: var(--ael-text-muted); line-height: 1.75; }
.ael-faq__a p { margin: 0 0 10px; }

/* Most Visited section */
.ael-mv-card {
    background:
        radial-gradient(700px 220px at 50% -40%, rgba(201, 162, 75, 0.09), transparent 60%),
        var(--ael-panel);
    border: 1px solid var(--ael-border);
    border-radius: 18px;
    padding: 42px 34px 34px;
}

/* Recently Viewed — luxury canvas holding a standard escort-card grid. */
.ael-recent-card {
    position: relative;
    background:
        radial-gradient(760px 240px at 50% -40%, rgba(201, 162, 75, 0.10), transparent 60%),
        var(--ael-panel);
    border: 1px solid var(--ael-gold-soft, rgba(201, 162, 75, 0.28));
    border-radius: 18px;
    padding: 42px 34px 34px;
    box-shadow: 0 30px 70px -50px rgba(0, 0, 0, 0.9);
}
.ael-recent-card .ael-section-head { margin-bottom: 30px; }
.ael-recent-card .ael-grid { grid-template-columns: repeat(5, 1fr); }
.ael-recent-foot { text-align: center; margin-top: 28px; }
.ael-recent-clear {
    background: none;
    border: 0;
    cursor: pointer;
    font-family: var(--ael-sans);
    font-size: 12px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--ael-text-dim);
    transition: color .2s ease;
}
.ael-recent-clear:hover { color: var(--ael-gold-light); }
@media (max-width: 1100px) { .ael-recent-card .ael-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 680px)  { .ael-recent-card { padding: 30px 16px 24px; } .ael-recent-card .ael-grid { grid-template-columns: repeat(2, 1fr); } }
/* =============================================================
   MOST VISITED — ranked board with view badges + client voting
   ============================================================= */
/* Title row above the ranked grid (no outer panel — the tiles carry the design). */
.ael-rank-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    margin-bottom: 26px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--ael-border);
}
.ael-rank-head__title {
    font-family: var(--ael-serif);
    font-size: clamp(24px, 3vw, 32px);
    line-height: 1.1;
    margin: 0 0 6px;
    color: var(--ael-text);
}
.ael-rank-head__count {
    display: block;
    font-family: var(--ael-sans);
    font-size: 11px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--ael-text-dim);
}
.ael-rank-toolbar__sorts { display: flex; gap: 8px; }
.ael-rank-sort {
    font-family: var(--ael-sans);
    font-size: 11px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    padding: 8px 15px;
    border: 1px solid var(--ael-border);
    border-radius: 40px;
    color: var(--ael-text-muted);
    text-decoration: none;
    transition: border-color .2s ease, color .2s ease;
}
.ael-rank-sort.is-active { border-color: var(--ael-gold); color: var(--ael-gold-light); }

/* Each entry is ONE tile: the photo card and the rank/vote bar share a single
   panel, border and radius so they read as a single object. */
.ael-rank-item {
    position: relative;
    display: flex;
    flex-direction: column;
    background:
        radial-gradient(240px 130px at 50% 0%, rgba(201, 162, 75, 0.07), transparent 70%),
        var(--ael-panel);
    border: 1px solid var(--ael-border);
    border-radius: 12px;
    overflow: hidden;
    /* Own compositor layer: the rounded clip is rasterised once instead of every
       frame of the hover lift, which is what makes edges shimmer. */
    will-change: transform;
    isolation: isolate;
    transition: transform .35s cubic-bezier(.2,.7,.3,1), border-color .35s ease, box-shadow .35s ease;
}
/* The card sits flush inside the tile — the tile provides the frame. */
.ael-rank-item .ael-card {
    border: 0;
    border-radius: 0;
    background: transparent;
    transform: none;
    box-shadow: none;
}
/* Tile heights land on fractional pixels, so while the photo zooms on hover the
   scaled bitmap can round a hair short and flash a line along its bottom edge.
   Overflowing by a pixel (clipped by the card) and giving the image its own
   compositor layer keeps that edge solid throughout the animation. */
.ael-rank-item .ael-card__media img {
    height: calc(100% + 1px);
    will-change: transform;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}
/* The photo and the bar below it are two boxes with different backgrounds that
   meet on a fractional pixel. While the tile lifts on hover the browser
   antialiases that boundary and flashes a hairline. Matching the backgrounds and
   overlapping the bar by a pixel removes the boundary altogether. */
.ael-rank-item .ael-card__media { background: transparent; }
.ael-rank-item__foot {
    margin-top: -1px;
    padding-top: 12px;
    position: relative;
    z-index: 1;
}
@media (hover: hover) {
    /* Hovering anywhere on the tile lifts the whole thing (not the inner card). */
    .ael-rank-item:hover {
        transform: translateY(-5px);
        border-color: var(--ael-gold);
        box-shadow: 0 18px 40px rgba(0,0,0,.55), 0 0 0 1px var(--ael-gold-glow);
    }
    .ael-rank-item:hover .ael-card { transform: none; box-shadow: none; }
    .ael-rank-item:hover .ael-card__media img { transform: scale(1.06); }
}
/* Rank, views and vote sit in a bar beneath the photo, never over it. */
.ael-rank-item__foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin: 0;
    padding: 11px 12px 12px;
    /* The photo's readability gradient ends at near-black, so the bar uses the
       same dark base. A lighter background here creates a visible colour step at
       the join, which flickers as the tile lifts and the photo zooms on hover. */
    background:
        linear-gradient(180deg, rgba(201, 162, 75, 0.06), rgba(201, 162, 75, 0)),
        #0e0e0e;
}
.ael-rank-item__stats { display: inline-flex; align-items: center; gap: 9px; flex: 0 0 auto; }

/* On the Most Visited tab the view count leads and is the headline figure, with
   voting reduced to a compact star + count. The Most Voted tab keeps the
   opposite emphasis (vote first, views small). */
.ael-rank-grid--views .ael-rank-item__foot { flex-direction: row-reverse; }
.ael-rank-grid--views .ael-rank-item__stats { flex: 1 1 auto; justify-content: flex-start; gap: 10px; }
.ael-rank-grid--views .ael-rank-item__views { font-size: 15px; color: var(--ael-text); gap: 6px; }
.ael-rank-grid--views .ael-rank-item__views svg { width: 16px; height: 16px; opacity: 1; }
.ael-rank-grid--views .ael-vote { flex: 0 0 auto; padding: 6px 11px; gap: 5px; }
.ael-rank-grid--views .ael-vote__label { display: none; }
.ael-rank-grid--views .ael-vote__count { font-size: 12.5px; }
.ael-rank-grid--views .ael-vote svg { width: 13px; height: 13px; }
/* Rank number chip. */
.ael-rank-item__num {
    min-width: 26px;
    height: 26px;
    padding: 0 7px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: var(--ael-serif);
    font-variant-numeric: lining-nums;
    font-feature-settings: "lnum" 1;
    line-height: 1;
    font-size: 14px;
    color: #17120a;
    background: linear-gradient(135deg, var(--ael-gold-light), var(--ael-gold-deep));
    border-radius: 40px;
}
/* View count, shown beside the rank. */
.ael-rank-item__views {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-family: var(--ael-sans);
    font-size: 12px;
    line-height: 1;
    color: var(--ael-text-muted);
}
.ael-rank-item__views svg { color: var(--ael-gold); opacity: .8; }
/* Vote control. */
.ael-vote {
    flex: 1 1 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 9px 12px;
    font-family: var(--ael-sans);
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--ael-text-muted);
    background: var(--ael-panel-2);
    border: 1px solid var(--ael-border);
    border-radius: 40px;
    cursor: pointer;
    transition: border-color .2s ease, color .2s ease, background .2s ease;
}
.ael-vote svg { color: var(--ael-gold); opacity: .75; transition: opacity .2s ease, transform .2s ease; }
.ael-vote__count {
    font-family: var(--ael-serif);
    font-variant-numeric: lining-nums;
    font-feature-settings: "lnum" 1;
    font-size: 14px;
    letter-spacing: 0;
    color: var(--ael-gold-light);
}
@media (hover: hover) {
    .ael-vote:hover { border-color: var(--ael-gold); color: var(--ael-text); }
    .ael-vote:hover svg { opacity: 1; transform: scale(1.12); }
}
.ael-vote.is-voted {
    border-color: var(--ael-gold);
    color: var(--ael-gold-light);
    background: rgba(201, 162, 75, 0.10);
    cursor: default;
}
.ael-vote.is-voted svg { opacity: 1; }
.ael-vote[disabled] { cursor: default; }
/* Today's vote is spent: the other buttons dim until tomorrow. */
.ael-vote.is-locked, .ael-pstat--vote.is-locked { opacity: .45; cursor: default; }
/* Sorting swaps the grid in place; fade it while the new set loads. */
.is-loading .ael-rank-grid { opacity: .35; pointer-events: none; transition: opacity .15s ease; }
.ael-rank-note { text-align: center; color: var(--ael-text-dim); font-size: 12.5px; margin: 22px 0 0; }
@media (max-width: 680px) {
    .ael-rank-head { align-items: center; justify-content: center; text-align: center; }
    .ael-rank-head__text { width: 100%; }
    /* Two-across cards are narrow, so the bar stays a single compact row: the
       vote collapses to a star + count pill (its aria-label carries the meaning)
       and the rank/views sit opposite. Keeps the tile short and tidy. */
    .ael-rank-item__foot { gap: 4px; padding: 8px; }
    .ael-rank-item__stats { gap: 5px; }
    .ael-rank-item__num { min-width: 18px; height: 18px; padding: 0 4px; font-size: 11px; }
    .ael-rank-item__views { font-size: 10.5px; gap: 3px; }
    .ael-rank-item__views svg { width: 10px; height: 10px; }
    .ael-vote { flex: 0 0 auto; gap: 4px; padding: 5px 9px; }
    .ael-vote__label { display: none; }
    .ael-vote__count { font-size: 12px; }
    .ael-vote svg { width: 12px; height: 12px; }
}

.ael-mv-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 20px 14px;
    margin-top: 6px;
}
@media (min-width: 768px) {
    .ael-mv-grid { grid-template-columns: repeat(10, 1fr); gap: 24px 16px; }
}
.ael-mv__item { display: block; text-align: center; text-decoration: none; }
.ael-mv__img {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 1 / 1;
    border-radius: 50%;
    overflow: hidden;
    border: 2px solid var(--ael-border);
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.35);
    transition: border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}
/* Anchor the crop to the top so faces stay visible in the round avatars. */
.ael-mv__img img { width: 100%; height: 100%; object-fit: cover; object-position: center top; display: block; }
.ael-mv__item:hover .ael-mv__img { border-color: var(--ael-gold); transform: translateY(-3px); box-shadow: 0 8px 22px rgba(0, 0, 0, 0.5); }
/* Trending filter (Most Visited / Most Voted) above the avatar grid. */
.ael-mv-filter {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin: -20px 0 30px;
}
.ael-mv-filter .ael-rank-sort {
    background: transparent;
    cursor: pointer;
    font-family: var(--ael-sans);
}
.ael-mv__item[hidden] { display: none; }

.ael-mv__count {
    position: absolute;
    bottom: 5px;
    left: 50%;
    transform: translateX(-50%);
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 2px 8px;
    border-radius: 20px;
    background: rgba(10, 8, 6, 0.8);
    -webkit-backdrop-filter: blur(3px);
    backdrop-filter: blur(3px);
    color: var(--ael-gold-light);
    font-family: var(--ael-sans);
    font-size: 10.5px;
    font-weight: 500;
    white-space: nowrap;
}
/* Only the badge for the active metric is shown. Declared after .ael-mv__count
   (and scoped to the card) so it wins over that rule's display: inline-flex. */
.ael-mv-card .ael-mv__count--votes { display: none; }
.ael-mv-card.is-votes .ael-mv__count--views { display: none; }
.ael-mv-card.is-votes .ael-mv__count--votes { display: inline-flex; }

.ael-mv__name {
    display: block;
    margin-top: 9px;
    font-family: var(--ael-serif);
    font-size: 13px;
    color: var(--ael-text-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    transition: color .2s ease;
}
.ael-mv__item:hover .ael-mv__name { color: var(--ael-gold-light); }
.ael-mv-cta { text-align: center; margin-top: 32px; }

/* Recommended Escorts strip (horizontal, swipeable) — rendered inside the hero
   so it shares the hero's gold-glow background with no seam. */
.ael-newstrip { padding: 0 0 4px; background: transparent; text-align: left; }
.ael-hero .ael-newstrip { margin: -48px 0 30px; }
.ael-newstrip__label { display: block; font-family: var(--ael-sans); font-size: 12px; letter-spacing: .18em; text-transform: uppercase; color: var(--ael-gold); margin-bottom: 14px; }
.ael-newstrip__scroll {
    display: flex;
    gap: 16px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    /* Hidden scrollbar — navigate via the chevrons (desktop) or swipe (touch). */
    scrollbar-width: none;
    -ms-overflow-style: none;
    padding-bottom: 4px;
    scroll-snap-type: x proximity;
}
.ael-newstrip__scroll::-webkit-scrollbar { display: none; }
.ael-newstrip__item { flex: 0 0 auto; width: 78px; text-align: center; text-decoration: none; scroll-snap-align: start; }
.ael-newstrip__img {
    display: block;
    width: 78px;
    height: 78px;
    box-sizing: border-box;
    border-radius: 50%;
    overflow: hidden;
    border: 2px solid var(--ael-gold);
    box-shadow: 0 3px 10px rgba(0, 0, 0, 0.4);
    transition: border-color .2s ease;
}
.ael-newstrip__img img { width: 100%; height: 100%; object-fit: cover; object-position: center top; display: block; }
/* Only the border reacts on hover (like Most Visited — no lift, no glow). The
   base ring is already gold, so brighten it so the hover is actually visible. */
.ael-newstrip__item:hover .ael-newstrip__img { border-color: var(--ael-gold-light); }
.ael-newstrip__name { display: block; margin-top: 8px; font-size: 12px; color: var(--ael-text-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 78px; }
.ael-newstrip__wrap { position: relative; }
.ael-newstrip__nav {
    display: none;
    position: absolute;
    top: 39px;
    transform: translateY(-50%);
    z-index: 4;
    width: 40px;
    height: 40px;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 1px solid var(--ael-gold);
    border-radius: 50%;
    background: rgba(10, 8, 6, 0.85);
    color: var(--ael-gold-light);
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
    transition: background .2s ease, color .2s ease, opacity .2s ease;
}
.ael-newstrip__nav--prev { left: -6px; }
.ael-newstrip__nav--next { right: -6px; }
.ael-newstrip__nav:hover { background: var(--ael-gold); color: #17120a; }
.ael-newstrip__nav.is-hidden { opacity: 0; pointer-events: none; }
@media (min-width: 768px) {
    .ael-newstrip__nav { display: flex; }
}
@media (max-width: 560px) {
    .ael-mv-card { padding: 30px 16px 24px; border-radius: 14px; }
    .ael-mv__name { font-size: 11px; margin-top: 6px; }
}

/* Profile stat trio: views · votes · book. Three individual canvases. */
.ael-pstats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    margin: 22px 0 18px;
}
.ael-pstat {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    padding: 14px 10px;
    min-height: 58px;
    border: 1px solid var(--ael-border);
    border-radius: 14px;
    background:
        radial-gradient(160px 70px at 50% -10%, rgba(201, 162, 75, 0.12), transparent 70%),
        linear-gradient(180deg, var(--ael-panel-2), var(--ael-panel));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.035);
    color: var(--ael-text);
    text-decoration: none;
    font-family: var(--ael-sans);
    /* Suppress the grey iOS tap flash so our own gold :active state shows. */
    -webkit-tap-highlight-color: transparent;
    transition: border-color .25s ease, transform .25s ease, box-shadow .25s ease, filter .25s ease;
}
.ael-pstat__icon { display: flex; flex: 0 0 auto; color: var(--ael-gold); }
.ael-pstat__num {
    font-family: var(--ael-serif);
    font-variant-numeric: lining-nums;
    font-feature-settings: "lnum" 1;
    font-size: 21px;
    line-height: 1;
    letter-spacing: 0.01em;
    color: var(--ael-text);
}
.ael-pstat__label {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    line-height: 1;
}
/* Vote box is a button. */
button.ael-pstat { cursor: pointer; }
button.ael-pstat[disabled] { cursor: default; }
.ael-pstat--vote.is-voted {
    border-color: var(--ael-gold);
    background:
        radial-gradient(120px 60px at 50% 0%, rgba(201, 162, 75, 0.18), transparent 70%),
        linear-gradient(180deg, var(--ael-panel-2), var(--ael-panel));
}
.ael-pstat--vote.is-voted .ael-pstat__num { color: var(--ael-gold-light); }
/* Booking box is the primary action. */
.ael-pstat--cta {
    background: linear-gradient(135deg, var(--ael-gold-light), var(--ael-gold-deep));
    /* Solid gold edge, same as .ael-btn--solid. A transparent border leaves a
       pale halo where the gradient meets the dark page. */
    border-color: var(--ael-gold);
    color: #17120a !important;
}
.ael-pstat--cta .ael-pstat__icon { color: #17120a; }
@media (hover: hover) {
    .ael-pstat:hover { border-color: var(--ael-gold); transform: translateY(-2px); }
    /* The booking box behaves exactly like the solid Call button: brighten plus
       a gold glow, and no lift. */
    .ael-pstat--cta:hover {
        filter: brightness(1.08);
        box-shadow: 0 8px 24px var(--ael-gold-glow);
        transform: none;
    }
}
/* Same treatment on tap, so touch devices get the feedback too. */
.ael-pstat--cta:active {
    filter: brightness(1.08);
    box-shadow: 0 8px 24px var(--ael-gold-glow);
    transform: none;
}

/* Profile "views" counter card (legacy) */
.ael-views-card {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 16px 18px;
    margin: 22px 0 18px;
    border: 1px solid var(--ael-border);
    border-radius: 12px;
    background:
        radial-gradient(320px 120px at 0% 0%, rgba(201, 162, 75, 0.1), transparent 60%),
        var(--ael-panel);
}
.ael-views-card__icon { color: var(--ael-gold); flex: 0 0 auto; display: flex; }
.ael-views-card__body { display: flex; flex-direction: column; margin-right: auto; }
.ael-views-card__num { font-family: var(--ael-serif); font-size: 26px; line-height: 1; color: var(--ael-text); }
.ael-views-card__label { font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--ael-text-muted); margin-top: 5px; }
.ael-views-card__cta { flex: 0 0 auto; padding: 8px 15px; font-size: 11.5px; letter-spacing: 0.1em; }

@media (max-width: 900px) {
    .ael-footer__cols { grid-template-columns: 1fr 1fr; gap: 34px; }
    .ael-footer__brand { grid-column: 1 / -1; }
}
@media (max-width: 560px) {
    .ael-footer__cols { grid-template-columns: 1fr 1fr; gap: 24px 22px; }
    .ael-footer__bar { flex-direction: column; }
}


/* =============================================================
   MOBILE NAV DROPDOWN — clean, consistent nesting (refinement)
   ============================================================= */
@media (max-width: 900px) {
    /* Submenu block: single indented column with one hairline on the left */
    .ael-nav__item.is-open .ael-nav__drop,
    .ael-nav__item.is-open .ael-nav__drop--mega {
        display: block;
        padding: 2px 0 12px;
        margin: 0 0 0 8px;
        border-left: 1px solid var(--ael-border);
    }
    .ael-nav__cols { display: block; grid-template-columns: 1fr; gap: 0; }

    /* Every submenu link aligned to the same left edge, uniform rows */
    .ael-nav__drop a,
    .ael-nav__mega-col a {
        display: block;
        padding: 12px 16px;
        font-size: 14px;
        letter-spacing: 0.01em;
        border-radius: 0;
        border-bottom: 1px solid rgba(255,255,255,0.03);
    }
    .ael-nav__drop a:hover,
    .ael-nav__mega-col a:hover { background: transparent; color: var(--ael-gold); padding-left: 16px; }

    /* Region sub-headings (Central London etc.) as small gold labels, same left edge */
    .ael-nav__mega-col { min-width: 0; margin: 0; }
    .ael-nav__mega-col h4 {
        font-family: var(--ael-sans);
        font-size: 11px;
        letter-spacing: 0.2em;
        text-transform: uppercase;
        color: var(--ael-gold);
        margin: 14px 0 0;
        padding: 0 16px 6px;
    }
    .ael-nav__mega-col h4 a { color: var(--ael-gold); }
    .ael-nav__more { color: var(--ael-gold) !important; padding: 12px 16px !important; border-bottom: 0 !important; }

    /* First region heading shouldn't have a big gap above */
    .ael-nav__drop--mega .ael-nav__mega-col:first-child h4 { margin-top: 4px; }
}

@media (max-width: 900px) {
    .ael-nav__mega-col h4 a { padding: 0 !important; display: inline; border-bottom: 0 !important; }
}

/* =============================================================
   MOBILE NAV: fix bottom cut-off behind iOS Safari toolbar
   ============================================================= */
@media (max-width: 900px) {
    .ael-nav__menu {
        bottom: auto;
        height: calc(100vh - 74px);
        height: calc(100dvh - 74px);
        padding-bottom: calc(110px + env(safe-area-inset-bottom, 0px));
        -webkit-overflow-scrolling: touch;
    }
}

/* =============================================================
   MOBILE NAV: iOS/WebKit-safe (no dvh resize jump)
   ============================================================= */
@media (max-width: 900px) {
    .ael-nav__menu {
        top: 74px;
        bottom: 0;
        height: auto;                 /* cancel the dvh height that jumped on iOS */
        min-height: 0;
        padding-bottom: calc(130px + env(safe-area-inset-bottom, 0px));
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
    }
}

/* =============================================================
   MOBILE NAV: robust show/hide (no transform slide) — FINAL
   Overrides the translateX approach that failed to slide in on iOS.
   ============================================================= */
@media (max-width: 900px) {
    .ael-nav__menu {
        transform: none !important;
        transition: none !important;
        display: none !important;
    }
    .ael-nav.is-open .ael-nav__menu {
        display: flex !important;
    }
}

/* =============================================================
   CARD META: keep age / area on a single line (no mid-word wrap)
   ============================================================= */
.ael-card__meta {
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
}
.ael-card__meta .dot {
    display: inline-block;
    vertical-align: middle;
    margin: 0 6px;
}
@media (max-width: 680px) {
    .ael-card__meta { font-size: 10.5px; letter-spacing: 0; }
}

/* =============================================================
   EMPTY LOCATION: "escorts nearby" block
   ============================================================= */
.ael-nearby-head { margin-bottom: 10px; }
.ael-nearby-sub {
    color: var(--ael-text-muted);
    font-size: 16px;
    line-height: 1.8;
    max-width: 640px;
    margin: 0;
}
.ael-nearby-title { margin-top: 40px; }

/* =============================================================
   CASTING: gallery card + application page
   ============================================================= */
.ael-card--casting .ael-card__media {
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(160deg, var(--ael-panel-2), var(--ael-black));
    border: 1px dashed var(--ael-gold-deep);
}
.ael-card--casting .ael-card__media::after { display: none; }
.ael-card--casting:hover .ael-card__media { border-color: var(--ael-gold); }
.ael-casting-card { text-align: center; padding: 24px 18px; }
.ael-casting-card__eyebrow { display: block; color: var(--ael-gold); text-transform: uppercase; letter-spacing: 0.25em; font-size: 10px; margin-bottom: 12px; }
.ael-casting-card__title { font-family: var(--ael-serif); font-size: 25px; color: var(--ael-text); margin: 0 0 10px; }
.ael-casting-card__text { color: var(--ael-text-muted); font-size: 12.5px; line-height: 1.7; margin: 0 0 16px; }
.ael-casting-card__btn { color: var(--ael-gold-light); font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; }
.ael-card--casting:hover .ael-casting-card__btn { color: var(--ael-gold); }

/* Application page */
.ael-casting__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: start; }
@media (max-width: 900px) { .ael-casting__grid { grid-template-columns: 1fr; gap: 34px; } }
.ael-casting__benefits h2, .ael-casting__form-wrap h2 { font-size: 28px; margin: 0 0 6px; }
.ael-casting__list { list-style: none; margin: 22px 0 0; padding: 0; }
.ael-casting__list li { position: relative; padding: 0 0 18px 28px; color: var(--ael-text-muted); font-size: 15px; line-height: 1.75; }
.ael-casting__list li::before { content: ""; position: absolute; left: 0; top: 9px; width: 8px; height: 8px; border-radius: 50%; background: var(--ael-gold); }
.ael-casting__list strong { color: var(--ael-text); font-weight: 500; }
.ael-casting__note { color: var(--ael-text-dim); font-size: 12px; margin-top: 16px; }

.ael-casting__form-wrap { background: linear-gradient(180deg, var(--ael-panel-2), var(--ael-panel)); border: 1px solid var(--ael-border); border-radius: 8px; padding: 30px; }
.ael-casting__form label { display: block; color: var(--ael-text-muted); font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase; margin: 0 0 14px; }
.ael-casting__form label span { color: var(--ael-gold); }
.ael-casting__form input, .ael-casting__form textarea {
    width: 100%; margin-top: 7px;
    background: var(--ael-black-2); border: 1px solid var(--ael-border); color: var(--ael-text);
    padding: 12px 14px; border-radius: 4px;
    /* 16px stops iOS Safari zooming the page when a field takes focus. */
    font-family: var(--ael-sans); font-size: 16px; letter-spacing: 0; text-transform: none;
}
.ael-casting__form input:focus, .ael-casting__form textarea:focus { outline: none; border-color: var(--ael-gold); }
.ael-casting__row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 520px) { .ael-casting__row { grid-template-columns: 1fr; gap: 0; } }
.ael-casting__file input { padding: 10px; }
.ael-casting__form .ael-btn--block { margin-top: 8px; }
.ael-casting__legal { color: var(--ael-text-dim); font-size: 11px; text-transform: none; letter-spacing: 0; margin-top: 12px; }
.ael-casting__error { background: rgba(120,30,30,.3); border: 1px solid #7a2a2a; color: #f0b0b0; padding: 12px 14px; border-radius: 4px; font-size: 14px; margin-bottom: 4px; }
.ael-casting__success { text-align: center; padding: 20px 0; }
.ael-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

/* =============================================================
   GLOBAL BUTTON TEXT COLOURS (override GeneratePress .ael-theme a)
   ============================================================= */
.ael-btn { color: var(--ael-gold-light) !important; }
.ael-btn:hover { color: #17120a !important; }
.ael-btn--solid,
.ael-btn--solid:hover { color: #17120a !important; }
.ael-nav__cta { color: var(--ael-gold-light) !important; }
.ael-nav__cta:hover { color: #17120a !important; }
.ael-footer__cta { color: var(--ael-gold-light) !important; }
.ael-footer__cta:hover { color: #17120a !important; }
.ael-casting-card__btn { color: var(--ael-gold-light) !important; }

/* =============================================================
   CASTING CARD: luxury background image + fit content
   ============================================================= */
.ael-card--casting .ael-card__media {
    background: #0d0b09 url("assets/images/casting.svg") center / cover no-repeat;
    border: 1px solid var(--ael-gold-deep);
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
}
.ael-card--casting .ael-card__media::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(8,7,6,0.55), rgba(8,7,6,0.82));
    z-index: 1;
}
.ael-card--casting:hover .ael-card__media { border-color: var(--ael-gold); }
.ael-casting-card {
    position: relative;
    z-index: 2;
    text-align: center;
    padding: 16px 14px;
    width: 100%;
}
.ael-casting-card__eyebrow { font-size: 9px; letter-spacing: 0.22em; margin-bottom: 8px; }
.ael-casting-card__title { font-size: clamp(19px, 3.4vw, 26px); line-height: 1.1; margin: 0 0 8px; }
.ael-casting-card__text { font-size: 12px; line-height: 1.6; margin: 0 0 12px; }
.ael-casting-card__btn { font-size: 11px; letter-spacing: 0.14em; }

/* 404 page action buttons */
.ael-404__actions { margin-top: 32px; display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }

/* =============================================================
   SEARCH KEYWORD INPUT: override GeneratePress' white search field
   ============================================================= */
.ael-search .ael-search__input,
input[type="search"].ael-search__input {
    background: var(--ael-panel) !important;
    color: var(--ael-text) !important;
    border: 1px solid var(--ael-border) !important;
    border-radius: 40px !important;
    padding: 13px 16px 13px 42px !important;
    box-shadow: none !important;
    -webkit-appearance: none;
    appearance: none;
}
.ael-search .ael-search__input:focus,
input[type="search"].ael-search__input:focus { border-color: var(--ael-gold) !important; outline: none !important; }
.ael-search .ael-search__input::placeholder { color: var(--ael-text-dim) !important; }
/* remove the native search clear/decoration that can overlap */
.ael-search__input::-webkit-search-decoration,
.ael-search__input::-webkit-search-cancel-button { -webkit-appearance: none; }

/* =============================================================
   HOMEPAGE SEO CONTENT + FAQ
   ============================================================= */
.ael-seo { border-top: 1px solid var(--ael-border-soft); }
.ael-seo__prose { max-width: 860px; margin: 0 auto; }
.ael-seo__prose h2 {
    font-size: clamp(24px, 3.4vw, 32px);
    margin: 40px 0 14px;
}
.ael-seo__prose h2:first-child { margin-top: 0; }
.ael-seo__prose p { color: var(--ael-text-muted); font-size: 16px; line-height: 1.9; margin: 0 0 8px; }
.ael-seo__prose a { color: var(--ael-gold); }
.ael-seo__prose a:hover { color: var(--ael-gold-light); text-decoration: underline; }

.ael-faq { max-width: 860px; margin: 56px auto 0; }
.ael-faq > h2 { font-size: clamp(24px, 3.4vw, 32px); text-align: center; margin: 0 0 34px; }
.ael-faq__item {
    border: 1px solid var(--ael-border);
    border-radius: 6px;
    background: var(--ael-panel);
    padding: 20px 22px;
    margin-bottom: 12px;
}
.ael-faq__q { font-family: var(--ael-serif); font-size: 19px; color: var(--ael-gold-light); margin: 0 0 8px; }
.ael-faq__a { color: var(--ael-text-muted); font-size: 15px; line-height: 1.8; margin: 0; }

/* =============================================================
   HOMEPAGE: latest reviews
   ============================================================= */
.ael-rvhome__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
    gap: 16px;
}
.ael-rvhome__card {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 20px;
    background:
        radial-gradient(300px 120px at 0% 0%, rgba(201, 162, 75, 0.07), transparent 60%),
        var(--ael-panel);
    border: 1px solid var(--ael-border);
    border-radius: 14px;
    transition: border-color .3s ease, transform .3s ease;
}
@media (hover: hover) {
    .ael-rvhome__card:hover { border-color: var(--ael-gold); transform: translateY(-3px); }
}
.ael-rvhome__head { display: flex; align-items: center; gap: 13px; }
.ael-rvhome__photo {
    flex: 0 0 auto;
    width: 54px;
    height: 54px;
    border-radius: 50%;
    overflow: hidden;
    border: 1px solid var(--ael-gold-soft, rgba(201, 162, 75, 0.35));
    display: block;
}
.ael-rvhome__photo img { width: 100%; height: 100%; object-fit: cover; object-position: center top; display: block; }
.ael-rvhome__meta { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.ael-rvhome__name {
    font-family: var(--ael-serif);
    font-size: 19px;
    line-height: 1.1;
    color: var(--ael-text);
    text-decoration: none;
}
.ael-rvhome__name:hover { color: var(--ael-gold-light); }
.ael-rvhome__text {
    margin: 0;
    color: var(--ael-text-muted);
    font-size: 14.5px;
    line-height: 1.75;
}
.ael-rvhome__by {
    margin: 0;
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: var(--ael-sans);
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--ael-gold);
}
.ael-rvhome__by .dot { width: 3px; height: 3px; border-radius: 50%; background: var(--ael-text-dim); }
.ael-rvhome__cta { text-align: center; margin-top: 34px; }
@media (max-width: 680px) {
    .ael-rvhome__grid { grid-template-columns: 1fr; gap: 12px; }
    .ael-rvhome__card { padding: 16px; }
}
/* Small helper note under a review form field (e.g. why we ask for a phone). */
.ael-rv-hint {
    display: block;
    margin-top: 6px;
    font-size: 11.5px;
    line-height: 1.5;
    color: var(--ael-text-dim);
}
