/* ─────────────────────────────────────────────
   Cruisin' with the Colemans — Homepage v2
   Brand-red palette · polaroid collages · kraft cream
   ───────────────────────────────────────────── */

:root {
  --cc-red: #a24438; /* Phase 6: was #b14a3d (4.39:1 on cream, under AA) */
  --cc-red-dark: #83342c; /* Phase 6: was #923a31 */
  --cc-orange: #d97a35;
  --cc-cream: #f0e8d5;
  --cc-cream-warm: #ebe1c8;
  --cc-ink: #000;
  --cc-ink-soft: #3a3530;
}

/* ───── Global body margin reset ───── */
html, body { margin: 0 !important; padding: 0; }
body { background: var(--cc-cream); font-family: 'Inter Tight', system-ui, sans-serif; color: var(--cc-ink); }

/* ───── Reset & base on body for the front page ───── */
.cc-home,
.cc-home * { box-sizing: border-box; }

.cc-home {
  background: var(--cc-cream);
  color: var(--cc-ink);
  font-family: 'Inter Tight', system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  position: relative;
  overflow-x: hidden;
}

.cc-home img { display: block; max-width: 100%; }
.cc-home p { margin: 0 0 1em; }
.cc-home h1, .cc-home h2, .cc-home h3, .cc-home h4 { margin: 0; }
.cc-home h2 { margin-bottom: 32px; }

.cc-home .serif { font-family: 'Fraunces', Georgia, serif; }
.cc-home .hand  { font-family: 'Caveat', cursive; }
.cc-home .mono  { font-family: 'JetBrains Mono', ui-monospace, monospace; }

/* ───── Buttons & labels ───── */
.cc-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 22px;
  font-family: 'Inter Tight', sans-serif;
  font-weight: 600;
  font-size: 14px;
  letter-spacing: .02em;
  color: var(--cc-red);
  border: 1px solid currentColor;
  border-radius: 999px;
  cursor: pointer;
  text-decoration: none;
  transition: transform .15s ease, background .2s ease, color .2s ease;
}
.cc-btn:hover { transform: translateY(-1px); }
/* Plain (secondary) buttons use brand red and fill on hover. The --red,
   --ghost, --outline variants set their own colors and are unaffected. */
.cc-btn:not(.cc-btn--red):not(.cc-btn--ghost):not(.cc-btn--outline):hover { background: var(--cc-red); color: #fff; }
.cc-btn--red {
  background: var(--cc-red);
  color: #fff;
  border-color: var(--cc-red);
}
.cc-btn--red:hover { background: var(--cc-red-dark); border-color: var(--cc-red-dark); color: #fff; }
.cc-btn--ghost {
  border-color: #fff;
  color: #fff;
  background: rgba(0,0,0,.42);
  backdrop-filter: blur(6px);
  text-shadow: 0 1px 2px rgba(0,0,0,.5);
}
.cc-btn--ghost:hover { background: rgba(0,0,0,.58); }

.cc-arrow {
  display: inline-block;
  vertical-align: middle;
  width: 14px;
  height: 10px;
}
.cc-arrow path { stroke: currentColor; stroke-width: 1.4; fill: none; }

.cc-ribbon {
  display: inline-block;
  background: var(--cc-red);
  color: #fff;
  padding: 9px 18px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: .2em;
  font-weight: 700;
  text-transform: uppercase;
  border: 2px solid var(--cc-red);
  outline: 1px dashed rgba(255,255,255,.65);
  outline-offset: -5px;
  box-shadow: 0 4px 10px rgba(0,0,0,.18);
}
.cc-ribbon--ink {
  background: var(--cc-ink);
  border-color: var(--cc-ink);
}

/* ───── Polaroid ───── */
.cc-polaroid {
  position: relative;
  background: #fff;
  padding: 14px;
  padding-bottom: 50px;
  box-shadow: 0 18px 44px rgba(40,30,15,.18);
}
.cc-polaroid__img {
  aspect-ratio: 4 / 5;
  overflow: hidden;
  background: #d7cdb6;
}
.cc-polaroid__img img { width: 100%; height: 100%; object-fit: cover; }
.cc-polaroid__stamp {
  position: absolute;
  width: 120px;
  height: 120px;
  z-index: 3;
  pointer-events: none;
  transform: rotate(-8deg);
  filter: drop-shadow(0 8px 14px rgba(20,15,10,.35));
}
.cc-polaroid__stamp--br { right: -60px; bottom: -40px; }
.cc-polaroid__stamp--tl { left: -60px; top: -40px; transform: rotate(6deg); }
/* Dropped clear of the polaroid above it — at the original -40px the stamp
   landed on that card's caption and cut through the handwritten text. */
.cc-polaroid__stamp--tr { right: -70px; top: 8px; transform: rotate(10deg); }
@media (max-width: 720px) {
  .cc-polaroid__stamp { width: 84px; height: 84px; }
  .cc-polaroid__stamp--br { right: -32px; bottom: -24px; }
  .cc-polaroid__stamp--tl { left: -32px; top: -24px; }
  .cc-polaroid__stamp--tr { right: -32px; top: -24px; }
}
.cc-polaroid__caption {
  position: absolute;
  bottom: 12px;
  left: 0; right: 0;
  text-align: center;
  font-size: 22px;
  color: var(--cc-ink);
  font-family: 'Caveat', cursive;
}

/* ───── 1 · Top bar / mini nav (HEADER.PHP) ───── */
.cc-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 32px;
  background: var(--cc-cream);
  border-bottom: 1px solid rgba(42,38,34,.07);
  position: relative;
  z-index: 5;
  font-family: 'Inter Tight', sans-serif;
}
.cc-topbar__cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--cc-red);
  color: #fff;
  padding: 10px 18px;
  font-weight: 600;
  font-size: 13px;
  letter-spacing: .04em;
  text-decoration: none;
  cursor: pointer;
  border: 1px solid var(--cc-red);
  border-radius: 999px;
}
.cc-topbar__cta:hover { background: var(--cc-red-dark); color: #fff; }
/* Content links use brand color (never browser-default blue/purple). */
.entry-content a { color: var(--cc-red); text-decoration: underline; }
.entry-content a:hover,
.entry-content a:focus { color: var(--cc-red-dark); }
.cc-topbar__logo { height: 36px; width: auto; }
.cc-topbar__right {
  display: flex;
  align-items: center;
  gap: 18px;
}
.cc-topbar__menu {
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 8px;
}

/* ───── Drawer menu ───── */
.cc-drawer {
  position: fixed;
  inset: 0;
  z-index: 1000;
  pointer-events: none;
  opacity: 0;
  transition: opacity .2s ease;
}
.cc-drawer.is-open {
  pointer-events: auto;
  opacity: 1;
}
.cc-drawer__scrim {
  position: absolute;
  inset: 0;
  background: rgba(20, 15, 10, .55);
  backdrop-filter: blur(2px);
}
.cc-drawer__panel {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: min(420px, 92vw);
  background: var(--cc-cream);
  color: var(--cc-ink);
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform .28s cubic-bezier(.2,.7,.2,1);
  box-shadow: -20px 0 60px rgba(40,30,15,.25);
}
.cc-drawer.is-open .cc-drawer__panel {
  transform: translateX(0);
}
.cc-drawer__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 22px 28px;
  border-bottom: 1px solid rgba(42,38,34,.1);
}
.cc-drawer__eyebrow {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--cc-red);
  font-weight: 700;
}
.cc-drawer__close {
  width: 36px;
  height: 36px;
  background: transparent;
  border: 1px solid rgba(42,38,34,.18);
  color: var(--cc-ink);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  padding: 0;
  transition: border-color .15s ease, color .15s ease;
}
.cc-drawer__close:hover {
  border-color: var(--cc-red);
  color: var(--cc-red);
}
.cc-drawer__nav {
  flex: 1;
  overflow-y: auto;
  padding: 12px 0;
}
.cc-drawer__list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.cc-drawer__list li {
  border-bottom: 1px solid rgba(42,38,34,.07);
}
.cc-drawer__list li:last-child {
  border-bottom: none;
}
.cc-drawer__list a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 28px;
  font-family: 'Fraunces', serif;
  font-size: 22px;
  font-weight: 400;
  color: var(--cc-ink);
  text-decoration: none;
  transition: color .15s ease, background .15s ease;
}
.cc-drawer__list a::after {
  content: '→';
  font-family: 'JetBrains Mono', monospace;
  font-size: 14px;
  color: var(--cc-red);
  opacity: 0;
  transform: translateX(-6px);
  transition: opacity .15s ease, transform .15s ease;
}
.cc-drawer__list a:hover,
.cc-drawer__list .current-menu-item > a,
.cc-drawer__list .current_page_item > a {
  color: var(--cc-red);
  background: rgba(162, 68, 56, .04);
}
.cc-drawer__list a:hover::after {
  opacity: 1;
  transform: translateX(0);
}
.cc-drawer__list .sub-menu {
  list-style: none;
  margin: 0;
  padding: 0 0 8px 16px;
  background: rgba(42,38,34,.03);
}
.cc-drawer__list .sub-menu a {
  font-size: 16px;
  padding: 12px 28px;
}

/* ───── Mega menu inside the drawer ───── */
.cc-mega { padding: 0; }
.cc-mega__list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.cc-mega__item {
  border-bottom: 1px solid rgba(42,38,34,.07);
}
.cc-mega__item:last-child { border-bottom: none; }
.cc-mega__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 28px;
  text-decoration: none;
  color: var(--cc-ink);
  cursor: pointer;
  list-style: none;
  transition: background .15s ease, color .15s ease;
}
.cc-mega__row::-webkit-details-marker,
.cc-mega__row::marker { display: none; }
.cc-mega__row:hover { background: rgba(162,68,56,.05); color: var(--cc-red); }
.cc-mega__text {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}
.cc-mega__title {
  font-family: 'Fraunces', serif;
  font-size: 22px;
  font-weight: 400;
  line-height: 1.15;
  color: inherit;
}
.cc-mega__sub-title {
  font-family: 'Fraunces', serif;
  font-size: 17px;
  font-weight: 500;
  line-height: 1.15;
  color: inherit;
}
.cc-mega__desc {
  font-family: 'Inter Tight', sans-serif;
  font-size: 12px;
  line-height: 1.45;
  letter-spacing: .01em;
  color: var(--cc-ink-soft);
  opacity: .8;
}
.cc-mega__row:hover .cc-mega__desc { opacity: 1; }
.cc-mega__arrow {
  font-family: 'JetBrains Mono', monospace;
  font-size: 16px;
  color: var(--cc-red);
  flex-shrink: 0;
  transition: transform .15s ease;
}
.cc-mega__row:hover .cc-mega__arrow { transform: translateX(3px); }

/* Parent (expandable) rows */
.cc-mega__chev {
  position: relative;
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}
.cc-mega__chev::before,
.cc-mega__chev::after {
  content: '';
  position: absolute;
  background: var(--cc-red);
  border-radius: 1px;
  transition: transform .22s ease, opacity .22s ease;
}
.cc-mega__chev::before {
  top: 50%;
  left: 0;
  right: 0;
  height: 2px;
  margin-top: -1px;
}
.cc-mega__chev::after {
  left: 50%;
  top: 0;
  bottom: 0;
  width: 2px;
  margin-left: -1px;
}
.cc-mega__group[open] .cc-mega__chev::after {
  transform: rotate(90deg);
  opacity: 0;
}
.cc-mega__group[open] > .cc-mega__row--parent {
  background: rgba(162,68,56,.04);
}
.cc-mega__sub {
  list-style: none;
  margin: 0;
  padding: 4px 0 12px;
  background: rgba(42,38,34,.02);
  border-top: 1px solid rgba(42,38,34,.06);
}
.cc-mega__sub li {
  border-bottom: 1px dashed rgba(42,38,34,.06);
}
.cc-mega__sub li:last-child { border-bottom: none; }
.cc-mega__sub-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 28px 12px 44px;
  text-decoration: none;
  color: var(--cc-ink);
  transition: background .15s ease, color .15s ease;
}
.cc-mega__sub-row:hover { background: rgba(162,68,56,.06); color: var(--cc-red); }
.cc-mega__sub-row .cc-mega__arrow { font-size: 13px; }
.cc-drawer__foot {
  padding: 24px 28px;
  border-top: 1px solid rgba(42,38,34,.1);
  display: flex;
  flex-direction: column;
  gap: 14px;
  align-items: flex-start;
}
.cc-drawer__foot-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  align-items: center;
}
.cc-drawer__meta {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: .12em;
  color: var(--cc-ink-soft);
  text-transform: lowercase;
}
.cc-drawer__meta a {
  color: var(--cc-ink-soft);
  text-decoration: underline;
}
.cc-drawer__meta a:hover {
  color: var(--cc-red);
}
/* Outline brand button — secondary to .cc-btn--red on the cream drawer */
.cc-btn--outline {
  background: transparent;
  color: var(--cc-red);
  border-color: var(--cc-red);
}
.cc-btn--outline:hover {
  background: var(--cc-red);
  color: #fff;
  border-color: var(--cc-red);
}

/* Body lock when drawer is open */
body.cc-drawer-open {
  overflow: hidden;
}

/* Topbar hamburger active state */
.cc-topbar__menu[aria-expanded="true"] svg rect:nth-child(1) {
  transform: translateY(6px) rotate(45deg);
  transform-origin: center;
}
.cc-topbar__menu[aria-expanded="true"] svg rect:nth-child(2) {
  opacity: 0;
}
.cc-topbar__menu[aria-expanded="true"] svg rect:nth-child(3) {
  transform: translateY(-6px) rotate(-45deg);
  transform-origin: center;
}
.cc-topbar__menu svg rect {
  transition: transform .2s ease, opacity .2s ease;
}

/* ───── 2 · Hero ───── */
.cc-hero { position: relative; padding: 20px 24px 0; background: var(--cc-cream); }
.cc-hero__media {
  position: relative;
  aspect-ratio: 16 / 8.2;
  overflow: hidden;
  color: #fff;
}
.cc-hero__media img,
.cc-hero__media video {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center 75%;
  animation: cc-kenburns 22s ease-in-out infinite alternate;
}
.cc-hero__media video { animation: none; }
.cc-hero__overlay {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(20,15,10,.35) 0%, rgba(20,15,10,.15) 30%, rgba(20,15,10,.55) 70%, rgba(20,15,10,.85) 100%);
}
.cc-hero__content {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 0 64px 80px;
}
.cc-hero__kicker {
  font-family: 'Caveat', cursive;
  font-size: 38px;
  margin-bottom: -10px;
  color: #fff;
  opacity: .92;
  font-style: italic;
}
.cc-hero__title {
  font-family: 'Fraunces', serif;
  font-size: 116px;
  font-weight: 300;
  line-height: .92;
  margin: 0;
  letter-spacing: -0.035em;
  max-width: 1100px;
  font-style: normal;
  color: #fff;
}
.cc-hero__title em { font-style: italic; font-weight: 700; }
/* Scoped with .cc-home so the margin beats the `.cc-home p` reset above —
   without it the lede sat flush under the title and the italic descenders of
   "Travelers" cut straight through the first line. */
.cc-home .cc-hero__lede {
  font-size: 17px;
  line-height: 1.55;
  max-width: 620px;
  opacity: .92;
  margin: 46px 0 28px;
  color: #fff;
}
.cc-hero__ctas { display: flex; gap: 14px; flex-wrap: wrap; }
.cc-hero__ctas .cc-btn { padding: 16px 28px; }

@keyframes cc-kenburns {
  0%   { transform: scale(1.0) translate(0, 0); }
  100% { transform: scale(1.12) translate(-1%, -2%); }
}
@media (prefers-reduced-motion: reduce) {
  .cc-hero__media img { animation: none; }
}

/* ───── 3 · As Seen In dark band ───── */
.cc-asseen {
  background: var(--cc-ink);
  color: var(--cc-cream);
  padding: 36px 24px;
}
.cc-asseen__inner {
  max-width: 1280px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1.4fr 1fr;
  gap: 48px;
  align-items: start;
}
.cc-asseen__col { display: flex; align-items: center; gap: 18px; position: relative; }
/* Press column stacks: the logos get the column's full width instead of
   sharing it with the blurb, which had squeezed them to a thumbnail. */
.cc-asseen__col--press { flex-direction: column; align-items: flex-start; gap: 16px; }
.cc-asseen__body {
  margin: 0;
  font-size: 13.5px;
  line-height: 1.6;
  color: rgba(240, 232, 213, .82);
  max-width: 44ch;
}
.cc-asseen__label {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: .2em;
  color: var(--cc-orange); /* Phase 6: red fails at 10px on black at any on-brand value */
  font-weight: 700;
  margin-bottom: 6px;
}
.cc-asseen__sub {
  font-size: 11px;
  opacity: .55;
  letter-spacing: .04em;
  max-width: 130px;
  line-height: 1.4;
}
.cc-asseen__wdtn { height: clamp(54px, 5.5vw, 80px); width: auto; max-width: 100%; object-fit: contain; }
.cc-asseen__vrbo { height: clamp(43px, 4.4vw, 64px); width: auto; max-width: 100%; object-fit: contain; }
.cc-asseen__why {
  position: relative;
  border-left: 1px solid rgba(240,232,213,.13);
  border-right: 1px solid rgba(240,232,213,.13);
  padding: 0 36px;
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-areas:
    "img title"
    "copy copy";
  column-gap: 20px;
  row-gap: 14px;
  align-items: center;
}
.cc-asseen__portrait {
  grid-area: img;
  width: 96px;
  height: auto;
  object-fit: contain;
  flex-shrink: 0;
}
.cc-asseen__why-title {
  grid-area: title;
  font-family: 'Caveat', cursive;
  font-size: 30px;
  font-style: normal;
  line-height: 1.05;
  margin: 0;
  color: var(--cc-cream);
  font-weight: 600;
  padding-right: 52px;
}
/* Promoted from h3 to h2 for the heading outline; keeps the h3 spacing. */
.cc-home h2.cc-asseen__why-title { margin: 0; }
.cc-asseen__why-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: inherit;
  text-decoration: none;
  transition: opacity .2s ease;
}
.cc-asseen__why-copy {
  grid-area: copy;
  font-size: 12.5px;
  line-height: 1.55;
  opacity: .75;
  margin: 0;
}
.cc-asseen__reviews {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-items: flex-start;
}
.cc-asseen__reviews img { height: 72px; width: auto; }
.cc-asseen__reviews p {
  font-size: 11.5px;
  opacity: .7;
  line-height: 1.45;
  max-width: 200px;
  margin: 0;
}

/* Rotating Google review snippets inside the trust card. Slides stack in one
   grid cell so the card keeps the height of the longest quote and nothing
   jumps as they cycle. Driven by the shared [data-cc-testi] slider. */
.cc-asseen__quotes {
  display: grid;
  width: 100%;
  max-width: 240px;
  margin-top: 4px;
  padding-top: 12px;
  border-top: 1px solid rgba(240, 232, 213, .18);
}
.cc-asseen__quote {
  grid-area: 1 / 1;
  margin: 0;
  padding: 0;
  opacity: 0;
  visibility: hidden;
  transition: opacity .45s ease;
}
.cc-asseen__quote.is-active {
  opacity: 1;
  visibility: visible;
}
.cc-asseen__quote-body {
  display: block;
  font-family: 'Fraunces', serif;
  font-style: italic;
  font-size: 12px;
  line-height: 1.5;
  color: rgba(240, 232, 213, .9);
}
.cc-asseen__quote-author {
  display: block;
  margin-top: 5px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 9.5px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: rgba(240, 232, 213, .55);
}
@media (prefers-reduced-motion: reduce) {
  .cc-asseen__quote { transition: none; }
}

/* "As seen on" label stacked directly above the press logos */
.cc-asseen__logo-wrap {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}
.cc-asseen__logo-wrap .cc-asseen__label { margin-bottom: 0; }

/* Press logos sit in one row under the shared label, each its own link.
   They scale with the column rather than wrapping onto separate lines. */
.cc-asseen__logos {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(12px, 1.4vw, 22px);
  flex-wrap: nowrap;
  width: 100%;
  min-width: 0;
}
.cc-asseen__logo-link {
  display: inline-flex;
  align-items: center;
  min-width: 0;
  flex: 0 1 auto;
  color: inherit;
  text-decoration: none;
  transition: opacity .2s ease;
}
.cc-asseen__logo-link:hover { opacity: .82; }
.cc-asseen__logo-wrap { width: 100%; min-width: 0; }
.cc-asseen__col > .cc-asseen__logo-wrap { flex: 1 1 auto; }

/* Trust-validation columns are clickable, each with a right chevron */
a.cc-asseen__col,
a.cc-asseen__reviews {
  color: inherit;
  text-decoration: none;
  transition: opacity .2s ease;
}
a.cc-asseen__col:hover,
a.cc-asseen__reviews:hover,
.cc-asseen__why-link:hover { opacity: .82; }
.cc-asseen .cc-arrow {
  position: absolute;
  right: 12px;
  top: 12px;
  box-sizing: border-box;
  width: 34px;
  height: 34px;
  padding: 10px;
  color: var(--cc-cream);
  background: var(--cc-red);
  border-radius: 50%;
  flex-shrink: 0;
  box-shadow: 0 6px 16px rgba(0,0,0,.32);
  transition: transform .2s ease, background .2s ease;
}
a.cc-asseen__col:hover .cc-arrow,
a.cc-asseen__reviews:hover .cc-arrow,
.cc-asseen__why-link:hover .cc-arrow { transform: scale(1.08); background: var(--cc-red-dark); }

/* ───── 4 · Your Adventure ───── */
.cc-adventure {
  position: relative;
  padding: 120px 64px 100px;
  background: var(--cc-cream);
}
.cc-adventure__deco-ivy {
  position: absolute;
  top: 0;
  left: -80px;
  width: 360px;
  opacity: .85;
  pointer-events: none;
}
.cc-adventure__deco-palm {
  position: absolute;
  bottom: 0;
  right: -120px;
  width: 380px;
  opacity: .8;
  pointer-events: none;
  transform: rotate(90deg);
  transform-origin: center;
}
.cc-adventure__inner {
  position: relative;
  max-width: 1180px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  gap: 100px;
  align-items: flex-start;
}
.cc-adventure__collage { position: relative; height: 770px; }
.cc-adventure__collage .cc-polaroid:nth-child(1) {
  position: absolute; top: 0; left: 150px;
  width: 420px; transform: rotate(-5deg);
}
.cc-adventure__collage .cc-polaroid:nth-child(1) .cc-polaroid__img { aspect-ratio: 4/3; }
.cc-adventure__collage .cc-polaroid:nth-child(2) {
  position: absolute; top: 388px; left: 0;
  width: 410px; transform: rotate(6deg); /* #102: was 300px; fills the space under the top polaroid */
}
.cc-adventure__collage .cc-polaroid:nth-child(2) .cc-polaroid__img { aspect-ratio: 4/3; }
.cc-adventure__collage .cc-ribbon--adventure {
  position: absolute;
  top: -16px;
  left: 168px;
  transform: rotate(-4deg);
}
.cc-adventure__copy { padding-top: 32px; }
.cc-adventure__copy .cc-kicker {
  font-family: 'Caveat', cursive;
  font-size: 26px;
  color: var(--cc-red);
  margin-bottom: 4px;
}
.cc-adventure__copy h2 {
  font-family: 'Fraunces', serif;
  font-size: 72px;
  font-weight: 400;
  line-height: .98;
  margin: 0 0 22px;
  letter-spacing: -0.025em;
}
.cc-adventure__copy h2 em { font-weight: 500; font-style: italic; }
.cc-adventure__copy p {
  font-size: 16px;
  line-height: 1.65;
  opacity: .82;
  margin-bottom: 36px;
  max-width: 480px;
}
.cc-adventure__copy .cc-btn { margin-bottom: 36px; }
.cc-services {
  list-style: none;
  padding: 0;
  margin: 0;
  border-top: 1px solid rgba(42,38,34,.12);
}
.cc-services li {
  border-bottom: 1px solid rgba(42,38,34,.12);
}
.cc-services details {
  width: 100%;
}
.cc-services summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 0;
  cursor: pointer;
  list-style: none;
}
.cc-services summary::-webkit-details-marker,
.cc-services summary::marker {
  display: none;
}
.cc-services__head {
  display: flex;
  align-items: baseline;
  gap: 18px;
}
.cc-services__num {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  color: var(--cc-red); /* solid: the old .75 opacity dropped it to 3.22:1 on cream */
}
.cc-services__name {
  font-family: 'Fraunces', serif;
  font-size: 24px;
  font-style: italic;
  font-weight: 400;
  transition: color .15s ease;
}
.cc-services summary:hover .cc-services__name {
  color: var(--cc-red);
}
.cc-services__toggle {
  position: relative;
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}
.cc-services__toggle::before,
.cc-services__toggle::after {
  content: '';
  position: absolute;
  background: var(--cc-red);
  border-radius: 1px;
  transition: transform .22s ease, opacity .22s ease;
}
.cc-services__toggle::before {
  top: 50%;
  left: 0;
  right: 0;
  height: 2px;
  margin-top: -1px;
}
.cc-services__toggle::after {
  left: 50%;
  top: 0;
  bottom: 0;
  width: 2px;
  margin-left: -1px;
}
.cc-services details[open] .cc-services__toggle::after {
  transform: rotate(90deg);
  opacity: 0;
}
.cc-services__body {
  padding: 0 0 24px 33px;
  display: grid;
  gap: 16px;
  animation: cc-services-fade .25s ease;
}
.cc-services__body p {
  font-family: 'Inter Tight', sans-serif;
  font-size: 15px;
  line-height: 1.65;
  color: var(--cc-ink);
  opacity: .82;
  margin: 0;
  max-width: 480px;
}
.cc-services__body .cc-btn {
  justify-self: start;
}
@keyframes cc-services-fade {
  from { opacity: 0; transform: translateY(-4px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ───── 5 · Experience the World with Friends ───── */
.cc-trips {
  background: var(--cc-cream-warm);
  padding: 110px 64px;
  position: relative;
  border-top: 1px solid rgba(42,38,34,.07);
  border-bottom: 1px solid rgba(42,38,34,.07);
  overflow: hidden;
  isolation: isolate;
}
.cc-trips::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: url('../images/photo-camino-credentials.jpg');
  background-size: cover;
  background-position: center;
  opacity: .12;
  mix-blend-mode: multiply;
  pointer-events: none;
  z-index: 0;
}
.cc-trips__inner { max-width: 1280px; margin: 0 auto; position: relative; z-index: 1; }
.cc-trips__head { text-align: center; margin-bottom: 64px; }
.cc-trips__head .cc-kicker {
  font-family: 'Caveat', cursive;
  font-size: 28px;
  color: var(--cc-red);
}
.cc-trips__head h2 {
  font-family: 'Fraunces', serif;
  font-size: 76px;
  font-weight: 400;
  margin: 0;
  letter-spacing: -0.03em;
  line-height: .95;
}
.cc-trips__head h2 em { font-weight: 500; font-style: italic; }
.cc-trips__head p {
  font-size: 15.5px;
  line-height: 1.6;
  opacity: .8;
  max-width: 620px;
  margin: 20px auto 0;
}
.cc-trips__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 36px;
}
.cc-trip-card {
  position: relative;
  background: #fff;
  padding: 16px;
  padding-bottom: 26px;
  box-shadow: 0 22px 50px rgba(40,30,15,.16);
  display: flex;
  flex-direction: column;
}
.cc-trip-card:nth-child(1) { transform: rotate(-0.7deg); }
.cc-trip-card:nth-child(2) { transform: rotate(0deg); }
.cc-trip-card:nth-child(3) { transform: rotate(0.7deg); }
.cc-trip-card .cc-ribbon {
  position: absolute;
  top: -14px;
  left: 14px;
  z-index: 2;
}
.cc-trip-card__img {
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #d7cdb6;
  margin-bottom: 18px;
}
.cc-trip-card__img img { width: 100%; height: 100%; object-fit: cover; }
.cc-trip-card__body {
  padding: 0 8px;
  flex: 1;
  display: flex;
  flex-direction: column;
}
.cc-trip-card__cat {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: .18em;
  color: var(--cc-red);
  font-weight: 700;
  margin-bottom: 8px;
  text-transform: uppercase;
}
.cc-trip-card__title {
  font-family: 'Fraunces', serif;
  font-size: 30px;
  font-weight: 400;
  line-height: 1.05;
  margin: 0 0 6px;
  letter-spacing: -0.015em;
}
.cc-trip-card__sub {
  font-family: 'Caveat', cursive;
  font-size: 22px;
  color: var(--cc-ink);
  opacity: .55;
  margin-bottom: 14px;
}
.cc-trip-card__body p {
  font-size: 14px;
  line-height: 1.6;
  opacity: .8;
  margin: 0 0 22px;
}
.cc-trip-card .cc-btn {
  align-self: flex-start;
  margin-top: auto;
  font-size: 13px;
  padding: 12px 20px;
}
.cc-trips__viewall {
  text-align: center;
  margin-top: 56px;
}
.cc-trips__viewall a {
  color: var(--cc-ink);
  font-family: 'Fraunces', serif;
  font-size: 20px;
  font-style: italic;
  text-decoration: none;
  border-bottom: 1px solid rgba(42,38,34,.33);
  padding-bottom: 4px;
}

/* ───── 6 · Speaking ───── */
.cc-speaking {
  background: var(--cc-ink);
  color: var(--cc-cream);
  padding: 72px 64px; /* #126: was 110px top/bottom */
  position: relative;
  overflow: hidden;
}
.cc-speaking__inner {
  max-width: 1240px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 80px;
  align-items: center;
}
.cc-speaking__media { position: relative; }
.cc-speaking__media .cc-polaroid {
  width: 520px; transform: rotate(-3deg);
}
.cc-speaking__media .cc-polaroid__img { aspect-ratio: 16/10; }
.cc-speaking__media .cc-ribbon {
  position: absolute;
  top: -14px;
  right: 24px;
  transform: rotate(4deg);
}
.cc-speaking__copy .cc-kicker {
  font-family: 'Caveat', cursive;
  font-size: 28px;
  color: var(--cc-red);
}
.cc-speaking__copy h2 {
  font-family: 'Fraunces', serif;
  font-size: 64px;
  font-weight: 400;
  line-height: .98;
  margin: 4px 0 24px;
  letter-spacing: -0.025em;
  color: var(--cc-cream);
}
.cc-speaking__copy h2 em { font-weight: 500; font-style: italic; }
.cc-speaking__copy > p {
  font-size: 16px;
  line-height: 1.65;
  opacity: .85;
  margin-bottom: 28px;
  max-width: 480px;
}
.cc-topics { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 32px; }
.cc-topics span {
  padding: 8px 16px;
  border: 1px solid rgba(240,232,213,.2);
  font-size: 12.5px;
  background: rgba(255,255,255,.04);
  border-radius: 999px;
}
.cc-speaking__cta-row {
  display: flex;
  align-items: center;
  gap: 28px;
  flex-wrap: wrap;
}
.cc-speaking__location {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: .15em;
  opacity: .6;
  line-height: 1.5;
}

/* ───── 7 · Real World Experience ───── */
.cc-real {
  position: relative;
  padding: 120px 64px;
  background: var(--cc-cream);
}
.cc-real__deco {
  position: absolute;
  top: -30px;
  left: -170px;
  width: 240px;
  opacity: .9;
  pointer-events: none;
}
.cc-real__inner {
  position: relative;
  max-width: 1240px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: flex-start;
}
.cc-real__copy { padding-top: 28px; }
.cc-real__copy .cc-kicker {
  font-family: 'Caveat', cursive;
  font-size: 26px;
  color: var(--cc-red);
}
.cc-real__copy h2 {
  font-family: 'Fraunces', serif;
  font-size: 60px;
  font-weight: 400;
  line-height: 1;
  margin: 4px 0 24px;
  letter-spacing: -0.02em;
}
.cc-real__copy h2 em { font-weight: 500; font-style: italic; }
.cc-real__copy p {
  font-size: 16px;
  line-height: 1.7;
  opacity: .82;
  margin-bottom: 16px;
}
.cc-real__copy p + p { margin-bottom: 32px; }
.cc-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  padding: 24px 0;
  border-top: 1px solid rgba(42,38,34,.2);
  border-bottom: 1px solid rgba(42,38,34,.2);
  margin-bottom: 32px;
}
.cc-stat__num {
  font-family: 'Fraunces', serif;
  font-size: 42px;
  font-weight: 400;
  line-height: 1;
  color: var(--cc-red);
  font-style: italic;
}
.cc-stat__label {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: .16em;
  opacity: .6;
  margin-top: 8px;
  text-transform: uppercase;
}
.cc-real__link {
  color: var(--cc-ink);
  font-weight: 600;
  font-size: 14px;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  border-bottom: 1px solid rgba(42,38,34,.33);
  padding-bottom: 4px;
}
.cc-real__collage { position: relative; height: 620px; }
.cc-real__collage .cc-polaroid:nth-child(1) {
  position: absolute; top: 0; right: 0;
  width: 430px; transform: rotate(3deg);
}
.cc-real__collage .cc-polaroid:nth-child(1) .cc-polaroid__img { aspect-ratio: 16/11; }
.cc-real__collage .cc-polaroid:nth-child(2) {
  position: absolute; top: 360px; left: 0;
  width: 340px; transform: rotate(-5deg);
}
.cc-real__collage .cc-polaroid:nth-child(2) .cc-polaroid__img { aspect-ratio: 4/3; }
.cc-real__collage .cc-ribbon {
  position: absolute;
  top: -14px;
  left: 24px;
  transform: rotate(-4deg);
}
.cc-real__collage .cc-ribbon--photo2 { transform: rotate(3deg); }

/* ───── 4b · Newsletter band (#100) ───── */
.cc-newsband {
  background: var(--cc-cream);
  padding: 0 64px 100px;
}
.cc-newsband__inner {
  max-width: 1180px;
  margin: 0 auto;
  background: #fff;
  border: 1px solid rgba(42,38,34,.12);
  box-shadow: 0 18px 44px rgba(40,30,15,.08);
  padding: 44px 56px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
}
.cc-newsband__copy .cc-kicker {
  font-family: 'Caveat', cursive;
  font-size: 26px;
  color: var(--cc-red);
  margin-bottom: 2px;
}
.cc-newsband__copy h2 {
  font-family: 'Fraunces', serif;
  font-size: 44px;
  font-weight: 400;
  letter-spacing: -0.02em;
  line-height: 1.05;
  margin: 0 0 12px;
  color: var(--cc-ink);
}
.cc-newsband__copy h2 em { font-weight: 500; font-style: italic; }
.cc-newsband__copy p {
  font-size: 15px;
  line-height: 1.6;
  color: var(--cc-ink-soft);
  max-width: 620px;
  margin: 0;
}
.cc-newsband .cc-btn { flex-shrink: 0; padding: 16px 28px; }

/* ───── 8 · Partner With Us ───── */
.cc-partners { background: var(--cc-cream); padding: 0 64px 100px; }
.cc-partners__inner { max-width: 1280px; margin: 0 auto; }
.cc-partners__feature {
  position: relative;
  aspect-ratio: 16 / 7; /* #104: was 16 / 8 */
  overflow: hidden;
  box-shadow: 0 30px 80px rgba(40,30,15,.2);
}
.cc-partners__feature > img,
.cc-partners__feature > video {
  width: 100%; height: 100%; object-fit: cover;
  display: block;
}
.cc-partners__feature::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.25), rgba(0,0,0,.55));
}
.cc-partners__tabs {
  position: absolute;
  top: 28px;
  left: 28px;
  display: flex;
  gap: 10px;
  z-index: 2;
}

/* ───── Video pause/play control (WCAG 2.2.2, Phase 6) ───── */
.cc-video-toggle {
  position: absolute;
  z-index: 3;                      /* above .cc-partners__tabs/__caption (2) */
  display: inline-grid;
  place-items: center;
  width: 44px;                     /* 44px target: WCAG 2.5.5 */
  height: 44px;
  padding: 0;
  border: 1px solid rgba(255,255,255,.85);
  border-radius: 999px;
  background: rgba(0,0,0,.6);
  color: #fff;
  cursor: pointer;
  transition: background-color .2s ease, border-color .2s ease;
}
.cc-video-toggle[hidden] { display: none; }
.cc-video-toggle:hover { background: rgba(0,0,0,.78); border-color: #fff; }
/* Raised specificity so it beats the global :focus-visible ring later in this file. */
.cc-hero .cc-video-toggle:focus-visible,
.cc-partners .cc-video-toggle:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
  box-shadow: 0 0 0 6px #000;      /* white ring inside a black halo: visible on any frame */
}
.cc-video-toggle__svg { width: 16px; height: 16px; display: block; }
.cc-video-toggle[data-state="playing"] .cc-video-toggle__svg--play,
.cc-video-toggle[data-state="paused"]  .cc-video-toggle__svg--pause { display: none; }

/* Placement */
.cc-video-toggle--hero     { top: 16px; right: 16px; }
.cc-video-toggle--partners { top: 28px; right: 28px; }   /* mirrors .cc-partners__tabs top/left 28px */

@media (max-width: 720px) {
  .cc-video-toggle--hero     { top: 12px; right: 12px; }
  /* Partner ribbons span the full width at 375: move bottom-right, centred on the "Learn more" row. */
  .cc-video-toggle--partners { top: auto; bottom: 22px; right: 20px; }
}

@media (prefers-reduced-motion: reduce) {
  .cc-video-toggle { transition: none; }
}
.cc-partners__caption {
  position: absolute;
  bottom: 36px;
  left: 36px;
  right: 36px;
  color: #fff;
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 40px;
  z-index: 2;
}
.cc-partners__caption .cc-kicker {
  font-family: 'Caveat', cursive;
  font-size: 28px;
  color: #ffd9a8;
}
.cc-partners__caption h2 {
  font-family: 'Fraunces', serif;
  font-size: 64px;
  font-weight: 400;
  margin: 0;
  letter-spacing: -0.02em;
  line-height: 1;
}
.cc-partners__caption h2 em { font-weight: 500; font-style: italic; }
.cc-partners__caption .cc-btn { flex-shrink: 0; }
.cc-logos {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 32px;
  align-items: center;
  padding: 48px 32px 0;
}
.cc-logos__item {
  display: flex;
  justify-content: center;
  filter: grayscale(.3);
  opacity: .85;
}
.cc-logos__item img { max-height: 56px; object-fit: contain; }

/* ───── 9 · Testimonials ───── */
.cc-testi {
  position: relative;
  padding: 120px 64px;
  background: var(--cc-cream);
  overflow: hidden;
}
.cc-testi__rock {
  position: absolute; bottom: -60px; right: -120px;
  width: 340px; opacity: .85; pointer-events: none;
}
.cc-testi__branch {
  position: absolute; top: -40px; left: -70px;
  width: 280px; opacity: .9; pointer-events: none;
}
.cc-testi__inner {
  position: relative;
  max-width: 1180px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1.05fr;
  gap: 80px;
  align-items: flex-start;
}
.cc-testi__copy { padding-top: 20px; }
.cc-testi__copy .cc-kicker {
  font-family: 'Caveat', cursive;
  font-size: 26px;
  color: var(--cc-red);
}
.cc-testi__copy h2 {
  font-family: 'Fraunces', serif;
  font-size: 64px;
  font-weight: 400;
  line-height: 1;
  margin: 0 0 36px;
  letter-spacing: -0.025em;
}
.cc-testi__copy h2 em { font-weight: 500; font-style: italic; }
.cc-testi__slider { position: relative; }
.cc-testi__slider .cc-quote {
  position: absolute;
  inset: 0;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .45s ease;
}
.cc-testi__slider .cc-quote.is-active {
  position: relative;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
@media (prefers-reduced-motion: reduce) {
  .cc-testi__slider .cc-quote { transition: none; }
}
.cc-quote {
  margin: 0;
  padding: 0;
  position: relative;
  max-width: 480px;
}
.cc-quote__role {
  display: block;
  margin-top: 2px;
  font-family: 'Inter Tight', sans-serif;
  font-size: 11px;
  letter-spacing: .04em;
  color: var(--cc-ink);
  opacity: .6; /* phase 7: .5 was 3.82:1 on cream; .6 clears AA */
}
.cc-quote__mark {
  position: absolute;
  left: -10px;
  top: -34px;
  font-size: 90px;
  color: var(--cc-red);
  opacity: .35;
  font-family: 'Fraunces', serif;
  line-height: 1;
  font-style: italic;
}
.cc-quote__body {
  font-family: 'Fraunces', serif;
  font-size: 18px;
  line-height: 1.55;
  margin-bottom: 24px;
  padding-top: 8px;
  font-style: italic;
}
.cc-quote__author {
  font-family: 'Caveat', cursive;
  font-size: 24px;
  color: var(--cc-red);
}
.cc-testi__dots { display: flex; gap: 8px; margin-top: 36px; align-items: center; }
.cc-testi__dots span,
.cc-testi__dots .cc-testi__dot {
  width: 8px; height: 8px;
  border-radius: 4px;
  background: rgba(42,38,34,.2);
  display: block;
  padding: 0;
  border: 0;
  cursor: pointer;
  transition: width .25s ease, background .25s ease;
}
.cc-testi__dots span.is-active,
.cc-testi__dots .cc-testi__dot.is-active {
  width: 24px;
  background: var(--cc-red);
}
.cc-testi__dots .cc-testi__dot:focus-visible {
  outline: 2px solid var(--cc-red);
  outline-offset: 2px;
}
.cc-testi__dots a {
  margin-left: 16px;
  font-size: 13px;
  color: var(--cc-ink);
  opacity: .6;
  text-decoration: none;
}
.cc-testi__media { position: relative; }
.cc-testi__media .cc-polaroid {
  width: 500px; transform: rotate(3deg);
}
.cc-testi__media .cc-polaroid__img { aspect-ratio: 4/3; }
.cc-testi__google {
  position: absolute;
  bottom: -28px;
  left: -28px;
  width: 130px;
  height: auto;
  filter: drop-shadow(0 8px 16px rgba(0,0,0,.15));
}

/* ───── 10 · Blog ───── */
.cc-blog {
  background: var(--cc-cream-warm);
  padding: 110px 64px;
  position: relative;
  border-top: 1px solid rgba(42,38,34,.07);
  overflow: hidden;
}
.cc-blog__inner {
  position: relative;
  max-width: 1240px;
  margin: 0 auto;
}
.cc-blog__head {
  display: flex;
  flex-direction: column;
  gap: 28px;
  margin-bottom: 44px;
}
/* Heading/copy sits above the category tiles. */
.cc-blog__copy { order: -1; }
.cc-tiles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.cc-tile {
  display: flex;
  align-items: center;
  gap: 18px;
  background: var(--cc-red);
  color: #fff;
  padding: 18px 24px;
  box-shadow: 0 14px 32px rgba(40,30,15,.18);
  position: relative;
  text-decoration: none;
  border: 2px solid var(--cc-red);
  outline: 1px dashed rgba(255,255,255,.55);
  outline-offset: -7px;
  max-width: none;
}
.cc-tile:nth-child(1) { transform: rotate(-0.4deg); }
.cc-tile:nth-child(2) { transform: rotate(0deg); }
.cc-tile:nth-child(3) { transform: rotate(0.4deg); }
.cc-tile__icon {
  width: 40px; height: 40px;
  border-radius: 50%;
  background: #fff;
  color: var(--cc-red);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.cc-tile__title {
  display: block;
  font-family: 'Fraunces', serif;
  font-size: 22px;
  font-style: italic;
  line-height: 1.05;
  margin-bottom: 3px;
}
.cc-tile__sub { display: block; font-size: 12px; opacity: .85; line-height: 1.4; }
.cc-blog__copy .cc-kicker {
  font-family: 'Caveat', cursive;
  font-size: 28px;
  color: var(--cc-red);
}
.cc-blog__copy h2 {
  font-family: 'Fraunces', serif;
  font-size: 72px;
  font-weight: 400;
  line-height: .98;
  margin: 4px 0 22px;
  letter-spacing: -0.025em;
}
.cc-blog__copy h2 em { font-weight: 500; font-style: italic; }
.cc-blog__copy p {
  font-size: 16px;
  line-height: 1.65;
  opacity: .82;
  margin-bottom: 24px;
  max-width: 540px;
}
.cc-blog__copy a {
  color: var(--cc-ink);
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  border-bottom: 1px solid rgba(42,38,34,.4);
  padding-bottom: 4px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.cc-posts {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
}
.cc-posts--archive {
  gap: 40px 32px;
}
.cc-posts--archive .cc-post:nth-child(3n+1) { transform: rotate(-0.6deg); }
.cc-posts--archive .cc-post:nth-child(3n+2) { transform: rotate(0deg); }
.cc-posts--archive .cc-post:nth-child(3n+3) { transform: rotate(0.6deg); }
.cc-posts--archive .cc-post { transition: transform .25s ease, box-shadow .25s ease; }
.cc-posts--archive .cc-post:hover { transform: translateY(-3px) rotate(0deg); box-shadow: 0 28px 60px rgba(40,30,15,.22); }

/* Category chips on the blog archive */
.cc-blog-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: center;
}
.cc-blog-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 18px;
  border: 1px solid rgba(42,38,34,.18);
  border-radius: 999px;
  background: #fff;
  color: var(--cc-ink);
  font-family: 'Inter Tight', sans-serif;
  font-weight: 500;
  font-size: 13px;
  letter-spacing: .02em;
  text-decoration: none;
  transition: background .2s ease, color .2s ease, border-color .2s ease, transform .15s ease;
}
.cc-blog-chip:hover { transform: translateY(-1px); border-color: var(--cc-red); color: var(--cc-red); }
.cc-blog-chip.is-active { background: var(--cc-ink); color: var(--cc-cream); border-color: var(--cc-ink); }
.cc-blog-chip__count {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: .15em;
  opacity: .65;
}

/* Pagination */
.cc-pagination {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
  margin-top: 64px;
}
.cc-pagination__item .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 42px;
  height: 42px;
  padding: 0 14px;
  border: 1px solid rgba(42,38,34,.18);
  border-radius: 999px;
  background: #fff;
  color: var(--cc-ink);
  font-family: 'Inter Tight', sans-serif;
  font-weight: 600;
  font-size: 13px;
  text-decoration: none;
  transition: background .2s ease, color .2s ease, border-color .2s ease;
}
.cc-pagination__item .page-numbers:hover { border-color: var(--cc-red); color: var(--cc-red); }
.cc-pagination__item .page-numbers.current {
  background: var(--cc-red);
  color: #fff;
  border-color: var(--cc-red);
}
.cc-pagination__item .page-numbers.dots { border-color: transparent; }

@media (max-width: 980px) {
  .cc-posts--archive { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .cc-posts--archive { grid-template-columns: 1fr; }
}
.cc-post {
  position: relative;
  background: #fff;
  padding: 16px;
  padding-bottom: 26px;
  box-shadow: 0 22px 50px rgba(40,30,15,.16);
  cursor: pointer;
  text-decoration: none;
  color: var(--cc-ink);
  display: block;
  transition: transform .25s ease, box-shadow .25s ease;
}
.cc-posts > .cc-post:nth-child(3n+1) { transform: rotate(-0.8deg); }
.cc-posts > .cc-post:nth-child(3n+2) { transform: rotate(0deg); }
.cc-posts > .cc-post:nth-child(3n+3) { transform: rotate(0.8deg); }
.cc-posts > .cc-post:hover { transform: translateY(-3px) rotate(0deg); box-shadow: 0 28px 60px rgba(40,30,15,.22); }
.cc-posts { row-gap: 48px; }
.cc-post .cc-ribbon {
  position: absolute;
  top: -14px;
  right: 14px;
  transform: rotate(6deg);
  z-index: 2;
}
.cc-post__img {
  aspect-ratio: 5 / 4;
  overflow: hidden;
  background: #d7cdb6;
  margin-bottom: 18px;
}
.cc-post__img img { width: 100%; height: 100%; object-fit: cover; }
.cc-post__body { padding: 0 8px; }
.cc-post__meta {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: .2em;
  color: var(--cc-red);
  font-weight: 700;
  margin-bottom: 10px;
  text-transform: uppercase;
}
.cc-post__title {
  font-family: 'Fraunces', serif;
  font-size: 22px;
  font-weight: 500;
  line-height: 1.2;
  margin: 0 0 22px;
  letter-spacing: -0.01em;
}
.cc-post__read {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--cc-red);
  font-size: 13px;
  font-weight: 600;
  margin-bottom: 8px;
}

/* ───── 11 · Big Wordmark (start of FOOTER.PHP) ───── */
.cc-wordmark {
  background: var(--cc-ink);
  padding: 90px 48px 60px;
  position: relative;
  overflow: hidden;
}
.cc-wordmark__inner {
  position: relative;
  max-width: 1400px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 28px;
}
.cc-wordmark__logo {
  display: block;
  width: 100%;
  max-width: 676px;
  height: auto;
  filter: drop-shadow(0 18px 36px rgba(0,0,0,.4));
}
.cc-wordmark__stats {
  display: flex;
  gap: 36px;
  color: var(--cc-cream);
  opacity: .65;
  font-size: 11.5px;
  letter-spacing: .2em;
  text-transform: uppercase;
  font-family: 'JetBrains Mono', monospace;
  flex-wrap: wrap;
  justify-content: center;
}

/* ───── 12 · Footer columns ───── */
.cc-footer {
  background: var(--cc-ink);
  color: var(--cc-cream);
  padding: 0 0 32px;
  border-top: 1px solid rgba(240,232,213,.1);
  font-family: 'Inter Tight', system-ui, sans-serif;
}
.cc-footer__inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 60px 64px 32px;
}
.cc-footer__grid {
  display: grid;
  grid-template-columns: 1.6fr 0.8fr 0.8fr 1fr;
  gap: 56px;
  margin-bottom: 48px;
}
.cc-footer p {
  font-size: 14px;
  line-height: 1.65;
  opacity: .8;
  margin: 0 0 24px;
  max-width: 380px;
}
.cc-footer__newsletter-title {
  font-family: 'Fraunces', serif;
  font-size: 20px;
  font-weight: 500;
  font-style: italic;
  margin-bottom: 6px;
  color: var(--cc-cream);
}
.cc-footer__newsletter-sub {
  font-size: 12.5px;
  line-height: 1.55;
  opacity: .65;
  margin-bottom: 16px;
  max-width: 380px;
}
.cc-newsletter {
  display: flex;
  background: transparent;
  border: 1px solid rgba(240,232,213,.2);
  padding: 4px;
  max-width: 380px;
}
.cc-newsletter input {
  flex: 1;
  padding: 12px 14px;
  background: transparent;
  border: none;
  color: var(--cc-cream);
  font-family: 'Inter Tight', sans-serif;
  font-size: 14px;
  outline: none;
}
.cc-newsletter input::placeholder { color: rgba(240,232,213,.45); }
.cc-newsletter button {
  padding: 0 22px;
  background: var(--cc-red);
  color: #fff;
  border: none;
  cursor: pointer;
  font-weight: 600;
  font-size: 12px;
  letter-spacing: .06em;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.cc-social { display: flex; gap: 10px; margin-top: 22px; flex-wrap: wrap; }
.cc-social a {
  width: 38px; height: 38px;
  border-radius: 50%;
  border: 1px solid rgba(240,232,213,.2);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  color: var(--cc-cream);
  transition: color .15s ease, border-color .15s ease, background .15s ease;
}
.cc-social a:hover {
  color: #fff;
  border-color: var(--cc-red);
  background: var(--cc-red);
}
.cc-social svg {
  width: 17px;
  height: 17px;
  display: block;
}
/* Social icons on light page backgrounds (e.g. contact page) need dark/brand
   strokes — the base .cc-social style is tuned for the dark footer. */
.site-main .cc-social a {
  color: var(--cc-ink);
  border-color: rgba(42,38,34,.28);
}
.site-main .cc-social a:hover {
  color: #fff;
  background: var(--cc-red);
  border-color: var(--cc-red);
}
.cc-footer__col-title {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: .22em;
  color: var(--cc-orange);
  font-weight: 700;
  margin-bottom: 16px;
  text-transform: uppercase;
}
.cc-footer__col ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 12px;
}
.cc-footer__col li,
.cc-footer__col a,
.cc-footer__linkbtn {
  font-size: 13.5px;
  opacity: .85;
  color: inherit;
  text-decoration: none;
}
/* "Cookie settings" is a <button> (it acts, it doesn't navigate) dressed as its sibling links. */
.cc-footer__linkbtn {
  appearance: none; background: none; border: 0; padding: 0; margin: 0;
  font: inherit; font-size: 13.5px; text-align: left; cursor: pointer;
}
.cc-footer__linkbtn[hidden] { display: none; }
.cc-footer__contact {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: space-between;
}
.cc-footer__manifesto {
  font-size: 13.5px;
  line-height: 1.65;
  opacity: .8;
  margin: 0 0 18px;
  max-width: 320px;
}
.cc-footer__contact ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 8px;
  font-size: 13px;
  opacity: .85;
}
.cc-footer__contact a { color: var(--cc-cream); text-decoration: underline; text-underline-offset: 2px; }
.cc-footer__contact a:hover { color: var(--cc-orange); }
.cc-footer__legal {
  border-top: 1px solid rgba(240,232,213,.12);
  padding-top: 22px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 11px;
  font-family: 'JetBrains Mono', monospace;
  letter-spacing: .1em;
  text-transform: uppercase;
  flex-wrap: wrap;
  gap: 16px;
}
.cc-footer__legal > span { opacity: .55; }
.cc-footer__dbj {
  display: inline-flex;
  align-items: center;
  opacity: .75;
  transition: opacity .15s ease;
}
.cc-footer__dbj:hover { opacity: 1; }
.cc-footer__dbj img {
  display: block;
  height: 36px;
  width: auto;
  filter: brightness(0) invert(1);
}

/* ─────────────────────────────────────────────
   Responsive — scale down at common breakpoints
   ───────────────────────────────────────────── */
@media (max-width: 1100px) {
  /* The 16:8.2 media box is only safe when the title fits inside it; below
     1100px let the box grow with its content instead of clipping the H1. */
  .cc-hero__media { aspect-ratio: auto; min-height: 560px; display: flex; flex-direction: column; justify-content: flex-end; }
  .cc-hero__content { position: relative; inset: auto; padding: 140px 40px 56px; }
  .cc-hero__title { font-size: 84px; }
  .cc-asseen__inner { grid-template-columns: 1fr; gap: 28px; }
  .cc-asseen__why { border: none; padding: 0; }
  .cc-asseen__col { text-align: center; max-width: 560px; margin-inline: auto; }
  .cc-asseen__col--press { align-items: center; }
  .cc-trips__grid { grid-template-columns: 1fr; max-width: 560px; margin-inline: auto; gap: 56px; }
  .cc-trip-card { transform: none !important; }
  .cc-adventure { padding: 80px 32px; }
  .cc-adventure__inner { grid-template-columns: 1fr; gap: 60px; }
  .cc-adventure__collage { height: auto; min-height: 770px; }
  .cc-trips { padding: 80px 32px; }
  .cc-trips__head h2 { font-size: 56px; }
  .cc-newsband { padding: 0 32px 80px; }
  .cc-newsband__inner { padding: 36px 36px; }
  .cc-speaking { padding: 56px 32px; }
  .cc-speaking__inner { grid-template-columns: 1fr; gap: 60px; }
  .cc-speaking__media { max-width: 520px; }
  .cc-speaking__media .cc-polaroid { width: 100%; max-width: 520px; }
  .cc-real { padding: 80px 32px; }
  .cc-real__inner { grid-template-columns: 1fr; gap: 60px; }
  .cc-real__collage { height: auto; min-height: 620px; }
  .cc-partners { padding: 0 32px 80px; }
  .cc-logos { grid-template-columns: repeat(3, 1fr); gap: 24px; }
  .cc-testi { padding: 80px 32px; }
  .cc-testi__inner { grid-template-columns: 1fr; gap: 60px; }
  .cc-testi__media .cc-polaroid { width: 100%; max-width: 500px; }
  .cc-blog { padding: 80px 32px; }
  .cc-blog__head { gap: 40px; }
  .cc-tiles { grid-template-columns: 1fr; }
  .cc-blog__copy h2 { font-size: 56px; }
  .cc-footer__inner { padding: 60px 32px 32px; }
  .cc-footer__grid { grid-template-columns: 1fr 1fr; gap: 40px; }
}

@media (max-width: 720px) {
  .cc-topbar { padding: 14px 18px; }
  .cc-hero { padding: 12px 12px 0; }
  .cc-hero__media { min-height: 0; }
  .cc-hero__content { padding: 112px 24px 32px; }
  .cc-hero__kicker { font-size: 26px; }
  .cc-hero__title { font-size: 48px; letter-spacing: -.02em; }
  .cc-home .cc-hero__lede { font-size: 15px; margin: 18px 0; }
  .cc-hero__ctas { flex-direction: column; align-items: stretch; gap: 10px; }
  .cc-hero__ctas .cc-btn { padding: 12px 18px; font-size: 13px; justify-content: center; }
  .cc-trips__grid { grid-template-columns: 1fr; gap: 56px; }
  .cc-trip-card { transform: none !important; }
  .cc-trips__head h2 { font-size: 40px; }
  .cc-adventure__copy h2 { font-size: 48px; }
  .cc-newsband { padding: 0 20px 64px; }
  .cc-newsband__inner { flex-direction: column; align-items: flex-start; gap: 24px; padding: 28px 24px; }
  .cc-newsband__copy h2 { font-size: 34px; }
  .cc-speaking__copy h2 { font-size: 44px; }
  .cc-real__copy h2 { font-size: 42px; }
  .cc-partners__caption {
    flex-direction: column;
    align-items: flex-start;
    bottom: 20px; left: 20px; right: 20px;
  }
  .cc-partners__caption h2 { font-size: 36px; }
  /* Phones: the 16:7 band is ~135px tall, too short for the caption + button. */
  .cc-partners__feature { aspect-ratio: auto; min-height: 340px; }
  .cc-logos { grid-template-columns: repeat(2, 1fr); }
  .cc-testi__copy h2 { font-size: 44px; }
  .cc-testi__media .cc-polaroid { width: 100%; }
  .cc-stats { grid-template-columns: repeat(2, 1fr); }
  .cc-posts { grid-template-columns: 1fr; gap: 48px; }
  .cc-post { transform: none !important; }
  .cc-tile { transform: none !important; }
  .cc-blog__copy h2 { font-size: 40px; }
  .cc-wordmark { padding: 60px 24px 40px; }
  .cc-footer__grid { grid-template-columns: 1fr; gap: 36px; }
  .cc-footer__inner { padding: 48px 24px 24px; }
  .cc-footer__legal { flex-direction: column; align-items: flex-start; }
  .cc-adventure__collage .cc-polaroid:nth-child(1),
  .cc-adventure__collage .cc-polaroid:nth-child(2),
  .cc-real__collage .cc-polaroid:nth-child(1),
  .cc-real__collage .cc-polaroid:nth-child(2) {
    position: relative;
    top: auto; left: auto; right: auto;
    width: 100%;
    margin-bottom: 24px;
    transform: none;
  }
  .cc-adventure__collage,
  .cc-real__collage { min-height: 0; }
}

/* ───── Sound toggle button (replaces Contact in the top bar) ───── */
.cc-sound-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border: 1px solid rgba(42,38,34,.22);
  border-radius: 999px;
  background: var(--cc-cream);
  color: var(--cc-ink);
  cursor: pointer;
  transition: background .2s ease, color .2s ease, border-color .2s ease, transform .15s ease;
}
.cc-sound-btn:hover { transform: translateY(-1px); border-color: var(--cc-red); color: var(--cc-red); }
.cc-sound-btn__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
}
.cc-sound-btn__svg { width: 20px; height: 20px; }
.cc-sound-btn__svg--on { display: none; }
.cc-sound-btn[data-state="playing"] {
  background: var(--cc-red);
  color: #fff;
  border-color: var(--cc-red);
}
.cc-sound-btn[data-state="playing"] .cc-sound-btn__svg--off { display: none; }
.cc-sound-btn[data-state="playing"] .cc-sound-btn__svg--on { display: block; }

/* ───── Floating CTA bars (left + right) ───── */
.cc-floatbar {
  position: fixed;
  bottom: 20px;
  z-index: 900;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.cc-floatbar--left { left: 20px; align-items: flex-start; }
.cc-floatbar--right { right: 20px; align-items: flex-end; }
/* JS-driven initial state: bars start off-screen below, GSAP slides them up. */
.js-floatbar .cc-floatbar { opacity: 0; transform: translateY(120px); will-change: transform, opacity; }
.cc-floatbar__btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 22px;
  border-radius: 999px;
  font-family: 'Inter Tight', sans-serif;
  font-weight: 600;
  font-size: 14px;
  letter-spacing: .02em;
  text-decoration: none;
  cursor: pointer;
  border: 1px solid currentColor;
  box-shadow: 0 14px 32px rgba(20,15,10,.18);
  transition: transform .15s ease, background .2s ease, color .2s ease;
}
.cc-floatbar__btn:hover { transform: translateY(-1px); }
.cc-floatbar__btn--red {
  background: var(--cc-red);
  color: #fff;
  border-color: var(--cc-red);
}
.cc-floatbar__btn--red:hover { background: var(--cc-red-dark); border-color: var(--cc-red-dark); color: #fff; }
.cc-floatbar__btn--cream {
  background: var(--cc-cream);
  color: var(--cc-ink);
  border-color: rgba(42,38,34,.22);
}
.cc-floatbar__btn--cream:hover { border-color: var(--cc-red); color: var(--cc-red); }
.cc-floatbar__menu {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 22px;
  border-radius: 999px;
  font-family: 'Inter Tight', sans-serif;
  font-weight: 600;
  font-size: 14px;
  letter-spacing: .02em;
  cursor: pointer;
  border: 1px solid var(--cc-ink);
  background: var(--cc-ink);
  color: var(--cc-cream);
  box-shadow: 0 14px 32px rgba(20,15,10,.22);
  transition: transform .15s ease, background .2s ease, color .2s ease;
}
.cc-floatbar__menu:hover { transform: translateY(-1px); background: var(--cc-red); border-color: var(--cc-red); color: #fff; }
.cc-floatbar__menu-icon { display: inline-flex; }
@media (max-width: 720px) {
  .cc-floatbar--left { left: 12px; bottom: 12px; }
  .cc-floatbar--right { right: 12px; bottom: 12px; }
  .cc-floatbar { gap: 8px; }
  .cc-floatbar__btn { padding: 12px 16px; font-size: 13px; }
  .cc-floatbar__menu { padding: 12px 16px; font-size: 13px; }
  .cc-floatbar__menu-label { display: none; }
}

/* ───── Modal (Join Newsletter) ───── */
.cc-modal {
  position: fixed;
  inset: 0;
  z-index: 1100;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 24px;
}
.cc-modal.is-open { display: flex; }
.cc-modal__scrim {
  position: absolute;
  inset: 0;
  background: rgba(20,15,10,.55);
  backdrop-filter: blur(2px);
}
.cc-modal__dialog {
  position: relative;
  background: var(--cc-cream);
  color: var(--cc-ink);
  border-radius: 6px;
  max-width: 560px;
  width: 100%;
  max-height: calc(100vh - 48px);
  overflow-y: auto;
  padding: 40px 36px 32px;
  box-shadow: 0 30px 80px rgba(20,15,10,.35);
}
.cc-modal__close {
  position: absolute;
  top: 12px;
  right: 12px;
  background: transparent;
  border: 0;
  cursor: pointer;
  padding: 8px;
  color: var(--cc-ink);
}
.cc-modal__close:hover { color: var(--cc-red); }
.cc-modal__kicker {
  font-family: 'Caveat', cursive;
  font-size: 28px;
  color: var(--cc-red);
  font-style: italic;
  margin-bottom: 4px;
}
.cc-modal__title {
  font-family: 'Fraunces', serif;
  font-size: 36px;
  font-weight: 300;
  line-height: 1.05;
  letter-spacing: -0.02em;
  margin: 0 0 6px;
  font-style: italic;
  color: var(--cc-ink);
}
.cc-modal__title em { font-style: italic; font-weight: 400; }
.cc-modal__sub {
  font-size: 15px;
  line-height: 1.55;
  color: var(--cc-ink-soft);
  margin: 0 0 18px;
}
/* Topic write-up above the booking form — the form was butting straight up
   against the last paragraph. */
.cc-modal__body { margin-bottom: 26px; }
.cc-modal__body > :last-child { margin-bottom: 0; }
body.cc-modal-open { overflow: hidden; }

/* ── Gravity Forms inside modals — match the site's fields + buttons ── */
.cc-modal .gform_wrapper { margin: 0; }
.cc-modal .gform_wrapper.gravity-theme .gform_fields {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  row-gap: 16px;
}
.cc-modal .gform_wrapper.gravity-theme .gfield_label,
.cc-modal .gform_wrapper .gform-field-label {
  font-family: 'Inter Tight', sans-serif;
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: .02em;
  color: var(--cc-ink-soft);
  margin: 0 0 6px;
}
.cc-modal .gform_wrapper .gform-field-label--type-sub {
  font-weight: 500;
  font-size: 11px;
  opacity: .75;
  margin: 4px 0 0;
}
.cc-modal .gform_wrapper.gravity-theme input[type="text"],
.cc-modal .gform_wrapper.gravity-theme input[type="email"],
.cc-modal .gform_wrapper.gravity-theme input[type="tel"],
.cc-modal .gform_wrapper.gravity-theme textarea {
  width: 100%;
  background: #fff;
  border: 1px solid rgba(42,38,34,.18);
  border-radius: 4px;
  padding: 13px 15px;
  font-family: 'Inter Tight', sans-serif;
  font-size: 15px;
  color: var(--cc-ink);
  line-height: 1.4;
  box-shadow: none;
  transition: border-color .18s ease, box-shadow .18s ease;
}
.cc-modal .gform_wrapper.gravity-theme input::placeholder,
.cc-modal .gform_wrapper.gravity-theme textarea::placeholder {
  color: rgba(42,38,34,.4);
}
.cc-modal .gform_wrapper.gravity-theme input[type="text"]:focus,
.cc-modal .gform_wrapper.gravity-theme input[type="email"]:focus,
.cc-modal .gform_wrapper.gravity-theme input[type="tel"]:focus,
.cc-modal .gform_wrapper.gravity-theme textarea:focus {
  outline: none;
  border-color: var(--cc-red);
  box-shadow: 0 0 0 3px rgba(162,68,56,.14);
}
.cc-modal .gform_wrapper.gravity-theme .ginput_complex.ginput_container--name {
  gap: 16px;
}
.cc-modal .gform_wrapper.gravity-theme .gform_footer {
  margin: 22px 0 0;
  padding: 0;
}
.cc-modal .gform_wrapper.gravity-theme .gform_button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: auto;
  padding: 14px 30px;
  font-family: 'Inter Tight', sans-serif;
  font-weight: 600;
  font-size: 14px;
  letter-spacing: .02em;
  color: #fff !important;
  background: var(--cc-red) !important;
  border: 1px solid var(--cc-red) !important;
  border-radius: 999px !important;
  cursor: pointer;
  transition: transform .15s ease, background .2s ease, border-color .2s ease;
}
.cc-modal .gform_wrapper.gravity-theme .gform_button:hover {
  background: var(--cc-red-dark) !important;
  border-color: var(--cc-red-dark) !important;
  transform: translateY(-1px);
}
.cc-modal .gform_wrapper.gravity-theme .gfield_required { color: var(--cc-red); }
.cc-modal .gform_wrapper.gravity-theme .gfield_description.validation_message,
.cc-modal .gform_wrapper.gravity-theme .gform_validation_errors {
  font-family: 'Inter Tight', sans-serif;
  font-size: 12.5px;
  color: var(--cc-red);
}

/* Hide purely decorative flourishes on mobile (ivy, palm, rock, branches). */
@media (max-width: 720px) {
  .cc-adventure__deco-ivy,
  .cc-adventure__deco-palm,
  .cc-real__deco,
  .cc-testi__rock,
  .cc-testi__branch {
    display: none;
  }
}

/* ───── Header at phone widths (375 floor) ───── */
@media (max-width: 480px) {
  .cc-topbar { padding: 12px 14px; gap: 8px; }
  .cc-topbar__cta { white-space: nowrap; padding: 9px 12px; font-size: 12px; }
  .cc-topbar__cta svg { display: none; }
  .cc-topbar__logo { height: 30px; width: auto; }
  .cc-sound-btn { width: 34px; height: 34px; }
}
@media (max-width: 360px) {
  .cc-topbar__cta { display: none; } /* the floatbar already carries "Take a Trip" */
}

/* ───── Keyboard focus: one branded ring site-wide ───── */
:focus-visible { outline: 2px solid var(--cc-red-dark); outline-offset: 3px; }
.cc-speaking :focus-visible,
.cc-asseen :focus-visible,
.cc-footer :focus-visible,
.pg-section--ink :focus-visible,
.pg-section--hero :focus-visible { outline-color: var(--cc-cream); }
