/* ds-allow-hardcode:start - layout and shadow values come from the ChatGPT ficha (CHATGPT-2.md), scoped to .ajt-home; colours are tokens. */
/* AJT home (Entrega 2). Loaded only on "/" after ajt-theme.css. Everything scoped to .ajt-home.
   Values from oficina/MEMORIA/CHATGPT-2.md (PROVISIONAL). To revert: remove the <link> in includes/partials/header-shared.php. */
.ajt-home {
    --h-table-fs: 14px; --h-white: #fff; --h-star: #F7C948; --h-strip-bg: #F5FBF8; --h-faq-bg: #F7FCF9;
    --h-wave: 56px; --h-pad: 72px; --h-gap: 24px;
    --h-card-shadow: 0 12px 28px rgba(8, 36, 29, 0.10);
    /* Gradients: B (linear to brand green) was chosen by the owner (Junta 9). Palette tokens only. */
    --grad-rev: linear-gradient(160deg, var(--ajt-dark-2) 0%, var(--ajt-dark-1) 38%, var(--ajt-deep) 68%, var(--ajt-brand) 130%);
    --grad-close: linear-gradient(200deg, var(--ajt-dark-2) 0%, var(--ajt-dark-1) 45%, var(--ajt-deep) 80%, var(--ajt-brand) 135%);
    --h-line: 1px solid rgba(15, 81, 50, 0.10);
    background: var(--ajt-cream); color: var(--ajt-text);
    font-family: var(--ajt-font); font-weight: 500; font-size: 16px; line-height: 1.6;
}
.ajt-home * { box-sizing: border-box; }
.ajt-home h1, .ajt-home h2, .ajt-home h3 { font-family: var(--ajt-font); color: inherit; margin: 0; letter-spacing: 0; text-transform: none; line-height: 1.15; }
.ajt-home h1 { font-size: 40px; font-weight: 800; }
.ajt-home h2 { font-size: 30px; font-weight: 700; margin-bottom: 16px; }
.ajt-home h3 { font-size: 22px; font-weight: 700; }
:where(.ajt-home) p { margin: 0 0 12px; color: inherit; max-width: none; }
.ajt-home ul, .ajt-home ol { list-style: none; margin: 0; padding: 0; }
:where(.ajt-home) a { color: var(--ajt-deep); }
:where(.ajt-home) img { display: block; max-width: 100%; height: auto; }
.ajt-home a:focus-visible, .ajt-home summary:focus-visible { outline: 3px solid var(--ajt-brand); outline-offset: 2px; }
.ajt-wrap { width: 100%; max-width: 1280px; margin: 0 auto; padding: 0 16px; }
.ajt-wrap--mid { max-width: 1120px; }
.ajt-small { font-size: 13px; color: var(--ajt-soft-text); }
.ajt-small-light { font-size: 13px; color: rgba(255, 255, 255, 0.86); margin: 14px 0 0; }
.ajt-intro { color: var(--ajt-soft-text); max-width: 60ch; }
.ajt-lead { font-size: 18px; max-width: 34ch; }
.ajt-home .ajt-textlink { display: inline-flex; align-items: center; min-height: 44px; font-weight: 700; }

/* Buttons: reuse .ajt-btn from ajt-theme.css */
.ajt-home .ajt-btn { text-decoration: none; }
.ajt-home .ajt-btn:not(.ajt-btn--secondary) { color: var(--h-white); }
.ajt-home .ajt-btn--secondary { color: var(--ajt-brand); }
.ajt-home .ajt-btn--light { color: var(--h-white); border-color: var(--h-white); }
.ajt-home .ajt-btn--light:hover { background: rgba(255, 255, 255, 0.14); }
.ajt-home .ajt-btn:focus-visible { outline: 3px solid var(--ajt-water); outline-offset: 2px; box-shadow: 0 0 0 5px var(--ajt-brand); }
.ajt-hero a:focus-visible, .ajt-reviews a:focus-visible, .ajt-close a:focus-visible { outline-color: var(--ajt-water); }
.ajt-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 20px; }

/* Sections: each one paints its OWN crest upward (over the end of the previous one) with its OWN --bg.
   No section knows its neighbour, so the order can change freely (ARQUITECTO-orden.md).
   Rule: a section's --w-top must be <= the --p-bot of the one before (mobile 36px, desktop 56px max).
   Variables: --bg colour, --bg-img optional gradient, --w-top crest height, --p-top/--p-bot padding,
   --deco-edge optional foliage SVG (aspect-ratio box: --deco-top, --deco-shift -100% = rises over the previous section, 0 = hangs down). */
.ajt-sec { --bg: var(--ajt-cream); --bg-img: none; --w-top: 0px; --p-top: 24px; --p-bot: 24px; --deco-edge: none; position: relative; isolation: isolate; margin-top: calc(-1 * var(--w-top)); padding: calc(var(--p-top) + var(--w-top)) 0 var(--p-bot); background: none; overflow-x: clip; }
.ajt-sec::before { content: ""; position: absolute; inset: 0 -10% 0; z-index: 0; background: var(--pat, none), var(--bg-img), var(--bg); -webkit-mask: url(../img/deco/wave-crest.svg) 0 0 / 100% var(--w-top) no-repeat, linear-gradient(#000, #000) 0 calc(var(--w-top) - 1px) / 100% calc(100% - var(--w-top) + 1px) no-repeat; mask: url(../img/deco/wave-crest.svg) 0 0 / 100% var(--w-top) no-repeat, linear-gradient(#000, #000) 0 calc(var(--w-top) - 1px) / 100% calc(100% - var(--w-top) + 1px) no-repeat; }
.ajt-sec::after { content: ""; position: absolute; left: 0; right: 0; top: var(--deco-top, 0px); aspect-ratio: var(--deco-ar, 390 / 96); transform: translateY(var(--deco-shift, 0%)); z-index: 0; pointer-events: none; background: var(--deco-edge) 0 0 / 100% 100% no-repeat; }
.ajt-sec > .ajt-wrap { position: relative; z-index: 1; }
.ajt-hero    { --bg: var(--ajt-dark-2); color: var(--h-white); --p-top: 88px; --p-bot: 56px; }
.ajt-tours   { --bg: var(--ajt-cream); --pat: url(../img/deco/pat-waves-cream.svg); --w-top: 36px; --p-top: 32px; --p-bot: 72px; }
.ajt-strip   { --bg: var(--ajt-water); --bg-img: radial-gradient(ellipse 60% 140% at 15% 0%, rgba(18, 128, 74, 0.22) 0%, rgba(18, 128, 74, 0) 70%), radial-gradient(ellipse 50% 120% at 95% 100%, rgba(255, 255, 255, 0.85) 0%, rgba(255, 255, 255, 0) 70%); --w-top: 24px; --p-top: 16px; --p-bot: 40px; scroll-margin-top: calc(var(--ajt-header-h) + 8px); }
.ajt-steps   { --bg: var(--ajt-cream); --pat: url(../img/deco/pat-dots-cream.svg); --w-top: 24px; --p-top: 32px; --p-bot: 56px; }
.ajt-reviews { --bg: var(--ajt-dark-1); --pat: url(../img/deco/pat-waves-dark.svg); --bg-img: var(--grad-rev); color: var(--h-white); --w-top: 36px; --p-top: 40px; --p-bot: 64px; }
.ajt-faq     { --bg: var(--ajt-cream); --pat: url(../img/deco/pat-rings-cream.svg); --w-top: 36px; --p-top: 40px; --p-bot: 64px; }
.ajt-offices { --bg: var(--ajt-water); --pat: url(../img/deco/pat-diamonds-water.svg); --w-top: 36px; --p-top: 32px; --p-bot: 56px; }
.ajt-close   { --bg: var(--ajt-dark-2); --pat: url(../img/deco/pat-diamonds-dark.svg); --bg-img: var(--grad-close); color: var(--h-white); --w-top: 36px; --p-top: 40px; --p-bot: 120px; }
.ajt-reviews a, .ajt-close a { color: var(--h-white); }

/* 1. Hero */
.ajt-hero { min-height: 560px; display: flex; align-items: center; }
.ajt-hero__img { position: absolute; z-index: 1; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 12% center; }
.ajt-hero__shade { position: absolute; z-index: 2; inset: 0; background: linear-gradient(180deg, rgba(8, 36, 29, 0.72) 0%, rgba(8, 36, 29, 0.44) 38%, rgba(8, 36, 29, 0.58) 100%); }
.ajt-sec > .ajt-hero__content, .ajt-hero__content { position: relative; z-index: 3; }
.ajt-hero__content h1 { max-width: 14ch; margin-bottom: 16px; }
.ajt-home .ajt-stars { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; margin-top: 14px; color: var(--h-white); font-weight: 700; text-decoration: none; }
.ajt-stars:hover span:last-child { text-decoration: underline; }
.ajt-stars__icons { color: var(--h-star); letter-spacing: 2px; font-size: 18px; }

/* 2. Strip */
.ajt-strip__head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.ajt-strip__head h2 { font-size: 22px; margin: 0 0 12px; }
.ajt-strip__head a { font-weight: 700; display: inline-flex; align-items: center; min-height: 44px; }
.ajt-strip__item { display: grid; gap: 2px; height: 100%; padding: 14px 18px; background: var(--h-strip-bg); border: var(--h-line); border-radius: 20px; color: var(--ajt-text); text-decoration: none; }
.ajt-strip__item strong { color: var(--ajt-deep); font-size: 16px; }
.ajt-strip__item span { font-size: 14px; }
.ajt-strip__item small { font-size: 13px; color: var(--ajt-soft-text); }
.ajt-strip__item:hover { border-color: var(--ajt-brand); }

/* Mobile carousel: scroll inside the list only, never the page */
.ajt-scroll { display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding: 0 16px; padding: 4px 16px 16px; margin: 0 -16px; -webkit-overflow-scrolling: touch; }
.ajt-scroll > li { flex: 0 0 80%; scroll-snap-align: start; }

/* 3. Cards */
.ajt-card { height: 100%; background: var(--h-white); border: var(--h-line); border-radius: 24px; box-shadow: var(--h-card-shadow); overflow: hidden; display: flex; flex-direction: column; transition: transform 160ms ease; }
.ajt-card:hover { transform: translateY(-4px); }
.ajt-card__media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.ajt-card__body { padding: 20px; display: flex; flex-direction: column; gap: 4px; flex: 1; }
.ajt-card__body h3 a { color: var(--ajt-text); text-decoration: none; }
.ajt-card__body h3 a:hover { color: var(--ajt-brand); }
.ajt-tag { font-size: 13px; font-weight: 700; color: var(--ajt-deep); text-transform: uppercase; letter-spacing: 0.04em; margin: 0; }
.ajt-price { font-weight: 800; color: var(--ajt-deep); margin: 4px 0 8px !important; }
.ajt-groupline { margin: 20px 0 0; font-weight: 600; }
.ajt-groupline a { display: inline-flex; align-items: center; min-height: 44px; }
.ajt-card__body h3 a { display: inline-flex; align-items: center; min-height: 44px; }
.ajt-price-note { font-size: 14px; color: var(--ajt-soft-text); margin: 0 0 12px !important; }

/* Payment band (first thing inside the tours section) */
.ajt-home .ajt-pay { display: grid; gap: 8px; margin: 28px 0 0; }
.ajt-pay__item { display: grid; gap: 2px; background: var(--h-white); border: var(--h-line); border-radius: 16px; padding: 10px 14px; box-shadow: var(--h-card-shadow); }
.ajt-pay__item strong { font-size: 16px; color: var(--ajt-deep); }
.ajt-pay__item span { font-size: 14px; color: var(--ajt-soft-text); line-height: 1.4; }
.ajt-card .ajt-btn { align-self: stretch; text-align: center; }
.ajt-options { display: flex; flex-wrap: wrap; gap: 0 14px; margin-top: 4px; }
.ajt-options a { display: inline-flex; align-items: center; min-height: 44px; font-weight: 700; font-size: 15px; }
.ajt-strip__text { max-width: 60ch; }

/* 4. Steps */
.ajt-steps__list { display: grid; gap: var(--h-gap); }
.ajt-steps__list li { background: var(--h-white); border: var(--h-line); border-radius: 22px; padding: 20px; }
.ajt-steps__num { display: inline-grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--ajt-brand); color: var(--h-white); font-weight: 800; margin-bottom: 10px; }
.ajt-steps__list h3 { font-size: 20px; margin-bottom: 6px; }

/* 5. Reviews */
.ajt-reviews__grid { display: grid; gap: 28px; }
.ajt-reviews__list { display: grid; gap: 16px; }
.ajt-review-card { background: var(--h-white); color: var(--ajt-text); border-radius: 22px; padding: 22px; box-shadow: 0 10px 24px rgba(8, 36, 29, 0.12); }
.ajt-review-card h3 { margin-bottom: 6px; }
.ajt-review-card .ajt-btn { margin-top: 6px; }
.ajt-review-card blockquote { margin: 0 0 12px; padding: 0; border: 0; font: inherit; font-size: 1.05rem; line-height: 1.55; font-style: normal; }
.ajt-review-card p small { opacity: .75; }

/* 6. FAQ */
.ajt-faq__grid { display: grid; gap: 32px; }
.ajt-faq__list { display: grid; gap: 12px; }
.ajt-faq details { background: var(--h-faq-bg); border: 1px solid rgba(15, 81, 50, 0.12); border-radius: 18px; padding: 0 18px; }
.ajt-faq summary { cursor: pointer; font-weight: 700; padding: 14px 0; min-height: 44px; list-style-position: outside; }
.ajt-faq details[open] summary { color: var(--ajt-deep); }
.ajt-faq details p { padding-bottom: 6px; color: var(--ajt-soft-text); }
.ajt-faq__photo img { width: 100%; max-width: 420px; margin: 0 auto; aspect-ratio: 1 / 1; object-fit: cover; border-radius: 58% 42% 52% 48% / 46% 54% 46% 54%; }

/* 7. Offices */
.ajt-offices__list { display: grid; gap: var(--h-gap); }
.ajt-office { background: var(--h-white); border: var(--h-line); border-radius: 22px; box-shadow: 0 10px 24px rgba(8, 36, 29, 0.08); overflow: hidden; }
.ajt-office img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.ajt-office__body { padding: 18px 20px; }
.ajt-office__body p { margin-bottom: 4px; }
.ajt-office__body a { display: inline-flex; align-items: center; min-height: 44px; font-weight: 700; }

/* 8. Close */
.ajt-close__grid { display: grid; gap: 28px; }
.ajt-close__guides h3 { font-size: 18px; margin-bottom: 8px; }
.ajt-close__guides a { display: inline-flex; align-items: center; min-height: 44px; }

@media (min-width: 768px) {
    .ajt-home { font-size: 18px; }
    .ajt-wrap { padding: 0 24px; }
    .ajt-home h1 { font-size: 56px; }
    .ajt-home h2 { font-size: 36px; }
    .ajt-home h3 { font-size: 26px; }
    .ajt-hero { min-height: 640px; --p-top: 120px; --p-bot: 96px; }
    .ajt-hero__img { object-position: center; }
    .ajt-hero__shade { background: linear-gradient(90deg, rgba(8, 36, 29, 0.78) 0%, rgba(8, 36, 29, 0.54) 38%, rgba(8, 36, 29, 0) 72%); }
    .ajt-tours { --w-top: 84px; --p-top: 40px; --p-bot: 96px; }
    .ajt-strip { --w-top: 32px; --p-top: 24px; --p-bot: 40px; }
    .ajt-steps { --w-top: 32px; --p-top: 40px; --p-bot: 96px; }
    .ajt-reviews { --w-top: 84px; --p-top: 48px; --p-bot: 96px; }
    .ajt-faq { --w-top: 84px; --p-top: 56px; --p-bot: 96px; }
    .ajt-offices { --w-top: 84px; --p-top: 40px; --p-bot: 96px; }
    .ajt-close { --w-top: 84px; --p-top: 56px; --p-bot: 120px; }
    .ajt-scroll { display: grid; overflow: visible; padding: 4px 0 0; margin: 0; gap: var(--h-gap); }
    .ajt-scroll > li { flex: none; }
    .ajt-home .ajt-pay { grid-template-columns: repeat(3, 1fr); gap: var(--h-gap); }
    .ajt-cards { grid-template-columns: repeat(3, 1fr); }
    .ajt-steps__list { grid-template-columns: repeat(4, 1fr); }
    .ajt-reviews__grid { grid-template-columns: 1fr 1fr; align-items: center; }
    .ajt-faq__grid { grid-template-columns: 7fr 5fr; align-items: center; }
    .ajt-offices__list { grid-template-columns: 1fr 1fr; }
    .ajt-close__grid { grid-template-columns: 1.4fr 1fr; align-items: center; }
}
@media (min-width: 1024px) {
    .ajt-home h1 { font-size: 64px; }
    .ajt-home h2 { font-size: 40px; }
    .ajt-home h3 { font-size: 28px; }
}
/* Plan page (/leticia-travel-guide/): numbered short sections over the same .ajt-sec crests. Data: includes/data/plan-data.php */
.ajt-plan--cream { --bg: var(--ajt-cream); --pat: url(../img/deco/pat-dots-cream.svg); }
.ajt-plan--water { --bg: var(--ajt-water); --pat: url(../img/deco/pat-diamonds-water.svg); }
.ajt-plan { --w-top: 36px; --p-top: 32px; --p-bot: 72px; }
.ajt-plan__head { display: flex; align-items: center; gap: 14px; margin-bottom: 16px; }
.ajt-plan__head .ajt-steps__num { margin-bottom: 0; flex: none; }
.ajt-plan__head h2 { margin: 0; font-size: 26px; }
.ajt-plan__lead { font-size: 18px; max-width: 60ch; margin-bottom: 28px; }
.ajt-plan__photo { margin: 0 0 28px; }
.ajt-plan__photo img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 22px; box-shadow: var(--h-card-shadow); }
.ajt-plan--costs h2 { margin-bottom: 8px; }
.ajt-plan--costs .ajt-plan__card h3 a { display: inline-flex; align-items: center; min-height: 44px; color: var(--ajt-text); text-decoration: none; }
.ajt-plan--costs .ajt-plan__card .ajt-price { margin: 0 0 4px !important; }
.ajt-pay--plans { margin-top: 24px; }
.ajt-plan__terms { margin-top: 24px; }
.ajt-plan__terms ul { margin: 8px 0 0; padding-left: 20px; list-style: disc; }
.ajt-plan__terms li { margin: 6px 0; font-size: 16px; color: var(--ajt-soft-text); }
.ajt-plan__note { margin: 20px 0 0; font-weight: 700; color: var(--ajt-deep); }
.ajt-plan__cards { display: grid; gap: 14px; }
.ajt-plan__card { background: var(--h-white); border: var(--h-line); border-radius: 22px; padding: 18px 20px; box-shadow: var(--h-card-shadow); }
.ajt-plan__card h3 { font-size: 20px; margin-bottom: 6px; }
.ajt-plan__card p { font-size: 16px; margin: 0; color: var(--ajt-soft-text); }
.ajt-plan__links { display: flex; flex-wrap: wrap; gap: 0 24px; margin: 12px 0 0; }
.ajt-plan-hero { min-height: 0; }
.ajt-plan-hero .ajt-hero__content h1 { max-width: 20ch; }
.ajt-tag--light { color: var(--h-white); margin-bottom: 8px; }
.ajt-plan-hero .ajt-actions { margin-bottom: 40px; }
.ajt-plan-hero__guide { margin: 4px 0 0; }
.ajt-plan-hero__guide a { color: var(--h-white); }
.ajt-facts { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 0; max-width: 760px; }
.ajt-facts li { background: rgba(255, 255, 255, 0.14); border: 1px solid rgba(255, 255, 255, 0.32); border-radius: 16px; padding: 10px 14px; display: grid; gap: 2px; }
.ajt-facts small { font-size: 12px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: rgba(255, 255, 255, 0.86); }
.ajt-facts strong { font-size: 16px; }
.ajt-faq--water { --bg: var(--ajt-water); --pat: url(../img/deco/pat-diamonds-water.svg); }
.ajt-close .ajt-wrap--mid { max-width: 760px; }
@media (min-width: 768px) {
    .ajt-plan { --w-top: 84px; --p-top: 40px; --p-bot: 96px; }
    .ajt-plan__head h2 { font-size: 32px; }
    .ajt-plan__cards { grid-template-columns: repeat(3, 1fr); gap: var(--h-gap); }
    .ajt-plan__photo img { aspect-ratio: 21 / 8; }
    .ajt-facts { grid-template-columns: repeat(4, 1fr); }
}
/* Floating WhatsApp: smaller on phones so it does not cover photos */
@media (max-width: 767px) { .ajt-wa-float { width: 48px; height: 48px; right: 12px; bottom: 12px; } .ajt-wa-float svg { width: 26px; height: 26px; } }
@media (prefers-reduced-motion: reduce) { .ajt-card { transition: none; } .ajt-card:hover { transform: none; } }
/* Options hub (2/3/4 day "options" pages): two formats side by side + useful content. Template: includes/tours/duration-hub-ajt.php */
.ajt-hub--cream { --bg: var(--ajt-cream); --pat: url(../img/deco/pat-dots-cream.svg); }
.ajt-hub--water { --bg: var(--ajt-water); --pat: url(../img/deco/pat-diamonds-water.svg); }
.ajt-faq--cream { --bg: var(--ajt-cream); --pat: url(../img/deco/pat-dots-cream.svg); }
.ajt-hub { --w-top: 36px; --p-top: 32px; --p-bot: 72px; }
.ajt-hub h2 { margin-bottom: 8px; }
.ajt-sr { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.ajt-hub__chips { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; list-style: none; }
.ajt-hub__chips li { padding: 6px 14px; border: 1px solid rgba(255, 255, 255, 0.4); border-radius: 999px; background: rgba(255, 255, 255, 0.14); font-size: 14px; font-weight: 600; }
.ajt-hub__opts { display: grid; gap: 20px; }
.ajt-hub__opt .ajt-card__media img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.ajt-fit { margin: 6px 0 4px; padding: 8px 12px; border-radius: 12px; background: var(--ajt-water); color: var(--ajt-deep); font-weight: 700; font-size: 15px; }
.ajt-hub__facts { margin: 4px 0 8px; padding-left: 20px; list-style: disc; font-size: 16px; }
.ajt-hub__facts li { margin: 4px 0; }
.ajt-hub__acts { display: flex; flex-wrap: wrap; gap: 10px; margin-top: auto; padding-top: 8px; }
.ajt-hub__acts .ajt-btn { flex: 1 1 150px; text-align: center; }
/* 4 day options page (Junta 21): the two decisions are visible. Chips = when it starts / when it ends; row labels = how it ends; column labels = how it starts. */
.ajt-hub__when { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 8px; padding: 0; list-style: none; }
.ajt-hub__when li { padding: 4px 12px; border-radius: 999px; background: var(--ajt-water); color: var(--ajt-deep); border: 1px solid var(--ajt-brand); font-size: 14px; font-weight: 700; }
.ajt-hub__rowlabel { grid-column: 1 / -1; margin: 12px 0 0; font-size: 22px; color: var(--ajt-deep); }
.ajt-hub__rowlabel:first-child, .ajt-hub__cols + .ajt-hub__rowlabel { margin-top: 0; }
.ajt-hub__cols { display: none; margin: 0; }
.ajt-hub__note--top { margin: 0 0 16px; }
.ajt-hub__table td { white-space: nowrap; }
.ajt-hub__help { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.ajt-hub__help a { display: block; min-height: 44px; padding: 16px 18px; border: 2px solid var(--ajt-water); border-radius: 18px; background: var(--h-white); color: var(--ajt-text); text-decoration: none; }
.ajt-hub__help a:hover, .ajt-hub__help a:focus-visible { border-color: var(--ajt-brand); }
.ajt-hub__help strong { display: block; color: var(--ajt-deep); font-size: 18px; }
.ajt-hub__help span { font-size: 15px; color: var(--ajt-soft-text); }
.ajt-hub__tables { display: grid; gap: 20px; margin-top: 12px; }
.ajt-hub__tablewrap { overflow-x: auto; }
.ajt-hub__table { width: 100%; border-collapse: separate; border-spacing: 0; background: var(--h-white); border: var(--h-line); border-radius: 18px; overflow: hidden; font-size: 15px; }
.ajt-hub__table th, .ajt-hub__table td { padding: 11px 14px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--ajt-water); }
.ajt-hub__table thead th { background: var(--ajt-water); color: var(--ajt-deep); }
.ajt-hub__table tbody th { font-weight: 700; }
.ajt-hub__table tr:last-child > * { border-bottom: 0; }
@media (max-width: 767px) { .ajt-hub__table { font-size: 13px; } .ajt-hub__table th, .ajt-hub__table td { padding: 9px 5px; } .ajt-hub__table th:first-child, .ajt-hub__table td:first-child { padding-left: 9px; } }
.ajt-hub__note { margin: 14px 0 0; padding: 12px 16px; border-radius: 14px; background: var(--h-white); border: var(--h-line); font-size: 16px; font-weight: 700; color: var(--ajt-deep); }
.ajt-hub__includes { margin: 12px 0 0; font-size: 16px; color: var(--ajt-text); }
.ajt-hub__before { grid-template-columns: 1fr; }
.ajt-hub__privacy { margin: 14px 0 0; font-size: 14px; color: var(--ajt-on-dark-soft); }
.ajt-hub__privacy a { color: var(--ajt-water); }
@media (min-width: 768px) { .ajt-hub__before { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 768px) {
    .ajt-hub { --w-top: 84px; --p-top: 40px; --p-bot: 96px; }
    .ajt-hub__opts { grid-template-columns: repeat(2, 1fr); gap: var(--h-gap); }
    .ajt-hub__cols { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--h-gap); font-size: 15px; font-weight: 800; color: var(--ajt-soft-text); text-transform: uppercase; letter-spacing: .04em; }
    .ajt-hub__help { grid-template-columns: repeat(3, 1fr); gap: var(--h-gap); }
    .ajt-hub__tables { grid-template-columns: 1fr 1fr; align-items: start; }
}
/* ds-allow-hardcode:end */

/* ---------- Route page (2 day tour): blocks around the animated map ---------- */
.ajt-route-page .ajt-route-callout { margin: 1.5rem 0 0; padding: 1.25rem 1.4rem; border-radius: 18px; background: #fff; border: 1px solid rgba(15, 81, 50, .16); }
.ajt-route-page .ajt-route-callout h3 { margin: 0 0 .4rem; font-size: 1.1rem; color: var(--ajt-deep); }
.ajt-route-page .ajt-route-callout p { margin: 0 0 .75rem; color: var(--ajt-text); }
.ajt-route-page .ajt-route-list { margin: 1rem 0 0; padding: 0; list-style: none; display: grid; gap: .55rem; }
.ajt-route-page .ajt-route-list li { position: relative; padding-left: 1.6rem; color: var(--ajt-text); }
.ajt-route-page .ajt-route-list li::before { content: ""; position: absolute; left: 0; top: .5em; width: .7rem; height: .7rem; border-radius: 50%; background: var(--ajt-brand); }
.ajt-route-page .ajt-route-sub { margin: 2rem 0 0; font-size: 1.25rem; color: var(--ajt-deep); }
.ajt-route-page .ajt-actions + h2, .ajt-route-page .ajt-route-list + h2 { margin-top: 2.5rem; } /* day-tour pages: "What is included" and "Times" headings were glued to the button / list above */
.ajt-route-page .ajt-route-gallery { display: flex; gap: 1rem; margin: 1.25rem 0; padding: 0 0 .5rem; list-style: none; overflow-x: auto; scroll-snap-type: x mandatory; }
.ajt-route-page .ajt-route-gallery li { flex: 0 0 min(80vw, 340px); scroll-snap-align: start; }
.ajt-route-page .ajt-route-gallery img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 16px; }
.ajt-route-page .ajt-route-gallery figcaption { margin-top: .4rem; font-weight: 600; color: var(--ajt-deep); }
.ajt-route-page .ajt-route-summary th, .ajt-route-page .ajt-route-summary td { vertical-align: top; text-align: left; }
/* Itinerary table (every route tour): equal day columns and text that wraps to the next line; the nowrap of the options tables must not reach it. */
.ajt-route-page .ajt-route-summary { table-layout: fixed; }
.ajt-route-page .ajt-route-summary td { white-space: normal; overflow-wrap: break-word; line-height: 1.45; }
.ajt-route-page .ajt-route-summary thead th:first-child, .ajt-route-page .ajt-route-summary tbody th { width: 6.5rem; }
@media (min-width: 900px) { .ajt-route-page .ajt-route-gallery { overflow: visible; } .ajt-route-page .ajt-route-gallery li { flex: 1 1 0; } }

/* ---------- Booking form v2 on the route page (extra pieces; base look = styles.css) ---------- */
.ajt-route-booking { padding: 2.5rem 1rem 3.5rem; }
.ajt-route-booking .ajt-tour-booking-pay { margin: 1rem 0; padding: .8rem 1rem; border-radius: 12px; border: 1px solid var(--ajt-green, #12804a); background: var(--ajt-cream, #fff8ed); color: var(--ajt-text); font-size: .95rem; }
.ajt-route-booking .ajt-tour-booking-consent label { display: flex; gap: .6rem; align-items: flex-start; min-height: 44px; text-transform: none; letter-spacing: 0; font-weight: 500; }
.ajt-route-booking .ajt-tour-booking-consent input { width: 20px; height: 20px; flex: none; margin-top: .15rem; }
.ajt-route-booking .ajt-tour-booking-privacy { margin: .4rem 0 0; font-size: .85rem; line-height: 1.5; color: var(--ajt-muted, #4a5a50); }
/* Radios and checkbox: the whole row is the touch target (44 px or more), not just the 18-20 px control. */
.ajt-route-booking .ajt-tour-booking-option__choice { position: relative !important; min-height: 56px !important; }
.ajt-route-booking .ajt-tour-booking-option__label { min-height: 44px; display: flex !important; align-items: center; }
.ajt-route-booking .ajt-tour-booking-option__label::after { content: ""; position: absolute; inset: 0; cursor: pointer; }
.ajt-route-booking .ajt-tour-booking-consent label { position: relative; padding-block: .35rem; }
.ajt-route-booking ::placeholder { color: var(--ajt-text); opacity: .65; }

/* ---------- Fixed bar on phones: price from + Reserve (partials/sticky-booking-bar.php) ---------- */
.ajt-sticky-bar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 55; display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .6rem 1rem calc(.6rem + env(safe-area-inset-bottom)); background: #fff; border-top: 1px solid rgba(15, 81, 50, .18); box-shadow: 0 -6px 18px rgba(6, 36, 22, .12); transition: transform .2s ease; }
.ajt-sticky-bar.is-hidden { transform: translateY(110%); visibility: hidden; }
.ajt-sticky-bar__price { margin: 0; line-height: 1.25; color: var(--ajt-text); font-size: .85rem; }
.ajt-sticky-bar__price strong { display: block; font-size: 1.05rem; color: var(--ajt-deep); }
.ajt-sticky-bar .ajt-btn { flex: none; min-height: 44px; }
body:has(.ajt-sticky-bar:not(.is-hidden)) .ajt-wa-float { bottom: 84px; }
.ajt-route-page { padding-bottom: 72px; }
@media (min-width: 900px) { .ajt-sticky-bar { display: none; } .ajt-route-page { padding-bottom: 0; } }
/* Phone: the "Skip the map" pill and the last lines of each map card sit above the fixed price bar, not behind it. */
@media (max-width: 899px) {
    .ajt-route-page { --fixed-bar-h: 72px; --fixed-stack: calc(var(--fixed-bar-h) + 12px); } /* alto de la barra fija + 12 px */
        body:has(.ajt-sticky-bar) .story--multi:has(.story__skip) .stop { padding-bottom: 9rem; }
}
/* Phone: the floating WhatsApp button (48 px + 12 px margin) must not sit on top of the last hero button: the buttons leave its column free. */
@media (max-width: 767px) {
    .ajt-route-page { --wa-float-room: 64px; }
    .ajt-route-page .ajt-plan-hero .ajt-actions { padding-right: var(--wa-float-room); }
    .ajt-route-page .ajt-plan-hero .ajt-actions { gap: 8px 10px; }
    .ajt-route-page .ajt-plan-hero .ajt-actions [data-hero-route] { display: none; } /* the route follows right below the hero */
}

/* Itinerary table: one column per day, each at a readable width; on phones the table scrolls sideways (2, 3 or 4 days) and the time-of-day column stays in view. */
.ajt-route-swipe { display: none; margin: 0 0 .5rem; font-size: .9rem; color: var(--ajt-muted, #4a5a50); }
@media (max-width: 899px) {
    .ajt-route-page .ajt-route-summary { min-width: calc(6.5rem + var(--days, 2) * 13.5rem); }
    .ajt-route-page .ajt-route-summary tbody th, .ajt-route-page .ajt-route-summary thead th:first-child { position: sticky; left: 0; z-index: 1; background: var(--h-white, #fff); width: 6.5rem; box-shadow: 1px 0 0 rgba(15, 81, 50, .12); }
    .ajt-route-swipe { display: block; }
    .ajt-route-page .ajt-hub__tablewrap { -webkit-overflow-scrolling: touch; }
}
/* Photo strip on phones: the next photo peeks in from the right so it reads as swipeable. */
@media (max-width: 899px) { .ajt-route-page .ajt-route-gallery { scroll-padding-left: 0; } .ajt-route-page .ajt-route-gallery li { flex-basis: min(74vw, 320px); } }
.ajt-route-page .ajt-route-gallery figure { margin: 0; } /* the browser's default figure margin (16px 40px) pushed each photo off its card */
.ajt-route-page .ajt-answer { margin: .9rem 0 0; max-width: 46rem; font-size: 1rem; line-height: 1.55; color: #fff; }
.stop__day { margin: 0 0 .5rem; font-size: .95rem; letter-spacing: .06em; text-transform: uppercase; color: #ffe9a8; font-weight: 700; }
.stop__card h2.stop__day { margin: 0 0 .5rem; font: 700 .9rem/1.3 var(--font-display, inherit); letter-spacing: .06em; text-transform: uppercase; color: #ffe9a8; }
/* Blog hub (/blog/ "Travel guide"): quick doubts, stage rows. Template: includes/sections/blog-hub.php */
.ajt-hub-note { margin: 0 0 40px; font-weight: 700; color: var(--h-white); }
.ajt-bh-quick__list { display: grid; gap: 14px; }
.ajt-bh-quick .ajt-textlink { display: inline-flex; align-items: center; min-height: var(--ajt-tap); }
.ajt-bh-toc { display: flex; gap: 10px; overflow-x: auto; scroll-snap-type: x proximity; padding: 4px 0 12px; margin-bottom: 8px; }
.ajt-bh-toc a { flex: 0 0 auto; scroll-snap-align: start; display: inline-flex; align-items: center; min-height: var(--ajt-tap); padding: 0 16px; border: 2px solid var(--ajt-water); border-radius: 999px; background: var(--h-white); color: var(--ajt-text); font-weight: 700; text-decoration: none; }
.ajt-bh-stage { margin-top: 28px; scroll-margin-top: 90px; }
.ajt-bh-rows { display: grid; gap: 10px; margin: 12px 0 0; padding: 0; list-style: none; }
.ajt-bh-row { display: grid; gap: 4px; min-height: var(--ajt-tap); padding: 14px 18px; background: var(--h-white); border: var(--h-line); border-radius: 18px; box-shadow: var(--h-card-shadow); color: var(--ajt-text); text-decoration: none; }
.ajt-bh-row strong { font-size: 17px; line-height: 1.3; }
.ajt-bh-row span { font-size: 16px; color: var(--ajt-soft-text); }
.ajt-bh-row small { font-size: 13px; color: var(--ajt-soft-text); }
.ajt-bh-row:hover strong, .ajt-bh-row:focus-visible strong { text-decoration: underline; }
@media (min-width: 768px) {
    .ajt-bh-quick__list { grid-template-columns: repeat(3, 1fr); gap: var(--h-gap); }
    .ajt-bh-toc { flex-wrap: wrap; overflow: visible; }
}
/* compact on phones: stage lead and meta line only from tablet up */
@media (max-width: 767px) {
    .ajt-bh-stage { margin-top: 18px; }
    .ajt-bh-stage .ajt-plan__lead { display: none; }
    .ajt-bh-rows { gap: 8px; margin-top: 8px; }
    .ajt-bh-row { padding: 12px 16px; gap: 2px; }
    .ajt-bh-row small { display: none; }
}
.ajt-bh-quick__list { margin: 0; padding: 0; list-style: none; }
.ajt-hub-note { margin-bottom: 8px; }
.ajt-hub-proof { margin: 0 0 40px; color: var(--h-white); font-size: 15px; }
.ajt-bh-more > summary { display: none; }
@media (max-width: 767px) {
    .ajt-bh-more > summary { display: flex; align-items: center; justify-content: center; min-height: var(--ajt-tap); margin-top: 18px; border: 2px solid var(--ajt-water); border-radius: 999px; background: var(--h-white); color: var(--ajt-text); font-weight: 700; cursor: pointer; list-style: none; }
    .ajt-bh-more > summary::-webkit-details-marker { display: none; }
    .ajt-bh-more[open] > summary { display: none; }
}
/* ---------- Article page (English posts). One block, no patches. Template: includes/blog/post-template.php, post-hero.php, post-content.php ---------- */
.ajt-article-page { --measure: 700px; --art-warn: #8a4b0f; --art-warn-bg: #fff1dc; padding: 0 0 88px; background: var(--ajt-cream); color: var(--ajt-text); }
html:has(.ajt-article-page) { scroll-padding-top: 88px; }
body:has(.ajt-article-page) .ajt-wa-float { display: none; }
.ajt-article-page :focus-visible { outline: 3px solid var(--ajt-deep); outline-offset: 3px; }
/* one reading axis: header, body, photos, blocks all share the same 700 px column */
.ajt-article-page .ajt-art-head, .ajt-article-page .article-body { max-width: var(--measure); margin-inline: auto; padding-inline: 16px; }
.ajt-art-head { padding-top: 20px; }
.ajt-art-crumbs { display: flex; flex-wrap: wrap; gap: 0 8px; align-items: center; font-size: 14px; }
.ajt-art-crumbs a { display: inline-flex; align-items: center; min-height: var(--ajt-tap); color: var(--ajt-deep); font-weight: 700; }
.ajt-art-crumbs [aria-current] { color: var(--ajt-soft-text); }
.ajt-art-head h1 { margin: 6px 0 12px; font-size: clamp(30px, 4vw, 44px); line-height: 1.15; }
.ajt-art-byline { display: flex; align-items: center; gap: 12px; margin: 0 0 16px; }
.ajt-art-byline__photo { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; }
.ajt-art-byline small { color: var(--ajt-soft-text); font-size: 14px; }
.ajt-art-lead { margin: 0 0 18px; font-size: 19px; line-height: 1.6; }
.ajt-art-summary { margin: 0 0 18px; padding: 14px 18px; border-left: 5px solid var(--ajt-deep); border-radius: 0 18px 18px 0; background: var(--ajt-water); }
.ajt-art-summary ul { margin: 6px 0 0; padding-left: 1.2em; list-style: disc; }
.ajt-art-hero { margin: 0 0 8px; }
.ajt-art-hero img { width: 100%; height: auto; max-height: 420px; object-fit: cover; border-radius: 22px; }
/* reading text */
.ajt-article-page .article-body section { margin-top: clamp(40px, 6vw, 56px); }
.ajt-article-page .article-body section:first-of-type { margin-top: 24px; }
.ajt-article-page .article-body h2 { margin: 0 0 16px; font-size: 28px; line-height: 1.2; color: var(--ajt-deep); }
.ajt-article-page .article-body h3 { margin: 28px 0 8px; font-size: 20px; line-height: 1.3; color: var(--ajt-deep); }
.ajt-article-page .article-body p, .ajt-article-page .article-body li { font-size: 17px; line-height: 1.7; color: var(--ajt-text); }
.ajt-article-page .article-body p { margin: 0 0 14px; }
.ajt-article-page .article-body ul, .ajt-article-page .article-body ol { margin: 0 0 16px; padding-left: 1.25em; }
.ajt-article-page .article-body ul { list-style: disc; }
.ajt-article-page .article-body ol { list-style: decimal; }
.ajt-article-page .article-body li + li { margin-top: 8px; }
.ajt-article-page .article-body a:not(.ajt-btn):not(.button):not(.ajt-bh-row):not(.article-link-list__item) { color: var(--ajt-deep); text-decoration: underline; }
/* panels from the old article styles, on the light theme */
.ajt-article-page .article-link-list__item, .ajt-article-page .faq-list details, .ajt-article-page .content-panel, .ajt-article-page .tours-compare-table-wrap { background: var(--h-white); border: var(--h-line); border-radius: 18px; color: var(--ajt-text); }
.ajt-article-page .article-link-list__item :where(strong, span) { color: var(--ajt-text); }
.ajt-article-page .tours-compare-table a { display: inline-flex; align-items: center; min-height: var(--ajt-tap); }
.ajt-article-page .faq-list summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: var(--ajt-tap); font-weight: 700; cursor: pointer; list-style: none; color: var(--ajt-text); }
.ajt-article-page .faq-list summary::-webkit-details-marker { display: none; }
.ajt-article-page .faq-list summary::after { content: "+"; flex: none; font-size: 22px; color: var(--ajt-deep); }
.ajt-article-page .faq-list details[open] summary::after { content: "\2212"; }
/* index */
.ajt-art-toc { margin: 0 0 20px; }
.ajt-art-toc details { background: var(--h-white); border: var(--h-line); border-radius: 18px; padding: 0 18px; }
.ajt-art-toc summary { display: flex; align-items: center; min-height: var(--ajt-tap); font-weight: 700; cursor: pointer; }
.ajt-art-toc ul { margin: 0 0 12px; padding-left: 20px; }
.ajt-art-toc li a { display: inline-flex; align-items: center; min-height: var(--ajt-tap); }
@media (min-width: 900px) { .ajt-art-toc ul { columns: 2; column-gap: 28px; } .ajt-article-page { padding-bottom: 24px; } }
/* blocks for writers (post-content.php): callout, quote, steps, table */
.ajt-art-callout { margin: 24px 0; padding: 16px 18px; border-left: 5px solid var(--ajt-deep); border-radius: 0 18px 18px 0; background: var(--ajt-water); }
.ajt-art-callout--warning { border-color: var(--art-warn); background: var(--art-warn-bg); }
.ajt-art-callout__title { margin: 0 0 4px; font-size: 13px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: var(--ajt-deep); }
.ajt-art-callout--warning .ajt-art-callout__title { color: var(--art-warn); }
.ajt-art-callout p:last-child { margin-bottom: 0; }
.ajt-art-quote { margin: 24px 0; padding: 4px 0 4px 18px; border-left: 4px solid var(--ajt-deep); }
.ajt-article-page .article-body .ajt-art-quote p { font-size: 19px; font-style: italic; }
.ajt-art-quote cite { font-size: 15px; color: var(--ajt-soft-text); font-style: normal; }
.ajt-art-table-wrap { margin: 20px 0; overflow-x: auto; border: var(--h-line); border-radius: 18px; background: var(--h-white); container-type: inline-size; }
.ajt-art-table { width: 100%; min-width: 520px; border-collapse: collapse; }
/* Phones: shadows at the box edges show only while there is more table to scroll to */
.ajt-art-table-wrap, .ajt-article-page .tours-compare-table-wrap { background:
    linear-gradient(to right, var(--h-white, #fff) 30%, rgba(255, 255, 255, 0)) left center / 28px 100% no-repeat local,
    linear-gradient(to left, var(--h-white, #fff) 30%, rgba(255, 255, 255, 0)) right center / 28px 100% no-repeat local,
    linear-gradient(to right, rgba(15, 81, 50, .28), rgba(15, 81, 50, 0)) left center / 12px 100% no-repeat scroll,
    linear-gradient(to left, rgba(15, 81, 50, .28), rgba(15, 81, 50, 0)) right center / 12px 100% no-repeat scroll,
    var(--h-white, #fff); }
.ajt-art-table th, .ajt-art-table td { padding: 10px 14px; border-bottom: 1px solid var(--ajt-water); text-align: left; vertical-align: top; font-size: 16px; }
.ajt-art-table thead th { background: var(--ajt-water); color: var(--ajt-deep); }
.ajt-art-table caption { padding: 10px 14px; text-align: left; font-weight: 700; position: sticky; left: 0; box-sizing: border-box; width: 100cqw; }
/* photos, next guides, author, closing */
.ajt-art-photo { margin: 24px 0; }
.ajt-art-photo img { width: 100%; height: auto; max-height: 440px; object-fit: cover; border-radius: 22px; }
.ajt-art-photo figcaption { margin-top: 8px; font-size: 15px; color: var(--ajt-soft-text); }
.ajt-art-next { margin-top: 40px; }
.ajt-article-page .article-body a.ajt-bh-row, .ajt-article-page .article-body a.ajt-bh-row * { color: var(--ajt-text); text-decoration: none; }
.ajt-article-page .article-body a.ajt-bh-row span { color: var(--ajt-soft-text); }
.ajt-article-page .article-body a.ajt-bh-row:hover strong, .ajt-article-page .article-body a.ajt-bh-row:focus-visible strong { text-decoration: underline; }
.ajt-art-author { display: flex; align-items: center; gap: 16px; margin: 28px 0 0; padding: 16px 18px; background: var(--h-white); border: var(--h-line); border-radius: 22px; }
.ajt-art-author img { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; flex: none; }
.ajt-art-author p { margin: 0 0 8px; }
.ajt-article-page .article-body .ajt-art-author .ajt-btn { color: var(--ajt-deep); text-decoration: none; }
.ajt-art-cta { margin: 32px 0 0; padding: 24px 22px; border-radius: 24px; background: var(--ajt-dark-2); }
.ajt-article-page .article-body .ajt-art-cta h2, .ajt-article-page .article-body .ajt-art-cta p { color: var(--h-white); }
.ajt-article-page .article-body .ajt-art-cta .ajt-btn { color: var(--h-white); text-decoration: none; }
/* Options hub hero on phones (P4, owner-approved 21 Oct): shorter, so the buttons and chips show without scrolling past the fixed bar */
@media (max-width: 767px) {
    .ajt-hub-page .ajt-plan-hero { --p-top: 28px; --p-bot: 28px; }
    .ajt-hub-page .ajt-plan-hero .ajt-hero__content h1 { font-size: 32px; margin-bottom: 10px; }
    .ajt-hub-page .ajt-plan-hero .ajt-lead { font-size: 16px; margin-bottom: 14px; }
    .ajt-hub-page .ajt-plan-hero .ajt-actions { margin-bottom: 16px; }
    .ajt-hub-page .ajt-hub__chips { gap: 6px; }
    .ajt-hub-page .ajt-hub__chips li { padding: 4px 10px; font-size: 13px; }
}
/* Price table inside articles: the old table styles use light text for a dark theme */
.ajt-article-page .tours-compare-table :where(th, td) { color: var(--ajt-text); }
.ajt-article-page .tours-compare-table th span { color: var(--ajt-deep); }
/* Old-style buttons inside articles (price guide panel): readable and not underlined */
.ajt-article-page .article-body a.button { text-decoration: none; }
.ajt-article-page .article-body a.button-primary { background: var(--ajt-deep); color: var(--h-white); }

/* Compact option cards on phones (opt-in 'compactCards'): shorter photo, only the first two points; the start and finish are in the chips and the 'fit' line. */
@media (max-width: 767px) {
    .ajt-hub__opts--compact .ajt-hub__opt .ajt-card__media img { aspect-ratio: 21 / 9; }
    .ajt-hub__opts--compact .ajt-hub__facts li:nth-child(n+3) { display: none; }
    .ajt-hub__rowlabel { font-size: 19px; }
    .ajt-hub__table td { font-size: 12.5px; }
    .ajt-hub__table th, .ajt-hub__table td { padding-left: 4px; padding-right: 4px; }
    .ajt-hub__table tbody th { font-size: 12px; }
}

/* /tours/ comparison table (text cells): wraps on desktop, one block per row on phones so nothing scrolls sideways */
.ajt-hub__table--text td { white-space: normal; }
@media (max-width: 767px) {
    .ajt-hub__table--text, .ajt-hub__table--text tbody, .ajt-hub__table--text tr, .ajt-hub__table--text th, .ajt-hub__table--text td { display: block; width: 100%; }
    .ajt-hub__table--text thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
    .ajt-hub__table--text tbody th { background: var(--ajt-water); color: var(--ajt-deep); font-size: 15px; padding: 9px; }
    .ajt-hub__table--text td { font-size: 14px; padding: 8px 9px; }
    .ajt-hub__table--text td::before { content: attr(data-label); display: block; font-weight: 700; color: var(--ajt-deep); }
}

/* Options hub: price table with a bigger type on phones (opt-in, class set by 'copInHeader' on the 2 day page; 3 and 4 day tables keep their size) */
@media (max-width: 767px) { .ajt-hub__table--read, .ajt-hub__table--read td, .ajt-hub__table--read tbody th { font-size: var(--h-table-fs); } }

/* /shared-departures/ : departure cards (date block + details) */
.ajt-deps { display: grid; gap: 16px; }
.ajt-dep { display: flex; gap: 16px; padding: 16px; border-radius: 18px; background: var(--h-white); border: var(--h-line); }
.ajt-dep__date { flex: 0 0 76px; display: flex; flex-direction: column; align-items: center; justify-content: center; margin: 0; padding: 8px 4px; border-radius: 14px; background: var(--ajt-water); color: var(--ajt-deep); text-align: center; align-self: flex-start; }
.ajt-dep__day { font-size: 34px; font-weight: 800; line-height: 1; }
.ajt-dep__mon { font-size: 14px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.ajt-dep__wd { font-size: 13px; color: var(--ajt-soft-text); }
.ajt-dep__body { flex: 1; min-width: 0; }
.ajt-dep h3 { margin: 0 0 6px; font-size: 19px; }
.ajt-dep__spots { margin: 0 0 4px; font-size: 16px; }
.ajt-deps__rules { max-width: 70ch; }
@media (min-width: 768px) { .ajt-deps { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 420px) { .ajt-dep { flex-direction: column; } .ajt-dep__date { flex-direction: row; gap: 8px; align-self: stretch; } .ajt-dep__day { font-size: 28px; } }

/* Legal page (/privacy-policy/): readable line length, numbered table of contents, spacing between sections */
.ajt-legal__toc { margin: 20px 0 0; padding: 16px 18px; border-radius: 18px; background: var(--h-white); border: var(--h-line); }
.ajt-legal__toc ol { margin: 0; padding: 0; list-style: none; columns: 2; column-gap: 28px; }
.ajt-legal__toc li { break-inside: avoid; margin: 4px 0; }
.ajt-legal__toc a { display: inline-block; min-height: 32px; padding: 4px 0; }
.ajt-legal__body { max-width: 780px; }
.ajt-legal__sec { margin: 0 0 36px; scroll-margin-top: 90px; }
.ajt-legal__sec h2 { margin-bottom: 10px; }
.ajt-legal__sec p, .ajt-legal__sec li { font-size: 17px; line-height: 1.65; }
.ajt-legal__sec ul { margin: 8px 0 12px; padding-left: 22px; list-style: disc; }
.ajt-legal__sec li { margin: 6px 0; }
@media (max-width: 700px) { .ajt-legal__toc ol { columns: 1; } .ajt-legal__toc a { min-height: 44px; display: flex; align-items: center; } }

/* About page: readable paragraphs and a small sub-heading inside a section */
.ajt-about__p { max-width: 70ch; margin: 0 0 14px; font-size: 18px; line-height: 1.65; }
.ajt-about__sub { margin: 28px 0 8px; font-size: 20px; color: var(--ajt-deep); }
@media (min-width: 1024px) { .ajt-about__three { grid-template-columns: repeat(3, 1fr); } }

/* Contact form (/contact/): fields, consent line and spacing; thank-you page */
.ajt-cform { background: var(--h-white); border: var(--h-line); border-radius: 22px; padding: 22px 20px; box-shadow: var(--h-card-shadow); }
.ajt-cform__head h2 { margin: 6px 0 6px; }
.ajt-cform__head p { margin: 0 0 14px; color: var(--ajt-soft-text); }
.ajt-cform__form { display: grid; gap: 16px; }
.ajt-cform__row { display: grid; gap: 16px; }
.ajt-cform__field { display: grid; gap: 6px; }
.ajt-cform__field label { font-weight: 700; color: var(--ajt-deep); }
.ajt-cform input[type="text"], .ajt-cform input[type="email"], .ajt-cform input[type="tel"], .ajt-cform input[type="date"], .ajt-cform input[type="number"], .ajt-cform textarea { width: 100%; min-height: 48px; padding: 10px 14px; border: 1px solid rgba(15, 81, 50, 0.28); border-radius: 12px; background: var(--h-white); color: var(--ajt-text); font: inherit; }
.ajt-cform textarea { min-height: 130px; resize: vertical; }
.ajt-cform input:focus-visible, .ajt-cform textarea:focus-visible { outline: 3px solid var(--ajt-brand); outline-offset: 1px; }
.ajt-cform small { color: var(--ajt-soft-text); font-size: 14px; }
.ajt-cform ::placeholder { color: var(--ajt-text); opacity: .6; }
.ajt-cform__consent label { display: flex; gap: 10px; align-items: flex-start; min-height: 44px; font-weight: 600; }
.ajt-cform__consent input { width: 22px; height: 22px; flex: none; margin-top: 2px; }
.ajt-cform__privacy { margin: 6px 0 0; font-size: 14px; line-height: 1.55; color: var(--ajt-soft-text); }
.ajt-cform .ajt-btn { justify-self: start; border: 0; cursor: pointer; }
@media (min-width: 700px) { .ajt-cform { padding: 28px 30px; } .ajt-cform__row { grid-template-columns: 1fr 1fr; } }
.ajt-thanks { min-height: 55vh; }

.review-quote-card__stars { margin: 0; color: var(--h-star, currentColor); letter-spacing: 2px; font-size: 1rem; line-height: 1; }

/* Reviews block 2 x 2 (owner, 29 Oct): 3 quotes + 1 card with both ratings. One column on phones. */
.ajt-review-card--ratings { display: grid; gap: 14px; align-content: center; }
.ajt-review-card__profile h3 { margin-bottom: 2px; font-size: 1.05rem; }
.ajt-review-card__profile p { margin: 0 0 4px; }
@media (min-width: 700px) {
    .ajt-reviews__list { grid-template-columns: 1fr 1fr; gap: 14px; }
    .ajt-reviews__list > li { display: flex; }
    .ajt-reviews__list .ajt-review-card { width: 100%; padding: 18px; }
    .ajt-reviews__list blockquote { font-size: .95rem; line-height: 1.5; }
}
@media (min-width: 1000px) {
    .ajt-reviews__grid { grid-template-columns: minmax(240px, 1fr) 2fr; }
}
@media (min-width: 768px) and (max-width: 999px) {
    .ajt-reviews__grid { grid-template-columns: 1fr; }
}

/* Plan your trip on phones (owner, 29 Oct 2026): price strip after the hero + folded info sections. Desktop shows everything open. */
.ajt-pricestrip { background: var(--ajt-water); padding: 14px 0; }
.ajt-pricestrip__lead { margin: 0 0 8px; font-weight: 700; }
.ajt-pricestrip__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.ajt-pricestrip__list a { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 2px; height: 100%; min-height: 56px; padding: 10px 14px; border-radius: 14px; background: var(--h-white); color: var(--ajt-text); text-decoration: none; box-shadow: 0 6px 16px rgba(8, 36, 29, 0.1); line-height: 1.3; }
.ajt-pricestrip__list span { font-size: .88rem; opacity: .8; }
.ajt-pricestrip__list strong { color: var(--ajt-deep); text-align: left; }
.ajt-pricestrip__list li { display: flex; }
.ajt-pricestrip__list li > a { width: 100%; }
.ajt-plan__more > summary { cursor: pointer; min-height: 44px; display: flex; align-items: center; font-weight: 700; color: var(--ajt-deep); }
@media (min-width: 700px) {
    .ajt-plan__more > summary { display: none; }
    .ajt-pricestrip__list { grid-template-columns: repeat(3, 1fr); }
}
