/*
Theme Name: ChampionBreed World
Theme URI: https://championbreed.com
Author: ChampionBreed
Description: Custom international boxing and performance theme for ChampionBreed.
Version: 1.7.0
Requires at least: 6.4
Requires PHP: 8.0
Text Domain: championbreed-world
*/

:root {
  --cb-black: #05090b;
  --cb-ink: #091317;
  --cb-panel: #0d1d22;
  --cb-gold: #d9ad46;
  --cb-gold-bright: #f3ca62;
  --cb-white: #f7f4ec;
  --cb-muted: #9aa7aa;
  --cb-line: rgba(217, 173, 70, .28);
  --cb-max: 1180px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; overflow-x: hidden; }
body { margin: 0; color: var(--cb-white); background: var(--cb-black); font: 16px/1.65 Arial, Helvetica, sans-serif; overflow-x: hidden; }
a { color: inherit; }
img { max-width: 100%; height: auto; }
.cb-wrap { width: min(calc(100% - 40px), var(--cb-max)); margin-inline: auto; }
.cb-kicker { color: var(--cb-gold-bright); font-size: .76rem; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; }
.cb-section { padding: 92px 0; }
.cb-section--ink { background: var(--cb-ink); }
.cb-section-title { max-width: 760px; margin: 10px 0 28px; font-size: clamp(2rem, 5vw, 4.2rem); line-height: .98; letter-spacing: -.045em; text-transform: uppercase; }
.cb-copy { max-width: 680px; color: #c6cecf; }
.cb-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 50px; padding: 0 25px; border: 1px solid var(--cb-gold); color: var(--cb-black); background: var(--cb-gold-bright); font-size: .78rem; font-weight: 900; letter-spacing: .1em; text-decoration: none; text-transform: uppercase; transition: .2s ease; }
.cb-btn:hover { background: var(--cb-white); border-color: var(--cb-white); transform: translateY(-2px); }
.cb-btn--ghost { color: var(--cb-white); background: transparent; }
.cb-btn--ghost:hover { color: var(--cb-black); }

.cb-header { position: sticky; z-index: 50; top: 0; border-bottom: 1px solid var(--cb-line); background: rgba(5, 9, 11, .94); backdrop-filter: blur(14px); }
.cb-nav { display: flex; min-height: 92px; align-items: center; justify-content: space-between; gap: 25px; }
.cb-brand { display: flex; flex: 0 0 auto; align-items: center; }
.cb-brand a { display: flex; align-items: center; text-decoration: none; }
.cb-brand img,.cb-brand .custom-logo { display: block; width: auto; height: 78px; object-fit: contain; filter: drop-shadow(0 3px 12px rgba(217,173,70,.16)); }
.cb-menu { display: flex; align-items: center; gap: 30px; margin: 0; padding: 0; list-style: none; }
.cb-menu a { color: #e8e8e4; font-size: .72rem; font-weight: 800; letter-spacing: .11em; text-decoration: none; text-transform: uppercase; }
.cb-menu a:hover { color: var(--cb-gold-bright); }
.cb-menu-toggle { display: none; border: 0; color: var(--cb-white); background: none; font-weight: 800; }

.cb-hero { position: relative; display: grid; min-height: 760px; align-items: end; overflow: hidden; background: #030506; }
.cb-hero:after { position: absolute; right: -7vw; bottom: -13vw; width: 55vw; height: 55vw; border: 1px solid var(--cb-line); border-radius: 50%; content: ""; box-shadow: 0 0 0 70px rgba(217,173,70,.025), 0 0 0 140px rgba(217,173,70,.018); }
.cb-hero__video { position: absolute; inset: 0 0 0 auto; width: 56%; height: 100%; object-fit: cover; object-position: center; filter: saturate(.82) contrast(1.08); }
.cb-hero__shade { position: absolute; z-index: 1; inset: 0; background: linear-gradient(90deg,#030506 0%,rgba(3,5,6,.97) 36%,rgba(3,5,6,.44) 70%,rgba(3,5,6,.24)),linear-gradient(0deg,rgba(3,5,6,.76),transparent 55%); }
.cb-hero__inner { position: relative; z-index: 2; padding: 110px 0 84px; }
.cb-hero h1 { max-width: 940px; margin: 16px 0 24px; font-size: clamp(3.5rem, 9.7vw, 8.6rem); line-height: .82; letter-spacing: -.065em; text-transform: uppercase; }
.cb-hero h1 span { color: var(--cb-gold-bright); }
.cb-hero__lead { max-width: 670px; margin-bottom: 34px; color: #d8dddd; font-size: clamp(1.05rem, 2vw, 1.3rem); }
.cb-booking { min-height: 70vh; padding-top: 140px; }
.cb-booking__panel, .cb-booking__notice { margin-top: 34px; padding: clamp(22px, 4vw, 46px); border: 1px solid var(--cb-line); background: #0a0d0e; overflow-x: auto; }
.cb-booking__panel h2, .cb-booking__notice h2 { margin-top: 0; color: var(--cb-gold-bright); }
.cb-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.cb-proof { border-top: 1px solid var(--cb-line); border-bottom: 1px solid var(--cb-line); background: #071014; }
.cb-proof__grid { display: grid; grid-template-columns: repeat(5,1fr); }
.cb-proof__item { min-height: 112px; padding: 26px 22px; border-right: 1px solid var(--cb-line); }
.cb-proof__item:last-child { border: 0; }
.cb-proof strong { display: block; color: var(--cb-gold-bright); font-size: 1.1rem; }
.cb-proof span { color: var(--cb-muted); font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; }

.cb-paths { display: grid; grid-template-columns: repeat(2,1fr); gap: 16px; }
.cb-card { position: relative; min-height: 300px; padding: 38px; border: 1px solid var(--cb-line); background: linear-gradient(145deg,#0f2228,#081215); overflow: hidden; }
.cb-card:before { position: absolute; top: 0; left: 0; width: 4px; height: 100%; background: var(--cb-gold); content: ""; transform: scaleY(.18); transform-origin: top; transition: .25s ease; }
.cb-card:hover:before { transform: scaleY(1); }
.cb-card__num { color: var(--cb-gold); font-size: .75rem; font-weight: 900; letter-spacing: .16em; }
.cb-card h3 { max-width: 420px; margin: 65px 0 10px; font-size: clamp(1.5rem,3vw,2.6rem); line-height: 1; text-transform: uppercase; }
.cb-card p { max-width: 470px; color: var(--cb-muted); }
.cb-card a { color: var(--cb-gold-bright); font-size: .75rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }

.cb-story { display: grid; grid-template-columns: .9fr 1.1fr; gap: 70px; align-items: center; }
.cb-portrait { position: relative; min-height: 540px; margin: 0; border: 1px solid var(--cb-line); background: #0b171b; overflow: hidden; }
.cb-portrait img { width: 100%; height: 540px; object-fit: cover; object-position: 48% center; filter: saturate(.86) contrast(1.08); }
.cb-portrait figcaption,.cb-gallery figcaption { position: absolute; right: 0; bottom: 0; left: 0; padding: 28px 20px 17px; color: var(--cb-white); background: linear-gradient(transparent,rgba(3,5,6,.92)); font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.cb-quote { margin: 32px 0; padding-left: 25px; border-left: 3px solid var(--cb-gold); color: var(--cb-white); font-size: 1.25rem; font-weight: 700; }
.cb-legacy { background: #071014; }
.cb-gallery { display: grid; grid-template-columns: 1.2fr 1fr 1fr; grid-auto-rows: 290px; grid-auto-flow: dense; gap: 12px; }
.cb-gallery + .cb-gallery { margin-top: 12px; }
.cb-gallery--archive { grid-template-columns: repeat(2,1fr); grid-auto-rows: 340px; }
.cb-gallery figure { position: relative; margin: 0; border: 1px solid var(--cb-line); background: var(--cb-ink); overflow: hidden; }
.cb-gallery__feature { grid-row: 1 / 3; }
.cb-gallery__wide { grid-column: span 2; }
.cb-gallery img { width: 100%; height: 100%; object-fit: contain; object-position: center; background: #030506; transition: transform .45s ease,filter .45s ease; }
.cb-gallery figure:hover img { transform: scale(1.035); filter: saturate(1.1); }
.cb-method { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; border: 1px solid var(--cb-line); background: var(--cb-line); }
.cb-method__item { min-height: 220px; padding: 32px; background: var(--cb-black); }
.cb-method__item span { color: var(--cb-gold); font-weight: 900; }
.cb-method__item h3 { margin: 42px 0 8px; text-transform: uppercase; }
.cb-method__item p { color: var(--cb-muted); }

.cb-world { text-align: center; background: radial-gradient(circle at center,rgba(217,173,70,.12),transparent 45%),#071014; }
.cb-world .cb-section-title,.cb-world .cb-copy { margin-inline: auto; }
.cb-world .cb-actions { justify-content: center; margin-top: 30px; }
.cb-footer { padding: 52px 0; border-top: 1px solid var(--cb-line); background: #030506; }
.cb-footer__grid { display: flex; justify-content: space-between; gap: 30px; }
.cb-footer p { color: var(--cb-muted); font-size: .8rem; }
.cb-page { min-height: 60vh; padding: 100px 0; }

@media (max-width: 1080px) {
  .cb-nav { gap: 16px; }
  .cb-brand img,.cb-brand .custom-logo { height: 70px; }
  .cb-menu { gap: 18px; }
  .cb-menu a { font-size: .67rem; letter-spacing: .08em; }
  .cb-nav > .cb-btn { min-height: 46px; padding-inline: 17px; font-size: .7rem; }
  .cb-method { grid-template-columns: repeat(2,1fr); }
}

@media (max-width: 900px) {
  .cb-menu-toggle { display: block; }
  .cb-menu-toggle { order: 3; min-width: 48px; min-height: 48px; padding: 0 10px; border: 1px solid var(--cb-line); cursor: pointer; }
  .cb-menu { position: absolute; top: 82px; right: 0; left: 0; display: none; gap: 0; padding: 12px 20px 22px; border-bottom: 1px solid var(--cb-line); background: rgba(5,9,11,.99); box-shadow: 0 18px 30px rgba(0,0,0,.35); }
  .cb-menu a { display: flex; min-height: 50px; align-items: center; border-bottom: 1px solid rgba(217,173,70,.15); font-size: .8rem; }
  .cb-nav { min-height: 82px; }
  .cb-brand { order: 1; margin-right: auto; }
  .cb-brand img,.cb-brand .custom-logo { height: 66px; }
  .cb-menu.is-open { display: grid; }
  .cb-nav > .cb-btn { order: 2; min-height: 44px; padding: 0 15px; font-size: .66rem; white-space: nowrap; }
  #cb-primary-menu { order: 4; }
  .cb-hero { min-height: min(760px,calc(100svh - 82px)); }
  .cb-hero__video { width: 100%; opacity: .5; }
  .cb-hero__shade { background: linear-gradient(90deg,rgba(3,5,6,.96),rgba(3,5,6,.45)),linear-gradient(0deg,rgba(3,5,6,.9),transparent); }
  .cb-hero__inner { padding: 90px 0 70px; }
  .cb-hero h1 { max-width: 760px; font-size: clamp(4rem,12vw,7rem); }
  .cb-proof__grid { grid-template-columns: 1fr 1fr; }
  .cb-proof__item { border-bottom: 1px solid var(--cb-line); }
  .cb-proof__item:nth-child(even) { border-right: 0; }
  .cb-proof__item:last-child { grid-column: 1 / 3; text-align: center; }
  .cb-paths,.cb-story { grid-template-columns: 1fr; }
  .cb-story { gap: 42px; }
  .cb-gallery { grid-template-columns: 1fr 1fr; grid-auto-rows: 330px; }
  .cb-gallery--archive { grid-template-columns: 1fr 1fr; grid-auto-rows: 290px; }
  .cb-gallery__feature { grid-column: 1 / 3; grid-row: auto; }
  .cb-gallery__wide { grid-column: 1 / 3; }
  .cb-portrait,.cb-portrait img { min-height: 430px; height: 430px; }
  .cb-footer__grid { align-items: flex-start; }
}

@media (max-width: 520px) {
  .cb-wrap { width: min(calc(100% - 28px),var(--cb-max)); }
  .cb-nav { gap: 8px; }
  .cb-brand img,.cb-brand .custom-logo { height: 56px; }
  .cb-nav > .cb-btn { min-height: 40px; padding-inline: 10px; font-size: .58rem; letter-spacing: .06em; }
  .cb-menu-toggle { min-width: 42px; min-height: 42px; font-size: .72rem; }
  .cb-section { padding: 62px 0; }
  .cb-section-title { font-size: clamp(2.25rem,12vw,3.35rem); overflow-wrap: anywhere; }
  .cb-kicker { font-size: .66rem; letter-spacing: .15em; }
  .cb-hero { min-height: calc(100svh - 82px); }
  .cb-hero__video { object-position: 58% center; }
  .cb-hero__inner { padding: 68px 0 46px; }
  .cb-hero h1 { margin-top: 12px; font-size: clamp(3.15rem,15vw,4.65rem); line-height: .86; }
  .cb-hero__lead { margin-bottom: 24px; font-size: 1rem; line-height: 1.5; }
  .cb-actions { display: grid; grid-template-columns: 1fr; }
  .cb-actions .cb-btn { width: 100%; }
  .cb-proof__grid { grid-template-columns: 1fr; }
  .cb-proof__item,.cb-proof__item:last-child { grid-column: auto; min-height: 92px; padding: 20px; text-align: left; border-right: 0; }
  .cb-method { grid-template-columns: 1fr; }
  .cb-card { min-height: 260px; padding: 28px; }
  .cb-card h3 { margin-top: 40px; }
  .cb-story { gap: 30px; }
  .cb-portrait,.cb-portrait img { min-height: 360px; height: 360px; }
  .cb-gallery { display: grid; grid-template-columns: 1fr; grid-auto-rows: 300px; }
  .cb-gallery--archive { grid-template-columns: 1fr; grid-auto-rows: 230px; }
  .cb-gallery__feature,.cb-gallery__wide { grid-column: auto; }
  .cb-gallery figcaption { padding: 25px 14px 12px; font-size: .62rem; }
  .cb-booking { padding-top: 82px; }
  .cb-booking__panel,.cb-booking__notice { margin-inline: -4px; padding: 18px 12px; }
  .cb-footer__grid { display: block; }
}

@media (max-width: 360px) {
  .cb-nav > .cb-btn { display: none; }
  .cb-brand img,.cb-brand .custom-logo { height: 54px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *,*::before,*::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
