:root{
  --abc-gold:#b68d3d;
  --abc-gold-dark:#8e6a25;
  --abc-ink:#151713;
  --abc-muted:#66665f;
  --abc-cream:#f7f4ec;
  --abc-line:#e8e0d1;
  --abc-green:#2f6b34;
  --abc-red:#a33a1e;
}
.abc-shell{width:min(1180px,calc(100% - 40px));margin:0 auto}
.abc-eyebrow,.abc-section-heading{font-family:var(--e-global-typography-secondary-font-family,inherit);font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--abc-gold-dark)}
.abc-richtext,.abc-richtext p{font-family:var(--e-global-typography-text-font-family,inherit);color:var(--abc-muted);line-height:1.72}
.abc-button{display:inline-flex;align-items:center;gap:18px;padding:15px 24px;text-decoration:none!important;text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:600;transition:.25s ease}
.abc-button--gold{background:var(--abc-gold);color:#fff!important}.abc-button--gold:hover{background:var(--abc-gold-dark)}
.abc-button--ghost{border:1px solid rgba(255,255,255,.75);color:#fff!important}.abc-button--ghost:hover{background:#fff;color:#111!important}

.abc-hero{position:relative;min-height:610px;background-position:center;background-size:cover;display:flex;align-items:flex-end;color:#fff}
.abc-hero__overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(16,17,15,.78),rgba(16,17,15,.35) 58%,rgba(16,17,15,.12))}
.abc-hero__inner{position:relative;z-index:1;padding:120px 0 72px;max-width:1180px}.abc-hero__inner>*{max-width:720px}
.abc-hero .abc-eyebrow{color:#d2ad5f;margin-bottom:16px}.abc-hero h1{font-family:var(--e-global-typography-primary-font-family,inherit);font-weight:var(--e-global-typography-primary-font-weight,500);font-size:clamp(42px,5.2vw,72px);line-height:1.02;margin:0 0 18px;color:#fff}
.abc-hero__subtitle,.abc-hero__subtitle p{font-family:var(--e-global-typography-text-font-family,inherit);font-size:18px;line-height:1.65;color:rgba(255,255,255,.92);margin:0}.abc-actions{display:flex;gap:18px;flex-wrap:wrap;margin-top:28px}

.abc-trip-facts{background:#fbfaf6;border-bottom:1px solid var(--abc-line)}.abc-trip-facts__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.abc-trip-fact{display:flex;gap:14px;align-items:center;padding:22px 24px;border-right:1px solid var(--abc-line)}.abc-trip-fact:last-child{border-right:0}.abc-trip-fact__icon{font-size:24px;color:var(--abc-ink)}.abc-trip-fact__label{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--abc-muted);margin-bottom:3px}.abc-trip-fact__value{font-size:16px;color:var(--abc-ink);font-weight:500}

.abc-overview{padding:76px 0;background:#fff}.abc-overview__grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(340px,.95fr);gap:64px;align-items:center}.abc-overview--image-left .abc-overview__copy{order:2}.abc-overview--image-left .abc-overview__media{order:1}.abc-overview h2,.abc-pricing h2,.abc-list-card h2,.abc-cta h2{font-family:var(--e-global-typography-primary-font-family,inherit);font-weight:var(--e-global-typography-primary-font-weight,500);color:var(--abc-ink)}.abc-overview h2{font-size:clamp(34px,4vw,54px);line-height:1.08;margin:12px 0 20px}.abc-overview__media img{width:100%;height:430px;object-fit:cover;display:block}

.abc-itinerary{padding:62px 0 78px;background:var(--abc-cream)}.abc-section-heading{margin-bottom:28px}.abc-itinerary__timeline{position:relative}.abc-day{display:grid;grid-template-columns:36px 145px minmax(0,1fr);gap:18px;padding:0 0 26px}.abc-day__rail{position:relative}.abc-day__rail:before{content:"";position:absolute;left:10px;top:0;bottom:-26px;width:1px;background:#c8ad69}.abc-day:last-child .abc-day__rail:before{bottom:50%}.abc-day__rail span{position:relative;z-index:2;display:block;width:14px;height:14px;margin:8px 0 0 4px;border-radius:50%;background:#b08b3b}.abc-day__label{padding-top:0}.abc-day__label h3{font-family:var(--e-global-typography-primary-font-family,inherit);font-weight:var(--e-global-typography-primary-font-weight,500);font-size:30px;line-height:1;margin:0 0 8px;color:var(--abc-ink)}.abc-day__title{font-size:14px;line-height:1.45;color:var(--abc-muted)}.abc-day__content{background:rgba(255,255,255,.74);padding:20px 22px 22px;border-bottom:1px solid var(--abc-line)}.abc-day__description p:first-child{margin-top:0}.abc-day__facts{display:flex;flex-wrap:wrap;gap:10px 18px;margin:12px 0 4px}.abc-day__facts span{font-size:13px;color:#5e5f58;padding-right:16px;border-right:1px solid #d9d2c6}.abc-day__facts span:last-child{border-right:0}
.abc-stay{display:grid;grid-template-columns:minmax(280px,390px) minmax(190px,1fr);gap:24px;align-items:center;margin-top:18px}.abc-stay__media img{width:100%;height:250px;object-fit:cover;display:block}.abc-stay__name{font-size:17px;font-weight:600;color:var(--abc-ink);margin-bottom:13px}.abc-stay__name a{color:inherit;text-decoration:none}.abc-stay__name a:hover{color:var(--abc-gold-dark)}.abc-stay__meta{display:flex;gap:9px;align-items:flex-start;color:var(--abc-muted);font-size:14px;margin-top:10px}.abc-stay__icon{color:var(--abc-ink);width:18px}

.abc-pricing{padding:70px 0;background:#fff}.abc-pricing__card{border:1px solid var(--abc-line);background:#fff;box-shadow:0 18px 50px rgba(51,43,25,.08);padding:30px}.abc-pricing h2{font-size:38px;margin:6px 0 0}.abc-price-tabs{display:flex;gap:8px;margin:28px 0 18px}.abc-price-tab{appearance:none;border:0;background:#f1eee7;padding:12px 28px;cursor:pointer;font-weight:600;color:#555}.abc-price-tab.is-active{background:var(--abc-gold);color:#fff}.abc-price-panel{display:none}.abc-price-panel.is-active{display:block}.abc-price-year{font-weight:700;margin:22px 0 10px}.abc-price-table-wrap{overflow:auto}.abc-price-table{width:100%;border-collapse:collapse;min-width:620px}.abc-price-table th,.abc-price-table td{padding:16px 18px;border:1px solid var(--abc-line);text-align:center}.abc-price-table th:first-child,.abc-price-table td:first-child{text-align:left}.abc-price-table th{background:#f5f2eb;color:#2d2d29}.abc-price-table td{font-size:15px}.abc-price-table small{display:block;color:#818177;font-weight:400;margin-top:4px}.abc-pricing__footer{display:flex;justify-content:space-between;gap:28px;align-items:center;margin-top:22px}.abc-pricing__note{color:var(--abc-muted);max-width:650px}.abc-pricing__note p{margin:0}

.abc-inclusions{padding:68px 0;background:var(--abc-cream)}.abc-inclusions__grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.abc-list-card{background:#fff;padding:30px;border:1px solid var(--abc-line)}.abc-list-card h2{font-size:32px;margin:0 0 20px}.abc-list-card ul{list-style:none;padding:0;margin:0;columns:1}.abc-list-card li{display:flex;gap:10px;padding:6px 0;line-height:1.45;color:#555}.abc-list-card--yes li span{color:var(--abc-green);font-weight:700}.abc-list-card--no li span{color:var(--abc-red);font-weight:700}

.abc-cta{position:relative;background:#25261f;background-position:center;background-size:cover;color:#fff}.abc-cta__overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(32,31,24,.8),rgba(32,31,24,.32))}.abc-cta__inner{position:relative;z-index:1;display:flex;justify-content:space-between;align-items:center;gap:30px;padding-top:58px;padding-bottom:58px}.abc-cta h2{font-size:42px;color:#fff;margin:0 0 8px}.abc-cta p{margin:0;color:rgba(255,255,255,.88);font-size:16px}

@media (max-width: 900px){
 .abc-overview__grid{grid-template-columns:1fr;gap:30px}.abc-overview--image-left .abc-overview__copy,.abc-overview--image-left .abc-overview__media{order:initial}.abc-overview__media img{height:360px}
 .abc-day{grid-template-columns:30px 1fr;gap:12px}.abc-day__label{grid-column:2}.abc-day__content{grid-column:2}.abc-stay{grid-template-columns:minmax(220px,340px) 1fr}
 .abc-pricing__footer,.abc-cta__inner{align-items:flex-start;flex-direction:column}.abc-inclusions__grid{grid-template-columns:1fr}
}
@media (max-width: 640px){
 .abc-shell{width:min(100% - 28px,1180px)}.abc-hero{min-height:540px}.abc-hero__inner{padding:100px 0 48px}.abc-hero h1{font-size:42px}.abc-hero__subtitle,.abc-hero__subtitle p{font-size:16px}.abc-button{width:100%;justify-content:center}
 .abc-trip-facts__grid{grid-template-columns:1fr 1fr}.abc-trip-fact{border-bottom:1px solid var(--abc-line)}
 .abc-overview{padding:52px 0}.abc-overview__media img{height:290px}.abc-itinerary{padding:48px 0}.abc-day{grid-template-columns:24px 1fr}.abc-day__content{padding:17px 15px 20px}.abc-day__label h3{font-size:28px}.abc-stay{grid-template-columns:1fr;gap:14px}.abc-stay__media img{height:260px}.abc-stay__details{padding-bottom:4px}
 .abc-pricing{padding:50px 0}.abc-pricing__card{padding:20px 14px}.abc-price-tabs{overflow:auto}.abc-price-tab{white-space:nowrap}.abc-inclusions{padding:48px 0}.abc-list-card{padding:24px 20px}.abc-cta h2{font-size:34px}
}

/* Entry effects ------------------------------------------------------------ */
.abc-effects-enabled [data-abc-entry] {
    --abc-entry-duration: 700ms;
    --abc-entry-delay: 0ms;
    opacity: 0;
    transition-property: opacity, transform, clip-path;
    transition-duration: var(--abc-entry-duration);
    transition-delay: var(--abc-entry-delay);
    transition-timing-function: cubic-bezier(.22,.61,.36,1);
    will-change: opacity, transform;
}

.abc-effects-enabled [data-abc-entry="fade-in"] { transform: none; }
.abc-effects-enabled [data-abc-entry="fade-up"] { transform: translate3d(0, 34px, 0); }
.abc-effects-enabled [data-abc-entry="fade-down"] { transform: translate3d(0, -34px, 0); }
.abc-effects-enabled [data-abc-entry="slide-left"] { transform: translate3d(-54px, 0, 0); }
.abc-effects-enabled [data-abc-entry="slide-right"] { transform: translate3d(54px, 0, 0); }
.abc-effects-enabled [data-abc-entry="zoom-in"] { transform: scale(.965); }
.abc-effects-enabled [data-abc-entry="reveal-up"] {
    transform: translate3d(0, 18px, 0);
    clip-path: inset(100% 0 0 0);
}

.abc-effects-enabled [data-abc-entry].abc-entry-visible {
    opacity: 1;
    transform: none;
    clip-path: inset(0 0 0 0);
    will-change: auto;
}

@media (max-width: 767px) {
    .abc-effects-enabled [data-abc-entry][data-abc-entry-mobile="no"] {
        opacity: 1 !important;
        transform: none !important;
        clip-path: none !important;
        transition: none !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    .abc-effects-enabled [data-abc-entry] {
        opacity: 1 !important;
        transform: none !important;
        clip-path: none !important;
        transition: none !important;
    }
}

/* -------------------------------------------------------------------------
 * ABC layout hardening
 * Elementor containers are flex items by default. A flex item with min-width:auto
 * can preserve the intrinsic width of our content and make a two-column widget
 * overflow/clamp inside a narrower editor canvas. Force ABC widgets to be shrinkable.
 * ---------------------------------------------------------------------- */
.elementor-widget-abc_hero,
.elementor-widget-abc_trip_facts,
.elementor-widget-abc_overview,
.elementor-widget-abc_itinerary,
.elementor-widget-abc_pricing,
.elementor-widget-abc_inclusions,
.elementor-widget-abc_cta,
.elementor-widget-abc_hero > .elementor-widget-container,
.elementor-widget-abc_trip_facts > .elementor-widget-container,
.elementor-widget-abc_overview > .elementor-widget-container,
.elementor-widget-abc_itinerary > .elementor-widget-container,
.elementor-widget-abc_pricing > .elementor-widget-container,
.elementor-widget-abc_inclusions > .elementor-widget-container,
.elementor-widget-abc_cta > .elementor-widget-container {
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
}

.abc-shell,
.abc-overview,
.abc-overview__grid,
.abc-overview__copy,
.abc-overview__media {
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
}

/* Do not let the image column impose a 340px intrinsic minimum on a flex-clipped
   Elementor canvas. Both columns may shrink normally, then stack at the breakpoint. */
.abc-overview__grid {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
}
.abc-overview__media {
    overflow: hidden;
}
.abc-overview__media img {
    max-width: 100%;
}

/* -------------------------------------------------------------------------
 * ABC Neutral Grid for Elementor's REAL Container element.
 * This is intentionally not a custom nested widget. Native containers retain
 * Elementor's drag/drop zones and may contain arbitrary widgets/containers.
 * ---------------------------------------------------------------------- */
.e-con[style*="--abc-neutral-columns"] {
    grid-template-columns: repeat(var(--abc-neutral-columns, 2), minmax(0, 1fr)) !important;
    column-gap: var(--abc-neutral-column-gap, 30px) !important;
    row-gap: var(--abc-neutral-row-gap, 30px) !important;
    align-items: start;
}
.e-con[style*="--abc-neutral-columns"] > .e-con-inner {
    width: 100%;
    min-width: 0;
    grid-template-columns: repeat(var(--abc-neutral-columns, 2), minmax(0, 1fr)) !important;
    column-gap: var(--abc-neutral-column-gap, 30px) !important;
    row-gap: var(--abc-neutral-row-gap, 30px) !important;
    align-items: start;
}
.e-con[style*="--abc-neutral-columns"] > .elementor-element,
.e-con[style*="--abc-neutral-columns"] > .e-con-inner > .elementor-element {
    min-width: 0 !important;
    max-width: 100%;
}
