/* Homepage composition: real academy photography, restrained red accents, and clear training paths. */
.eyebrow { display: flex; align-items: center; gap: 10px; margin: 0 0 22px; font: 700 10px/1.6 var(--font-body); letter-spacing: .15em; text-transform: uppercase; }
.eyebrow > span { width: 7px; height: 7px; background: var(--color-red); }
.home-hero { position: relative; isolation: isolate; overflow: hidden; background: #101212; }
.home-hero__photo { position: absolute; z-index: -2; inset: 0 0 0 37%; overflow: hidden; mask-image: linear-gradient(90deg,transparent,#000 16%); }
.home-hero__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 59% center; filter: saturate(.45) contrast(1.1); }
.home-hero::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg,#101212 12%,#101212ef 32%,#10121267 60%,#1012121a 100%),linear-gradient(0deg,#101212 0%,transparent 35%,#10121233); }
.home-hero::after { content: ''; width: 6px; height: 110px; background: var(--color-red); position: absolute; top: 70px; left: 0; }
.home-hero__inner { display: grid; grid-template-columns: 1.1fr 1fr; align-items: end; min-height: 615px; padding: 64px 0 52px; width: min(calc(100% - var(--page-gutter) * 2),var(--page-max)); }
.home-hero__copy { position: relative; z-index: 1; }
.home-hero .eyebrow { color: #d2d3cb; }
.home-hero h1 { margin: 0; font: 700 clamp(68px,7.1vw,110px)/.9 var(--font-display); letter-spacing: -.025em; color: #f5f2eb; }
.home-hero h1 > span { color: #f04a42; white-space: nowrap; }
.home-hero__description { max-width: 405px; margin: 27px 0; color: #c3c6c0; font-size: 13px; line-height: 1.8; }
.home-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.home-hero__actions .button { min-height: 49px; font-size: 10px; padding: 14px 22px; letter-spacing: .07em; }
.home-hero__actions .button span { margin-left: 14px; font-size: 18px; }
.home-hero__actions .button--bone { border-color: #686d65; background: #14161544; }
.home-hero__actions .button--bone:hover { background: #f5f2eb; }
.home-hero__beginner { display: flex; align-items: center; gap: 9px; width: fit-content; margin-top: 22px; font-size: 11px; color: #c3c6c0; }
.home-hero__beginner span { color: #ef6259; font-size: 17px; }
.home-hero__beginner:hover { color: white; }
.home-hero__caption { justify-self: end; display: grid; gap: 12px; margin-bottom: 18px; padding: 20px; border-left: 2px solid #ec4941; background: #12131388; backdrop-filter: blur(3px); }
.home-hero__caption > span:nth-child(2) { font: 600 26px/1 var(--font-display); letter-spacing: .03em; }
.caption-index { color: #d2d2cb; font-size: 8px; letter-spacing: .14em; }
.hero-bottom { display: flex; align-items: center; justify-content: space-between; gap: 15px; width: min(calc(100% - var(--page-gutter) * 2),var(--page-max)); border-top: 1px solid #ffffff24; padding: 19px 0; color: #aeb3ab; font-size: 10px; letter-spacing: .04em; }
.hero-bottom a { display: inline-flex; gap: 24px; color: #e0e1d9; }
.discipline-band { background: var(--color-red); color: white; padding: 20px var(--page-gutter); }
.discipline-band > div { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.discipline-band span { font: 600 clamp(17px,2vw,26px)/1 var(--font-display); letter-spacing: .1em; }
.discipline-band i { font-style: normal; opacity: .4; }
.home-section { padding: 88px var(--page-gutter); }
.home-section h2, .home-visit h2 { margin: 0; font: 700 clamp(42px,4.5vw,68px)/.97 var(--font-display); letter-spacing: -.015em; }
.home-section-head { display: grid; grid-template-columns: 1.1fr 1fr; align-items: end; gap: 40px; margin-bottom: 40px; }
.home-section-head > div:last-child { max-width: 360px; justify-self: end; }
.home-section-head p:not(.eyebrow) { font-size: 13px; line-height: 1.8; margin: 0 0 20px; }
.home-section .eyebrow { color: var(--color-red-deep); margin-bottom: 16px; }
.home-training { color: #202420; background: var(--color-bone); }
.training-cards { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; }
.training-card { min-width: 0; background: #fffdf8; border: 1px solid #dcdcd2; transition: box-shadow .2s; }
.training-card:hover { box-shadow: 0 12px 24px #20242016; }
.training-card__image { position: relative; height: 216px; overflow: hidden; background: #252726; }
.training-card__image img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.7); transition: transform .35s; }
.training-card:hover img { transform: scale(1.035); }
.training-card__image > span { position: absolute; top: 14px; left: 14px; width: 30px; height: 30px; display: grid; place-items: center; color: white; background: #141615b3; border: 1px solid #ffffff44; font-size: 9px; }
.training-card__copy { padding: 25px; }
.training-card__copy .eyebrow { font-size: 8px; letter-spacing: .12em; margin-bottom: 10px; }
.training-card h3 { display: flex; align-items: center; justify-content: space-between; gap: 10px; font: 700 clamp(23px,2.3vw,31px)/1.05 var(--font-display); margin: 0 0 14px; }
.training-card h3 span { color: var(--color-red); font: 24px var(--font-body); }
.training-card__copy > p:last-child { margin: 0; color: #61675d; font-size: 12px; line-height: 1.8; }
.more-training { margin-top: 28px; padding-top: 26px; border-top: 1px solid #d4d6cc; display: flex; flex-wrap: wrap; align-items: center; gap: 16px 27px; }
.more-training > span { color: #6f7369; font-size: 10px; margin-right: auto; }
.more-training a { font-size: 11px; font-weight: 700; }
.more-training a:hover { color: var(--color-red-deep); }
.home-culture { background: #1b1e1c; }
.culture-grid { display: grid; grid-template-columns: 1.05fr 1fr; gap: 70px; align-items: center; }
.culture-photo { position: relative; padding-bottom: 30px; }
.culture-photo img { width: 100%; height: 450px; object-fit: cover; object-position: 48% center; filter: saturate(.5); }
.culture-photo::before { content: ''; position: absolute; top: -12px; left: -12px; height: 80px; width: 80px; border-top: 3px solid var(--color-red); border-left: 3px solid var(--color-red); }
.culture-photo > div { position: absolute; bottom: 0; left: 24px; right: -20px; padding: 22px 20px; background: var(--color-red); display: flex; justify-content: space-between; align-items: center; gap: 16px; color: white; }
.culture-photo > div > span:first-child { font: 600 24px var(--font-display); }
.culture-photo > div > span:last-child { font-size: 8px; letter-spacing: .12em; }
.culture-copy .eyebrow { color: var(--color-red-bright); }
.culture-copy h2 { font-size: clamp(38px,3.8vw,56px); }
.culture-copy h2 > span { color: #b1b8a9; }
.culture-copy > p:not(.eyebrow) { color: #b7beb3; font-size: 13px; line-height: 1.85; margin: 22px 0; }
.culture-values { display: grid; margin: 20px 0 25px; }
.culture-values > div { display: flex; align-items: flex-start; gap: 17px; padding: 16px 0; border-top: 1px solid #ffffff18; }
.culture-values > div > span { font-size: 10px; color: #ef6259; padding-top: 3px; }
.culture-values p { margin: 0; color: #aab3a5; font-size: 11px; line-height: 1.7; }
.culture-values strong { display: block; font-size: 13px; font-weight: 600; color: #e9ece2; margin-bottom: 4px; }
.culture-copy .arrow-link { color: #ff7267; font-size: 10px; white-space: normal; }
.home-start { background: #f5f2eb; color: #202420; }
.home-start .home-section-head { grid-template-columns: 1fr auto; }
.home-start h2 { font-size: clamp(36px,4vw,58px); }
.home-start .button { align-self: end; margin-bottom: 4px; }
.start-steps { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); margin-top: 40px; border-top: 1px solid #cfd3c7; border-bottom: 1px solid #cfd3c7; }
.start-steps article { padding: 30px 32px 32px 0; }
.start-steps article + article { padding-left: 32px; border-left: 1px solid #cfd3c7; }
.start-steps article > span { color: #b52e28; font-size: 11px; }
.start-steps h3 { margin: 22px 0 10px; font: 600 28px/1 var(--font-display); }
.start-steps p { margin: 0; color: #646c5f; font-size: 12px; line-height: 1.8; max-width: 270px; }
.home-schedule-link { display: flex; flex-wrap: wrap; gap: 16px; justify-content: space-between; margin-top: 28px; font-size: 12px; }
.home-schedule-link > span { color: #676f61; }
.home-schedule-link a { color: #a92d27; font-weight: 700; }
.home-schedule-link a > span { margin-left: 16px; }
.home-voices { background: #232624; }
.voices-grid { display: grid; grid-template-columns: .85fr 1.15fr; align-items: center; gap: 80px; }
.home-voices .eyebrow { color: var(--color-red-bright); }
.home-voices h2 { font-size: clamp(40px,4.5vw,62px); }
.home-voices .arrow-link { color: #e2e5da; font-size: 10px; margin-top: 25px; }
.voices-grid figure { margin: 0; position: relative; border-left: 1px solid #4b5048; padding-left: 45px; }
.quote-mark { color: #e24b41; font: 95px/.5 Georgia,serif; }
.voices-grid blockquote { margin: 18px 0 28px; font-size: clamp(17px,1.8vw,23px); line-height: 1.7; color: #eceee5; }
.voices-grid figcaption { display: flex; align-items: center; gap: 12px; }
.review-initials { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid #696f63; border-radius: 50%; font-size: 11px; color: #c4cabc; }
.voices-grid figcaption strong { display: block; font-size: 11px; margin-bottom: 4px; }
.voices-grid figcaption div > span { font-size: 9px; color: #a5afa0; }
.home-visit { background: var(--color-red); color: white; padding: 65px var(--page-gutter); }
.home-visit > .container { display: flex; justify-content: space-between; align-items: center; gap: 50px; }
.home-visit h2 { font-size: clamp(60px,7vw,100px); }
.home-visit .eyebrow { color: #ffd6d2; font-size: 9px; }
.home-visit__details { max-width: 310px; width: 100%; }
.home-visit__details p { font-size: 13px; line-height: 1.8; color: #ffe9e5; margin: 0 0 15px; }
.visit-phone { display: block; width: fit-content; font: 600 29px var(--font-display); margin-bottom: 25px; }
.home-visit .button { background: #151816; color: white; border: 1px solid #151816; width: 100%; justify-content: space-between; padding: 18px 20px; }
.home-visit .button:hover { background: #292e28; }
@media (min-width: 1600px) { .home-hero__inner { min-height: 680px; } }
@media (max-width: 1000px) {
  .home-hero__inner { grid-template-columns: 1fr .7fr; min-height: 590px; }
  .home-hero h1 { font-size: clamp(63px,8vw,84px); }
  .home-hero__caption { padding: 14px; }
  .culture-grid { gap: 42px; }
  .training-cards { gap: 14px; }
  .training-card__image { height: 185px; }
  .training-card__copy { padding: 20px; }
}
@media (max-width: 760px) {
  .home-hero__inner { grid-template-columns: 1fr; padding: 58px 0 40px; min-height: 590px; }
  .home-hero__photo { inset: 0; opacity: .6; }
  .home-hero::before { background: linear-gradient(90deg,#101212ed,#10121266),linear-gradient(0deg,#101212,transparent 65%); }
  .home-hero h1 { font-size: clamp(66px,12vw,92px); }
  .home-hero__caption { display: none; }
  .home-hero__description { max-width: 360px; }
  .home-section { padding-block: 60px; }
  .home-section-head, .culture-grid, .voices-grid { grid-template-columns: 1fr; gap: 28px; }
  .home-section-head > div:last-child { max-width: 440px; justify-self: start; }
  .home-start .home-section-head { grid-template-columns: 1fr; }
  .home-start .button { justify-self: start; }
  .culture-photo { max-width: 560px; }
  .culture-photo img { height: 330px; }
  .culture-photo > div { right: 0; }
  .culture-copy { padding-top: 10px; }
  .training-cards { grid-template-columns: 1fr; gap: 22px; }
  .training-card { display: grid; grid-template-columns: 1fr 1.2fr; }
  .training-card__image { height: 100%; min-height: 210px; }
  .training-card h3 { font-size: 29px; }
  .discipline-band { padding-block: 17px; }
  .discipline-band > div { gap: 10px; }
  .discipline-band span { font-size: 17px; letter-spacing: .04em; }
  .start-steps article { padding-right: 18px; }
  .start-steps article + article { padding-left: 18px; }
  .voices-grid figure { padding: 30px 0 0; border-left: none; border-top: 1px solid #4b5048; margin-top: 10px; }
  .home-visit > .container { align-items: flex-start; }
}
@media (max-width: 480px) {
  .home-hero__inner { padding: 44px 0 32px; min-height: 575px; }
  .home-hero h1 { font-size: clamp(54px,14.8vw,72px); }
  .home-hero .eyebrow { font-size: 8px; letter-spacing: .12em; }
  .home-hero__description { font-size: 12px; line-height: 1.85; }
  .home-hero__actions { gap: 10px; }
  .home-hero__actions .button { min-height: 46px; font-size: 9px; padding: 13px 15px; }
  .home-hero__actions .button span { margin-left: 5px; }
  .hero-bottom { font-size: 8px; gap: 12px; }
  .hero-bottom a { gap: 8px; white-space: nowrap; }
  .discipline-band > div { flex-wrap: wrap; justify-content: center; gap: 10px 15px; }
  .discipline-band span { font-size: 15px; }
  .discipline-band i { font-size: 12px; }
  .training-card { display: block; }
  .training-card__image { height: 215px; }
  .training-card__copy { padding: 25px; }
  .more-training { gap: 15px 22px; }
  .more-training > span { flex-basis: 100%; }
  .culture-photo img { height: 290px; }
  .culture-photo > div { padding: 18px 14px; left: 14px; }
  .culture-photo > div > span:first-child { font-size: 20px; }
  .culture-photo > div > span:last-child { font-size: 7px; }
  .start-steps { grid-template-columns: 1fr; }
  .start-steps article, .start-steps article + article { padding: 25px 0; border-left: none; }
  .start-steps article + article { border-top: 1px solid #cfd3c7; }
  .start-steps h3 { margin-top: 12px; }
  .start-steps p { max-width: none; }
  .home-visit { padding-block: 50px; }
  .home-visit > .container { flex-direction: column; gap: 32px; }
  .home-visit__details { max-width: none; }
}
@media (prefers-reduced-motion: reduce) { .training-card__image img, .training-card { transition: none; } }
