/*
Theme Name:  CB Travel Group
Theme URI:   https://example.com/
Author:      CB Travel Group
Description: Custom theme for CB Travel Group: 4-day / 3-night getaways to Medellín and Cartagena, Colombia. Pairs with the CB Travel Booking plugin and WooCommerce.
Version:     1.0.1
Requires at least: 6.4
Requires PHP: 7.4
License:     GNU General Public License v2 or later
Text Domain: cb-travel
*/

/* Layout: postcard-collage hero, then full-width bands that alternate sky-white and deep-sea navy; content in a 1180px column. */
:root {
  --cb-bg: #f4f8f9;        /* sky-washed white */
  --cb-surface: #ffffff;
  --cb-ink: #0f2a3a;       /* deep Caribbean navy: the "safe" anchor */
  --cb-muted: #4b6371;
  --cb-line: #d8e3e7;
  --cb-pink: #e2306a;      /* bougainvillea: calls to action */
  --cb-pink-ink: #ffffff;
  --cb-sea: #08858a;       /* Caribbean teal */
  --cb-sun: #ffc53d;       /* Colombian-flag yellow */
  --cb-soft: #e7f1f3;
  --cb-band: #0f2a3a;      /* dark band background */
  --cb-band-ink: #eef6f7;
  --cb-display: "Bricolage Grotesque", "Arial Rounded MT Bold", "Segoe UI", system-ui, sans-serif;
  --cb-body: "Figtree", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --cb-radius: 16px;
  --cb-header-h: 76px;
  --cb-max: 1180px;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --cb-bg: #0b1a22; --cb-surface: #11252f; --cb-ink: #e9f2f4; --cb-muted: #9db3bd; --cb-line: #22404c;
    --cb-pink: #ff5a8c; --cb-pink-ink: #1c0710; --cb-sea: #3cc2c7; --cb-sun: #ffd166; --cb-soft: #15313b;
    --cb-band: #071219; --cb-band-ink: #e9f2f4; color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --cb-bg: #0b1a22; --cb-surface: #11252f; --cb-ink: #e9f2f4; --cb-muted: #9db3bd; --cb-line: #22404c;
  --cb-pink: #ff5a8c; --cb-pink-ink: #1c0710; --cb-sea: #3cc2c7; --cb-sun: #ffd166; --cb-soft: #15313b;
  --cb-band: #071219; --cb-band-ink: #e9f2f4; color-scheme: dark;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--cb-header-h) + 12px); }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation: none !important; transition: none !important; } }
body { margin: 0; background: var(--cb-bg); color: var(--cb-ink); font: 400 17px/1.6 var(--cb-body); -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; }
a { color: var(--cb-sea); }
a:hover { color: var(--cb-pink); }
:focus-visible { outline: 3px solid var(--cb-sun); outline-offset: 3px; }
h1, h2, h3, h4 { font-family: var(--cb-display); line-height: 1.05; letter-spacing: -.015em; text-wrap: balance; margin: 0; }
p { text-wrap: pretty; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
.skip-link:focus { position: fixed; top: 8px; left: 8px; z-index: 100; clip: auto; width: auto; height: auto; padding: 10px 16px; background: var(--cb-sun); color: #0f2a3a; border-radius: 8px; }

.wrap { width: 100%; max-width: var(--cb-max); margin-inline: auto; padding-inline: 20px; }
.band { padding-block: clamp(56px, 8vw, 104px); }
.band--soft { background: var(--cb-soft); }
.band--dark { background: var(--cb-band); color: var(--cb-band-ink); }
.band--dark .eyebrow { color: var(--cb-sun); }
.band--dark p { color: color-mix(in srgb, var(--cb-band-ink) 80%, transparent); }
.eyebrow { display: inline-block; font: 700 .76rem/1 var(--cb-body); letter-spacing: .14em; text-transform: uppercase; color: var(--cb-sea); margin: 0 0 14px; }
.section-head { display: grid; gap: 12px; max-width: 720px; margin-bottom: clamp(32px, 5vw, 52px); }
.section-head h2 { font-size: clamp(2.1rem, 5vw, 3.4rem); font-weight: 800; }
.section-head p { margin: 0; font-size: 1.1rem; color: var(--cb-muted); }
.band--dark .section-head p { color: color-mix(in srgb, var(--cb-band-ink) 78%, transparent); }

.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 14px 24px; border-radius: 999px; font: 700 1rem/1.1 var(--cb-body);
  text-decoration: none; border: 2px solid transparent; cursor: pointer; transition: transform .15s ease, box-shadow .15s ease; }
.btn--pink { background: var(--cb-pink); color: var(--cb-pink-ink); }
.btn--pink:hover { color: var(--cb-pink-ink); transform: translateY(-1px); box-shadow: 0 8px 22px -10px var(--cb-pink); }
.btn--line { border-color: currentColor; color: inherit; }
.btn--line:hover { color: var(--cb-pink); }

/* ---------- Header ---------- */
.site-header { position: sticky; top: 0; z-index: 50; background: color-mix(in srgb, var(--cb-bg) 92%, transparent); backdrop-filter: saturate(1.4) blur(10px);
  border-bottom: 1px solid transparent; transition: border-color .2s; padding-top: env(safe-area-inset-top, 0px); }
.site-header.is-scrolled { border-bottom-color: var(--cb-line); }
.site-header .wrap { display: flex; align-items: center; justify-content: space-between; gap: 18px; min-height: var(--cb-header-h); }
.brand { display: inline-flex; align-items: center; gap: 11px; text-decoration: none; color: var(--cb-ink); }
.brand:hover { color: var(--cb-ink); }
.brand__mark { width: 46px; height: 46px; flex: none; object-fit: contain; }
.brand__name { font: 800 1.28rem/1 var(--cb-display); letter-spacing: -.02em; }
.brand__name small { display: block; font: 600 .66rem/1.4 var(--cb-body); letter-spacing: .16em; text-transform: uppercase; color: var(--cb-muted); }
.nav { display: flex; align-items: center; gap: 26px; }
.nav ul { list-style: none; display: flex; gap: 24px; margin: 0; padding: 0; }
.nav a:not(.btn) { color: var(--cb-ink); text-decoration: none; font-weight: 600; font-size: .97rem; }
.nav a:not(.btn):hover { color: var(--cb-pink); }
.nav .btn { padding: 11px 20px; }
.nav-toggle { display: none; background: none; border: 2px solid var(--cb-line); border-radius: 12px; width: 46px; height: 46px; color: var(--cb-ink); cursor: pointer; }
@media (max-width: 920px) {
  .nav-toggle { display: inline-grid; place-items: center; }
  .nav { position: fixed; inset: calc(var(--cb-header-h) + env(safe-area-inset-top, 0px)) 0 auto 0; background: var(--cb-bg); flex-direction: column; align-items: stretch; gap: 0;
    padding: 12px 20px 24px; border-bottom: 1px solid var(--cb-line); box-shadow: 0 20px 30px -20px rgba(0,0,0,.25); }
  .nav:not(.is-open) { display: none; }
  .nav ul { flex-direction: column; gap: 0; }
  .nav ul a { display: block; padding: 14px 0; border-bottom: 1px solid var(--cb-line); }
  .nav .btn { margin-top: 16px; }
}

/* ---------- Hero ---------- */
.hero { padding-block: clamp(28px, 5vw, 64px) clamp(56px, 7vw, 96px); overflow: hidden; }
.hero .wrap { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 64px); align-items: center; }
@media (max-width: 920px) { .hero .wrap { grid-template-columns: 1fr; } }
.hero h1 { font-size: clamp(2.6rem, 6vw, 5rem); font-weight: 800; letter-spacing: -.03em; }
.hero h1 .hl { color: var(--cb-pink); position: relative; z-index: 0; }
.hero h1 .hl::after { content: ""; position: absolute; left: 0; right: 0; bottom: .02em; height: .16em; background: var(--cb-sun); z-index: -1; border-radius: 4px; transform: rotate(-1deg); }
.hero__lead { font-size: clamp(1.08rem, 1.6vw, 1.24rem); color: var(--cb-muted); max-width: 54ch; margin: 22px 0 28px; }
.hero__ctas { display: flex; flex-wrap: wrap; gap: 12px; }
.hero__facts { display: flex; flex-wrap: wrap; gap: 10px 26px; margin: 30px 0 0; padding: 0; list-style: none; font-size: .95rem; font-weight: 600; }
.hero__facts li { display: flex; align-items: center; gap: 8px; }
.hero__facts svg { color: var(--cb-sea); flex: none; }

.collage { position: relative; aspect-ratio: 1 / 1.02; max-width: 580px; width: 100%; justify-self: center; }
.postcard { position: absolute; margin: 0; background: #fff; padding: 10px 10px 40px; border-radius: 6px; box-shadow: 0 30px 50px -28px rgba(15, 42, 58, .55), 0 2px 6px rgba(15, 42, 58, .08); }
.postcard img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 3px; background: #dfe9ec; }
.postcard figcaption { position: absolute; left: 14px; bottom: 9px; font: 800 1.05rem/1 var(--cb-display); color: #0f2a3a; }
.postcard figcaption span { font: 600 .7rem/1 var(--cb-body); letter-spacing: .12em; text-transform: uppercase; color: #4b6371; margin-left: 6px; }
.postcard--a { inset: 0 16% 22% 0; transform: rotate(-3deg); }
.postcard--b { right: 0; bottom: 0; width: 56%; height: 52%; transform: rotate(4deg); }
.sticker { position: absolute; left: -2%; top: -3%; width: 26%; z-index: 2; aspect-ratio: 1; border-radius: 50%; overflow: hidden; border: 6px solid var(--cb-sun); transform: rotate(-8deg); box-shadow: 0 16px 30px -18px rgba(15, 42, 58, .6); }
.sticker img { width: 100%; height: 100%; object-fit: cover; display: block; }
.badge { position: absolute; top: 4%; right: 2%; width: 116px; height: 116px; border-radius: 50%; background: var(--cb-pink); color: #fff; display: grid; place-items: center; text-align: center;
  font: 800 .9rem/1.1 var(--cb-body); transform: rotate(10deg); box-shadow: 0 14px 30px -14px var(--cb-pink); }
.badge strong { display: block; font: 800 1.9rem/1 var(--cb-display); }
@media (prefers-reduced-motion: no-preference) {
  .postcard--a { animation: drop-a .8s cubic-bezier(.2,.8,.2,1) both; }
  .postcard--b { animation: drop-b .8s .15s cubic-bezier(.2,.8,.2,1) both; }
  .sticker, .badge { animation: pop .5s .45s cubic-bezier(.3,1.6,.5,1) both; }
  @keyframes drop-a { from { transform: rotate(-9deg) translateY(16px); } to { transform: rotate(-3deg); } }
  @keyframes drop-b { from { transform: rotate(11deg) translateY(16px); } to { transform: rotate(4deg); } }
  @keyframes pop { from { scale: .6; } to { scale: 1; } }
}

/* ---------- Trust strip ---------- */
.trust { border-block: 1px solid var(--cb-line); background: var(--cb-surface); }
.trust ul { list-style: none; margin: 0; padding: 22px 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px 28px; }
@media (max-width: 920px) { .trust ul { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px) { .trust ul { grid-template-columns: 1fr; } }
.trust li { display: grid; grid-template-columns: 44px 1fr; gap: 12px; align-items: center; font-size: .93rem; line-height: 1.35; color: var(--cb-muted); }
.trust li b { display: block; color: var(--cb-ink); font-size: 1rem; }
.trust .ico { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: var(--cb-soft); color: var(--cb-sea); }

/* ---------- Destinations ---------- */
.dest { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.3fr); gap: clamp(28px, 4vw, 56px); align-items: center; }
.dest + .dest { margin-top: clamp(56px, 8vw, 96px); }
.dest--flip { grid-template-columns: minmax(0, 1.3fr) minmax(0, .9fr); }
.dest--flip .dest__text { order: 2; }
@media (max-width: 920px) { .dest, .dest--flip { grid-template-columns: 1fr; } .dest--flip .dest__text { order: 0; } }
.dest__text h3 { font-size: clamp(2.2rem, 5vw, 3.6rem); font-weight: 800; margin-bottom: 14px; }
.dest__text p { color: var(--cb-muted); margin: 0 0 16px; }
.dest__list { list-style: none; padding: 0; margin: 0 0 24px; display: flex; flex-wrap: wrap; gap: 8px; }
.dest__list li { padding: 6px 12px; border-radius: 999px; background: var(--cb-surface); border: 1px solid var(--cb-line); font-size: .88rem; font-weight: 600; }

/* ---------- Payment ---------- */
.pay-steps { list-style: none; margin: 0 0 40px; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; counter-reset: s; }
@media (max-width: 820px) { .pay-steps { grid-template-columns: 1fr; } }
.pay-steps li { counter-increment: s; display: grid; gap: 8px; align-content: start; }
.pay-steps li::before { content: counter(s); width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: var(--cb-sun); color: #0f2a3a; font: 800 1.2rem var(--cb-display); }
.pay-steps h3 { font-size: 1.3rem; font-weight: 700; }
.pay-steps p { margin: 0; }
.pay-opts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
@media (max-width: 820px) { .pay-opts { grid-template-columns: 1fr; } }
.pay-opt { border-radius: var(--cb-radius); padding: 28px; border: 1px solid color-mix(in srgb, var(--cb-band-ink) 18%, transparent); background: color-mix(in srgb, var(--cb-band-ink) 5%, transparent); display: grid; gap: 12px; align-content: start; }
.pay-opt h3 { font-size: 1.7rem; font-weight: 800; }
.pay-opt .tag { justify-self: start; font: 700 .72rem/1 var(--cb-body); letter-spacing: .12em; text-transform: uppercase; padding: 7px 10px; border-radius: 999px; background: var(--cb-sun); color: #0f2a3a; }
.pay-opt ul { margin: 0; padding-left: 1.1em; display: grid; gap: 6px; }
.pay-example { margin-top: 22px; font-size: .95rem; padding: 16px 20px; border-radius: 12px; border: 1px dashed color-mix(in srgb, var(--cb-band-ink) 30%, transparent); font-variant-numeric: tabular-nums; }

/* ---------- Safety ---------- */
.safety { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: clamp(28px, 5vw, 64px); align-items: center; }
@media (max-width: 920px) { .safety { grid-template-columns: 1fr; } }
.safety__photo { position: relative; border-radius: var(--cb-radius); overflow: hidden; aspect-ratio: 4 / 5; max-height: 620px; }
.safety__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.safety__photo .cbtg-photo { height: 100%; }
.safety__note { position: absolute; left: 16px; right: 16px; bottom: 16px; background: var(--cb-surface); color: var(--cb-ink); border-radius: 12px; padding: 14px 16px; font-size: .9rem; box-shadow: 0 10px 30px -14px rgba(0,0,0,.4); }
.safety__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 20px; }
.safety__list li { display: grid; grid-template-columns: 44px 1fr; gap: 14px; }
.safety__list .ico { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: var(--cb-soft); color: var(--cb-sea); }
.safety__list h3 { font: 700 1.1rem/1.3 var(--cb-body); letter-spacing: 0; margin-bottom: 2px; }
.safety__list p { margin: 0; color: var(--cb-muted); }

/* ---------- FAQ ---------- */
.faq { max-width: 860px; }
.faq details { border-bottom: 1px solid var(--cb-line); }
.faq summary { list-style: none; cursor: pointer; padding: 22px 44px 22px 0; position: relative; font: 700 1.15rem/1.35 var(--cb-body); }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; position: absolute; right: 4px; top: 50%; translate: 0 -50%; width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; background: var(--cb-soft); color: var(--cb-sea); font-size: 1.3rem; font-weight: 700; transition: rotate .2s; }
.faq details[open] summary::after { rotate: 45deg; }
.faq details > div { padding: 0 0 22px; color: var(--cb-muted); max-width: 70ch; }
.faq details > div p { margin: 0 0 10px; }

/* ---------- Footer ---------- */
.site-footer { background: var(--cb-band); color: var(--cb-band-ink); padding-block: 64px 32px; }
.site-footer a { color: var(--cb-band-ink); }
.site-footer a:hover { color: var(--cb-sun); }
.footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 36px; }
@media (max-width: 820px) { .footer-grid { grid-template-columns: 1fr; } }
.site-footer .brand { color: var(--cb-band-ink); }
.site-footer .brand__name small { color: color-mix(in srgb, var(--cb-band-ink) 65%, transparent); }
.site-footer h4 { font: 700 .78rem/1 var(--cb-body); letter-spacing: .14em; text-transform: uppercase; color: var(--cb-sun); margin-bottom: 14px; }
.site-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.site-footer p { color: color-mix(in srgb, var(--cb-band-ink) 75%, transparent); }
.footer-bottom { margin-top: 44px; padding-top: 22px; border-top: 1px solid color-mix(in srgb, var(--cb-band-ink) 15%, transparent); display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; font-size: .85rem; color: color-mix(in srgb, var(--cb-band-ink) 65%, transparent); }
.flag-bar { height: 6px; background: linear-gradient(90deg, var(--cb-sun) 0 50%, #1f5fbf 50% 75%, #d7263d 75%); }

/* ---------- Generic pages & WooCommerce ---------- */
.page-main { padding-block: clamp(32px, 6vw, 72px); }
.page-title { font-size: clamp(2.2rem, 5vw, 3.4rem); font-weight: 800; margin-bottom: 28px; }
.entry-content { max-width: 100%; }
.entry-content > *:not(.cbtg-detail):not(.woocommerce):not(.wp-block-woocommerce-checkout):not(.wp-block-woocommerce-cart) { max-width: 72ch; }
.woocommerce .button, .woocommerce button.button, .woocommerce a.button, .wc-block-components-button:not(.is-link) {
  background: var(--cb-pink) !important; color: var(--cb-pink-ink) !important; border-radius: 999px !important; font-weight: 700 !important; border: 0 !important; }
.woocommerce input.input-text, .woocommerce select, .woocommerce textarea { border: 1.5px solid var(--cb-line); border-radius: 10px; padding: 10px 12px; background: var(--cb-surface); color: var(--cb-ink); }
.woocommerce-info, .woocommerce-message { border-top-color: var(--cb-sea) !important; }
