:root { --display: "Bahnschrift Condensed", "Arial Narrow", Impact, sans-serif; }

.site-header {
  height: 102px;
  background: #061821;
  border-bottom: 0;
  padding-inline: clamp(38px, 4.5vw, 72px);
}

.site-header .brand { position: absolute; top: 20px; left: clamp(38px, 4.5vw, 72px); z-index: 3; }
.site-header .brand img { width: 148px; height: 148px; }
.site-header .brand img, .directions__logo { border-radius: 50%; clip-path: circle(48% at 50% 50%); }
.site-header .brand span { display: none; }
.main-nav { margin-left: 220px; gap: clamp(24px, 3.1vw, 52px); }
.main-nav a { font-family: var(--display); font-size: 17px; font-weight: 700; text-transform: none; letter-spacing: .02em; }
.header-location { margin-left: auto; display: flex; align-items: center; gap: 13px; white-space: nowrap; font-size: 15px; }
.header-location .pin { flex: 0 0 auto; }

.hero { height: min(900px, 100vh); min-height: 720px; padding-top: 102px; grid-template-columns: 44% 56%; }
.hero__copy { padding: clamp(105px,16vh,165px) 20px 48px var(--pad); background: #061821; }
.hero h1 { font-size: clamp(64px, 5.7vw, 92px); letter-spacing: -.015em; }
.hero__copy > p { max-width: 470px; margin-top: 30px; margin-bottom: 26px; font-size: 17px; }
.hero__media { top: 102px; width: 61%; clip-path: polygon(12% 0, 100% 0, 100% 100%, 12% 100%, 4% 82%, 11% 68%, 3% 54%, 10% 39%, 2% 20%); }
.hero__media img { object-position: 55% center; }
.hero__media::after { background: linear-gradient(90deg, #061821 0%, transparent 11%); }
.hero__actions { align-items: stretch; gap: 12px; flex-direction: column; width: min(430px, 100%); }
.hero__actions .button, .hero__actions .text-link { min-height: 56px; width: 100%; }
.hero__actions .text-link { position: relative; z-index: 5; isolation: isolate; display: flex; align-items: center; justify-content: space-between; padding: 0 32px; border: 0; background: var(--blue); clip-path: polygon(0 0, 94% 0, 100% 50%, 94% 100%, 0 100%); overflow: hidden; transition: color .22s ease, transform .22s ease; }
.hero__actions .text-link::before { content: ""; position: absolute; z-index: -1; inset: 2px; background: #061821; clip-path: polygon(0 0,94% 0,100% 50%,94% 100%,0 100%); transition: background-color .22s ease; }
.hero__actions .text-link span { flex: 0 0 auto; margin-left: 24px; font-size: 23px; line-height: 1; transition: transform .22s ease; }
.hero__actions .text-link:hover { color: #061821; transform: translateY(-2px); }
.hero__actions .text-link:hover::before { background: var(--blue); }
.hero__actions .text-link:hover span { color: #061821; transform: translateX(8px); }
.hero__address { display: none; }
.claw { width: 15px; left: 19%; }
.claw--two { width: 7px; left: 24%; }
.manifesto { display: none; }

.directions.section { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 0; padding-top: 100px; padding-bottom: 0; background: radial-gradient(circle at 80% 12%, rgba(8,174,237,.09), transparent 31%), #061821; color: #fff; overflow: hidden; }
.directions::after, .growth::after { content: ""; position: absolute; inset: 0 0 auto 55%; height: 250px; opacity: .14; pointer-events: none; background-image: radial-gradient(ellipse at center, #0aaeed 0 42%, transparent 46%); background-size: 54px 32px; transform: skewX(-18deg); }
.directions .section-heading { grid-column: 1 / -1; margin-bottom: 24px; position: relative; z-index: 2; }
.directions .section-heading h2 { color: #fff; font-size: clamp(48px, 5vw, 78px); }
.directions .section-heading p { color: #9eb3bc; }
.direction, .direction--bio { position: relative; display: block; min-height: 470px; margin: 0; background: transparent; overflow: hidden; }
.direction__body { width: 52%; min-height: 100%; padding: 70px 18px 55px 0; justify-content: flex-start; z-index: 2; }
.direction--bio .direction__body { margin-left: auto; padding: 70px 0 55px 32px; }
.direction__body::before { content: ""; display: block; width: 42px; height: 5px; margin-bottom: 22px; background: var(--red); transform: skewX(-24deg); }
.direction h3 { font-size: clamp(31px, 2.9vw, 47px); }
.direction p { font-size: 16px; }
.direction li { font-size: 13px; }
.direction__photo { position: absolute; width: 50%; height: 62%; min-height: 0; right: 0; bottom: 32px; overflow: hidden; clip-path: polygon(10% 0,100% 0,100% 100%,0 100%,6% 52%); }
.direction--bio .direction__photo { left: 0; right: auto; }
.direction__photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 38%; }
.directions__logo { position: absolute; z-index: 5; width: 190px; height: 190px; object-fit: contain; left: 50%; top: 55%; transform: translate(-50%,-50%); filter: drop-shadow(0 15px 35px rgba(0,0,0,.45)); }
.direction__number { display: none; }

.growth { position: relative; padding-top: 95px; padding-bottom: 0; border-top: 1px solid rgba(255,255,255,.4); }
.growth__top { position: relative; z-index: 2; }
.growth__line { z-index: 3; margin: 65px 0 0; }
.growth__photo { height: 510px; margin-top: -35px; overflow: visible; }
.growth__photo img { object-fit: cover; object-position: center 40%; clip-path: polygon(0 9%,12% 0,28% 7%,45% 0,62% 7%,78% 0,100% 8%,100% 100%,0 100%); }
.growth__quote { left: 50%; right: auto; bottom: 12px; transform: translateX(-50%); width: min(760px, 80%); text-align: center; padding: 17px 28px; background: transparent; color: #d8e5e9; border-top: 1px solid var(--red); }

.coach.section { grid-template-columns: .92fr 1.18fr; grid-template-areas: "content portrait"; gap: 0; padding: 0; background: #061821; color: #fff; min-height: 640px; }
.coach__content { grid-area: content; padding: 62px 55px 58px var(--pad); align-self: center; }
.coach__portrait { grid-area: portrait; height: 640px; min-height: 0; margin-block: 36px; align-self: center; clip-path: polygon(13% 0,100% 0,100% 100%,0 100%); }
.coach__portrait img { object-position: center 48%; filter: saturate(.92) contrast(1.04); }
.coach__portrait span { display: none; }
.coach__lead, .coach__note { color: #c0d0d6; }
.achievements { border-color: var(--line); }
.achievements div { border-color: var(--line); }
.achievements div:nth-child(odd) { border-color: var(--line); }
.achievements b { color: var(--blue); }

.schedule.section { padding-top: 90px; padding-bottom: 90px; background: #08212c; }
.schedule-panel { border: 1px solid rgba(8,174,237,.55); gap: 0; background: transparent; }
.day-group { background: #08212c; border-right: 1px solid rgba(8,174,237,.35); }

.cta { grid-template-columns: .85fr 1.15fr; grid-template-areas: "content photo"; background: #061821; color: #fff; border-top: 1px solid var(--blue); }
.cta__content { grid-area: content; padding: 80px 45px 80px var(--pad); }
.cta__photo { grid-area: photo; min-height: 560px; clip-path: polygon(10% 0,100% 0,100% 100%,0 100%); }
.cta__content > p { color: #b7c9d0; }
.cta__links { border-color: var(--line); }

footer { background: #061821; }
.signup__intro img { width: 90px; height: 90px; object-fit: contain; filter: drop-shadow(0 10px 20px rgba(0,0,0,.3)); }

/* Concept fidelity pass: torn hero plate, leopard texture and true figure cutouts. */
.hero { background: #061821; isolation: isolate; }
.hero::before {
  content: "";
  position: absolute;
  inset: 102px 0 0 36%;
  z-index: 0;
  background: url("assets/hero-clean-v2.png") center 45% / cover no-repeat;
  clip-path: polygon(8% 4%, 18% 11%, 14% 0, 28% 12%, 23% 0, 39% 11%, 34% 0, 100% 0, 100% 100%, 7% 100%, 11% 86%, 4% 81%, 10% 68%, 3% 60%, 10% 46%, 3% 37%, 10% 24%, 3% 17%);
}
.hero__copy { z-index: 3; background: transparent; }
.hero__media { display: none; inset: 102px 0 0 36%; width: auto; clip-path: none; background: transparent; overflow: visible; pointer-events: none; }
.hero__media > img { display: none; }
.hero__media::after { display: none; }
.hero__paw { position: absolute; z-index: 2; left: 3.5%; bottom: 5%; width: 150px; height: 118px; transform: rotate(24deg); opacity: .9; }
.hero__paw i,.hero__paw b { position: absolute; display: block; background: rgba(196,211,216,.62); box-shadow: inset 0 0 0 1px rgba(255,255,255,.18); }
.hero__paw i { width: 31px; height: 48px; border-radius: 60% 45% 55% 45%; }
.hero__paw i:nth-child(1) { left: 5px; top: 30px; transform: rotate(-20deg); }
.hero__paw i:nth-child(2) { left: 39px; top: 2px; transform: rotate(-6deg); }
.hero__paw i:nth-child(3) { left: 77px; top: 2px; transform: rotate(8deg); }
.hero__paw i:nth-child(4) { left: 113px; top: 30px; transform: rotate(23deg); }
.hero__paw b { width: 82px; height: 57px; left: 34px; bottom: 0; border-radius: 58% 58% 43% 43%; }

.directions.section,
.growth { --spots: radial-gradient(ellipse at 50% 50%, rgba(8,174,237,.22) 0 27%, transparent 32%); }
.directions.section { background-color: #061821; background-image: radial-gradient(circle at 80% 9%, rgba(8,174,237,.08), transparent 28%); }
.directions::before { content: ""; position: absolute; inset: 92px 0 auto 48%; height: 245px; opacity: .46; background-image: var(--spots); background-size: 40px 24px; transform: skewX(-13deg) rotate(-1deg); mask-image: linear-gradient(90deg,transparent,#000 22%,#000 78%,transparent); }
.directions::after { inset: auto -5% -8px 36%; height: 150px; opacity: .32; background-image: linear-gradient(105deg, transparent 0 42%, rgba(8,174,237,.45) 43% 44%, transparent 45% 52%, rgba(8,174,237,.24) 53% 54%, transparent 55%); background-size: 180px 100%; transform: none; }
.direction { overflow: visible; }
.direction__photo { height: 88%; bottom: 0; overflow: visible; clip-path: none; filter: drop-shadow(0 24px 25px rgba(0,0,0,.35)); }
.direction__photo img { object-fit: contain; object-position: center bottom; }
.direction--fight .direction__photo { width: 50%; right: 0; height: 88%; overflow: hidden; filter: none; -webkit-mask-image: linear-gradient(90deg,transparent 0,rgba(0,0,0,.18) 10%,rgba(0,0,0,.55) 28%,#000 52%,#000 100%); mask-image: linear-gradient(90deg,transparent 0,rgba(0,0,0,.18) 10%,rgba(0,0,0,.55) 28%,#000 52%,#000 100%); }
.direction--fight .direction__photo img { object-fit: cover; object-position: center 47%; filter: saturate(.78) contrast(1.08) brightness(.84); transform: none; }
.direction--bio .direction__photo { width: 50%; left: 0; height: 88%; overflow: hidden; filter: none; -webkit-mask-image: linear-gradient(90deg,#000 0,#000 48%,rgba(0,0,0,.55) 72%,rgba(0,0,0,.18) 90%,transparent 100%); mask-image: linear-gradient(90deg,#000 0,#000 48%,rgba(0,0,0,.55) 72%,rgba(0,0,0,.18) 90%,transparent 100%); }
.direction--bio .direction__photo img { object-fit: cover; object-position: center 54%; filter: saturate(.78) contrast(1.08) brightness(.84); }
.direction--fight .direction__photo::after,
.direction--bio .direction__photo::after { content: ""; position: absolute; z-index: 2; inset: 0; pointer-events: none; background: linear-gradient(180deg,#061821 0,rgba(6,24,33,.7) 9%,transparent 22%,transparent 76%,rgba(6,24,33,.7) 91%,#061821 100%); }
.directions__logo { display: none; }

.growth { display: grid; grid-template-columns: minmax(280px,.68fr) minmax(0,1.45fr); grid-template-rows: auto minmax(500px,auto); column-gap: clamp(34px,4.5vw,78px); background-image: radial-gradient(circle at 76% 12%,rgba(8,174,237,.08),transparent 31%), linear-gradient(115deg,transparent 0 63%,rgba(8,174,237,.08) 63.2% 63.6%,transparent 63.8%); }
.growth::before { content: ""; position: absolute; right: 0; top: 68px; width: 52%; height: 235px; opacity: .38; background-image: var(--spots); background-size: 40px 24px; transform: skewX(-13deg); mask-image: linear-gradient(90deg,transparent,#000 30%,#000); }
.growth::after { inset: auto -6% 75px 24%; height: 160px; opacity: .26; background: repeating-linear-gradient(105deg, transparent 0 88px, rgba(8,174,237,.45) 89px 92px, transparent 93px 121px); transform: none; }
.growth__top { grid-column: 1 / -1; }
.growth__line { grid-column: 1; grid-row: 2; align-self: center; display: grid; grid-template-columns: 1fr; margin: 58px 0 30px; padding-left: 28px; }
.growth__line::before { left: 10px; right: auto; top: 0; bottom: 0; width: 2px; height: auto; }
.stage { min-width: 0; padding: 0 0 42px 46px; }
.stage:last-child { padding-bottom: 0; }
.stage::before { top: 2px; left: 1px; }
.stage b { font-size: clamp(21px,2vw,30px); }
.growth__photo { grid-column: 2; grid-row: 2; height: 540px; margin: 36px 0 0; }
.growth__photo::after { content: ""; position: absolute; z-index: 3; inset: auto 0 0; height: 34%; pointer-events: none; background: linear-gradient(180deg,transparent 0%,rgba(6,24,33,.38) 42%,rgba(6,24,33,.92) 92%,#061821 100%); }
.growth__photo img { position: relative; z-index: 2; width: 100%; height: 100%; margin-left: auto; object-fit: contain; object-position: right bottom; clip-path: none; filter: drop-shadow(0 24px 20px rgba(0,0,0,.3)); }
.growth__quote { z-index: 4; left: 54%; bottom: 6px; width: min(650px,78%); padding: 12px 22px; background: rgba(6,24,33,.88); border-top: 1px solid var(--red); color: #d8e5e9; font-size: 12px; font-weight: 500; }

.cta { grid-template-columns: .72fr 1.28fr; grid-template-areas: "content gallery"; overflow: hidden; }
.cta__content { min-width: 0; }
.cta__gallery { grid-area: gallery; min-width: 0; min-height: 0; height: 560px; align-self: center; display: grid; grid-template-columns: .95fr 1.62fr 1.14fr; gap: clamp(14px,1.4vw,24px); padding: 20px 32px 20px 0; overflow: hidden; }
.cta__gallery figure { min-width: 0; margin: 0; overflow: hidden; background: #102b37; clip-path: polygon(14% 0,100% 0,86% 100%,0 100%); }
.cta__gallery figure:first-child { clip-path: polygon(22% 0,100% 0,84% 100%,0 100%); }
.cta__gallery figure:last-child { clip-path: polygon(16% 0,100% 0,100% 100%,0 100%); }
.cta__gallery img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.92) contrast(1.04); }
.cta__gallery figure:first-child img { object-position: 50% 48%; }
.cta__gallery figure:nth-child(2) img { object-position: 50% 38%; }
.cta__gallery figure:last-child img { object-position: 66% center; }

@media (max-width: 1050px) {
  .site-header .brand img { width: 104px; height: 104px; }
  .main-nav { margin-left: 140px; }
  .header-location { display: none; }
  .directions__logo { width: 145px; height: 145px; }
}

@media (max-width: 760px) {
  .site-header { height: 70px; }
  .site-header .brand { top: 8px; left: 20px; }
  .site-header .brand img { width: 52px; height: 52px; }
  .main-nav { margin-left: 0; }
  .hero { height: auto; padding-top: 70px; min-height: auto; }
  .hero__copy { padding-top: 62px; }
  .hero h1 { font-size: clamp(44px, 13.2vw, 62px); }
  .hero::before { display: none; }
  .hero__media { display: block; position: relative; inset: auto; width: 100%; height: 480px; clip-path: polygon(0 7%,25% 0,45% 5%,67% 0,100% 6%,100% 100%,0 100%); overflow: hidden; }
  .hero__media > img { display: block; }
  .hero__paw { display: none; }
  .directions.section { display: block; padding-top: 70px; }
  .directions .section-heading { display: grid; }
  .directions .section-heading h2 { font-size: 30px; line-height: .96; overflow-wrap: normal; word-break: normal; }
  .direction, .direction--bio { min-height: 760px; }
  .direction__body, .direction--bio .direction__body { width: 100%; min-height: 0; padding: 35px 0; margin: 0; }
  .direction__photo, .direction--bio .direction__photo { position: absolute; width: 100%; height: 390px; inset: auto 0 0; }
  .direction--fight .direction__photo, .direction--bio .direction__photo { left: 0; right: 0; width: 100%; height: 400px; }
  .direction--fight .direction__photo { -webkit-mask-image: radial-gradient(ellipse 92% 86% at 56% 55%,#000 0 62%,transparent 100%); mask-image: radial-gradient(ellipse 92% 86% at 56% 55%,#000 0 62%,transparent 100%); }
  .direction--bio .direction__photo { -webkit-mask-image: radial-gradient(ellipse 92% 86% at 44% 55%,#000 0 62%,transparent 100%); mask-image: radial-gradient(ellipse 92% 86% at 44% 55%,#000 0 62%,transparent 100%); }
  .direction--fight .direction__photo::after, .direction--bio .direction__photo::after { display: none; }
  .direction--fight .direction__photo img { transform: none; }
  .directions__logo { display: none; }
  .growth { padding-top: 70px; }
  .growth { display: block; }
  .growth__line { display: grid; margin: 55px 0 40px; padding-left: 25px; }
  .growth__line::before { left: 8px; }
  .stage { padding: 0 0 35px 28px; }
  .stage::before { left: -25px; }
  .growth__photo { height: 460px; margin-top: 0; overflow: hidden; }
  .growth__photo img { width: 172%; max-width: none; margin-left: -36%; object-fit: contain; object-position: center bottom; }
  .growth__photo::after { inset: 0; height: auto; background: linear-gradient(90deg,#061821 0,rgba(6,24,33,.82) 7%,transparent 24%,transparent 76%,rgba(6,24,33,.82) 93%,#061821 100%),linear-gradient(180deg,transparent 52%,rgba(6,24,33,.28) 72%,rgba(6,24,33,.9) 94%,#061821 100%); }
  .growth__quote { width: 100%; bottom: -10px; font-size: 12px; }
  .coach.section { grid-template-columns: 1fr; grid-template-areas: "content" "portrait"; }
  .coach__content { padding: 70px 20px; }
  .coach__portrait { height: 470px; min-height: 0; margin: 0; clip-path: polygon(0 6%,25% 0,50% 5%,75% 0,100% 6%,100% 100%,0 100%); }
  .schedule .day-group { padding: 24px 18px; }
  .schedule .day-group > div { grid-template-columns: minmax(108px,120px) minmax(0,1fr); gap: 14px; }
  .cta { grid-template-columns: 1fr; grid-template-areas: "content" "gallery"; }
  .cta__gallery { min-height: 0; height: auto; grid-template-columns: 1fr; padding: 0 20px 28px; gap: 12px; overflow: visible; }
  .cta__gallery figure { min-height: 0; height: 300px; clip-path: polygon(6% 0,100% 0,94% 100%,0 100%); }
  .cta__gallery figure:first-child { height: 360px; clip-path: polygon(8% 0,100% 0,94% 100%,0 100%); }
  .cta__gallery figure:last-child { clip-path: polygon(6% 0,100% 0,100% 100%,0 100%); }
}
