/* ======================================================
   Ali Babylon Tours — v5.7
   Design System: All values reference CSS custom properties
   ====================================================== */

/* === LOCAL FONTS === */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url('../fonts/dm-sans-latin-wght-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: 'DM Sans';
  font-style: italic;
  font-weight: 300 700;
  font-display: swap;
  src: url('../fonts/dm-sans-latin-wght-italic.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: 'DM Serif Display';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/dm-serif-display-latin-400-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: 'DM Serif Display';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/dm-serif-display-latin-400-italic.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

/* === DESIGN TOKENS === */
:root {
  /* Colors — Core */
  --ab-bg: #FAFAF7;
  --ab-bg-alt: #F3F1EC;
  --ab-fg: #1A1A1A;
  --ab-fg-hover: #333333;
  --ab-muted: #555555;
  --ab-accent: #C2572A;
  --ab-accent-btn: #C2572A;
  --ab-accent-hover: #A84B24;
  --ab-gold: #B8965A;
  --ab-border: #E5E2DB;
  --ab-card: #FFFFFF;
  --ab-white: #FFFFFF;
  --ab-success: #4ADE80;

  /* Colors — Light text (on dark backgrounds) */
  --ab-on-dark: #FFFFFF;
  --ab-on-dark-heading: rgba(255,255,255,.9);
  --ab-on-dark-body: rgba(255,255,255,.75);
  --ab-on-dark-muted: rgba(255,255,255,.55);
  --ab-on-dark-subtle: rgba(255,255,255,.4);
  --ab-on-dark-border: rgba(255,255,255,.1);
  --ab-on-dark-glass: rgba(255,255,255,.08);
  --ab-on-dark-glass-hover: rgba(255,255,255,.14);
  --ab-on-dark-outline: rgba(255,255,255,.3);

  /* Colors — On accent (on terracotta backgrounds) */
  --ab-on-accent: #FFFFFF;

  /* Typography — Families */
  --ab-font-serif: 'DM Serif Display', Georgia, serif;
  --ab-font-sans: 'DM Sans', system-ui, -apple-system, sans-serif;

  /* Typography — Sizes (static) */
  --ab-text-xs: 12px;
  --ab-text-sm: 13px;
  --ab-text-body-sm: 14px;
  --ab-text-body: 15px;
  --ab-text-base: 16px;
  --ab-text-md: 18px;

  /* Typography — Sizes (fluid headings, Perfect Fourth) */
  --ab-heading-display: clamp(44px, 7vw, 76px);
  --ab-heading-1: clamp(36px, 5vw, 57px);
  --ab-heading-2: clamp(32px, 4vw, 43px);
  --ab-heading-3: clamp(24px, 3vw, 32px);
  --ab-heading-4: clamp(20px, 2.5vw, 24px);

  /* Typography — Tracking */
  --ab-tracking-tight: -0.03em;
  --ab-tracking-heading: -0.02em;
  --ab-tracking-body: -0.01em;
  --ab-tracking-wide: 0.01em;
  --ab-tracking-eyebrow: 2.5px;

  /* Typography — Leading */
  --ab-leading-none: 1.08;
  --ab-leading-tight: 1.15;
  --ab-leading-normal: 1.7;
  --ab-leading-relaxed: 1.75;
  --ab-leading-loose: 1.85;

  /* Spacing — 8px grid */
  --ab-space-xs: 8px;
  --ab-space-sm: 16px;
  --ab-space-md: 24px;
  --ab-space-lg: 32px;
  --ab-space-xl: 40px;
  --ab-space-2xl: 48px;
  --ab-space-3xl: 64px;
  --ab-space-4xl: 80px;
  --ab-space-5xl: 96px;
  --ab-space-6xl: 120px;

  /* Section padding */
  --ab-section-pad: 120px;
  --ab-section-pad-sm: 80px;

  /* Layout */
  --ab-container: 1200px;
  --ab-content: 720px;
  --ab-gutter: 24px;

  /* Radius */
  --ab-radius-sm: 8px;
  --ab-radius: 12px;
  --ab-radius-lg: 16px;
  --ab-radius-xl: 24px;
  --ab-radius-pill: 100px;

  /* Shadows */
  --ab-shadow-sm: 0 1px 3px rgba(0,0,0,.04), 0 1px 2px rgba(0,0,0,.06);
  --ab-shadow-md: 0 4px 16px rgba(0,0,0,.06), 0 1px 3px rgba(0,0,0,.04);
  --ab-shadow-lg: 0 16px 48px rgba(0,0,0,.08), 0 4px 12px rgba(0,0,0,.04);

  /* Transitions */
  --ab-ease: .3s ease;
  --ab-ease-slow: .4s ease;
  --ab-ease-spring: .7s cubic-bezier(.16,1,.3,1);
}

/* === RESET & GLOBAL === */
*,*::before,*::after { box-sizing: border-box; }
body { -webkit-font-smoothing: antialiased; margin: 0; padding: 0; overflow-x: hidden; }
.wp-site-blocks > * + * { margin-top: 0 !important; }
:root :where(.wp-site-blocks) > * { margin-block-start: 0 !important; }
/* Kill WP flow-layout margin on colored-background sections */
:root :where(.is-layout-flow) > [style*="background"] { margin-block-start: 0 !important; }
:root :where(.is-layout-flow) > .ab-dark-hero { margin-block-start: 0 !important; }
:root :where(.is-layout-flow) > .ab-section-pad-lg { margin-block-start: 0 !important; }
:root :where(.is-layout-flow) > section { margin-block-start: 0 !important; }
img { display: block; max-width: 100%; height: auto; }
::selection { background: rgba(194,87,42,.15); color: var(--ab-fg); }
.ab-footer ::selection, .ab-dark-hero ::selection, .ab-hero ::selection, .ab-page-hero ::selection, .ab-nav:not(.scrolled) ::selection, [style*="background:var(--ab-accent"] ::selection, #reviews ::selection { background: rgba(255,255,255,.25); color: var(--ab-white); }

/* === SKIP TO CONTENT === */
.ab-skip {
  position: absolute; left: -9999px; top: auto; width: 1px; height: 1px; overflow: hidden;
  z-index: 9999; padding: var(--ab-space-sm) var(--ab-space-lg);
  background: var(--ab-accent-btn); color: var(--ab-white);
  font-size: var(--ab-text-body-sm); font-weight: 600;
  text-decoration: none; border-radius: 0 0 var(--ab-radius-sm) 0;
}
.ab-skip:focus { left: 0; top: 0; width: auto; height: auto; overflow: visible; }

/* === FOCUS RINGS === */
*:focus-visible { outline: 2px solid var(--ab-accent); outline-offset: 2px; }
*:focus:not(:focus-visible) { outline: none; }

/* === TYPOGRAPHY === */
.entry-content p, .entry-content li { max-width: none; }
.entry-content p { margin-top: var(--ab-space-md); margin-bottom: var(--ab-space-md); line-height: var(--ab-leading-loose); letter-spacing: var(--ab-tracking-body); }
.entry-content > p:first-child { margin-top: 0; }
.entry-content img { border-radius: var(--ab-radius-lg); }
.entry-content .wp-block-list { margin-block-start: var(--ab-space-md) !important; margin-block-end: var(--ab-space-md) !important; }
.entry-content .wp-block-list .wp-block-list { margin-block-start: var(--ab-space-xs) !important; margin-block-end: 0 !important; }
.entry-content .ab-pricing-table-wrap { margin-top: var(--ab-space-md); margin-bottom: var(--ab-space-md); }
.entry-content h2 { margin-top: var(--ab-space-2xl); margin-bottom: var(--ab-space-sm); letter-spacing: var(--ab-tracking-heading); scroll-margin-top: 112px; }
.entry-content h3 { margin-top: var(--ab-space-xl); margin-bottom: var(--ab-space-sm); letter-spacing: var(--ab-tracking-heading); scroll-margin-top: 112px; }
@media (max-width: 768px) {
  .entry-content h2, .entry-content h3 { scroll-margin-top: 96px; }
}
.entry-content h4 { margin-top: var(--ab-space-xl); margin-bottom: var(--ab-space-sm); }
.entry-content h5, .entry-content h6 { margin-top: var(--ab-space-lg); margin-bottom: var(--ab-space-xs); }
.entry-content h2:first-child, .entry-content h3:first-child, .entry-content h4:first-child { margin-top: 0; }

/* === ENTRY CONTENT — Native Block Styles === */

/* --- Tables (wp-block-table) --- */
.entry-content .wp-block-table {
  margin: var(--ab-space-xl) 0 var(--ab-space-2xl) !important;
  max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch;
}
.entry-content .wp-block-table table {
  width: 100% !important; border-collapse: separate !important; border-spacing: 0 !important;
  border: 1px solid var(--ab-border) !important; border-radius: var(--ab-radius-lg) !important;
  overflow: hidden; font-size: var(--ab-text-body);
}
.entry-content .wp-block-table thead th {
  background: var(--ab-fg) !important; color: var(--ab-white) !important;
  font-family: var(--ab-font-sans); font-size: var(--ab-text-sm);
  font-weight: 600; letter-spacing: .5px; text-transform: uppercase;
  padding: var(--ab-space-sm) var(--ab-space-lg) !important; text-align: left; white-space: nowrap;
  border: none !important;
}
.entry-content .wp-block-table tbody td {
  padding: var(--ab-space-sm) var(--ab-space-lg) !important;
  border-top: 1px solid var(--ab-border) !important; border-bottom: none !important;
  border-left: none !important; border-right: none !important;
  color: var(--ab-fg); vertical-align: middle; background: transparent !important;
}
.entry-content .wp-block-table tbody td:first-child { font-weight: 600; }
.entry-content .wp-block-table tbody tr:hover { background: rgba(194,87,42,.03) !important; }
.entry-content .wp-block-table.is-style-stripes tbody tr:nth-child(odd) { background: transparent !important; }
.entry-content .wp-block-table.is-style-stripes tbody tr:hover { background: rgba(194,87,42,.03) !important; }
.entry-content .wp-block-table figcaption {
  font-size: var(--ab-text-sm); color: var(--ab-muted); text-align: center;
  margin-top: var(--ab-space-xs); font-style: italic;
}

/* --- Blockquote / Callout (wp-block-quote) --- */
.entry-content .wp-block-quote {
  margin: var(--ab-space-xl) 0 var(--ab-space-2xl);
  padding: var(--ab-space-lg) var(--ab-space-xl);
  background: var(--ab-bg-alt); border-radius: var(--ab-radius-lg);
  border: none; border-left: 4px solid var(--ab-gold);
}
.entry-content .wp-block-quote p {
  font-size: var(--ab-text-base); color: var(--ab-fg);
  line-height: var(--ab-leading-relaxed); margin-bottom: var(--ab-space-sm);
}
.entry-content .wp-block-quote p:first-child { font-weight: 600; }
.entry-content .wp-block-quote p:last-child { margin-bottom: 0; }
.entry-content .wp-block-quote a {
  color: var(--ab-accent); font-weight: 600; text-decoration: underline;
  text-decoration-color: rgba(194,87,42,.3); text-underline-offset: 2px;
  transition: text-decoration-color var(--ab-ease);
}
.entry-content .wp-block-quote a:hover { text-decoration-color: var(--ab-accent); }
.entry-content .wp-block-quote cite {
  font-size: var(--ab-text-sm); color: var(--ab-muted); font-style: normal; display: block;
  margin-top: var(--ab-space-sm); padding-top: var(--ab-space-sm); border-top: 1px solid var(--ab-border);
}

/* --- Pullquote (wp-block-pullquote) — used for image placeholders --- */
.entry-content .wp-block-pullquote {
  margin: var(--ab-space-xl) 0 var(--ab-space-2xl) !important;
  padding: var(--ab-space-md) var(--ab-space-lg) !important;
  background: rgba(184,150,90,.08) !important;
  border: 1.5px dashed rgba(184,150,90,.4) !important;
  border-left: none !important; border-right: none !important;
  border-radius: 0 !important;
  text-align: center !important;
}
.entry-content .wp-block-pullquote blockquote {
  border: none !important; margin: 0 !important; padding: 0 !important;
  background: transparent !important;
}
.entry-content .wp-block-pullquote p {
  font-style: italic !important; font-size: var(--ab-text-body-sm) !important;
  color: var(--ab-muted) !important; line-height: var(--ab-leading-normal) !important;
  margin: 0 !important; text-align: center !important;
}
.entry-content .wp-block-pullquote cite { display: none !important; }

/* === EYEBROW === */
.ab-eyebrow {
  font-size: var(--ab-text-xs) !important; font-weight: 600;
  letter-spacing: var(--ab-tracking-eyebrow); text-transform: uppercase;
  color: var(--ab-accent); line-height: 1; margin-bottom: var(--ab-space-sm) !important;
}

/* === BUTTONS === */
.ab-btn {
  display: inline-flex; align-items: center; gap: var(--ab-space-xs);
  padding: var(--ab-space-sm) var(--ab-space-lg); border-radius: var(--ab-radius-pill);
  font-size: var(--ab-text-body-sm); font-weight: 600; letter-spacing: var(--ab-tracking-wide);
  border: none; cursor: pointer; transition: all var(--ab-ease);
  text-decoration: none; font-family: inherit;
}
.ab-btn-accent { background: var(--ab-accent-btn); color: var(--ab-white); }
.ab-btn-accent:hover { background: var(--ab-accent-hover); transform: translateY(-2px); box-shadow: 0 8px 24px rgba(177,77,37,.25); color: var(--ab-white); }
.ab-btn-ghost { background: var(--ab-on-dark-glass); color: var(--ab-white); border: 1px solid rgba(255,255,255,.12); }
.ab-btn-ghost:hover { background: var(--ab-on-dark-glass-hover); transform: translateY(-2px); color: var(--ab-white); }
.ab-btn-ghost-white { background: transparent; color: var(--ab-white); border: 1.5px solid var(--ab-on-dark-outline); }
.ab-btn-ghost-white:hover { background: var(--ab-on-dark-glass); transform: translateY(-2px); color: var(--ab-white); }
.ab-btn-dark { background: var(--ab-fg); color: var(--ab-white); }
.ab-btn-dark:hover { background: var(--ab-fg-hover); transform: translateY(-2px); box-shadow: 0 8px 24px rgba(0,0,0,.25); color: var(--ab-white); }
.ab-btn-white { background: var(--ab-white); color: var(--ab-fg); }
.ab-btn-white:hover { background: #f0f0f0; transform: translateY(-2px); box-shadow: 0 8px 24px rgba(0,0,0,.15); color: var(--ab-fg); }

/* === NAV === */
.ab-nav { position: fixed; top: 0; left: 0; right: 0; z-index: 100; transition: all var(--ab-ease-slow); background: var(--ab-fg); }
.ab-nav.scrolled { background: rgba(250,250,247,.95); backdrop-filter: blur(20px); border-bottom: 1px solid var(--ab-border); }
.ab-nav-inner { position: relative; z-index: 1; width: min(var(--ab-container), calc(100% - 2 * var(--ab-gutter))); margin: 0 auto; padding: var(--ab-space-md) 0; display: flex; align-items: center; justify-content: space-between; transition: padding var(--ab-ease-slow); }
.ab-nav.scrolled .ab-nav-inner { padding-top: var(--ab-space-sm); padding-bottom: var(--ab-space-sm); }
.ab-nav-logo { font-family: var(--ab-font-serif); font-size: var(--ab-heading-4); text-decoration: none; color: var(--ab-white); transition: color var(--ab-ease-slow); display: flex; align-items: center; }
.ab-nav-logo img, .ab-nav-logo picture, .ab-nav-logo picture img { height: 36px !important; width: auto !important; max-height: 36px !important; max-width: 176px !important; object-fit: contain !important; }
.ab-nav-logo .ab-nav-logo-dark, .ab-nav-logo picture.ab-nav-logo-dark { display: none !important; }
.ab-nav-logo .ab-nav-logo-light, .ab-nav-logo picture.ab-nav-logo-light { display: block !important; }
.ab-nav.scrolled .ab-nav-logo .ab-nav-logo-dark, .ab-nav.scrolled .ab-nav-logo picture.ab-nav-logo-dark { display: block !important; }
.ab-nav.scrolled .ab-nav-logo .ab-nav-logo-light, .ab-nav.scrolled .ab-nav-logo picture.ab-nav-logo-light { display: none !important; }
.ab-nav.menu-open .ab-nav-logo .ab-nav-logo-dark, .ab-nav.menu-open .ab-nav-logo picture.ab-nav-logo-dark { display: block !important; }
.ab-nav.menu-open .ab-nav-logo .ab-nav-logo-light, .ab-nav.menu-open .ab-nav-logo picture.ab-nav-logo-light { display: none !important; }
.ab-nav-logo span { color: var(--ab-gold); }
.ab-nav.scrolled .ab-nav-logo { color: var(--ab-fg); }
.ab-nav-links { display: flex; gap: var(--ab-space-lg); align-items: center; }
.ab-nav-link { font-size: var(--ab-text-body-sm); font-weight: 500; text-decoration: none; color: var(--ab-on-dark-body); transition: color var(--ab-ease); }
.ab-nav-link:hover { color: var(--ab-white); }
.ab-nav.scrolled .ab-nav-link { color: var(--ab-muted); }
.ab-nav.scrolled .ab-nav-link:hover { color: var(--ab-fg); }
.ab-nav-cta { font-size: var(--ab-text-sm); font-weight: 600; text-decoration: none; color: var(--ab-white) !important; background: var(--ab-accent-btn); padding: var(--ab-space-xs) var(--ab-space-md); border-radius: var(--ab-radius-pill); transition: all .25s ease; }
.ab-nav-cta:hover { background: var(--ab-accent-hover); transform: translateY(-1px); color: var(--ab-white); }
.ab-hamburger { display: none; flex-direction: column; gap: 4px; cursor: pointer; padding: var(--ab-space-xs) 0 var(--ab-space-xs) var(--ab-space-xs); background: none; border: none; min-width: var(--ab-space-2xl); min-height: var(--ab-space-2xl); align-items: flex-end; justify-content: center; }
.ab-hamburger span { width: 22px; height: 1.5px; display: block; transition: transform .3s ease, opacity .2s ease; background: var(--ab-white); transform-origin: center; }
.ab-nav.scrolled .ab-hamburger span { background: var(--ab-fg); }
/* Hamburger → X when menu open */
.ab-nav.menu-open .ab-hamburger span:nth-child(1) { transform: translateY(5.5px) rotate(45deg); }
.ab-nav.menu-open .ab-hamburger span:nth-child(2) { opacity: 0; }
.ab-nav.menu-open .ab-hamburger span:nth-child(3) { transform: translateY(-5.5px) rotate(-45deg); }
.ab-mobile-menu { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: var(--ab-bg); z-index: 99; padding: var(--ab-space-5xl) var(--ab-space-lg) var(--ab-space-xl); display: flex; flex-direction: column; gap: var(--ab-space-xs); overflow-y: auto; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .3s ease, visibility .3s ease; }
.ab-mobile-menu.open { opacity: 1; visibility: visible; pointer-events: auto; }
.ab-mobile-menu a { font-size: var(--ab-heading-3); font-family: var(--ab-font-serif); padding: var(--ab-space-sm) 0; border-bottom: 1px solid var(--ab-border); color: var(--ab-fg); text-decoration: none; min-height: var(--ab-space-2xl); display: flex; align-items: center; opacity: 0; transform: translateY(8px); transition: opacity .25s ease, transform .25s ease, color .2s ease; }
.ab-mobile-menu.open a { opacity: 1; transform: translateY(0); }
.ab-mobile-menu.open a:nth-child(1) { transition-delay: .05s; }
.ab-mobile-menu.open a:nth-child(2) { transition-delay: .1s; }
.ab-mobile-menu.open a:nth-child(3) { transition-delay: .15s; }
.ab-mobile-menu.open a:nth-child(4) { transition-delay: .2s; }
.ab-mobile-menu.open a:nth-child(5) { transition-delay: .25s; }
.ab-mobile-menu a:hover { color: var(--ab-accent); }
.ab-mobile-menu-cta { margin-top: auto; padding-top: var(--ab-space-md); opacity: 0; transform: translateY(8px); transition: opacity .25s ease .3s, transform .25s ease .3s; }
.ab-mobile-menu.open .ab-mobile-menu-cta { opacity: 1; transform: translateY(0); }
.ab-mobile-menu-cta .ab-btn { width: 100%; justify-content: center; font-family: var(--ab-font-sans); font-size: var(--ab-text-body-sm); color: var(--ab-white) !important; border-bottom: none; }
.ab-mobile-menu .ab-mobile-menu-cta a { font-size: var(--ab-text-body-sm); font-family: var(--ab-font-sans); color: var(--ab-white); border-bottom: none; }
/* Mobile menu open: force dark nav elements */
.ab-nav.menu-open { background: var(--ab-bg); }
.ab-nav.menu-open .ab-nav-logo { color: var(--ab-fg); }
.ab-nav.menu-open .ab-hamburger span { background: var(--ab-fg); }
@media (max-width: 768px) {
  .ab-nav-inner { padding: 8px 0 !important; }
  .ab-nav-logo img, .ab-nav-logo picture, .ab-nav-logo picture img { height: 30px !important; max-height: 30px !important; max-width: 152px !important; }
  .ab-footer-logo img, .ab-footer-logo picture, .ab-footer-logo picture img { height: 40px !important; max-height: 40px !important; max-width: 176px !important; }
}

/* === HERO === */
.ab-hero, .ab-page-hero { min-height: 100vh; min-height: 100svh; display: flex; align-items: center; position: relative; overflow: hidden; background: var(--ab-fg); }
.ab-page-hero { min-height: 60vh; }
.ab-hero-img { position: absolute; inset: 0; }
.ab-hero-img img { width: 100%; height: 100%; object-fit: cover; opacity: .5; object-position: 70% center; }
.ab-hero-overlay { position: absolute; inset: 0; background: linear-gradient(180deg,rgba(26,26,26,.3) 0%,rgba(26,26,26,.1) 40%,rgba(26,26,26,.6) 100%); }
.ab-hero-content { position: relative; z-index: 2; width: min(var(--ab-container), calc(100% - 2 * var(--ab-gutter))); margin: 0 auto; padding: 160px 0 var(--ab-space-5xl); }
.ab-hero-badge { display: inline-flex; align-items: center; gap: var(--ab-space-xs); background: var(--ab-on-dark-glass); backdrop-filter: blur(12px); border: 1px solid rgba(255,255,255,.12); border-radius: var(--ab-radius-pill); padding: var(--ab-space-xs) var(--ab-space-md) var(--ab-space-xs) var(--ab-space-sm); margin-bottom: var(--ab-space-lg); }
.ab-hero-badge-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--ab-success); flex-shrink: 0; }
.ab-hero-badge span { font-size: var(--ab-text-sm); font-weight: 500; color: var(--ab-on-dark-body); }
.ab-hero h1, .ab-page-hero h1 { font-size: var(--ab-heading-display); color: var(--ab-white); margin-bottom: var(--ab-space-md); font-family: var(--ab-font-serif); font-weight: 400; line-height: var(--ab-leading-none); letter-spacing: var(--ab-tracking-tight); }
.ab-hero h1 em { font-style: italic; color: var(--ab-gold); }
.ab-hero-sub { font-size: clamp(var(--ab-text-base), 2vw, var(--ab-text-md)); color: var(--ab-on-dark-muted); max-width: 520px; line-height: var(--ab-leading-normal); margin-bottom: var(--ab-space-2xl); }
.ab-hero-actions { display: flex; gap: var(--ab-space-sm); flex-wrap: wrap; margin-bottom: var(--ab-space-3xl); }
.ab-page-hero .ab-hero-actions { margin-bottom: 0; }
.ab-hero-proof { display: flex; gap: var(--ab-space-xl); }
.ab-hero-proof-item { display: flex; flex-direction: column; gap: 4px; }
.ab-hero-proof-num { font-family: var(--ab-font-serif); font-size: var(--ab-heading-3); color: var(--ab-white); }
.ab-hero-proof-label { font-size: var(--ab-text-xs); color: var(--ab-on-dark-subtle); letter-spacing: .5px; }

/* === TRUST STRIP === */
.ab-trust { padding: 24px 0; border-bottom: 1px solid var(--ab-border); margin-block-start: 0 !important; margin-top: 0 !important; }
.ab-trust-inner { display: flex; justify-content: center; gap: var(--ab-space-2xl); flex-wrap: wrap; max-width: var(--ab-container); margin: 0 auto; padding: 0 var(--ab-gutter); }
.ab-trust-item { display: flex; align-items: center; gap: var(--ab-space-xs); font-size: var(--ab-text-body-sm); color: var(--ab-muted); font-weight: 500; }

/* === ICON === */
.ab-icon { width: 24px; height: 24px; stroke: currentColor; fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex-shrink: 0; }
.ab-icon-lg { width: 32px; height: 32px; }
.ab-icon-gold { color: var(--ab-gold); }
.ab-icon-accent { color: var(--ab-accent); }

/* === ABOUT === */
.ab-about-grid { display: grid; grid-template-columns: 5fr 7fr; gap: var(--ab-space-4xl); align-items: center; }
.ab-about-img-wrap { position: relative; }
.ab-about-img { width: 100%; aspect-ratio: 3/4; border-radius: var(--ab-radius-xl); overflow: hidden; background: var(--ab-bg-alt); }
.ab-about-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.ab-about-img:hover img { transform: scale(1.03); }
.ab-about-float { position: absolute; bottom: calc(var(--ab-space-sm) * -1); right: calc(var(--ab-space-sm) * -1); background: var(--ab-card); border-radius: var(--ab-radius); padding: var(--ab-space-md); box-shadow: var(--ab-shadow-lg); display: flex; align-items: center; gap: var(--ab-space-sm); border: 1px solid var(--ab-border); }
.ab-about-float-stars { color: var(--ab-gold); font-size: var(--ab-text-base); letter-spacing: 2px; }
.ab-about-float-text { font-size: var(--ab-text-sm); color: var(--ab-muted); }
.ab-about-float-text strong { display: block; font-size: var(--ab-text-body); color: var(--ab-fg); }
.ab-about-lead { font-size: var(--ab-text-md); color: var(--ab-accent); font-style: italic; font-family: var(--ab-font-serif); }
.ab-about-text { font-size: var(--ab-text-base); color: var(--ab-muted); line-height: var(--ab-leading-relaxed); max-width: 68ch; }
.ab-traits { display: grid; grid-template-columns: 1fr 1fr; gap: var(--ab-space-sm); margin-top: var(--ab-space-lg); }
.ab-trait { display: flex; align-items: center; gap: var(--ab-radius); padding: var(--ab-space-sm); background: var(--ab-bg-alt); border-radius: var(--ab-radius); font-size: var(--ab-text-body-sm); font-weight: 600; color: var(--ab-fg); transition: transform .2s ease; }
.ab-trait:hover { transform: translateX(4px); }

/* === ABOUT PAGE === */
.ab-about-story-grid { display: grid; grid-template-columns: 5fr 7fr; gap: var(--ab-space-4xl); align-items: start; }
.ab-about-photo-col { position: sticky; top: 120px; }
.ab-about-photo-main { aspect-ratio: 3/4; border-radius: var(--ab-radius-xl); overflow: hidden; background: var(--ab-bg-alt); }
.ab-about-photo-main img { width: 100%; height: 100%; object-fit: cover; }
.ab-about-photo-caption { text-align: center; font-size: var(--ab-text-sm); color: var(--ab-muted); margin-top: var(--ab-space-sm); font-style: italic; }
.ab-about-story-col h2 { font-family: var(--ab-font-serif); font-size: var(--ab-heading-2); color: var(--ab-fg); margin-bottom: var(--ab-space-md); line-height: var(--ab-leading-tight); }
.ab-about-story-col p { font-size: var(--ab-text-base); color: var(--ab-muted); line-height: var(--ab-leading-relaxed); margin-bottom: var(--ab-space-md); max-width: 68ch; }
.ab-about-story-col p em { color: var(--ab-fg); }
.ab-stats-bar { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--ab-space-md); text-align: center; padding: var(--ab-space-3xl) 0; }
.ab-stat-num { font-family: var(--ab-font-serif); font-size: var(--ab-heading-2); color: var(--ab-fg); line-height: 1; }
.ab-stat-label { font-size: var(--ab-text-sm); color: var(--ab-muted); margin-top: var(--ab-space-xs); }
.ab-values-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--ab-space-lg); }
.ab-value-card { padding: var(--ab-space-lg); background: var(--ab-card); border: 1px solid var(--ab-border); border-radius: var(--ab-radius-lg); }
.ab-value-card svg { width: 32px; height: 32px; stroke: var(--ab-accent); fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; margin-bottom: var(--ab-space-sm); }
.ab-value-card h3 { font-size: var(--ab-heading-4); font-family: var(--ab-font-serif); color: var(--ab-fg); margin-bottom: var(--ab-space-xs); }
.ab-value-card p { font-size: var(--ab-text-body); color: var(--ab-muted); line-height: var(--ab-leading-relaxed); }
.ab-gallery-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--ab-space-sm); }
.ab-gallery-grid img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: var(--ab-radius); }
.ab-reviews-stack { display: grid; gap: var(--ab-space-md); max-width: 720px; margin: 0 auto; }

/* === TOUR CARDS === */
.ab-tours-header { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: var(--ab-space-2xl); }
.ab-tours-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: var(--ab-space-md); }
.ab-tour-card { background: var(--ab-card); border-radius: var(--ab-radius-xl); border: 1px solid var(--ab-border); transition: box-shadow .3s ease, transform .3s ease, border-color .3s ease; cursor: pointer; display: flex; flex-direction: column; position: relative; z-index: 0; }
.ab-tour-card.ab-reveal { transition: box-shadow .3s ease, transform .3s ease, border-color .3s ease, opacity var(--ab-ease-spring); }
.ab-tour-card:hover { transform: translateY(-6px) !important; box-shadow: var(--ab-shadow-lg); border-color: transparent; }
.ab-tour-img { height: 200px; position: relative; overflow: hidden; display: flex; align-items: center; justify-content: center; border-radius: var(--ab-radius-xl) var(--ab-radius-xl) 0 0; }
.ab-tour-gradient { position: absolute; inset: 0; opacity: .85; }
.ab-tour-photo { position: absolute; inset: 0; }
.ab-tour-photo img { width: 100%; height: 100%; object-fit: cover; }
.ab-tour-photo::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(26,26,26,.2) 0%, rgba(26,26,26,.5) 100%); }
.ab-tour-gradient.t1, .ab-tour-detail-gradient.t1 { background: linear-gradient(135deg, var(--ab-gold) 0%, var(--ab-accent) 100%); }
.ab-tour-gradient.t2, .ab-tour-detail-gradient.t2 { background: linear-gradient(135deg, #3D6B78 0%, var(--ab-fg) 100%); }
.ab-tour-gradient.t3, .ab-tour-detail-gradient.t3 { background: linear-gradient(135deg, #4A7C59 0%, var(--ab-gold) 100%); }
.ab-tour-gradient.t4, .ab-tour-detail-gradient.t4 { background: linear-gradient(135deg, #6B4A7C 0%, var(--ab-gold) 100%); }
.ab-tour-gradient.t5, .ab-tour-detail-gradient.t5 { background: linear-gradient(135deg, var(--ab-accent) 0%, var(--ab-gold) 50%, #3D6B5E 100%); }
.ab-tour-gradient.t6, .ab-tour-detail-gradient.t6 { background: linear-gradient(135deg, var(--ab-fg) 0%, var(--ab-gold) 100%); }
.ab-tour-img-label { position: relative; z-index: 1; font-family: var(--ab-font-serif); font-size: var(--ab-heading-4); color: var(--ab-white); text-align: center; line-height: 1.2; text-shadow: 0 2px 8px rgba(0,0,0,.2); }
.ab-tour-badge { position: absolute; top: var(--ab-space-sm); left: var(--ab-space-sm); z-index: 2; background: var(--ab-accent-btn); color: var(--ab-white); font-size: 10px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; padding: 8px var(--ab-space-sm); border-radius: var(--ab-radius-pill); }
.ab-tour-body { padding: var(--ab-space-md); display: flex; flex-direction: column; flex: 1; }
.ab-tour-body h3 { font-size: var(--ab-text-md); margin-bottom: 4px; margin-top: 0; }
.ab-tour-body .subtitle { font-size: var(--ab-text-body-sm); color: var(--ab-accent); font-weight: 500; margin-bottom: var(--ab-space-sm); }
.ab-tour-body p { font-size: var(--ab-text-body-sm); color: var(--ab-muted); line-height: var(--ab-leading-normal); margin-top: 0 !important; margin-bottom: var(--ab-space-md); flex: 1; }
.ab-tour-footer { display: flex; justify-content: space-between; align-items: center; padding-top: var(--ab-space-sm); border-top: 1px solid var(--ab-border); margin-top: auto; }
.ab-tour-footer .meta { font-size: var(--ab-text-xs); color: var(--ab-muted); font-weight: 500; letter-spacing: .5px; }
.ab-tour-footer .price { font-family: var(--ab-font-serif); font-size: var(--ab-heading-4); color: var(--ab-fg); }
.ab-tour-footer .price small { font-size: var(--ab-text-xs); font-family: var(--ab-font-sans); color: var(--ab-muted); font-weight: 400; }
.ab-tour-cta {
  display: inline-block; margin-top: var(--ab-space-sm); align-self: flex-start;
  padding: 8px 24px; background: var(--ab-accent-btn); color: var(--ab-white);
  border-radius: var(--ab-radius-pill); font-size: var(--ab-text-body-sm);
  font-weight: 600; text-decoration: none; transition: all .25s ease;
  position: static; z-index: auto;
}
.ab-tour-cta::after { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; z-index: 1; border-radius: var(--ab-radius-xl); }
.ab-tour-cta:hover { background: var(--ab-accent-hover); }
@media (max-width: 768px) {
  .ab-tours-scroll-wrap { position: relative; }
  .ab-tours-scroll-wrap::after { content: ''; position: absolute; top: 0; right: 0; bottom: var(--ab-space-sm); width: 32px; background: linear-gradient(to left, var(--ab-bg-alt), transparent); pointer-events: none; z-index: 2; border-radius: 0 var(--ab-radius-xl) var(--ab-radius-xl) 0; }
  .ab-tours-scroll { display: flex; gap: var(--ab-space-sm); overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; padding-bottom: var(--ab-space-sm); scrollbar-width: none; overscroll-behavior-x: contain; }
  .ab-tours-scroll::-webkit-scrollbar { display: none; }
  .ab-tours-scroll .ab-tour-card { flex: 0 0 85vw; scroll-snap-align: start; min-width: 280px; }
  .ab-review-card { flex: 0 0 304px; }
}

/* === WHY CARDS === */
.ab-why-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: var(--ab-space-lg); }
.ab-why-card { text-align: center; padding: var(--ab-space-2xl) var(--ab-space-lg); background: var(--ab-card); border: 1px solid var(--ab-border); border-radius: var(--ab-radius-xl); transition: all .35s ease; }
.ab-why-card:hover { transform: translateY(-4px); box-shadow: 0 12px 40px rgba(0,0,0,.06); border-color: transparent; }
.ab-icon-wrap { width: var(--ab-space-2xl); height: var(--ab-space-2xl); margin: 0 auto var(--ab-space-md); background: var(--ab-bg-alt); border-radius: 50%; display: flex; align-items: center; justify-content: center; }
.ab-icon-wrap svg { color: var(--ab-accent); }

/* === REVIEWS === */
.ab-reviews-stats { display: flex; align-items: baseline; gap: var(--ab-space-sm); margin-top: var(--ab-space-sm); }
.ab-reviews-stats .big { font-family: var(--ab-font-serif); font-size: var(--ab-heading-2); color: var(--ab-white); }
.ab-reviews-stats .stars { color: var(--ab-gold); font-size: var(--ab-text-md); letter-spacing: 3px; }
.ab-reviews-stats .label { font-size: var(--ab-text-body-sm); color: var(--ab-on-dark-subtle); }
.ab-reviews-slider { overflow: hidden; position: relative; cursor: grab; }
.ab-reviews-slider:active { cursor: grabbing; }
.ab-reviews-slider::before, .ab-reviews-slider::after {
  content: ''; position: absolute; top: 0; bottom: 0; width: 24px; z-index: 2; pointer-events: none;
}
.ab-reviews-slider::before { left: 0; background: linear-gradient(to right, var(--ab-fg), transparent); }
.ab-reviews-slider::after { right: 0; background: linear-gradient(to left, var(--ab-fg), transparent); }
.ab-reviews-track {
  display: flex; gap: var(--ab-space-md);
  will-change: transform;
}
.ab-review-card {
  background: var(--ab-on-dark-glass); border: 1px solid var(--ab-on-dark-glass);
  border-radius: var(--ab-radius-xl); padding: var(--ab-space-lg);
  transition: all .35s ease; flex: 0 0 384px; min-width: 0;
}
.ab-review-card:hover { background: var(--ab-on-dark-glass-hover); }
.ab-review-stars { color: var(--ab-gold); font-size: var(--ab-text-body-sm); letter-spacing: 2px; margin-bottom: var(--ab-space-sm); }
.ab-review-card blockquote { font-size: var(--ab-text-body); color: var(--ab-on-dark-body); line-height: var(--ab-leading-relaxed); font-style: italic; margin: 0 0 var(--ab-space-md); border: none; padding: 0; }
.ab-review-author { display: flex; align-items: center; gap: var(--ab-space-sm); }
.ab-review-author > div { line-height: 1.1; }
.ab-review-avatar { width: 40px; height: 40px; border-radius: 50%; background: var(--ab-accent-btn); display: flex; align-items: center; justify-content: center; color: var(--ab-white); font-weight: 700; font-size: var(--ab-text-body); flex-shrink: 0; }
.ab-review-name { font-weight: 600; font-size: var(--ab-text-body-sm); color: var(--ab-white); }
.ab-review-origin { font-size: var(--ab-text-xs); color: var(--ab-on-dark-subtle); display: inline-block; }

/* === SAFETY === */
.ab-safety-layout { display: grid; grid-template-columns: 5fr 7fr; gap: var(--ab-space-4xl); align-items: start; }
.ab-safety-sticky { position: sticky; top: var(--ab-section-pad); }
.ab-safety-cards { display: flex; flex-direction: column; gap: var(--ab-space-sm); }
.ab-safety-card { background: var(--ab-card); border: 1px solid var(--ab-border); border-radius: var(--ab-radius); padding: var(--ab-space-md); display: flex; gap: var(--ab-space-sm); transition: all var(--ab-ease); }
.ab-safety-card:hover { border-color: var(--ab-gold); transform: translateX(4px); }
.ab-safety-icon { width: var(--ab-space-2xl); height: var(--ab-space-2xl); background: var(--ab-bg-alt); border-radius: var(--ab-radius); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.ab-safety-icon svg { color: var(--ab-accent); }
.ab-safety-card h3 { font-family: var(--ab-font-sans); font-size: var(--ab-text-body); font-weight: 600; margin: 0 0 4px; }
.ab-safety-card p { font-size: var(--ab-text-body-sm); color: var(--ab-muted); line-height: 1.65; margin: 0; }

/* === CONTACT === */
.ab-contact-grid { display: grid; grid-template-columns: 5fr 7fr; gap: var(--ab-space-4xl); align-items: stretch; }
.ab-contact-grid > .ab-reveal { display: flex; flex-direction: column; justify-content: center; }
.ab-channels { display: flex; flex-direction: column; gap: var(--ab-space-sm); }
.ab-channel { display: flex; align-items: center; gap: var(--ab-space-sm); padding: var(--ab-space-sm) var(--ab-space-md); background: var(--ab-bg-alt); border-radius: var(--ab-radius); border: 1px solid transparent; transition: all var(--ab-ease); text-decoration: none; color: var(--ab-fg); min-height: var(--ab-space-2xl); }
.ab-channel:hover { border-color: var(--ab-border); transform: translateX(4px); background: var(--ab-card); color: var(--ab-fg); }
.ab-ch-icon { width: var(--ab-space-2xl); height: var(--ab-space-2xl); border-radius: var(--ab-radius); background: var(--ab-card); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.ab-ch-icon svg { color: var(--ab-accent); }
.ab-channel strong { font-size: var(--ab-text-body-sm); display: block; }
.ab-channel span { font-size: var(--ab-text-sm); color: var(--ab-muted); }

/* === FORM === */
.ab-form-wrap { background: var(--ab-card); border: 1px solid var(--ab-border); border-radius: var(--ab-radius-xl); padding: var(--ab-space-xl); display: flex; flex-direction: column; height: 100%; }
.ab-form-wrap form { display: flex; flex-direction: column; flex: 1; }
.ab-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--ab-space-sm); }
.ab-form-group { margin-bottom: var(--ab-space-md); }
.ab-form-group label { display: block; font-size: var(--ab-text-sm); font-weight: 600; color: var(--ab-fg); margin-bottom: var(--ab-space-xs); }
.ab-form-group input, .ab-form-group select, .ab-form-group textarea { width: 100%; padding: var(--ab-radius) var(--ab-space-sm); font-size: var(--ab-text-base); font-family: var(--ab-font-sans); border: 1.5px solid var(--ab-border); border-radius: var(--ab-radius); background: var(--ab-bg); color: var(--ab-fg); transition: all .25s ease; outline: none; min-height: var(--ab-space-2xl); }
.ab-form-group input:focus, .ab-form-group select:focus, .ab-form-group textarea:focus { border-color: var(--ab-accent); box-shadow: 0 0 0 3px rgba(194,87,42,.08); }
.ab-form-group.focused label { color: var(--ab-accent); }
.ab-form-group textarea { resize: vertical; min-height: var(--ab-space-5xl); }
.ab-form-submit { width: 100%; padding: var(--ab-space-sm); background: var(--ab-accent-btn); color: var(--ab-white); border: none; border-radius: var(--ab-radius-pill); font-size: var(--ab-text-body-sm); font-weight: 600; cursor: pointer; font-family: var(--ab-font-sans); transition: all var(--ab-ease); min-height: var(--ab-space-2xl); margin-top: var(--ab-space-sm); }
.ab-form-submit:hover { background: var(--ab-accent-hover); transform: translateY(-2px); box-shadow: 0 8px 24px rgba(177,77,37,.2); }

/* === FOOTER === */
.ab-footer { background: var(--ab-fg); padding: var(--ab-space-5xl) 0 var(--ab-space-lg); }
.ab-footer-inner { width: min(var(--ab-container), calc(100% - 2 * var(--ab-gutter))); margin: 0 auto; }
.ab-footer-grid { display: grid; grid-template-columns: 1.8fr 1fr 1fr 1fr 1fr; gap: var(--ab-space-2xl); }
.ab-footer-logo { font-family: var(--ab-font-serif); font-size: var(--ab-heading-4); color: var(--ab-white); margin-bottom: var(--ab-space-sm); }
.ab-footer-logo img, .ab-footer-logo picture, .ab-footer-logo picture img { height: 48px !important; width: auto !important; max-height: 48px !important; max-width: 200px !important; display: block !important; object-fit: contain !important; }
.ab-footer-logo span { color: var(--ab-gold); }
.ab-footer-desc { font-size: var(--ab-text-body-sm); line-height: var(--ab-leading-relaxed); color: var(--ab-on-dark-muted); }
.ab-footer-heading { font-family: var(--ab-font-sans); font-size: var(--ab-text-sm); font-weight: 600; letter-spacing: 2px; text-transform: uppercase; color: var(--ab-on-dark-heading); margin: 0 0 var(--ab-space-sm); }
.ab-footer-links { list-style: none; padding: 0; margin: 0; }
.ab-footer-links li { margin-bottom: var(--ab-space-xs); }
.ab-footer-links a { font-size: var(--ab-text-body-sm); color: var(--ab-on-dark-muted); text-decoration: none; transition: color var(--ab-ease); }
.ab-footer-links a:hover { color: var(--ab-white); }
.ab-footer-divider { border: none; border-top: 1px solid var(--ab-on-dark-border); margin: var(--ab-space-2xl) 0 var(--ab-space-lg); }
.ab-footer-copy { font-size: var(--ab-text-sm); color: var(--ab-on-dark-muted); text-align: center; margin: 0; }

/* === STICKY CTA === */
.ab-sticky-cta { display: none; position: fixed; bottom: 0; left: 0; right: 0; z-index: 90; padding: var(--ab-space-sm) var(--ab-gutter) calc(var(--ab-space-sm) + env(safe-area-inset-bottom, 0)); pointer-events: none; }
.ab-sticky-cta .ab-btn { display: flex; max-width: var(--ab-container); width: 100%; margin: 0 auto; justify-content: center; pointer-events: auto; box-shadow: 0 4px 24px rgba(177,77,37,.35); }

/* === ANIMATIONS === */
@keyframes fadeUp { from { opacity: 0; transform: translateY(var(--ab-space-md)); } to { opacity: 1; transform: translateY(0); } }
.ab-reveal { opacity: 0; transform: translateY(var(--ab-space-lg)); transition: all var(--ab-ease-spring); }
.ab-reveal.v { opacity: 1; transform: translateY(0); }
.ab-reveal-d1 { transition-delay: .1s; } .ab-reveal-d2 { transition-delay: .2s; } .ab-reveal-d3 { transition-delay: .3s; }
.ab-hero-badge { opacity: 0; animation: fadeUp .7s .2s forwards; }
.ab-hero h1, .ab-page-hero h1 { opacity: 0; animation: fadeUp .7s .35s forwards; }
.ab-hero-sub { opacity: 0; animation: fadeUp .7s .5s forwards; }
.ab-hero-actions { opacity: 0; animation: fadeUp .7s .65s forwards; }
.ab-hero-proof { opacity: 0; animation: fadeUp .7s .8s forwards; }
.ab-img-reveal { opacity: 0; transform: scale(.98); transition: all .6s ease; }
.ab-img-reveal.v { opacity: 1; transform: scale(1); }

/* === REDUCED MOTION === */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
  .ab-reveal { opacity: 1; transform: none; }
  .ab-hero-badge, .ab-hero h1, .ab-page-hero h1, .ab-hero-sub, .ab-hero-actions, .ab-hero-proof { opacity: 1; }
}

/* === PERFORMANCE === */
/* section-lazy: removed content-visibility (conflicts with Breeze cache) */

/* === PRINT === */
@media print {
  .ab-nav, .ab-sticky-cta, .ab-mobile-menu, .ab-hero-overlay, .ab-hero-img, .ab-footer { display: none !important; }
  .ab-hero { min-height: auto; background: var(--ab-white); padding: 40px 0; }
  .ab-hero h1 { color: var(--ab-fg); opacity: 1; }
  body { font-size: 12pt; line-height: 1.5; color: var(--ab-fg); background: var(--ab-white); }
}

/* === RESPONSIVE === */
@media (max-width: 1024px) {
  .ab-about-grid, .ab-safety-layout, .ab-contact-grid { grid-template-columns: 1fr; gap: var(--ab-space-2xl); }
  .ab-form-wrap { height: auto; }
  .ab-safety-sticky { position: static; }
  .ab-tours-grid, .ab-blog-grid { grid-template-columns: 1fr 1fr; }
  .ab-footer-grid { grid-template-columns: 1fr 1fr; gap: var(--ab-space-lg); }
}
@media (max-width: 768px) {
  .ab-nav-links { display: none; }
  .ab-hamburger { display: flex; }
  .ab-hero-content { padding: 136px 0 var(--ab-space-4xl); }
  .ab-hero-img img { object-position: 80% center; }
  .ab-hero-overlay { background: linear-gradient(180deg,rgba(26,26,26,.5) 0%,rgba(26,26,26,.35) 40%,rgba(26,26,26,.75) 100%); }
  .ab-hero-proof { gap: var(--ab-space-md); }
  .ab-tours-grid, .ab-why-grid, .ab-blog-grid { grid-template-columns: 1fr; }
  .ab-trust-inner { display: grid; grid-template-columns: 1fr 1fr; gap: var(--ab-space-sm) var(--ab-space-md); justify-items: start; }
  .ab-form-row { grid-template-columns: 1fr; gap: 0; }
  .ab-contact-grid { max-width: 100%; }
  .ab-contact-grid > * { min-width: 0; }
  .ab-form-wrap { padding: 32px; position: relative; }
  .ab-phone-wrap { position: static; }
  .ab-phone-dropdown { left: 0; right: 0; }
  .ab-tours-header { flex-direction: column; align-items: flex-start; gap: var(--ab-space-xs); }
  .ab-sticky-cta { display: block; }
  .ab-blog-float-cta { display: none !important; }
  .ab-section-pad-md { padding-top: 40px !important; padding-bottom: 48px !important; }
  .ab-footer-copy { padding-bottom: var(--ab-space-3xl); }
  .ab-about-float { right: 0; bottom: calc(var(--ab-space-xs) * -1); }
  .ab-traits { grid-template-columns: 1fr; }
  .ab-about-story-grid { grid-template-columns: 1fr; gap: var(--ab-space-2xl); }
  .ab-about-photo-col { position: static; }
  .ab-stats-bar { grid-template-columns: repeat(2, 1fr); gap: var(--ab-space-lg); }
  .ab-values-grid { grid-template-columns: 1fr; }
  .ab-gallery-grid { grid-template-columns: 1fr 1fr; }
  .ab-footer-grid { grid-template-columns: 1fr; gap: var(--ab-space-lg); }
}

/* === TEMPLATE UTILITY CLASSES === */
/* Override WordPress block inline styles with design tokens */
.ab-dark-hero { background: var(--ab-fg) !important; padding-top: 160px !important; padding-bottom: var(--ab-space-3xl) !important; }
.ab-dark-hero h1, .ab-dark-hero h2, .ab-dark-hero .wp-block-heading { color: var(--ab-on-dark) !important; font-family: var(--ab-font-serif) !important; margin-bottom: var(--ab-space-md) !important; }
.ab-dark-hero p { color: var(--ab-on-dark-muted) !important; }
.ab-post-date-hero { color: var(--ab-on-dark-muted) !important; font-size: var(--ab-text-sm) !important; text-align: center; letter-spacing: var(--ab-tracking-wide); }

/* ===================================================
   SINGLE POST HERO — v5.0
   Featured image background with overlay
   =================================================== */
.ab-single-hero {
  position: relative; min-height: 50vh; display: flex; align-items: flex-end;
  background: var(--ab-fg); background-size: cover; background-position: center;
  padding: 160px var(--ab-gutter) var(--ab-space-3xl);
  overflow: hidden;
}
.ab-single-hero.has-image { min-height: 55vh; }
.ab-single-hero-overlay {
  position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(180deg, rgba(26,26,26,.7) 0%, rgba(26,26,26,.5) 40%, rgba(26,26,26,.9) 100%);
}
.ab-single-hero.has-image .ab-single-hero-overlay {
  background: linear-gradient(180deg, rgba(26,26,26,.7) 0%, rgba(26,26,26,.5) 40%, rgba(26,26,26,.9) 100%);
}
.ab-single-hero-content {
  position: relative; z-index: 2;
  width: min(var(--ab-content), 100%);
  margin: 0 auto; text-align: center;
}
.ab-single-hero-title {
  font-family: var(--ab-font-serif); font-size: var(--ab-heading-1);
  color: var(--ab-white); font-weight: 400;
  line-height: var(--ab-leading-tight); letter-spacing: var(--ab-tracking-tight);
  margin: 0 0 var(--ab-space-md);
  opacity: 0; animation: fadeUp .7s .3s forwards;
}
.ab-single-hero-meta {
  display: flex; align-items: center; justify-content: center; gap: var(--ab-space-xs);
  font-size: var(--ab-text-sm); color: var(--ab-on-dark-muted);
  letter-spacing: var(--ab-tracking-wide);
  opacity: 0; animation: fadeUp .7s .5s forwards;
}
.ab-single-hero-sep { opacity: .4; }

/* Breadcrumbs */
.ab-breadcrumbs {
  font-size: var(--ab-text-sm); margin-bottom: var(--ab-space-lg);
  opacity: 0; animation: fadeUp .7s .15s forwards;
}
.ab-breadcrumbs a {
  color: var(--ab-on-dark-muted); text-decoration: none;
  transition: color var(--ab-ease);
}
.ab-breadcrumbs a:hover { color: var(--ab-white); }
.ab-bc-sep { margin: 0 var(--ab-space-xs); color: var(--ab-on-dark-subtle); font-size: 11px; }

@media (max-width: 768px) {
  .ab-single-hero { min-height: 45vh; padding-top: 136px; padding-bottom: var(--ab-space-2xl); }
  .ab-single-hero.has-image { min-height: 45vh; }
  .ab-single-hero-overlay { background: linear-gradient(180deg, rgba(26,26,26,.7) 0%, rgba(26,26,26,.5) 40%, rgba(26,26,26,.9) 100%); }
}

/* ===================================================
   SOCIAL SHARE
   =================================================== */
.ab-social-share {
  max-width: calc(var(--ab-content) + 2 * var(--ab-gutter));
  margin: 0 auto;
  padding: var(--ab-space-2xl) var(--ab-gutter) var(--ab-space-lg);
  position: relative;
}
.ab-social-share::before {
  content: '';
  display: block;
  position: absolute;
  top: 0;
  left: var(--ab-gutter);
  right: var(--ab-gutter);
  height: 1px;
  background: var(--ab-border);
}
.ab-share-label {
  font-size: var(--ab-text-sm); font-weight: 600; letter-spacing: var(--ab-tracking-wide);
  text-transform: uppercase; color: var(--ab-muted); margin: 0 0 var(--ab-space-md);
}
.ab-share-buttons { display: flex; gap: var(--ab-space-sm); flex-wrap: wrap; }
.ab-share-btn {
  display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; border-radius: 50%;
  background: var(--ab-bg-alt); color: var(--ab-muted);
  text-decoration: none; border: none; cursor: pointer;
  transition: all .25s ease; position: relative;
  font-family: inherit; font-size: inherit;
}
.ab-share-btn:hover { transform: translateY(-2px); }
.ab-share-facebook:hover { background: #1877f2; color: var(--ab-white); }
.ab-share-x:hover { background: var(--ab-fg); color: var(--ab-white); }
.ab-share-whatsapp:hover { background: #25D366; color: var(--ab-white); }
.ab-share-email:hover { background: var(--ab-accent); color: var(--ab-white); }
.ab-share-copy:hover { background: var(--ab-fg); color: var(--ab-white); }
.ab-copy-tooltip {
  position: absolute; bottom: calc(100% + 8px); left: 50%; transform: translateX(-50%);
  background: var(--ab-fg); color: var(--ab-white); font-size: 11px; font-weight: 600;
  padding: 4px 10px; border-radius: var(--ab-radius-sm); white-space: nowrap;
  opacity: 0; pointer-events: none; transition: opacity .2s;
}
.ab-share-copy.copied .ab-copy-tooltip { opacity: 1; }

/* ===================================================
   AUTHOR BOX
   =================================================== */
.ab-author-box {
  max-width: calc(var(--ab-content) + 2 * var(--ab-gutter));
  margin: 0 auto;
  padding: var(--ab-space-lg) var(--ab-gutter) var(--ab-space-xl);
}
.ab-author-box-inner {
  display: flex; gap: var(--ab-space-lg); align-items: flex-start;
  padding: var(--ab-space-xl);
  background: var(--ab-bg-alt); border-radius: var(--ab-radius-xl);
  border: 1px solid var(--ab-border);
}
.ab-author-photo {
  width: 80px; height: 80px; border-radius: 50%; object-fit: cover; flex-shrink: 0;
  border: 3px solid var(--ab-white); box-shadow: var(--ab-shadow-sm);
}
.ab-author-eyebrow {
  font-size: var(--ab-text-xs); font-weight: 600;
  letter-spacing: var(--ab-tracking-eyebrow); text-transform: uppercase;
  color: var(--ab-accent); margin: 0 0 4px; line-height: 1;
}
.ab-author-name {
  font-family: var(--ab-font-serif); font-size: var(--ab-heading-4);
  color: var(--ab-fg); margin: 0 0 var(--ab-space-xs); line-height: 1.2;
}
.ab-author-bio {
  font-size: var(--ab-text-body); color: var(--ab-muted);
  line-height: var(--ab-leading-relaxed); margin: 0 0 var(--ab-space-sm);
}
.ab-author-links { display: flex; gap: var(--ab-space-sm); flex-wrap: wrap; }
.ab-author-link {
  font-size: var(--ab-text-body-sm); font-weight: 600; color: var(--ab-accent);
  text-decoration: none; transition: color var(--ab-ease);
}
.ab-author-link:hover { color: var(--ab-accent-hover); }

@media (max-width: 600px) {
  .ab-author-box-inner { flex-direction: column; align-items: center; text-align: center; }
  .ab-author-links { justify-content: center; flex-direction: column; gap: var(--ab-space-xs); }
}

/* ===================================================
   RELATED POSTS
   =================================================== */
.ab-related-posts {
  max-width: calc(var(--ab-content) + 2 * var(--ab-gutter));
  margin: 0 auto;
  padding: var(--ab-space-lg) var(--ab-gutter) var(--ab-space-4xl);
}
.ab-related-title {
  font-family: var(--ab-font-serif); font-size: var(--ab-heading-4);
  color: var(--ab-fg); margin: 0 0 var(--ab-space-md);
}
.ab-related-grid {
  display: grid; grid-template-columns: 1fr; gap: 0;
  border: 1px solid var(--ab-border); border-radius: var(--ab-radius-lg);
  overflow: hidden;
}
.ab-related-card {
  display: flex; align-items: center; justify-content: space-between;
  padding: var(--ab-space-md) var(--ab-space-lg);
  text-decoration: none; color: var(--ab-fg);
  background: var(--ab-bg-alt);
  transition: color .2s ease;
  border-bottom: 1px solid var(--ab-border);
}
.ab-related-card:last-child { border-bottom: none; }
.ab-related-card-title {
  font-family: var(--ab-font-serif); font-size: var(--ab-text-base);
  font-weight: 400; line-height: 1.4; color: var(--ab-fg);
}
.ab-related-card:hover .ab-related-card-title { color: var(--ab-accent); }
.ab-related-card-meta {
  font-size: var(--ab-text-sm); color: var(--ab-muted); white-space: nowrap;
  margin-left: var(--ab-space-md);
}

/* ===================================================
   INLINE TOC SHORTCODE [ab_toc]
   =================================================== */
.ab-toc-inline {
  margin: var(--ab-space-xl) 0 var(--ab-space-2xl);
  padding: var(--ab-space-lg) var(--ab-space-xl);
  background: var(--ab-bg-alt); border-radius: var(--ab-radius-lg);
  border: 1px solid var(--ab-border);
}
.ab-toc-inline-header {
  display: flex; align-items: center; gap: var(--ab-space-xs);
  margin-bottom: var(--ab-space-sm);
}
.ab-toc-inline-icon {
  color: var(--ab-accent); display: flex; align-items: center;
}
.ab-toc-inline-title {
  font-size: var(--ab-text-sm); font-weight: 700;
  letter-spacing: 1.5px; text-transform: uppercase; color: var(--ab-fg);
}
.ab-toc-inline-list {
  list-style: none; padding: 0; margin: 0;
  counter-reset: toc-counter;
}
.ab-toc-inline-list li {
  counter-increment: toc-counter;
  margin-bottom: 0;
}
.ab-toc-inline-list a {
  display: flex; align-items: baseline; gap: var(--ab-space-xs);
  padding: var(--ab-space-xs) 0;
  font-size: var(--ab-text-body); color: var(--ab-muted);
  text-decoration: none; transition: color .2s ease;
  border-bottom: 1px solid var(--ab-border);
}
.ab-toc-inline-list li:last-child a { border-bottom: none; }
.ab-toc-inline-list a::before {
  content: counter(toc-counter) ".";
  font-size: var(--ab-text-sm); font-weight: 600; color: var(--ab-accent);
  min-width: 20px;
}
.ab-toc-inline-list a:hover { color: var(--ab-accent); }

/* === BLOG FLOATING CTA === */
.ab-blog-float-cta { position: fixed; bottom: var(--ab-space-lg); left: var(--ab-space-lg); z-index: 80; box-shadow: 0 4px 24px rgba(177,77,37,.35); opacity: 0; pointer-events: none; transition: opacity .3s ease; }
.ab-blog-float-cta.visible { opacity: 1; pointer-events: auto; }


/* Remove gap between CTA band and footer */
.single .ab-footer { margin-top: 0 !important; }
.single .entry-content + *, .single .wp-block-group + section, .single section + footer { margin-top: 0 !important; }

/* === BLOG FLOATING TOC === */
.ab-toc {
  position: fixed; top: 120px;
  left: calc((100vw - 1200px) / 2); z-index: 70; width: 176px;
  max-height: calc(100vh - 240px); overflow-y: auto;
  padding-top: 4px;
  opacity: 0; pointer-events: none; transition: opacity .3s ease;
}
.ab-toc.visible { opacity: 1; pointer-events: auto; }
.ab-toc-title { font-size: 11px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: var(--ab-fg); margin-bottom: var(--ab-space-xs); padding-left: var(--ab-space-sm); }
.ab-toc ul { list-style: none; margin: 0; padding: 0; border-left: 2px solid var(--ab-border); }
.ab-toc li { margin: 0; }
.ab-toc a {
  display: block; padding: 8px var(--ab-space-sm); font-size: 13px; line-height: 1.4;
  color: var(--ab-muted); text-decoration: none; border-left: 2px solid transparent;
  margin-left: -2px; transition: all .2s ease;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.ab-toc a:hover { color: var(--ab-fg); }
.ab-toc a.active { color: var(--ab-accent); border-left-color: var(--ab-accent); font-weight: 600; }
@media (max-width: 1280px) { .ab-toc { display: none !important; } }

/* ── Blog archive cards ── */
.ab-blog-grid { gap: var(--ab-space-lg) !important; }
.ab-blog-grid > li { display: flex; }

.ab-blog-card {
  background: var(--ab-card); border: 1px solid var(--ab-border);
  border-radius: var(--ab-radius-xl); overflow: hidden;
  box-shadow: 0 1px 3px rgba(0,0,0,.04);
  transition: box-shadow .3s ease, transform .3s ease;
  display: flex; flex-direction: column; width: 100%;
  position: relative; cursor: pointer; padding: 0 !important;
}
.ab-blog-card:hover { box-shadow: 0 8px 24px rgba(0,0,0,.1); transform: translateY(-4px); }

/* Kill WordPress margin-block-start on all direct children */
.ab-blog-card > * { margin-block-start: 0 !important; margin-top: 0 !important; }

/* Thumbnail */
.ab-blog-card-img {
  margin: 0 !important; margin-block-start: 0 !important; margin-block-end: 0 !important;
  position: relative; overflow: hidden;
}
.ab-blog-card-img img {
  width: 100%; height: auto; aspect-ratio: 16/9; object-fit: cover;
  display: block; transition: transform .4s ease;
}
.ab-blog-card:hover .ab-blog-card-img img { transform: scale(1.03); }

/* Zero out WP figure margins inside the card */
.ab-blog-card figure,
.ab-blog-card .wp-block-post-featured-image,
.ab-blog-card .wp-block-post-featured-image * {
  margin: 0 !important; margin-block-start: 0 !important; margin-block-end: 0 !important;
  display: block;
}

/* Dark overlay — moves with card on hover */
.ab-blog-card-img::after {
  content: ''; position: absolute; inset: 0 0 -8px 0;
  background: linear-gradient(180deg, rgba(26,26,26,.7) 0%, rgba(26,26,26,.5) 40%, rgba(26,26,26,.9) 100%);
  pointer-events: none; z-index: 1; transition: transform .3s ease;
}
.ab-blog-card:hover .ab-blog-card-img::after { transform: translateY(-6px); }

/* Card body */
.ab-blog-card-body {
  background: var(--ab-bg-alt) !important;
  padding: var(--ab-space-md) !important;
  display: flex; flex-direction: column; flex: 1; gap: 0 !important;
  margin-block-start: 0 !important; margin-top: 0 !important;
}
.ab-blog-card-body > * { margin-block-start: 0 !important; margin-block-end: 0 !important; }

/* Title */
.ab-blog-card-title {
  font-size: var(--ab-text-base) !important; line-height: 1.3 !important;
  margin-bottom: var(--ab-space-xs) !important; overflow: hidden !important;
}
.ab-blog-card-title a {
  display: -webkit-box !important; -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important; overflow: hidden !important;
  white-space: normal !important;
  color: var(--ab-fg) !important; text-decoration: none !important; transition: color .2s ease;
}
.ab-blog-card-title a::after { content: ''; position: absolute; inset: 0; z-index: 1; }
.ab-blog-card:hover .ab-blog-card-title a { color: var(--ab-accent) !important; }

/* Date */
.ab-blog-card-date { font-size: var(--ab-text-sm) !important; color: var(--ab-muted) !important; margin-bottom: var(--ab-space-sm) !important; }

/* Excerpt */
.ab-blog-card-excerpt { font-size: var(--ab-text-body-sm) !important; line-height: var(--ab-leading-normal) !important; color: var(--ab-muted) !important; margin-top: auto !important; }
.ab-blog-card-excerpt .wp-block-post-excerpt__excerpt { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.ab-blog-card-excerpt .wp-block-post-excerpt__more-text a { color: var(--ab-accent) !important; text-decoration: none !important; font-weight: 600; font-size: var(--ab-text-body-sm); }

/* 1-line title on desktop grid */
@media (min-width: 901px) {
  .ab-blog-card-title a { -webkit-line-clamp: 1 !important; }
}
/* Page content — constrain text blocks, patterns handle own widths */
.ab-page-content > .wp-block-post-content > p,
.ab-page-content > .wp-block-post-content > h1,
.ab-page-content > .wp-block-post-content > h2,
.ab-page-content > .wp-block-post-content > h3,
.ab-page-content > .wp-block-post-content > h4,
.ab-page-content > .wp-block-post-content > ul,
.ab-page-content > .wp-block-post-content > ol,
.ab-page-content > .wp-block-post-content > blockquote,
.ab-page-content > .wp-block-post-content > .wp-block-heading {
  max-width: 720px; margin-left: auto; margin-right: auto;
}
.ab-page-content > .wp-block-post-content { padding-left: var(--wp--style--root--padding-left, var(--ab-gutter)); padding-right: var(--wp--style--root--padding-right, var(--ab-gutter)); }
.ab-page-content > .wp-block-post-content > .wp-block-group,
.ab-page-content > .wp-block-post-content > section,
.ab-page-content > .wp-block-post-content > .ab-dark-hero,
.ab-page-content > .wp-block-post-content > .ab-page-hero { max-width: none; margin-left: calc(-1 * var(--wp--style--root--padding-left, var(--ab-gutter))); margin-right: calc(-1 * var(--wp--style--root--padding-right, var(--ab-gutter))); }

/* Top spacing after any full-width pattern — only for regular content blocks, not section-to-section */
.ab-page-content > .wp-block-post-content > section + :not(section):not(.ab-dark-hero):not(.ab-page-hero):not([style*="background"]):not(.ab-trust),
.ab-page-content > .wp-block-post-content > .ab-dark-hero + :not(section):not(.ab-dark-hero):not(.ab-page-hero):not([style*="background"]):not(.ab-trust),
.ab-page-content > .wp-block-post-content > .ab-page-hero + :not(section):not(.ab-dark-hero):not(.ab-page-hero):not([style*="background"]):not(.ab-trust) { margin-top: 64px !important; }
@media (max-width: 768px) {
  .ab-page-content > .wp-block-post-content > section + :not(section):not(.ab-dark-hero):not(.ab-page-hero):not([style*="background"]):not(.ab-trust),
  .ab-page-content > .wp-block-post-content > .ab-dark-hero + :not(section):not(.ab-dark-hero):not(.ab-page-hero):not([style*="background"]):not(.ab-trust),
  .ab-page-content > .wp-block-post-content > .ab-page-hero + :not(section):not(.ab-dark-hero):not(.ab-page-hero):not([style*="background"]):not(.ab-trust) { margin-top: 40px !important; }
}

/* List spacing — override WP constrained layout margin reset */
.ab-page-content > .wp-block-post-content > ul,
.ab-page-content > .wp-block-post-content > ol,
.ab-page-content > .wp-block-post-content > .wp-block-list { margin-top: var(--ab-space-md) !important; margin-bottom: var(--ab-space-md) !important; margin-block-start: var(--ab-space-md) !important; margin-block-end: var(--ab-space-md) !important; }
.ab-page-content .wp-block-list li { margin-block-end: var(--ab-space-xs) !important; }
/* Ordered lists in WP block content — gold numbers, no bullet dots */
.ab-page-content ol.wp-block-list,
.ab-page-content ol.wp-block-list[style] {
  list-style-type: decimal !important;
}
.ab-page-content ol.wp-block-list li {
  list-style-type: decimal !important;
}
.ab-page-content ol.wp-block-list li::marker {
  color: var(--ab-gold) !important;
  font-weight: 600;
}
.ab-page-content ol.wp-block-list li::before {
  display: none !important;
}
.ab-page-content .wp-block-list .wp-block-list { margin-top: var(--ab-space-xs) !important; margin-bottom: 0 !important; margin-block-start: var(--ab-space-xs) !important; margin-block-end: 0 !important; }
.ab-page-content > .wp-block-post-content > ul ul,
.ab-page-content > .wp-block-post-content > ul ol,
.ab-page-content > .wp-block-post-content > ol ul,
.ab-page-content > .wp-block-post-content > ol ol { margin-top: var(--ab-space-xs); margin-bottom: 0; padding-left: var(--ab-space-lg); }

/* Bottom spacing before footer */
.ab-page-content > .wp-block-post-content > p:last-child,
.ab-page-content > .wp-block-post-content > ul:last-child,
.ab-page-content > .wp-block-post-content > ol:last-child,
.ab-page-content > .wp-block-post-content > blockquote:last-child,
.ab-page-content > .wp-block-post-content > .wp-block-heading:last-child { margin-bottom: 96px; }
@media (max-width: 768px) {
  .ab-page-content > .wp-block-post-content > p:last-child,
  .ab-page-content > .wp-block-post-content > ul:last-child,
  .ab-page-content > .wp-block-post-content > ol:last-child { margin-bottom: 64px; }
}

/* Sticky footer — no white gap on short pages */
body { display: flex; flex-direction: column; min-height: 100vh; }
body > .wp-site-blocks { display: flex; flex-direction: column; min-height: 100vh; }
body > .wp-site-blocks > main,
body > .wp-site-blocks > .ab-page-content { flex: 1; }

/* --- Pagination (blog archive) --- */
.ab-pagination { margin-top: var(--ab-space-2xl) !important; }
.ab-pagination .wp-block-query-pagination-numbers {
  display: flex !important; gap: var(--ab-space-xs) !important; align-items: center !important;
}
.ab-pagination a,
.ab-pagination span {
  display: inline-flex !important; align-items: center !important; justify-content: center !important;
  min-width: var(--ab-space-2xl) !important; height: var(--ab-space-2xl) !important;
  padding: 0 var(--ab-space-sm) !important;
  font-size: var(--ab-text-base) !important; font-weight: 600 !important;
  color: var(--ab-fg) !important; text-decoration: none !important;
  border-radius: var(--ab-radius) !important;
  background: rgba(194,87,42,.06) !important;
  transition: all .2s ease !important;
}
.ab-pagination a:hover,
.ab-pagination span:not(.current):hover {
  color: var(--ab-white) !important;
  background: var(--ab-accent) !important;
}
.ab-pagination .current {
  color: var(--ab-white) !important; font-weight: 700 !important;
  background: var(--ab-accent) !important;
}
.ab-pagination .wp-block-query-pagination-previous,
.ab-pagination .wp-block-query-pagination-next {
  padding: 0 var(--ab-space-md) !important;
}
@media (max-width: 900px) { .ab-blog-grid { grid-template-columns: 1fr 1fr !important; } }
@media (max-width: 600px) { .ab-blog-grid { grid-template-columns: 1fr !important; } }
.ab-heading-serif { font-family: var(--ab-font-serif) !important; }
.ab-heading-1 { font-size: var(--ab-heading-1) !important; }
.ab-heading-2 { font-size: var(--ab-heading-2) !important; }
.ab-text-muted { color: var(--ab-muted) !important; }
.ab-text-on-dark { color: var(--ab-on-dark-muted) !important; }
.ab-content-width { max-width: var(--ab-content) !important; }
.ab-section-pad-lg { padding-top: var(--ab-space-4xl) !important; padding-bottom: var(--ab-space-4xl) !important; margin-block-start: 0 !important; }
.ab-section-pad-md { padding-top: var(--ab-space-5xl); padding-bottom: var(--ab-space-5xl); }
.ab-404-hero { background: var(--ab-fg) !important; padding-top: 200px !important; padding-bottom: 200px !important; }

/* ===== FAQ ===== */
.ab-faq-list { display: flex; flex-direction: column; gap: 0; }
.ab-faq-item {
  border-bottom: 1px solid var(--ab-border);
}
.ab-faq-item summary {
  display: flex; align-items: center; justify-content: space-between;
  padding: var(--ab-space-md) 0; font-size: var(--ab-text-base);
  font-weight: 600; cursor: pointer; list-style: none; color: var(--ab-fg);
  transition: color .2s, padding .3s ease;
}
.ab-faq-item summary::-webkit-details-marker { display: none; }
.ab-faq-item summary::after {
  content: '+'; font-size: 24px; font-weight: 300; color: var(--ab-muted);
  transition: color .3s; flex-shrink: 0; margin-left: var(--ab-space-sm);
}
.ab-faq-item.is-open summary::after { content: '−'; color: var(--ab-accent); }
.ab-faq-item.is-open summary { padding-bottom: var(--ab-space-xs); }
.ab-faq-item summary:hover { color: var(--ab-accent); }
.ab-faq-answer {
  display: grid; grid-template-rows: 0fr;
  transition: grid-template-rows .3s ease;
}
.ab-faq-item.is-open .ab-faq-answer {
  grid-template-rows: 1fr;
}
.ab-faq-answer-inner {
  overflow: hidden;
}
.ab-faq-answer-inner p {
  font-size: var(--ab-text-base); color: var(--ab-muted);
  line-height: var(--ab-leading-relaxed); margin: 0;
  padding-bottom: var(--ab-space-md);
}

/* ===== Phone country dropdown ===== */
.ab-phone-wrap { position: relative; display: flex; align-items: stretch; }
.ab-phone-toggle {
  display: flex; align-items: center; gap: 8px;
  padding: 0 8px; background: var(--ab-bg-alt); border: 1.5px solid var(--ab-border);
  border-right: none; border-radius: var(--ab-radius) 0 0 var(--ab-radius);
  cursor: pointer; white-space: nowrap; font-size: var(--ab-text-base); letter-spacing: normal;
  position: relative; z-index: 2;
}
.ab-phone-toggle:hover { background: var(--ab-border); }
.ab-phone-flag { font-size: 20px; line-height: 1; }
.ab-phone-arrow { font-size: 10px; color: var(--ab-muted); }
.ab-phone-code { font-weight: 400; font-size: var(--ab-text-base); color: var(--ab-fg); -webkit-text-fill-color: var(--ab-fg); }
.ab-form-group .ab-phone-wrap input[type="tel"] {
  flex: 1; width: auto; border-radius: 0 var(--ab-radius) var(--ab-radius) 0; min-width: 0;
}
.ab-phone-dropdown {
  display: none; position: absolute; top: 100%; left: 0; right: 0; z-index: 50;
  background: var(--ab-card); border: 1px solid var(--ab-border); border-radius: var(--ab-radius-sm);
  box-shadow: 0 8px 24px rgba(0,0,0,.12); margin-top: 8px; overflow: hidden;
}
.ab-phone-dropdown.open { display: block; }
.ab-phone-search {
  width: 100%; padding: 8px; border: none; border-bottom: 1px solid var(--ab-border);
  font-size: var(--ab-text-body-sm); outline: none; box-sizing: border-box;
}
.ab-phone-list { max-height: 240px; overflow-y: auto; }
.ab-phone-option {
  display: flex; align-items: center; gap: 8px; padding: 8px 16px;
  cursor: pointer; transition: background .1s;
}
.ab-phone-option:hover { background: var(--ab-bg-alt); }
.ab-po-flag { font-size: 20px; flex-shrink: 0; }
.ab-po-name { flex: 1; font-size: var(--ab-text-body-sm); }
.ab-po-dial { color: var(--ab-muted); font-size: var(--ab-text-body-sm); }

/* ===== Multi-select tour dropdown ===== */
.ab-multiselect { position: relative; }
.ab-multiselect-toggle {
  display: flex; align-items: center; justify-content: space-between;
  width: 100%; padding: 8px 16px; background: var(--ab-card); border: 1px solid var(--ab-border);
  border-radius: var(--ab-radius-sm); cursor: pointer; font-size: var(--ab-text-body-sm);
  text-align: left;
}
.ab-multiselect-toggle:hover { border-color: var(--ab-accent); }
.ab-multiselect-text { color: var(--ab-muted); }
.ab-multiselect-dropdown {
  display: none; position: absolute; top: 100%; left: 0; right: 0; z-index: 50;
  background: var(--ab-card); border: 1px solid var(--ab-border); border-radius: var(--ab-radius-sm);
  box-shadow: 0 8px 24px rgba(0,0,0,.12); margin-top: 8px; overflow: hidden;
}
.ab-multiselect-dropdown.open { display: block; }
.ab-multi-option {
  display: flex; align-items: center; gap: 8px; padding: 8px 16px;
  cursor: pointer; transition: background .1s; font-size: var(--ab-text-body-sm);
}
.ab-multi-option:hover { background: var(--ab-bg-alt); }
.ab-multi-option input[type="checkbox"] {
  width: 18px; height: 18px; margin: 0; flex-shrink: 0;
  accent-color: var(--ab-accent); cursor: pointer;
}

/* ======================================================
   IRAQ TOURS LANDING PAGE — Components
   ====================================================== */

/* === TOURS PAGE HERO === */
.ab-tours-page-hero { min-height: 65vh; }

/* === TOURS INTRO (two-column with portrait) === */
.ab-tours-intro {
  display: grid;
  grid-template-columns: 1.3fr .7fr;
  gap: var(--ab-space-3xl);
  align-items: center;
}
.ab-tours-intro-text p:first-child::first-letter {
  font-family: var(--ab-font-serif);
  font-size: 3.2em;
  float: left;
  line-height: .85;
  margin-right: .12em;
  margin-top: .05em;
  color: var(--ab-accent);
}
.ab-tours-intro-img { border-radius: var(--ab-radius-xl); overflow: hidden; }
@media (max-width: 768px) {
  .ab-tours-intro {
    grid-template-columns: 1fr;
    gap: var(--ab-space-xl);
  }
  .ab-tours-intro-img { order: -1; }
  .ab-tours-intro-img img { max-height: 352px; width: 100%; object-fit: cover; }
}

/* === TOUR DETAIL CARDS (full-width stacked) === */
.ab-tour-detail {
  background: var(--ab-card);
  border-radius: var(--ab-radius-xl);
  border: 1px solid var(--ab-border);
  overflow: hidden;
  margin-bottom: var(--ab-space-lg);
  display: grid;
  grid-template-columns: 320px 1fr;
}
.ab-tour-detail-header {
  position: relative;
  display: flex;
  align-items: flex-end;
  padding: var(--ab-space-xl) var(--ab-space-lg);
  min-height: 256px;
  overflow: hidden;
}
.ab-tour-detail-gradient {
  position: absolute;
  inset: 0;
  opacity: .9;
}
.ab-tour-detail-badge {
  position: absolute;
  top: var(--ab-space-sm);
  right: var(--ab-space-sm);
  z-index: 2;
  background: var(--ab-accent-btn);
  color: var(--ab-white);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  padding: var(--ab-space-xs) var(--ab-space-sm);
  border-radius: var(--ab-radius-pill);
}
.ab-tour-detail-header-content {
  position: relative;
  z-index: 1;
}
.ab-tour-detail-tag {
  display: inline-block;
  font-size: var(--ab-text-xs);
  font-weight: 600;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: rgba(255,255,255,.7);
  margin-bottom: var(--ab-space-xs);
}
.ab-tour-detail-header h3 {
  font-family: var(--ab-font-serif);
  font-size: var(--ab-heading-3);
  color: var(--ab-white);
  margin: 0 0 var(--ab-space-sm);
  line-height: var(--ab-leading-tight);
}
.ab-tour-detail-price {
  font-size: var(--ab-text-body);
  color: rgba(255,255,255,.8);
}
.ab-tour-detail-price strong {
  font-family: var(--ab-font-serif);
  font-size: var(--ab-heading-4);
  color: var(--ab-white);
}
.ab-tour-detail-price span {
  font-size: var(--ab-text-sm);
  color: rgba(255,255,255,.6);
}
.ab-tour-detail-body {
  padding: var(--ab-space-xl) var(--ab-space-xl);
}
/* bg-alt only on individual tour pages, not the iraq-tours landing page */
body:not(.page-id-166) .ab-tour-detail-body { background: var(--ab-bg-alt); }
.ab-tour-detail-body > p {
  font-size: var(--ab-text-body);
  color: var(--ab-muted);
  line-height: var(--ab-leading-relaxed);
  margin: 0 0 var(--ab-space-lg);
}

/* Tour highlights */
.ab-tour-highlights-cols {
  display: flex;
  gap: var(--ab-space-xl);
  margin-bottom: 0;
}
.ab-tour-highlights-col {
  flex: 1;
  min-width: 0;
}
.ab-tour-highlights-col ul,
.ab-tour-highlights-col ol {
  margin-bottom: 0 !important;
}
@media (max-width: 900px) {
  .ab-tour-highlights-cols { flex-direction: column; gap: 0 !important; }
  .ab-tour-highlights-col + .ab-tour-highlights-col { margin-top: 0 !important; }
  .ab-tour-highlights-col ol,
  .ab-tour-highlights-col ul { margin-bottom: 0 !important; margin-top: 0 !important; }
}
.ab-tour-highlights h4 {
  font-family: var(--ab-font-serif);
  font-size: var(--ab-text-base);
  color: var(--ab-fg);
  margin: 0 0 var(--ab-space-sm);
}
.ab-tour-highlights ul,
.ab-tour-highlights ol {
  list-style: none;
  padding: 0;
  margin: 0 0 var(--ab-space-lg);
  counter-reset: tour-stop;
}
.ab-tour-highlights li {
  font-size: var(--ab-text-body-sm);
  color: var(--ab-muted);
  line-height: var(--ab-leading-normal);
  padding-left: 24px;
  position: relative;
  counter-increment: tour-stop;
  break-inside: avoid;
  margin-bottom: var(--ab-space-xs);
}
/* ul items: gold dot */
.ab-tour-highlights ul li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 8px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--ab-gold);
}
/* ol items: gold number */
.ab-tour-highlights ol li::before {
  content: counter(tour-stop) ".";
  position: absolute;
  left: 0;
  top: 0;
  font-size: var(--ab-text-body-sm);
  font-weight: 600;
  color: var(--ab-gold);
}
.ab-tour-detail-actions {
  display: flex;
  gap: var(--ab-space-sm);
  flex-wrap: wrap;
  padding-top: var(--ab-space-lg);
  border-top: 1px solid var(--ab-border);
}

/* Ghost button for dark text on light backgrounds */
.ab-btn-ghost-dark {
  background: transparent;
  color: var(--ab-fg);
  border: 1.5px solid var(--ab-border);
}
.ab-btn-ghost-dark:hover {
  background: var(--ab-bg-alt);
  border-color: var(--ab-muted);
  transform: translateY(-2px);
  color: var(--ab-fg);
}

/* Custom tour card variant */
.ab-tour-detail-custom .ab-tour-detail-body {
  display: flex;
  align-items: center;
  gap: var(--ab-space-xl);
}
.ab-tour-detail-custom .ab-tour-detail-body > p {
  margin-bottom: 0;
  flex: 1;
}
.ab-tour-detail-custom .ab-tour-detail-actions {
  border-top: none;
  padding-top: 0;
  flex-shrink: 0;
}

/* Tour detail responsive */
@media (max-width: 960px) {
  .ab-tour-detail {
    grid-template-columns: 1fr;
  }
  .ab-tour-detail-header {
    min-height: 176px;
  }

  .ab-tour-detail-custom .ab-tour-detail-body {
    flex-direction: column;
    align-items: flex-start;
  }
  .ab-tour-detail-custom .ab-tour-detail-actions {
    padding-top: var(--ab-space-sm);
  }
}

/* === PRICING TABLE === */
.ab-pricing-table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.ab-pricing-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  border: 1px solid var(--ab-border);
  border-radius: var(--ab-radius-lg);
  overflow: hidden;
  font-size: var(--ab-text-body);
}
.ab-pricing-table thead th {
  background: var(--ab-fg);
  color: var(--ab-white);
  font-family: var(--ab-font-sans);
  font-size: var(--ab-text-sm);
  font-weight: 600;
  letter-spacing: .5px;
  text-transform: uppercase;
  padding: var(--ab-space-sm) var(--ab-space-lg);
  text-align: left;
  white-space: nowrap;
}
.ab-pricing-table tbody td {
  padding: var(--ab-space-sm) var(--ab-space-lg);
  border-top: 1px solid var(--ab-border);
  color: var(--ab-fg);
  vertical-align: middle;
}
.ab-pricing-table tbody tr:hover {
  background: rgba(194,87,42,.03);
}
.ab-pricing-table tbody td a {
  color: var(--ab-fg);
  text-decoration: none;
  font-weight: 500;
}
.ab-pricing-table tbody td a:hover {
  color: var(--ab-accent);
}
.ab-price-cell {
  font-family: var(--ab-font-serif);
  font-size: var(--ab-heading-4);
}
.ab-row-highlight {
  background: rgba(194,87,42,.04);
}
.ab-row-highlight td:first-child {
  border-left: 3px solid var(--ab-accent);
}
.ab-popular-tag {
  display: inline-block;
  font-family: var(--ab-font-sans);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--ab-white);
  background: var(--ab-accent);
  padding: 3px 8px;
  border-radius: var(--ab-radius-pill);
  margin-left: 8px;
  vertical-align: middle;
}

/* Pricing notes */
.ab-pricing-notes {
  text-align: center !important;
  margin-top: var(--ab-space-xl);
}
.ab-pricing-notes p {
  font-size: var(--ab-text-body-sm);
  color: var(--ab-muted);
  font-style: italic;
  margin-bottom: var(--ab-space-lg);
}

/* Price explainer callout */
.ab-price-explainer {
  display: flex;
  gap: var(--ab-space-lg);
  align-items: flex-start;
  margin-top: var(--ab-space-3xl);
  padding: var(--ab-space-xl);
  background: var(--ab-bg-alt);
  border-radius: var(--ab-radius-xl);
  border-left: 4px solid var(--ab-gold);
}
.ab-price-explainer-icon {
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: var(--ab-gold);
  color: var(--ab-white);
  display: flex;
  align-items: center;
  justify-content: center;
}
@media (max-width: 600px) {
  .ab-price-explainer { flex-direction: column; }
}

/* === TOURS WHY GRID (dark background variant) === */
.ab-tours-why-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--ab-space-lg);
}
.ab-tours-why-card {
  padding: var(--ab-space-xl);
  background: var(--ab-on-dark-glass);
  border: 1px solid var(--ab-on-dark-border);
  border-radius: var(--ab-radius-xl);
  transition: all .35s ease;
}
.ab-tours-why-card:hover {
  background: var(--ab-on-dark-glass-hover);
  transform: translateY(-4px);
}
.ab-tours-why-icon {
  width: var(--ab-space-2xl);
  height: var(--ab-space-2xl);
  border-radius: var(--ab-radius);
  background: rgba(184,150,90,.15);
  color: var(--ab-gold);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: var(--ab-space-sm);
}
.ab-tours-why-card h3 {
  font-family: var(--ab-font-serif);
  font-size: var(--ab-heading-4);
  color: var(--ab-on-dark-heading);
  margin: 0 0 var(--ab-space-xs);
}
.ab-tours-why-card p {
  font-size: var(--ab-text-body);
  color: var(--ab-on-dark-body);
  line-height: var(--ab-leading-relaxed);
  margin: 0;
}
.ab-tours-why-card-wide {
  grid-column: 1 / -1;
}
@media (max-width: 768px) {
  .ab-tours-why-grid {
    grid-template-columns: 1fr;
  }
}

/* === INCLUDED / NOT INCLUDED === */
.ab-included-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--ab-space-lg);
  max-width: 900px;
  margin: 0 auto;
}
.ab-included-card {
  padding: var(--ab-space-xl);
  border-radius: var(--ab-radius-xl);
  border: 1px solid var(--ab-border);
}
.ab-included-card h3 {
  font-family: var(--ab-font-serif);
  font-size: var(--ab-heading-4);
  margin: 0 0 var(--ab-space-lg);
  display: flex;
  align-items: center;
  gap: var(--ab-space-sm);
}
.ab-included-card ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.ab-included-card li {
  font-size: var(--ab-text-body);
  line-height: var(--ab-leading-relaxed);
  padding: var(--ab-space-xs) 0;
  padding-left: var(--ab-space-md);
  position: relative;
  border-bottom: 1px solid var(--ab-border);
}
.ab-included-card li:last-child {
  border-bottom: none;
}
.ab-included-yes {
  background: rgba(74,222,128,.04);
}
.ab-included-yes li::before {
  content: '✓';
  position: absolute;
  left: 0;
  color: var(--ab-accent);
  font-weight: 700;
  font-size: 14px;
}
.ab-included-no {
  background: var(--ab-bg-alt);
}
.ab-included-no li {
  color: var(--ab-muted);
}
.ab-included-no li::before {
  content: '—';
  position: absolute;
  left: 0;
  color: var(--ab-muted);
}
@media (max-width: 768px) {
  .ab-included-grid {
    grid-template-columns: 1fr;
  }
}

