/* TCCA Figma build. Desktop values are 1:1 with the Figma 1920 frames (content box 1440). */

@font-face { font-family: "Oswald"; src: url(fonts/oswald.woff2) format("woff2"); font-weight: 200 700; font-display: swap; }
@font-face { font-family: "Manrope"; src: url(fonts/manrope.woff2) format("woff2"); font-weight: 200 800; font-display: swap; }
@font-face { font-family: "Mona Sans"; src: url(fonts/monasans.woff2) format("woff2"); font-weight: 200 900; font-display: swap; }
@font-face { font-family: "Inter"; src: url(fonts/inter.woff2) format("woff2"); font-weight: 100 900; font-display: swap; }
@font-face { font-family: "Poppins"; src: url(fonts/poppins-400.woff2) format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Poppins"; src: url(fonts/poppins-500.woff2) format("woff2"); font-weight: 500; font-display: swap; }
@font-face { font-family: "Poppins"; src: url(fonts/poppins-600.woff2) format("woff2"); font-weight: 600; font-display: swap; }

:root {
	--green: #6A8002;
	--gold: #C2A34C;
	--ink: #231F20;
	--stone: #F2F2F0;
	--text: #3D3D3A;
	--muted: #6C706E;
	--wrap: 1440px;
	--gutter: 20px;
	--f-display: "Oswald", "Arial Narrow", sans-serif;
	--f-body: "Manrope", system-ui, sans-serif;
	--f-mona: "Mona Sans", system-ui, sans-serif;
	--f-ui: "Inter", system-ui, sans-serif;
	--f-meta: "Poppins", system-ui, sans-serif;
}

/* ---------- base ---------- */
:where(.tf) *, :where(.tf) *::before, :where(.tf) *::after { box-sizing: border-box; }
body.tf { margin: 0; background: #fff; color: var(--text); font: 400 16px/1.5 var(--f-body); -webkit-font-smoothing: antialiased; overflow-x: hidden; }
:where(.tf) img, :where(.tf) svg { display: block; max-width: 100%; }
:where(.tf) :is(h1, h2, h3, p, ul, ol) { margin: 0; padding: 0; }
:where(.tf) :is(ul, ol) { list-style: none; }
:where(.tf) a { color: inherit; text-decoration: none; }
:where(.tf) em { font-style: normal; color: var(--gold); }
:where(.tf) .ic { width: 1em; height: 1em; flex: none; }
.tf a:focus-visible, .tf button:focus-visible { outline: 3px solid var(--gold); outline-offset: 3px; }
.tf-wrap { width: min(var(--wrap), 100% - 2 * var(--gutter)); margin-inline: auto; }
.tf-skip { position: absolute; left: -9999px; top: 8px; z-index: 100; padding: 10px 16px; background: #fff; color: var(--ink); }
.tf-skip:focus { left: 8px; }

.tf-h2 { font: 600 64px/82px var(--f-display); letter-spacing: .2px; text-transform: uppercase; color: var(--ink); }
.tf-h2 em { font-weight: 700; }
.tf-eyebrow { display: flex; align-items: center; gap: 16px; font: 700 14px/17px var(--f-mona); letter-spacing: 1.5px; text-transform: uppercase; color: var(--green); }
.tf-eyebrow::after { content: ""; width: 90px; height: 1px; background: currentColor; }
.tf-eyebrow--light { color: #fff; }
.tf-eyebrow--light::after { width: 80px; background: var(--green); }

/* buttons */
.tf-btn { display: inline-flex; align-items: center; justify-content: center; padding: 18px 24px; border: 0; border-radius: 8px; background: var(--green); color: #fff; font: 600 16px/16px var(--f-display); letter-spacing: .5px; text-transform: uppercase; white-space: nowrap; cursor: pointer; transition: background-color .2s, color .2s, box-shadow .2s; }
.tf a.tf-btn { color: #fff; }
.tf-btn:hover { background: #586b01; }
.tf-btn--header { padding: 12px 16px; font-size: 16px; line-height: 24px; letter-spacing: .16px; }
.tf-btn--lg { padding: 16px 32px; border-radius: 12px; letter-spacing: .2px; }
.tf-btn--ghost { padding: 16px 32px; border: 2px solid #fff; background: transparent; }
.tf-btn--ghost:hover { background: #fff; }
.tf a.tf-btn--ghost:hover { color: var(--ink); }
.tf-btn--block { display: flex; width: 100%; }
.tf-btn--sm { padding: 19px 25px; border-radius: 6px; font-size: 14px; line-height: 14px; }
.tf-btn--outline { padding: 16.5px 22.5px; border: 1.5px solid var(--green); background: #fff; }
.tf a.tf-btn--outline { color: var(--green); }
.tf-btn--outline:hover { background: var(--green); }
.tf a.tf-btn--outline:hover { color: #fff; }
.tf-btn--xl { padding: 16px 30px; border-radius: 6px; font-size: 18px; line-height: 27px; letter-spacing: .72px; }
.tf-btn--gold { background: var(--gold); }
.tf a.tf-btn--gold { color: var(--ink); }
.tf-btn--gold:hover { background: #d4b660; }

/* ---------- header ---------- */
.tf-header { position: relative; z-index: 20; background: var(--stone); border-bottom: 1px solid #D6D6D2; }
.tf-header__in { display: flex; align-items: center; height: 84px; }
.tf-header__logo img { width: 186px; height: 64px; object-fit: contain; }
.tf-nav { display: flex; align-items: center; gap: 34px; margin-left: auto; }
.tf-nav ul { display: flex; gap: 25px; margin-top: -6px; }
.tf-nav ul a { position: relative; display: block; padding: 9px 12px; font: 500 16px/24px var(--f-ui); letter-spacing: -.32px; color: var(--muted); }
.tf-nav ul a:hover { color: var(--green); }
.tf-nav ul a.is-active { color: var(--green); }
.tf-nav ul li:first-child a.is-active { font-weight: 700; }
.tf-nav ul a.is-active::after { content: ""; position: absolute; left: 6px; right: -6px; bottom: 0; height: 2px; border-radius: 2px; background: var(--green); }
.tf-header__toggle { display: none; margin-left: auto; padding: 10px; border: 0; background: none; color: var(--ink); font-size: 26px; cursor: pointer; }
.tf-header__toggle .is-close { display: none; }

/* ---------- home: hero ---------- */
.hm-hero { position: relative; height: 929px; background: var(--ink) var(--bg) center top / cover no-repeat; color: #fff; }
.hm-hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, var(--ink) 30%, rgba(242, 242, 240, .05) 70%); }
.hm-hero__in { position: relative; display: flex; justify-content: space-between; height: 100%; }
.hm-hero__copy { padding-top: 230px; max-width: 720px; }
.hm-hero__title { padding: 9px 0 8px; font: 600 72px/90px var(--f-display); letter-spacing: .2px; text-transform: uppercase; color: #fff; }
.hm-hero__lead { margin-top: 0; font: 400 19px/24px var(--f-body); letter-spacing: .08px; color: #FEFEFE; }
.hm-hero__ctas { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 20px; margin-top: 32px; }

.hm-upcoming { align-self: flex-start; width: 570px; margin-top: 200px; padding: 36px 32px 28px; border-radius: 24px; background: #fff; box-shadow: 0 8px 32px rgba(0, 0, 0, .08); color: #111827; }
.hm-upcoming__title { display: flex; align-items: center; gap: 10px; font: 600 20px/26px var(--f-mona); letter-spacing: .08px; color: #1F2937; }
.hm-upcoming__title .ic { width: 22px; height: 22px; color: var(--green); }
.hm-upcoming__list { display: grid; gap: 22px; margin: 29px 0 24px; }
.hm-upcoming__item { display: flex; gap: 16px; }
.hm-date { display: flex; flex-direction: column; align-items: center; justify-content: center; width: 80px; height: 80px; flex: none; border-radius: 10px; background: var(--ink); font-family: var(--f-display); font-weight: 600; }
.hm-date__mon { font-size: 16px; line-height: 18px; letter-spacing: 1.28px; color: var(--gold); }
.hm-date__day { font-size: 34px; line-height: 38px; color: #fff; }
.hm-upcoming__body { padding-top: 13px; }
.hm-upcoming__name { display: block; font: 600 19px/24px var(--f-mona); letter-spacing: -.2px; color: #111827; }
.hm-meta { display: flex; flex-wrap: wrap; gap: 4px 14px; margin-top: 8px; font: 500 12.5px/22px var(--f-meta); letter-spacing: .08px; color: #6B7280; }
.hm-meta > span { display: inline-flex; align-items: center; gap: 14px; }
.hm-meta .ic { font-size: 13px; color: var(--green); }
.hm-upcoming__secure { display: flex; align-items: center; gap: 8px; padding-left: 121px; margin-top: 29px; font: 400 13.5px/14px var(--f-mona); letter-spacing: .08px; color: #4B5563; }
.hm-upcoming__secure .ic { font-size: 14px; color: var(--green); }
.hm-upcoming__pay { width: 480px; height: 36px; margin: 21px auto 0; }

/* ---------- home: courses ---------- */
.hm-courses { position: relative; z-index: 1; margin-top: -70px; padding: 60px 20px 0; border-radius: 80px 80px 0 0; background: var(--stone); }
.hm-courses__panel { position: relative; padding: 72px 0 11px; background: var(--stone); }
.hm-courses__head { display: grid; grid-template-columns: 1fr 440px; align-items: start; column-gap: 40px; padding-bottom: 18px; border-bottom: 2px solid var(--gold); }
.hm-courses__head .tf-h2 { grid-column: 1 / -1; margin-bottom: 28px; }
.hm-courses__intro { padding-top: 26px; }
.hm-courses__lead { font: 400 22px/28px var(--f-body); letter-spacing: .08px; color: var(--text); }
.hm-courses__note { margin-top: 10px; font: 400 20px/27px var(--f-body); color: var(--text); }
.hm-courses__note span { color: var(--green); margin-right: 4px; }
.hm-save { margin-bottom: 10px; display: flex; align-items: center; gap: 16px; padding: 14px 24px; border-radius: 8px; background: var(--ink); font-family: var(--f-display); font-weight: 600; text-transform: uppercase; }
.hm-save strong { font-size: 36px; line-height: 53px; font-weight: 600; color: var(--gold); white-space: nowrap; }
.hm-save span { font-size: 19px; line-height: 23px; color: #fff; }

.hm-courses__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; margin-top: 36px; }
.hm-course { display: grid; grid-template-columns: 309px 1fr; min-height: 291px; overflow: hidden; border: 1px solid #ECECEA; border-radius: 20px; background: #fff; box-shadow: 0 8px 30px -4px rgba(0, 0, 0, .07); }
.hm-course__img { width: 100%; height: 100%; object-fit: cover; object-position: 38% 50%; }
.hm-course__body { display: flex; flex-direction: column; padding: 20px 26px 23px 44px; }
.hm-course__title { font: 600 24px/29px var(--f-display); letter-spacing: .08px; text-transform: uppercase; color: #111827; }
.hm-course__desc { margin-top: 8px; font: 400 13.5px/20px var(--f-mona); letter-spacing: .08px; color: #4B5563; }
.hm-course__row { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-top: 8px; }
.hm-course__meta { display: flex; flex-wrap: wrap; gap: 12px; max-width: 230px; font: 500 12px/21px var(--f-meta); letter-spacing: .08px; color: #4B5563; }
.hm-course__meta li { display: inline-flex; align-items: center; gap: 13px; }
.hm-course__meta li.is-wide { flex-basis: 100%; }
.hm-course__meta .ic { font-size: 13px; color: var(--green); }
.hm-course__price { margin: 8px 8px 0 0; font: 600 34px/38px var(--f-display); color: var(--ink); text-align: right; }
.hm-course__btns { display: flex; gap: 9px; align-items: center; margin-top: auto; padding-top: 22px; }

/* ---------- home: steps ---------- */
.hm-steps { position: relative; z-index: 2; overflow: hidden; padding: 80px 0 40px; background: var(--ink); color: #fff; }
.hm-steps__tree { position: absolute; right: -60px; top: -42px; width: 600px; height: 650px; pointer-events: none; }
.hm-steps .tf-wrap { position: relative; }
.hm-steps__title { font-weight: 700; line-height: 64px; letter-spacing: -.5px; color: #fff; }
.hm-steps__lead { margin-top: 13px; font: 400 22px/24px var(--f-mona); letter-spacing: .08px; color: #C9C9C4; }
.hm-steps__grid { display: grid; grid-template-columns: repeat(2, 540px); gap: 52px 40px; margin-top: 64px; }
.hm-step { position: relative; display: flex; gap: 20px; height: 141px; padding: 17px; border: 2px solid var(--gold); border-radius: 16px; background: #fff; box-shadow: 0 8px 24px rgba(0, 0, 0, .35); }
.hm-step__num { position: absolute; left: -16px; top: -14px; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--gold); font: 600 20px/30px var(--f-display); color: var(--ink); }
.hm-step__icon { display: grid; place-items: center; width: 103px; height: 103px; flex: none; border: 1.5px solid var(--gold); border-radius: 10px; background: var(--ink); color: var(--gold); }
.hm-step__icon .ic { width: 62px; height: 62px; }
.hm-step__icon .ic-step-book { width: 62px; height: 62px; }
.hm-step__title { margin-top: 6px; font: 700 21px/25px var(--f-display); letter-spacing: .08px; text-transform: uppercase; color: #1E293B; }
.hm-step__text { margin-top: 8px; font: 400 17px/21px var(--f-mona); letter-spacing: .08px; color: #64748B; }
.hm-step__link { display: inline-flex; gap: 12px; margin-top: 12px; font: 400 17px/24px var(--f-mona); color: var(--green); }
.hm-step__link:hover { text-decoration: underline; }
.hm-steps__path { position: absolute; left: 60px; top: 306px; width: 600px; height: 52px; }
.hm-steps__arrow { position: absolute; left: 540px; width: 40px; height: 20px; }
.hm-steps__arrow--1 { top: 225px; }
.hm-steps__arrow--2 { top: 418px; }

/* ---------- home: audience ---------- */
.hm-audience { padding: 80px 0 90px; background: #fff; }
.hm-audience .tf-h2 { line-height: 95px; letter-spacing: 0; }
.hm-audience__lead { margin-top: 12px; font: 400 22px/30px var(--f-body); color: var(--text); }
.hm-audience__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 40px; margin-top: 44px; }
.hm-aud { display: flex; flex-direction: column; align-items: flex-start; gap: 18px; min-height: 486px; padding: 40px 40px 40px 44px; border-radius: 14px; }
.hm-aud--light { border: 1px solid #DEDEDA; background: var(--stone); }
.hm-aud--dark { background: var(--ink); }
.hm-aud__eyebrow { font: 700 14px/19px var(--f-body); letter-spacing: 1.96px; text-transform: uppercase; color: var(--green); }
.hm-aud__title { font: 600 40px/59px var(--f-display); color: var(--ink); }
.hm-aud__lead { font: 500 20px/27px var(--f-body); color: var(--green); }
.hm-aud__list { display: grid; gap: 12px; margin-bottom: 24px; }
.hm-aud__list li { position: relative; padding-left: 24px; font: 400 20px/27px var(--f-body); color: var(--text); }
.hm-aud__list li::before { content: ""; position: absolute; left: 0; top: 9px; width: 10px; height: 10px; border-radius: 50%; background: var(--green); }
.hm-aud--dark .hm-aud__eyebrow, .hm-aud--dark .hm-aud__lead { color: var(--gold); }
.hm-aud--dark .hm-aud__title { color: #fff; }
.hm-aud--dark .hm-aud__list li { color: #E8E8E4; }
.hm-aud--dark .hm-aud__list li::before { background: var(--gold); }
.hm-audience__photos { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; margin-top: 40px; }
.hm-audience__photos img { width: 100%; height: 260px; border-radius: 12px; object-fit: cover; }

/* ---------- home: team ---------- */
.hm-team { padding: 80px 0; background: var(--stone); }
.hm-team__in { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) 690px; gap: 60px; }
.hm-team__copy { padding-top: 79px; }
.hm-team__title { margin-top: 15px; padding: 9px 0; font: 700 54px/62px var(--f-display); letter-spacing: .08px; text-transform: uppercase; color: #2D3230; }
.hm-team__text { max-width: 620px; margin-top: 18px; font: 400 19px/26px var(--f-mona); letter-spacing: .08px; color: var(--muted); }
.hm-team__copy .tf-btn { margin-top: 28px; }
.hm-team__art { position: relative; width: 690px; height: 475px; justify-self: end; }
.hm-team__dots { position: absolute; left: 126px; top: 10px; width: 428px; height: 320px; }
.hm-team__face { position: absolute; width: 290px; height: 290px; border: 4px solid #fff; border-radius: 50%; object-fit: cover; object-position: 50% 50%; box-shadow: 0 10px 28px rgba(0, 0, 0, .07); }
.hm-team__face--1 { left: 0; top: 0; }
.hm-team__face--2 { left: 390px; top: 0; }
.hm-team__face--3 { left: 195px; top: 185px; box-shadow: 0 12px 32px rgba(0, 0, 0, .09); }

/* ---------- CTA band ---------- */
.tf-cta { position: relative; padding: 136px 0 123px; background: var(--ink) var(--bg) center / cover no-repeat; color: #fff; }
.tf-cta::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(12, 12, 12, .79) 27%, rgba(12, 12, 12, .55) 60%); }
.tf-cta .tf-wrap { position: relative; }
.tf-cta__title { margin-top: 9px; padding: 10px 0; font: 700 52px/57px var(--f-display); letter-spacing: .08px; text-transform: uppercase; color: #fff; }
.tf-cta__text { max-width: 760px; margin-top: -3px; font: 400 19px/26px var(--f-mona); letter-spacing: .08px; color: rgba(255, 255, 255, .85); }
.tf-cta .tf-btn { margin-top: 20px; }

/* ---------- footer ---------- */
.tf-footer { background: var(--ink); color: #D6D6D2; }
.tf-quick { position: relative; padding: 66px 0; border-radius: 0 0 40px 40px; background: #FEFEFE; }
.tf-quick::before { content: ""; position: absolute; inset: 0; border-radius: inherit; background: url(img/texture-topo.webp) center / 100% 100% no-repeat; opacity: .8; pointer-events: none; }
.tf-quick__in { position: relative; display: flex; justify-content: space-between; gap: 24px; }
.tf-quick__item { display: flex; gap: 20px; color: var(--ink); }
.tf-quick__icon { display: grid; place-items: center; width: 80px; height: 80px; flex: none; border-radius: 8px; background: var(--stone); color: var(--green); transition: background-color .2s, color .2s; }
.tf-quick__icon .ic { width: 36px; height: 36px; }
.tf-quick__item:hover .tf-quick__icon { background: var(--green); color: #fff; }
.tf-quick__title { display: block; margin-top: -4px; font: 600 28px/34px var(--f-display); letter-spacing: -.2px; }
.tf-quick__text { display: block; margin-top: 14px; font: 400 16px/24px var(--f-body); letter-spacing: .08px; }
.tf-footer__main { display: grid; grid-template-columns: 480px 336px 408px 216px; padding: 66px 0 50px; }
.tf-footer__brand img { width: 280px; height: 167px; object-fit: contain; object-position: left center; mix-blend-mode: lighten; }
.tf-footer__brand p { max-width: 330px; margin-top: 30px; font: 400 16px/24px var(--f-body); letter-spacing: .08px; color: #BDBDB8; }
.tf-footer h2 { font: 400 24px/34px var(--f-display); letter-spacing: .96px; color: var(--gold); }
.tf-footer h3 { margin-top: 22px; font: 400 20px/26px var(--f-display); letter-spacing: .08px; color: var(--gold); }
.tf-footer__col > ul:not(.tf-social) { display: grid; gap: 15px; margin-top: 29px; font: 400 16px/24px var(--f-body); letter-spacing: .08px; }
.tf-footer__col a:hover { color: #fff; }
.tf-footer__contact a, .tf-footer__contact span { display: flex; align-items: center; gap: 8px; }
.tf-footer__contact .ic { width: 14px; height: 14px; color: #FEFEFE; }
.tf-social { display: flex; gap: 10px; margin-top: 18px; }
.tf-social a { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--green); color: #fff; transition: background-color .2s; }
.tf-social a:hover { background: var(--gold); }
.tf-social .ic { width: 20px; height: 20px; }
.tf-footer__bottom { padding: 27px 0 36px; border-top: 1px solid var(--green); text-align: center; font: 400 14px/28px var(--f-body); letter-spacing: .08px; color: #9A9A95; }
.tf-footer__bottom a:hover { color: #fff; }

/* ---------- courses & training ---------- */
.ct-hero { padding: 110px 0; background: var(--ink); color: #fff; text-align: center; }
.ct-hero__eyebrow { display: inline-flex; align-items: center; gap: 16px; font: 600 22px/33px var(--f-display); letter-spacing: 2.64px; text-transform: uppercase; color: var(--gold); }
.ct-hero__eyebrow::before, .ct-hero__eyebrow::after { content: ""; width: 60px; height: 2px; background: var(--gold); }
.ct-hero__title { margin-top: 24px; font: 600 96px/104px var(--f-display); text-transform: uppercase; color: #fff; }
.ct-hero__lead { margin-top: 24px; font: 400 26px/36px var(--f-body); color: #D6D6D2; }
.ct-features { display: flex; width: calc(100% + 13px); margin: 64px -6px 0 -7px; border: 1px solid rgba(194, 163, 76, .5); border-radius: 14px; background: #2E2A2B; text-align: left; }
.ct-feature { display: flex; flex: auto; align-items: center; gap: 18px; padding: 26px 36px; }
.ct-feature + .ct-feature { border-left: 1px solid rgba(194, 163, 76, .35); }
.ct-feature__icon { display: grid; place-items: center; width: 64px; height: 64px; flex: none; border: 1px solid rgba(194, 163, 76, .7); border-radius: 10px; background: var(--ink); color: var(--gold); }
.ct-feature__icon .ic { width: 34px; height: 34px; }
.ct-feature__title { display: block; font: 700 21px/29px var(--f-body); color: #fff; white-space: nowrap; }
.ct-feature__text { display: block; margin-top: 4px; font: 400 16px/22px var(--f-body); color: #BFBFBA; white-space: nowrap; }

.hm-courses--lg .hm-courses__panel { padding-bottom: 43px; }
.hm-courses--lg .hm-courses__head { grid-template-columns: 1fr 470px; padding-bottom: 15px; }
.hm-courses--lg .hm-save { margin-bottom: 13px; }
.hm-courses--lg .hm-courses__lead { white-space: pre-wrap; }
.hm-courses--lg .hm-courses__note { font-size: 22px; line-height: 30px; }
.hm-courses--lg .hm-course { min-height: 318px; }
.hm-courses--lg .hm-course__body { padding-right: 23px; }
.hm-courses--lg .hm-course__desc { font-size: 15px; line-height: 22px; }
.hm-courses--lg .hm-course__meta { gap: 11px 14px; max-width: 250px; font-size: 13.5px; line-height: 22px; }
.hm-courses--lg .hm-course__price { margin-right: 12px; }

/* ---------- FAQ teaser ---------- */
.tf-faq { margin-bottom: 42px; padding: 96px 0 100px; border-bottom: 4px solid #C89B3C; background: #fff; }
.tf-faq__in { display: grid; grid-template-columns: minmax(0, 620fr) minmax(0, 740fr); column-gap: 80px; }
.tf-faq__intro { display: flex; flex-direction: column; align-items: flex-start; gap: 24px; }
.tf-faq__eyebrow { font: 600 20px/30px var(--f-display); letter-spacing: 2.4px; color: var(--gold); }
.tf-faq__title { font: 600 64px/72px var(--f-display); text-transform: uppercase; color: var(--ink); }
.tf-faq__text { font: 400 20px/32px var(--f-body); color: var(--text); }
.tf-btn--faq { padding: 18px 32px; letter-spacing: 1.08px; }
.tf-btn--outline.tf-btn--faq { padding: 16px 32px; border-width: 2px; }
.tf-faq__list { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; }
.tf-acc { width: 100%; padding: 26px 32px; border-radius: 10px; background: var(--stone); }
.tf-acc summary { display: flex; align-items: center; justify-content: space-between; gap: 40px; list-style: none; cursor: pointer; font: 700 22px/30px var(--f-body); color: var(--ink); }
.tf-acc summary::-webkit-details-marker { display: none; }
.tf-acc__btn { position: relative; width: 36px; height: 36px; flex: none; border-radius: 50%; background: var(--green); }
.tf-acc__btn::before, .tf-acc__btn::after { content: ""; position: absolute; left: 50%; top: 50%; width: 12px; height: 2.5px; margin: -1.25px 0 0 -6px; border-radius: 2px; background: #fff; transition: transform .2s; }
.tf-acc__btn::after { transform: rotate(90deg); }
.tf-acc[open] .tf-acc__btn::after { transform: rotate(0); }
.tf-acc p { margin-top: 14px; font: 400 18px/28px var(--f-body); color: var(--text); }

/* ---------- responsive (no Figma frames below 1440: these keep the same system) ---------- */
@media (max-width: 1500px) {
	.ct-features { width: 100%; margin-inline: 0; }
	.ct-feature { padding: 24px 22px; gap: 14px; }
	.ct-feature__title { font-size: 19px; }
	.tf-footer__main { grid-template-columns: 1.4fr 1fr 1.2fr auto; gap: 24px; }
	.hm-team__in { grid-template-columns: minmax(0, 1fr) 600px; gap: 32px; }
	.hm-team__art { zoom: .87; }
}
@media (max-width: 1360px) {
	.ct-feature__title, .ct-feature__text { white-space: normal; }
	.ct-feature { flex: 1 1 0; }
	.tf-nav ul { gap: 8px; }
	.tf-nav { gap: 20px; }
	.hm-upcoming { width: 520px; }
	.hm-course { grid-template-columns: 240px 1fr; }
	.hm-course__body { padding: 20px 24px 23px 28px; }
	.hm-steps__grid { grid-template-columns: repeat(2, 1fr); }
	.hm-steps__path, .hm-steps__arrow { display: none; }
	.hm-steps__tree { opacity: .35; }
}
@media (max-width: 1180px) {
	.tf-header__toggle { display: block; }
	.tf-nav { position: absolute; left: 0; right: 0; top: 100%; display: none; flex-direction: column; align-items: stretch; gap: 16px; padding: 16px var(--gutter) 24px; background: var(--stone); border-bottom: 1px solid #D6D6D2; box-shadow: 0 12px 24px rgba(0, 0, 0, .08); }
	.tf-nav ul { flex-direction: column; gap: 0; margin: 0; }
	.tf-nav ul a { padding: 12px 0; font-size: 18px; }
	.tf-nav ul a.is-active::after { display: none; }
	.tf-header.is-open .tf-nav { display: flex; }
	.tf-header.is-open .is-open { display: none; }
	.tf-header.is-open .is-close { display: block; }
	.hm-hero { height: auto; padding-bottom: 140px; }
	.hm-hero::before { background: linear-gradient(180deg, rgba(35, 31, 32, .92) 40%, rgba(35, 31, 32, .7)); }
	.hm-hero__in { flex-direction: column; gap: 48px; }
	.hm-hero__copy { padding-top: 96px; }
	.hm-upcoming { width: 100%; max-width: 570px; margin-top: 0; }
	.hm-courses__grid, .hm-audience__grid { grid-template-columns: 1fr; }
	.hm-courses__head, .hm-courses--lg .hm-courses__head { grid-template-columns: 1fr; }
	.hm-save { justify-self: start; margin-top: 20px; }
	.hm-steps__grid { grid-template-columns: 1fr; gap: 40px; }
	.hm-step { height: auto; }
	.hm-audience__photos { grid-template-columns: repeat(2, 1fr); }
	.hm-team__in { grid-template-columns: minmax(0, 1fr); }
	.hm-team__copy { padding-top: 0; }
	.hm-team__art { zoom: 1; justify-self: start; }
	.tf-footer__main { grid-template-columns: 1fr 1fr; row-gap: 40px; }
	.tf-quick__in { flex-direction: column; }
	.ct-hero__title { font-size: 72px; line-height: 80px; }
	.ct-features { display: grid; grid-template-columns: 1fr 1fr; width: 100%; margin-inline: 0; }
	.ct-feature + .ct-feature { border-left: 0; }
	.ct-feature { border-top: 1px solid rgba(194, 163, 76, .35); }
	.ct-feature:nth-child(-n+2) { border-top: 0; }
	.ct-feature:nth-child(even) { border-left: 1px solid rgba(194, 163, 76, .35); }
	.tf-faq__in { grid-template-columns: 1fr; gap: 48px; }
}
@media (max-width: 720px) {
	:root { --gutter: 16px; }
	.tf-h2 { font-size: 40px; line-height: 46px; }
	.hm-audience .tf-h2 { line-height: 46px; }
	.hm-hero__title { font-size: 46px; line-height: 54px; }
	.hm-hero__copy { padding-top: 64px; }
	.hm-hero__ctas .tf-btn { width: 100%; }
	.hm-upcoming { padding: 24px 20px; }
	.hm-upcoming__secure { justify-content: center; padding-left: 0; }
	.hm-upcoming__pay { width: 100%; height: auto; }
	.hm-courses { padding: 40px 0 0; border-radius: 40px 40px 0 0; }
	.hm-courses__panel { padding-top: 32px; }
	.hm-course { grid-template-columns: 1fr; }
	.hm-course__img { height: 200px; }
	.hm-course__body { padding: 20px; }
	.hm-save { flex-direction: column; align-items: flex-start; gap: 4px; }
	.hm-steps__title { line-height: 46px; }
	.hm-step { flex-direction: column; }
	.hm-step__icon { width: 72px; height: 72px; }
	.hm-step__icon .ic { width: 44px; height: 44px; }
	.hm-aud { min-height: 0; padding: 28px 22px; }
	.hm-aud__list li { font-size: 17px; }
	.hm-audience__photos img { height: 160px; }
	.hm-team__title { font-size: 38px; line-height: 44px; }
	.hm-team__art { zoom: .5; }
	.tf-cta { padding: 72px 0; }
	.tf-cta__title { font-size: 38px; line-height: 44px; }
	.tf-quick { padding: 40px 0; border-radius: 0 0 28px 28px; }
	.tf-footer__main { grid-template-columns: 1fr; }
	.ct-hero { padding: 72px 0; }
	.ct-hero__title { font-size: 48px; line-height: 54px; }
	.ct-hero__lead { font-size: 19px; line-height: 28px; }
	.ct-features { grid-template-columns: 1fr; }
	.ct-feature, .ct-feature:nth-child(-n+2) { padding: 20px; border-left: 0; border-top: 1px solid rgba(194, 163, 76, .35); }
	.ct-feature:first-child { border-top: 0; }
	.ct-feature__title, .ct-feature__text { white-space: normal; }
	.hm-courses--lg .hm-courses__lead { white-space: normal; }
	.tf-faq { padding: 64px 0; }
	.tf-faq__title { font-size: 44px; line-height: 50px; }
	.tf-acc { padding: 20px; }
	.tf-acc summary { gap: 16px; font-size: 18px; line-height: 26px; }
}
@media (prefers-reduced-motion: reduce) {
	.tf * { transition: none !important; }
}

/* ---------- course pages ---------- */
.cs-hero { position: relative; min-height: 828px; background: var(--ink) var(--bg) center / cover no-repeat; color: #fff; }
.cs-hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(35, 31, 32, .98) 0%, rgba(35, 31, 32, .95) 38%, rgba(35, 31, 32, .55) 55%, rgba(35, 31, 32, .12) 72%, rgba(35, 31, 32, 0) 86%); }
.cs-hero__in { position: relative; display: flex; justify-content: space-between; gap: 30px; padding: 72px 0 40px; }
.cs-hero__copy { flex: 1; min-width: 0; max-width: 848px; }
.cs-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; font: 400 18px/30px var(--f-ui); letter-spacing: .107px; }
.cs-crumbs a { color: rgba(255, 255, 255, .85); }
.cs-crumbs a:hover { color: #fff; }
.cs-crumbs > span[aria-hidden] { font-size: 18.67px; color: rgba(255, 255, 255, .45); }
.cs-crumbs > span[aria-current] { font-weight: 500; color: var(--gold); }
.cs-hero__title { margin-top: 12px; padding: 14px 0; font: 700 72px/79px var(--f-display); letter-spacing: .667px; text-transform: uppercase; color: #fff; }
.cs-hero__sub { margin-top: 11px; font: 600 20px/25px var(--f-ui); letter-spacing: .267px; color: var(--gold); }
.cs-hero__desc { margin-top: 28px; font: 400 20px/32px var(--f-ui); letter-spacing: .107px; color: #F2F2F0; }
.cs-feats { display: grid; grid-template-columns: repeat(2, 1fr); width: 823px; max-width: 100%; margin-top: 36px; overflow: hidden; border: 1px solid rgba(194, 163, 76, .5); border-radius: 16px; background: rgba(46, 42, 43, .85); }
.cs-feats li { display: flex; align-items: center; gap: 16px; min-height: 104px; padding: 21.33px 24px; font: 700 20px/27px var(--f-body); color: #fff; }
.cs-feats li:nth-child(even) { border-left: 1px solid rgba(194, 163, 76, .35); }
.cs-feats li:nth-child(n+3) { border-top: 1px solid rgba(194, 163, 76, .35); }
.cs-feats__icon { display: grid; place-items: center; width: 61px; height: 61px; flex: none; border: 1px solid rgba(194, 163, 76, .7); border-radius: 10.67px; background: var(--ink); color: var(--gold); }
.cs-feats__icon .ic { width: 35px; height: 35px; }

.cs-card { align-self: flex-start; width: 587px; flex: none; overflow: hidden; border: 2px solid var(--gold); border-radius: 21.33px; background: #fff; box-shadow: 0 21.33px 60px rgba(0, 0, 0, .24); color: var(--ink); }
.cs-card__urgent { padding: 13px 16px; background: var(--gold); font: 700 15.33px/25px var(--f-ui); letter-spacing: .8px; text-transform: uppercase; text-align: center; color: var(--ink); }
.cs-card__head { padding: 41px 29px 41px; background: var(--ink); }
.cs-card__title { font: 600 34.67px/40px var(--f-display); letter-spacing: .69px; text-transform: uppercase; color: #fff; }
.cs-card__price { display: flex; align-items: center; gap: 14px; margin-top: 24px; font: 400 20px/28px var(--f-body); letter-spacing: .107px; color: #CCCCC7; }
.cs-card__price strong { font: 600 40px/45px var(--f-display); letter-spacing: .107px; color: var(--gold); }
.cs-card__details { margin: 19px 29px 0; }
.cs-card__details li { display: flex; align-items: center; gap: 16px; min-height: 55px; border-bottom: 1px solid #E5E5E1; font: 500 16.67px/24px var(--f-ui); letter-spacing: .107px; }
.cs-card__details li:first-child { border-top: 1px solid #E5E5E1; }
.cs-card__details .ic { width: 21px; height: 21px; color: var(--gold); }
.cs-card__btn { display: flex; margin: 27px 29px 0; padding: 17.5px; font: 700 21.33px/34px var(--f-display); letter-spacing: 1px; }
.cs-card__trust { display: flex; align-items: center; justify-content: center; gap: 7px; margin-top: 15px; font: 400 15.33px/25px var(--f-ui); letter-spacing: .107px; }
.cs-card__trust .ic { width: 19px; height: 19px; color: var(--gold); }
.cs-pay { display: flex; justify-content: center; gap: 8px; margin: 16px 0 28px; }
.cs-pay li { display: flex; align-items: center; justify-content: center; gap: 1px; width: 45px; height: 27px; border: 1px solid #E2E2DE; border-radius: 4px; background: var(--stone); font: 700 10.67px/1 var(--f-ui); color: var(--ink); }
.cs-pay .cs-pay__visa { font-size: 11.29px; color: #1A1F71; }
.cs-pay__mc span { width: 15px; height: 15px; border-radius: 50%; background: #EB001B; }
.cs-pay__mc span + span { margin-left: -5px; background: rgba(194, 163, 76, .9); }
.cs-pay .cs-pay__amex { border-color: #006FCF; background: #006FCF; font-size: 8.78px; color: #fff; }
.cs-pay .cs-pay__disc { font-size: 7.53px; }
.cs-pay__disc span { width: 13px; height: 13px; margin-right: -6px; border-radius: 50%; background: #FF6000; }
.cs-pay .cs-pay__pp { background: #fff; font-size: 9.33px; color: #003087; }

.cs-tabs { position: sticky; top: 0; z-index: 15; background: var(--ink); box-shadow: 0 2.67px 10.67px rgba(0, 0, 0, .04); }
.cs-tabs ul { display: flex; justify-content: space-between; gap: 24px; }
.cs-tabs a { position: relative; display: block; padding: 26px 0; font: 600 21.33px/29px var(--f-display); letter-spacing: 1.28px; text-transform: uppercase; white-space: nowrap; color: #D6D6D1; }
.cs-tabs a:hover, .cs-tabs a.is-active { color: var(--gold); }
.cs-tabs a.is-active::after { content: ""; position: absolute; left: 0; right: 0; bottom: 1px; height: 4px; background: var(--gold); }
.cs-sec, .cs-career { scroll-margin-top: 82px; }

.cs-sec { padding: 78px 0 96px; background: #fff; }
.cs-sec--stone { background: var(--stone); }
.cs-h2 { display: table; padding-bottom: 17px; border-bottom: 3px solid var(--gold); font: 600 48px/51px var(--f-display); letter-spacing: .333px; text-transform: uppercase; color: var(--ink); }
.cs-h2--center { margin-inline: auto; }
.cs-h3 { font: 600 24px/42px var(--f-display); letter-spacing: .667px; text-transform: uppercase; color: var(--ink); }
.cs-prose { max-width: 1060px; margin-top: var(--about-top, 56px); font: 400 19px/34px var(--f-body); letter-spacing: .107px; color: var(--ink); }
.cs-prose p + p { margin-top: 24px; }
.cs-note { display: flex; gap: 32px; max-width: 1060px; margin-top: 36px; padding: 32px 24px 46px 32px; border: 1.5px solid var(--gold); border-radius: 12px; background: var(--stone); }
.cs-note__icon { display: grid; place-items: center; width: 96px; height: 96px; flex: none; border-radius: 18.67px; background: #fff; box-shadow: 0 2.67px 10.67px rgba(0, 0, 0, .04); color: var(--gold); }
.cs-note__icon .ic { width: 48px; height: 48px; }
.cs-note__title { display: table; margin-top: 2px; padding-bottom: 7px; border-bottom: 3px solid var(--gold); font: 600 32px/38px var(--f-display); letter-spacing: .667px; text-transform: uppercase; color: var(--ink); }
.cs-note p { max-width: 860px; margin-top: 25px; font: 400 18px/29px var(--f-body); color: var(--ink); }

.cs-why__intro { max-width: 1060px; margin-top: var(--why-top, 92px); font: 400 19px/32px var(--f-body); letter-spacing: .107px; color: var(--ink); }
.cs-benefits { display: grid; grid-template-columns: repeat(3, 1fr); gap: 35px; max-width: 1060px; margin-top: 40px; }
.cs-benefits li { position: relative; min-height: 191px; padding: 28px; overflow: hidden; border: 1px solid #E6E6E2; border-radius: 12px; background: #fff; font: 600 20px/28px var(--f-body); letter-spacing: .107px; color: var(--ink); }
.cs-benefits li::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 4px; background: var(--gold); }
.cs-benefits__icon { display: grid; place-items: center; width: 56px; height: 56px; margin-bottom: 20px; border: 1px solid rgba(194, 163, 76, .5); border-radius: 8px; background: #fff; box-shadow: 0 2.67px 8px rgba(0, 0, 0, .04); color: var(--gold); }
.cs-benefits__icon .ic { width: 24px; height: 24px; }

.cs-days { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin-top: 35px; }
.cs-days--2 { grid-template-columns: repeat(2, 1fr); }
.cs-days--5 { grid-template-columns: repeat(5, 1fr); }
.cs-day { position: relative; display: flex; flex-direction: column; padding: 30px 24px 0; overflow: hidden; border: 1px solid #E5E5E1; border-radius: 18.75px; background: #fff; box-shadow: 0 2.34px 11.72px rgba(0, 0, 0, .03); }
.cs-day::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 6px; background: var(--gold); }
.cs-day__tz { font: 500 16px/22px var(--f-body); letter-spacing: .27px; color: var(--gold); }
.cs-day__num { margin-top: 6px; font: 600 38px/31px var(--f-display); letter-spacing: -.27px; color: var(--ink); }
.cs-day__when { margin-top: 14px; font: 500 18px/20px var(--f-body); letter-spacing: .094px; color: var(--ink); }
.cs-days--5 .cs-day__when { font-size: 16px; white-space: nowrap; }
.cs-day__zoom { display: flex; align-items: center; gap: 12px; height: 65px; margin: 14px -24px 0; padding: 0 21px; background: var(--stone); font: 400 12.89px/16px var(--f-body); letter-spacing: .094px; color: var(--ink); }
.cs-day__zoom strong { display: block; font-size: 15.82px; line-height: 20px; }
.cs-zoom { display: grid; place-items: center; width: 33px; height: 33px; flex: none; border-radius: 50%; background: #0B5CFF; font: 700 8.79px/12px var(--f-body); color: #fff; }

.cs-checks li { display: flex; gap: 14px; font: 400 18.67px/28px var(--f-body); letter-spacing: .107px; color: var(--ink); }
.cs-checks .ic { width: 27px; height: 27px; flex: none; margin-top: 1px; padding: 6px; border-radius: 50%; background: var(--gold); color: #fff; stroke-width: 3; }
#learn .cs-h2 { padding-bottom: 5px; }
.cs-checks--grid { display: grid; grid-template-columns: repeat(2, 521px); gap: var(--learn-gap, 22px) 49px; margin-top: var(--learn-top, 44px); }
.cs-checks--tight { display: grid; gap: 16px; margin-top: 21px; }
.cs-checks--tight .ic { margin-top: 0; }
.cs-groups { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 44px; }
.cs-groups__title { font: 600 24px/42px var(--f-display); letter-spacing: .667px; text-transform: uppercase; color: var(--ink); }
.cs-groups__title::after { content: ""; display: block; width: 48px; height: 3px; margin-top: 8px; background: var(--gold); }

.cs-included { display: grid; grid-template-columns: repeat(7, 1fr); gap: 19.5px; margin-top: 42px; }
.cs-included li { position: relative; display: flex; flex-direction: column; align-items: center; height: 211px; padding: 32px 14px 20px; overflow: hidden; border-radius: 16px; background: var(--stone); text-align: center; font: 600 17px/23px var(--f-body); letter-spacing: .107px; color: var(--ink); }
.cs-included li::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 6px; background: var(--gold); }
.cs-included__icon { display: grid; place-items: center; width: 84px; height: 84px; margin-bottom: 18px; border: 1.5px solid var(--gold); border-radius: 50%; background: #fff; box-shadow: 0 3.82px 15.27px rgba(0, 0, 0, .04); color: var(--ink); }
.cs-included__icon .ic { width: 46px; height: 46px; stroke-width: 1.6; }

.cs-career { padding: 80px 0 96px; background: var(--ink); }
.cs-career__title { font: 600 42px/62px var(--f-display); text-transform: uppercase; color: #fff; }
.cs-career__sub { margin-top: 12px; font: 400 20px/27px var(--f-body); color: #D1D1CC; }
.cs-career__steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; margin-top: 48px; }
.cs-career__steps li { display: flex; flex-direction: column; gap: 12px; min-height: 243px; padding: 30px 32px; border: 1px solid rgba(194, 163, 76, .45); border-radius: 12px; background: #2E2A2B; }
.cs-career__num { font: 600 44px/65px var(--f-display); color: var(--gold); }
.cs-career__steps h3 { font: 600 24px/36px var(--f-display); text-transform: uppercase; color: #fff; }
.cs-career__steps p { font: 400 18px/28px var(--f-body); color: #D1D1CC; }

.cs-req-sub { margin-top: 42px; }
.cs-reqs { display: grid; grid-template-columns: repeat(5, 1fr); gap: 20px; margin-top: 24px; }
.cs-reqs li { position: relative; min-height: var(--req-h, 372px); padding: 30px 24px; overflow: hidden; border-radius: 16px; background: #fff; font: 400 16px/29px var(--f-body); letter-spacing: .107px; color: #2D3748; }
.cs-reqs li::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 6px; background: var(--gold); }
.cs-reqs__check { display: grid; place-items: center; width: 36px; height: 36px; margin-bottom: 16px; border-radius: 50%; background: var(--gold); color: #fff; }
.cs-reqs__check .ic { width: 18px; height: 18px; stroke-width: 3; }
.cs-reqs strong { display: block; font-size: 19px; font-weight: 600; color: var(--ink); }
.cs-refund { display: flex; align-items: center; justify-content: space-between; gap: 40px; margin-top: 40px; padding: 32px 40px 32px 34px; border-left: 6px solid var(--gold); border-radius: 16px; background: #fff; }
.cs-refund p { max-width: 900px; margin-top: 12px; font: 400 18px/29px var(--f-body); color: var(--ink); }
.cs-refund__btn { flex: none; padding: 11.5px 28px; border: 1.5px solid var(--ink); border-radius: 5.33px; font: 600 17.33px/23px var(--f-display); letter-spacing: .667px; text-transform: uppercase; color: var(--ink); white-space: nowrap; transition: background-color .2s, color .2s; }
.tf a.cs-refund__btn:hover { background: var(--ink); color: #fff; }
.tf-faq--flush { margin-bottom: 0; }

@media (max-width: 1500px) {
	.cs-card { width: 520px; }
	.cs-tabs a { font-size: 18px; letter-spacing: .8px; }
	.cs-checks--grid { grid-template-columns: repeat(2, minmax(0, 521px)); gap: 22px 40px; }
}
@media (max-width: 1360px) {
	.cs-hero__title { font-size: 60px; line-height: 66px; }
	.cs-card { width: 470px; }
	.cs-tabs ul { overflow-x: auto; scrollbar-width: none; }
	.cs-included { grid-template-columns: repeat(4, 1fr); }
	.cs-reqs { grid-template-columns: repeat(3, 1fr); }
	.cs-reqs li { min-height: 0; }
	.cs-days--5 { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 1180px) {
	.cs-hero { min-height: 0; }
	.cs-hero::before { background: linear-gradient(180deg, rgba(35, 31, 32, .95) 50%, rgba(35, 31, 32, .85)); }
	.cs-hero__in { flex-direction: column; gap: 48px; }
	.cs-card { width: 100%; max-width: 587px; }
	.cs-hero__desc br { display: none; }
	.cs-days, .cs-days--5 { grid-template-columns: repeat(2, 1fr); }
	.cs-benefits, .cs-career__steps { grid-template-columns: 1fr; }
	.cs-benefits li, .cs-career__steps li { min-height: 0; }
	.cs-checks--grid { grid-template-columns: 1fr; row-gap: 16px; margin-top: 32px; }
	.cs-groups { grid-template-columns: 1fr; gap: 32px; }
	.cs-reqs { grid-template-columns: repeat(2, 1fr); }
	.cs-refund { flex-direction: column; align-items: flex-start; }
	.cs-why__intro { margin-top: 48px; }
}
@media (max-width: 720px) {
	.cs-hero__in { padding: 40px 0 48px; }
	.cs-hero__title { padding: 6px 0; font-size: 42px; line-height: 48px; }
	.cs-hero__desc { font-size: 17px; line-height: 27px; }
	.cs-feats { grid-template-columns: 1fr; }
	.cs-feats li { min-height: 0; padding: 16px; font-size: 17px; }
	.cs-feats li:nth-child(even) { border-left: 0; }
	.cs-feats li:nth-child(n+2) { border-top: 1px solid rgba(194, 163, 76, .35); }
	.cs-card__head { padding: 28px 20px; }
	.cs-card__title { font-size: 28px; line-height: 34px; }
	.cs-card__details, .cs-card__btn { margin-inline: 20px; }
	.cs-card__details li { padding: 10px 0; font-size: 15px; }
	.cs-pay { flex-wrap: wrap; padding: 0 12px; }
	.cs-tabs a { padding: 20px 0; font-size: 16px; }
	.cs-sec { padding: 56px 0 64px; }
	.cs-h2 { font-size: 34px; line-height: 38px; }
	.cs-prose { margin-top: 32px; font-size: 17px; line-height: 30px; }
	.cs-note { flex-direction: column; gap: 20px; padding: 24px; }
	.cs-note__title { font-size: 24px; line-height: 30px; }
	.cs-days, .cs-days--5, .cs-reqs { grid-template-columns: 1fr; }
	.cs-included { grid-template-columns: repeat(2, 1fr); }
	.cs-included li { height: auto; }
	.cs-career { padding: 56px 0 64px; }
	.cs-career__title { font-size: 34px; line-height: 44px; }
	.cs-refund { padding: 24px 20px; }
}

/* ---------- 1440-frame pages (content 1312) ---------- */
.tf-wrap--1312 { width: min(1312px, 100% - 2 * var(--gutter)); }
.tf-footer--plain .tf-footer__main { padding-top: 60px; }

/* ---------- upcoming classes ---------- */
.uc-hero { position: relative; height: 480px; padding-top: 77px; background: var(--ink) var(--bg) 3% 25% / 162.5% auto no-repeat; color: #fff; }
.uc-hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(35, 31, 32, .94) 0%, rgba(35, 31, 32, .82) 42%, rgba(35, 31, 32, .3) 100%); }
.uc-hero .tf-wrap { position: relative; }
.uc-crumbs, .co-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 7px 11px; font: 400 13.5px/24px var(--f-body); letter-spacing: .08px; }
.uc-crumbs a { color: #E5E7EB; }
.uc-crumbs a:hover { color: #fff; }
.uc-crumbs > span[aria-hidden] { color: var(--gold); }
.uc-crumbs > span[aria-current] { font-weight: 600; color: var(--gold); }
.uc-hero__eyebrow { margin-top: 18px; font: 600 17px/30px var(--f-body); letter-spacing: .08px; text-transform: uppercase; color: var(--gold); }
.uc-hero__title { margin-top: 8px; font: 600 56px/62px var(--f-display); letter-spacing: .5px; text-transform: uppercase; color: #fff; }
.uc-hero__lead { margin-top: 14px; font: 400 15px/24px var(--f-body); letter-spacing: .08px; color: #fff; }

.uc { padding-bottom: 0; background: var(--stone); }
.uc > .tf-wrap { position: relative; margin-top: -65px; padding-bottom: 40px; }
.uc-filter { padding: 33px 37px 36px; border-radius: 12px; background: #fff; box-shadow: 0 10px 30px rgba(0, 0, 0, .08); }
.uc-filter__title { font: 600 24px/42px var(--f-display); letter-spacing: .08px; color: var(--ink); }
.uc-filter__text { margin-top: 6px; font: 400 14px/24px var(--f-body); letter-spacing: .08px; color: var(--ink); }
.uc-filter__row { display: flex; align-items: flex-end; gap: 20px; margin-top: 21px; }
.uc-select { display: flex; flex-direction: column; gap: 6px; font: 600 12.5px/22px var(--f-body); letter-spacing: .08px; color: var(--ink); }
.uc-select--course { width: 460px; }
.uc-select--month { width: 300px; }
.uc-select select { width: 100%; height: 44px; padding: 0 40px 0 15px; border: 1px solid #E0E0DC; border-radius: 6px; background: var(--stone) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='5'%3E%3Cpath d='M0 0h10L5 5z' fill='%23231F20'/%3E%3C/svg%3E") right 16px center no-repeat; font: 500 12.4px/15px var(--f-body); color: var(--ink); -webkit-appearance: none; appearance: none; cursor: pointer; }
.uc-select select:focus-visible { outline: 3px solid var(--gold); outline-offset: 2px; }
.uc-filter__clear { margin: 0 0 11px auto; padding: 0; border: 0; background: none; font: 600 13.5px/18px var(--f-body); color: var(--ink); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.uc-filter__clear:hover { color: var(--green); }

.uc-list { display: grid; gap: 12px; margin-top: 40px; }
.uc-row { position: relative; display: flex; align-items: center; min-height: 124px; padding: 19px 28px 17px; overflow: hidden; border-radius: 12px; background: #fff; box-shadow: 0 2px 8px rgba(0, 0, 0, .05); }
.uc-row::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 5px; background: var(--gold); }
.uc-row[hidden], .uc-empty[hidden] { display: none; }
.uc-date { display: flex; flex-direction: column; align-items: center; justify-content: center; width: 72px; height: 72px; flex: none; border-radius: 8px; background: var(--ink); font-family: var(--f-display); font-weight: 600; }
.uc-date span { font-size: 15px; line-height: 22px; color: var(--gold); }
.uc-date strong { font-size: 30px; line-height: 44px; font-weight: 600; color: #fff; margin-top: -4px; }
.uc-row__body { flex: 1; min-width: 0; margin-left: 24px; }
.uc-row__name { font: 600 24px/36px var(--f-display); color: var(--ink); }
.uc-row__name a:hover { color: var(--green); }
.uc-row__meta { margin-top: 4px; font: 500 15px/20px var(--f-body); color: var(--ink); white-space: pre-wrap; }
.uc-row__link { display: inline-block; margin-top: 6px; font: 600 14px/19px var(--f-body); color: var(--green); text-decoration: underline; text-underline-offset: 3px; }
.tf .uc-row__link { color: var(--green); }
.uc-row__price { margin-left: 24px; font: 600 30px/44px var(--f-display); color: var(--ink); }
.uc-row__btn { width: 180px; margin-left: 32px; padding: 11.5px 16px; border-radius: 6px; font-size: 17px; line-height: 25px; letter-spacing: .68px; }
.uc-empty { padding: 32px; border-radius: 12px; background: #fff; text-align: center; font: 500 16px/24px var(--f-body); }
.tf .uc-empty a { color: var(--green); text-decoration: underline; }

.uc-team { display: flex; align-items: center; justify-content: space-between; gap: 32px; margin-top: 24px; padding: 20px 36px 14px; border-radius: 12px; background: var(--ink); }
.uc-team h2 { font: 600 24px/36px var(--f-display); text-transform: uppercase; color: var(--gold); }
.uc-team p { margin-top: 4px; font: 400 16px/22px var(--f-body); color: #fff; }
.uc-team__btn { flex: none; width: 240px; padding: 11.5px 16px; border-radius: 6px; font-size: 17px; line-height: 25px; letter-spacing: 0; }
.uc-faq { border-bottom: 3px solid var(--gold); background: #fff; }
.uc-faq .tf-wrap { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 147px; padding: 43px 0 37px; }
.uc-faq h2 { font: 600 27px/40px var(--f-display); text-transform: uppercase; color: var(--ink); }
.uc-faq p { margin-top: 6px; font: 400 13.5px/18px var(--f-body); color: var(--ink); }
.uc-faq__btns { display: flex; gap: 17px; }
.uc-faq__btn { width: 145px; padding: 10px 8px; border-radius: 4px; font-size: 13px; line-height: 17px; }
.uc-faq .tf-btn--outline { padding: 8.5px 8px; }

/* ---------- checkout ---------- */
.co { padding: 40px 0 96px; background: var(--stone); }
.co-crumbs { font: 500 14px/19px var(--f-body); letter-spacing: 0; color: #5A5657; }
.co-crumbs a:hover { color: var(--ink); }
.co-crumbs > span[aria-current] { font-weight: 600; color: var(--gold); }
.co-title { display: table; margin-top: 9px; padding-bottom: 6px; font: 600 56px/83px var(--f-display); text-transform: uppercase; color: var(--ink); }
.co-title::after { content: ""; display: block; width: 140px; height: 4px; margin-top: 6px; background: var(--gold); }
.co-lead { margin-top: 12px; font: 400 18px/25px var(--f-body); color: var(--ink); }
.co-empty__btn { margin-top: 24px; }
.co-form { display: grid; grid-template-columns: minmax(0, 820px) minmax(0, 460px); justify-content: space-between; align-items: start; gap: 32px; margin-top: 36px; }
.co-main { display: grid; gap: 24px; }
.co-card { position: relative; padding: 34px 32px 36px; overflow: hidden; border-radius: 14px; background: #fff; }
.co-card::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 6px; background: var(--gold); }
.co-card--plain { padding: 26px 24px; }
.co-card--plain::before { display: none; }
.co-card__title { display: flex; align-items: center; gap: 14px; font: 600 26px/39px var(--f-display); text-transform: uppercase; color: var(--ink); }
.co-step { display: grid; place-items: center; width: 36px; height: 36px; flex: none; border-radius: 50%; background: var(--ink); font: 600 18px/27px var(--f-display); color: var(--gold); }
.co-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; margin-top: 21px; }
.co-grid .form-row { margin: 0; padding: 0; }
.co-grid label { display: block; margin-bottom: 5px; font: 600 14px/19px var(--f-body); color: var(--ink); }
.co-grid label .required, .co-grid label .optional { display: none; }
.co-grid input.input-text { width: 100%; height: 48px; padding: 0 16px; border: 1px solid #D6D6D2; border-radius: 8px; background: #fff; font: 400 15px/20px var(--f-body); color: var(--ink); }
.co-grid input.input-text::placeholder { color: #969293; }
.co-grid input.input-text:focus { border-color: var(--green); outline: 2px solid rgba(106, 128, 2, .25); }
.co-grid .woocommerce-invalid input.input-text { border-color: #C0392B; }
.co-note { grid-column: 1 / -1; margin: -8px 0 0; padding: 14px 16px; border-radius: 8px; background: #FAF6EB; font: 600 14px/19px var(--f-body); color: var(--ink); }
.co-check { display: flex; align-items: flex-start; gap: 10px; margin-top: 20px; font: 500 15px/20px var(--f-body); color: var(--ink); cursor: pointer; }
.co-card--plain .co-check { gap: 12px; margin: 0; }
.co-check input { width: 20px; height: 20px; flex: none; margin: 0; accent-color: var(--green); }
.tf .co-check a { color: var(--green); text-decoration: underline; text-underline-offset: 2px; }

.co-pay { display: grid; gap: 12px; margin-top: 21px; }
.co-pay__option { position: relative; }
.co-pay__option > input { position: absolute; opacity: 0; }
.co-pay__option > label { display: flex; align-items: center; gap: 16px; min-height: 64px; padding: 10px 20px; border: 1px solid #D6D6D2; border-radius: 10px; cursor: pointer; }
.co-pay__option > input:checked + label { border: 2px solid var(--green); padding: 9px 19px; }
.co-pay__option > input:focus-visible + label { outline: 3px solid var(--gold); outline-offset: 2px; }
.co-pay__radio { position: relative; width: 20px; height: 20px; flex: none; border: 1.5px solid #969293; border-radius: 50%; }
.co-pay__option > input:checked + label .co-pay__radio { border-color: var(--green); }
.co-pay__option > input:checked + label .co-pay__radio::after { content: ""; position: absolute; inset: 3.5px; border-radius: 50%; background: var(--green); }
.co-pay__text strong { display: block; font: 700 16px/22px var(--f-body); color: var(--ink); }
.co-pay__text span { display: block; font: 400 14px/19px var(--f-body); color: #5A5657; }
.co-pay .payment_box { margin-top: 12px; padding: 16px 20px; border-radius: 10px; background: var(--stone); font: 400 14px/20px var(--f-body); }
.co-pay__none { padding: 16px 20px; border-radius: 10px; background: #FAF6EB; font: 500 15px/22px var(--f-body); }
.tf .co-pay__none a { color: var(--green); text-decoration: underline; }
.co-secure { display: flex; align-items: center; gap: 9px; margin-top: 16px; font: 500 14px/19px var(--f-body); color: #5A5657; }
.co-secure .ic { width: 11px; height: 13px; color: var(--gold); }
.co-submit { width: 100%; padding: 13.5px 24px; font-size: 22px; line-height: 33px; letter-spacing: 0; gap: 12px; }
.co-submit:disabled { opacity: .6; cursor: wait; }

.co-summary { position: sticky; top: 24px; padding: 30px 28px 28px; }
.co-summary__title { font: 600 24px/36px var(--f-display); text-transform: uppercase; color: var(--ink); }
.co-summary__class { margin-top: 10px; padding: 12px 20px; border-radius: 10px; background: var(--ink); }
.co-summary__class strong { display: block; font: 600 20px/30px var(--f-display); text-transform: uppercase; color: #fff; }
.co-summary__class span { display: block; font: 500 14px/19px var(--f-body); color: var(--gold); }
.co-facts { display: grid; grid-template-columns: 122px 1fr; gap: 14px 0; margin: 20px 0 0; padding-bottom: 18px; border-bottom: 1px solid #E0E0DC; }
.co-facts dt { font: 500 14px/20px var(--f-body); color: #5A5657; }
.co-facts dd { margin: 0; font: 600 15px/20px var(--f-body); color: var(--ink); }
.co-totals { margin-top: 19px; }
.co-row { display: flex; justify-content: space-between; gap: 12px; font: 500 15px/20px var(--f-body); color: var(--ink); }
.co-row strong { font-weight: 600; }
.co-row + .co-row { margin-top: 10px; }
.co-row--coupon { color: var(--green); }
.tf .co-remove-coupon { margin-left: 6px; font-size: 13px; color: #5A5657; text-decoration: underline; }
.co-coupon { margin-top: 14px; padding-bottom: 20px; border-bottom: 1px solid #E0E0DC; }
.co-coupon label { display: block; font: 600 14px/19px var(--f-body); color: var(--ink); }
.co-coupon__row { display: flex; gap: 10px; margin-top: 7px; }
.co-coupon__row input { flex: 1; min-width: 0; height: 44px; padding: 0 14px; border: 1px solid #D6D6D2; border-radius: 8px; font: 400 14px/19px var(--f-body); }
.co-coupon__row input::placeholder { color: #969293; }
.co-coupon__btn { width: 100px; flex: none; border: 2px solid var(--green); border-radius: 8px; background: #fff; font: 600 16px/24px var(--f-display); text-transform: uppercase; color: var(--green); cursor: pointer; }
.co-coupon__btn:hover { background: var(--green); color: #fff; }
.co-coupon__msg { margin-top: 8px; font: 500 13px/18px var(--f-body); }
.co-coupon__msg.is-error { color: #C0392B; }
.co-total { display: flex; align-items: center; justify-content: space-between; margin-top: 16px; font-family: var(--f-display); font-weight: 600; text-transform: uppercase; color: var(--ink); }
.co-total span { font-size: 22px; line-height: 33px; }
.co-total strong { font-size: 30px; line-height: 44px; font-weight: 600; }
.co-next { margin-top: 16px; padding: 16px 18px; border-radius: 10px; background: var(--stone); }
.co-next h3 { font: 600 16px/24px var(--f-display); text-transform: uppercase; color: var(--ink); }
.co-next ul { margin-top: 4px; font: 400 14px/19px var(--f-body); color: var(--ink); }
.co-next li::before { content: "•"; margin-right: 8px; }

/* Woo notices (errors render at the top of form.checkout) */
.co .woocommerce-NoticeGroup, .co .woocommerce-error, .co .woocommerce-message, .co .woocommerce-info { grid-column: 1 / -1; margin: 0; padding: 14px 18px; list-style: none; border-radius: 10px; border-left: 5px solid #C0392B; background: #fff; font: 500 15px/22px var(--f-body); color: var(--ink); }
.co .woocommerce-message, .co .woocommerce-info { border-left-color: var(--green); }
.co .woocommerce-error li + li { margin-top: 6px; }
.co-form.processing { opacity: .7; pointer-events: none; }
.co-received { max-width: 820px; margin-top: 32px; padding: 32px; border-radius: 14px; background: #fff; font: 400 16px/26px var(--f-body); }
.co-received h2 { margin: 24px 0 12px; font: 600 24px/34px var(--f-display); text-transform: uppercase; color: var(--ink); }
.co-received ul.order_details { display: flex; flex-wrap: wrap; gap: 12px 32px; margin-top: 16px; }
.co-received table { width: 100%; border-collapse: collapse; }
.co-received th, .co-received td { padding: 10px 0; border-bottom: 1px solid #E0E0DC; text-align: left; }
.tf .co-received a { color: var(--green); }

@media (max-width: 1180px) {
	.uc-filter__row { flex-wrap: wrap; }
	.uc-select--course, .uc-select--month { width: calc(50% - 10px); }
	.uc-filter__clear { margin: 0; }
	.uc-row { flex-wrap: wrap; row-gap: 16px; }
	.uc-row__body { flex-basis: calc(100% - 96px); }
	.uc-row__price { margin-left: 96px; }
	.uc-row__btn { margin-left: auto; }
	.uc-team, .uc-faq .tf-wrap { flex-direction: column; align-items: flex-start; }
	.co-form { grid-template-columns: 1fr; }
	.co-summary { position: static; order: -1; }
}
@media (max-width: 720px) {
	.uc-hero { height: auto; padding: 48px 0 104px; background-size: cover; background-position: center; }
	.uc-hero__title { font-size: 44px; line-height: 50px; }
	.uc-filter { padding: 24px 20px; }
	.uc-select--course, .uc-select--month { width: 100%; }
	.uc-row { padding: 20px 20px 20px 24px; }
	.uc-date { width: 60px; height: 60px; }
	.uc-date strong { font-size: 24px; line-height: 32px; }
	.uc-row__body { flex-basis: calc(100% - 80px); margin-left: 16px; }
	.uc-row__name { font-size: 21px; line-height: 28px; }
	.uc-row__meta { white-space: normal; font-size: 14px; }
	.uc-row__price { margin-left: 0; font-size: 26px; }
	.uc-row__btn { width: auto; flex: 1; margin-left: 16px; }
	.uc-team { padding: 24px 20px; }
	.uc-team__btn { width: 100%; }
	.uc-faq__btns { width: 100%; }
	.uc-faq__btn { flex: 1; width: auto; }
	.co-title { font-size: 44px; line-height: 60px; }
	.co-card { padding: 30px 20px 28px; }
	.co-grid { grid-template-columns: 1fr; }
	.co-facts { grid-template-columns: 96px 1fr; }
	.co-submit { font-size: 19px; }
}

/* ---------- 1440-frame pages: Instructors + profiles (content 1200) ---------- */
.tf-wrap--1200 { width: min(1200px, 100% - 2 * var(--gutter)); }
.tf-wrap--1280 { width: min(1280px, 100% - 2 * var(--gutter)); }
.tf-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

.tf-skills { background: var(--ink); }
.tf-skills__in { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 200px; }
.tf-skills__title { font: 700 56px/90px var(--f-display); letter-spacing: .2px; text-transform: uppercase; color: #fff; }
.tf-skills__title em { color: #C89B3C; }
.tf-skills__btns { display: flex; gap: 20px; }
.tf-skills__btn { display: inline-flex; align-items: center; justify-content: center; height: 60px; padding: 0 32px; border-radius: 12px; background: #C89B3C; font: 700 18px/27px var(--f-display); letter-spacing: 1px; text-transform: uppercase; white-space: nowrap; color: var(--ink); transition: background-color .2s; }
.tf-skills__btn:hover { background: #d4b660; }
.tf a.tf-skills__btn--li { gap: 14px; padding: 0 32px 0 28px; background: #0A66C2; color: #fff; }
.tf a.tf-skills__btn--li:hover { background: #0857a6; }
.tf-skills__liic { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 6px; background: #fff; font: 700 22px/1 var(--f-display); letter-spacing: 0; text-transform: none; color: #0A66C2; }

/* directory */
.in-hero { position: relative; height: 600px; padding-top: 102px; background: var(--ink) var(--bg) center 12% / cover no-repeat; color: #fff; }
.in-hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(35, 31, 32, .92) 0%, rgba(35, 31, 32, .92) 38%, rgba(35, 31, 32, 0) 75%); }
.in-hero .tf-wrap { position: relative; }
.in-crumbs { font: 400 16px/28px var(--f-meta); letter-spacing: .08px; color: #FAF9F4; }
.in-crumbs a:hover { color: var(--gold); }
.in-hero__title { margin-top: 10px; font: 600 72px/90px var(--f-display); letter-spacing: .2px; text-transform: uppercase; color: #fff; }
.in-hero__title em { color: #C89B3C; }
.in-hero__lead { margin-top: 29px; font: 400 16px/24px var(--f-body); letter-spacing: .08px; }
.in-hero__btn, .in-train__btn { display: inline-flex; align-items: center; justify-content: center; background: #C89B3C; font-family: var(--f-display); font-weight: 700; text-transform: uppercase; white-space: nowrap; color: var(--ink); transition: background-color .2s; }
.in-hero__btn { width: 273px; height: 54px; margin-top: 24px; border-radius: 12px; font-size: 18px; line-height: 16px; letter-spacing: 1px; }
.in-hero__btn:hover, .in-train__btn:hover, .in-featured__btn:hover, .ip-btn:hover { background: #d4b660; }

.in-dir { position: relative; padding: 64px 0 56px; overflow: hidden; background: #FAF9F4; }
.in-dir__tree { position: absolute; top: 40px; left: calc(50% - 70px); width: 900px; height: 865px; max-width: none; object-fit: contain; pointer-events: none; }
.in-dir .tf-wrap { position: relative; }
.in-eyebrow { font: 500 14px/21px var(--f-meta); letter-spacing: 1.68px; text-transform: uppercase; color: var(--green); }
.in-h2 { margin-top: 12px; font: 500 48px/71px var(--f-display); color: var(--ink); }
.in-lead { max-width: 900px; margin-top: 12px; font: 400 18px/27px var(--f-meta); color: #5B5758; }
.in-tabs { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.in-tab { padding: 13px 26px; border: 1px solid #D6D3CB; border-radius: 4px; background: #fff; font: 500 16px/24px var(--f-display); letter-spacing: 1.2px; text-transform: uppercase; color: var(--ink); cursor: pointer; transition: background-color .2s, border-color .2s; }
.in-tab:hover { border-color: #C89B3C; }
.in-tab.is-active { border-color: #C89B3C; background: #C89B3C; }
.in-tab:focus-visible { outline: 3px solid var(--green); outline-offset: 2px; }

.in-featured { display: flex; min-height: 400px; margin-top: 28px; overflow: hidden; border-radius: 12px; background: var(--ink); box-shadow: 0 8px 24px rgba(0, 0, 0, .18); }
.in-featured[hidden], .in-card[hidden] { display: none; }
.in-featured__photo { width: 420px; flex: none; object-fit: cover; }
.in-featured__body { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; padding: 48px 56px; }
.in-featured__eyebrow { font: 500 14px/21px var(--f-meta); letter-spacing: 2.4px; text-transform: uppercase; color: #C89B3C; }
.in-featured__name { font: 500 48px/71px var(--f-display); color: #fff; }
.in-featured__text { font: 400 18px/27px var(--f-meta); color: #D1CCC7; }
.in-featured__teaches { font: 500 15px/22px var(--f-meta); white-space: pre-wrap; color: #C89B3C; }
.in-featured__btn { padding: 14px 26px; border-radius: 6px; background: #C89B3C; font: 500 15px/22px var(--f-meta); letter-spacing: 1px; text-transform: uppercase; color: var(--ink); transition: background-color .2s; }

.in-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; margin-top: 28px; }
.in-card { display: flex; flex-direction: column; min-height: 499px; overflow: hidden; border: 1px solid #ECEAE4; border-radius: 14px; background: #fff; box-shadow: 0 6px 18px rgba(0, 0, 0, .05); }
.in-card__photo { width: 100%; height: 250px; object-fit: cover; }
.in-card__body { display: flex; flex: 1; flex-direction: column; gap: 6px; padding: 20px 20px 22px; }
.in-card__name { font: 500 22px/33px var(--f-display); color: var(--ink); }
.in-card__tag { font: 500 12.5px/19px var(--f-meta); color: var(--ink); }
.in-card__service { font: 400 15.5px/23px var(--f-meta); color: #5B5758; }
.in-card__label { font: 500 13.5px/20px var(--f-meta); letter-spacing: 1.62px; text-transform: uppercase; color: var(--green); }
.in-card__teaches { font: 400 14.5px/21px var(--f-meta); color: var(--ink); }
.in-card__link { margin-top: auto; padding-top: 14px; font: 500 16px/24px var(--f-meta); color: var(--green); }
.tf a.in-card__link { color: var(--green); }
.tf a.in-card__link:hover { color: var(--ink); }
.in-train { display: flex; flex-direction: column; justify-content: center; gap: 14px; min-height: 499px; padding: 32px 28px; border-radius: 12px; background: var(--ink); }
.in-train__eyebrow { font: 500 13.5px/20px var(--f-meta); letter-spacing: 2.2px; text-transform: uppercase; color: #C89B3C; }
.in-train__title { font: 500 28px/41px var(--f-display); color: #fff; }
.in-train__text { font: 400 15.5px/23px var(--f-meta); color: #D1CCC7; }
.in-train__btn { height: 50px; border-radius: 6px; font-size: 16px; line-height: 24px; letter-spacing: .6px; }

.in-why { padding: 56px 0; background: #F6EFDF; }
.in-why__title { font: 500 36px/53px var(--f-display); color: var(--ink); }
.in-why__points { display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; margin-top: 28px; }
.in-why__points h3 { font: 500 22px/33px var(--f-display); color: var(--ink); }
.in-why__points h3::before { content: ""; display: block; width: 48px; height: 4px; margin-bottom: 10px; background: var(--green); }
.in-why__points p { margin-top: 10px; font: 400 16px/24px var(--f-meta); color: #5B5758; }

/* profile */
.ip-hero { position: relative; overflow: hidden; background: linear-gradient(90deg, #0D0C0C, #2B2724); color: #fff; }
.ip-hero__in { position: relative; display: flex; align-items: center; gap: 64px; height: 570px; }
.ip-hero__tree { position: absolute; left: 300px; top: -300px; width: 1100px; height: 1056px; max-width: none; object-fit: contain; pointer-events: none; }
.ip-hero__copy { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 16px; width: 716px; flex: none; }
.ip-crumbs { display: flex; flex-wrap: wrap; gap: 0 9px; font: 400 14px/21px var(--f-meta); color: #E8E0C4; }
.ip-crumbs a:hover { color: #D4A22F; }
.ip-hero__eyebrow { font: 500 14px/21px var(--f-meta); letter-spacing: 1.96px; text-transform: uppercase; color: #D4A22F; }
.ip-hero__name { font: 700 60px/89px var(--f-display); color: #fff; }
.ip-hero__name em { color: #D4A22F; }
.ip-hero__title { font: 500 17px/26px var(--f-meta); white-space: pre-wrap; color: #D4A22F; }
.ip-hero__intro { font: 400 18px/29px var(--f-meta); color: #F3EEDB; }
.ip-hero__btns { display: flex; flex-wrap: wrap; gap: 14px; }
.ip-btn { padding: 14px 26px; border-radius: 6px; background: #D4A22F; font: 500 15px/22px var(--f-meta); letter-spacing: .6px; text-transform: uppercase; color: var(--ink); transition: background-color .2s, color .2s; }
.tf a.ip-btn--line { padding: 14px 26px; border: 2px solid #fff; background: transparent; color: #fff; }
.tf a.ip-btn--line:hover { background: #fff; color: var(--ink); }
.ip-photo { position: relative; width: 420px; height: 460px; flex: none; }
.ip-photo::before { content: ""; position: absolute; inset: 22px -22px -22px 22px; border: 4px solid #D4A22F; border-radius: 16px; }
.ip-photo img { position: relative; width: 100%; height: 100%; border-radius: 16px; object-fit: cover; box-shadow: 0 18px 36px rgba(0, 0, 0, .35); }

.ip-strip { display: flex; justify-content: center; padding: 34px max(var(--gutter), 50% - 600px); background: #D4A22F; }
.ip-strip li { display: flex; flex: 1; flex-direction: column; align-items: center; gap: 12px; max-width: 300px; padding: 0 16px; text-align: center; font: 600 17px/26px var(--f-meta); color: var(--ink); }
.ip-strip li::before { content: ""; width: 40px; height: 4px; background: var(--ink); }

.ip-about { padding: 88px 0; background: #FAF9F4; }
.ip-about__in { display: flex; align-items: flex-start; gap: 64px; }
.ip-about__copy { width: 620px; flex: none; }
.ip-about__copy::before { content: ""; display: block; width: 72px; height: 6px; margin-bottom: 18px; background: #D4A22F; }
.ip-h2 { font: 500 36px/53px var(--f-display); color: var(--ink); }
.ip-about__copy p { margin-top: 18px; font: 400 17px/28px var(--f-meta); color: #716D63; }
.ip-creds, .ip-card { position: relative; overflow: hidden; border-radius: 10px; background: #fff; }
.ip-creds::before, .ip-card::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 10px; background: #D4A22F; }
.ip-creds { width: 482px; padding: 32px; box-shadow: 0 10px 28px rgba(36, 31, 31, .14); }
.ip-card__title { font: 500 26px/39px var(--f-display); color: var(--ink); }
.ip-stars { display: grid; gap: 14px; margin-top: 14px; }
.ip-stars li { display: flex; gap: 12px; font: 400 15px/22px var(--f-meta); color: var(--ink); }
.ip-stars li::before { content: "\2605"; width: 16px; flex: none; font: 500 16px/24px var(--f-meta); color: #D4A22F; }
.ip-stars--lg li { gap: 10px; font-size: 16px; line-height: 24px; }
.ip-stars--lg li::before { width: 13px; font: 400 13px/20px var(--f-meta); }

.ip-more { padding: 80px 0 72px; background: #ECE4D0; }
.ip-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.ip-card { display: flex; flex-direction: column; gap: 14px; padding: 28px; box-shadow: 0 8px 24px rgba(36, 31, 31, .12); }
.ip-card .ip-card__title::before { content: ""; display: block; width: 40px; height: 5px; margin-bottom: 14px; background: #D4A22F; }
.ip-card .ip-stars { margin-top: 0; }
.ip-class { display: flex; flex-direction: column; gap: 2px; font: 400 13px/20px var(--f-meta); white-space: pre-wrap; color: #5B5758; }
.ip-class strong { font: 500 16px/24px var(--f-meta); color: var(--ink); }
.tf a.ip-card__link { font: 500 14px/21px var(--f-meta); color: var(--green); }
.tf a.ip-card__link:hover { color: var(--ink); }
.ip-quote { margin: 0; font: 400 15px/24px var(--f-meta); color: #5B5758; }
.ip-quote p::before, .ip-quote p::after { font: italic 700 30px/0 var(--f-display); color: #D4A22F; vertical-align: -4px; }
.ip-quote p::before { content: "\201C"; margin-right: 3px; }
.ip-quote p::after { content: "\201D"; margin-left: 3px; }
.tf a.ip-back { display: inline-block; margin-top: 32px; font: 500 15px/22px var(--f-meta); color: #4E6105; }
.tf a.ip-back:hover { color: var(--green); }

@media (max-width: 1360px) {
	.tf-skills__title { font-size: 44px; line-height: 64px; }
	.ip-hero__copy { width: auto; flex: 1; min-width: 0; }
}
@media (max-width: 1180px) {
	.tf-skills__in { flex-direction: column; align-items: flex-start; padding: 48px 0; }
	.in-hero { height: auto; padding: 72px 0 80px; }
	.in-hero__lead br { display: none; }
	.in-hero__lead { max-width: 560px; }
	.in-dir__tree { left: auto; right: -300px; }
	.in-grid { grid-template-columns: repeat(3, 1fr); }
	.in-why__points { grid-template-columns: repeat(2, 1fr); }
	.ip-hero__in { flex-direction: column; align-items: flex-start; height: auto; padding: 64px 0 88px; gap: 56px; }
	.ip-strip { flex-wrap: wrap; row-gap: 24px; }
	.ip-strip li { flex-basis: 50%; max-width: none; }
	.ip-about__in { flex-direction: column; }
	.ip-about__copy, .ip-creds { width: 100%; max-width: 720px; }
	.ip-cards { grid-template-columns: 1fr; max-width: 720px; }
}
@media (max-width: 900px) {
	.in-grid { grid-template-columns: repeat(2, 1fr); }
	.in-featured { flex-direction: column; }
	.in-featured__photo { width: 100%; height: 380px; object-position: center 20%; }
	.in-featured__body { padding: 32px 24px; }
}
@media (max-width: 720px) {
	.tf-skills__title { font-size: 34px; line-height: 44px; }
	.tf-skills__btns { flex-direction: column; align-self: stretch; }
	.tf-skills__btn { white-space: normal; }
	.in-hero__title { font-size: 48px; line-height: 58px; }
	.in-hero::before { background: rgba(35, 31, 32, .82); }
	.in-h2 { font-size: 34px; line-height: 44px; }
	.in-lead { font-size: 16px; line-height: 25px; }
	.in-tab { padding: 10px 16px; font-size: 14px; }
	.in-featured__name { font-size: 34px; line-height: 44px; }
	.in-why__points { grid-template-columns: 1fr; gap: 24px; }
	.ip-hero__name { font-size: 42px; line-height: 52px; }
	.ip-hero__intro { font-size: 16px; line-height: 26px; }
	.ip-photo { width: calc(100% - 22px); max-width: 420px; height: auto; aspect-ratio: 420 / 460; }
	.ip-strip li { flex-basis: 100%; }
	.ip-about { padding: 56px 0; }
	.ip-creds { padding: 28px 22px; }
	.ip-more { padding: 56px 0; }
}
@media (max-width: 560px) {
	.in-grid { grid-template-columns: 1fr; }
	.in-card { min-height: 0; }
	.in-card__photo { height: 300px; }
}

/* ---------- about (1440 frame, full-width wrap) ---------- */
@font-face { font-family: "Anek Bangla"; src: url(fonts/anekbangla-600.woff2) format("woff2"); font-weight: 600; font-display: swap; }
@font-face { font-family: "Roboto"; src: url(fonts/roboto-300.woff2) format("woff2"); font-weight: 300; font-display: swap; }

.ab-btn { height: 48px; padding: 0 34px; border-radius: 12px; font-weight: 400; line-height: 16px; letter-spacing: .2px; }
.ab-btn--arrow { gap: 12px; }
.ab-btn--arrow .ic { width: 24px; height: 16px; }
.ab-eyebrow { display: flex; align-items: center; gap: 20px; font: 400 16px/28px var(--f-display); letter-spacing: .08px; text-transform: uppercase; color: var(--gold); }
.ab-eyebrow::after { content: ""; width: 130px; height: 1px; background: currentColor; }
.ab-eyebrow--green { color: var(--green); }
.ab-eyebrow--lg { font-weight: 600; font-size: 18px; color: #C89B3C; }
.ab-h2 { margin-top: 11px; font: 600 72px/90px var(--f-display); letter-spacing: .2px; text-transform: uppercase; color: #2D3230; }
.ab-h2 em { color: var(--gold); }
.ab-h2--light { color: #fff; }

.ab-hero { position: relative; height: 520px; background: var(--ink) var(--bg) center / cover no-repeat; color: #fff; }
.ab-hero::before { content: ""; position: absolute; inset: 0; background: rgba(35, 31, 32, .72); }
.ab-hero__in { position: relative; display: flex; justify-content: space-between; gap: 40px; height: 100%; }
.ab-hero__copy { padding-top: 81px; }
.ab-hero__title { padding: 8.5px 0; font: 600 72px/90px var(--f-display); letter-spacing: .2px; text-transform: uppercase; color: #fff; }
.ab-hero__title em { color: var(--gold); }
.ab-hero__crumbs { margin-top: 12px; color: #FFFDF8; }
.ab-hero__lead { margin-top: 3px; font: 400 18px/27px var(--f-body); color: rgba(255, 255, 255, .8); }
.ab-hero .ab-btn { margin-top: 34px; padding: 0 32px; font-weight: 600; }
.ab-stats { display: grid; grid-template-columns: 1fr 1fr; align-self: flex-start; width: 463px; flex: none; margin-top: 90px; padding: 7px 0; border: 2px solid #fff; border-radius: 16px; background: rgba(35, 31, 32, .45); }
.ab-stats li { display: flex; flex-direction: column; align-items: center; height: 161px; padding: 19px 20px 0; text-align: center; }
.ab-stats li:nth-child(odd) { border-right: 1px solid rgba(255, 255, 255, .85); }
.ab-stats li:nth-child(-n+2) { border-bottom: 1px solid rgba(255, 255, 255, .85); }
.ab-stats li:nth-child(n+3) { padding-top: 18px; }
.ab-stats strong { font: 600 50px/62px "Anek Bangla", var(--f-display); letter-spacing: .2px; }
.ab-stats span { font: 300 20px/24px "Roboto", var(--f-ui); letter-spacing: .2px; }
.ab-stats span::before, .ab-stats__live b::after { content: ""; display: block; width: 20px; height: 2px; margin: 11px auto 16px; background: rgba(255, 255, 255, .2); }
.ab-stats__live .ic { width: 40px; height: 40px; margin-top: -8px; }
.ab-stats__live b { display: block; margin-top: 6px; font: 600 17px/20px "Anek Bangla", var(--f-display); letter-spacing: .2px; text-transform: uppercase; }
.ab-stats__live b::after { margin: 6px auto 6px; }
.ab-stats__live small { font: 300 14px/18px "Roboto", var(--f-ui); letter-spacing: .2px; }

.ab-found { position: relative; padding: 100px 0 80px; overflow: hidden; background: #fff; }
.ab-found::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 80px; background: #FAF9F4; }
.ab-found::after { content: ""; position: absolute; left: -25%; top: 0; width: 150%; height: 600px; border-radius: 50%; background: #fff; }
.ab-found .tf-wrap { position: relative; z-index: 1; }
.ab-split { display: grid; grid-template-columns: minmax(0, 1fr) 552px; gap: 40px; }
.ab-split__text { max-width: 420px; margin-top: 29px; font: 400 18px/27px var(--f-body); color: var(--ink); }
.ab-split__text--why { max-width: 560px; margin-top: 84px; color: #fff; }
.ab-split .ab-h2, .ab-team .ab-h2, .ab-h2--emp { padding-block: 8.5px; }
.ab-pvm { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 32px; }
.ab-pvm li { display: flex; flex-direction: column; height: 442px; padding: 16px 20px 15px; background: #F2F2F0; }
.ab-pvm h3 { font: 500 28px/41px var(--f-display); letter-spacing: -.2px; color: var(--ink); }
.ab-pvm p { max-width: 400px; margin-top: 6px; font: 400 18px/27px var(--f-body); color: var(--ink); }
.ab-pvm li:first-child p { margin-top: 11px; }
.ab-pvm img { width: 100%; height: 217px; margin-top: auto; object-fit: cover; }

.ab-why { padding: 50px 0 60px; background: var(--ink); }
.ab-why .ab-eyebrow { color: #C89B3C; }
.ab-reasons { margin-top: 32px; border-bottom: 1px solid rgba(200, 155, 60, .4); }
.ab-reasons li { display: flex; align-items: center; min-height: 92px; border-top: 1px solid rgba(200, 155, 60, .4); }
.ab-reasons span { width: 180px; flex: none; font: 600 48px/71px var(--f-display); color: #C89B3C; }
.ab-reasons p { max-width: 1060px; font: 400 24px/36px var(--f-meta); color: #fff; }
.ab-why__foot { display: flex; justify-content: space-between; gap: 32px; min-height: 88px; margin-top: 24px; }
.ab-why__foot p { padding-top: 17px; font: 400 18px/27px var(--f-body); color: #fff; }
.ab-why__foot .ab-btn { margin-top: 20px; }

.ab-team { padding: 64px 0; background: #fff; }
.ab-team__in { display: grid; grid-template-columns: minmax(0, 1fr) 690px; gap: 40px; }
.ab-team .ab-eyebrow::after { width: 116px; }
.ab-team__text { max-width: 363px; margin-top: 20px; font: 400 18px/27px var(--f-body); color: var(--ink); }
.ab-team__copy .ab-btn { margin-top: 7px; }
.ab-tiles { display: grid; align-content: start; gap: 16px; margin-top: 84px; }
.ab-tiles li { min-height: 124px; padding: 26px 6px 26px 30px; border: 1px solid #EADFC3; border-left: 8px solid #C89B3C; border-radius: 12px; background: #F6EFDF; }
.ab-tiles h3 { font: 600 28px/41px var(--f-display); text-transform: uppercase; color: var(--ink); }
.ab-tiles p { margin-top: 4px; font: 400 16.5px/25px var(--f-meta); color: var(--ink); }

.ab-emp { padding: 60px 0 59px; background: var(--ink); }
.ab-emp__in { display: grid; grid-template-columns: minmax(0, 1fr) 600px; align-items: start; gap: 40px; }
.ab-emp__in > div { padding: 20px 0 0 0; }
.ab-emp .ab-eyebrow::after { width: 122px; }
.ab-h2--emp { font-weight: 700; color: #fff; }
.ab-h2--emp em { color: #B89A4A; }
.ab-emp__text { margin-top: 8px; font: 500 20px/24px var(--f-meta); letter-spacing: .08px; color: #fff; }
.ab-emp .ab-btn { margin-top: 44px; }
.ab-emp__img { width: 600px; height: 401px; margin-right: 20px; border: 2px solid #C89B3C; border-radius: 8px; object-fit: cover; justify-self: end; }

.ab-faq { padding: 64px 0; background: #fff; }
.ab-faq__in { display: grid; grid-template-columns: minmax(0, 1fr) 685px; gap: 40px; }
.ab-faq .ab-eyebrow::after { width: 128px; }
.ab-h2--faq { margin-top: 19px; font-weight: 700; color: var(--ink); }
.ab-faq__text { max-width: 560px; margin-top: 12px; font: 400 18px/27px var(--f-body); color: var(--ink); }
.ab-faq__list { display: flex; flex-direction: column; align-items: flex-start; margin-top: 63px; }
.ab-acc { width: 100%; border-bottom: 1px solid #E5E5E0; }
.ab-acc .tf-q__btn { display: flex; width: 100%; border: 0; background: none; text-align: left; align-items: center; justify-content: space-between; gap: 24px; min-height: 63px; padding: 5px 36px 5px 31px; font: 500 18px/27px var(--f-body); color: var(--ink); list-style: none; cursor: pointer; }
.ab-acc .tf-q__btn .ic { flex: none; width: 20px; height: 20px; color: var(--gold); transition: transform .2s; }
.ab-acc.is-open .tf-q__btn .ic { transform: rotate(180deg); }
.ab-acc .tf-q__btn:hover { color: var(--green); }
.tf .tf-q__btn:focus-visible { outline: 2px solid var(--green); outline-offset: 2px; }
.ab-acc .tf-q__panel p { padding: 0 38px 20px 30px; font: 400 18px/24px var(--f-body); letter-spacing: .08px; color: var(--text); }
.ab-faq__btn { display: inline-flex; align-items: center; height: 48px; margin-top: 32px; padding: 0 32px; border: 2px solid var(--green); border-radius: 12px; font: 400 16px/16px var(--f-display); letter-spacing: .2px; text-transform: uppercase; color: var(--green); transition: background-color .2s, color .2s; }
.tf a.ab-faq__btn { color: var(--green); }
.tf a.ab-faq__btn:hover { background: var(--green); color: #fff; }

@media (max-width: 1360px) {
	.ab-h2, .ab-hero__title { font-size: 60px; line-height: 76px; }
	.ab-split { grid-template-columns: minmax(0, 1fr) 460px; }
	.ab-team__in, .ab-faq__in { grid-template-columns: minmax(0, 1fr) minmax(0, 600px); }
	.ab-emp__in { grid-template-columns: minmax(0, 1fr) minmax(0, 520px); }
	.ab-emp__img { width: 100%; height: auto; aspect-ratio: 600 / 401; margin-right: 0; }
}
@media (max-width: 1180px) {
	.ab-hero { height: auto; }
	.ab-hero__in { flex-direction: column; padding-bottom: 64px; }
	.ab-hero__copy { padding-top: 64px; }
	.ab-stats { margin-top: 0; }
	.ab-split, .ab-team__in, .ab-emp__in, .ab-faq__in { grid-template-columns: 1fr; gap: 0; }
	.ab-split__text, .ab-split__text--why { margin-top: 16px; }
	.ab-pvm { grid-template-columns: 1fr 1fr; margin-top: 40px; }
	.ab-pvm li { height: auto; }
	.ab-pvm img { margin-top: 24px; }
	.ab-tiles, .ab-faq__list { margin-top: 40px; }
	.ab-emp__img { max-width: 600px; margin-top: 40px; justify-self: start; }
	.ab-reasons span { width: 110px; }
}
@media (max-width: 720px) {
	.ab-h2, .ab-hero__title { font-size: 40px; line-height: 50px; }
	.ab-hero__title, .ab-split .ab-h2, .ab-team .ab-h2, .ab-h2--emp { padding-block: 4px; }
	.ab-stats { width: 100%; }
	.ab-stats li { height: auto; min-height: 150px; padding-inline: 10px; padding-bottom: 16px; }
	.ab-stats strong { font-size: 38px; line-height: 50px; }
	.ab-stats span { font-size: 17px; }
	.ab-found { padding-top: 72px; }
	.ab-pvm { grid-template-columns: 1fr; }
	.ab-reasons li { align-items: flex-start; padding: 16px 0; }
	.ab-reasons span { width: 64px; font-size: 32px; line-height: 40px; }
	.ab-reasons p { font-size: 18px; line-height: 28px; }
	.ab-why__foot { flex-direction: column; gap: 0; }
	.ab-tiles li { padding: 20px 18px 20px 22px; }
	.ab-tiles h3 { font-size: 22px; line-height: 30px; }
	.ab-acc .tf-q__btn { padding: 12px 8px 12px 12px; }
	.ab-acc .tf-q__panel p { padding: 0 12px 20px; }
	.ab-eyebrow::after { width: 60px; }
}

/* ---------- contact (1440 frame, content 1380) ---------- */
.tf-wrap--1380 { width: min(1380px, 100% - 2 * var(--gutter)); }
.ct { position: relative; padding: 111px 0 100px; overflow: hidden; background: #fff; }
.ct__tree { position: absolute; top: 0; left: calc(50% + 245px); width: 595px; height: 338px; overflow: hidden; pointer-events: none; -webkit-mask-image: linear-gradient(#000 calc(100% - 45px), transparent); mask-image: linear-gradient(#000 calc(100% - 45px), transparent); }
.ct__tree img { position: absolute; left: -55px; top: 14px; width: 660px; height: 660px; max-width: none; }
.ct .tf-wrap { position: relative; }
.ct__head { text-align: center; }
.ct__title { padding: 8.5px 0; font: 700 72px/90px var(--f-display); letter-spacing: .2px; text-transform: uppercase; color: var(--ink); }
.ct__title em { color: #C89B3C; }
.ct__lead { margin-top: 13px; font: 400 16px/24px var(--f-body); letter-spacing: .08px; color: var(--text); }

.ct-box { display: flex; gap: 40px; margin-top: 58px; padding-right: 20px; border-radius: 40px; background: #fff; }
.ct-info { width: 601px; flex: none; padding: 50px 40px 38px; border-radius: 40px; background: var(--ink); color: #F6EFDF; }
.ct-info__title { font: 700 36px/43px var(--f-display); letter-spacing: .08px; color: #fff; }
.ct-info__list { display: grid; gap: 15px; margin-top: 34px; }
.ct-info__list li { display: grid; grid-template-columns: 24px 1fr; column-gap: 10px; }
.ct-info__list .ic { width: 24px; height: 24px; margin-top: 6px; color: #C89B3C; }
.ct-info__list li > .ic:not([class*="line"]) { stroke-width: 1.6; }
.ct-info__list h3 { font: 500 20px/30px var(--f-display); letter-spacing: .08px; color: #C89B3C; }
.ct-info__list p { grid-column: 2; margin-top: 9px; font: 400 16px/24px var(--f-body); letter-spacing: .08px; }
.ct-info__list a:hover { color: #C89B3C; }
.ct-info__follow { margin-top: 13px; font: 600 20px/24px var(--f-display); letter-spacing: -.2px; color: #fff; }
.ct-info__social { margin-top: 20px; gap: 5px; }
.ct-info__social a { width: 32px; height: 32px; }
.ct-info__team { margin-top: 28px; padding-top: 23px; border-top: 1px solid rgba(200, 155, 60, .5); }
.ct-info__team h3 { font: 600 20px/30px var(--f-display); letter-spacing: .5px; text-transform: uppercase; color: #C89B3C; }
.ct-info__team p { margin-top: 6px; font: 400 16px/24px var(--f-body); }
.ct-info__btn { margin-top: 16px; padding: 12px 24px; line-height: 24px; letter-spacing: .5px; }

.ct-form { flex: 1; min-width: 0; padding-top: 52px; }
.ct-form__title { font: 700 36px/43px var(--f-display); letter-spacing: .08px; text-transform: uppercase; color: var(--ink); }
.ct-form .frm-fluent-form { margin-top: 32px; }
.ct-form .frm-fluent-form fieldset { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 24px; }
.ct-form .frm-fluent-form .full-col { grid-column: 1 / -1; }
.ct-form .frm-fluent-form .ff-el-group { margin-bottom: 26px; }
.ct-form .frm-fluent-form .ff-t-container, .ct-form .frm-fluent-form .ff-t-cell { display: block; padding: 0; }
.ct-form .frm-fluent-form .ff-el-input--label { margin-bottom: 6px; }
.ct-form .frm-fluent-form .ff-el-input--label label { font: 500 16px/28px var(--f-meta); letter-spacing: .08px; color: var(--ink); }
.ct-form .frm-fluent-form .ff-el-is-required.asterisk-right label::after { margin-left: 3px; color: #F56C6C; }
.ct-form .frm-fluent-form .ff-el-form-control { height: 48px; padding: 0 17px; border: 1px solid #C89B3C; border-radius: 12px; background: #fff; box-shadow: none; font: 400 15px/22px var(--f-meta); color: var(--ink); }
.ct-form .frm-fluent-form .ff-el-form-control::placeholder { color: var(--text); opacity: 1; }
.ct-form .frm-fluent-form select.ff-el-form-control { height: 48px !important; padding: 0 44px 0 21px !important; font: 400 15px/24px var(--f-meta) !important; -webkit-appearance: none; appearance: none; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='6'%3E%3Cpath d='M0 0h12L6 6z' fill='%23231F20'/%3E%3C/svg%3E") right 20px center no-repeat; cursor: pointer; }
.ct-form .frm-fluent-form textarea.ff-el-form-control { height: 175px; padding: 14px 17px; resize: vertical; }
.ct-form .frm-fluent-form .ff-el-form-control:focus { border-color: var(--green); outline: 2px solid rgba(106, 128, 2, .25); outline-offset: 0; }
.ct-form .frm-fluent-form .ff-el-group:has(textarea) { margin-bottom: 24px; }
.ct-form .frm-fluent-form .ff_submit_btn_wrapper { margin-bottom: 0; }
.ct-form .frm-fluent-form .ff-btn-submit { width: 100%; height: 42px; padding: 0; border: 0; border-radius: 7px; background: var(--green) !important; font: 500 16px/24px var(--f-meta); color: #fff !important; cursor: pointer; transition: background-color .2s; }
.ct-form .frm-fluent-form .ff-btn-submit:hover { background: #586b01 !important; }
.ct-form .ff-message-success { padding: 20px 24px; border: 1px solid var(--green); border-radius: 12px; background: #F6F8EC; font: 500 16px/24px var(--f-meta); color: var(--ink); }
.ct-form .error.text-danger { margin-top: 6px; font: 400 13px/18px var(--f-meta); color: #D03A3A; }

.ct-faq { padding: 80px 0 68px; background: #F6EFDF; }
.ct-faq .ab-faq__in { grid-template-columns: minmax(0, 1fr) 675px; }
.ct-faq__title { margin-top: 11px; padding-block: 8.5px; font-weight: 700; color: var(--ink); }
.ct-faq__text { max-width: 560px; margin-top: 12px; font: 400 16px/24px var(--f-body); color: var(--ink); }
.ct-faq__list { gap: 10px; margin-top: 39px; }
.ct-acc { border: 0; border-radius: 8px; background: #fff; }
.ct-acc .tf-q__btn { min-height: 54px; }
.ct-acc .tf-q__panel p { font-size: 16px; }
.ct-acc .tf-q__panel p + p { margin-top: -12px; }
.tf .ct-acc a, .tf .ab-acc a { color: var(--green); text-decoration: underline; }
.ct-faq .ab-faq__btn { margin-top: 10px; }

@media (max-width: 1360px) {
	.ct-info { width: 46%; }
	.ct-faq .ab-faq__in { grid-template-columns: minmax(0, 1fr) minmax(0, 600px); }
}
@media (max-width: 1180px) {
	.ct__tree { left: auto; right: -200px; }
	.ct-box { flex-direction: column-reverse; padding: 0; background: none; }
	.ct-info { width: 100%; }
	.ct-faq .ab-faq__in { grid-template-columns: 1fr; }
	.ct-faq__list { margin-top: 40px; }
}
@media (max-width: 720px) {
	.ct { padding: 64px 0; }
	.ct__title { font-size: 48px; line-height: 60px; }
	.ct__lead br, .ct-info__list br { display: none; }
	.ct__tree { display: none; }
	.ct-box { margin-top: 40px; }
	.ct-info { padding: 36px 24px; border-radius: 24px; }
	.ct-form { padding-top: 0; }
	.ct-form__title { font-size: 30px; line-height: 38px; }
	.ct-form .frm-fluent-form fieldset { grid-template-columns: 1fr; }
	.ct-faq { padding: 64px 0; }
	.ct-faq__title { font-size: 40px; line-height: 50px; padding-block: 4px; }
	.ab-eyebrow--lg::after { display: none; }
}

/* ---------- employer & group training (1440 frame, content 1380) ---------- */
.em-btn { height: 52px; padding: 0 28px; line-height: 24px; letter-spacing: .16px; }
.em-tile { display: inline-grid; place-items: center; width: 48px; height: 33px; border-radius: 8px; background: #F2F2F0; color: #C89B3C; }
.em-tile .ic { width: 24px; height: 24px; margin-top: -9px; }
.em-tile--cream { background: #F6EFDF; }
.em-tile--glass { background: rgba(255, 255, 255, .18); }
.em-h2 em, .em-programs__title em, .em-built__title em, .em-how__title em, .em-form__title em, .em-hero__title em { color: #C89B3C; }

.em-hero { position: relative; height: 756px; padding-top: 120px; background: var(--ink) var(--bg) center / cover no-repeat; color: #fff; }
.em-hero::before { content: ""; position: absolute; inset: 0; background: rgba(35, 31, 32, .82); }
.em-hero .tf-wrap { position: relative; }
.em-crumbs { font: 500 16px/16px var(--f-ui); letter-spacing: -.32px; word-spacing: 3px; }
.em-crumbs a:hover { color: var(--gold); }
.em-hero__title { margin-top: -5px; padding: 17px 0; font: 700 90px/99px var(--f-display); letter-spacing: .08px; text-transform: uppercase; }
.em-hero__sub { margin-top: 1px; font: 600 24px/34px var(--f-ui); letter-spacing: -.48px; text-transform: uppercase; }
.em-hero__text { max-width: 900px; margin-top: 17px; font: 400 20px/30px var(--f-body); }
.em-hero .em-btn { margin-top: 31px; }

.em-feats { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(3, 1fr); width: min(1440px, 100%); min-height: 187px; margin: -70px auto 0; padding: 40px 25px 30px; border-radius: 16px; background: #fff; box-shadow: 0 15px 35px rgba(0, 0, 0, .12); text-align: center; }
.em-feats li { display: flex; flex-direction: column; align-items: center; padding: 0 8px; }
.em-feats li + li { border-left: 2px solid #C89B3C; }
.em-feats li + li { border-image: linear-gradient(transparent 4px, #C89B3C 4px, #C89B3C 104px, transparent 104px) 1; }
.em-feats h2 { font: 700 32px/35px var(--f-display); letter-spacing: -1.28px; text-transform: uppercase; color: var(--ink); }
.em-feats p { max-width: 446px; margin-top: 13px; font: 400 16px/24px var(--f-body); color: var(--ink); }
.em-feats li:nth-child(2) p { max-width: 430px; margin-top: 1px; }

.em-works { margin-top: -117px; padding: 227px 0 80px; background: #F6EFDF; }
.em-works__in { display: grid; grid-template-columns: minmax(0, 1fr) 607px; gap: 40px; }
.em-works__copy { padding-top: 88px; }
.em-h2 { padding: 12px 0; font: 700 62px/68px var(--f-display); letter-spacing: .08px; text-transform: uppercase; color: #2D3230; }
.em-works__copy p { max-width: 712px; margin-top: 8px; font: 400 18px/27px var(--f-body); color: var(--ink); }
.em-works__copy p + p { margin-top: 16px; }
.em-works__img { width: 607px; height: 496px; object-fit: cover; }

.em-programs { padding: 80px 0 90px; background: var(--ink); }
.em-eyebrow { font: 700 14px/14px var(--f-ui); letter-spacing: 1.54px; text-transform: uppercase; color: #C89B3C; }
.em-programs__head { display: grid; grid-template-columns: minmax(0, 1fr) 670px; align-items: end; gap: 30px; margin-top: 21px; }
.em-programs__title { padding: 10.5px 0; font: 700 72px/86px var(--f-display); letter-spacing: -3.2px; text-transform: uppercase; color: #fff; }
.em-programs__head p { padding-bottom: 3px; font: 400 18px/27px var(--f-body); color: #E5E0D1; }
.em-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 11px; }
.em-card { position: relative; min-height: 330px; padding: 32px 24px; overflow: hidden; border-radius: 16px; background: #fff; box-shadow: 0 6px 20px rgba(0, 0, 0, .1); }
.em-card::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 8px; background: #C89B3C; }
.em-card h3 { margin-top: 22px; font: 600 24px/32px var(--f-ui); letter-spacing: -.56px; text-transform: uppercase; color: var(--ink); }
.em-checks { display: grid; gap: 18px; margin-top: 27px; }
.em-checks li { display: flex; align-items: center; gap: 12px; font: 400 16px/24px var(--f-ui); letter-spacing: -.32px; color: var(--ink); }
.em-checks .ic { width: 16px; height: 16px; color: #C89B3C; }

.em-built { padding: 90px 0; background: #F6EFDF; }
.em-built__in { display: grid; grid-template-columns: 674px minmax(0, 1fr); align-items: start; gap: 32px; }
.em-built__card { position: relative; min-height: 575px; padding: 67px 36px 46px; overflow: hidden; border-radius: 16px; background: #fff; box-shadow: 0 6px 20px rgba(0, 0, 0, .1); }
.em-built__card::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 8px; background: #C89B3C; }
.em-built__title { margin-top: -3px; font: 700 40px/48px var(--f-display); letter-spacing: .08px; text-transform: uppercase; color: var(--ink); }
.em-built__sub { margin-top: 13px; font: 400 18px/27px var(--f-body); color: var(--ink); }
.em-built__list { margin-top: 36px; }
.em-built__list li { display: flex; align-items: center; gap: 16px; padding-bottom: 13px; border-bottom: 1px solid rgba(200, 155, 60, .35); font: 500 19px/28px var(--f-ui); letter-spacing: -.4px; color: var(--ink); }
.em-built__list li + li { padding-top: 14px; }
.em-built__list li:last-child { padding-bottom: 0; border-bottom: 0; }
.em-built__check { display: grid; place-items: center; width: 28px; height: 28px; flex: none; border-radius: 50%; background: #C89B3C; color: #fff; }
.em-built__check .ic { width: 14px; height: 14px; stroke-width: 3; }
.em-frame { position: relative; }
.em-frame::before { content: ""; position: absolute; inset: 16px -16px -16px 16px; border: 3px solid #C89B3C; }
.em-frame img { position: relative; width: 100%; height: 100%; object-fit: cover; }
.em-frame--right { width: 658px; height: 527px; margin-top: 16px; justify-self: end; margin-right: 16px; }
.em-frame--left { align-self: start; width: 658px; height: 435px; margin: 79px 0 0 16px; }
.em-frame--left::before { inset: 16px 16px -16px -16px; }

.em-flex { padding: 90px 0; background: var(--ink); }
.em-flex__in { display: grid; grid-template-columns: minmax(0, 1fr) 674px; align-items: center; gap: 32px; }
.em-flex__copy { padding: 44px 36px; }
.em-flex__copy .em-tile { color: #fff; }
.em-flex__title { margin-top: 20px; font: 500 36px/47px var(--f-display); letter-spacing: 1.08px; text-transform: uppercase; color: #fff; }
.em-flex__copy > p { margin-top: 18px; font: 400 18px/27px var(--f-body); color: #EBE5D9; }
.em-options { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; margin-top: 12px; }
.em-options li { position: relative; display: flex; align-items: center; gap: 12px; min-height: 84px; padding: 8px 16px 8px 22px; overflow: hidden; border-radius: 12px; background: rgba(255, 255, 255, .08); font: 500 16px/23px var(--f-ui); letter-spacing: -.4px; color: #fff; }
.em-options li::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 5px; background: #C89B3C; }
.em-options .ic { width: 18px; height: 18px; color: #C89B3C; }

.em-how { padding: 71px 0 80px; background: #F6EFDF; }
.em-how__title { padding: 8.5px 0; font: 700 52px/60px var(--f-display); letter-spacing: .5px; text-transform: uppercase; color: var(--ink); }
.em-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 42px; }
.em-step { position: relative; min-height: 272px; padding: 34px 28px 33px; border-radius: 16px; background: #fff; box-shadow: 0 6px 20px rgba(0, 0, 0, .1); }
.em-step::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 8px; border-radius: 16px 16px 0 0; background: #C89B3C; }
.em-step__num { display: block; font: 700 56px/64px var(--f-display); color: #C89B3C; }
.em-step__icon { position: absolute; top: 32px; right: 28px; display: grid; place-items: center; width: 60px; height: 60px; border: 2px solid var(--green); border-radius: 50%; background: #fff; color: var(--green); }
.em-step__icon .ic { width: 28px; height: 28px; }
.em-step h3 { margin-top: 20px; font: 600 22px/29px var(--f-ui); letter-spacing: -.2px; text-transform: uppercase; color: var(--ink); }
.em-step p { margin-top: 14px; font: 400 17px/26px var(--f-ui); letter-spacing: -.36px; color: #454042; }
.em-step__arrow { position: absolute; z-index: 1; top: 120px; right: -28px; display: grid; place-items: center; width: 32px; height: 32px; border: 3px solid #fff; border-radius: 50%; background: #C89B3C; color: var(--ink); }
.em-step__arrow .ic { width: 16px; height: 16px; stroke-width: 3; }

.em-form { width: min(1440px, 100%); margin: 100px auto 0; border-radius: 24px; background: var(--ink); color: #fff; scroll-margin-top: 20px; }
.em-form__in { padding: 68px 80px 60px; }
.em-form__title { padding: 11.5px 0; font: 700 60px/66px var(--f-display); letter-spacing: -2.4px; text-transform: uppercase; color: #fff; }
.em-form__lead { max-width: 900px; margin-top: 12px; font: 400 18px/27px var(--f-body); }
.em-form .frm-fluent-form { margin-top: 50px; }
.em-form .frm-fluent-form fieldset { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 28px; }
.em-form .frm-fluent-form .full-col { grid-column: 1 / -1; }
.em-form .frm-fluent-form .ff-el-group { margin-bottom: 26px; }
.em-form .frm-fluent-form .ff-el-input--label { margin-bottom: 8px; padding: 0; }
.em-form .frm-fluent-form .ff-el-input--label label { font: 500 15px/20px var(--f-meta); letter-spacing: .08px; color: #fff; }
.em-form .frm-fluent-form .ff-el-is-required.asterisk-right label::after { margin-left: 4px; color: #C89B3C; }
.em-form .frm-fluent-form .ff-el-form-control { height: 52px !important; padding: 0 18px !important; border: 0; border-radius: 8px; background-color: #fff; box-shadow: none; font: 400 14px/17px var(--f-ui) !important; color: var(--ink); }
.em-form .frm-fluent-form .ff-el-form-control::placeholder { color: #8A8A85; opacity: 1; }
.em-form .frm-fluent-form select.ff-el-form-control { padding-right: 48px !important; -webkit-appearance: none; appearance: none; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='8' fill='none' stroke='%236A8002' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 1l6 6 6-6'/%3E%3C/svg%3E") right 22px center no-repeat; cursor: pointer; }
.em-form .frm-fluent-form select.ff-el-form-control:invalid, .em-form .frm-fluent-form select.ff-el-form-control.is-placeholder { color: #8A8A85; }
.em-form .frm-fluent-form textarea.ff-el-form-control { height: 120px !important; padding: 15px 18px !important; resize: vertical; }
.em-form .frm-fluent-form .ff-el-form-control:focus { outline: 2px solid #C89B3C; outline-offset: 2px; }
.em-form .frm-fluent-form .ff-el-group:has(textarea) { margin-bottom: 32px; }
.em-form .frm-fluent-form .ff-tcca-note-wrap { grid-column: 1; margin: 0; align-self: center; }
.em-form .ff-tcca-note { width: max-content; max-width: calc(200% - 240px); font: 400 13px/20px var(--f-meta); color: #C7C4BD; }
.em-form .frm-fluent-form .ff_submit_btn_wrapper { grid-column: 2; margin: 0; text-align: right; }
.em-form .frm-fluent-form .ff-btn-submit { height: 42px; padding: 0 28px; border: 0; border-radius: 6px; background: var(--green) !important; font: 700 14px/14px var(--f-display); letter-spacing: .6px; text-transform: uppercase; color: #fff !important; cursor: pointer; }
.em-form .frm-fluent-form .ff-btn-submit:hover { background: #586b01 !important; }
.em-form .ff-message-success { padding: 24px; border: 1px solid #C89B3C; border-radius: 12px; font: 500 17px/26px var(--f-meta); color: #fff; }
.em-form .error.text-danger { margin-top: 6px; font: 400 13px/18px var(--f-meta); color: #FF9B9B; }

@media (max-width: 1360px) {
	.em-works__in { grid-template-columns: minmax(0, 1fr) minmax(0, 520px); }
	.em-works__img { width: 100%; height: auto; aspect-ratio: 607 / 496; }
	.em-programs__head { grid-template-columns: 1fr; }
	.em-built__in, .em-flex__in { grid-template-columns: 1fr 1fr; }
	.em-frame--right, .em-frame--left { width: calc(100% - 16px); height: auto; aspect-ratio: 658 / 527; }
	.em-feats h2 { font-size: 26px; line-height: 30px; letter-spacing: -.8px; }
	.em-h2 { font-size: 52px; line-height: 58px; }
}
@media (max-width: 1180px) {
	.em-hero { height: auto; padding: 80px 0 140px; }
	.em-works__in, .em-built__in, .em-flex__in { grid-template-columns: 1fr; gap: 56px; }
	.em-works__copy { padding-top: 0; }
	.em-works { padding-top: 180px; }
	.em-cards, .em-steps { grid-template-columns: 1fr; max-width: 640px; }
	.em-step__arrow { display: none; }
	.em-built__card { min-height: 0; }
	.em-frame--right { justify-self: start; }
	.em-flex__copy { padding: 0; }
	.em-frame--left { margin-top: 0; }
}
@media (max-width: 900px) {
	.em-feats { grid-template-columns: 1fr; width: calc(100% - 2 * var(--gutter)); gap: 24px; padding: 32px 20px; }
	.em-feats li + li { padding-top: 24px; border-left: 0; border-top: 2px solid #C89B3C; border-image: none; }
	.em-works { margin-top: -240px; padding-top: 300px; }
}
@media (max-width: 720px) {
	.em-hero__title { font-size: 56px; line-height: 62px; padding: 8px 0; }
	.em-hero__sub { font-size: 20px; line-height: 28px; }
	.em-hero__text { font-size: 17px; line-height: 27px; }
	.em-h2, .em-programs__title, .em-form__title { font-size: 38px; line-height: 44px; letter-spacing: 0; padding: 4px 0; }
	.em-built__card { padding: 40px 22px 32px 30px; }
	.em-built__title { font-size: 30px; line-height: 36px; }
	.em-built__list li { font-size: 17px; }
	.em-options { grid-template-columns: 1fr; }
	.em-how__title { font-size: 38px; line-height: 44px; }
	.em-form__in { padding: 48px 20px; }
	.em-form .frm-fluent-form fieldset { grid-template-columns: 1fr; }
	.em-form .frm-fluent-form .ff-tcca-note-wrap, .em-form .frm-fluent-form .ff_submit_btn_wrapper { grid-column: 1; text-align: left; }
	.em-form .frm-fluent-form .ff_submit_btn_wrapper { margin-top: 20px; }
	.em-form .ff-tcca-note { width: auto; max-width: none; }
}

/* ---------- FAQ page ---------- */
.fq { position: relative; padding-top: 56px; overflow: hidden; background: #fff; }
.fq__tree { height: 289px; }
.fq__head { position: relative; text-align: center; }
.fq__title { padding: 8.5px 0; font: 700 72px/90px var(--f-display); letter-spacing: .2px; text-transform: uppercase; color: #2D3230; }
.fq__title em { color: var(--gold); }
.fq__lead { max-width: 620px; margin: 13px auto 0; font: 400 16px/24px var(--f-body); letter-spacing: .08px; color: var(--text); }
.fq-band { position: relative; margin-top: 65px; padding: 60px 0 40px; border-radius: 40px 40px 0 0; background: var(--ink); }
.fq-card { display: grid; grid-template-columns: 310px minmax(0, 1fr); align-items: start; gap: 80px; width: min(1400px, 100% - 2 * var(--gutter)); margin: 0 auto; padding: 59px 79px 59px; border: 1.5px solid #C89B3C; border-radius: 24px; background: #fff; }
.fq-cats { position: sticky; top: 24px; }
.fq-tabs { display: grid; gap: 16px; }
.fq-tab { position: relative; display: flex; align-items: center; height: 48px; padding: 0 20px 0 21px; overflow: hidden; border: 1px solid #EDE3CB; border-radius: 10px; background: #FBF7ED; font: 400 16px/24px var(--f-body); color: var(--ink); text-align: left; cursor: pointer; transition: border-color .2s, background-color .2s; }
.fq-tab:hover { border-color: #C89B3C; }
.fq-tab.is-active { border-color: #B8C68C; background: #E1E8C8; font-weight: 600; color: #4A5C00; }
.fq-tab.is-active::before, .fq-pick__btn::before, .fq-pick__list [aria-selected="true"]::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 5px; background: #C89B3C; }
.fq-tab:focus-visible, .fq-pick__btn:focus-visible { outline: 2px solid var(--green); outline-offset: 2px; }
.fq-pick { display: none; }

.fq-panels { display: grid; gap: 15px; }
.fq-panel { display: grid; gap: 15px; }
.fq-panel[hidden] { display: none; }
.fq-item { border: 1px solid #EADFC3; border-radius: 16px; background: #FBF7ED; transition: border-color .2s, background-color .2s; }
.fq-item.is-open { border: 1.5px solid #C89B3C; background: #fff; }
.fq-item .tf-q__btn { display: flex; align-items: center; justify-content: space-between; gap: 16px; width: 100%; min-height: 67px; padding: 20px 24px; border: 0; border-radius: 16px; background: none; font: 500 18px/27px var(--f-body); color: var(--ink); text-align: left; cursor: pointer; }
.fq-item .tf-q__btn:hover { color: var(--green); }
.fq-item .tf-q__btn .ic { flex: none; width: 20px; height: 20px; color: #C2A34C; transition: transform .2s; }
.fq-item.is-open .tf-q__btn .ic { transform: rotate(180deg); }
.fq-item .tf-q__panel { padding: 0 40px 24px 24px; }
.fq-item .tf-q__panel p { font: 400 16px/26px var(--f-body); color: var(--ink); }
.fq-item .tf-q__panel p + p { margin-top: 12px; }
.tf .fq-item a { color: var(--green); text-decoration: underline; text-underline-offset: 2px; }
.fq-help { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 86px; padding: 18px 24px 18px 28px; border: 1px solid #C9D3A6; border-radius: 16px; background: #EDF0E1; }
.fq-help p { font: 700 18px/27px var(--f-body); color: var(--ink); }
.fq-help__btn { flex: none; height: 48px; padding: 0 24px; border-radius: 8px; line-height: 24px; letter-spacing: .5px; }

@media (max-width: 1180px) {
	.fq-card { grid-template-columns: 260px minmax(0, 1fr); gap: 40px; padding: 48px 40px; }
}
@media (max-width: 767px) {
	.fq { padding-top: 48px; }
	.fq__title { font-size: 44px; line-height: 52px; padding: 4px 0; }
	.fq__title em { display: block; }
	.fq-band { margin-top: 40px; padding: 24px 0; border-radius: 24px 24px 0 0; }
	.fq-card { grid-template-columns: 1fr; gap: 24px; width: calc(100% - 32px); padding: 24px 16px; border-radius: 20px; }
	.fq-cats { position: static; }
	.fq-tabs { display: none; }
	.fq-pick { position: relative; display: block; }
	.fq-pick__label { display: block; margin-bottom: 8px; font: 500 15px/22px var(--f-body); color: var(--green); }
	.fq-pick__btn { position: relative; display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 52px; padding: 0 18px 0 24px; overflow: hidden; border: 1.5px solid #C89B3C; border-radius: 10px; background: #E1E8C8; font: 500 17px/24px var(--f-body); color: #4A5C00; text-align: left; cursor: pointer; }
	.fq-pick__btn .ic { width: 20px; height: 20px; color: #C2A34C; transition: transform .2s; }
	.fq-pick__btn[aria-expanded="true"] .ic { transform: rotate(180deg); }
	.fq-pick__list { display: grid; gap: 8px; margin-top: 10px; padding: 8px; border: 1.5px solid #C89B3C; border-radius: 12px; background: #fff; outline: none; }
	.fq-pick__list[hidden] { display: none; }
	.fq-pick__list li { position: relative; display: flex; align-items: center; min-height: 46px; padding: 0 16px 0 20px; overflow: hidden; border: 1px solid #EDE3CB; border-radius: 8px; background: #FBF7ED; font: 400 16px/22px var(--f-body); color: var(--ink); cursor: pointer; }
	.fq-pick__list [aria-selected="true"] { border-color: #B8C68C; background: #E1E8C8; color: #4A5C00; }
	.fq-pick__list li.is-focus { outline: 2px solid var(--green); outline-offset: 1px; }
	.fq-item .tf-q__btn { min-height: 56px; padding: 14px 16px 14px 18px; font-size: 17px; line-height: 25px; }
	.fq-item .tf-q__panel { padding: 0 18px 20px; }
	.fq-help { flex-direction: column; align-items: flex-start; padding: 20px; }
}

/* ---------- form states (Contact + Employer, Fluent forms) ---------- */
.frm-fluent-form .ff-el-is-error .ff-el-form-control { border: 1.5px solid #E5484D !important; }
.ct-form .error.text-danger, .em-form .error.text-danger { color: #E5484D; }
.em-form .error.text-danger { color: #FF8A8E; }
.tf-form-done { padding: 40px; border-radius: 16px; }
.tf-form-done h3 { font: 700 40px/48px var(--f-display); text-transform: uppercase; color: #fff; }
.tf-form-done p { margin-top: 8px; font: 400 18px/27px var(--f-meta); color: #fff; }
.tf-form-done--contact { position: relative; overflow: hidden; background: var(--ink); }
.tf-form-done--contact::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 6px; background: #C89B3C; }
.tf-form-done--contact .tf-btn { margin-top: 28px; padding: 15px 30px; font-size: 18px; }
.tf-form-done--employer { max-width: 750px; border: 2px solid #C89B3C; background: #343031; }
.tf-form-done--employer h3 { margin-top: 24px; font-size: 36px; line-height: 44px; }
.tf-form-done__check { display: block; width: 60px; height: 60px; border-radius: 50%; background: var(--green) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / 28px no-repeat; }
.ct-form .ff-message-success, .em-form .ff-message-success { padding: 0; border: 0; background: none; box-shadow: none; }
@media (max-width: 720px) {
	.tf-form-done { padding: 28px 22px; }
	.tf-form-done h3, .tf-form-done--employer h3 { font-size: 28px; line-height: 34px; }
}

/* ---------- student login (tcca-suite [tcca_student_auth] restyled) ---------- */
.lg { padding: 40px 0; background: var(--ink); }
.lg-card { width: min(1100px, 100% - 2 * var(--gutter)); min-height: 767px; margin: 0 auto; border: 1.5px solid #C89B3C; border-radius: 24px; background: #fff; box-shadow: 0 10px 40px rgba(0, 0, 0, .25); }
.lg-card:has(.tcca-alert) { min-height: 0; padding: 24px; }
.lg .tcca-auth-split-wrapper { display: grid; grid-template-columns: 562px minmax(0, 1fr); gap: 16px; padding-left: 17px; }
.lg .tcca-auth-left { padding: 61px 0 62px; }
.lg .tcca-auth-banner-wrap { height: 644px; overflow: hidden; border-radius: 20px; background: #2D5351; }
.lg .tcca-auth-banner-img { width: 100%; height: 100%; object-fit: cover; }
.lg .tcca-auth-right { padding: 77px 44px 60px; }
.lg .tcca-auth-form-card { max-width: 416px; }
.lg .tcca-auth-logo-wrap { display: none; }
.lg .tcca-auth-title { font: 700 24px/30px var(--f-mona); letter-spacing: -.48px; color: var(--ink); }
.lg .tcca-auth-title em { color: #C89B3C; }
.lg .tcca-auth-subtitle { margin-top: 8px; font: 400 13.5px/20px var(--f-body); letter-spacing: .08px; color: #64748B; }
.lg .tcca-form { margin-top: 23px; }
.lg .tcca-form-group + .tcca-form-group { margin-top: 34px; }
.lg .tcca-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.lg .tcca-form-row + .tcca-form-group { margin-top: 24px; }
.lg .tcca-form-group label { display: block; font: 500 13px/23px var(--f-mona); letter-spacing: .08px; color: #334155; }
.lg .tcca-input { width: 100%; height: 46px; margin-top: 6px; padding: 0 17px; border: 1px solid transparent; border-radius: 8px; background: #F2F2F0; font: 400 14px/20px var(--f-mona); color: var(--ink); }
.lg .tcca-input::placeholder { color: #94A3B8; opacity: 1; }
.lg .tcca-input:focus { border-color: var(--green); outline: 2px solid rgba(106, 128, 2, .2); outline-offset: 0; background: #fff; }
.lg .tcca-input-eye-wrap { position: relative; }
.lg .tcca-input-eye-wrap .tcca-input { padding-right: 48px; }
.lg .tcca-eye-toggle { position: absolute; right: 14px; top: 50%; display: grid; place-items: center; width: 28px; height: 28px; margin-top: 3px; padding: 0; border: 0; background: none; color: #64748B; transform: translateY(-50%); cursor: pointer; }
.lg .tcca-field-hint, .lg .tcca-auth-privacy-notice { margin-top: 8px; font: 400 12.5px/19px var(--f-body); color: #64748B; }
.lg .tcca-auth-privacy-notice { margin-top: 20px; }
.tf .lg .tcca-auth-privacy-notice a { color: var(--green); text-decoration: underline; }
.lg .tcca-auth-row-remember { display: flex; align-items: center; justify-content: space-between; margin-top: 34px; }
.lg .tcca-auth-remember-label { display: flex; align-items: center; gap: 3px; font: 400 13px/23px var(--f-mona); letter-spacing: .08px; color: #334155; cursor: pointer; }
.lg .tcca-auth-remember-label input { width: 16px; height: 16px; margin: 0; accent-color: var(--green); }
.tf .lg .tcca-link-forgot { font: 500 13px/23px var(--f-mona); letter-spacing: .08px; color: #334155; text-decoration: underline; text-underline-offset: 3px; }
.tf .lg .tcca-link-forgot:hover { color: var(--green); }
.lg .tcca-form-submit { margin-top: 36px; }
.lg .tcca-btn-primary { display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; height: 48px; border: 0; border-radius: 8px; background: var(--green); box-shadow: 0 2px 6px rgba(85, 107, 47, .3); font: 600 15px/18px var(--f-meta); color: #fff; cursor: pointer; transition: background-color .2s; }
.lg .tcca-btn-primary:hover { background: #586b01; }
.lg .tcca-btn-primary:disabled { opacity: .7; cursor: wait; }
.lg .tcca-btn-spinner { width: 16px; height: 16px; border: 2px solid rgba(255, 255, 255, .4); border-top-color: #fff; border-radius: 50%; animation: lg-spin .8s linear infinite; }
@keyframes lg-spin { to { transform: rotate(360deg); } }
.lg .tcca-auth-switch-text { margin-top: 34px; text-align: center; font: 400 13.5px/24px var(--f-mona); letter-spacing: .08px; color: #64748B; }
.tf .lg .tcca-auth-switch-text a { margin-left: 3px; font-weight: 600; color: var(--green); text-decoration: underline; text-underline-offset: 3px; }
.lg .tcca-auth-divider { display: flex; align-items: center; gap: 12px; margin-top: 35px; font: 400 13px/23px var(--f-mona); color: #94A3B8; }
.lg .tcca-auth-divider::before, .lg .tcca-auth-divider::after { content: ""; flex: 1; height: 1px; background: #E2E8F0; }
.lg .tcca-auth-role-switch-wrap { margin-top: 36px; }
.lg .tcca-btn-outline { width: 100%; height: 46px; border: 1px solid #E2E8F0; border-radius: 8px; background: #fff; font: 600 14px/21px var(--f-meta); color: #1E293B; cursor: pointer; transition: border-color .2s, color .2s; }
.lg .tcca-btn-outline:hover { border-color: var(--green); color: var(--green); }
.lg .tcca-form-feedback { margin-top: 20px; padding: 10px 14px; border: 1px solid #F5C2C0; border-radius: 8px; background: #FEF2F2; font: 500 13px/19px var(--f-mona); color: #B42318; }
.lg .tcca-form-feedback.success, .lg .tcca-form-feedback.is-success, .lg .tcca-form-feedback.tcca-success { border-color: #C9D3A6; background: #F3F6E8; color: #4A5C00; }
.lg .tcca-btn-primary:focus-visible, .lg .tcca-btn-outline:focus-visible, .lg .tcca-eye-toggle:focus-visible { outline: 2px solid var(--green); outline-offset: 2px; }

@media (max-width: 1100px) {
	.lg .tcca-auth-split-wrapper { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
	.lg .tcca-auth-banner-wrap { height: 100%; min-height: 560px; }
	.lg .tcca-auth-right { padding: 56px 32px; }
}
@media (max-width: 767px) {
	.lg { padding: 24px 0; }
	.lg-card { min-height: 0; }
	.lg .tcca-auth-split-wrapper { grid-template-columns: 1fr; padding: 0; }
	.lg .tcca-auth-left { padding: 12px 12px 0; }
	.lg .tcca-auth-banner-wrap { height: 220px; min-height: 0; border-radius: 16px; }
	.lg .tcca-auth-right { padding: 32px 20px 36px; }
	.lg .tcca-form-row { grid-template-columns: 1fr; gap: 24px; }
}

/* ---------- certificate verification ---------- */
.cv { position: relative; padding: 56px 0 72px; overflow: hidden; background: #fff; }
.cv__tree { position: absolute; left: calc(50% + 261px); top: 196px; width: 459px; height: 642px; max-width: none; pointer-events: none; }
.cv__head { position: relative; text-align: center; }
.cv__title { padding: 8.5px 0; font: 700 72px/90px var(--f-display); letter-spacing: .2px; text-transform: uppercase; color: #1F211B; }
.cv__title em { color: var(--gold); }
.cv__lead { margin-top: 13px; font: 400 16px/24px var(--f-body); letter-spacing: .08px; color: var(--text); }
.cv-card { position: relative; width: min(520px, 100% - 2 * var(--gutter)); margin: 40px auto 0; padding: 40px 43px 36px; border: 1.5px solid #E3CD98; border-radius: 24px; background: #fff; box-shadow: 0 10px 40px rgba(0, 0, 0, .08); transition: opacity .2s; }
.cv-card.is-busy { opacity: .6; pointer-events: none; }
.cv-state[hidden] { display: none; }
.cv-card__title { font: 700 24px/38px var(--f-mona); letter-spacing: -.2px; color: var(--ink); }
.cv-card__title em, .cv-status em { color: var(--gold); }
.cv-label { display: block; margin-top: 21px; font: 500 13px/22px var(--f-mona); letter-spacing: .08px; color: #334155; }
.cv-input + .cv-label { margin-top: 20px; }
.cv-input { display: block; width: 100%; height: 46px; margin-top: 5px; padding: 0 15px; border: 1px solid #E2E8F0; border-radius: 8px; background: #F2F2F0; font: 400 14px/20px var(--f-mona); color: var(--ink); }
.cv-input::placeholder { color: #4B4F55; opacity: 1; }
.cv-input:focus { border-color: var(--green); outline: 2px solid rgba(106, 128, 2, .2); background: #fff; }
.cv-input[aria-invalid="true"] { border: 1.5px solid #E5484D; }
.cv-error { margin-top: 12px; font: 500 13px/19px var(--f-mona); color: #D03A3A; }
.cv-btn { display: flex; align-items: center; justify-content: center; width: 100%; height: 48px; margin-top: 24px; border: 0; border-radius: 8px; background: var(--green); box-shadow: 0 2px 6px rgba(85, 107, 47, .3); font: 700 13px/16px var(--f-meta); letter-spacing: .5px; text-transform: uppercase; color: #fff; cursor: pointer; transition: background-color .2s, color .2s; }
.cv-btn:hover { background: #586b01; }
.cv-btn--line { height: 46px; border: 2px solid var(--green); background: #fff; box-shadow: none; font: 600 14px/17px var(--f-meta); color: #1E293B; }
.cv-btn--line:hover { background: var(--green); color: #fff; }
.cv-btn:focus-visible, .cv-help a:focus-visible, .cv-support a:focus-visible { outline: 2px solid var(--green); outline-offset: 2px; }
.cv-or { display: flex; align-items: center; gap: 20px; margin: 15px 0 0; font: 400 12.5px/22px var(--f-mona); color: #64748B; }
.cv-or::before, .cv-or::after { content: ""; flex: 1; height: 1px; background: #E2E8F0; }
.cv-or + .cv-btn { margin-top: 15px; }
.cv-help { margin-top: 20px; text-align: center; font: 400 12px/17px var(--f-mona); letter-spacing: .08px; color: #6B7280; }
.tf .cv-help a { font-weight: 700; color: var(--green); }
.cv-status { display: flex; align-items: center; gap: 12px; font: 700 24px/34px var(--f-mona); color: var(--ink); }
.cv-status--ok { color: var(--green); }
.cv-status__dot { display: grid; place-items: center; width: 34px; height: 34px; flex: none; border-radius: 50%; background: var(--green); color: #fff; }
.cv-status__dot .ic { width: 18px; height: 18px; stroke-width: 3; }
.cv-status__dot--warn { background: #C89B3C; font: 700 20px/28px var(--f-mona); }
.cv-facts { margin: 28px 0 0; }
.cv-facts div { padding: 7px 0 9px; border-bottom: 1px solid #E2E8F0; }
.cv-facts div:first-child { padding-top: 0; }
.cv-facts div:last-child { border-bottom: 0; padding-bottom: 0; }
.cv-facts dt { font: 500 13px/18px var(--f-mona); color: #64748B; }
.cv-facts dd { margin: 4px 0 0; font: 600 16px/23px var(--f-mona); color: var(--ink); }
.cv-facts + .cv-btn { margin-top: 31px; }
.cv-msg { margin-top: 12px; font: 400 14px/21px var(--f-mona); color: #64748B; }
.cv-msg--strong { margin-top: 28px; font: 500 15px/23px var(--f-mona); color: var(--text); }
.cv-support { margin-top: 16px; text-align: center; font: 500 13px/18px var(--f-mona); color: #64748B; }
.tf .cv-support a { font-weight: 700; color: var(--green); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 3px; }
.cv-video { position: relative; margin-top: 16px; overflow: hidden; border-radius: 12px; background: var(--ink); aspect-ratio: 4 / 3; }
.cv-video video { width: 100%; height: 100%; object-fit: cover; }
.cv-video__frame { position: absolute; inset: 18%; border: 3px solid rgba(200, 155, 60, .9); border-radius: 12px; }

.tf-quick--rules { border-top: 1px solid #C89B3C; }
.tf-quick--rules .tf-quick__item + .tf-quick__item { position: relative; }
.tf-quick--rules .tf-quick__item + .tf-quick__item::before { content: ""; position: absolute; left: calc(-1 * var(--qgap, 90px)); top: -5px; height: 93px; width: 1px; background: #D6D6D2; }

@media (max-width: 767px) {
	.cv { padding: 48px 0 56px; }
	.cv__title { font-size: 44px; line-height: 52px; padding: 4px 0; }
	.cv__tree { display: none; }
	.cv-card { padding: 28px 20px; }
	.tf-quick--rules .tf-quick__item + .tf-quick__item::before { display: none; }
}

/* ---------- legal pages (Refund, Privacy, Terms, Accessibility) ---------- */
.pl-hero { position: relative; overflow: hidden; background: #fff; }
.pl-hero__tree { height: 289px; }
.pl-hero__in { position: relative; padding: 40px 0 65px; text-align: center; }
.pl-hero__eyebrow { font: 600 13px/18px var(--f-body); letter-spacing: 2.4px; text-transform: uppercase; color: #C89B3C; }
.pl-hero__title { margin-top: -2px; padding: 8.5px 0; font: 700 72px/90px var(--f-display); letter-spacing: .2px; text-transform: uppercase; color: var(--ink); }
.pl-hero__title em { color: var(--gold); }
.pl-hero__lead { max-width: 560px; margin: 13px auto 0; font: 400 16px/24px var(--f-body); letter-spacing: .08px; color: var(--text); }
.pl-strip { position: relative; border-bottom: 3px solid #C89B3C; border-radius: 40px 40px 0 0; background: var(--ink); }
.pl-strip p { padding: 23px 0 22px; text-align: center; font: 400 16px/24px var(--f-body); color: #fff; }
.pl-strip a, .pl-strip em { color: #D4A22F; }
.pl-strip a:hover { color: #fff; }
.pl-body { padding: 40px 0 80px; background: #EEECE7; }
.pl-body__in { display: grid; grid-template-columns: 280px minmax(0, 920px); justify-content: space-between; align-items: start; width: min(1280px, 100% - 2 * var(--gutter)); margin: 0 auto; }
.pl-body--narrow .pl-body__in { grid-template-columns: 280px minmax(0, 840px); justify-content: start; column-gap: 80px; }
.pl-nav { position: sticky; top: 24px; }
.pl-nav ul { display: grid; gap: 16px; }
.pl-nav a { position: relative; display: flex; align-items: center; min-height: 46px; padding: 11px 16px; overflow: hidden; border: 1px solid #231F20; border-radius: 10px; background: #FBF7ED; font: 400 16px/22px var(--f-body); color: var(--ink); transition: background-color .2s, color .2s; }
.pl-nav a:hover { background: #F1EAD6; }
.tf .pl-nav a.is-active { border-color: var(--green); background: var(--green); color: #fff; }
.pl-nav a.is-active::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 5px; background: #C89B3C; }
.pl-nav a:focus-visible { outline: 2px solid var(--green); outline-offset: 2px; }
.pl-cards { display: grid; gap: 16px; }
.pl-card { scroll-margin-top: 24px; border: 1.5px solid #E3CD98; border-radius: 16px; background: #fff; }
.pl-card .tf-q__btn { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 16px; width: 100%; padding: 24px 24px 0; border: 0; background: none; font: 500 22px/26px var(--f-display); color: var(--ink); text-align: left; cursor: pointer; }
.pl-card .tf-q__btn::before { content: ""; position: absolute; left: -1.5px; top: 24px; width: 4px; height: 26px; border-radius: 2px; background: #C89B3C; }
.pl-card:not(.is-open) .tf-q__btn { padding-bottom: 24px; }
.pl-card__toggle { display: grid; place-items: center; width: 24px; height: 24px; flex: none; border-radius: 4px; background: var(--ink); color: #D4A22F; }
.pl-card__toggle .ic { width: 13px; height: 13px; stroke-width: 3; transform: rotate(180deg); transition: transform .2s; }
.pl-card:not(.is-open) .pl-card__toggle .ic { transform: none; }
.pl-card__body { padding: 20px 24px 24px; font: 400 16px/24px var(--f-body); color: var(--ink); }
.pl-card__body > * + * { margin-top: 10px; }
.pl-card__body ul { padding-left: 24px; list-style: disc; }
.pl-card__body li::marker { color: var(--ink); font-size: .8em; }
.pl-card__body strong { font-weight: 700; }
.tf .pl-card__body a { color: var(--green); text-decoration: underline; text-underline-offset: 2px; }
.pl-line { display: flex; align-items: center; gap: 8px; padding-left: 0; }
.pl-line .ic { width: 20px; height: 20px; color: #C89B3C; }
.pl-line + .pl-line { margin-top: 8px; }
.pl-line + p:not(.pl-line) { margin-top: 18px; }

@media (max-width: 1180px) {
	.pl-body__in, .pl-body--narrow .pl-body__in { grid-template-columns: 240px minmax(0, 1fr); gap: 32px; }
}
@media (max-width: 900px) {
	.pl-body__in, .pl-body--narrow .pl-body__in { grid-template-columns: 1fr; }
	.pl-nav { display: none; }
}
@media (max-width: 720px) {
	.pl-hero__in { padding: 32px 0 40px; }
	.pl-hero__title { font-size: 44px; line-height: 52px; padding: 4px 0; }
	.pl-hero__tree { display: none; }
	.pl-strip { border-radius: 24px 24px 0 0; }
	.pl-strip p { padding: 18px 0; font-size: 15px; }
	.pl-card .tf-q__btn { padding: 20px 18px 0; font-size: 20px; }
	.pl-card__body { padding: 16px 18px 20px; }
}
