/* ==========================================================================
   Adventure Andaman — Custom styles (loads after Bootstrap CDN)
   ========================================================================== */

:root {
  --brand-orange: #ff600a;
  --brand-orange-dark: #e55509;
  --brand-teal: #03516b;
  --brand-teal-light: #08cfd3;
  --brand-navy: #0a2540;
  --bg-soft: #f4f7fa;
  --text-dark: #0a2540;
  --text-muted: #6b7280;
  --font-sans: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --radius-lg: 22px;
  --radius-md: 16px;
  --shadow-soft: 0 8px 32px rgba(10, 37, 64, 0.06);
  --shadow-card: 0 12px 40px rgba(10, 37, 64, 0.08);
  --shadow-float: 0 20px 60px rgba(10, 37, 64, 0.1);
  --shadow-hero: 0 28px 70px rgba(0, 0, 0, 0.16), 0 10px 30px rgba(10, 37, 64, 0.08);
  --container-max: 1120px;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  font-family: var(--font-sans);
  color: var(--text-dark);
  background: #fff;
  overflow-x: hidden;
}

img {
  max-width: 100%;
  height: auto;
}

a {
  text-decoration: none;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* --------------------------------------------------------------------------
   Legacy prototype CSS removed (Phase 4). Unused Tailwind-era blocks
   (site-header, hero-section, etc.) — public pages use .aa-* + style2.css.
   -------------------------------------------------------------------------- */


/* ========== PUBLIC DESIGN SYSTEM (unified) ========== */

:root {
  --aa-section-y: 4rem;
  --section-y: 4rem;
  --section-y-lg: 5rem;
  --border-soft: rgba(10, 37, 64, 0.08);
  --radius-sm: 10px;
}

/* --- Bootstrap brand overrides --- */
.btn-primary {
  --bs-btn-bg: var(--brand-orange);
  --bs-btn-border-color: var(--brand-orange);
  --bs-btn-hover-bg: var(--brand-orange-dark);
  --bs-btn-hover-border-color: var(--brand-orange-dark);
  --bs-btn-active-bg: var(--brand-orange-dark);
  --bs-btn-active-border-color: var(--brand-orange-dark);
  border-radius: 999px;
  font-weight: 600;
  padding: 0.55rem 1.25rem;
}

.btn-outline-primary {
  --bs-btn-color: var(--brand-orange);
  --bs-btn-border-color: var(--brand-orange);
  --bs-btn-hover-bg: var(--brand-orange);
  --bs-btn-hover-border-color: var(--brand-orange);
  border-radius: 999px;
  font-weight: 600;
}

.btn.aa-btn-primary,
.aa-btn.aa-btn-primary {
  background: var(--brand-orange);
  border-color: var(--brand-orange);
  color: #fff;
  border-radius: 999px;
  font-weight: 600;
}

.btn.aa-btn-primary:hover,
.aa-btn.aa-btn-primary:hover {
  background: var(--brand-orange-dark);
  border-color: var(--brand-orange-dark);
  color: #fff;
}

.btn.aa-btn-outline {
  background: transparent;
  color: var(--brand-orange);
  border: 1px solid var(--brand-orange);
  border-radius: 999px;
  font-weight: 600;
}

.btn.aa-btn-outline:hover {
  background: var(--brand-orange);
  color: #fff;
}

.btn.aa-btn-dark {
  background: var(--brand-navy);
  border-color: var(--brand-navy);
  color: #fff;
  border-radius: 999px;
  font-weight: 600;
}

.btn.aa-btn-dark:hover {
  background: var(--brand-teal);
  border-color: var(--brand-teal);
  color: #fff;
}

.form-label {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--text-dark);
  margin-bottom: 0.35rem;
}

.form-control,
.form-select {
  border-radius: var(--radius-sm);
  border-color: var(--border-soft);
  min-height: 42px;
}

.form-control:focus,
.form-select:focus {
  border-color: var(--brand-orange);
  box-shadow: 0 0 0 0.2rem rgba(255, 96, 10, 0.12);
}

/* --- Page shell & hero --- */
.aa-page-shell {
  padding: 2rem 0 var(--section-y-lg);
}

.aa-page-shell--soft {
  background: var(--bg-soft);
}

.aa-page-hero,
.page-hero-strip {
  position: relative;
  min-height: 280px;
  display: flex;
  align-items: center;
  background-size: cover;
  background-position: center;
  color: #fff;
  overflow: hidden;
}

@media (min-width: 768px) {
  .aa-page-hero,
  .page-hero-strip {
    min-height: 340px;
  }
}

.aa-page-hero__overlay,
.page-hero-strip__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(10, 37, 64, 0.35) 0%, rgba(10, 37, 64, 0.62) 100%);
  z-index: 1;
}

.aa-page-hero .container,
.page-hero-strip .container {
  position: relative;
  z-index: 2;
}

.page-hero-strip {
  align-items: flex-end;
}

.page-hero-strip .page-hero-strip__content {
  width: 100%;
  padding-top: 2rem;
  padding-bottom: 2rem;
}

.aa-page-hero-title,
.page-hero-strip__title {
  font-size: clamp(1.75rem, 4vw, 2.65rem);
  font-weight: 700;
  line-height: 1.2;
  margin-bottom: 0.5rem;
  color: #fff;
  text-shadow: 0 2px 24px rgba(0, 0, 0, 0.35);
}

.aa-page-hero-subtitle,
.page-hero-strip__meta {
  font-size: 1.05rem;
  opacity: 0.92;
  max-width: 720px;
  margin: 0;
  line-height: 1.6;
  color: #fff;
}

.aa-page-hero--extended {
  min-height: 0;
  display: block;
  padding: 7rem 0 4rem;
}

/* --- Cards --- */
.aa-card,
.card.aa-card {
  background: #fff;
  border: 1px solid var(--border-soft);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-soft);
  overflow: hidden;
}

.aa-card-hover {
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.aa-card-hover:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-card);
}

@media (prefers-reduced-motion: reduce) {
  .aa-card-hover {
    transition: none;
  }

  .aa-card-hover:hover {
    transform: none;
  }
}

.aa-form-card,
.aa-booking-card {
  background: #fff;
  border: 1px solid var(--border-soft);
  border-radius: var(--radius-md);
  padding: 1.5rem;
  box-shadow: var(--shadow-soft);
}

.aa-booking-card {
  box-shadow: var(--shadow-float);
}

@media (min-width: 992px) {
  .aa-booking-card--sticky {
    position: sticky;
    top: 120px;
  }
}

.aa-price-card {
  background: #f8fafc;
  border: 1px dashed #cbd5e1;
  border-radius: var(--radius-sm);
  padding: 1rem 1.25rem;
  text-align: center;
}

.aa-price-card__label {
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--text-muted);
}

.aa-price-card__amount {
  font-size: 1.75rem;
  font-weight: 800;
  color: var(--brand-teal);
}

.aa-empty-state {
  background: #fff;
  border: 1px dashed #c5d9ea;
  border-radius: var(--radius-md);
  padding: 2rem;
  text-align: center;
  color: var(--text-muted);
}

.aa-empty-state__title {
  color: var(--text-dark);
  margin-bottom: 0.5rem;
}

.aa-empty-state__message a {
  color: var(--brand-orange);
  font-weight: 600;
}

.aa-empty-state--warning {
  background: #fffbeb;
  border-color: #fcd34d;
  color: #92400e;
}

.aa-empty-state--warning .aa-empty-state__title {
  color: #78350f;
}

.aa-star-rating {
  display: inline-flex;
  gap: 0.15rem;
  align-items: center;
  line-height: 1;
}

.aa-star-rating.justify-content-center {
  justify-content: center;
}

.aa-seo-block,
.tour-landing-seo {
  background: #fff;
  border: 1px solid var(--border-soft);
  border-radius: var(--radius-md);
  padding: 1.75rem;
  margin-bottom: 1.5rem;
  box-shadow: var(--shadow-soft);
}

.aa-seo-block h2, .aa-seo-block h3,
.tour-landing-seo h2, .tour-landing-seo h3 {
  color: var(--text-dark);
  font-weight: 700;
  margin-bottom: 1rem;
}

.aa-seo-block p, .tour-landing-seo p {
  color: #4b5563;
  line-height: 1.75;
  margin-bottom: 1rem;
}

.aa-seo-block a, .tour-landing-seo a {
  color: var(--brand-orange);
}

/* --- Breadcrumbs --- */
.aa-breadcrumb .breadcrumb,
.breadcrumb-nav .breadcrumb {
  --bs-breadcrumb-divider: '›';
  margin-bottom: 0;
  font-size: 0.875rem;
}

.aa-breadcrumb .breadcrumb-item a,
.breadcrumb-nav .breadcrumb-item a {
  color: var(--text-muted);
  text-decoration: none;
}

.aa-breadcrumb .breadcrumb-item a:hover,
.breadcrumb-nav .breadcrumb-item a:hover {
  color: var(--brand-orange);
}

.aa-breadcrumb .breadcrumb-item.active,
.breadcrumb-nav .breadcrumb-item.active {
  color: var(--text-dark);
}

.breadcrumb-nav--bare {
  padding-left: 0;
  padding-right: 0;
}

/* --- Filter pills --- */
.aa-filter-pill,
.hourly-dest-filter__btn {
  border: 1px solid var(--border-soft);
  background: #fff;
  color: var(--text-dark);
  border-radius: 999px;
  padding: 0.45rem 1rem;
  font-size: 0.875rem;
  font-weight: 600;
  transition: background 0.2s, color 0.2s, border-color 0.2s;
}

.aa-filter-pill:hover,
.aa-filter-pill.is-active,
.hourly-dest-filter__btn:hover,
.hourly-dest-filter__btn.is-active {
  background: var(--brand-teal);
  border-color: var(--brand-teal);
  color: #fff;
}

.aa-section-white {
  background: #fff;
}

/* --- Legacy aliases mapped to unified system --- */
.ferry-landing-section { padding: var(--aa-section-y) 0; }
.ferry-landing-section--muted { background: var(--bg-soft); }
.ferry-section-title {
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 700;
  color: var(--text-dark);
  margin-bottom: 0.75rem;
}
.ferry-cta-strip { background: var(--brand-orange); }
.ferry-offer-card { border-radius: var(--radius-md); box-shadow: var(--shadow-soft); }
.car-rental-mode-card,
.car-rental-list-card,
.tour-enquiry-panel,
.tour-contact-panel,
.package-content-card,
.package-booking-panel {
  background: #fff;
  border: 1px solid var(--border-soft);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-soft);
}

.tour-landing-page,
.activities-page,
.blog-page,
.car-rental-page,
.car-rental-hourly-page,
.package-detail-page {
  padding-top: 1.5rem;
  padding-bottom: var(--section-y-lg);
}

.tour-landing-page,
.car-rental-hourly-page,
.package-detail-page {
  background: var(--bg-soft);
}

.activity-price-box,
.car-price-box {
  background: #f8fafc;
  border: 1px dashed #cbd5e1;
  border-radius: var(--radius-sm);
  padding: 1rem;
  text-align: center;
}

.tour-faq-accordion .accordion-item,
.package-detail-page .accordion-item,
.ferry-faq-accordion .accordion-item {
  border: 1px solid var(--border-soft);
  border-radius: var(--radius-sm) !important;
  overflow: hidden;
  margin-bottom: 0.65rem;
}

.tour-faq-accordion .accordion-button:not(.collapsed),
.package-detail-page .accordion-button:not(.collapsed),
.ferry-faq-accordion .accordion-button:not(.collapsed) {
  color: var(--brand-orange);
  background: rgba(255, 96, 10, 0.06);
  box-shadow: none;
}

.car-confirmation-card,
.activity-confirmation-card {
  background: #fff;
  border-radius: var(--radius-md);
  padding: 2.5rem;
  box-shadow: var(--shadow-card);
}

.car-confirmation-card__icon,
.activity-confirmation-card__icon {
  font-size: 3rem;
  color: #198754;
  margin-bottom: 1rem;
}


/* --- merged from landing.css --- */
/* ==========================================================================
   Adventure Andaman — shared landing page components (.aa-*)
   ========================================================================== */

.aa-section {
    padding: var(--aa-section-y, 4rem) 0;
}

.aa-section-soft {
    background: var(--bg-soft, #f4f7fa);
}

.aa-section-header {
    margin-bottom: 2.5rem;
}

.aa-section-header--center {
    text-align: center;
}

.aa-section-eyebrow {
    display: inline-block;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--brand-orange, var(--brand-orange));
    margin-bottom: 0.5rem;
}

.aa-section-title {
    font-size: clamp(1.5rem, 3vw, 2rem);
    font-weight: 700;
    line-height: 1.25;
    color: var(--brand-navy, #0a2540);
    margin: 0 0 0.75rem;
}

.aa-section-subtitle {
    color: var(--text-muted, #6b7280);
    font-size: 1.05rem;
    line-height: 1.65;
    max-width: 720px;
    margin: 0;
}

.aa-section-header--center .aa-section-subtitle {
    margin-left: auto;
    margin-right: auto;
}

.aa-text-accent {
    color: var(--brand-orange, var(--brand-orange));
}

/* Intro block */
.aa-intro {
    max-width: 760px;
}

.aa-intro--center {
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}

/* Benefit / feature cards */
.aa-benefit-card {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: var(--radius-md, 16px);
    padding: 1.35rem 1.25rem;
    height: 100%;
    text-align: center;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.aa-benefit-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-card, 0 12px 40px rgba(10, 37, 64, 0.08));
}

.aa-benefit-card__icon {
    width: 52px;
    height: 52px;
    margin: 0 auto 0.85rem;
    border-radius: 12px;
    background: #eef6ff;
    color: var(--brand-teal, #03516b);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
}

.aa-benefit-card__title {
    font-size: 1rem;
    font-weight: 700;
    color: var(--brand-navy, #0a2540);
    margin-bottom: 0.45rem;
}

.aa-benefit-card__text {
    font-size: 0.9rem;
    color: var(--text-muted, #6b7280);
    margin: 0;
    line-height: 1.55;
}

/* Trust badges */
.aa-trust-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
}

.aa-trust-card {
    display: flex;
    gap: 0.75rem;
    align-items: flex-start;
    border-radius: 12px;
    padding: 0.85rem 1rem;
}

.aa-trust-grid--light .aa-trust-card {
    background: #fff;
    border: 1px solid #e5e7eb;
    box-shadow: var(--shadow-soft);
}

.aa-trust-grid--dark .aa-trust-card {
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.18);
    backdrop-filter: blur(4px);
    color: #fff;
}

.aa-trust-card__icon {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: var(--brand-orange, var(--brand-orange));
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.aa-trust-card__title {
    display: block;
    font-size: 0.9rem;
    font-weight: 700;
    margin-bottom: 0.15rem;
}

.aa-trust-card__text {
    margin: 0;
    font-size: 0.78rem;
    line-height: 1.45;
    opacity: 0.9;
}

/* FAQ */
.aa-faq .accordion-item {
    border: 1px solid #e5e7eb;
    border-radius: var(--radius-md, 16px) !important;
    margin-bottom: 0.75rem;
    overflow: hidden;
    background: #fff;
}

.aa-faq .accordion-button {
    font-weight: 600;
    font-size: 0.98rem;
    padding: 1rem 1.15rem;
    box-shadow: none;
}

.aa-faq .accordion-button:not(.collapsed) {
    background: #fff7f0;
    color: var(--brand-orange, var(--brand-orange));
}

.aa-faq .accordion-body {
    color: #4b5563;
    line-height: 1.65;
}

/* CTA strip */
.aa-cta-strip {
    background: var(--brand-orange, var(--brand-orange));
    padding: 0;
}

.aa-cta-strip__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    padding: 2rem 0;
    color: #fff;
}

.aa-cta-strip__title {
    font-size: 1.35rem;
    font-weight: 700;
    margin-bottom: 0.35rem;
}

.aa-cta-strip__text {
    margin: 0;
    opacity: 0.92;
    line-height: 1.55;
}

.aa-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    font-weight: 600;
    border-radius: 999px;
    padding: 0.65rem 1.35rem;
    transition: transform 0.25s ease, box-shadow 0.25s ease, background-color 0.25s ease;
}

.aa-btn:hover {
    transform: translateY(-2px);
}

.aa-btn-light {
    background: #fff;
    color: var(--brand-navy, #0a2540);
    border: none;
}

.aa-btn-light:hover {
    background: #f8fafc;
    color: var(--brand-navy, #0a2540);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
}

.aa-btn-outline {
    background: transparent;
    color: var(--brand-orange, var(--brand-orange));
    border: 1px solid var(--brand-orange, var(--brand-orange));
}

.aa-btn-outline:hover {
    background: var(--brand-orange, var(--brand-orange));
    color: #fff;
}

/* Related services */
.aa-related-card {
    display: block;
    height: 100%;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: var(--radius-md, 16px);
    padding: 1.25rem;
    color: inherit;
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

.aa-related-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-card);
    border-color: rgba(255, 96, 10, 0.25);
    color: inherit;
}

.aa-related-card__icon {
    width: 44px;
    height: 44px;
    border-radius: 10px;
    background: #fff3eb;
    color: var(--brand-orange, var(--brand-orange));
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 0.75rem;
    font-size: 1.1rem;
}

.aa-related-card__title {
    font-size: 1rem;
    font-weight: 700;
    color: var(--brand-navy, #0a2540);
    margin-bottom: 0.35rem;
}

.aa-related-card__text {
    font-size: 0.88rem;
    color: var(--text-muted, #6b7280);
    margin: 0;
    line-height: 1.5;
}

/* Image + text */
.aa-image-text {
    align-items: center;
}

.aa-image-text__media img {
    width: 100%;
    border-radius: var(--radius-lg, 22px);
    box-shadow: var(--shadow-card);
}

.aa-image-text__body h2,
.aa-image-text__body h3 {
    color: var(--brand-navy, #0a2540);
    font-weight: 700;
}

.aa-image-text__body p {
    color: #4b5563;
    line-height: 1.7;
}

/* Confirmation card */
.aa-confirmation-wrap {
    padding: 3rem 0;
}

.aa-error-icon {
    font-size: 3rem;
    color: var(--brand-orange);
}

.aa-confirmation-card {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: var(--radius-lg, 22px);
    box-shadow: var(--shadow-soft);
    overflow: hidden;
}

.aa-confirmation-card__header {
    text-align: center;
    padding: 2rem 1.5rem 0;
}

.aa-confirmation-card__body {
    padding: 1.5rem;
}

.aa-confirmation-card__list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.aa-confirmation-card__list li {
    padding: 0.5rem 0;
    border-bottom: 1px solid #f1f5f9;
    color: #374151;
}

.aa-confirmation-card__list li:last-child {
    border-bottom: none;
}

.aa-confirmation-card__note {
    font-size: 0.9rem;
    color: var(--text-muted, #6b7280);
    margin: 1rem 0 0;
}

.aa-confirmation-card__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    justify-content: center;
    padding: 0 1.5rem 1.5rem;
}

@media (max-width: 991px) {
    .aa-trust-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 767px) {
    .aa-section {
        padding: 3rem 0;
    }

    .aa-trust-grid {
        grid-template-columns: 1fr;
    }

    .aa-cta-strip__inner {
        flex-direction: column;
        text-align: center;
    }
}

@media (prefers-reduced-motion: reduce) {
    .aa-benefit-card,
    .aa-related-card,
    .aa-btn {
        transition: none;
    }

    .aa-benefit-card:hover,
    .aa-related-card:hover,
    .aa-btn:hover {
        transform: none;
    }
}

/* --- merged from tour-landing.css --- */
/* Tour package landing pages (index + category listings) */

.tour-landing-page {
    padding-top: 1.5rem;
    padding-bottom: 4rem;
    background: var(--bg-soft, #f4f7fa);
}

.tour-landing-seo {
    background: #fff;
    border: 1px solid rgba(10, 37, 64, 0.08);
    border-radius: var(--radius-md, 16px);
    padding: 1.75rem;
    margin-bottom: 1.5rem;
    box-shadow: var(--shadow-soft, 0 8px 32px rgba(10, 37, 64, 0.06));
}

.tour-landing-seo h2,
.tour-landing-seo h3 {
    color: var(--text-dark, #0a2540);
    font-weight: 700;
    margin-bottom: 1rem;
}

.tour-landing-seo p {
    color: #4b5563;
    line-height: 1.75;
    margin-bottom: 1rem;
}

.tour-landing-seo p:last-child {
    margin-bottom: 0;
}

.tour-landing-seo a {
    color: var(--brand-orange, var(--brand-orange));
    text-decoration: underline;
}

/* Package grid — 2 columns on desktop like reference */
.tour-package-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.25rem;
    margin-bottom: 2rem;
}

@media (min-width: 768px) {
    .tour-package-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.tour-package-card {
    background: #fff;
    border: 1px solid rgba(10, 37, 64, 0.08);
    border-radius: var(--radius-md, 16px);
    overflow: hidden;
    box-shadow: var(--shadow-soft, 0 8px 32px rgba(10, 37, 64, 0.06));
    display: flex;
    flex-direction: column;
    height: 100%;
}

.tour-package-card__image-link {
    display: block;
}

.tour-package-card__image {
    width: 100%;
    height: 190px;
    object-fit: cover;
    display: block;
}

.tour-package-card__image--placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #eef2f7;
    color: #94a3b8;
    font-size: 2rem;
}

.tour-package-card__body {
    padding: 1.15rem 1.25rem 1.25rem;
    display: flex;
    flex-direction: column;
    flex: 1;
}

.tour-package-card__rating {
    color: #fbbf24;
    font-size: 0.75rem;
    margin-bottom: 0.45rem;
}

.tour-package-card__title {
    font-size: 1.05rem;
    font-weight: 700;
    margin-bottom: 0.35rem;
    line-height: 1.35;
}

.tour-package-card__title a {
    color: var(--text-dark, #0a2540);
}

.tour-package-card__title a:hover {
    color: var(--brand-orange, var(--brand-orange));
}

.tour-package-card__meta {
    font-size: 0.8125rem;
    color: var(--text-muted, #6b7280);
    margin-bottom: 0.55rem;
}

.tour-package-card__text {
    font-size: 0.9rem;
    color: #4b5563;
    line-height: 1.55;
    margin-bottom: 1rem;
    flex: 1;
}

.tour-package-card__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-top: auto;
}

.tour-package-card__price {
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--brand-orange, var(--brand-orange));
}

.tour-package-empty {
    grid-column: 1 / -1;
    background: #fff;
    border-radius: var(--radius-md, 16px);
    padding: 2rem;
    text-align: center;
}

/* --- Unified listing card (shared across modules) --- */
.aa-listing-card,
.tour-package-card,
.activity-card,
.car-rental-list-card {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.aa-listing-card__image-link,
.tour-package-card__image-link {
    display: block;
}

.aa-listing-card__image,
.tour-package-card__image,
.activity-card__image,
.car-rental-list-card__image {
    width: 100%;
    height: 190px;
    object-fit: cover;
    display: block;
    background-size: cover;
    background-position: center;
    background-color: #eef2f7;
}

.aa-listing-card__image--placeholder,
.tour-package-card__image--placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    color: #94a3b8;
    font-size: 2rem;
}

.aa-listing-card__body,
.tour-package-card__body,
.activity-card__body,
.car-rental-list-card .card-body {
    padding: 1.15rem 1.25rem 1.25rem;
    display: flex;
    flex-direction: column;
    flex: 1;
}

.aa-listing-card__rating,
.tour-package-card__rating {
    color: #fbbf24;
    font-size: 0.75rem;
    margin-bottom: 0.45rem;
}

.aa-listing-card__category {
    display: inline-block;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--brand-orange);
    margin-bottom: 0.45rem;
}

.aa-listing-card__title,
.tour-package-card__title,
.activity-card__body h3,
.car-rental-list-card h4 {
    font-size: 1.05rem;
    font-weight: 700;
    margin-bottom: 0.35rem;
    line-height: 1.35;
}

.aa-listing-card__title a,
.tour-package-card__title a {
    color: var(--text-dark, #0a2540);
}

.aa-listing-card__title a:hover,
.tour-package-card__title a:hover {
    color: var(--brand-orange);
}

.aa-listing-card__meta,
.tour-package-card__meta,
.activity-card__meta {
    font-size: 0.8125rem;
    color: var(--text-muted, #6b7280);
    margin-bottom: 0.55rem;
}

.aa-listing-card__text,
.tour-package-card__text {
    font-size: 0.9rem;
    color: #4b5563;
    line-height: 1.55;
    margin-bottom: 0.75rem;
}

.aa-listing-card__price,
.activity-card__price {
    font-weight: 700;
    color: var(--brand-teal);
    margin-bottom: 0.75rem;
}

.aa-listing-card__footer,
.tour-package-card__footer {
    margin-top: auto;
    padding-top: 0.75rem;
}

.aa-faq-group + .aa-faq-group {
    margin-top: 2rem;
}

.aa-faq-group__title,
.tour-faq-group__title {
    font-size: 1.125rem;
    font-weight: 700;
    margin-bottom: 1rem;
    color: var(--text-dark);
}

.aa-faq-accordion .accordion-button,
.tour-faq-accordion .accordion-button {
    font-weight: 600;
    color: var(--text-dark);
}

/* Sidebar */
.tour-landing-sidebar {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

@media (min-width: 992px) {
    .tour-landing-sidebar {
        position: sticky;
        top: 120px;
    }
}

.tour-enquiry-panel,
.tour-contact-panel {
    background: #fff;
    border: 1px solid rgba(10, 37, 64, 0.08);
    border-radius: var(--radius-md, 16px);
    padding: 1.5rem;
    box-shadow: var(--shadow-float, 0 20px 60px rgba(10, 37, 64, 0.1));
}

.tour-enquiry-panel__header h4 {
    font-weight: 700;
    color: var(--text-dark, #0a2540);
    margin-bottom: 0.35rem;
}

.tour-enquiry-panel__header p {
    font-size: 0.875rem;
    color: var(--text-muted, #6b7280);
    margin-bottom: 1.25rem;
}

.tour-enquiry-form .form-label {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--text-dark, #0a2540);
}

.tour-enquiry-form .form-control {
    border-radius: 10px;
    border-color: rgba(10, 37, 64, 0.12);
    min-height: 42px;
}

.tour-enquiry-form .form-control:focus {
    border-color: var(--brand-orange, var(--brand-orange));
    box-shadow: 0 0 0 0.2rem rgba(255, 96, 10, 0.12);
}

.tour-contact-panel {
    text-align: center;
}

.tour-contact-panel__icon {
    width: 3rem;
    height: 3rem;
    margin: 0 auto 0.75rem;
    border-radius: 50%;
    background: rgba(37, 211, 102, 0.12);
    color: #25d366;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
}

.tour-contact-panel__label {
    font-size: 0.8125rem;
    color: var(--text-muted, #6b7280);
    margin-bottom: 0.15rem;
}

.tour-contact-panel__subtext {
    font-size: 0.8125rem;
    color: var(--text-muted, #6b7280);
    margin-bottom: 0.35rem;
}

.tour-contact-panel__phone {
    display: inline-block;
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--text-dark, #0a2540);
}

.tour-contact-panel__phone:hover {
    color: var(--brand-orange, var(--brand-orange));
}

/* Grouped FAQs */
.tour-landing-faq {
    background: #fff;
    border: 1px solid rgba(10, 37, 64, 0.08);
    border-radius: var(--radius-md, 16px);
    padding: 1.75rem;
    box-shadow: var(--shadow-soft, 0 8px 32px rgba(10, 37, 64, 0.06));
}

.tour-landing-faq__intro {
    text-align: center;
    margin-bottom: 1.75rem;
}

.tour-landing-faq__intro h2 {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--text-dark, #0a2540);
    margin-bottom: 0.5rem;
}

.tour-landing-faq__intro p {
    color: var(--text-muted, #6b7280);
    margin: 0;
}

.tour-faq-group + .tour-faq-group {
    margin-top: 1.75rem;
    padding-top: 1.75rem;
    border-top: 1px solid rgba(10, 37, 64, 0.08);
}

.tour-faq-group__title {
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--brand-orange, var(--brand-orange));
    margin-bottom: 1rem;
}

.tour-faq-accordion .accordion-item {
    border: 1px solid rgba(10, 37, 64, 0.08);
    border-radius: 12px !important;
    overflow: hidden;
    margin-bottom: 0.65rem;
}

.tour-faq-accordion .accordion-button {
    font-weight: 600;
    color: var(--text-dark, #0a2540);
    background: #fff;
    box-shadow: none;
    font-size: 0.95rem;
}

.tour-faq-accordion .accordion-button:not(.collapsed) {
    color: var(--brand-orange, var(--brand-orange));
    background: rgba(255, 96, 10, 0.06);
}

.tour-faq-accordion .accordion-body {
    color: #4b5563;
    line-height: 1.65;
    font-size: 0.9375rem;
}

@media (max-width: 991.98px) {
    .tour-landing-sidebar {
        order: -1;
    }
}

/* --- merged from package-booking.css --- */
/* Tour package detail & booking panel */

.package-detail-page {
    color: #334155;
    font-size: 1rem;
    line-height: 1.65;
    letter-spacing: -0.008em;
}

.package-page-hero .page-hero-strip__title,
.package-page-hero .aa-page-hero-title {
    font-weight: 800;
    letter-spacing: -0.03em;
}

.package-detail-page .breadcrumb,
.package-detail-page .breadcrumb a {
    font-size: 0.875rem;
}

.package-detail-page .package-description {
    color: #475569;
    line-height: 1.75;
}

.package-detail-page .package-description p:last-child {
    margin-bottom: 0;
}

.package-content-card {
    background: #fff;
    border: 1px solid rgba(10, 37, 64, 0.08);
    border-radius: var(--radius-md, 16px);
    padding: 1.5rem;
    margin-bottom: 1.25rem;
    box-shadow: var(--shadow-soft, 0 8px 32px rgba(10, 37, 64, 0.06));
}

.package-content-card:last-child {
    margin-bottom: 0;
}

.package-hero-image {
    border-radius: var(--radius-md, 16px);
    width: 100%;
    max-height: 420px;
    object-fit: cover;
    margin-bottom: 1.25rem;
}

.package-detail-page h1 {
    color: var(--text-dark, #0a2540);
    font-weight: 700;
    margin-bottom: 0.35rem;
}

.package-detail-page .package-meta {
    color: var(--text-muted, #6b7280);
    margin-bottom: 1rem;
}

.package-content-card h4,
.package-content-card h5 {
    color: var(--text-dark, #0a2540);
    font-weight: 800;
    letter-spacing: -0.02em;
    margin-bottom: 1rem;
}

.package-detail-page .package-booking-panel__header h4 {
    font-weight: 800;
    letter-spacing: -0.02em;
}

.package-detail-page .accordion-button {
    font-weight: 600;
    letter-spacing: -0.01em;
    color: var(--text-dark, #0a2540);
    background: #fff;
    box-shadow: none;
}

.package-hotel-list li {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.45rem 0;
    border-bottom: 1px solid rgba(10, 37, 64, 0.06);
}

.package-hotel-list li:last-child {
    border-bottom: 0;
}

.package-hotel-list i {
    color: var(--brand-orange, var(--brand-orange));
}

.package-detail-page .accordion-item {
    border: 1px solid rgba(10, 37, 64, 0.08);
    border-radius: 12px !important;
    overflow: hidden;
    margin-bottom: 0.65rem;
}

.package-detail-page .accordion-button:not(.collapsed) {
    color: var(--brand-orange, var(--brand-orange));
    background: rgba(255, 96, 10, 0.06);
}

.package-help-card {
    background: linear-gradient(135deg, var(--brand-navy, #0a2540) 0%, #12324f 100%);
    color: #fff;
    border-radius: var(--radius-md, 16px);
    padding: 1.5rem;
    margin-top: 1.25rem;
}

.package-help-card h5 {
    color: #fff;
    font-weight: 700;
    margin-bottom: 0.5rem;
}

.package-help-card p {
    color: rgba(255, 255, 255, 0.82);
    margin-bottom: 1rem;
    font-size: 0.95rem;
}

.package-help-card .btn-help {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.65rem 1.1rem;
    border-radius: 999px;
    background: var(--brand-orange, var(--brand-orange));
    color: #fff;
    font-weight: 600;
    font-size: 0.875rem;
    transition: background 0.2s ease, transform 0.2s ease;
}

.package-help-card .btn-help:hover {
    background: var(--brand-orange-dark, #e55509);
    color: #fff;
    transform: translateY(-1px);
}

/* Booking sidebar */
.package-booking-panel {
    background: #fff;
    border: 1px solid rgba(10, 37, 64, 0.08);
    border-radius: var(--radius-md, 16px);
    padding: 1.5rem;
    box-shadow: var(--shadow-float, 0 20px 60px rgba(10, 37, 64, 0.1));
}

@media (min-width: 992px) {
    .package-booking-panel {
        position: sticky;
        top: 120px;
    }
}

.package-booking-panel__header {
    margin-bottom: 1.25rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid rgba(10, 37, 64, 0.08);
}

.package-booking-panel__header h4 {
    color: var(--text-dark, #0a2540);
    font-weight: 700;
    margin-bottom: 0.35rem;
}

.package-booking-panel__header p {
    margin: 0;
    font-size: 0.875rem;
}

.booking-section + .booking-section {
    margin-top: 1.25rem;
    padding-top: 1.25rem;
    border-top: 1px solid rgba(10, 37, 64, 0.08);
}

.booking-section__title {
    font-size: 0.78rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    font-weight: 700;
    color: var(--text-muted, #6b7280);
    margin-bottom: 0.85rem;
}

.package-booking-panel .form-label {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--text-dark, #0a2540);
    margin-bottom: 0.35rem;
}

.package-booking-panel .form-control,
.package-booking-panel .form-select {
    border-radius: 10px;
    border-color: rgba(10, 37, 64, 0.12);
    min-height: 42px;
}

.package-booking-panel .form-control:focus,
.package-booking-panel .form-select:focus {
    border-color: var(--brand-orange, var(--brand-orange));
    box-shadow: 0 0 0 0.2rem rgba(255, 96, 10, 0.12);
}

.booking-hint {
    font-size: 0.8125rem;
    color: var(--text-muted, #6b7280);
    text-align: center;
    margin: 0.75rem 0 0;
}

.price-breakdown {
    background: #f8fafc;
    border-radius: 12px;
    padding: 1rem;
    border: 1px solid #e2e8f0;
}

.price-breakdown .breakdown-line {
    display: flex;
    justify-content: space-between;
    padding: 0.15rem 0;
}

.btn-package-calc {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    width: 100%;
    padding: 0.75rem 1rem;
    border: 0;
    border-radius: 999px;
    background: var(--brand-orange, var(--brand-orange));
    color: #fff;
    font-weight: 700;
    font-size: 0.9375rem;
    text-decoration: none;
    transition: background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.btn-package-calc--sm {
    width: auto;
    padding: 0.45rem 0.95rem;
    font-size: 0.8125rem;
}

.btn-package-calc:hover,
.btn-package-calc:focus {
    background: var(--brand-orange-dark, #e55509);
    color: #fff;
    transform: translateY(-1px);
    box-shadow: 0 8px 20px rgba(255, 96, 10, 0.25);
}

.btn-package-book {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 0.75rem 1rem;
    border: 0;
    border-radius: 999px;
    background: var(--brand-navy, #0a2540);
    color: #fff;
    font-weight: 700;
    font-size: 0.9375rem;
    transition: background 0.2s ease, transform 0.2s ease, opacity 0.2s ease;
}

.btn-package-book:hover:not(:disabled),
.btn-package-book:focus:not(:disabled) {
    background: #12324f;
    color: #fff;
    transform: translateY(-1px);
}

.btn-package-book:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}

.btn-package-whatsapp {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    width: 100%;
    padding: 0.7rem 1rem;
    border: 1px solid #25d366;
    border-radius: 999px;
    background: transparent;
    color: #128c41;
    font-weight: 600;
    font-size: 0.875rem;
    transition: background 0.2s ease, color 0.2s ease;
}

.btn-package-whatsapp:hover {
    background: #25d366;
    color: #fff;
}

.booking-section--contact {
    animation: bookingReveal 0.35s ease;
}

@keyframes bookingReveal {
    from {
        opacity: 0;
        transform: translateY(8px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (max-width: 991.98px) {
    .package-detail-page {
        padding-top: 1.5rem;
    }

    .package-booking-panel {
        margin-top: 0.5rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .booking-section--contact {
        animation: none;
    }

    .btn-package-calc:hover,
    .btn-package-book:hover:not(:disabled),
    .package-help-card .btn-help:hover {
        transform: none;
    }
}

/* --- merged from car-rental.css --- */
.car-rental-page { padding: 2rem 0 4rem; }
.car-rental-hourly-page { background: var(--bg-soft, #f4f7fa); }
.section-title { font-size: 1.5rem; font-weight: 700; margin-bottom: 1.5rem; }
.car-rental-mode-card { background: #fff; border: 1px solid rgba(0,0,0,.08); border-radius: 12px; padding: 0; height: 100%; box-shadow: 0 8px 24px rgba(15,23,42,.06); overflow: hidden; }
.car-rental-mode-card .card-body { padding: 1.75rem; }
.car-rental-mode-card__image { height: 180px; background-size: cover; background-position: center; background-color: #e2e8f0; }
.car-rental-mode-card__icon { font-size: 2rem; color: #0d6efd; margin: 1.75rem 1.75rem 1rem; }
.car-rental-mode-card h3 { font-size: 1.25rem; margin-bottom: .75rem; }
.car-rental-mode-card__description { color: var(--text-muted, #64748b); margin-bottom: 1rem; }
.car-rental-mode-card__description p:last-child { margin-bottom: 0; }
.car-price-box__label { font-size: .85rem; text-transform: uppercase; letter-spacing: .04em; color: #64748b; }
.car-price-box__amount { font-size: 1.75rem; font-weight: 800; color: #0f766e; }
.car-confirmation-details { max-width: 420px; }
.car-confirmation-details dt { font-weight: 600; margin-top: .75rem; }
.car-confirmation-details dd { margin-bottom: 0; color: #475569; }

/* Customize trip selection */
.car-rental-customize-page .car-customize-trips-card__title {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--text-dark, #0a2540);
    margin-bottom: 0.35rem;
}
.car-rental-customize-page .car-customize-trips-card__intro {
    color: var(--text-muted, #64748b);
    font-size: 0.9375rem;
    margin-bottom: 0.25rem;
}
.car-customize-dest-group {
    margin-top: 1.5rem;
}
.car-customize-dest-group:first-of-type {
    margin-top: 1rem;
}
.car-customize-dest-group__title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    font-size: 1rem;
    font-weight: 700;
    color: var(--text-dark, #0a2540);
    padding-bottom: 0.625rem;
    margin-bottom: 0.75rem;
    border-bottom: 2px solid rgba(15, 118, 110, 0.18);
}
.car-customize-dest-group__count {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--brand-teal, #0f766e);
    background: rgba(15, 118, 110, 0.1);
    border-radius: 999px;
    padding: 0.2rem 0.65rem;
    white-space: nowrap;
}
.car-customize-trip-list {
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
}
.car-customize-trip {
    display: flex;
    align-items: flex-start;
    gap: 0.875rem;
    padding: 0.9rem 1rem;
    border: 1.5px solid rgba(10, 37, 64, 0.14);
    border-radius: 12px;
    background: #fff;
    cursor: pointer;
    transition: border-color .2s ease, background .2s ease, box-shadow .2s ease;
    margin-bottom: 0;
}
.car-customize-trip:hover {
    border-color: rgba(15, 118, 110, 0.4);
    background: #f8fafc;
}
.car-customize-trip:has(.trip-check:checked) {
    border-color: var(--brand-teal, #0f766e);
    background: rgba(15, 118, 110, 0.07);
    box-shadow: 0 0 0 1px rgba(15, 118, 110, 0.12);
}
.car-customize-trip__input {
    appearance: none;
    -webkit-appearance: none;
    width: 1.3rem;
    height: 1.3rem;
    min-width: 1.3rem;
    margin-top: 0.1rem;
    border: 2px solid #64748b;
    border-radius: 5px;
    background: #fff;
    cursor: pointer;
    flex-shrink: 0;
    position: relative;
    transition: background .15s ease, border-color .15s ease;
}
.car-customize-trip__input:checked {
    background-color: var(--brand-teal, #0f766e);
    border-color: var(--brand-teal, #0f766e);
}
.car-customize-trip__input:checked::after {
    content: '';
    position: absolute;
    left: 0.32rem;
    top: 0.12rem;
    width: 0.35rem;
    height: 0.65rem;
    border: solid #fff;
    border-width: 0 2.5px 2.5px 0;
    transform: rotate(45deg);
}
.car-customize-trip__input:focus-visible {
    outline: 2px solid rgba(15, 118, 110, 0.45);
    outline-offset: 2px;
}
.car-customize-trip__body {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    min-width: 0;
    flex: 1;
}
.car-customize-trip__main {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 0.65rem;
}
.car-customize-trip__name {
    font-weight: 600;
    color: var(--text-dark, #0a2540);
    font-size: 0.975rem;
    line-height: 1.45;
}
.car-customize-trip__badge {
    display: inline-block;
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    padding: 0.22rem 0.55rem;
    border-radius: 999px;
    line-height: 1.2;
}
.car-customize-trip__badge--transfer {
    background: #e0f2fe;
    color: #0369a1;
}
.car-customize-trip__badge--sightseeing {
    background: #fef3c7;
    color: #b45309;
}
.car-customize-trip__badge--airport {
    background: #ede9fe;
    color: #6d28d9;
}
.car-customize-trip__badge--intercity {
    background: #dcfce7;
    color: #15803d;
}
.car-customize-trip__desc {
    font-size: 0.8125rem;
    color: var(--text-muted, #64748b);
    line-height: 1.45;
}
.car-customize-trip__desc p:last-child {
    margin-bottom: 0;
}

/* Hourly/KM landing package cards */
.hourly-packages-section { margin-bottom: 2.5rem; }
.hourly-dest-filter { display: flex; flex-wrap: wrap; gap: .5rem; justify-content: center; }
.hourly-dest-filter__btn {
    border: 1px solid rgba(10, 37, 64, 0.12);
    background: #fff;
    color: var(--text-dark, #0a2540);
    border-radius: 999px;
    padding: .45rem 1rem;
    font-size: .875rem;
    font-weight: 600;
    transition: background .2s, color .2s, border-color .2s, transform .2s;
}
.hourly-dest-filter__btn:hover,
.hourly-dest-filter__btn.is-active {
    background: var(--brand-teal, #0f766e);
    border-color: var(--brand-teal, #0f766e);
    color: #fff;
}
.hourly-package-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.25rem;
}
@media (min-width: 768px) {
    .hourly-package-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 992px) {
    .hourly-package-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.hourly-package-card {
    background: #fff;
    border: 1px solid rgba(10, 37, 64, 0.08);
    border-radius: var(--radius-md, 16px);
    overflow: hidden;
    box-shadow: var(--shadow-soft, 0 8px 32px rgba(10, 37, 64, 0.06));
    display: flex;
    flex-direction: column;
    height: 100%;
    transition: transform .22s ease, box-shadow .22s ease;
}
.hourly-package-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 16px 40px rgba(10, 37, 64, 0.12);
}
.hourly-package-card.is-hidden { display: none; }
.hourly-package-card__image-wrap { position: relative; }
.hourly-package-card__image {
    width: 100%;
    height: 190px;
    object-fit: cover;
    display: block;
}
.hourly-package-card__badge {
    position: absolute;
    top: .85rem;
    left: .85rem;
    background: rgba(10, 37, 64, 0.82);
    color: #fff;
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .02em;
    padding: .35rem .7rem;
    border-radius: 999px;
}
.hourly-package-card__body {
    padding: 1.15rem 1.25rem 1.25rem;
    display: flex;
    flex-direction: column;
    flex: 1;
}
.hourly-package-card__title {
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--text-dark, #0a2540);
    margin-bottom: .4rem;
}
.hourly-package-card__meta {
    font-size: .8125rem;
    color: var(--text-muted, #6b7280);
    margin-bottom: .65rem;
}
.hourly-package-card__meta-sep { margin: 0 .35rem; }
.hourly-package-card__text {
    font-size: .9rem;
    color: #4b5563;
    line-height: 1.55;
    margin-bottom: .65rem;
    flex: 1;
}
.hourly-package-card__rate-note {
    font-size: .78rem;
    color: #64748b;
    margin-bottom: .65rem;
}
.hourly-package-card__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    margin-top: auto;
    flex-wrap: wrap;
}
.hourly-package-card__price {
    font-size: .875rem;
    font-weight: 700;
    color: var(--brand-orange, var(--brand-orange));
}
.hourly-package-card__price--pending { color: #64748b; font-weight: 600; }
.hourly-package-card .btn-primary {
    background: var(--brand-orange, var(--brand-orange));
    border-color: var(--brand-orange, var(--brand-orange));
    white-space: nowrap;
}
.hourly-package-card .btn-primary:hover {
    background: #e55509;
    border-color: #e55509;
}

/* Hourly info sections */
.hourly-info-section { padding-top: 1rem; }
.hourly-steps {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
}
@media (min-width: 768px) {
    .hourly-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 992px) {
    .hourly-steps { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.hourly-step {
    background: #fff;
    border: 1px solid rgba(10, 37, 64, 0.08);
    border-radius: var(--radius-md, 16px);
    padding: 1.25rem;
    text-align: center;
    box-shadow: var(--shadow-soft, 0 8px 32px rgba(10, 37, 64, 0.06));
}
.hourly-step__icon {
    font-size: 1.5rem;
    color: var(--brand-teal, #0f766e);
    margin-bottom: .5rem;
}
.hourly-step__num {
    font-size: .75rem;
    font-weight: 700;
    color: var(--brand-orange, var(--brand-orange));
    margin-bottom: .35rem;
}
.hourly-step h3 { font-size: 1rem; margin-bottom: .5rem; color: var(--text-dark, #0a2540); }
.hourly-step p { font-size: .875rem; color: #4b5563; margin-bottom: 0; line-height: 1.55; }
.hourly-extra-card {
    background: #fff;
    border: 1px solid rgba(10, 37, 64, 0.08);
    border-radius: var(--radius-md, 16px);
    padding: 1.25rem;
    box-shadow: var(--shadow-soft, 0 8px 32px rgba(10, 37, 64, 0.06));
}
.hourly-extra-card h3 { font-size: .95rem; font-weight: 700; margin-bottom: .5rem; color: var(--text-dark, #0a2540); }
.hourly-extra-card p { font-size: .875rem; color: #4b5563; margin-bottom: 0; line-height: 1.55; }

/* Booking form reveal */
.hourly-booking-section {
    margin-top: 2.5rem;
    padding-top: 2rem;
    border-top: 1px solid rgba(10, 37, 64, 0.08);
}
.hourly-booking-section--hidden { display: none; }
.hourly-booking-section__inner { max-width: 960px; margin: 0 auto; }
.hourly-booking-selected {
    background: rgba(15, 118, 110, 0.08);
    border: 1px solid rgba(15, 118, 110, 0.2);
    border-radius: 10px;
    padding: .75rem 1rem;
    color: var(--text-dark, #0a2540);
}
.hourly-booking-selected__label { color: #64748b; margin-right: .35rem; }

/* --- merged from ferry-tickets.css --- */
/* Ferry landing page */
.ferry-landing-hero {
    position: relative;
    padding: 4.5rem 0 3rem;
    color: #fff;
    overflow: hidden;
}
.ferry-landing-hero__bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    z-index: 0;
}

.aa-page-hero__bg,
.page-hero-strip__bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    z-index: 0;
}

.ferry-landing-hero__inner,
.aa-page-hero__inner,
.page-hero-strip__inner {
    position: relative;
    z-index: 1;
}

.ferry-landing-hero__title,
.ferry-landing-hero .aa-page-hero-title {
    font-size: clamp(1.75rem, 4vw, 2.65rem);
    font-weight: 700;
    line-height: 1.25;
    margin-bottom: 1rem;
    text-shadow:
        0 1px 3px rgba(0, 0, 0, 0.55),
        0 4px 16px rgba(0, 0, 0, 0.45);
}

.ferry-landing-hero__subtitle,
.ferry-landing-hero .aa-page-hero-subtitle {
    font-size: 1.05rem;
    opacity: 0.95;
    max-width: 820px;
    margin: 0 0 2rem;
    line-height: 1.65;
    color: #fff;
    text-shadow:
        0 1px 3px rgba(0, 0, 0, 0.55),
        0 3px 12px rgba(0, 0, 0, 0.45);
}

.ferry-landing-hero .banner-form {
    border: 0;
    border-radius: 18px;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.18);
    color: #393f4d;
}

.ferry-landing-hero .banner-form .card-body {
    padding: 1.25rem 1.5rem;
}

.ferry-route-row__divider {
    margin: 1rem 0;
    border-top: 1px dashed #dbe3ea;
}

.ferry-route-row__line {
    gap: 0;
}

.ferry-route-row__fields {
    flex: 1 1 auto;
    min-width: 0;
}

.ferry-route-row__actions {
    flex-shrink: 0;
    padding-left: 0.75rem;
}

.ferry-landing-hero .banner-form .form-item--compact {
    min-width: 92px;
    max-width: 130px;
}

.ferry-field__hint {
    font-weight: 400;
    font-size: 0.75rem;
    color: #9ca3af;
}

.ferry-add-route-wrap {
    margin-top: 0.75rem;
}

.ferry-search-card {
    background: #fff;
    border-radius: 18px;
    padding: 1.25rem;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.18);
    color: #393f4d;
}
.ferry-route-row + .ferry-route-row {
    margin-top: 0;
}
.ferry-route-row__grid {
    display: grid;
    grid-template-columns: 1.2fr 1.2fr 1fr 0.55fr 0.55fr auto;
    gap: 0.75rem;
    align-items: end;
}
.ferry-field .form-label {
    font-size: 0.8rem;
    font-weight: 600;
    color: #6b7280;
    margin-bottom: 0.35rem;
}
.ferry-search-card__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 1.25rem;
    align-items: center;
}
.ferry-search-btn {
    margin-left: auto;
    min-width: 180px;
    font-weight: 600;
    padding: 0.65rem 1.5rem;
}

.ferry-trust-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
    margin-top: 1.75rem;
}
.ferry-trust-item {
    display: flex;
    gap: 0.75rem;
    align-items: flex-start;
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 12px;
    padding: 0.85rem 1rem;
    backdrop-filter: blur(4px);
}
.ferry-trust-item__icon {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: var(--brand-orange);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.ferry-trust-item strong { display: block; font-size: 0.9rem; margin-bottom: 0.15rem; }
.ferry-trust-item p { margin: 0; font-size: 0.78rem; opacity: 0.88; line-height: 1.4; }

.ferry-landing-section { padding: 4rem 0; }
.ferry-landing-section--muted { background: #f8fafc; }
.ferry-section-title {
    font-size: clamp(1.5rem, 3vw, 2rem);
    font-weight: 700;
    color: #1f2937;
    margin-bottom: 0.75rem;
}
.ferry-section-subtitle { color: #6b7280; max-width: 720px; margin: 0 auto; }

.ferry-offer-card {
    background: #fff;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.08);
    border: 1px solid #eef2f7;
}
.ferry-offer-card__img-wrap {
    position: relative;
    aspect-ratio: 4/3;
    overflow: hidden;
}
.ferry-offer-card__img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.ferry-offer-card__badge {
    position: absolute;
    top: 12px;
    left: 12px;
    background: #16a34a;
    color: #fff;
    font-size: 0.75rem;
    font-weight: 700;
    padding: 0.25rem 0.6rem;
    border-radius: 999px;
}
.ferry-offer-card__body { padding: 1rem 1.1rem 1.25rem; }
.ferry-offer-card__body h3 { font-size: 1rem; font-weight: 700; margin-bottom: 0.5rem; }
.ferry-offer-card__body p { font-size: 0.9rem; color: #6b7280; margin: 0; line-height: 1.55; }

.ferry-cta-strip { background: var(--brand-orange); padding: 0; }
.ferry-cta-strip__box {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    padding: 2rem 0;
    color: #fff;
}
.ferry-cta-strip__box h3 { font-size: 1.35rem; font-weight: 700; margin-bottom: 0.35rem; }
.ferry-cta-strip__box p { margin: 0; opacity: 0.92; }

.ferry-steps {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 1rem;
    position: relative;
}
.ferry-step {
    text-align: center;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 16px;
    padding: 1.25rem 0.85rem;
    position: relative;
}
.ferry-step__icon {
    width: 48px;
    height: 48px;
    margin: 0 auto 0.5rem;
    border-radius: 50%;
    background: #fff3eb;
    color: var(--brand-orange);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
}
.ferry-step__num {
    position: absolute;
    top: 10px;
    right: 12px;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--brand-orange);
    color: #fff;
    font-size: 0.75rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
}
.ferry-step h4 { font-size: 0.95rem; font-weight: 700; margin-bottom: 0.4rem; }
.ferry-step p { font-size: 0.82rem; color: #6b7280; margin: 0; line-height: 1.45; }

.ferry-feature-box {
    background: #fff;
    border-radius: 14px;
    padding: 1.25rem;
    border: 1px solid #e5e7eb;
    text-align: center;
}
.ferry-feature-box__icon {
    width: 52px;
    height: 52px;
    margin: 0 auto 0.75rem;
    border-radius: 12px;
    background: #eef6ff;
    color: #2563eb;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
}
.ferry-feature-box h4 { font-size: 1rem; font-weight: 700; margin-bottom: 0.5rem; }
.ferry-feature-box p { font-size: 0.88rem; color: #6b7280; margin: 0; }

.ferry-info-card {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 16px;
    padding: 1.5rem;
}
.ferry-info-card--accent {
    background: linear-gradient(135deg, var(--brand-orange), #ff8533);
    color: #fff;
    border: none;
}
.ferry-info-card h4 { font-size: 1.05rem; font-weight: 700; margin-bottom: 1rem; }
.ferry-info-list { padding-left: 1.1rem; margin: 0; }
.ferry-info-list li { margin-bottom: 0.55rem; color: #4b5563; line-height: 1.5; }
.ferry-guidelines {
    background: #fffbeb;
    border: 1px solid #fde68a;
    border-radius: 16px;
    padding: 1.5rem;
}

.ferry-expert-card img {
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    border-radius: 50%;
    border: 4px solid #fff;
    box-shadow: 0 6px 18px rgba(0,0,0,0.1);
    margin-bottom: 0.75rem;
}
.ferry-expert-card h5 { font-size: 0.95rem; font-weight: 700; margin-bottom: 0.15rem; }
.ferry-expert-card p { font-size: 0.8rem; color: #6b7280; margin: 0; }

.ferry-faq-accordion .accordion-item {
    border: 1px solid #e5e7eb;
    border-radius: 12px !important;
    margin-bottom: 0.75rem;
    overflow: hidden;
}
.ferry-faq-accordion .accordion-button {
    font-weight: 600;
    font-size: 0.98rem;
    padding: 1rem 1.15rem;
}
.ferry-faq-accordion .accordion-button:not(.collapsed) {
    background: #fff7f0;
    color: var(--brand-orange);
    box-shadow: none;
}
.ferry-faq-accordion .accordion-body { color: #4b5563; line-height: 1.65; }

/* Results & booking pages */
.ferry-page { padding: 2rem 0 3rem; }
.ferry-leg-block + .ferry-leg-block { margin-top: 2.5rem; padding-top: 2rem; border-top: 2px solid #e5e7eb; }
.ferry-leg-block__title { font-size: 1.25rem; font-weight: 700; margin-bottom: 1rem; color: #1f2937; }
.ferry-results-list { display: flex; flex-direction: column; gap: 1rem; }
.ferry-result-card {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    padding: 1.25rem;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    background: #fff;
}
.ferry-result-card__amount { font-size: 1.35rem; font-weight: 700; color: var(--brand-orange); }
.ferry-passenger-row { background: #f8fafc; }

@media (max-width: 1199px) {
    .ferry-trust-grid { grid-template-columns: repeat(2, 1fr); }
    .ferry-steps { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 991.98px) {
    .ferry-landing-hero .banner-form .ferry-route-row__line {
        flex-direction: column;
    }

    .ferry-landing-hero .banner-form .ferry-route-row__actions {
        width: 100%;
        padding-left: 0;
        margin-top: 0.75rem;
    }

    .ferry-landing-hero .banner-form .search-btn {
        width: 100%;
    }

    .ferry-landing-hero .banner-form .form-item--compact {
        max-width: none;
    }
}
@media (max-width: 767px) {
    .ferry-landing-hero { padding-top: 3rem; }
    .ferry-route-row__grid { grid-template-columns: 1fr 1fr; }
    .ferry-field--action { grid-column: span 2; }
    .ferry-search-btn { width: 100%; margin-left: 0; }
    .ferry-trust-grid { grid-template-columns: 1fr; }
    .ferry-steps { grid-template-columns: 1fr; }
    .ferry-cta-strip__box { flex-direction: column; text-align: center; }
    .ferry-result-card { flex-direction: column; align-items: flex-start; }
}

/* --- merged from blog.css --- */
.blog-page{padding:2rem 0 4rem}
.blog-section-title{font-size:1.5rem;font-weight:700;margin-bottom:1.25rem;color:#0d3b66}
.blog-category-intro{color:#5a6b7d;margin-bottom:1.5rem;font-size:1.05rem;line-height:1.7}
.blog-empty{background:#f8fbff;border:1px dashed #c5d9ea;border-radius:12px;padding:2rem;text-align:center;color:#5a6b7d}
.aa-pager-wrap{display:flex;justify-content:center;width:100%;padding-top:.5rem}
.aa-pager .pagination{gap:.35rem;flex-wrap:wrap;justify-content:center}
.aa-pager .page-link{min-width:2.5rem;padding:.5rem .85rem;border-radius:999px;text-align:center;font-weight:600;color:var(--text-dark,#0a2540);border:1px solid var(--border-soft,rgba(10,37,64,.12));background:#fff;box-shadow:0 2px 8px rgba(10,37,64,.04);transition:color .2s ease,border-color .2s ease,background-color .2s ease}
.aa-pager .page-link:hover,.aa-pager .page-link:focus{color:var(--brand-orange,#ff600a);border-color:var(--brand-orange,#ff600a);background:#fff}
.aa-pager .page-item.active .page-link{background:var(--brand-orange,#ff600a);border-color:var(--brand-orange,#ff600a);color:#fff;box-shadow:0 4px 14px rgba(255,96,10,.25)}
.aa-pager .page-item.disabled .page-link{color:#94a3b8;background:#f8fafc;border-color:#e2e8f0;box-shadow:none}
.aa-pager__arrow{min-width:2.5rem;padding-left:.75rem;padding-right:.75rem}
.blog-card{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 8px 24px rgba(13,59,102,.08);transition:transform .2s,box-shadow .2s}
.blog-card:hover{transform:translateY(-4px);box-shadow:0 12px 32px rgba(13,59,102,.12)}
.blog-card__image-link{display:block;aspect-ratio:16/10;overflow:hidden}
.blog-card__image{width:100%;height:100%;object-fit:cover}
.blog-card__body{padding:1.25rem}
.blog-card__category{display:inline-block;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#0077b6;margin-bottom:.5rem;text-decoration:none}
.blog-card__title{font-size:1.1rem;line-height:1.4;margin:0 0 .75rem}
.blog-card__title a{color:#0d3b66;text-decoration:none}
.blog-card__title a:hover{color:#0077b6}
.blog-card__excerpt{color:#5a6b7d;font-size:.92rem;line-height:1.6;margin-bottom:.75rem;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.blog-card__meta{display:flex;flex-wrap:wrap;gap:.75rem;font-size:.8rem;color:#7a8a99}
.blog-card__meta i{margin-right:.25rem}
.blog-sidebar__card{background:#fff;border-radius:16px;padding:1.25rem;margin-bottom:1rem;box-shadow:0 4px 16px rgba(13,59,102,.06)}
.blog-sidebar .whatsapp-expert-card{margin-bottom:1rem}
.blog-sidebar__card h5{font-size:1rem;font-weight:700;margin-bottom:1rem;color:#0d3b66}
.blog-sidebar__list{list-style:none;padding:0;margin:0}
.blog-sidebar__list li+li{margin-top:.5rem}
.blog-sidebar__list a{color:#334155;text-decoration:none}
.blog-sidebar__list a.active,.blog-sidebar__list a:hover{color:#0077b6;font-weight:600}
.blog-article-page{padding:1.5rem 0 4rem;background:linear-gradient(180deg,#f0f6fb 0%,#fff 280px)}
.blog-article-sidebar{align-self:flex-start}
@media (min-width:992px){.blog-article-page .col-lg-8,.blog-article-page .col-lg-4{align-items:flex-start}}
.blog-article{max-width:none;width:100%;margin:0;background:#fff;border-radius:20px;padding:clamp(1.25rem,3vw,2.25rem);box-shadow:0 14px 40px rgba(13,59,102,.08);border:1px solid rgba(13,59,102,.06)}
.blog-article__header{margin-bottom:0;padding-bottom:1.25rem;border-bottom:1px solid #e3edf5}
.blog-article__title{font-size:clamp(1.75rem,4vw,2.35rem);line-height:1.25;color:#0d3b66;margin:.75rem 0 1rem;font-weight:800}
.blog-article__meta{display:flex;flex-wrap:wrap;gap:.85rem 1.25rem;color:#5a6b7d;font-size:.9rem;align-items:center;margin-top:.85rem;padding:.7rem 1rem;background:#f8fbfd;border-radius:12px}
.blog-article__author{display:inline-flex;align-items:center;gap:.5rem;font-weight:600;color:#334155}
.blog-article__author img{object-fit:cover;border:2px solid #fff;box-shadow:0 2px 8px rgba(13,59,102,.12)}
.blog-article__hero{margin:1.75rem 0 1.5rem;border-radius:16px;overflow:hidden;box-shadow:0 10px 28px rgba(13,59,102,.12);aspect-ratio:16/10;background:#e8f0f6}
.blog-article__hero img{width:100%;height:100%;object-fit:cover;display:block}
.blog-article__hero-caption{padding:.65rem 1rem;font-size:.85rem;color:#64748b;background:#f8fbfd;border-top:1px solid #e3edf5;text-align:center}
.blog-article__lead{font-size:1.12rem;line-height:1.75;color:#475569;margin:0 0 1.75rem;padding:1rem 1.15rem;background:linear-gradient(90deg,rgba(0,119,182,.08),rgba(0,119,182,.02));border-left:4px solid #0077b6;border-radius:0 12px 12px 0}
.blog-toc{background:#f8fbfd;border:1px solid #dbe7f0;border-radius:14px;padding:1.15rem 1.35rem;margin-bottom:2rem}
.blog-toc strong{display:block;font-size:.95rem;color:#0d3b66;margin-bottom:.35rem}
.blog-toc ol{margin:.75rem 0 0;padding-left:1.25rem;line-height:1.7}
.blog-toc__l3{margin-left:1rem}
.blog-toc a{color:#0077b6;text-decoration:none;font-weight:500}
.blog-toc a:hover{text-decoration:underline}
.blog-article__content{font-size:1.06rem;line-height:1.85;color:#243447}
.blog-article__content h2,.blog-article__content h3{margin-top:2.25rem;margin-bottom:1rem;color:#0d3b66;font-weight:700;scroll-margin-top:6rem}
.blog-article__content h2{font-size:1.45rem;padding-bottom:.35rem;border-bottom:2px solid #e8f0f6}
.blog-article__content h3{font-size:1.2rem}
.blog-article__content p{margin-bottom:1.25rem}
.blog-article__content ul,.blog-article__content ol{margin-bottom:1.25rem;padding-left:1.5rem}
.blog-article__content li{margin-bottom:.45rem}
.blog-article__content blockquote{border-left:4px solid #0077b6;padding:.85rem 1.15rem;background:#f8fbff;margin:1.5rem 0;color:#334155;border-radius:0 10px 10px 0}
.blog-article__content img{max-width:100%;height:auto;border-radius:12px;margin:1.5rem 0;box-shadow:0 8px 24px rgba(13,59,102,.08)}
.blog-article__content table{width:100%;margin:1.5rem 0;border-collapse:collapse}
.blog-article__content th,.blog-article__content td{border:1px solid #dbe7f0;padding:.6rem .75rem}
.blog-article__tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:2rem;padding-top:1.5rem;border-top:1px solid #e8f0f6}
.blog-tag{display:inline-block;background:#eef6fb;color:#0077b6;padding:.35rem .75rem;border-radius:999px;font-size:.85rem;text-decoration:none;transition:background .2s,color .2s}
.blog-tag:hover{background:#0077b6;color:#fff}
.blog-cta-block{background:linear-gradient(135deg,#0d3b66,#0077b6);color:#fff;border-radius:16px;padding:1.5rem;margin-top:2rem}
.blog-cta-block h4{color:#fff;margin-bottom:1rem}
.blog-share{display:flex;align-items:center;flex-wrap:wrap;gap:.75rem;margin-top:2rem;padding-top:1.5rem;border-top:1px solid #e8f0f6;color:#5a6b7d}
.blog-share a{width:40px;height:40px;border-radius:50%;background:#eef6fb;color:#0077b6;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;transition:transform .2s,background .2s,color .2s}
.blog-share a:hover{transform:translateY(-2px);background:#0077b6;color:#fff}
.blog-adjacent__link{max-width:45%;color:#0077b6;text-decoration:none;font-weight:600;line-height:1.4}
.blog-related h3{font-size:1.35rem;color:#0d3b66;margin-bottom:1rem}
@media (max-width:767.98px){.blog-article{padding:1rem;border-radius:16px}.blog-article__hero{aspect-ratio:4/3}.blog-adjacent{flex-direction:column;gap:1rem}.blog-adjacent__link{max-width:100%}}

/* --- merged from activities.css --- */
.activities-page { padding: 2rem 0 4rem; }
.activity-card { background: #fff; border: 1px solid rgba(0,0,0,.08); border-radius: 12px; overflow: hidden; height: 100%; box-shadow: 0 8px 24px rgba(15,23,42,.06); }
.activity-card__image { height: 180px; background-size: cover; background-position: center; background-color: #e2e8f0; }
.activity-card__body { padding: 1.25rem; }
.activity-card__body h3 { font-size: 1.15rem; margin-bottom: .5rem; }
.activity-card__meta { color: #64748b; font-size: .9rem; }
.activity-card__price { font-weight: 700; color: #0f766e; margin-bottom: .75rem; }
.activity-price-box { background: #f8fafc; border: 1px dashed #cbd5e1; border-radius: 10px; padding: 1rem; text-align: center; }
.activity-price-box__label { font-size: .85rem; text-transform: uppercase; letter-spacing: .04em; color: #64748b; }
.activity-price-box__amount { font-size: 1.75rem; font-weight: 800; color: #0f766e; }
.activity-confirmation-card { background: #fff; border-radius: 16px; padding: 2.5rem; box-shadow: 0 12px 40px rgba(15,23,42,.08); }
.activity-confirmation-card__icon { font-size: 3rem; color: #198754; margin-bottom: 1rem; }
.activity-confirmation-details { max-width: 420px; }
.activity-confirmation-details dt { font-weight: 600; margin-top: .75rem; }
.activity-confirmation-details dd { margin-bottom: 0; color: #475569; }

/* --- merged from about-us.css --- */
/* ==========================================================================
   About Us page
   ========================================================================== */

.about-hero {
  position: relative;
  min-height: 420px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

@media (min-width: 768px) {
  .about-hero {
    min-height: 520px;
  }
}

.about-hero__bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center top;
}

.about-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(10, 37, 64, 0.35) 0%, rgba(10, 37, 64, 0.55) 100%);
}

.about-hero__inner {
  position: relative;
  z-index: 2;
  text-align: center;
  padding: 5rem 1rem 2rem;
}

.about-hero__title {
  margin: 0;
  max-width: 820px;
  margin-inline: auto;
  color: #fff;
  font-size: clamp(1.75rem, 4vw, 2.75rem);
  font-weight: 700;
  line-height: 1.2;
  text-shadow: 0 2px 24px rgba(0, 0, 0, 0.35);
}

.about-hero__badges {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 1.5rem;
  z-index: 3;
}

.about-hero__badges-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.75rem;
}

.about-hero__badge {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 110px;
  min-height: 72px;
  padding: 0.65rem 1rem;
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 8px 28px rgba(10, 37, 64, 0.12);
}

.about-hero__badge img {
  max-height: 52px;
  width: auto;
  object-fit: contain;
}

@media (max-width: 767.98px) {
  .about-hero__badge {
    min-width: calc(50% - 0.5rem);
    flex: 1 1 calc(50% - 0.5rem);
  }
}

/* About story */
.about-story {
  /* Uses .aa-page-shell padding; keep class for scoped overrides */
}

.about-story__title {
  font-size: clamp(1.75rem, 3vw, 2.25rem);
  font-weight: 700;
  margin-bottom: 2rem;
}

.about-story__body {
  color: #4e5561;
  font-size: 1rem;
  line-height: 1.75;
}

.about-story__body p {
  margin-bottom: 1.25rem;
}

.about-story__subtitle {
  margin-top: 2rem;
  margin-bottom: 1rem;
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--text-dark, #0a2540);
}

.about-story__body a {
  color: var(--brand-orange, var(--brand-orange));
  text-decoration: underline;
}

/* Policy pages */
.policy-page__intro {
  color: var(--text-muted, #6b7280);
  font-size: 1.1rem;
  line-height: 1.7;
  margin-bottom: 1.75rem;
  text-align: center;
  max-width: 760px;
  margin-left: auto;
  margin-right: auto;
}

.policy-page__panel {
  padding: clamp(1.25rem, 3vw, 2rem);
}

.policy-page__body {
  color: #4e5561;
  font-size: 1rem;
  line-height: 1.75;
}

.policy-page__body > :first-child {
  margin-top: 0;
}

.policy-page__body > :last-child {
  margin-bottom: 0;
}

.policy-page__body p {
  margin-bottom: 1.25rem;
}

.policy-page__body h2 {
  font-size: clamp(1.25rem, 2.5vw, 1.5rem);
  font-weight: 700;
  color: var(--brand-navy, #0a2540);
  margin: 2rem 0 1rem;
  line-height: 1.3;
}

.policy-page__body h2:first-child {
  margin-top: 0;
}

.policy-page__body h3 {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--text-dark, #0a2540);
  margin: 1.5rem 0 0.75rem;
}

.policy-page__body ul,
.policy-page__body ol {
  margin-bottom: 1.25rem;
  padding-left: 1.25rem;
}

.policy-page__body li {
  margin-bottom: 0.5rem;
}

.policy-page__body li:last-child {
  margin-bottom: 0;
}

.policy-page__body strong {
  color: var(--text-dark, #0a2540);
}

.policy-page__body a {
  color: var(--brand-orange, #ff600a);
  text-decoration: underline;
}

.policy-page__faq {
  margin-top: 2rem;
}

.policy-page__faq .aa-section-header {
  margin-bottom: 1.25rem;
}

.policy-page__updated {
  margin-top: 1.5rem;
  margin-bottom: 0;
  text-align: center;
  font-size: 0.95rem;
  color: var(--text-muted, #6b7280);
}

/* Reviews */
.about-reviews {
  padding-top: 4rem;
  padding-bottom: 4rem;
}

.about-review-card {
  height: 100%;
  padding: 1.5rem;
  background: #fff;
  border-radius: 18px;
  box-shadow: 0 12px 40px rgba(10, 37, 64, 0.08);
  text-align: center;
}

.about-review-card__top {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 1rem;
}

.about-review-card__google {
  width: 42px;
  height: 42px;
}

.about-review-card__name {
  font-weight: 700;
  margin-bottom: 0.75rem;
}

.about-review-card__text {
  margin: 0;
  color: #6b7280;
  font-size: 0.95rem;
  line-height: 1.65;
}

.about-reviews__link {
  display: inline-block;
  font-weight: 600;
  color: var(--brand-orange, var(--brand-orange));
}

.about-reviews__link:hover {
  color: var(--brand-orange-dark, #e55509);
}

.about-video-card {
  position: relative;
  display: block;
  overflow: hidden;
  border-radius: 18px;
  box-shadow: 0 12px 40px rgba(10, 37, 64, 0.08);
}

.about-video-card__thumb {
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  display: block;
  transition: transform 0.3s ease;
}

.about-video-card:hover .about-video-card__thumb {
  transform: scale(1.03);
}

.about-video-card__play {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(10, 37, 64, 0.25);
  color: #fff;
  font-size: 1.75rem;
}

.about-video-card__play i {
  width: 3.5rem;
  height: 3.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: rgba(255, 96, 10, 0.92);
}

.about-video-card__stars {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0.75rem;
  text-align: center;
  font-size: 0.85rem;
}

/* Events gallery */
.about-events {
  padding-top: 4rem;
  padding-bottom: 4.5rem;
  background: var(--bg-soft, #f4f7fa);
}

.about-events__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem 0.75rem;
  margin-top: 2.5rem;
}

@media (min-width: 576px) {
  .about-events__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 992px) {
  .about-events__grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 1.25rem 1rem;
  }
}

.about-events__item {
  margin: 0;
}

.about-events__item img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 12px;
  box-shadow: 0 6px 20px rgba(10, 37, 64, 0.08);
}

.about-events__item figcaption {
  margin-top: 0.5rem;
  font-size: 0.75rem;
  line-height: 1.35;
  color: #6b7280;
  text-align: center;
}

.gallery-page__filters .btn-outline-secondary {
  border-color: #d0d7de;
}

.gallery-page__category-label {
  color: var(--brand-orange);
  font-weight: 500;
}

/* Team */
.about-team {
  padding-top: 4rem;
  padding-bottom: 5rem;
}

.about-team__intro {
  max-width: 760px;
  margin-inline: auto;
}

.about-team .team-item h5 {
  font-size: 1rem;
  margin-bottom: 0.15rem;
}

@media (max-width: 1199.98px) {
  .about-team .col-xl-2 {
    flex: 0 0 auto;
    width: 33.333333%;
  }
}

@media (max-width: 767.98px) {
  .about-team .col-xl-2 {
    width: 50%;
  }
}

/* ========== QA fixes (post-consolidation) ========== */

/* Ferry hero: resolve stacked hero class conflicts */
.aa-page-hero--extended.ferry-landing-hero {
  display: block;
  min-height: 0;
  align-items: stretch;
  padding: 7rem 0 4.5rem;
}

@media (max-width: 767.98px) {
  .aa-page-hero--extended.ferry-landing-hero {
    padding-top: 5.5rem;
  }

  .ferry-route-row__grid {
    grid-template-columns: 1fr;
  }

  .ferry-field--action {
    grid-column: auto;
  }
}

/* Embedded FAQ in sidebar layouts — no outer section padding */
.tour-landing-faq.aa-faq {
  padding: 1.75rem;
}

/* Blog palette aligned to site brand */
.blog-section-title,
.blog-article__title,
.blog-related h3,
.blog-sidebar__card h5 {
  color: var(--text-dark);
}

.blog-card__category {
  color: var(--brand-teal);
}

.blog-card__title a {
  color: var(--text-dark);
}

.blog-card__title a:hover,
.blog-sidebar__list a.active,
.blog-sidebar__list a:hover {
  color: var(--brand-orange);
}

/* Bootstrap card + aa-card image radius */
.card.aa-card.tour-package-card .card-img-top,
.card.aa-card.tour-package-card .tour-package-card__image {
  border-top-left-radius: calc(var(--radius-md) - 1px);
  border-top-right-radius: calc(var(--radius-md) - 1px);
}

/* About hero badge row above overlay */
.about-hero__inner,
.about-hero__badges {
  position: relative;
  z-index: 2;
}

.about-hero__badges {
  z-index: 3;
}

/* Prevent ferry search grid from causing horizontal scroll */
.ferry-search-card {
  max-width: 100%;
}

.ferry-route-row__grid {
  min-width: 0;
}

/* Package detail itinerary accordion matches FAQ styling */
.package-detail-page .accordion.aa-faq .accordion-button {
  font-weight: 600;
  box-shadow: none;
}

.package-detail-page .accordion.aa-faq .accordion-button:not(.collapsed) {
  color: var(--brand-orange);
  background: rgba(255, 96, 10, 0.06);
}

/* Activity detail landing page */
.activity-detail-page {
  padding-top: 2.5rem;
  padding-bottom: 3.5rem;
}

.activity-landing-featured {
  margin: 0;
}

.activity-landing-featured__image {
  margin-bottom: 0;
  box-shadow: 0 12px 40px rgba(10, 37, 64, 0.12);
}

.activity-landing-intro {
  margin-bottom: 1.25rem;
}

.activity-landing-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 0.65rem;
  margin-bottom: 1.25rem;
}

.activity-landing-meta__item {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.35rem 0.75rem;
  border-radius: 999px;
  background: rgba(15, 118, 110, 0.08);
  color: #0f766e;
  font-size: 0.875rem;
  font-weight: 600;
}

.activity-landing-meta__item i {
  opacity: 0.85;
}

.activity-landing-meta__item--price {
  background: rgba(255, 96, 10, 0.1);
  color: var(--brand-orange, #ff600a);
}

.activity-landing-lead {
  font-size: 1.125rem;
  line-height: 1.65;
  color: #334155;
  margin-bottom: 1rem;
}

.activity-landing-description {
  color: #475569;
}

.activity-gallery-card h4 {
  margin-bottom: 1rem;
}

.activity-gallery-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
}

@media (min-width: 768px) {
  .activity-gallery-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
  }
}

.activity-gallery-grid__link {
  display: block;
  overflow: hidden;
  border-radius: 12px;
  box-shadow: 0 6px 20px rgba(10, 37, 64, 0.08);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.activity-gallery-grid__link:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 28px rgba(10, 37, 64, 0.12);
}

.activity-gallery-grid__link img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
}

.activity-info-card--safety {
  border-left: 4px solid #0f766e;
}

.activity-info-card--policy {
  border-left: 4px solid #64748b;
}

.activity-booking-facts {
  list-style: none;
  margin: 0 0 1.25rem;
  padding: 0 0 1rem;
  border-bottom: 1px solid rgba(10, 37, 64, 0.08);
}

.activity-booking-facts li {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.35rem 0;
  font-size: 0.9375rem;
}

.activity-booking-facts span {
  color: #64748b;
}

.activity-booking-facts strong {
  color: #0a2540;
  text-align: right;
}

.package-bullet-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.package-bullet-list li {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  padding: 0.45rem 0;
  border-bottom: 1px solid rgba(10, 37, 64, 0.06);
  color: #334155;
  line-height: 1.5;
}

.package-bullet-list li:last-child {
  border-bottom: 0;
}

.package-bullet-list li i {
  flex-shrink: 0;
  width: 1.25rem;
  margin-top: 0.15rem;
  text-align: center;
}

.package-bullet-list--inclusions li i {
  color: #0f766e;
}

.package-bullet-list--exclusions li i {
  color: #94a3b8;
}

/* Sidebar widgets */
.card.blog-sidebar__card {
  padding: 1.25rem;
  margin-bottom: 1rem;
}

/* --------------------------------------------------------------------------
   Package quote page
   -------------------------------------------------------------------------- */
.package-quote-page {
  background: linear-gradient(180deg, #fff7f2 0%, #ffffff 280px);
}

.package-quote-page .quote-heading-block {
  max-width: 42rem;
}

.package-quote-page .quote-section-title {
  font-size: clamp(1.35rem, 2vw, 1.75rem);
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--brand-navy);
}

.package-quote-page .quote-section-title::after {
  content: '';
  display: block;
  width: 3.5rem;
  height: 4px;
  margin-top: 0.65rem;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--brand-orange, #ff600a), #ffb347);
}

.package-quote-page .quote-section-lead {
  color: #64748b;
  font-size: 0.975rem;
}

.package-quote-page .quote-summary-card {
  background: #fff;
  border: 1px solid rgba(255, 96, 10, 0.1);
  border-radius: var(--radius-md);
  padding: 1.5rem 1.75rem;
  box-shadow: 0 8px 32px rgba(255, 96, 10, 0.08);
}

.package-quote-page .btn-package-book {
  background: var(--brand-orange, #ff600a);
  box-shadow: 0 8px 22px rgba(255, 96, 10, 0.28);
}

.package-quote-page .btn-package-book:hover:not(:disabled),
.package-quote-page .btn-package-book:focus:not(:disabled) {
  background: var(--brand-orange-dark, #e55509);
  color: #fff;
  transform: translateY(-1px);
  box-shadow: 0 12px 28px rgba(255, 96, 10, 0.34);
}

.package-quote-page .quote-summary-card__title {
  font-size: clamp(1.25rem, 2vw, 1.6rem);
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--brand-navy);
}

.package-quote-page .quote-summary-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.35rem;
  color: #475569;
  font-size: 0.95rem;
}

.package-quote-page .quote-summary-list strong {
  color: var(--brand-navy);
  font-weight: 600;
}

.quote-category-grid {
  align-items: stretch;
}

.quote-category-card {
  height: 100%;
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid rgba(10, 37, 64, 0.07);
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 8px 28px rgba(10, 37, 64, 0.08);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.quote-category-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 40px rgba(10, 37, 64, 0.12);
}

.quote-category-card--unavailable {
  opacity: 0.92;
}

.quote-category-card__cover {
  position: relative;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: #e2e8f0;
}

.quote-category-card__photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.quote-category-card__photo--placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  color: #94a3b8;
  font-size: 2rem;
}

.quote-category-card__label {
  position: absolute;
  left: 1rem;
  bottom: 1rem;
  padding: 0.35rem 0.75rem;
  border-radius: 999px;
  background: rgba(255, 96, 10, 0.92);
  backdrop-filter: blur(6px);
  color: #fff;
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  box-shadow: 0 4px 14px rgba(255, 96, 10, 0.35);
}

.quote-category-card__body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 1.25rem 1.25rem 1.35rem;
}

.quote-category-card__header {
  margin-bottom: 1rem;
  padding-bottom: 0.85rem;
  border-bottom: 1px solid rgba(255, 96, 10, 0.12);
}

.quote-category-card__price {
  font-size: clamp(1.5rem, 2.5vw, 1.85rem);
  font-weight: 800;
  letter-spacing: -0.03em;
  color: var(--brand-navy);
  line-height: 1.1;
}

.quote-category-card__price--na {
  font-size: 1.15rem;
  font-weight: 700;
  color: #64748b;
}

.quote-category-card__price-note {
  margin-top: 0.25rem;
  font-size: 0.8125rem;
  color: #64748b;
}

.quote-category-card__hotel-list {
  list-style: none;
  margin: 0 0 1.25rem;
  padding: 0;
  flex: 1;
}

.quote-category-card__hotel-item {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.75rem 0;
  border-bottom: 1px solid rgba(10, 37, 64, 0.06);
  font-size: 0.875rem;
  line-height: 1.45;
}

.quote-category-card__hotel-main {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
  flex: 1;
}

.quote-hotel-detail-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  flex-shrink: 0;
  padding: 0.35rem 0.65rem;
  border: 1px solid rgba(255, 96, 10, 0.35);
  border-radius: 999px;
  background: rgba(255, 96, 10, 0.08);
  color: var(--brand-orange, #ff600a);
  font-size: 0.75rem;
  font-weight: 700;
  line-height: 1;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.quote-hotel-detail-btn:hover,
.quote-hotel-detail-btn:focus {
  background: var(--brand-orange, #ff600a);
  border-color: var(--brand-orange, #ff600a);
  color: #fff;
  transform: translateY(-1px);
}

.quote-category-card__hotel-item strong {
  color: var(--brand-navy);
  font-weight: 700;
  font-size: 0.9375rem;
}

.quote-category-card__hotel-item span {
  color: #64748b;
}

.quote-category-card__hotel-item em {
  font-style: normal;
  color: #475569;
  font-size: 0.8125rem;
}

.quote-category-card__hotel-item:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.quote-category-card__empty {
  flex: 1;
  font-size: 0.875rem;
  color: #64748b;
  margin-bottom: 1.25rem;
}

.quote-category-card__form {
  margin-top: auto;
}

.quote-hotel-modal__header {
  border-bottom: 1px solid rgba(255, 96, 10, 0.12);
  padding: 1.1rem 1.25rem;
}

.quote-hotel-modal__title {
  font-weight: 800;
  color: var(--brand-navy);
  letter-spacing: -0.02em;
}

.quote-hotel-modal__meta {
  margin-top: 0.25rem;
  color: #64748b;
  font-size: 0.875rem;
}

.quote-hotel-modal__body {
  padding: 1.25rem;
}

.quote-hotel-modal__carousel {
  border-radius: 14px;
  overflow: hidden;
  background: #e2e8f0;
  margin-bottom: 0.75rem;
}

.quote-hotel-modal__photo {
  aspect-ratio: 16 / 10;
  object-fit: cover;
  max-height: 360px;
}

.quote-hotel-modal__thumbs {
  display: flex;
  gap: 0.5rem;
  overflow-x: auto;
  padding-bottom: 0.25rem;
}

.quote-hotel-modal__thumb {
  flex: 0 0 72px;
  width: 72px;
  height: 52px;
  padding: 0;
  border: 2px solid transparent;
  border-radius: 8px;
  overflow: hidden;
  background: #fff;
}

.quote-hotel-modal__thumb.is-active {
  border-color: var(--brand-orange, #ff600a);
}

.quote-hotel-modal__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.quote-hotel-modal__placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 16 / 10;
  border-radius: 14px;
  background: #f1f5f9;
  color: #94a3b8;
  font-size: 2.5rem;
  margin-bottom: 1rem;
}

.quote-hotel-modal__address {
  display: flex;
  align-items: flex-start;
  gap: 0.45rem;
  margin-bottom: 0.85rem;
  color: #475569;
  font-size: 0.875rem;
}

.quote-hotel-modal__address i {
  color: var(--brand-orange, #ff600a);
  margin-top: 0.15rem;
}

.quote-hotel-modal__description {
  margin-bottom: 1rem;
  color: #334155;
  font-size: 0.9375rem;
  line-height: 1.6;
}

.quote-hotel-modal__section h6 {
  margin-bottom: 0.65rem;
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--brand-navy);
}

.quote-hotel-modal__facilities-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.quote-hotel-modal__facilities-list li {
  padding: 0.35rem 0.65rem;
  border-radius: 999px;
  background: rgba(255, 96, 10, 0.08);
  color: #9a3412;
  font-size: 0.8125rem;
  font-weight: 600;
}

.quote-hotel-modal__rooms-list {
  display: grid;
  gap: 0.75rem;
}

.quote-hotel-modal__room {
  display: flex;
  gap: 0.85rem;
  padding: 0.85rem;
  border: 1px solid rgba(10, 37, 64, 0.08);
  border-radius: 12px;
  background: #f8fafc;
}

.quote-hotel-modal__room-photo {
  flex: 0 0 88px;
  width: 88px;
  height: 72px;
  border-radius: 8px;
  overflow: hidden;
}

.quote-hotel-modal__room-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.quote-hotel-modal__room-body {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  min-width: 0;
}

.quote-hotel-modal__room-body strong {
  color: var(--brand-navy);
  font-size: 0.9375rem;
}

.quote-hotel-modal__room-body span {
  color: #64748b;
  font-size: 0.8125rem;
}

.quote-hotel-modal__room-body p {
  margin: 0.15rem 0 0;
  color: #475569;
  font-size: 0.8125rem;
  line-height: 1.45;
}

@media (max-width: 991.98px) {
  .package-quote-page {
    padding-top: 1.75rem;
  }
}

@media (max-width: 575.98px) {
  .package-quote-page .quote-summary-card {
    padding: 1.15rem 1.1rem;
  }

  .quote-category-card__body {
    padding: 1rem;
  }
}

/* ========== Header / footer bridge (legacy layout → aa tokens) ========== */

.main-header .header-five {
  font-family: var(--font-sans);
}

.main-header .main-nav > li > a {
  font-weight: 500;
  color: var(--text-dark);
  transition: color 0.2s ease;
}

.main-header .main-nav > li > a:hover,
.main-header .main-nav > li.active > a {
  color: var(--brand-orange);
}

.main-header .main-nav .submenu a:hover,
.main-header .megamenu-wrapper a:hover {
  color: var(--brand-orange);
}

.main-header .header-btn .btn {
  border-radius: 999px;
  font-weight: 600;
  padding: 0.5rem 1.25rem;
  white-space: nowrap;
}

.main-header .header-btn .btn.aa-btn-primary {
  background: var(--brand-orange);
  border-color: var(--brand-orange);
  color: #fff;
}

.main-header .header-btn .btn.aa-btn-primary:hover {
  background: var(--brand-orange-dark);
  border-color: var(--brand-orange-dark);
  color: #fff;
}

.footer-layout5 {
  font-family: var(--font-sans);
  color: #4e5561;
}

.footer-layout5 .footer-widget h5 {
  color: #393f4d;
  font-weight: 700;
  margin-bottom: 1.25rem;
}

.footer-layout5 .footer-menu a {
  color: #4e5561;
  transition: color 0.2s ease;
}

.footer-layout5 .footer-menu a:hover {
  color: var(--brand-orange);
}

.footer-layout5 .bg-primary {
  background-color: var(--brand-orange) !important;
}

.footer-layout5 a.text-primary,
.footer-layout5 .text-primary {
  color: #393f4d !important;
}

.footer-layout5 a.text-primary:hover,
.footer-layout5 .text-primary:hover {
  color: var(--brand-orange) !important;
}

.footer-layout5 .customer-info-content span {
  color: #6c757d;
}

.footer-layout5 .customer-info-content h6,
.footer-layout5 .customer-info-content h6 a {
  color: #393f4d;
}

.footer-layout5 .customer-info-content h6 a:hover {
  color: var(--brand-orange);
}

.footer-layout5 .social-icon a {
  color: #4e5561;
  transition: color 0.2s ease;
}

.footer-layout5 .social-icon a:hover {
  color: var(--brand-orange);
}

.footer-layout5 .footer-bottom,
.footer-layout5 .footer-bottom p {
  color: #6c757d;
}

.footer-layout5 .footer-bottom a.text-muted {
  color: #6c757d !important;
}

.footer-layout5 .footer-bottom a.text-muted:hover {
  color: var(--brand-orange) !important;
}

.aa-page-shell--breadcrumb-bar {
  padding-top: 1rem;
  padding-bottom: 0;
}

/* Utility image classes (replace repeated inline styles) */
.aa-avatar-cover {
  object-fit: cover;
}

.aa-cert-badge-img {
  max-height: 72px;
  width: auto;
}

.aa-trust-badge-img {
  max-height: 48px;
  width: auto;
}

.enquiry-modal__figure-img {
  max-height: 400px;
}

/* ========== Phase 5: Accessibility, responsive polish, motion ========== */

:where(
  a,
  button,
  .btn,
  .aa-btn,
  .form-control,
  .form-select,
  .aa-filter-pill,
  .hourly-dest-filter__btn,
  .sidebar-menu,
  .offcanvas-close,
  .accordion-button,
  .aa-related-card,
  .aa-listing-card__image-link,
  .blog-share a
):focus-visible {
  outline: 2px solid var(--brand-orange);
  outline-offset: 2px;
  box-shadow: none;
}

.main-header .main-nav > li > a:focus-visible {
  border-radius: 0.5rem;
}

.sidebar-menu {
  min-width: 44px;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

@media (max-width: 991.98px) {
  .aa-booking-card--sticky,
  .package-booking-panel {
    position: static;
    top: auto;
  }

  .gallery-page__filters .d-flex,
  .hourly-dest-filter {
    flex-wrap: nowrap;
    justify-content: flex-start;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 0.35rem;
    scrollbar-width: thin;
  }

  .gallery-page__filters .btn,
  .hourly-dest-filter__btn,
  .aa-filter-pill {
    flex: 0 0 auto;
  }

  .aa-page-hero--extended.ferry-landing-hero {
    padding-top: 5.5rem;
    padding-bottom: 3rem;
  }

  .aa-empty-state {
    padding: 1.5rem 1.25rem;
  }
}

@media (max-width: 767.98px) {
  .aa-page-hero,
  .page-hero-strip {
    min-height: 220px;
  }

  .blog-article__hero img {
    max-height: 280px;
    object-fit: cover;
  }
}

.tour-package-empty .aa-empty-state {
  margin-top: 0;
}

.about-review-card .aa-star-rating {
  justify-content: center;
}

