/* ===========================================================================
 *  EPL HOME — scoped styles. Namespace: .eph-*
 *  Font-family: inherit — TourMaster / traveltour-child theme typography
 *  flows through unchanged. No Fraunces, no Inter, no font-face imports.
 * ======================================================================== */

/* FULL-BLEED RESET — break .eph-home out of whatever parent container
   TourMaster wraps around get_header(). Without this the theme's
   .container / .site-content / .entry-content pinches the home into
   a ~600px column and the hero grid collapses. */
/* Contain horizontal bleed at the root so .eph-home can stay overflow:visible.
   This is REQUIRED: any ancestor with overflow:hidden/clip/auto/scroll breaks
   position:sticky on descendants (playbook image, season-check left col, FAQ nav). */
html { overflow-x: clip; }
body.home { overflow-x: clip; }

.eph-home { width: auto !important; max-width: auto !important; margin-left: 0 !important; margin-right: 0 !important; padding: 0 !important; position: relative; overflow: visible !important; }

/* Flatten theme wrappers on the home page so grids get full width AND
   neutralise EVERY property that creates a new containing block
   (overflow/transform/filter/will-change/contain/perspective).
   Any one of those on an ancestor breaks position:sticky on descendants. */
body.home .container, body.home .site-content, body.home .entry-content,
body.home .main-content, body.home main, body.home #main,
body.home .page-content, body.home .post-content,
body.home #page, body.home .site, body.home .site-main,
body.home article, body.home .post, body.home .hentry,
body.home .tm-wrap, body.home .tm-main, body.home .tm-content,
body.home .tm-page, body.home .tm-section, body.home .single-content,
body.home .row, body.home .wrap, body.home .inner {
    max-width: 100% !important; width: 100% !important;
    padding-left: 0 !important; padding-right: 0 !important;
    margin-left: 0 !important; margin-right: 0 !important;
    overflow: visible !important;
    transform: none !important;
    filter: none !important;
    will-change: auto !important;
    contain: none !important;
    perspective: none !important;
}

/* Hide theme's page-title strip / breadcrumbs on home. */
body.home .page-title, body.home .entry-title, body.home .page-header,
body.home .breadcrumb, body.home .breadcrumbs, body.home .tm-page-title {
    display: none !important;
}

/* CSS variables */
.eph-home {
    --ephk:#010101; --ephk-80:#1a1a1a; --ephk-60:#333333; --ephk-40:#666666; --ephk-20:#999999;
    --epha:var(--epl-accent); --epha-dk:var(--epl-accent-dk); --epha-lt:#e8a47d;
    --ephc:var(--epl-cream); --ephl:var(--epl-light); --ephg:#f4f4f4;
    --ephgold:var(--epl-gold); --ephwa:var(--epl-wa);
    --eph-border:var(--epl-line);
    --eph-shadow:0 1px 2px rgba(0,0,0,.04), 0 8px 24px rgba(0,0,0,.06);
    --eph-shadow-lg:0 4px 12px rgba(0,0,0,.08), 0 24px 48px rgba(0,0,0,.12);
    --eph-radius:14px; --eph-radius-sm:8px; --eph-radius-lg:20px;
    color:var(--ephk); background:var(--ephc); line-height:1.55; font-size:16px;
    font-family: inherit;
}
.eph-home *, .eph-home *::before, .eph-home *::after { box-sizing:border-box; font-family: inherit; }

/* Safety net: any element inside .eph-home that carries an inline
   style="background-image:url(..)" photo gets cover/center/no-repeat
   enforced — prevents any class/shorthand from accidentally resetting
   background-size to auto and tiling the photo. */
.eph-home [style*="background-image:url"],
.eph-home [style*="background-image: url"] {
    background-size: cover !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
}
.eph-home img { max-width:100%; display:block; }
.eph-home a { color:inherit; text-decoration:none; }

.eph-container { max-width:var(--epl-container); margin:0 auto; padding:0 24px; box-sizing:border-box; padding-inline:var(--epl-gutter); }
.eph-section { padding:var(--epl-section-y) 0; scroll-margin-top:80px; }
.eph-kicker { text-transform:uppercase; letter-spacing:.14em; font-size:12px; font-weight:600; color:var(--epha); display:inline-block; margin-bottom:14px; }
.eph-h2 { font-family:inherit; font-size:clamp(28px,4vw,44px); font-weight:600; line-height:1.15; margin:0 0 16px; letter-spacing:-.01em; }
.eph-h2 em { font-style:italic; color:var(--epha); }
.eph-lede { font-size:17px; color:var(--ephk-60); max-width:640px; margin:0 0 40px; line-height:1.55; }

/* Buttons */
.eph-home .eph-btn { display:inline-flex; align-items:center; gap:8px; padding:14px 24px; border-radius:999px; font-weight:600; font-size:15px; border:none; cursor:pointer; transition:all .2s ease; font-family:inherit; white-space:nowrap; text-decoration:none; line-height:1; }
.eph-home .eph-btn-primary { background:var(--epha); color:#fff !important; }
.eph-home .eph-btn-primary:hover { background:var(--epha-dk); transform:translateY(-1px); color:#fff !important; }
.eph-home .eph-btn-dark { background:var(--ephk); color:#fff !important; }
.eph-home .eph-btn-dark:hover { background:var(--ephk-80); color:#fff !important; }
.eph-home .eph-btn-wa { background:var(--ephwa); color:#fff !important; }
.eph-home .eph-btn-wa:hover { background:#1ab855; color:#fff !important; }
.eph-home .eph-btn-ghost { background:transparent; color:var(--ephk); border:1.5px solid var(--ephk); }
.eph-home .eph-btn-ghost:hover { background:var(--ephk); color:#fff !important; }
.eph-home .eph-btn-sm { padding:9px 16px; font-size:13px; }

/* ============================================================
   SECTION 1 — HERO + PLANNER WIDGET
   ============================================================ */
.eph-hero { background:var(--ephc); padding:60px 0; position:relative; overflow:hidden; }
.eph-hero-grid { display:grid; grid-template-columns:1.15fr 1fr; gap:56px; align-items:center; }
@media (max-width:960px) { .eph-hero-grid { grid-template-columns:1fr; gap:40px; } }
.eph-hero-left { padding:40px 0 80px; }
.eph-hero-eyebrow { display:inline-flex; align-items:center; gap:10px; background:#fff; border:1px solid var(--eph-border); border-radius:999px; padding:7px 14px; font-size:12px; font-weight:600; margin-bottom:20px; }
.eph-hero-eyebrow .dot { width:6px; height:6px; background:var(--ephwa); border-radius:50%; animation:eph-pulse 2s infinite; }
@keyframes eph-pulse { 0%,100% { opacity:1; } 50% { opacity:.4; } }
.eph-hero-h1 { font-family:inherit; font-size:clamp(40px,6vw,68px); font-weight:600; line-height:1.02; letter-spacing:-.02em; margin:0 0 22px; }
.eph-hero-h1 em { font-style:italic; color:var(--epha); font-weight:500; }
.eph-hero-sub { font-size:19px; color:var(--ephk-60); margin:0 0 32px; max-width:540px; line-height:1.5; }
.eph-hero-cta-row { display:flex; gap:12px; flex-wrap:wrap; margin-bottom:32px; }
.eph-hero-trust { display:flex; align-items:center; gap:24px; flex-wrap:wrap; padding-top:24px; border-top:1px solid var(--eph-border); }
.eph-hero-trust-item { display:flex; flex-direction:column; gap:2px; font-size:13px; color:var(--ephk-60); }
.eph-hero-trust-item strong { font-size:16px; font-weight:700; color:var(--ephk); }
.eph-stars { color:var(--ephgold); font-size:15px; letter-spacing:1px; }
.eph-tripadvisor-badge { display:inline-flex; align-items:center; gap:8px; background:#fff; border:1px solid var(--eph-border); padding:8px 14px; border-radius:10px; }
.eph-tripadvisor-badge .ta-owl { width:22px; height:22px; background:#34e0a1; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; font-weight:700; font-size:12px; color:#000; }

/* Planner widget */
.eph-hero-right { position:relative; }
.eph-planner-card { background:#fff; border-radius:var(--eph-radius-lg); padding:28px; box-shadow:var(--eph-shadow-lg); border:1px solid var(--eph-border); position:relative; overflow:hidden; }
.eph-planner-card::before { content:""; position:absolute; top:0; left:0; right:0; height:4px; background:linear-gradient(90deg,var(--epha),var(--ephgold)); }
.eph-planner-title { display:flex; align-items:center; gap:10px; margin-bottom:6px; }
.eph-planner-title h3 { margin:0; font-family:inherit; font-size:22px; font-weight:600; }
.eph-planner-title .ico { width:28px; height:28px; background:var(--epha); color:#fff; border-radius:8px; display:inline-flex; align-items:center; justify-content:center; font-size:15px; }
.eph-planner-sub { font-size:13px; color:var(--ephk-40); margin:0 0 20px; }
.eph-field { margin-bottom:14px; }
.eph-field label { display:block; font-size:12px; font-weight:600; color:var(--ephk-60); margin-bottom:6px; text-transform:uppercase; letter-spacing:.05em; }
.eph-field select, .eph-field input { width:100%; padding:12px 14px; border:1.5px solid var(--eph-border); border-radius:10px; font-size:15px; font-family:inherit; background:#fff; transition:border-color .2s; }
.eph-field select:focus, .eph-field input:focus { outline:none; border-color:var(--epha); }
.eph-field-row { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.eph-planner-btn { width:100%; margin-top:10px; justify-content:center; padding:16px; }
.eph-planner-note { font-size:12px; color:var(--ephk-40); text-align:center; margin:12px 0 0; }

/* ============================================================
   SECTION 2 — TRUST STRIP (MARQUEE)
   ============================================================ */
.eph-trust-strip { background:var(--ephk); color:#fff; padding:22px 0; overflow:hidden; border-top:1px solid rgba(255,255,255,.08); }
.eph-marquee { display:flex; gap:56px; animation:eph-marquee 28s linear infinite; white-space:nowrap; }
.eph-marquee-item { display:flex; align-items:center; gap:12px; font-size:14px; font-weight:500; flex-shrink:0; }
.eph-marquee-item .num { font-family:inherit; font-size:22px; font-weight:600; color:var(--epha); }
.eph-marquee-item.sep { color:var(--ephk-40); }
@keyframes eph-marquee { from { transform:translateX(0); } to { transform:translateX(-50%); } }

/* ============================================================
   SECTION 3 — MOST-BOOKED PACKAGES (CAROUSEL)
   ============================================================ */
.eph-packages { background:var(--ephc); }
.eph-packages-head { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:36px; flex-wrap:wrap; }
.eph-packages-head-text { flex:1; min-width:300px; }
.eph-packages-head p { margin:0; }
.eph-carousel-controls { display:flex; gap:8px; align-items:center; }
.eph-carousel-btn { width:44px; height:44px; border-radius:5%; border:1.5px solid var(--ephk); background:#fff; display:inline-flex; align-items:center; justify-content:center; cursor:pointer; transition:all .2s; font-size:22px; line-height:1; color:var(--ephk); font-family:inherit; }
.eph-carousel-btn:hover { background:var(--ephk); color:#fff; }
.eph-carousel { display:flex; gap:24px; overflow-x:auto; scroll-snap-type:x mandatory; padding:6px 24px 24px; margin:0 -24px; scrollbar-width:none; }
.eph-carousel::-webkit-scrollbar { display:none; }
/* 3 cards per view on desktop. width = (100% - 2*gap) / 3. Use calc with viewport fallback. */
.eph-pkg-card { flex:0 0 calc((100% - 48px) / 3); min-width:300px; scroll-snap-align:start; background:#fff; border-radius:var(--eph-radius); overflow:hidden; box-shadow:var(--eph-shadow); transition:transform .25s ease, box-shadow .25s ease; border:1px solid var(--eph-border); display:flex; flex-direction:column; }
@media (max-width: 1024px) { .eph-pkg-card { flex:0 0 calc((100% - 24px) / 2); } }
@media (max-width: 680px)  { .eph-pkg-card { flex:0 0 85%; } }
.eph-pkg-card:hover { transform:translateY(-4px); box-shadow:var(--eph-shadow-lg); }
.eph-pkg-img-link { display:block; color:inherit; text-decoration:none; }
.eph-pkg-title-link { color:inherit; text-decoration:none; }
.eph-pkg-title-link:hover { color:var(--epha); }
.eph-pkg-img { aspect-ratio:4/3; background-color:#c89161; background-image:linear-gradient(135deg,#c89161 0%,#8b5a3c 100%); background-size:cover; background-position:center; background-repeat:no-repeat; position:relative; display:flex; align-items:flex-end; justify-content:space-between; padding:14px; color:#fff; overflow:hidden; }
.eph-pkg-img::before { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 40%,rgba(0,0,0,.45)); }
.eph-pkg-img > * { position:relative; z-index:1; }
.eph-pkg-days { background:rgba(255,255,255,.95); color:var(--ephk); font-weight:700; font-size:13px; padding:6px 10px; border-radius:8px; }
.eph-pkg-badge { background:var(--epha); color:#fff; font-weight:600; font-size:12px; padding:5px 10px; border-radius:6px; text-transform:uppercase; letter-spacing:.05em; }
.eph-pkg-body { padding:20px; display:flex; flex-direction:column; flex:1; }
.eph-pkg-route { font-size:12px; font-weight:600; color:var(--ephk-40); text-transform:uppercase; letter-spacing:.08em; margin-bottom:6px; }
.eph-pkg-title { font-family:inherit; font-size:21px; font-weight:600; line-height:1.2; margin:0 0 12px; }
.eph-pkg-bullets { list-style:none; padding:0; margin:0 0 16px; }
.eph-pkg-bullets li { position:relative; padding-left:22px; font-size:14px; color:var(--ephk-60); margin-bottom:6px; line-height:1.4; }
.eph-pkg-bullets li::before { content:"✓"; position:absolute; left:0; top:0; color:var(--epha); font-weight:700; }
.eph-pkg-foot { display:flex; align-items:center; justify-content:space-between; padding-top:14px; border-top:1px solid var(--eph-border); margin-top:auto; }
.eph-pkg-rating { display:flex; align-items:center; gap:6px; font-size:13px; }
.eph-pkg-cta { color:var(--epha); font-weight:600; font-size:14px; display:inline-flex; align-items:center; gap:4px; }
.eph-pkg-cta:hover { text-decoration:underline; }

/* Fake gradient backgrounds used as fallback when no image provided.
   Use background-image (longhand) — NOT background shorthand — so we don't
   reset background-size/position set by .eph-playbook-photo or .eph-pkg-img
   when the inline style="background-image:url(..)" layers a real photo on top. */
.eph-home .pyramids-bg,
.eph-home .nile-bg,
.eph-home .luxor-bg,
.eph-home .abusimbel-bg,
.eph-home .desert-bg,
.eph-home .redsea-bg,
.eph-home .cairo-bg,
.eph-home .aswan-bg { background-size:cover; background-position:center; background-repeat:no-repeat; }
.eph-home .pyramids-bg  { background-image:linear-gradient(180deg,#f6d5a7 0%,#e8b475 50%,#c89161 100%); }
.eph-home .nile-bg      { background-image:linear-gradient(180deg,#87ceeb 0%,#c89161 70%,#8b5a3c 100%); }
.eph-home .luxor-bg     { background-image:linear-gradient(135deg,#d48652 0%,#8b5a3c 100%); }
.eph-home .abusimbel-bg { background-image:linear-gradient(135deg,#c89161 0%,#6b3e26 100%); }
.eph-home .desert-bg    { background-image:linear-gradient(180deg,#e8c07d 0%,#d4a055 60%,#a67935 100%); }
.eph-home .redsea-bg    { background-image:linear-gradient(180deg,#4a9bb8 0%,#2d6a8a 100%); }
.eph-home .cairo-bg     { background-image:linear-gradient(180deg,#ffd89b 0%,#c89161 60%,#8b5a3c 100%); }
.eph-home .aswan-bg     { background-image:linear-gradient(180deg,#f0a868 0%,#b5753d 100%); }

/* ============================================================
   SECTION 4 — PLAN BY... TABBED HUB
   ============================================================ */
.eph-planby { background:#fff; }
.eph-tabs { display:flex; gap:4px; background:var(--ephl); padding:6px; border-radius:999px; margin-bottom:40px; max-width:560px; }
.eph-tab { flex:1; padding:12px 16px; border:none; background:transparent; border-radius:999px; font-weight:600; font-size:14px; cursor:pointer; transition:all .2s; font-family:inherit; color:var(--ephk-60); }
.eph-tab[aria-selected="true"] { background:var(--ephk); color:#fff; box-shadow:0 2px 8px rgba(0,0,0,.12); }
@media (max-width:600px) { .eph-tabs { overflow-x:auto; max-width:100%; } .eph-tab { flex-shrink:0; } }
.eph-tab-panel { display:none; }
.eph-tab-panel.active { display:block; }
.eph-planby-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
@media (max-width:900px) { .eph-planby-grid { grid-template-columns:repeat(2,1fr); } }
.eph-planby-tile { background:var(--ephc); padding:24px; border-radius:var(--eph-radius); border:1px solid var(--eph-border); transition:all .2s; cursor:pointer; position:relative; display:block; }
.eph-planby-tile:hover { border-color:var(--epha); background:#fff; transform:translateY(-2px); box-shadow:var(--eph-shadow); }
.eph-planby-tile-label { font-family:inherit; font-size:28px; font-weight:600; line-height:1; margin:0 0 4px; letter-spacing:-.01em; }
.eph-planby-tile-sub { font-size:13px; color:var(--ephk-40); margin:0 0 10px; }
.eph-planby-tile-count { font-size:12px; color:var(--epha); font-weight:600; }
.eph-planby-tile-arrow { position:absolute; top:24px; right:24px; width:28px; height:28px; border-radius:50%; background:var(--ephk); color:#fff; display:inline-flex; align-items:center; justify-content:center; font-size:14px; transition:transform .2s; opacity:0; }
.eph-planby-tile:hover .eph-planby-tile-arrow { opacity:1; transform:translate(2px,-2px); }

/* ============================================================
   SECTION 5 — NILE CRUISE ROUTES
   ============================================================ */
.eph-cruises { background:var(--ephl); }
.eph-cruise-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
@media (max-width:960px) { .eph-cruise-grid { grid-template-columns:1fr; } }
.eph-cruise-card { background:#fff; border-radius:var(--eph-radius); overflow:hidden; box-shadow:var(--eph-shadow); border:1px solid var(--eph-border); display:flex; flex-direction:column; }
.eph-cruise-map { background:linear-gradient(180deg,#e9ddc7 0%,#d4bf9a 100%); padding:24px; position:relative; min-height:180px; }
.eph-cruise-map svg { width:100%; height:140px; }
.eph-cruise-body { padding:24px; flex:1; display:flex; flex-direction:column; }
.eph-cruise-nights { display:inline-block; background:var(--ephk); color:#fff; font-size:12px; font-weight:700; padding:5px 10px; border-radius:6px; text-transform:uppercase; letter-spacing:.08em; margin-bottom:12px; align-self:flex-start; }
.eph-cruise-nights.is-top { background:var(--epha); }
.eph-cruise-title { font-family:inherit; font-size:24px; font-weight:600; margin:0 0 8px; line-height:1.15; }
.eph-cruise-route { font-size:14px; color:var(--ephk-60); margin:0 0 16px; }
.eph-cruise-specs { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:16px; padding:14px 0; border-top:1px solid var(--eph-border); border-bottom:1px solid var(--eph-border); }
.eph-cruise-spec { font-size:12px; }
.eph-cruise-spec span { display:block; color:var(--ephk-40); text-transform:uppercase; letter-spacing:.05em; font-size:12px; margin-bottom:2px; font-weight:600; }
.eph-cruise-spec strong { font-size:14px; font-weight:600; }
.eph-cruise-cta { margin-top:auto; align-self:flex-start; }

/* ============================================================
   SECTION 6 — PLANNER'S PLAYBOOK (Maro editorial)
   ============================================================ */
.eph-playbook { background:var(--ephc); }
.eph-playbook-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:60px; align-items:start; }
@media (max-width:900px) { .eph-playbook-grid { grid-template-columns:1fr; gap:40px; } }
.eph-home .eph-playbook-visual { position:sticky !important; top:100px; align-self:start; }
@media (max-width:900px) { .eph-home .eph-playbook-visual { position:static !important; } }
.eph-playbook-photo { aspect-ratio:4/5; background-color:#8b5a3c; background-image:linear-gradient(135deg,#8b5a3c,#c89161); background-size:cover; background-position:center; background-repeat:no-repeat; border-radius:var(--eph-radius-lg); overflow:hidden; box-shadow:var(--eph-shadow-lg); position:relative; display:flex; align-items:flex-end; padding:24px; color:#fff; }
.eph-playbook-photo::before { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 40%,rgba(0,0,0,.7)); z-index:1; }
.eph-playbook-photo > * { position:relative; z-index:2; }
.eph-playbook-caption { font-size:13px; font-weight:500; }
.eph-playbook-caption strong { display:block; font-family:inherit; font-size:20px; font-weight:600; margin-bottom:2px; }
.eph-playbook-meta { display:flex; gap:14px; margin-top:20px; font-size:13px; color:var(--ephk-40); flex-wrap:wrap; }
.eph-playbook-meta span { display:inline-flex; align-items:center; gap:6px; }
.eph-playbook-meta a { color:var(--epha); font-weight:600; }
.eph-playbook-body h2 { margin-bottom:24px; }
.eph-playbook-intro { font-family:inherit; font-size:22px; line-height:1.4; font-style:italic; color:var(--ephk); margin:0 0 28px; padding-left:20px; border-left:3px solid var(--epha); }
.eph-playbook-body p { font-size:17px; line-height:1.65; color:var(--ephk-80); margin:0 0 20px; }
.eph-playbook-body h3 { font-family:inherit; font-size:24px; font-weight:600; margin:36px 0 12px; line-height:1.2; }
.eph-playbook-body ul { padding-left:20px; margin:0 0 20px; }
.eph-playbook-body li { margin-bottom:10px; color:var(--ephk-80); font-size:16px; line-height:1.6; }
.eph-playbook-signature { display:flex; align-items:center; gap:14px; margin-top:36px; padding-top:24px; border-top:1px solid var(--eph-border); }
.eph-playbook-sig-avatar { width:56px; height:56px; border-radius:50%; background-color:#8b5a3c; background-image:linear-gradient(135deg,#8b5a3c,#c89161); background-size:cover; background-position:center; background-repeat:no-repeat; flex-shrink:0; }
.eph-playbook-sig-text strong { display:block; font-family:inherit; font-size:18px; font-weight:600; }
.eph-playbook-sig-text span { font-size:13px; color:var(--ephk-40); }
.eph-playbook-sig-text a { color:var(--epha); font-weight:600; font-size:13px; }

/* ============================================================
   SECTION 7 — REVIEWS WALL
   ============================================================ */
.eph-reviews { background:#fff; }
.eph-reviews-head { display:grid; grid-template-columns:1.5fr 1fr; gap:40px; align-items:center; margin-bottom:48px; }
@media (max-width:900px) { .eph-reviews-head { grid-template-columns:1fr; } }
.eph-reviews-score-card { background:var(--ephc); border:2px solid var(--epha); border-radius:var(--eph-radius); padding:28px; text-align:center; }
.eph-reviews-score-num { font-family:inherit; font-size:64px; font-weight:600; line-height:1; color:var(--epha); }
.eph-reviews-score-stars { color:var(--ephgold); font-size:24px; letter-spacing:2px; margin:6px 0; }
.eph-reviews-score-label { font-size:13px; color:var(--ephk-60); }
.eph-reviews-score-label strong { display:block; font-size:16px; color:var(--ephk); font-weight:700; margin-top:4px; }
.eph-reviews-wall { display:grid; grid-template-columns:repeat(12,1fr); gap:20px; }
@media (max-width:900px) { .eph-reviews-wall { grid-template-columns:1fr; } }
.eph-review { background:var(--ephl); border-radius:var(--eph-radius); padding:24px; border:1px solid var(--eph-border); display:flex; flex-direction:column; }
.eph-review-lg { grid-column:span 6; background:var(--ephk); color:#fff; padding:36px; }
@media (max-width:900px) { .eph-review-lg { grid-column:span 1; } }
.eph-review-md { grid-column:span 3; }
@media (max-width:900px) { .eph-review-md { grid-column:span 1; } }
.eph-review-quote { grid-column:span 6; background:linear-gradient(135deg,#8b5a3c,#d48652); color:#fff; padding:36px; display:flex; align-items:center; font-family:inherit; font-style:italic; font-size:22px; line-height:1.35; }
@media (max-width:900px) { .eph-review-quote { grid-column:span 1; } }
.eph-review-stars { color:var(--ephgold); margin-bottom:12px; font-size:14px; letter-spacing:1px; }
.eph-review-lg .eph-review-text { font-size:20px; line-height:1.45; font-family:inherit; }
.eph-review-text { font-size:14px; line-height:1.55; margin:0 0 16px; flex:1; }
.eph-review-meta { display:flex; align-items:center; gap:10px; margin-top:auto; padding-top:14px; border-top:1px solid var(--eph-border); font-size:12px; }
.eph-review-lg .eph-review-meta { border-color:rgba(255,255,255,.15); }
.eph-review-avatar { width:36px; height:36px; border-radius:50%; background:var(--epha); color:#fff; display:inline-flex; align-items:center; justify-content:center; font-weight:700; font-size:14px; flex-shrink:0; }
.eph-review-meta-info strong { display:block; font-weight:700; }
.eph-review-meta-info span { color:var(--ephk-40); }
.eph-review-lg .eph-review-meta-info span { color:rgba(255,255,255,.6); }

/* ============================================================
   SECTION 8 — SEASON CHECK (Winter 2026/27 + Early Bird discount)
   ============================================================ */
/* overflow:visible so .eph-seasonal-left can position:sticky relative to the window.
   The orange glow is now inside an isolated child wrapper that clips its own overflow. */
.eph-home .eph-seasonal { background:linear-gradient(135deg,#1a1a1a 0%,#2d2420 100%); color:#fff; position:relative; overflow:visible !important; }
.eph-home .eph-seasonal::before { content:""; position:absolute; top:60px; right:5%; width:500px; height:500px; background:radial-gradient(circle,rgba(212,134,82,.2) 0%,transparent 60%); z-index:0; pointer-events:none; border-radius:50%; }
.eph-home .eph-seasonal > * { position:relative; z-index:1; }
.eph-home .eph-seasonal .eph-kicker { color:var(--epha-lt) !important; }
/* Season Check: left column is sticky (stays while right side scrolls past).
   align-items:start so the row track is content-height and the sticky
   boundary is the tallest column (the right one). */
.eph-home .eph-seasonal .eph-container { padding-top:40px; padding-bottom:40px; }
.eph-home .eph-seasonal-grid { display:grid; grid-template-columns:1fr 1.3fr; gap:64px; align-items:start; }
@media (max-width:900px) { .eph-home .eph-seasonal-grid { grid-template-columns:1fr; gap:40px; } }
/* Sticky left column: stays fixed while right column scrolls past. */
.eph-home .eph-seasonal-left { position:sticky !important; top:100px; align-self:start; }
@media (max-width:900px) { .eph-home .eph-seasonal-left { position:static !important; } }
.eph-home .eph-seasonal-right { min-height:640px; display:flex; flex-direction:column; gap:20px; }

.eph-home .eph-seasonal-month { font-family:inherit !important; font-size:clamp(72px,11vw,144px) !important; font-weight:700 !important; line-height:.88 !important; letter-spacing:-.04em !important; margin:18px 0 4px !important; color:#fff !important; text-transform:none !important; }
.eph-home .eph-seasonal-month em { font-style:italic !important; color:var(--epha-lt) !important; display:block !important; font-size:.4em !important; font-weight:400 !important; letter-spacing:-.01em !important; margin-top:8px !important; }
.eph-home .eph-seasonal-verdict { font-family:inherit !important; font-size:clamp(22px,2.2vw,30px) !important; line-height:1.3 !important; margin:32px 0 20px !important; font-weight:500 !important; color:rgba(255,255,255,.94) !important; }
.eph-home .eph-seasonal-verdict strong { color:var(--epha-lt) !important; font-weight:600 !important; }
.eph-home .eph-seasonal-p { font-size:16px !important; line-height:1.65 !important; color:rgba(255,255,255,.72) !important; margin:0 0 24px !important; max-width:520px !important; }

.eph-home .eph-seasonal-stats { display:grid; grid-template-columns:repeat(2,1fr); gap:16px; }
.eph-home .eph-seasonal-stat { background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08); border-radius:var(--eph-radius-sm); padding:22px 24px; transition:all .2s; }
.eph-home .eph-seasonal-stat:hover { background:rgba(255,255,255,.06); border-color:rgba(212,134,82,.3); }
.eph-home .eph-seasonal-stat-label { font-size:12px !important; text-transform:uppercase !important; letter-spacing:.1em !important; color:var(--epha-lt) !important; font-weight:700 !important; margin-bottom:10px !important; }
.eph-home .eph-seasonal-stat-val { font-family:inherit !important; font-size:28px !important; font-weight:600 !important; line-height:1 !important; color:#fff !important; letter-spacing:-.01em !important; }
.eph-home .eph-seasonal-stat-sub { font-size:12px !important; color:rgba(255,255,255,.5) !important; margin-top:6px !important; }

.eph-home .eph-seasonal-pick { background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.1); border-radius:var(--eph-radius); padding:28px; margin-top:0; }
.eph-home .eph-seasonal-pick-label { font-size:12px !important; text-transform:uppercase !important; letter-spacing:.1em !important; color:var(--epha-lt) !important; font-weight:700 !important; margin-bottom:10px !important; }
.eph-home .eph-seasonal-pick-title { font-family:inherit !important; font-size:26px !important; font-weight:600 !important; margin:0 0 8px !important; line-height:1.2 !important; color:#fff !important; }
.eph-home .eph-seasonal-pick-why { font-size:14px !important; color:rgba(255,255,255,.72) !important; margin:0 0 18px !important; line-height:1.55 !important; }
.eph-home .eph-seasonal-pick .eph-btn { padding:11px 20px; font-size:13px; }

/* Winter discount badge — sits above the big month word */
.eph-home .eph-seasonal-deal-badge { display:inline-flex; align-items:center; gap:8px; background:linear-gradient(90deg,var(--epha) 0%,var(--ephgold) 100%); color:#fff; font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; padding:8px 14px; border-radius:999px; margin-bottom:14px; box-shadow:0 8px 24px rgba(212,134,82,.35); }
.eph-home .eph-seasonal-deal-dot { width:7px; height:7px; border-radius:50%; background:#fff; animation:eph-pulse 2s infinite; }

/* Winter Early-Bird deal card — the attention-grabber */
.eph-home .eph-seasonal-deal { background:linear-gradient(135deg,#d48652 0%,#b86c3c 60%,#8b4a1f 100%); border-radius:var(--eph-radius); padding:28px; color:#fff; position:relative; overflow:hidden; box-shadow:0 20px 60px rgba(212,134,82,.25); }
.eph-home .eph-seasonal-deal::after { content:""; position:absolute; top:-40%; right:-10%; width:300px; height:300px; background:radial-gradient(circle,rgba(255,255,255,.18) 0%,transparent 60%); pointer-events:none; }
.eph-home .eph-seasonal-deal > * { position:relative; z-index:1; }
.eph-home .eph-seasonal-deal-top { display:flex; align-items:flex-start; gap:20px; margin-bottom:16px; }
.eph-home .eph-seasonal-deal-save { flex-shrink:0; background:#fff; color:var(--epha); border-radius:var(--eph-radius-sm); width:84px; height:84px; display:flex; flex-direction:column; align-items:center; justify-content:center; font-family:inherit; font-size:32px; font-weight:700; line-height:1; letter-spacing:-.02em; box-shadow:0 8px 24px rgba(0,0,0,.2); }
.eph-home .eph-seasonal-deal-save span { font-size:12px; font-weight:700; letter-spacing:.12em; margin-top:4px; color:var(--ephk-60); }
.eph-home .eph-seasonal-deal-label { font-size:12px !important; font-weight:700 !important; text-transform:uppercase !important; letter-spacing:.12em !important; color:rgba(255,255,255,.8) !important; margin-bottom:6px !important; }
.eph-home .eph-seasonal-deal-head { font-family:inherit !important; font-size:22px !important; font-weight:600 !important; line-height:1.2 !important; margin:0 !important; color:#fff !important; }
.eph-home .eph-seasonal-deal-body { font-size:14px !important; line-height:1.55 !important; color:rgba(255,255,255,.88) !important; margin:0 0 18px !important; }
.eph-home .eph-seasonal-deal-code-row { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; padding:14px 16px; background:rgba(0,0,0,.25); border:1px dashed rgba(255,255,255,.35); border-radius:10px; margin-bottom:16px; }
.eph-home .eph-seasonal-deal-code span { font-size:12px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.7); margin-right:8px; }
.eph-home .eph-seasonal-deal-code strong { font-family:inherit; font-size:18px; font-weight:700; letter-spacing:.08em; color:#fff; padding:4px 10px; background:rgba(255,255,255,.12); border-radius:6px; }
.eph-home .eph-seasonal-deal-expiry { font-size:12px; color:rgba(255,255,255,.7); font-weight:500; }
.eph-home .eph-seasonal-deal-ctas { display:flex; gap:10px; flex-wrap:wrap; }
.eph-home .eph-seasonal-deal-ctas .eph-btn-primary { background:#fff !important; color:var(--epha) !important; }
.eph-home .eph-seasonal-deal-ctas .eph-btn-primary:hover { background:rgba(255,255,255,.92) !important; color:var(--epha-dk) !important; }
.eph-home .eph-btn-ghost-light { background:transparent; color:#fff !important; border:1.5px solid rgba(255,255,255,.4); padding:14px 24px; border-radius:999px; font-weight:600; font-size:15px; display:inline-flex; align-items:center; gap:8px; line-height:1; transition:all .2s; }
.eph-home .eph-btn-ghost-light:hover { background:rgba(255,255,255,.1); border-color:#fff; }
@media (max-width:600px) {
    .eph-home .eph-seasonal-deal-top { flex-direction:column; gap:14px; }
    .eph-home .eph-seasonal-deal-save { width:72px; height:72px; font-size:28px; }
}

/* ============================================================
   SECTION 7b — WHY BOOK WITH US (editorial manifesto)
   Sticky-left big "6" + 6 numbered reasons on the right.
   ============================================================ */
.eph-why { background:var(--ephl); }
.eph-why-grid { display:grid; grid-template-columns:.85fr 1.2fr; gap:64px; align-items:start; }
@media (max-width:900px) { .eph-why-grid { grid-template-columns:1fr; gap:48px; } }
.eph-home .eph-why-intro { position:sticky !important; top:100px; align-self:start; }
@media (max-width:900px) { .eph-home .eph-why-intro { position:static !important; } }
.eph-why-big { display:flex; align-items:baseline; gap:18px; margin:14px 0 26px; }
.eph-why-big-num { font-family:inherit; font-size:clamp(100px,14vw,200px); font-weight:600; line-height:.82; color:var(--epha); letter-spacing:-.05em; }
.eph-why-big-word { font-family:inherit; font-size:clamp(26px,3vw,40px); font-style:italic; color:var(--ephk-40); font-weight:400; letter-spacing:-.01em; }
.eph-why-intro .eph-h2 { margin:0 0 18px; }
.eph-why-intro .eph-lede { margin-bottom:24px; }
.eph-why-list { display:flex; flex-direction:column; gap:16px; }
.eph-why-item { background:#fff; border:1px solid var(--eph-border); border-left:4px solid var(--epha); border-radius:var(--eph-radius); padding:26px 30px; display:flex; gap:24px; align-items:flex-start; transition:all .28s ease; position:relative; }
.eph-why-item:hover { transform:translateX(6px); box-shadow:var(--eph-shadow-lg); border-left-width:8px; padding-left:26px; }
.eph-why-num { font-family:inherit; font-size:44px; font-weight:600; font-style:italic; color:var(--epha); line-height:1; flex-shrink:0; min-width:58px; letter-spacing:-.03em; }
.eph-why-body h3 { font-family:inherit; font-size:20px; font-weight:600; margin:0 0 8px; line-height:1.25; color:var(--ephk); letter-spacing:-.01em; }
.eph-why-body p { font-size:15px; line-height:1.6; color:var(--ephk-60); margin:0; }
@media (max-width:600px) {
    .eph-why-item { padding:22px; gap:16px; }
    .eph-why-num { font-size:36px; min-width:48px; }
}

/* ============================================================
   SECTION 9 — COUNTRY DESKS
   ============================================================ */
.eph-countries { background:var(--ephc); }
.eph-countries-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
@media (max-width:900px) { .eph-countries-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:500px) { .eph-countries-grid { grid-template-columns:1fr; } }
.eph-country { background:#fff; border:1px solid var(--eph-border); border-radius:var(--eph-radius); padding:28px; transition:all .25s ease; position:relative; overflow:hidden; display:block; }
.eph-country:hover { transform:translateY(-4px); box-shadow:var(--eph-shadow-lg); border-color:var(--epha); }
.eph-country-flag { display:inline-block; margin-bottom:14px; line-height:1; }
.eph-country-flag img { width:56px; height:42px; border-radius:6px; box-shadow:0 2px 6px rgba(0,0,0,.12); object-fit:cover; display:block; }
.eph-country-label { font-size:12px; font-weight:600; color:var(--epha); text-transform:uppercase; letter-spacing:.1em; margin-bottom:4px; }
.eph-country-title { font-family:inherit; font-size:22px; font-weight:600; margin:0 0 10px; line-height:1.15; }
.eph-country-desc { font-size:14px; color:var(--ephk-60); line-height:1.5; margin:0 0 16px; }
.eph-country-stats { display:flex; gap:16px; font-size:12px; color:var(--ephk-40); padding-top:14px; border-top:1px solid var(--eph-border); margin-bottom:14px; }
.eph-country-stats strong { color:var(--ephk); font-weight:700; }
.eph-country-link { color:var(--epha); font-weight:600; font-size:14px; display:inline-flex; align-items:center; gap:6px; }
.eph-country-link:hover { text-decoration:underline; }
.eph-countries-more { margin:28px 0 0; text-align:center; font-size:14px; color:var(--ephk-40); }
.eph-countries-more a { color:var(--epha); font-weight:600; }

/* ============================================================
   SECTION 10 — FAQ ASYMMETRIC
   ============================================================ */
.eph-faq { background:#fff; }
.eph-faq-layout { display:grid; grid-template-columns:.85fr 1.4fr; gap:60px; align-items:start; }
@media (max-width:900px) { .eph-faq-layout { grid-template-columns:1fr; gap:40px; } }
.eph-home .eph-faq-nav { position:sticky !important; top:100px; align-self:start; }
@media (max-width:900px) { .eph-home .eph-faq-nav { position:static !important; } }
.eph-faq-nav ul { list-style:none; padding:0; margin:24px 0 0; }
.eph-faq-nav li { margin-bottom:6px; }
.eph-faq-nav a { display:flex; align-items:center; justify-content:space-between; padding:12px 16px; border-radius:10px; font-weight:500; font-size:15px; color:var(--ephk-60); transition:all .2s; border:1px solid transparent; }
.eph-faq-nav a:hover, .eph-faq-nav a.active { background:var(--ephc); color:var(--ephk); border-color:var(--eph-border); }
.eph-faq-nav a .count { font-size:12px; color:var(--ephk-40); font-weight:400; }
.eph-faq-nav a.active { border-color:var(--epha); background:#fff; }
.eph-faq-nav a.active .count { color:var(--epha); font-weight:600; }
.eph-faq-group { margin-bottom:40px; scroll-margin-top:100px; }
.eph-faq-group-title { font-family:inherit; font-size:28px; font-weight:600; margin:0 0 20px; padding-bottom:12px; border-bottom:1px solid var(--eph-border); }
.eph-faq-item { border-bottom:1px solid var(--eph-border); padding:20px 0; }
.eph-faq-item > summary { font-family:inherit; font-size:19px; font-weight:600; margin:0 0 10px; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:16px; line-height:1.35; list-style:none; }
.eph-faq-item > summary::-webkit-details-marker { display:none; }
.eph-faq-item > summary::after { content:"+"; font-size:24px; font-family:inherit; font-weight:300; color:var(--epha); transition:transform .2s; flex-shrink:0; }
.eph-faq-item[open] > summary::after { transform:rotate(45deg); }
.eph-faq-a { font-size:15px; line-height:1.6; color:var(--ephk-60); margin:0; }
.eph-faq-a p { margin:0 0 10px; }
.eph-faq-a p:last-child { margin-bottom:0; }

/* ============================================================
   SECTION 11 — FINAL CTA WITH WHATSAPP THREAD
   ============================================================ */
.eph-final { background:var(--ephk); color:#fff; position:relative; overflow:hidden; }
.eph-final::before { content:""; position:absolute; top:-150px; left:-150px; width:600px; height:600px; background:radial-gradient(circle,rgba(212,134,82,.12) 0%,transparent 70%); z-index:0; }
.eph-final > * { position:relative; z-index:1; }
.eph-final-grid { display:grid; grid-template-columns:1.2fr 1fr; gap:56px; align-items:center; }
@media (max-width:900px) { .eph-final-grid { grid-template-columns:1fr; gap:40px; } }
.eph-final h2 { font-family:inherit; font-size:clamp(32px,5vw,52px); font-weight:600; line-height:1.1; letter-spacing:-.01em; margin:0 0 20px; color:#fff; }
.eph-final h2 em { color:var(--epha-lt); font-style:italic; }
.eph-final-sub { font-size:18px; color:rgba(255,255,255,.75); line-height:1.55; margin:0 0 28px; max-width:520px; }
.eph-final-cta-row { display:flex; gap:12px; flex-wrap:wrap; margin-bottom:28px; }
.eph-final-promise { display:flex; gap:18px; flex-wrap:wrap; font-size:13px; color:rgba(255,255,255,.6); }
.eph-final-promise span { display:inline-flex; align-items:center; gap:6px; }

/* WhatsApp thread preview */
.eph-wa-thread { background:#efeae2; border-radius:var(--eph-radius-lg); padding:20px; box-shadow:var(--eph-shadow-lg); position:relative; background-image:linear-gradient(rgba(239,234,226,.95),rgba(239,234,226,.95)),repeating-linear-gradient(45deg,rgba(0,0,0,.02) 0 2px,transparent 2px 12px); }
.eph-wa-header { display:flex; align-items:center; gap:12px; background:var(--ephwa); margin:-20px -20px 16px; padding:14px 20px; border-radius:var(--eph-radius-lg) var(--eph-radius-lg) 0 0; color:#fff; }
.eph-wa-avatar { width:38px; height:38px; border-radius:50%; background-color:#8b5a3c; background-image:linear-gradient(135deg,#8b5a3c,#c89161); background-size:cover; background-position:center; background-repeat:no-repeat; flex-shrink:0; border:2px solid #fff; }
.eph-wa-info strong { display:block; font-size:15px; font-weight:600; }
.eph-wa-info span { font-size:12px; opacity:.9; display:flex; align-items:center; gap:4px; }
.eph-wa-info .online-dot { width:7px; height:7px; background:#b2eaa5; border-radius:50%; }
.eph-wa-bubble { background:#fff; padding:10px 14px; border-radius:8px 8px 8px 2px; font-size:14px; line-height:1.45; color:#111; max-width:85%; margin-bottom:8px; position:relative; box-shadow:0 1px 1px rgba(0,0,0,.08); }
.eph-wa-bubble.you { background:#d9fdd3; margin-left:auto; border-radius:8px 8px 2px 8px; }
.eph-wa-time { font-size:12px; color:#888; text-align:right; display:block; margin-top:2px; }
.eph-wa-typing { display:inline-flex; gap:3px; padding:8px 12px; background:#fff; border-radius:8px; align-items:center; }
.eph-wa-typing span { width:6px; height:6px; background:#999; border-radius:50%; animation:eph-typing 1.4s infinite; }
.eph-wa-typing span:nth-child(2) { animation-delay:.2s; }
.eph-wa-typing span:nth-child(3) { animation-delay:.4s; }
@keyframes eph-typing { 0%,60%,100% { opacity:.3; } 30% { opacity:1; } }

/* ══════════════════════════════════════════════════════════════════
   HOMEPAGE  ·  namespace .eh-  ·  same tokens as About / Our Services
   ══════════════════════════════════════════════════════════════════ */
.eh{
	--eh-ink:var(--epl-ink); --eh-ink-70:var(--epl-ink-70); --eh-ink-50:var(--epl-ink-50); --eh-ink-30:var(--epl-ink-30);
	--eh-accent:var(--epl-accent); --eh-accent-dk:var(--epl-accent-dk); --eh-accent-lt:var(--epl-accent-lt); --eh-accent-sf:var(--epl-accent-sf);
	--eh-brown:#8b5a3c; --eh-gold:var(--epl-gold); --eh-nile:#4a9bb8;
	--eh-cream:var(--epl-cream); --eh-sand:var(--epl-sand); --eh-line:var(--epl-line); --eh-line-lt:var(--epl-line-lt);
	--eh-dark:var(--epl-dark); --eh-wa:var(--epl-wa);
	--eh-r:14px; --eh-r-lg:20px; --eh-r-sm:8px;
	--eh-sh:0 1px 2px rgba(16,16,16,.05), 0 8px 24px rgba(16,16,16,.06);
	--eh-sh-lg:0 4px 12px rgba(16,16,16,.08), 0 24px 48px rgba(16,16,16,.12);
	color:var(--eh-ink); background:#fff; font-family:inherit; font-size:16px; line-height:1.65;
}
.eh *,.eh *::before,.eh *::after{ box-sizing:border-box; }
.eh img{ max-width:100%; }
.eh-in{ max-width:var(--epl-container); margin:0 auto; padding:0 clamp(18px,4vw,40px); box-sizing:border-box; padding-inline:var(--epl-gutter); }
.eh-in-narrow{ max-width:860px; margin:0 auto; padding:0 clamp(18px,4vw,32px); }
.eh-sec{ padding:var(--epl-section-y) 0; }
.eh-sec-cream{ background:var(--eh-cream); }
.eh-sec-sand{ background:var(--eh-sand); }

/* THE TYPE SCALE — the whole point of the rebuild. Every heading selector
   below carries its element type (.eh h2, not .eh-h2) so it beats the parent
   theme's `.traveltour-body h2` rule, which is what was flattening the live
   page to a single 27px size. */
.eh-kicker{ display:inline-flex; align-items:center; gap:9px; font-size:12px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--eh-accent-dk); margin:0 0 14px; }
.eh-kicker::before{ content:''; width:26px; height:2px; background:var(--eh-accent); border-radius:2px; flex:none; }
.eh h1{ font-size:clamp(30px,3.2vw,42px); line-height:1.1; letter-spacing:-.035em; font-weight:700; margin:0 0 20px; color:var(--eh-ink); }
.eh h2{ font-size:clamp(24px,1.9vw,27px); line-height:1.2; letter-spacing:-.025em; font-weight:700; margin:0 0 16px; color:var(--eh-ink); }
.eh h3{ font-size:21px; line-height:1.28; letter-spacing:-.015em; font-weight:650; margin:0 0 10px; color:var(--eh-ink); }
.eh h1 em,.eh h2 em{ font-style:normal; color:var(--eh-accent-dk); }
.eh-lede{ font-size:clamp(16.5px,1.5vw,18.5px); line-height:1.75; color:var(--eh-ink-70); margin:0; }
.eh-head{ max-width:840px; margin:0 auto clamp(28px,4vw,36px); text-align:center; }
.eh-head .eh-kicker{ justify-content:center; }
.eh-head-row{ display:flex; align-items:flex-end; justify-content:space-between; gap:28px; margin-bottom:clamp(30px,4vw,46px); flex-wrap:wrap; }
.eh-head-row > div{ max-width:640px; }
.eh-head-row h2{ margin-bottom:10px; }

/* buttons */
.eh-btn{ display:inline-flex; align-items:center; justify-content:center; gap:9px; padding:14px 28px; border-radius:100px;
	font-size:15px; font-weight:700; text-decoration:none; border:1px solid transparent; cursor:pointer; font-family:inherit;
	transition:background .16s, color .16s, transform .16s, box-shadow .16s; }
.eh-btn:hover{ transform:translateY(-2px); }
.eh-btn svg{ width:17px; height:17px; fill:currentColor; flex:none; }
.eh-btn-primary{ background:var(--eh-accent); color:#fff !important; box-shadow:0 3px 14px rgba(212,134,82,.38); }
.eh-btn-primary:hover{ background:var(--eh-accent-dk); color:#fff !important; box-shadow:0 6px 20px rgba(212,134,82,.48); }
.eh-btn-wa{ background:var(--eh-wa); color:#fff !important; box-shadow:0 3px 14px rgba(37,211,102,.3); }
.eh-btn-wa:hover{ background:#1eb457; color:#fff !important; }
.eh-btn-ghost{ background:rgba(255,255,255,.1); color:#fff !important; border-color:rgba(255,255,255,.42); backdrop-filter:blur(6px); }
.eh-btn-ghost:hover{ background:#fff; color:var(--eh-ink) !important; border-color:#fff; }
.eh-btn-white{ background:#fff; color:var(--eh-ink) !important; box-shadow:0 4px 18px rgba(0,0,0,.14); }
.eh-btn-white:hover{ background:var(--eh-cream); color:var(--eh-ink) !important; }
.eh-btn-line{ background:transparent; color:var(--eh-ink) !important; border-color:var(--eh-line); }
.eh-btn-line:hover{ border-color:var(--eh-accent); color:var(--eh-accent-dk) !important; }
.eh-btn-full{ width:100%; }

/* text link with arrow */
.eh-more{ display:inline-flex; align-items:center; gap:7px; font-size:14.5px; font-weight:700;
	color:var(--eh-accent-dk) !important; text-decoration:none; padding-bottom:2px;
	border-bottom:2px solid transparent; transition:border-color .18s, gap .18s; }
.eh-more:hover{ border-bottom-color:var(--eh-accent); gap:11px; }
.eh-more svg{ width:14px; height:14px; fill:currentColor; flex:none; }

/* ── HERO ───────────────────────────────────────────────────────── */
.eh-hero{ position:relative; overflow:hidden; background:#141110; color:#fff; }
.eh-hero-bg{ position:absolute; inset:0; }
.eh-hero-bg img{ width:100%; height:100%; object-fit:cover; object-position:center 46%; }
.eh-hero::after{ content:''; position:absolute; inset:0; z-index:1;
	background:linear-gradient(180deg,rgba(15,14,12,.34) 0%,rgba(15,14,12,.55) 46%,rgba(15,14,12,.86) 100%),
	           linear-gradient(90deg,rgba(15,14,12,.72) 0%,rgba(15,14,12,.18) 66%); }
.eh-hero .eh-in{ position:relative; z-index:2; }
.eh-hero-grid{ display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(28px,4.5vw,61px); align-items:center;
	padding:clamp(40px,7vw,58px) 0 clamp(40px,7vw,56px); }
.eh-eyebrow{ display:inline-flex; align-items:center; gap:9px; padding:7px 15px 7px 12px; border-radius:100px;
	background:rgba(37,211,102,.16); border:1px solid rgba(37,211,102,.4);
	font-size:13px; font-weight:600; color:#c9f7da; margin-bottom:20px; }
.eh-dot{ width:8px; height:8px; border-radius:50%; background:#25d366; flex:none;
	box-shadow:0 0 0 0 rgba(37,211,102,.7); animation:eh-pulse 2.4s infinite; }
@keyframes eh-pulse{ 0%{ box-shadow:0 0 0 0 rgba(37,211,102,.65);} 70%{ box-shadow:0 0 0 9px rgba(37,211,102,0);} 100%{ box-shadow:0 0 0 0 rgba(37,211,102,0);} }
.eh-hero h1{ color:#fff; max-width:14ch; text-shadow:0 3px 22px rgba(0,0,0,.4); }
.eh-hero h1 em{ color:#f0b183; }
.eh-hero-sub{ font-size:clamp(16.5px,1.6vw,19.5px); line-height:1.62; color:rgba(255,255,255,.93);
	max-width:52ch; margin:0 0 28px; text-shadow:0 2px 12px rgba(0,0,0,.45); }
.eh-hero-stats{ display:flex; flex-wrap:wrap; gap:0; margin-bottom:30px;
	border-top:1px solid rgba(255,255,255,.18); border-bottom:1px solid rgba(255,255,255,.18); }
.eh-hero-stat{ padding:16px 26px 16px 0; margin-right:26px; border-right:1px solid rgba(255,255,255,.18); }
.eh-hero-stat:last-child{ border-right:0; margin-right:0; padding-right:0; }
.eh-hero-stat b{ display:block; font-size:23px; font-weight:700; letter-spacing:-.02em; color:#fff; line-height:1.1; }
.eh-hero-stat span{ display:block; font-size:12.5px; color:rgba(255,255,255,.72); margin-top:3px; }
.eh-hero-btns{ display:flex; flex-wrap:wrap; gap:13px; }

/* planner card */
.eh-planner{ background:#fff; border-radius:var(--eh-r-lg); box-shadow:var(--eh-sh-lg); color:var(--eh-ink); overflow:hidden; }
.eh-planner-head{ background:var(--eh-accent-sf); border-bottom:1px solid var(--eh-line); padding:20px 26px; }
.eh-planner-head h3{ margin:0 0 4px; font-size:19px; }
.eh-planner-head p{ margin:0; font-size:13.5px; color:var(--eh-ink-50); }
.eh-planner-body{ padding:22px 26px 26px; }
.eh-field{ margin-bottom:15px; }
.eh-field label{ display:block; font-size:12px; font-weight:700; letter-spacing:.05em; text-transform:uppercase;
	color:var(--eh-ink-50); margin-bottom:7px; }
.eh-field input,.eh-field select{ width:100%; padding:12px 14px; border:1px solid var(--eh-line); border-radius:var(--eh-r-sm);
	font-size:15px; font-family:inherit; color:var(--eh-ink); background:#fff; transition:border-color .15s, box-shadow .15s; }
.eh-field input:focus,.eh-field select:focus{ outline:none; border-color:var(--eh-accent); box-shadow:0 0 0 3px rgba(212,134,82,.16); }
.eh-planner-note{ margin:14px 0 0; font-size:12.5px; line-height:1.6; color:var(--eh-ink-30); text-align:center; }
@media (max-width:940px){
	.eh-hero-grid{ grid-template-columns:1fr; padding-top:clamp(44px,9vw,64px); }
	.eh-hero h1{ max-width:none; }

@media (max-width:640px){
	/* Mobile hero: the four stats become a real 2x2 grid instead of an
	   uneven wrap, the photo is darkened further so white type over it keeps
	   its contrast, and the two buttons stack full-width as proper targets. */
	.eh-hero::after{ background:linear-gradient(180deg,rgba(15,14,12,.46) 0%,rgba(15,14,12,.66) 46%,rgba(15,14,12,.92) 100%); }
	.eh-hero-grid{ padding:26px 0 28px; gap:20px; }
	.eh-hero h1{ letter-spacing:-.03em; margin-bottom:14px; line-height:1.12; }
	.eh-hero-sub{ font-size:15.5px; line-height:1.55; margin-bottom:18px; }
	.eh-eyebrow{ font-size:12px; padding:6px 13px 6px 10px; margin-bottom:12px; }
	.eh-hero-stats{ display:grid; grid-template-columns:1fr 1fr; gap:0; margin-bottom:18px; }
	.eh-hero-stat{ padding:10px 0 10px 14px; margin:0; border-right:1px solid rgba(255,255,255,.18);
		border-bottom:1px solid rgba(255,255,255,.18); }
	.eh-hero-stat:nth-child(2n){ border-right:0; }
	.eh-hero-stat:nth-child(1),.eh-hero-stat:nth-child(2){ padding-top:0; }
	.eh-hero-stat:nth-child(3),.eh-hero-stat:nth-child(4){ border-bottom:0; padding-bottom:0; }
	.eh-hero-stat:nth-child(odd){ padding-left:0; }
	.eh-hero-stat b{ font-size:19px; }
	.eh-hero-stat span{ font-size:11.5px; }
	.eh-hero-btns{ gap:8px; flex-wrap:nowrap; }
	.eh-hero-btns .eh-btn{ flex:1 1 0; min-width:0; padding:13px 10px; font-size:13.5px; gap:6px; white-space:nowrap; }
	.eh-hero-btns .eh-btn svg{ width:15px; height:15px; }
	.eh-planner-head{ padding:14px 18px; }
	.eh-planner-body{ padding:16px 18px 18px; }
	.eh-planner-head h3{ font-size:17.5px; }
	.eh-planner-head p{ font-size:12.5px; line-height:1.5; }
	.eh-field{ margin-bottom:11px; }
	.eh-field label{ margin-bottom:5px; font-size:12.5px; }
	.eh-planner-note{ margin-top:10px; font-size:11.5px; }
}

}

/* ── PACKAGE CARDS ──────────────────────────────────────────────── */
.eh-pkgs{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.eh-pkg{ display:flex; flex-direction:column; background:#fff; border:1px solid var(--eh-line); border-radius:var(--eh-r);
	overflow:hidden; box-shadow:var(--eh-sh); text-decoration:none; color:inherit;
	transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease; }
.eh-pkg:hover{ transform:translateY(-5px); box-shadow:var(--eh-sh-lg); border-color:#ded6c6; }
.eh-pkg-media{ position:relative; aspect-ratio:16/10; overflow:hidden; background:var(--eh-sand); }
.eh-pkg-media img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s cubic-bezier(.2,.7,.3,1); }
.eh-pkg:hover .eh-pkg-media img{ transform:scale(1.06); }
.eh-pkg-badge{ position:absolute; top:13px; left:13px; z-index:2; padding:6px 13px; border-radius:100px;
	background:rgba(15,14,12,.74); backdrop-filter:blur(6px); color:#fff; font-size:12px; font-weight:700; letter-spacing:.04em; }
.eh-pkg-badge.is-hot{ background:var(--eh-accent); }
.eh-pkg-days{ position:absolute; top:13px; right:13px; z-index:2; padding:6px 13px; border-radius:100px;
	background:rgba(255,255,255,.94); color:var(--eh-ink); font-size:12px; font-weight:700; }
.eh-pkg-body{ padding:20px 22px 22px; display:flex; flex-direction:column; flex:1; }
.eh-pkg-route{ font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--eh-accent-dk); margin:0 0 8px; }
.eh-pkg h3{ font-size:19px; margin:0 0 13px; }
.eh-pkg ul{ list-style:none; margin:0 0 18px; padding:0; }
.eh-pkg li{ position:relative; padding-left:22px; font-size:14px; line-height:1.6; color:var(--eh-ink-70); margin-bottom:7px; }
.eh-pkg li::before{ content:''; position:absolute; left:0; top:9px; width:11px; height:6px;
	border-left:2px solid var(--eh-accent); border-bottom:2px solid var(--eh-accent); transform:rotate(-45deg); }
.eh-pkg-foot{ margin-top:auto; padding-top:16px; border-top:1px solid var(--eh-line-lt);
	display:flex; align-items:center; justify-content:space-between; gap:12px; }
.eh-pkg-price small{ display:block; font-size:12px; font-weight:600; letter-spacing:.05em; text-transform:uppercase; color:var(--eh-ink-30); }
.eh-pkg-price b{ font-size:23px; font-weight:700; letter-spacing:-.02em; color:var(--eh-ink); }
.eh-pkg-price span{ font-size:13px; color:var(--eh-ink-50); }
.eh-pkg-cta{ font-size:14px; font-weight:700; color:var(--eh-accent-dk); display:inline-flex; align-items:center; gap:6px; }
.eh-pkg-cta svg{ width:14px; height:14px; fill:currentColor; }

/* the most-booked tour earns a double-width card */
.eh-pkg-feature{ border-color:var(--eh-accent); box-shadow:0 0 0 1px var(--eh-accent), var(--eh-sh); }
.eh-pkg-feature:hover{ border-color:var(--eh-accent); box-shadow:0 0 0 1px var(--eh-accent), var(--eh-sh-lg); }

/* the closing tile of the grid links to the full catalogue */
.eh-pkg-all{ display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:14px;
	background:var(--eh-dark); border-radius:var(--eh-r); padding:30px 28px; color:#fff; text-decoration:none;
	background-image:radial-gradient(120% 90% at 100% 0%, rgba(212,134,82,.22) 0%, transparent 60%);
	transition:transform .22s ease, box-shadow .22s ease; }
.eh-pkg-all:hover{ transform:translateY(-5px); box-shadow:var(--eh-sh-lg); }
.eh-pkg-all b{ display:block; font-size:21px; font-weight:700; letter-spacing:-.02em; line-height:1.3; }
.eh a.eh-pkg-all,
.eh a.eh-pkg-all b{ color:#fff; }
.eh-pkg-all span{ font-size:14.5px; color:rgba(255,255,255,.72); line-height:1.6; }
.eh-pkg-all i{ font-style:normal; display:inline-flex; align-items:center; gap:8px; font-size:14.5px; font-weight:700; color:#f0b183; }
.eh-pkg-all i svg{ width:14px; height:14px; fill:currentColor; }
@media (max-width:1000px){
	.eh-pkgs{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:760px){
	.eh-pkgs{ grid-template-columns:1fr; }
}

/* ── PLAN BY (tabs) ─────────────────────────────────────────────── */
.eh-tabs{ display:flex; flex-wrap:wrap; gap:10px; justify-content:center; margin-bottom:30px; }
.eh-tab{ padding:11px 22px; border-radius:100px; border:1px solid var(--eh-line); background:#fff;
	font-size:14.5px; font-weight:650; color:var(--eh-ink-70); cursor:pointer; font-family:inherit;
	transition:background .16s, color .16s, border-color .16s; }
.eh-tab:hover{ border-color:var(--eh-accent); color:var(--eh-accent-dk); }
.eh-tab[aria-selected="true"]{ background:var(--eh-accent); border-color:var(--eh-accent); color:#fff; }
.eh-panel[hidden]{ display:none; }
.eh-tiles{ display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:16px; }
.eh-tile{ display:flex; align-items:center; justify-content:space-between; gap:14px; text-decoration:none;
	background:#fff; border:1px solid var(--eh-line); border-radius:var(--eh-r); padding:18px 20px;
	transition:border-color .18s, transform .18s, box-shadow .18s; }
.eh-tile:hover{ border-color:var(--eh-accent); transform:translateY(-3px); box-shadow:var(--eh-sh); }
.eh-tile h3{ font-size:17px; margin:0 0 3px; }
.eh-tile p{ margin:0; font-size:13.5px; color:var(--eh-ink-50); line-height:1.5; }
.eh-tile-go{ font-size:13px; font-weight:700; color:var(--eh-accent-dk); white-space:nowrap; flex:none; }

/* ── CRUISE ROUTES ──────────────────────────────────────────────── */
.eh-routes{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.eh-route{ display:flex; flex-direction:column; background:#fff; border:1px solid var(--eh-line); border-radius:var(--eh-r);
	padding:24px; box-shadow:var(--eh-sh); text-decoration:none; color:inherit; position:relative;
	transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease; }
.eh-route:hover{ transform:translateY(-5px); box-shadow:var(--eh-sh-lg); border-color:#ded6c6; }
.eh-route.is-featured{ border-color:var(--eh-accent); box-shadow:0 0 0 1px var(--eh-accent), var(--eh-sh); }
.eh-route-tag{ display:inline-block; align-self:flex-start; padding:5px 12px; border-radius:100px;
	background:var(--eh-accent-sf); color:var(--eh-accent-dk); font-size:12px; font-weight:700;
	letter-spacing:.05em; text-transform:uppercase; margin-bottom:14px; }
.eh-route.is-featured .eh-route-tag{ background:var(--eh-accent); color:#fff; }
.eh-route-map{ background:var(--eh-cream); border-radius:var(--eh-r-sm); padding:10px; margin-bottom:16px; }
.eh-route-map svg{ display:block; width:100%; height:auto; }
.eh-route h3{ font-size:19px; margin:0 0 7px; }
.eh-route > p{ font-size:14px; color:var(--eh-ink-50); margin:0 0 16px; line-height:1.55; }
.eh-route dl{ display:grid; grid-template-columns:1fr 1fr; gap:12px 16px; margin:0 0 18px; padding-top:16px; border-top:1px solid var(--eh-line-lt); }
.eh-route dt{ font-size:12px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--eh-ink-30); }
.eh-route dd{ margin:2px 0 0; font-size:14px; font-weight:600; color:var(--eh-ink); }
.eh-route .eh-more{ margin-top:auto; }
@media (max-width:900px){ .eh-routes{ grid-template-columns:1fr; } }

/* The Customizer's Additional CSS ships `.page h2{font-size:24px !important}`
   inside @media (max-width:736px). !important cannot be beaten by specificity,
   so the designed mobile size is restated here — same clamp, same value, just
   loud enough to win. Scoped to .eh so nothing outside the ported sections is
   affected. */
@media (max-width:736px){
	.eh h2{ font-size:clamp(24px,1.9vw,27px) !important; }
}

/* Reveal-on-scroll — same watchdog mechanism as the other pages. */
@media (prefers-reduced-motion:no-preference){
	.eh-js .eh-rise{ opacity:0; transform:translateY(22px); transition:opacity .6s ease, transform .6s cubic-bezier(.2,.7,.3,1); }
	.eh-js .eh-rise.is-in{ opacity:1; transform:none; }
}
/* ══════════════════════════════════════════════════════════════════
   FOOTER — replica of ept_render_footer()
   ══════════════════════════════════════════════════════════════════ */
.ept-ftr{ background:#0f0e0c; color:rgba(255,255,255,.7); }
.ept-ftr-trust{ background:rgba(255,255,255,.03); border-bottom:1px solid rgba(255,255,255,.07); }
.ept-ftr-trust-in{ max-width:var(--epl-container); margin:0 auto; padding:22px 24px; display:flex; flex-wrap:wrap; gap:14px 40px; justify-content:center; box-sizing:border-box; padding-inline:var(--epl-gutter); }
.ept-ftr-trust-in span{ display:inline-flex; align-items:center; gap:8px; color:rgba(255,255,255,.88); font-size:13.5px; font-weight:650; white-space:nowrap; }
.ept-ftr-trust-in svg{ width:15px; height:15px; fill:var(--ept-accent); flex:none; }
.ept-ftr-main{ max-width:var(--epl-container); margin:0 auto; padding:52px 24px 40px; display:grid; grid-template-columns:1.55fr 1fr 1fr 1.25fr; gap:44px; box-sizing:border-box; padding-inline:var(--epl-gutter); }
.ept-ftr h3{ position:relative; color:#fff; font-size:12.5px; font-weight:700; text-transform:uppercase; letter-spacing:.09em; margin:0 0 20px; padding-bottom:11px; }
.ept-ftr h3::after{ content:''; position:absolute; left:0; bottom:0; width:26px; height:2px; background:var(--ept-accent); border-radius:2px; }
.ept-ftr-brand img{ height:34px; width:auto; margin-bottom:16px; filter:brightness(0) invert(1); }
.ept-ftr-brand p{ font-size:13.5px; line-height:1.7; margin:0 0 14px; color:rgba(255,255,255,.58); }
.ept-ftr-more{ color:var(--ept-accent); font-weight:700; font-size:13.5px; text-decoration:none; }
.ept-ftr-more:hover{ color:#e8a47d; }
.ept-ftr-lic{ margin-top:18px; background:rgba(255,255,255,.045); border-left:3px solid var(--ept-accent); border-radius:0 var(--ept-r-sm) var(--ept-r-sm) 0; padding:13px 15px; }
.ept-ftr-lic strong{ display:block; color:#fff; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.07em; margin-bottom:5px; }
.ept-ftr-lic span{ font-size:12.5px; line-height:1.6; color:rgba(255,255,255,.6); }
.ept-ftr-social{ display:grid; grid-template-columns:repeat(4,38px); gap:10px; margin-top:22px; }
.ept-ftr-social a{ width:38px; height:38px; display:flex; align-items:center; justify-content:center; border-radius:10px; background:rgba(255,255,255,.07); color:#fff; text-decoration:none; transition:background .15s,transform .15s; }
.ept-ftr-social a svg{ width:17px; height:17px; fill:currentColor; }
.ept-ftr-social a:hover{ background:var(--ept-accent); transform:translateY(-2px); }
.ept-ftr ul{ list-style:none; margin:0; padding:0; }
.ept-ftr li{ margin-bottom:12px; }
.ept-ftr a{ color:rgba(255,255,255,.66); text-decoration:none; font-size:13.5px; transition:color .15s,padding-left .15s; }
.ept-ftr-links a:hover{ color:var(--ept-accent); padding-left:4px; }
.ept-ftr-contact-card{ background:linear-gradient(160deg, rgba(212,134,82,.16), rgba(255,255,255,.035)); border:1px solid rgba(255,255,255,.09); border-radius:var(--ept-r); padding:20px; }
.ept-ftr-contact p{ font-size:12px; text-transform:uppercase; letter-spacing:.07em; font-weight:700; color:rgba(255,255,255,.42); margin:16px 0 5px; }
.ept-ftr-contact p:first-child{ margin-top:0; }
.ept-ftr-phone{ display:block; font-size:17px; font-weight:750; color:#fff; text-decoration:none; letter-spacing:-.01em; }
.ept-ftr-email{ display:block; font-size:13.5px; font-weight:600; color:rgba(255,255,255,.82); text-decoration:none; word-break:break-word; }
.ept-ftr-phone:hover,.ept-ftr-email:hover{ color:var(--ept-accent); }
.ept-ftr-wa{ display:flex; align-items:center; justify-content:center; gap:9px; margin-top:20px; background:#25d366; color:#fff; font-weight:700; font-size:13.5px; padding:12px 16px; border-radius:100px; text-decoration:none; transition:background .15s; }
.ept-ftr-wa:hover{ background:#1eb457; }
.ept-ftr-wa svg{ width:17px; height:17px; fill:#fff; flex:none; }
.ept-ftr-bottom{ border-top:1px solid rgba(255,255,255,.09); }
.ept-ftr-bottom-in{ max-width:var(--epl-container); margin:0 auto; padding:20px 24px; display:flex; flex-wrap:wrap; gap:10px 22px; align-items:center; justify-content:space-between; font-size:12.5px; color:rgba(255,255,255,.45); box-sizing:border-box; padding-inline:var(--epl-gutter); }
.ept-ftr-bottom-links{ display:flex; flex-wrap:wrap; gap:20px; }
.ept-ftr-bottom-links a{ font-size:12.5px; color:rgba(255,255,255,.45); }
.ept-ftr-bottom-links a:hover{ color:#fff; }
@media (max-width:1000px){ .ept-ftr-main{ grid-template-columns:1fr 1fr; gap:36px; } }
@media (max-width:560px){ .ept-ftr-main{ grid-template-columns:1fr; padding:40px 20px 32px; padding-inline:var(--epl-gutter); } .ept-ftr-trust-in{ gap:12px 22px; padding:18px 20px; padding-inline:var(--epl-gutter); } .ept-ftr-bottom-in{ justify-content:center; text-align:center; } }

/* The route diagrams label their stops with SVG presentation attributes
   (font-size="11" / "9"). Those are viewBox units, not CSS pixels: at 390px
   the 300-unit box renders 267px wide, so an 11 renders at 9.8px and a 9 at
   8px -- below any legible floor on a phone. CSS beats a presentation
   attribute, so one rule per tier fixes every diagram. */
.eh-route-map svg text{ font-size:15px; }
.eh-route-map svg text[font-size="9"]{ font-size:14px; fill:#5a5a5a; }

/* ═══════════════════════════════════════════════════════════════════════════
 *  THE HERO  (.eh-hero-find)  —  2026-09-12
 *
 *  One title, one search with two ways in, and the routes people ask for by
 *  name. The photograph is gone from the hero: 94 of them sit in the cards
 *  below, and white type over a picture was the thing we spent this week
 *  removing from the other twelve heroes.
 *
 *  The mode switch is a radio pair, so CSS alone decides which pane shows.
 *  The inputs are clipped rather than display:none — a display:none radio is
 *  unreachable by keyboard, and these are the only control that changes the
 *  shape of the search.
 * ═══════════════════════════════════════════════════════════════════════════ */
.eh-hero-find{ background:var(--eh-cream, #f9f6f1); color:var(--eh-ink); overflow:visible; }
.eh-hero-find::after{ content:none; }
/* The logo's own skyline (assets/img/egypt-planners-mark.svg — the logo SVG with its
   viewBox cut at the ground line, nothing redrawn) laid in as a watermark. It sits
   behind the content, is masked away at the bottom so the ground line dissolves
   instead of stopping, and is invisible to assistive tech: it is decoration, and the
   same mark already carries the site's name in the header. */
.eh-hero-find{ position:relative; }
.eh-hero-find::before{
	content:''; position:absolute; left:0; bottom:0; z-index:0; pointer-events:none;
	width:min(560px, 52%); aspect-ratio:191.6 / 49;
	background:url('../img/egypt-planners-mark.svg') left bottom / contain no-repeat;
	opacity:.10;
	-webkit-mask-image:linear-gradient(to bottom, #000 62%, transparent 100%);
	        mask-image:linear-gradient(to bottom, #000 62%, transparent 100%);
}
.eh-find-grid{ position:relative; z-index:1; }
@media (max-width:640px){
	/* on a phone it would sit under the search box rather than beside it */
	.eh-hero-find::before{ width:88%; opacity:.07; }
}
/* One centred column. The founder card and the sub-heading were removed on
   2026-09-12: the title and the search carry the hero alone. */
.eh-find-grid{ display:block; padding-block:80px; text-align:center; }
.eh-find-main{ max-width:900px; margin:0 auto; }
.eh-hero-find h1{ max-width:900px; margin-left:auto; margin-right:auto; }
/* the controls read left-to-right even though the column is centred */
.eh-find, .eh-ask-form, .eh-filter-form{ text-align:left; }
.eh-find-quick{ justify-content:center; }
.eh-hero-find h1{ color:var(--eh-ink); text-shadow:none; max-width:900px; margin-left:auto; margin-right:auto; }
.eh-hero-find h1 em{ font-style:normal; color:var(--eh-accent-dk); }
.eh-hero-find .eh-eyebrow{ color:var(--eh-ink-70); background:#fff; border:1px solid var(--eh-line); }
.eh-hero-find .eh-hero-sub{ color:var(--eh-ink-70); text-shadow:none; max-width:52ch; margin-bottom:20px; }

/* ── the search ─────────────────────────────────────────────────────────── */
.eh-find{ background:#fff; border:1px solid #252525; border-radius:16px;
	box-shadow:0 4px 12px rgba(16,16,16,.05), 0 22px 44px rgba(16,16,16,.08); overflow:hidden; }
.eh-find-r{ position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden;
	clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap; border:0; }
/* Flat row, hairline under it, the live tab marked by a rule in the accent.
   A raised white tab on a cream strip was arguing with the box edge. */
.eh-find-tabs{ display:flex; background:#fff; border-bottom:1px solid #252525; }
.eh-find-tab{ flex:1; position:relative; text-align:center; padding:14px 16px; cursor:pointer;
	font-size:14.5px; font-weight:600; color:#333; background:transparent;
	transition:color .15s ease; }
.eh-find-tab:hover{ color:var(--eh-ink); background:var(--eh-cream, #f9f6f1); }
#eh-find-ask:checked ~ .eh-find-tabs label[for="eh-find-ask"],
#eh-find-filter:checked ~ .eh-find-tabs label[for="eh-find-filter"]{ background:#252525; color:#fff; }
.eh-find-r:focus-visible ~ .eh-find-tabs label{ outline:2px solid var(--eh-accent); outline-offset:-2px; }

.eh-find-pane{ display:none; padding:18px; }
/* the site button is display type — at this size, in a form, it reads better
   as a sentence than as a shout */
.eh-find .eh-btn{ text-transform:none; letter-spacing:0; font-size:15px; font-weight:600; padding:13px 26px; }
#eh-find-ask:checked ~ .eh-pane-ask,
#eh-find-filter:checked ~ .eh-pane-filter{ display:block; }

/* describe it */
.eh-ask-form textarea{
	width:100%; box-sizing:border-box; resize:vertical; min-height:78px;
	font-family:inherit; font-size:16px; line-height:1.5; color:var(--eh-ink);
	border:1.5px solid var(--eh-line); border-radius:12px; padding:13px 15px; background:#fff;
}
.eh-ask-form textarea::placeholder{ color:var(--eh-ink-30); }
.eh-ask-form textarea:focus{ outline:2px solid var(--eh-accent); outline-offset:1px; border-color:var(--eh-accent); }
.eh-ask-go{ display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; margin-top:12px; }
.eh-ask-hint{ margin:0; font-size:12.5px; line-height:1.5; color:#333; flex:1; min-width:180px; }

/* filter it */
.eh-filter-fields{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.eh-filter-f{ display:flex; flex-direction:column; gap:4px; min-width:0; }
.eh-filter-f label{ font-size:10.5px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--eh-ink-30); }
.eh-filter-f select{
	width:100%; box-sizing:border-box; font-family:inherit; font-size:14.5px; color:var(--eh-ink);
	border:1.5px solid var(--eh-line); border-radius:10px; padding:11px 34px 11px 13px; background:#fff;
	appearance:none; -webkit-appearance:none;
	background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23b86c3c'%3E%3Cpath d='M8 11.2 2.8 6l1.1-1.1L8 9l4.1-4.1L13.2 6z'/%3E%3C/svg%3E");
	background-repeat:no-repeat; background-position:right 12px center; background-size:15px;
}
.eh-filter-f select:focus{ outline:2px solid var(--eh-accent); outline-offset:1px; border-color:var(--eh-accent); }
.eh-filter-form .eh-btn-full{ margin-top:12px; }

/* ── the routes people ask for by name ──────────────────────────────────── */
.eh-find-quick{ display:flex; flex-wrap:wrap; align-items:center; gap:7px; margin-top:18px; }
.eh-find-quick-lbl{ font-size:10.5px; font-weight:700; letter-spacing:.11em; text-transform:uppercase; color:#333; margin-right:4px; }
.eh-find-quick a{ display:inline-flex; align-items:center; gap:7px; padding:7px 14px;
	border:1.5px solid var(--eh-line); border-radius:100px; background:#fff;
	font-size:13.5px; color:#333; text-decoration:none; }
.eh-find-quick a:hover{ border-color:var(--eh-accent); color:var(--eh-accent-dk); }
.eh-find-quick a b{ font-size:12px; font-weight:700; color:#333; font-variant-numeric:tabular-nums; }
.eh-find-quick a:hover b{ color:var(--eh-accent-dk); }

/* ── the founder, where the photograph used to be ───────────────────────── */
.eh-find-side{ background:#fff; border:1px solid var(--eh-line); border-radius:16px; padding:20px; }
.eh-side-who{ display:flex; align-items:center; gap:12px; }
.eh-side-av{ width:52px; height:52px; border-radius:50%; object-fit:cover; flex:none; display:block; }
.eh-side-av-ph{ background:linear-gradient(150deg,#c99a6b,#8d5f38); }
.eh-side-who b{ display:block; font-size:15px; font-weight:700; letter-spacing:-.01em; }
.eh-side-who small{ font-size:12px; color:var(--eh-ink-50); line-height:1.4; display:block; }
.eh-side-list{ list-style:none; margin:16px 0 0; padding:0; display:flex; flex-direction:column; gap:9px; }
.eh-side-list li{ position:relative; padding-left:21px; font-size:13.5px; line-height:1.45; color:var(--eh-ink-70); }
.eh-side-list li::before{ content:''; position:absolute; left:0; top:6px; width:10px; height:5px;
	border-left:2px solid var(--eh-accent); border-bottom:2px solid var(--eh-accent); transform:rotate(-45deg); }
.eh-side-wa{ display:flex; align-items:center; justify-content:center; gap:9px; margin-top:18px;
	padding:12px 16px; border-radius:100px; background:#25a866; color:#fff !important;
	font-size:14px; font-weight:600; text-decoration:none; }
.eh-side-wa:hover{ background:#1f9257; color:#fff !important; }
.eh-side-wa svg{ width:17px; height:17px; fill:currentColor; flex:none; }

/* ── tablet ─────────────────────────────────────────────────────────────── */

/* ── tablet: 80px of air is a desktop measure here. The ceiling is 1024 so
   it catches a landscape iPad, whose 768-tall screen is the tightest case
   on the site — the hero was taking 79% of it. ── */
@media (max-width:1024px){
	.eh-find-grid{ padding-block:60px; }
}

/* ── phone ──────────────────────────────────────────────────────────────── */
@media (max-width:640px){
	.eh-find-grid{ padding-block:40px; gap:20px; }
	.eh-hero-find h1{ max-width:none; }
	.eh-hero-find .eh-hero-sub{ margin-bottom:16px; }
	.eh-find-tab{ padding:10px 8px; font-size:13px; }
	.eh-find-pane{ padding:14px; }
	.eh-ask-form textarea{ font-size:16px; min-height:88px; } /* 16px or iOS zooms the page in */
	.eh-ask-go .eh-btn{ flex:1 1 100%; }
	.eh-filter-fields{ grid-template-columns:1fr; }
	.eh-find-quick{ margin-top:14px; gap:6px; }
	.eh-find-quick-lbl{ flex:1 1 100%; margin-bottom:2px; }
	.eh-find-side{ padding:16px; }
}

@media (prefers-reduced-motion:reduce){ .eh-find-tab{ transition:none; } }
