/* =====================================================================
   Passeios em Playa del Carmen — brand theme for the admin + client portal
   Same palette and fonts as the public site (tour-index/assets/css/style.css).
   Colors and styles only: every photo on these pages comes from the database.
   To change a color everywhere, edit it once in :root below.
   ===================================================================== */
:root {
  /* Brand colors (from the logo) */
  --blue:  #4A88CC;   /* navbar + footer */
  --sun:   #FFC857;   /* highlights, CTA */
  --deep:  #0C3C4C;   /* text, sidebar, dark buttons */
  --stone: #1F6E78;   /* primary buttons, links */
  --ocean: #10A3B2;
  --aqua:  #5FD0C8;
  --palm:  #2BB39A;
  --sky:   #E0F3F2;
  --sand:  #F7EDE0;
  --cream: #FBF7F1;   /* page background */
  --font-display: "Bricolage Grotesque", system-ui, sans-serif;
  --font-body: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;

  /* Aliases kept for old markup */
  --pdc-primary: var(--stone);
  --pdc-accent: var(--sun);
  --brand-primary: var(--stone);
  --brand-gold: var(--sun);
  --brand-dark: var(--deep);

  /* Bootstrap 5.3 overrides */
  --bs-primary: #1F6E78;            --bs-primary-rgb: 31,110,120;
  --bs-primary-text-emphasis: #0C3C4C;
  --bs-primary-bg-subtle: #E0F3F2;  --bs-primary-border-subtle: #A9DEDA;
  --bs-info: #10A3B2;               --bs-info-rgb: 16,163,178;
  --bs-info-text-emphasis: #0B5F68;
  --bs-info-bg-subtle: #DDF4F5;     --bs-info-border-subtle: #9EDDE3;
  --bs-warning: #FFC857;            --bs-warning-rgb: 255,200,87;
  --bs-warning-bg-subtle: #FFF4DB;  --bs-warning-border-subtle: #FFE3A6;
  --bs-dark: #0C3C4C;               --bs-dark-rgb: 12,60,76;
  --bs-light: #F7EDE0;              --bs-light-rgb: 247,237,224;
  --bs-body-font-family: var(--font-body);
  --bs-body-color: #0C3C4C;         --bs-body-color-rgb: 12,60,76;
  --bs-body-bg: #FBF7F1;
  --bs-secondary-color: rgba(12,60,76,.68);
  --bs-link-color: #1F6E78;         --bs-link-color-rgb: 31,110,120;
  --bs-link-hover-color: #10A3B2;   --bs-link-hover-color-rgb: 16,163,178;
  --bs-border-color: #E6DCCD;
  --bs-focus-ring-color: rgba(16,163,178,.3);
}

body { font-family: var(--font-body); color: var(--deep); background: var(--cream); }
h1, h2, h3, h4, h5, .h1, .h2, .h3, .h4, .h5, .display-6, .brand-text, .modal-title {
  font-family: var(--font-display); letter-spacing: -.01em;
}
.text-muted { color: rgba(12,60,76,.62) !important; }
.text-dark  { color: var(--deep) !important; }
::selection { background: var(--sun); color: var(--deep); }

/* ---------- Buttons (pill shape, like the public site) ---------- */
.btn { border-radius: 999px; font-weight: 600; }
.btn-group > .btn { border-radius: 0; }
.btn-group > .btn:first-child { border-top-left-radius: 999px; border-bottom-left-radius: 999px; }
.btn-group > .btn:last-child  { border-top-right-radius: 999px; border-bottom-right-radius: 999px; }
.input-group > .btn { border-radius: var(--bs-border-radius); }
.btn-primary {
  --bs-btn-bg: var(--stone); --bs-btn-border-color: var(--stone); --bs-btn-color: #fff;
  --bs-btn-hover-bg: var(--deep); --bs-btn-hover-border-color: var(--deep); --bs-btn-hover-color: #fff;
  --bs-btn-active-bg: var(--deep); --bs-btn-active-border-color: var(--deep);
  --bs-btn-disabled-bg: var(--stone); --bs-btn-disabled-border-color: var(--stone);
}
.btn-outline-primary {
  --bs-btn-color: var(--stone); --bs-btn-border-color: var(--stone);
  --bs-btn-hover-bg: var(--stone); --bs-btn-hover-border-color: var(--stone); --bs-btn-hover-color: #fff;
  --bs-btn-active-bg: var(--deep); --bs-btn-active-border-color: var(--deep);
}
.btn-warning, .btn-sun {
  --bs-btn-bg: var(--sun); --bs-btn-border-color: var(--sun); --bs-btn-color: var(--deep);
  --bs-btn-hover-bg: #ffd57a; --bs-btn-hover-border-color: #ffd57a; --bs-btn-hover-color: var(--deep);
  --bs-btn-active-bg: #f5b93a; --bs-btn-active-border-color: #f5b93a;
}
.btn-info {
  --bs-btn-bg: var(--ocean); --bs-btn-border-color: var(--ocean); --bs-btn-color: #fff;
  --bs-btn-hover-bg: var(--stone); --bs-btn-hover-border-color: var(--stone); --bs-btn-hover-color: #fff;
}
.btn-outline-info {
  --bs-btn-color: var(--stone); --bs-btn-border-color: var(--ocean);
  --bs-btn-hover-bg: var(--ocean); --bs-btn-hover-border-color: var(--ocean); --bs-btn-hover-color: #fff;
}
.btn-dark {
  --bs-btn-bg: var(--deep); --bs-btn-border-color: var(--deep);
  --bs-btn-hover-bg: var(--stone); --bs-btn-hover-border-color: var(--stone);
  --bs-btn-active-bg: var(--deep); --bs-btn-active-border-color: var(--deep);
}
.btn-outline-secondary {
  --bs-btn-color: var(--stone); --bs-btn-border-color: #D9CFC0;
  --bs-btn-hover-bg: var(--sky); --bs-btn-hover-border-color: var(--aqua); --bs-btn-hover-color: var(--deep);
  --bs-btn-active-bg: var(--sky); --bs-btn-active-color: var(--deep);
}
.btn-success {
  --bs-btn-bg: var(--palm); --bs-btn-border-color: var(--palm);
  --bs-btn-hover-bg: #229984; --bs-btn-hover-border-color: #229984;
}

/* ---------- Forms ---------- */
.form-control, .form-select { border-color: #E0D6C7; background-color: #fff; }
.form-control:focus, .form-select:focus { border-color: var(--ocean); box-shadow: 0 0 0 .25rem rgba(16,163,178,.2); }
.form-check-input:checked { background-color: var(--stone); border-color: var(--stone); }
.form-label { color: var(--deep); }
.input-group-text { background: var(--sand); border-color: #E0D6C7; color: var(--stone); }

/* ---------- Cards, tables, badges ---------- */
.card { border: 1px solid #EFE5D6; border-radius: 1rem; box-shadow: 0 2px 10px rgba(12,60,76,.06); background: #fff; }
.card-header { background: #fff; border-bottom: 1px solid #EFE5D6; font-family: var(--font-display); font-weight: 700; color: var(--deep); padding: 1rem 1.25rem; }
.card-header:first-child { border-radius: 1rem 1rem 0 0; }
.card-footer { background: var(--cream); border-top-color: #EFE5D6; }
.card .table, .table-responsive .table { --bs-table-bg: #fff; }
.table { --bs-table-color: var(--deep); --bs-table-hover-bg: rgba(95,208,200,.1); --bs-table-striped-bg: rgba(247,237,224,.5); }
.table thead th {
  background: var(--sky); color: var(--deep); font-family: var(--font-body);
  font-weight: 600; font-size: .78rem; text-transform: uppercase; letter-spacing: .06em;
  border-bottom: 2px solid var(--aqua);
}
.badge { font-weight: 600; }
.badge-pdc-gold, .badge-brand-gold { background: var(--sun); color: var(--deep); font-weight: 700; }
.badge-status-1 { background: #DDF5EE; color: #17715F; border: 1px solid #A8E3D4; }
.badge-status-0 { background: #fee2e2; color: #b91c1c; border: 1px solid #fecaca; }
.pagination { --bs-pagination-color: var(--stone); --bs-pagination-active-bg: var(--stone); --bs-pagination-active-border-color: var(--stone); --bs-pagination-hover-color: var(--deep); --bs-pagination-hover-bg: var(--sky); --bs-pagination-focus-box-shadow: 0 0 0 .25rem rgba(16,163,178,.25); }
.dropdown-menu { --bs-dropdown-link-active-bg: var(--stone); --bs-dropdown-link-hover-bg: var(--sky); border-color: #EFE5D6; border-radius: .75rem; }
.nav-tabs .nav-link.active { color: var(--deep); font-weight: 600; border-bottom-color: #fff; }
.nav-tabs .nav-link { color: var(--stone); }
.nav-pills { --bs-nav-pills-link-active-bg: var(--stone); }
.alert { border-radius: .85rem; }
.modal-content { border: 0; border-radius: 1.25rem; overflow: hidden; }
.modal-header { background: var(--sky) !important; border-bottom: 2px solid var(--aqua); color: var(--deep); }
.progress { --bs-progress-bar-bg: var(--ocean); }

/* ---------- Brand lock-up (logo + name) ---------- */
.brand-text { font-weight: 800; line-height: 1; font-size: 1.1rem; color: #fff; }
.brand-text small { display: block; font-family: var(--font-body); font-size: .58rem; letter-spacing: .3em; text-transform: uppercase; color: var(--sky); font-weight: 600; margin-bottom: 3px; }
.brand-logo { width: 42px; height: 42px; filter: drop-shadow(0 2px 6px rgba(12,60,76,.25)); }
.eyebrow { letter-spacing: .4em; text-transform: uppercase; font-weight: 600; color: var(--aqua); font-size: .8rem; }

/* ---------- Top navbar ---------- */
.navbar-pdc { background: var(--blue) !important; border-bottom: 3px solid var(--sun); box-shadow: 0 4px 20px rgba(12,60,76,.18); }
.navbar-pdc .nav-link { color: #fff; font-weight: 500; }
.navbar-pdc .nav-link:hover, .navbar-pdc .nav-link:focus, .navbar-pdc .nav-link.active { color: var(--sun); }
.navbar-pdc .btn-outline-light:hover { color: var(--deep); }

/* ---------- Admin sidebar ---------- */
.sidebar {
  width: 260px; background: var(--deep); position: sticky; top: 67px;
  height: calc(100vh - 67px); overflow-y: auto; flex-shrink: 0; z-index: 1000;
}
.sidebar-heading { color: var(--aqua); font-size: .7rem; letter-spacing: .25em; text-transform: uppercase; font-weight: 600; padding: 1.1rem 1.5rem .5rem; }
.sidebar hr { border-color: rgba(224,243,242,.18); opacity: 1; }
.sidebar .nav-link {
  color: var(--sky); padding: .7rem 1.1rem; border-radius: 999px; margin: .12rem .75rem;
  font-size: .925rem; display: flex; align-items: center; gap: .75rem; transition: background-color .15s, color .15s;
}
.sidebar .nav-link .bi { color: var(--aqua); font-size: 1.05rem; }
.sidebar .nav-link:hover { background: rgba(95,208,200,.14); color: #fff; }
.sidebar .nav-link.active { background: var(--sun); color: var(--deep); font-weight: 600; }
.sidebar .nav-link.active .bi { color: var(--deep); }
.main-content { flex: 1; padding: 1.75rem; max-width: 100%; min-width: 0; }

/* Dashboard tiles etc. */
.stat-card { transition: transform .15s ease, box-shadow .15s ease; }
.stat-card:hover { transform: translateY(-3px); box-shadow: 0 10px 24px rgba(12,60,76,.12); }
.search-bar { max-width: 320px; }

/* ---------- Footer ---------- */
.site-footer { background: var(--blue); color: #fff; }
.site-footer a { color: #fff; }
.site-footer a:hover { color: var(--deep); }
.site-footer .small, .site-footer small { opacity: .9; }

/* ---------- Login ---------- */
.login-page {
  min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 1.5rem;
  background: linear-gradient(180deg, var(--blue) 0%, #3CA9C4 60%, var(--aqua) 100%);
}
.login-card {
  width: 100%; max-width: 440px; background: var(--cream); border-radius: 24px;
  box-shadow: 0 20px 60px rgba(12,60,76,.35); padding: 2.25rem;
}
.login-card .login-logo { width: 110px; height: 110px; margin-top: -90px; filter: drop-shadow(0 10px 24px rgba(12,60,76,.3)); }
.login-card h3 { font-weight: 800; color: var(--deep); }

/* ---------- Client catalog ---------- */
.hero-banner { background: var(--blue); color: #fff; padding: 3rem 1rem; position: relative; }
.hero-banner::after { /* gold line + turquoise band, like the logo's water */
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 8px;
  background: linear-gradient(90deg, var(--ocean), var(--aqua), var(--palm));
}
.hero-banner h1 { font-weight: 800; }
.hero-banner h1 .t-sun { color: var(--sun); }
.hero-logo-img { width: 100%; max-width: 220px; height: auto; filter: drop-shadow(0 10px 30px rgba(12,60,76,.3)); animation: pdc-float 6s ease-in-out infinite; }
@keyframes pdc-float { 50% { transform: translateY(-8px); } }
@media (prefers-reduced-motion: reduce) { .hero-logo-img { animation: none; } }
.tour-card {
  border: 1px solid #EFE5D6; border-radius: 1.25rem; background: #fff;
  display: flex; flex-direction: column; height: 100%;
  transition: transform .2s ease, box-shadow .2s ease; box-shadow: 0 2px 10px rgba(12,60,76,.06);
}
.tour-card:hover { transform: translateY(-4px); box-shadow: 0 18px 40px -12px rgba(12,60,76,.28); }
.tour-card h5, .tour-card .h5 { font-weight: 700; color: var(--deep); }
.tour-price-badge {
  background: var(--sun); color: var(--deep); font-family: var(--font-display);
  font-weight: 800; font-size: 1.15rem; padding: .3rem .8rem; border-radius: 999px; border: 0;
  display: inline-block; white-space: nowrap;
}
.lang-btn { font-size: .85rem; padding: .25rem .7rem; }
.cursor-pointer { cursor: pointer; }
.opacity-100-hover { transition: opacity .2s ease; }
.opacity-100-hover:hover { opacity: 1 !important; }

/* =====================================================================
   Client catalog (client_tours.php) — richer public design
   Colors and shapes only; tour photos come from the database.
   ===================================================================== */
.btn-ocean { background: var(--deep); color: #fff; border: 0; }
.btn-ocean:hover, .btn-ocean:focus { background: var(--ocean); color: #fff; }
.btn-ocean .bi { transition: transform .2s; display: inline-block; }
.btn-ocean:hover .bi { transform: translateX(4px); }
.btn-whatsapp { background: #25D366; color: #fff; border: 0; }
.btn-whatsapp:hover { background: #1ebe5a; color: #fff; }
.btn-wa-icon { width: 44px; height: 44px; padding: 0; display: grid; place-items: center; flex-shrink: 0;
  background: #E6F9EE; color: #128C4B; border: 0; font-size: 1.15rem; }
.btn-wa-icon:hover { background: #25D366; color: #fff; }

/* Hero */
.catalog-hero { overflow: hidden; padding: 4rem 1rem 6.5rem;
  background: radial-gradient(1200px 500px at 85% 20%, #5B98D8 0%, var(--blue) 55%, #3F7DC0 100%); }
.catalog-hero::after { display: none; }
.hero-sun { position: absolute; width: 520px; height: 520px; border-radius: 50%; right: -140px; top: -180px;
  background: radial-gradient(circle, rgba(255,200,87,.45) 0%, rgba(255,200,87,.12) 45%, rgba(255,200,87,0) 70%); pointer-events: none; }
.catalog-hero .eyebrow { text-shadow: 0 1px 8px rgba(12,60,76,.25); }
.hero-catalog-title { font-weight: 800; font-size: clamp(2.2rem, 5.4vw, 4rem); line-height: .98; letter-spacing: -.02em;
  color: var(--cream); text-shadow: 0 4px 30px rgba(12,60,76,.25); text-wrap: balance; }
.hero-catalog-lead { font-size: clamp(1rem, 1.5vw, 1.15rem); max-width: 560px; color: #fff; opacity: .95; }
.hero-search { box-shadow: 0 18px 40px rgba(12,60,76,.28); }
.hero-search .form-control { font-size: 1rem; }
.hero-wave { position: absolute; left: 0; bottom: -1px; width: 100%; height: 90px; }
.hero-wave .w1 { fill: var(--aqua); opacity: .55; }
.hero-wave .w2 { fill: var(--cream); }

/* Heading + filters */
.catalog-main { padding-top: 1.5rem; }
.catalog-title { font-weight: 800; font-size: clamp(1.6rem, 3vw, 2.2rem); color: var(--deep); }
.filter-bar { background: #fff; border-radius: 1.25rem; padding: 1rem 1.25rem; box-shadow: 0 10px 30px rgba(12,60,76,.08);
  display: flex; flex-wrap: wrap; gap: .75rem 2rem; align-items: center; }
.filter-group { display: flex; align-items: center; gap: .75rem; min-width: 0; }
.filter-label { font-size: .72rem; letter-spacing: .18em; text-transform: uppercase; font-weight: 600; color: var(--ocean); white-space: nowrap; }
.chips { display: flex; gap: .4rem; flex-wrap: wrap; }
.chip { display: inline-block; padding: .38rem .95rem; border-radius: 999px; font-size: .88rem; font-weight: 600;
  background: var(--cream); color: var(--stone); border: 1px solid #EADFCF; text-decoration: none; transition: all .15s; white-space: nowrap; }
.chip:hover { background: var(--sky); border-color: var(--aqua); color: var(--deep); }
.chip.active { background: var(--deep); border-color: var(--deep); color: #fff; }
@media (max-width: 767.98px) {
  .filter-group { flex-direction: column; align-items: flex-start; gap: .4rem; width: 100%; }
  .chips { flex-wrap: nowrap; overflow-x: auto; width: 100%; padding-bottom: .25rem; scrollbar-width: none; }
  .chips::-webkit-scrollbar { display: none; }
}

/* Tour cards */
.tour-card { border: 0; box-shadow: 0 6px 24px rgba(12,60,76,.08); }
.tour-media { position: relative; height: 200px; overflow: hidden; background: var(--sky); flex-shrink: 0; }
.tour-media img.object-fit-cover { transition: transform .5s ease; }
.tour-card:hover .tour-media img.object-fit-cover { transform: scale(1.05); }
.photo-count { background: rgba(12,60,76,.8); color: #fff; font-weight: 600; border-radius: 999px; padding: .35rem .7rem; }
/* Placeholder illustration (no photo yet) */
.tour-media-empty { background: linear-gradient(180deg, var(--sky) 0%, #CFEDEA 60%); }
.tm-sun { position: absolute; width: 130px; height: 130px; border-radius: 50%; background: var(--sun); left: 50%; top: 34px; transform: translateX(-50%); opacity: .9; }
.tm-wave { position: absolute; left: -10%; width: 120%; border-radius: 50% 50% 0 0 / 30px 30px 0 0; }
.tm-wave-1 { bottom: 30px; height: 74px; background: var(--ocean); border-radius: 60% 40% 0 0 / 34px 22px 0 0; }
.tm-wave-2 { bottom: -6px; height: 52px; background: var(--aqua); border-radius: 45% 55% 0 0 / 26px 20px 0 0; }
.tm-logo { position: absolute; right: 14px; top: 14px; width: 44px; height: 44px; opacity: .95; filter: drop-shadow(0 3px 8px rgba(12,60,76,.2)); }
.badge-tour-id { background: var(--sand); color: var(--stone); border: 0; font-weight: 600; }
.tour-card .badge.bg-primary-subtle { background: var(--sky) !important; color: var(--stone) !important; border-color: #BDE6E2 !important; }
.tour-title { font-family: var(--font-display); font-weight: 800; font-size: 1.3rem; line-height: 1.15; color: var(--deep); }
.tour-card .btn-ocean { padding: .6rem 1rem; }
.catalog-pagination .card-footer { background: #fff; border: 0; border-radius: 1.25rem; box-shadow: 0 6px 24px rgba(12,60,76,.08); }

/* Modal */
.modal-header .modal-title { font-weight: 800; }
.modal-facts { background: var(--cream); border: 1px solid #EFE5D6; border-radius: 1rem; }
.modal-footer { border-top-color: #EFE5D6; background: var(--cream); }

/* Contact band (same as the public site) */
.contact-band { position: relative; margin-top: 7rem; padding-top: 1rem; color: var(--deep);
  background: linear-gradient(180deg, var(--aqua) 0%, #3CBFC4 55%, var(--blue) 100%); }
.contact-band .wave { position: absolute; top: -119px; left: 0; width: 100%; height: 120px; transform: scaleY(-1); }
.contact-band .wave path { fill: var(--aqua); }
.contact-logo { filter: drop-shadow(0 8px 20px rgba(12,60,76,.25)); }
.contact-title { font-weight: 800; font-size: clamp(2rem, 4.5vw, 3.2rem); color: var(--deep); text-wrap: balance; }
.contact-text { max-width: 520px; font-size: 1.1rem; }
.btn-contact-wa { background: var(--deep); color: #fff; border: 0; }
.btn-contact-wa .bi { color: #25D366; }
.btn-contact-wa:hover { background: #082b37; color: #fff; }
.btn-contact-mail { border: 2px solid var(--deep); color: var(--deep); }
.btn-contact-mail:hover { background: var(--deep); color: #fff; }

/* Footer (same as the public site) */
.catalog-footer h6 { color: var(--deep); font-family: var(--font-body); font-weight: 700; text-transform: uppercase; letter-spacing: .12em; font-size: .8rem; margin-bottom: 1rem; }
.catalog-footer a { text-decoration: none; }
.catalog-footer a:hover { text-decoration: underline; }
.catalog-footer li { margin-bottom: .45rem; }
.catalog-footer .brand-name { font-family: var(--font-display); font-size: 1.1rem; }
.catalog-footer hr { border-color: rgba(255,255,255,.35); opacity: 1; margin: 2rem 0 1.25rem; }
.footer-langs a { margin-left: .6rem; font-weight: 600; opacity: .8; }
.footer-langs a.active { opacity: 1; color: var(--sun); }
@media (max-width: 767.98px) {
  .catalog-hero { padding: 2.5rem .5rem 5rem; }
  .catalog-hero .hero-logo-img { max-width: 120px; }
  .hero-wave { height: 60px; }
}

/* Age ranges card (tour details window) */
.age-card { background: var(--sky); border: 1px solid #BDE6E2; border-radius: 1rem; padding: 1rem 1.1rem 1.1rem; }
.age-card-title { font-family: var(--font-display); font-weight: 700; color: var(--deep); margin-bottom: .75rem; }
.age-card-title .bi { color: var(--ocean); }
.age-tile { background: #fff; border-radius: .85rem; padding: .8rem .5rem; text-align: center; height: 100%;
  display: flex; flex-direction: column; align-items: center; gap: .15rem; box-shadow: 0 2px 8px rgba(12,60,76,.06); }
.age-tile .bi { font-size: 1.35rem; color: var(--stone); }
.age-label { font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; font-weight: 600; color: var(--ocean); }
.age-value { font-family: var(--font-display); font-weight: 800; color: var(--deep); font-size: 1rem; line-height: 1.2; }

/* "Ver detalhes" button on tour cards: turquoise sea gradient instead of dark navy */
.tour-card .btn-ocean {
  background: linear-gradient(135deg, var(--stone) 0%, var(--ocean) 100%);
  color: #fff; box-shadow: 0 6px 16px -6px rgba(16,163,178,.6);
}
.tour-card .btn-ocean:hover, .tour-card .btn-ocean:focus {
  background: linear-gradient(135deg, var(--ocean) 0%, var(--palm) 100%); color: #fff;
}

/* Client catalog: top bar blends into the blue hero (no yellow line, no shadow) */
.navbar-pdc.catalog-nav { border-bottom: 0; box-shadow: none; }
/* Hero starts with exactly the top-bar blue so there is no visible seam */
.catalog-hero { background: linear-gradient(180deg, var(--blue) 0%, var(--blue) 35%, #3F7DC0 100%); }
.catalog-hero .hero-sun { top: 40px; right: -180px; }
/* Less empty space between the top bar and the hero content */
.catalog-hero { padding-top: 1.25rem; }
@media (max-width: 767.98px) { .catalog-hero { padding-top: .75rem; } }
/* Footer column titles: sun yellow instead of dark navy */
.catalog-footer h6 { color: var(--sun); }
.catalog-footer .bi { color: var(--sun); }

/* Contact band: deeper sea colors with white text instead of dark navy */
.contact-band { background: linear-gradient(180deg, var(--ocean) 0%, #2C94C2 55%, var(--blue) 100%); color: #fff; }
.contact-band .wave path { fill: var(--ocean); }
.contact-band .contact-title { color: #fff; text-shadow: 0 2px 18px rgba(12,60,76,.35); }
.contact-band .contact-text { color: #fff; opacity: .95; text-shadow: 0 1px 10px rgba(12,60,76,.3); }
.contact-band .btn-contact-mail { border-color: #fff; color: #fff; }
.contact-band .btn-contact-mail:hover { background: #fff; color: var(--deep); }
/* Contact band WhatsApp button: same green as in the tour details window */
.contact-band .btn-contact-wa { background: #25D366; color: #fff; box-shadow: 0 8px 20px -8px rgba(12,60,76,.45); }
.contact-band .btn-contact-wa .bi { color: #fff; }
.contact-band .btn-contact-wa:hover, .contact-band .btn-contact-wa:focus { background: #1ebe5a; color: #fff; }


/* Contact section layout: title on top, then logo (1/4) + text and buttons (3/4) */
.contact-row .contact-text { max-width: none; font-size: 1.15rem; }
.contact-logo-lg { width: 100%; max-width: 170px; height: auto; filter: drop-shadow(0 10px 24px rgba(12,60,76,.3)); }
.contact-row .contact-title { text-align: left; }

/* Top bar over the hero: transparent at the top, solid blue after scrolling.
   The hero runs underneath it, so the sun glow sits in the upper-right corner again. */
.navbar-pdc.catalog-nav { background: transparent !important; transition: background-color .3s, box-shadow .3s; }
.navbar-pdc.catalog-nav.scrolled,
.navbar-pdc.catalog-nav:has(.show) { background: var(--blue) !important; box-shadow: 0 4px 20px rgba(12,60,76,.25); }
.catalog-hero { padding-top: calc(var(--nav-h, 72px) + 1.25rem); }
@media (max-width: 767.98px) { .catalog-hero { padding-top: calc(var(--nav-h, 64px) + .75rem); } }
.catalog-hero .hero-sun { top: -180px; right: -140px; }
/* Bigger sun glow in the upper-right corner */
.catalog-hero .hero-sun { width: 820px; height: 820px; top: -320px; right: -260px;
  background: radial-gradient(circle, rgba(255,200,87,.55) 0%, rgba(255,200,87,.2) 40%, rgba(255,200,87,0) 70%); }
@media (max-width: 767.98px) { .catalog-hero .hero-sun { width: 560px; height: 560px; top: -220px; right: -220px; } }
.catalog-hero .hero-sun { background: radial-gradient(circle, rgba(255,210,110,.75) 0%, rgba(255,200,87,.35) 30%, rgba(255,200,87,.1) 52%, rgba(255,200,87,0) 70%); }
@media (max-width: 767.98px) { .catalog-hero .hero-sun { width: 620px; height: 620px; top: -250px; right: -250px; } }

/* =====================================================================
   Tour page (tour.php) and category page (categoria.php) — 2026-10-14
   ===================================================================== */
a.tour-media { display: block; }
.tour-card .tour-title a:hover { color: var(--ocean) !important; }

/* Hero with cover photo (falls back to the brand blue when there is no photo) */
.pub-hero { position: relative; overflow: hidden; color: #fff;
  padding: calc(var(--nav-h, 72px) + 1.5rem) 1rem 7rem;
  background: linear-gradient(180deg, var(--blue) 0%, var(--blue) 35%, #3F7DC0 100%); }
.pub-hero.has-photo { background: linear-gradient(180deg, rgba(12,60,76,.55) 0%, rgba(12,60,76,.35) 45%, rgba(12,60,76,.75) 100%), var(--hero-img) center / cover no-repeat; }
.pub-hero.has-photo .hero-sun { display: none; }
.pub-hero .hero-sun { top: -320px; right: -260px; width: 820px; height: 820px; }
.pub-hero .hero-catalog-title { max-width: 900px; }
.tour-hero-title { font-size: clamp(2rem, 4.6vw, 3.4rem); text-shadow: 0 4px 30px rgba(12,60,76,.35); }
.tour-hero-meta { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; font-weight: 500; opacity: .95; }
.pub-hero .hero-catalog-lead { max-width: 720px; }
@media (max-width: 767.98px) { .pub-hero { padding: calc(var(--nav-h, 64px) + 1rem) .5rem 5rem; } }

.pub-breadcrumb .breadcrumb { --bs-breadcrumb-divider-color: rgba(255,255,255,.7); --bs-breadcrumb-item-active-color: rgba(255,255,255,.85); font-size: .85rem; }
.pub-breadcrumb a { color: #fff; text-decoration: none; font-weight: 500; }
.pub-breadcrumb a:hover { color: var(--sun); }
.pub-breadcrumb .breadcrumb-item.active { max-width: 40ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.chip-light { background: rgba(255,255,255,.18); border-color: rgba(255,255,255,.45); color: #fff; backdrop-filter: blur(4px); }
.chip-light:hover { background: var(--sun); border-color: var(--sun); color: var(--deep); }

/* Content */
.tour-main { padding-top: 1.5rem; }
.tour-section { margin-bottom: 1.75rem; }
.tour-section-title { font-family: var(--font-display); font-weight: 800; font-size: 1.35rem; color: var(--deep); margin-bottom: .9rem; }
.tour-section-title .bi { color: var(--ocean); }
.tour-text { font-size: 1.02rem; line-height: 1.7; color: #33515c; }

.tour-highlights { background: #fff; border-radius: 1.25rem; padding: 1.25rem 1.4rem; box-shadow: 0 6px 24px rgba(12,60,76,.08); }
.highlight-list { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: .55rem 1.25rem; }
.highlight-list li { display: flex; gap: .55rem; align-items: flex-start; font-weight: 500; color: var(--deep); }
.highlight-list .bi { color: var(--palm); font-size: 1.15rem; line-height: 1.2; }

.tour-gallery { position: relative; border-radius: 1.25rem; overflow: hidden; background: var(--deep); box-shadow: 0 10px 30px rgba(12,60,76,.15); }
.tour-gallery .carousel-item img { height: clamp(260px, 52vw, 480px); object-fit: cover; }
.gallery-caption { position: absolute; left: 0; right: 0; bottom: 0; padding: .6rem 1rem; color: #fff; font-size: .9rem;
  background: linear-gradient(0deg, rgba(12,60,76,.8), rgba(12,60,76,0)); }
.gallery-count { position: absolute; top: .75rem; right: .75rem; z-index: 2; }
.gallery-thumb { border: 2px solid transparent; padding: 0; border-radius: .6rem; overflow: hidden; flex: 0 0 auto; background: none; opacity: .75; transition: opacity .15s, border-color .15s; }
.gallery-thumb:hover, .gallery-thumb:focus { opacity: 1; border-color: var(--ocean); }
.gallery-thumb img { width: 84px; height: 58px; object-fit: cover; display: block; }

.info-box { border-radius: 1rem; padding: 1rem 1.15rem; border: 1px solid; }
.info-incl  { background: #E9F8F3; border-color: #B7E6D8; color: #17614F; }
.info-excl  { background: #FDECEC; border-color: #F6C9C9; color: #8E2A2A; }
.info-note  { background: #FFF6E0; border-color: #FFE3A6; color: #6B4D0B; }
.info-cancel { background: #fff; border-color: #EFE5D6; color: var(--deep); }
.info-box .small { color: var(--deep); }

/* Booking box */
.book-box { position: sticky; top: calc(var(--nav-h, 72px) + 1rem); background: #fff; border-radius: 1.25rem; padding: 1.4rem;
  box-shadow: 0 10px 34px rgba(12,60,76,.12); border-top: 5px solid var(--sun); }
.book-price { padding-bottom: 1rem; margin-bottom: 1rem; border-bottom: 1px solid #EFE5D6; }
.book-price-value { font-family: var(--font-display); font-weight: 800; font-size: 2rem; color: var(--deep); line-height: 1.1; }
.book-facts li { display: flex; gap: .6rem; margin-bottom: .5rem; color: #33515c; }
.book-facts .bi { color: var(--ocean); }
@media (max-width: 991.98px) { .book-box { position: static; } }

.related-tours { padding-top: 1rem; border-top: 1px solid #EFE5D6; }
