/* ---------- Contact page ----------
   Banner sizes use --b (one px of the 1280px banner reference); the rest uses --u (one px of the 853px page reference). */
.ct-page { --b: calc(100vw / 1280); --u: min(calc(100vw / 853), 1.9px); --cg: #0b3d24; --cg2: #1e7a37; --inter: "Inter", system-ui, sans-serif; background: #fff; overflow: hidden; }

/* 1. hero: --r is one pixel of the 1718px-wide reference banner, drawn 780px tall (the reference is 916) */
.ct-hero { --r: calc(100vw / 1718); --cg: #0b3a20; position: relative; height: calc(780 * var(--r)); overflow: hidden; background: radial-gradient(calc(260 * var(--r)) calc(260 * var(--r)) at calc(420 * var(--r)) calc(700 * var(--r)), #f1f7f2, transparent 70%), #fff; }
.ct-hero__band, .ct-hero__gap, .ct-hero__photo { position: absolute; top: 0; left: 0; width: 100%; height: calc(658 * var(--r)); }
/* the photo sits in a "<" shaped frame: dark green band, a thin white gap, then the photo */
.ct-hero__band { background: var(--cg); clip-path: polygon(calc(930 * var(--r)) 0, 100% 0, 100% 100%, calc(958 * var(--r)) 100%, calc(830 * var(--r)) calc(353 * var(--r))); }
.ct-hero__gap { background: #fff; clip-path: polygon(calc(1092 * var(--r)) 0, 100% 0, 100% 100%, calc(988 * var(--r)) 100%, calc(856 * var(--r)) calc(353 * var(--r))); }
.ct-hero__photo { left: auto; right: 0; width: calc(1018 * var(--r)); object-fit: cover; object-position: 45% center; clip-path: polygon(calc(410 * var(--r)) 0, 100% 0, 100% 100%, calc(302 * var(--r)) 100%, calc(170 * var(--r)) calc(353 * var(--r))); }
.ct-hero__dots { position: absolute; left: calc(640 * var(--r)); top: calc(52 * var(--r)); width: calc(130 * var(--r)); height: calc(46 * var(--r)); background: radial-gradient(circle, #1d2a22 calc(2.6 * var(--r)), transparent calc(3.2 * var(--r))) 0 0 / calc(19 * var(--r)) calc(15 * var(--r)); }
.ct-hero__swoosh { position: absolute; left: 0; bottom: 0; width: calc(760 * var(--r)); height: calc(54 * var(--r)); border-top-right-radius: 100% 100%; background: var(--cg); box-shadow: 0 calc(-10 * var(--r)) 0 #2f7d45; }
.ct-hero__copy { position: absolute; z-index: 1; left: calc(66 * var(--r)); top: calc(30 * var(--r)); }
.ct-hero__logo { width: calc(430 * var(--r)); height: auto; }
.ct-hero__title { margin-top: calc(16 * var(--r)); font-family: "Barlow", sans-serif; font-size: calc(80 * var(--r)); font-weight: 800; line-height: calc(76 * var(--r)); letter-spacing: -.005em; text-transform: uppercase; color: #0a0a0a; }
.ct-hero__title span { display: block; color: var(--cg); }
.ct-hero__title small { display: block; font-size: .84em; }
.ct-hero__title::after { content: ""; display: block; width: calc(173 * var(--r)); height: calc(5 * var(--r)); margin-top: calc(16 * var(--r)); background: #0d5a2a; }
.ct-hero__text { margin-top: calc(14 * var(--r)); font-family: var(--inter); font-size: calc(26 * var(--r)); line-height: calc(35 * var(--r)); color: #1e2a24; }
.ct-hero__aud { display: flex; margin-top: calc(20 * var(--r)); }
.ct-hero__aud li { display: flex; flex-direction: column; align-items: center; gap: calc(8 * var(--r)); padding-inline: calc(18 * var(--r)); text-align: center; font-family: var(--inter); font-size: calc(17 * var(--r)); font-weight: 600; line-height: calc(23 * var(--r)); color: #111; }
.ct-hero__aud li:first-child { padding-left: 0; }
.ct-hero__aud li + li { border-left: calc(2 * var(--r)) solid #c9cfcb; }
.ct-hero__aud img { width: calc(62 * var(--r)); height: calc(62 * var(--r)); }
.ct-hero__btn { display: inline-flex; align-items: center; gap: calc(22 * var(--r)); height: calc(68 * var(--r)); margin-top: calc(24 * var(--r)); margin-left: calc(-3 * var(--r)); padding: 0 calc(36 * var(--r)) 0 calc(18 * var(--r)); border-radius: calc(8 * var(--r)); background: var(--cg); color: #fff; font-family: "Barlow", sans-serif; font-size: calc(28 * var(--r)); font-weight: 700; text-transform: uppercase; box-shadow: 0 calc(8 * var(--r)) calc(20 * var(--r)) rgba(11, 58, 32, .25); transition: transform .2s ease, filter .2s ease; }
.ct-hero__btn:hover { transform: translateY(-2px); filter: brightness(1.15); }
.ct-hero__btnico { display: grid; place-items: center; width: calc(42 * var(--r)); height: calc(42 * var(--r)); margin-right: calc(2 * var(--r)); border-radius: 50%; background: #fff; color: var(--cg); box-shadow: calc(22 * var(--r)) 0 0 calc(-21 * var(--r)) rgba(255, 255, 255, .5); }
.ct-hero__btnico .icon { width: calc(26 * var(--r)); height: calc(26 * var(--r)); stroke-width: 2.2; }
.ct-hero__strip { position: absolute; z-index: 1; left: calc(705 * var(--r)); right: 0; bottom: 0; display: flex; align-items: center; height: calc(122 * var(--r)); margin: 0; padding: 0 calc(60 * var(--r)) 0 calc(93 * var(--r)); border-top-left-radius: calc(70 * var(--r)) calc(122 * var(--r)); background: radial-gradient(circle, rgba(255, 255, 255, .45) calc(2.4 * var(--r)), transparent calc(3 * var(--r))) right calc(14 * var(--r)) center / calc(24 * var(--r)) calc(24 * var(--r)) no-repeat, var(--cg); list-style: none; color: #fff; font-family: var(--inter); }
.ct-hero__strip li { display: flex; align-items: center; gap: calc(16 * var(--r)); }
.ct-hero__strip li + li { margin-left: calc(38 * var(--r)); padding-left: calc(28 * var(--r)); border-left: calc(2 * var(--r)) solid rgba(255, 255, 255, .45); }
.ct-hero__strip li > span:first-child { display: grid; place-items: center; width: calc(56 * var(--r)); height: calc(56 * var(--r)); border: calc(2 * var(--r)) solid rgba(255, 255, 255, .9); border-radius: 50%; }
.ct-hero__strip .icon { width: calc(28 * var(--r)); height: calc(28 * var(--r)); }
.ct-hero__strip li > span:last-child { font-size: calc(18 * var(--r)); line-height: calc(28 * var(--r)); }
.ct-hero__strip a { display: block; font-size: calc(20 * var(--r)); font-weight: 600; }
.ct-hero__strip a:hover { text-decoration: underline; }

/* shared */
.ct-wrap { width: calc(800 * var(--u)); margin: calc(22 * var(--u)) auto 0; font-family: var(--inter); }
.ct-card { background: #fff; border: 1px solid #edf0ee; border-radius: calc(10 * var(--u)); box-shadow: 0 calc(3 * var(--u)) calc(12 * var(--u)) rgba(10, 60, 35, .07); }
.ct-ico { flex: none; width: calc(44 * var(--u)); height: calc(44 * var(--u)); border-radius: 50%; display: grid; place-items: center; background: var(--cg); color: #fff; }
.ct-ico .icon { width: calc(20 * var(--u)); height: calc(20 * var(--u)); }

/* 2. info cards */

/* 3. audiences + form */
.ct-main { display: grid; grid-template-columns: calc(434 * var(--u)) 1fr; gap: calc(9 * var(--u)); margin-top: calc(15 * var(--u)); }
.ct-aud { display: grid; grid-template-columns: 1fr 1fr; height: calc(289 * var(--u)); overflow: hidden; border-radius: calc(6 * var(--u)); }
.ct-aud__col { position: relative; background: #f7f8f7 no-repeat right bottom / 100% auto; }
.ct-aud__col--trainers { border-left: 1px solid #e3e7e4; }
.ct-aud__head { display: flex; align-items: center; gap: calc(12 * var(--u)); height: calc(46 * var(--u)); padding-left: calc(25 * var(--u)); background: var(--cg); color: #fff; font-size: calc(12.4 * var(--u)); font-weight: 700; text-transform: uppercase; }
.ct-aud__head .icon { width: calc(19 * var(--u)); height: calc(19 * var(--u)); }
.ct-aud__col--trainers .ct-aud__head { border-left: 1px solid rgba(255,255,255,.18); padding-left: calc(22 * var(--u)); }
.ct-aud ul { display: grid; gap: calc(20 * var(--u)); padding: calc(22 * var(--u)) calc(20 * var(--u)) 0 calc(23 * var(--u)); }
.ct-aud li { display: flex; gap: calc(11 * var(--u)); font-size: calc(10 * var(--u)); line-height: calc(17.5 * var(--u)); color: #222; }
.ct-tick { flex: none; width: calc(13 * var(--u)); height: calc(13 * var(--u)); margin-top: calc(2 * var(--u)); border-radius: 50%; display: grid; place-items: center; background: #2a8a3f; color: #fff; }
.ct-tick .icon { width: calc(9 * var(--u)); height: calc(9 * var(--u)); stroke-width: 4; }
.ct-msg { height: calc(289 * var(--u)); padding: calc(19 * var(--u)) calc(17 * var(--u)) 0; }
.ct-msg__title { display: flex; align-items: center; gap: calc(12 * var(--u)); padding-left: calc(8 * var(--u)); font-size: calc(12.4 * var(--u)); font-weight: 700; text-transform: uppercase; color: #111; }
.ct-msg__title .icon { width: calc(18 * var(--u)); height: calc(18 * var(--u)); }
.ct-form { display: grid; grid-template-columns: 1fr 1fr; gap: calc(8 * var(--u)) calc(7 * var(--u)); margin-top: calc(14 * var(--u)); }
.ct-field { width: 100%; height: calc(32 * var(--u)); padding: 0 calc(10 * var(--u)); border: 1px solid #dfe3e0; border-radius: calc(5 * var(--u)); background: #fff; font: inherit; font-size: calc(9.2 * var(--u)); color: #111; }
.ct-field::placeholder { color: #555; }
.ct-field:focus { outline: 2px solid #9fd6aa; outline-offset: 0; border-color: #2a8a3f; }
.ct-field--full { grid-column: 1 / -1; }
select.ct-field { appearance: none; -webkit-appearance: none; cursor: pointer; color: #555; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23555' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right calc(11 * var(--u)) center / calc(11 * var(--u)); }
select.ct-field:valid { color: #111; }
textarea.ct-field { height: calc(54 * var(--u)); padding-top: calc(9 * var(--u)); resize: vertical; }
.ct-send { grid-column: 1 / -1; display: inline-flex; align-items: center; justify-content: center; gap: calc(14 * var(--u)); height: calc(34 * var(--u)); margin-top: calc(2 * var(--u)); border: 0; border-radius: calc(5 * var(--u)); background: var(--cg); color: #fff; font: inherit; font-size: calc(10.4 * var(--u)); font-weight: 600; letter-spacing: .03em; text-transform: uppercase; transition: filter .2s; }
.ct-send:hover { filter: brightness(1.2); }
.ct-send .icon { width: calc(14 * var(--u)); height: calc(14 * var(--u)); }
.ct-notice { grid-column: 1 / -1; font-size: calc(9.5 * var(--u)); font-weight: 600; color: var(--cg2); }

/* 4. feature strip */
.ct-strip { display: grid; grid-template-columns: 201fr 204fr 195fr 200fr; height: calc(90 * var(--u)); margin-top: calc(13 * var(--u)); align-items: center; border-radius: calc(12 * var(--u)); background: #f4f6f5; }
.ct-strip__item { display: flex; align-items: center; gap: calc(11 * var(--u)); padding-left: calc(26 * var(--u)); }
.ct-strip__item + .ct-strip__item { border-left: 1px solid #d9dfdb; }
.ct-strip h3 { font-size: calc(10.2 * var(--u)); font-weight: 700; text-transform: uppercase; color: #111; white-space: nowrap; }
.ct-strip p { margin-top: calc(5 * var(--u)); font-size: calc(9.6 * var(--u)); line-height: calc(15.5 * var(--u)); color: #333; }

/* 5. faq */
.ct-faq { margin-top: calc(14 * var(--u)); text-align: center; }
.ct-faq__eyebrow { font-size: calc(9.5 * var(--u)); font-weight: 700; text-transform: uppercase; color: var(--cg2); }
.ct-faq h2 { margin-top: calc(3 * var(--u)); font-size: calc(19.5 * var(--u)); font-weight: 700; letter-spacing: -.01em; color: #111; }
.ct-faq__grid { display: grid; grid-template-columns: repeat(3, calc(240 * var(--u))); justify-content: space-between; margin: calc(12 * var(--u)) calc(23 * var(--u)) 0; text-align: left; }
.ct-qa { position: relative; display: flex; gap: calc(10 * var(--u)); height: calc(77 * var(--u)); padding: calc(13 * var(--u)) calc(14 * var(--u)) 0 calc(15 * var(--u)); }
.ct-qa__q { font-size: calc(13.5 * var(--u)); font-weight: 800; color: var(--cg2); line-height: 1.2; }
.ct-qa h3 { margin-top: calc(2 * var(--u)); font-size: calc(9.8 * var(--u)); font-weight: 700; color: #111; }
.ct-qa p { margin-top: calc(7 * var(--u)); font-size: calc(9.1 * var(--u)); line-height: calc(15 * var(--u)); color: #333; white-space: nowrap; }
.ct-qa__art { position: absolute; right: calc(12 * var(--u)); top: calc(20 * var(--u)); width: calc(34 * var(--u)); height: calc(34 * var(--u)); color: #b9c4bd; stroke-width: 1.2; }

/* 6. cta */
.ct-cta { position: relative; display: flex; justify-content: center; text-align: center; height: calc(128 * var(--u)); margin-top: calc(18 * var(--u)); border-radius: calc(10 * var(--u)); background: radial-gradient(calc(300 * var(--u)) calc(140 * var(--u)) at 85% 60%, #13502f, transparent), #0b3a22; color: #fff; }
.ct-cta__body { position: relative; z-index: 1; padding-top: calc(19 * var(--u)); }
.ct-cta h2 { font-size: calc(19.5 * var(--u)); font-weight: 700; letter-spacing: -.01em; }
.ct-cta p { margin-top: calc(6 * var(--u)); font-size: calc(10.2 * var(--u)); color: rgba(255,255,255,.9); }
.ct-cta__btns { display: flex; justify-content: center; gap: calc(12 * var(--u)); margin-top: calc(12 * var(--u)); }
.ct-cta__btn { display: inline-flex; align-items: center; justify-content: center; gap: calc(22 * var(--u)); width: calc(149 * var(--u)); height: calc(30 * var(--u)); border-radius: calc(4 * var(--u)); background: #2e7d32; color: #fff; font-size: calc(9.6 * var(--u)); font-weight: 600; text-transform: uppercase; transition: transform .2s, filter .2s; }
.ct-cta__btn--white { width: calc(156 * var(--u)); background: #fff; color: #111; }
.ct-cta__btn:hover { transform: translateY(-1px); filter: brightness(1.1); }
.ct-cta__btn .icon { width: calc(12 * var(--u)); height: calc(12 * var(--u)); stroke-width: 3; }
.ct-cta__art { position: absolute; right: calc(80 * var(--u)); bottom: 0; width: calc(150 * var(--u)); color: rgba(255,255,255,.08); }

/* 7. bottom bar */
.ct-bar { margin-top: calc(10 * var(--u)); background: var(--cg); color: #fff; font-family: var(--inter); }
.ct-bar__inner { display: flex; align-items: center; justify-content: space-between; width: calc(806 * var(--u)); height: calc(50 * var(--u)); margin-inline: auto; font-size: calc(10.4 * var(--u)); font-weight: 600; }
.ct-bar__inner > * { display: inline-flex; align-items: center; gap: calc(10 * var(--u)); }
.ct-bar__inner .icon { width: calc(20 * var(--u)); height: calc(20 * var(--u)); stroke-width: 1.6; }
.ct-bar__site { height: calc(34 * var(--u)); padding-left: calc(30 * var(--u)); border-left: 1px solid rgba(255,255,255,.3); font-size: calc(12.4 * var(--u)); }

/* tablet & mobile */
@media (max-width: 900px) {
  .ct-hero { --r: 1px; height: auto; display: flex; flex-direction: column; }
  .ct-hero__band, .ct-hero__gap, .ct-hero__dots, .ct-hero__swoosh { display: none; }
  .ct-hero__copy { position: static; padding: 24px 16px 4px; }
  .ct-hero__logo { width: min(320px, 80%); }
  .ct-hero__title { margin-top: 20px; font-size: clamp(2.1rem, 8vw, 3.2rem); line-height: 1; }
  .ct-hero__title::after { width: 110px; height: 4px; margin-top: 16px; }
  .ct-hero__text { margin-top: 14px; font-size: 1.05rem; line-height: 1.5; } .ct-hero__text br { display: none; }
  .ct-hero__aud { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 22px; }
  .ct-hero__aud li { gap: 8px; padding-inline: 6px; font-size: .78rem; line-height: 1.3; } .ct-hero__aud li + li { border-left-width: 1px; }
  .ct-hero__aud img { width: 52px; height: 52px; }
  .ct-hero__btn { height: 54px; gap: 14px; margin: 24px 0 0; padding: 0 24px 0 12px; font-size: 1.15rem; }
  .ct-hero__btnico { width: 34px; height: 34px; } .ct-hero__btnico .icon { width: 18px; height: 18px; }
  .ct-hero__photo { position: static; order: 2; width: 100%; height: auto; aspect-ratio: 3 / 2; margin-top: 24px; clip-path: none; }
  .ct-hero__strip { position: static; order: 3; flex-direction: column; align-items: flex-start; gap: 14px; height: auto; padding: 20px 16px; border-radius: 0; background: var(--cg); }
  .ct-hero__strip li + li { margin-left: 0; padding-left: 0; border-left: 0; }
  .ct-hero__strip li > span:first-child { width: 42px; height: 42px; border-width: 1.5px; } .ct-hero__strip .icon { width: 20px; height: 20px; }
  .ct-hero__strip li > span:last-child { font-size: .85rem; line-height: 1.4; } .ct-hero__strip a { font-size: .95rem; }
  .ct-page { --u: 1px; }
  .ct-wrap { width: auto; margin-top: 28px; padding-inline: 16px; }
  .ct-ico, .ct-strip .ct-ico { width: 44px; height: 44px; } .ct-ico .icon { width: 20px; height: 20px; }
  .ct-main { grid-template-columns: 1fr; gap: 16px; margin-top: 16px; }
  .ct-aud, .ct-msg { height: auto; }
  .ct-aud ul { gap: 14px; padding: 18px 16px 22px; }
  .ct-aud__head { height: 46px; padding-left: 16px; font-size: .85rem; } .ct-aud li { font-size: .85rem; line-height: 1.4; }
  .ct-tick { width: 16px; height: 16px; } .ct-tick .icon { width: 10px; height: 10px; }
  .ct-msg { padding: 20px 16px; } .ct-msg__title { font-size: .9rem; }
  .ct-field { height: 44px; font-size: .9rem; padding-inline: 12px; } textarea.ct-field { height: 100px; padding-top: 12px; }
  .ct-send { height: 46px; font-size: .88rem; } .ct-notice { font-size: .85rem; }
  .ct-strip { height: auto; grid-template-columns: 1fr 1fr; row-gap: 18px; padding-block: 18px; }
  .ct-strip__item { padding-left: 16px; } .ct-strip__item:nth-child(3) { border-left: 0; }
  .ct-strip h3 { font-size: .76rem; white-space: normal; } .ct-strip p { font-size: .8rem; line-height: 1.4; } .ct-strip p br { display: none; }
  .ct-faq { margin-top: 32px; } .ct-faq__eyebrow { font-size: .72rem; } .ct-faq h2 { font-size: 1.5rem; }
  .ct-faq__grid { grid-template-columns: 1fr; gap: 12px; margin: 16px 0 0; }
  .ct-qa { height: auto; padding: 16px 56px 16px 16px; } .ct-qa__q { font-size: 1.05rem; } .ct-qa h3 { font-size: .9rem; } .ct-qa p { font-size: .84rem; line-height: 1.45; white-space: normal; } .ct-qa p br { display: none; }
  .ct-cta { height: auto; margin-top: 28px; padding: 24px 20px; flex-direction: column; align-items: center; text-align: center; }
  .ct-cta__body { margin: 0; padding: 0; } .ct-cta h2 { font-size: 1.4rem; } .ct-cta p { font-size: .9rem; }
  .ct-cta__btns { flex-wrap: wrap; justify-content: center; margin-top: 16px; }
  .ct-cta__btn, .ct-cta__btn--white { width: auto; height: 44px; padding-inline: 18px; font-size: .82rem; gap: 12px; }
  .ct-bar { margin-top: 28px; }
  .ct-bar__inner { width: auto; height: auto; flex-wrap: wrap; justify-content: center; gap: 14px 22px; padding: 16px; font-size: .82rem; }
  .ct-bar__site { height: auto; padding-left: 0; border-left: 0; font-size: .9rem; }
}
@media (max-width: 560px) {
  .ct-hero__aud { grid-template-columns: 1fr 1fr; row-gap: 16px; } .ct-hero__aud li:nth-child(3) { border-left: 0; }
  .ct-strip__item + .ct-strip__item { border-left: 0; }
  .ct-aud__col--trainers { border-left: 0; border-top: 1px solid #e3e7e4; }
}
