/* Poppins (SIL Open Font License), self-hosted */
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 300; font-display: swap; src: url("../fonts/poppins-300-latin-ext.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 300; font-display: swap; src: url("../fonts/poppins-300-latin.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/poppins-400-latin-ext.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/poppins-400-latin.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 500; font-display: swap; src: url("../fonts/poppins-500-latin-ext.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 500; font-display: swap; src: url("../fonts/poppins-500-latin.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 600; font-display: swap; src: url("../fonts/poppins-600-latin-ext.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 600; font-display: swap; src: url("../fonts/poppins-600-latin.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

/* base reset */
html, body { margin: 0; padding: 0; }
img { max-width: 100%; }
button, input, select, textarea { font-family: inherit; }

/* Layout: minimal single column of generous sections on white; type and whitespace do the work,
   the owl's brown appears only on actions, small markers and scroll-driven lines. */
:root {
  --bg: #ffffff;
  --bg-soft: #f8f6f3;
  --text: #141210;
  --dim: #6a635c;
  --faint: #cfc9c2;
  --line: #ebe7e2;
  --brown: #76502b;
  --err: #b3412c;
  --font: "Poppins", "Segoe UI", system-ui, -apple-system, sans-serif;
  --wrap: 68rem;
  --ease: cubic-bezier(.2, .7, .2, 1);
  color-scheme: light;
}
html { scroll-behavior: smooth; scroll-padding-top: 5rem; background: var(--bg); }
body { background: var(--bg); color: var(--text); font-family: var(--font); font-size: 1rem; line-height: 1.7; -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4 { margin: 0; font-weight: 500; letter-spacing: -.02em; line-height: 1.15; text-wrap: balance; }
p { margin: 0; }
a { color: inherit; }
[hidden] { display: none !important; }
:focus-visible { outline: 2px solid var(--brown); outline-offset: 3px; border-radius: 4px; }
.wrap { max-width: var(--wrap); margin-inline: auto; padding-inline: clamp(16px, 5vw, 48px); }
.label { font-size: .8125rem; font-weight: 500; color: var(--brown); letter-spacing: .02em; }
section { padding-block: clamp(4.5rem, 10vw, 8rem); }
.sec-head { display: grid; gap: .9rem; max-width: 42rem; margin-bottom: clamp(2.5rem, 5vw, 3.5rem); }
.sec-head h2 { font-size: clamp(1.9rem, 3.6vw, 2.6rem); }
.sec-head p { color: var(--dim); }
.soft { background: var(--bg-soft); }

/* scroll progress + header */
.progress { position: fixed; top: 0; left: 0; right: 0; height: 2px; z-index: 20; background: var(--brown); transform-origin: 0 50%; transform: scaleX(0); }
.head { position: sticky; top: env(safe-area-inset-top, 0px); z-index: 10; background: rgba(255,255,255,.9); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border-bottom: 1px solid transparent; transition: border-color .3s; }
.head.scrolled { border-bottom-color: var(--line); }
.head .wrap { display: flex; align-items: center; gap: 2rem; height: 4.5rem; }
.brand img { height: 2.25rem; width: auto; display: block; }
.nav { display: flex; gap: 2rem; margin-left: auto; font-size: .9375rem; }
.nav a { text-decoration: none; color: var(--dim); transition: color .2s; position: relative; }
.nav a::after { content: ""; position: absolute; left: 0; right: 0; bottom: -4px; height: 1px; background: var(--text); transform: scaleX(0); transform-origin: 0 50%; transition: transform .3s var(--ease); }
.nav a:hover, .nav a.on { color: var(--text); }
.nav a.on::after { transform: scaleX(1); }
@media (max-width: 860px) { .nav { display: none; } .head .btn { margin-left: auto; } }

/* buttons & links */
.btn { display: inline-flex; align-items: center; gap: .5rem; font: 500 .9375rem/1 var(--font); padding: .95rem 1.4rem; border-radius: 99px; text-decoration: none; border: 1px solid transparent; cursor: pointer; transition: background .25s, color .25s, border-color .25s; }
.btn-dark { background: var(--text); color: #fff; }
.btn-dark:hover { background: var(--brown); }
.btn-plain { color: var(--text); border-color: var(--line); background: var(--bg); }
.btn-plain:hover { border-color: var(--text); }
.head .btn { padding: .7rem 1.1rem; font-size: .875rem; }
.arrow { display: inline-block; transition: transform .25s var(--ease); }
a:hover .arrow, button:hover .arrow { transform: translateX(3px); }
.textlink { text-decoration: none; font-weight: 500; font-size: .9375rem; color: var(--brown); background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: background-size .3s var(--ease); padding-bottom: 2px; }
.textlink:hover { background-size: 100% 1px; }

/* hero */
.hero { padding-block: clamp(4rem, 10vw, 8rem) clamp(4rem, 8vw, 6rem); overflow: hidden; }
.hero .wrap.top { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 3rem; align-items: center; }
.hero h1 { font-size: clamp(2.4rem, 5.6vw, 4.25rem); letter-spacing: -.035em; margin-block: 1.2rem 1.4rem; max-width: 14em; }
.hero h1 .lt { color: var(--dim); font-weight: 300; }
.hero .lede { color: var(--dim); font-size: 1.0625rem; max-width: 34rem; }
.ctas { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2.2rem; }
.mark { width: clamp(9rem, 18vw, 14rem); aspect-ratio: 1; border-radius: 50%; background: var(--bg-soft); display: grid; place-items: center; will-change: transform; }
.mark img { width: 34%; height: auto; }
.pillars { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem; margin-top: clamp(3.5rem, 7vw, 5rem); padding-top: 2rem; border-top: 1px solid var(--line); }
.pillars h3 { font-size: 1rem; margin-bottom: .3rem; }
.pillars p { color: var(--dim); font-size: .9375rem; }
@media (max-width: 820px) { .hero .wrap.top { grid-template-columns: minmax(0, 1fr); } .mark { display: none; } .pillars { grid-template-columns: minmax(0, 1fr); gap: 1.25rem; } }

/* who we are */
.who { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2rem, 6vw, 5rem); }
.who h2 { font-size: clamp(1.9rem, 3.6vw, 2.6rem); margin-top: .9rem; }
.who .body { display: grid; gap: 1.1rem; color: var(--dim); font-size: 1.0625rem; align-content: start; padding-top: 2.1rem; }
.who .body strong { color: var(--text); font-weight: 500; }
.who-c { align-items: center; }
.who-c .body { padding-top: 1.4rem; gap: .9rem; font-size: 1rem; }
.mvc { display: grid; gap: 1rem; }
.mvc > div { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 1.1rem; align-items: start; background: var(--bg); border: 1px solid var(--line); border-radius: 1rem; padding: 1.5rem 1.6rem; transition: border-color .3s, transform .4s var(--ease); }
.mvc > div:hover { border-color: var(--brown); transform: translateY(-2px); }
.mvc .ico { margin: 0; background: var(--bg-soft); }
.mvc h3 { font-size: 1.0625rem; margin-bottom: .35rem; }
.mvc p { color: var(--dim); font-size: .9375rem; line-height: 1.7; }
.mvc b { color: var(--brown); font-weight: 500; }
@media (max-width: 820px) { .who { grid-template-columns: minmax(0, 1fr); } .who .body { padding-top: 0; } }

/* services */
.svc { display: grid; grid-template-columns: 3.5rem minmax(0, 1fr) minmax(0, 1.25fr); gap: 1.5rem 2rem; padding-block: 2.4rem; position: relative; }
.svc::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 1px; background: var(--line); transform-origin: 0 50%; }
.svc.rv-pre::before { transform: scaleX(0); }
.svc.rv-on::before { transform: scaleX(1); transition: transform 1.1s var(--ease); }
.svc:last-child { border-bottom: 1px solid var(--line); }
.svc .n { font-size: .875rem; color: var(--brown); font-weight: 500; font-variant-numeric: tabular-nums; padding-top: .2rem; }
.svc h3 { font-size: 1.3rem; margin-bottom: .6rem; }
.svc .desc { color: var(--dim); font-size: .9375rem; }
.svc .textlink { display: inline-block; margin-top: 1rem; }
.svc ul { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: .45rem 1.5rem; font-size: .9rem; color: #3f3a35; align-content: start; }
.svc li { padding-left: 1rem; position: relative; }
.svc li::before { content: ""; position: absolute; left: 0; top: .72em; width: .4rem; height: 1px; background: var(--brown); }
.svc li b { font-weight: 500; color: var(--text); }
.svc li span { display: block; color: var(--dim); font-size: .8125rem; }
.svc ul.one { grid-template-columns: minmax(0, 1fr); }
@media (max-width: 860px) { .svc { grid-template-columns: 2.5rem minmax(0, 1fr); } .svc ul { grid-column: 2; } }
@media (max-width: 520px) { .svc ul { grid-template-columns: minmax(0, 1fr); } }

/* why */
.why { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2.5rem 2rem; }
.why div { display: grid; gap: .4rem; align-content: start; padding-top: 1.2rem; border-top: 1px solid var(--line); }
.why h3 { font-size: 1.0625rem; }
.why p { color: var(--dim); font-size: .9375rem; }
@media (max-width: 820px) { .why { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .why { grid-template-columns: minmax(0, 1fr); } }

/* approach: scroll-driven line */
.steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 1.5rem; position: relative; padding-top: 1.6rem; }
.steps .track, .steps .fill { position: absolute; top: 0; left: 0; right: 0; height: 2px; background: var(--line); }
.steps .fill { background: var(--brown); transform-origin: 0 50%; transform: scaleX(var(--p, 0)); }
.steps li { display: grid; gap: .4rem; align-content: start; position: relative; transition: opacity .5s; }
.steps li::before { content: ""; position: absolute; top: calc(-1.6rem - 5px); left: 0; width: 12px; height: 12px; border-radius: 50%; background: var(--bg); border: 2px solid var(--faint); transition: border-color .4s, background .4s; }
.steps li.lit::before { border-color: var(--brown); background: var(--brown); }
.steps .n { font-size: .8125rem; color: var(--brown); font-weight: 500; }
.steps h3 { font-size: 1.0625rem; }
.steps p { color: var(--dim); font-size: .875rem; line-height: 1.6; }
.js .steps li:not(.lit) { opacity: .45; }
@media (max-width: 860px) {
  .steps { grid-template-columns: minmax(0, 1fr); padding-top: 0; padding-left: 2rem; gap: 2rem; }
  .steps .track, .steps .fill { top: 0; bottom: 0; left: 5px; right: auto; width: 2px; height: auto; }
  .steps .fill { transform-origin: 50% 0; transform: scaleY(var(--p, 0)); }
  .steps li::before { top: .25rem; left: calc(-2rem); }
}

/* philosophy: lines light up as you scroll */
.phil { display: grid; gap: clamp(1rem, 2.5vw, 1.6rem); }
.phil p { font-size: clamp(1.6rem, 4vw, 2.9rem); font-weight: 500; letter-spacing: -.03em; line-height: 1.2; color: var(--faint); transition: color .6s var(--ease); max-width: 22em; }
.phil p.lit { color: var(--text); }
.phil p.lit em { color: var(--brown); }
.phil em { font-style: normal; transition: color .6s; }

/* about */
.about { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2rem, 6vw, 5rem); }
.about h2 { font-size: clamp(1.9rem, 3.6vw, 2.6rem); margin-top: .9rem; }
.about .story { display: grid; gap: 1rem; color: var(--dim); margin-top: 1.5rem; }
.mv { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1.5rem; margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid var(--line); }
.mv h3 { font-size: .8125rem; color: var(--brown); font-weight: 500; letter-spacing: .02em; margin-bottom: .4rem; }
.mv p { font-size: .9375rem; }
.values { list-style: none; padding: 0; margin: 0; display: grid; border-top: 1px solid var(--line); align-content: start; }
.values li { display: grid; grid-template-columns: 9rem minmax(0, 1fr); gap: 1rem; padding-block: 1.1rem; border-bottom: 1px solid var(--line); }
.values h3 { font-size: 1rem; }
.values p { color: var(--dim); font-size: .9375rem; }
.expertise { margin-top: clamp(3rem, 6vw, 4.5rem); display: grid; gap: 1rem; }
.tags { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; padding: 0; margin: 0; }
.tags li { font-size: .875rem; padding: .45rem .95rem; border: 1px solid var(--line); border-radius: 99px; transition: border-color .25s, background .25s; }
.tags li:hover { border-color: var(--brown); background: var(--bg-soft); }
.team { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-top: clamp(3rem, 6vw, 4.5rem); }
.person { display: flex; gap: 1rem; align-items: center; }
.person .av { flex: none; width: 3.5rem; height: 3.5rem; border-radius: 50%; background: var(--bg); border: 1px dashed #cdbba7; }
.person h3 { font-size: .9375rem; }
.person p { font-size: .8125rem; color: var(--dim); }
.entity { margin-top: 2rem; color: var(--dim); font-size: .9375rem; max-width: 46rem; }
.entity strong { color: var(--text); font-weight: 500; }
@media (max-width: 820px) { .who-c { align-items: start; } .who.who-c .body { padding-top: 1.1rem; } .about, .team { grid-template-columns: minmax(0, 1fr); } .values li { grid-template-columns: minmax(0, 1fr); gap: .2rem; } }
@media (max-width: 480px) { .mv { grid-template-columns: minmax(0, 1fr); } }

/* placeholder */
.ph { border: 1px dashed #cdbba7; border-radius: .75rem; padding: 1rem 1.1rem; background: #fcfaf7; }
.ph-tag { display: block; font-size: .6875rem; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; color: var(--brown); margin-bottom: .3rem; }
.ph p { color: var(--dim); font-size: .875rem; }

/* closing cta */
.closing { text-align: center; }
.closing h2 { font-size: clamp(2.2rem, 5.4vw, 4rem); letter-spacing: -.035em; }
.closing h2 .lt { color: var(--dim); font-weight: 300; }
.closing p { color: var(--dim); max-width: 32rem; margin: 1.2rem auto 2rem; }

/* contact */
.contact .wrap { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(2rem, 6vw, 5rem); }
.contact h2 { font-size: clamp(1.9rem, 3.6vw, 2.6rem); margin-block: .9rem 1rem; }
.contact .intro > p { color: var(--dim); max-width: 26rem; }
.details { display: grid; gap: 1.2rem; margin: 2.2rem 0 1.5rem; }
.details div { display: grid; gap: .1rem; }
.details dt { font-size: .8125rem; color: var(--dim); }
.details dd { margin: 0; font-weight: 500; overflow-wrap: anywhere; }
.details dd.addr { font-weight: 400; font-size: .9375rem; }
.copy { all: unset; cursor: pointer; font-size: .75rem; color: var(--brown); margin-left: .6rem; font-weight: 500; }
.copy:hover { text-decoration: underline; }
.form { background: var(--bg); border-radius: 1rem; padding: clamp(1.4rem, 4vw, 2.4rem); display: grid; gap: 1.2rem; align-content: start; }
.form h3 { font-size: 1.25rem; }
.form .sub { font-size: .8125rem; color: var(--dim); margin-top: -.6rem; }
.frow { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1.2rem; }
.field { display: grid; gap: .35rem; }
.field label { font-size: .8125rem; font-weight: 500; }
.field .req { color: var(--brown); }
.field input, .field select, .field textarea { font: inherit; font-size: .9375rem; color: var(--text); background: var(--bg); border: 0; border-bottom: 1px solid var(--line); border-radius: 0; padding: .55rem 0; width: 100%; box-sizing: border-box; transition: border-color .25s; }
.field textarea { min-height: 5rem; resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus { outline: none; border-bottom-color: var(--text); }
.field.bad input, .field.bad select { border-bottom-color: var(--err); }
.err { font-size: .8125rem; color: var(--err); }
.err:empty { display: none; }
.consent { display: flex; gap: .65rem; align-items: flex-start; font-size: .8125rem; color: var(--dim); cursor: pointer; }
.consent input { accent-color: var(--brown); margin-top: .25rem; flex: none; }
.consent a { color: var(--text); }
.form .ph { padding: .7rem .9rem; }
.form .btn { justify-self: start; }
.done { display: grid; gap: .8rem; padding-block: 2rem; }
.done h3 { font-size: 1.5rem; }
.done p { color: var(--dim); }
@media (max-width: 820px) { .contact .wrap, .frow { grid-template-columns: minmax(0, 1fr); } }

/* footer */
.foot { padding-block: 3rem 2rem; font-size: .875rem; color: var(--dim); border-top: 1px solid var(--line); }
.foot .wrap { display: grid; grid-template-columns: minmax(0, 1.4fr) repeat(2, minmax(0, 1fr)); gap: 2rem; }
.foot img { height: 2rem; width: auto; margin-bottom: .8rem; }
.foot h4 { margin: 0 0 .7rem; font-size: .8125rem; color: var(--text); }
.foot ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .4rem; }
.foot a { text-decoration: none; }
.foot a:hover { color: var(--text); }
.foot .soon { font-size: .6875rem; color: var(--brown); margin-left: .4rem; }
.foot .legal { grid-column: 1 / -1; padding-top: 1.5rem; border-top: 1px solid var(--line); display: flex; justify-content: space-between; flex-wrap: wrap; gap: .5rem; }
@media (max-width: 700px) { .foot .wrap { grid-template-columns: minmax(0, 1fr); } }

/* motion */
.in { animation: up .9s var(--ease) both; animation-delay: var(--d, 0s); }
@keyframes up { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
.rv-pre { opacity: 0; transform: translateY(22px); }
.rv-on { opacity: 1; transform: none; transition: opacity 1s var(--ease), transform 1s var(--ease); transition-delay: var(--d, 0s); }
.svc.rv-pre, .svc.rv-on { opacity: 1; transform: none; }
.svc.rv-pre > * { opacity: 0; transform: translateY(18px); }
.svc.rv-on > * { opacity: 1; transform: none; transition: opacity .9s var(--ease), transform .9s var(--ease); }
.svc.rv-on > :nth-child(2) { transition-delay: .08s; } .svc.rv-on > :nth-child(3) { transition-delay: .16s; }
.words .w { display: inline-block; overflow: hidden; vertical-align: bottom; padding-bottom: .12em; margin-bottom: -.12em; }
.words .w > span { display: inline-block; }
.rv-pre.words .w > span, .rv-pre .words .w > span { transform: translateY(105%); }
.rv-on.words .w > span, .rv-on .words .w > span { transform: none; transition: transform .9s var(--ease); transition-delay: calc(var(--i) * 45ms); }
.words.rv-pre { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .rv-pre, .svc.rv-pre > *, .rv-pre .w > span { opacity: 1 !important; transform: none !important; }
  .js .steps li:not(.lit) { opacity: 1; }
  .phil p { color: var(--text); }
}

/* ---------- training page ---------- */
.t-hero { padding-block: clamp(3rem, 7vw, 5.5rem) clamp(3.5rem, 7vw, 5rem); }
.t-hero h1 { font-size: clamp(2.4rem, 5.6vw, 4.25rem); letter-spacing: -.035em; margin-block: 1.6rem 1.4rem; max-width: 14em; }
.t-hero h1 .lt, .closing .lt { color: var(--dim); font-weight: 300; }
.seg { position: relative; display: inline-grid; grid-template-columns: 1fr 1fr; margin-top: 1.1rem; padding: 4px; border: 1px solid var(--line); border-radius: 99px; background: var(--bg-soft); }
.seg a { position: relative; z-index: 1; text-decoration: none; text-align: center; font-size: .9375rem; font-weight: 500; color: var(--dim); padding: .6rem 1.4rem; border-radius: 99px; transition: color .3s; }
.seg a[aria-selected="true"] { color: #fff; }
.seg i { position: absolute; top: 4px; bottom: 4px; left: 4px; width: calc(50% - 4px); border-radius: 99px; background: var(--text); transition: transform .45s var(--ease); }
.seg[data-on="inst"] i { transform: translateX(100%); }
.stats { display: grid; grid-template-columns: repeat(var(--c, 6), minmax(0, 1fr)); gap: 1.5rem 2rem; margin-top: clamp(3rem, 6vw, 4rem); padding-top: 2rem; border-top: 1px solid var(--line); }
.stats div { display: grid; gap: .15rem; }
#sub-inst .stats { --c: 7; }
@media (max-width: 960px) { .stats, #sub-inst .stats { --c: 3; } #sub-inst .stats div:last-child { grid-column: span 3; } }
@media (max-width: 520px) { .stats, #sub-inst .stats { --c: 2; } #sub-inst .stats div:last-child { grid-column: span 2; } }
.stats b { font-size: clamp(1.8rem, 3.4vw, 2.5rem); font-weight: 500; letter-spacing: -.03em; line-height: 1.1; font-variant-numeric: tabular-nums; }
.stats span { color: var(--dim); font-size: .875rem; }
.sub-anim { animation: up .7s var(--ease) both; }
.muted { color: var(--dim); margin-top: 1rem; }
.split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2rem, 6vw, 5rem); align-items: start; }
.split h2, .who h2 { font-size: clamp(1.9rem, 3.6vw, 2.6rem); }
@media (max-width: 820px) { .split { grid-template-columns: minmax(0, 1fr); } }
.why.four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 960px) { .why.four { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .why.four { grid-template-columns: minmax(0, 1fr); } }
.checks { list-style: none; padding: 0; margin: 0; display: grid; gap: .8rem; }
.checks li { display: flex; gap: .8rem; align-items: baseline; font-weight: 500; padding-bottom: .8rem; border-bottom: 1px solid var(--line); }
.checks li::before { content: ""; flex: none; width: .55rem; height: .3rem; border-left: 1.5px solid var(--brown); border-bottom: 1.5px solid var(--brown); transform: translateY(-.2rem) rotate(-45deg); }
.who .body .checks li { color: var(--text); }
.tags.big li { font-size: 1rem; padding: .6rem 1.2rem; }
.certs { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); list-style: none; padding: 0; margin: 0; }
.certs li { border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 1.6rem 1rem; text-align: center; font-weight: 500; font-size: .9375rem; display: grid; place-items: center; min-height: 5.5rem; transition: background .3s, color .3s; color: #3f3a35; }
.certs li:hover { background: var(--bg-soft); color: var(--brown); }
@media (max-width: 900px) { .certs { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 480px) { .certs { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.trainers { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2.2rem 2rem; }
.trainer { display: grid; grid-template-columns: 3.4rem minmax(0, 1fr); gap: 1rem; align-items: start; padding-top: 1.4rem; border-top: 1px solid var(--line); }
.trainer .ini { width: 3.4rem; height: 3.4rem; border-radius: 50%; background: var(--bg-soft); color: var(--brown); display: grid; place-items: center; font-weight: 500; font-size: .9375rem; transition: background .3s, color .3s; }
.trainer:hover .ini { background: var(--brown); color: #fff; }
.trainer h3 { font-size: 1rem; }
.trainer .role { color: var(--brown); font-size: .8125rem; font-weight: 500; margin: .15rem 0 .5rem; }
.trainer p:last-child { color: var(--dim); font-size: .875rem; line-height: 1.6; }
.note-small { margin-top: 2rem; color: var(--dim); font-size: .8125rem; }
@media (max-width: 900px) { .trainers { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .trainers { grid-template-columns: minmax(0, 1fr); } }
.streams { display: grid; gap: 2rem; }
.stream-tabs { display: flex; flex-wrap: wrap; gap: .5rem; }
.stream-tabs button { all: unset; cursor: pointer; font-size: .9375rem; font-weight: 500; padding: .6rem 1.15rem; border-radius: 99px; border: 1px solid var(--line); background: var(--bg); color: var(--dim); transition: all .25s; }
.stream-tabs button:hover { color: var(--text); border-color: var(--text); }
.stream-tabs button[aria-selected="true"] { background: var(--text); border-color: var(--text); color: #fff; }
.stream-tabs button:focus-visible { outline: 2px solid var(--brown); outline-offset: 2px; }
.stream-panel { background: var(--bg); border-radius: 1rem; padding: clamp(1.4rem, 4vw, 2.4rem); display: grid; gap: .6rem; animation: up .6s var(--ease) both; }
.stream-panel h3 { font-size: clamp(1.3rem, 2.4vw, 1.7rem); }
.stream-panel .muted { margin: 0 0 .8rem; }
.courses { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.course { border: 1px solid var(--line); border-radius: 1rem; padding: 1.5rem 1.3rem 1.3rem; display: grid; gap: .7rem; align-content: start; grid-template-rows: auto 1fr auto auto; transition: border-color .3s, transform .4s var(--ease); }
.course:hover { border-color: var(--text); transform: translateY(-3px); }
.course h3 { font-size: 1.05rem; }
.course p { color: var(--dim); font-size: .875rem; line-height: 1.6; }
.mini { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .35rem; }
.mini li { font-size: .75rem; padding: .2rem .6rem; border-radius: 99px; background: var(--bg-soft); color: #3f3a35; }
button.textlink { all: unset; cursor: pointer; justify-self: start; font-weight: 500; font-size: .9375rem; color: var(--brown); background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: background-size .3s var(--ease); padding-bottom: 2px; }
button.textlink:hover { background-size: 100% 1px; }
@media (max-width: 960px) { .courses { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .courses { grid-template-columns: minmax(0, 1fr); } }
.modules { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; counter-reset: m; }
.modules li { counter-increment: m; border-top: 1px solid var(--line); padding-top: 1rem; font-weight: 500; display: grid; gap: .3rem; }
.modules li::before { content: "0" counter(m); font-size: .8125rem; color: var(--brown); }
@media (max-width: 820px) { .modules { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.defs { display: grid; margin: 1.6rem 0 0; border-top: 1px solid var(--line); }
.defs div { display: grid; grid-template-columns: 12rem minmax(0, 1fr); gap: 1rem; padding-block: .85rem; border-bottom: 1px solid var(--line); }
.defs dt { font-weight: 500; }
.defs dd { margin: 0; color: var(--dim); }
@media (max-width: 520px) { .defs div { grid-template-columns: minmax(0, 1fr); gap: .1rem; } }
.gallery { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 1rem; }
.gallery figure { margin: 0; grid-column: span 2; display: grid; gap: .7rem; }
.gallery figure:nth-child(4), .gallery figure:nth-child(5) { grid-column: span 3; }
.shot { aspect-ratio: 4 / 3; max-width: 100%; border-radius: .9rem; border: 1px dashed #cdbba7; background: linear-gradient(135deg, #fbf8f4, #f2ece5); display: grid; place-items: center; overflow: hidden; }
.gallery figure:nth-child(4) .shot, .gallery figure:nth-child(5) .shot { aspect-ratio: 16 / 9; }
.gallery figcaption { font-size: .875rem; color: var(--dim); display: grid; }
.gallery figcaption b { color: var(--text); font-weight: 500; }
@media (max-width: 820px) { .gallery { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } .gallery figure, .gallery figure:nth-child(4), .gallery figure:nth-child(5) { grid-column: span 1; } .gallery figure:nth-child(5) { grid-column: span 2; } }
.logos { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.logos li { border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); min-height: 6rem; display: grid; place-items: center; text-align: center; padding: 1rem; font-size: 1.0625rem; font-weight: 500; letter-spacing: -.01em; color: #3f3a35; transition: background .3s; }
.logos li:hover { background: var(--bg-soft); }
.logos li.logo { grid-template-rows: 4.6rem auto; gap: .7rem; padding: 1.4rem 1rem 1.1rem; background: #fff; }
.logos li.logo .lg { display: grid; place-items: center; width: 100%; height: 4.6rem; }
.logos li.logo img { max-width: 82%; max-height: 4.6rem; width: auto; height: auto; object-fit: contain; transition: transform .4s var(--ease); }
.logos li.logo:hover img { transform: scale(1.04); }
.logos li.logo .lg-txt { font-size: 1.6rem; font-weight: 700; letter-spacing: .04em; color: #1d1b19; }
.logos li.logo .nm { font-size: .8125rem; font-weight: 400; color: var(--dim); }
@media (max-width: 820px) { .logos { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.nav a.cta-train { color: var(--text); }

/* ---------- multi-page additions ---------- */
.ico { width: 2.6rem; height: 2.6rem; border-radius: .8rem; background: var(--bg-soft); color: var(--brown); display: grid; place-items: center; margin-bottom: .9rem; transition: background .35s, color .35s, transform .5s var(--ease); }
.soft .ico { background: var(--bg); }
.ico svg { width: 1.3rem; height: 1.3rem; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.why > div:hover .ico, .ov a:hover .ico, .pillars > div:hover .ico { background: var(--brown); color: #fff; transform: translateY(-2px); }
.ico.sm { width: 2.3rem; height: 2.3rem; margin-bottom: .6rem; }
.ico.sm svg { width: 1.15rem; height: 1.15rem; }
.svc .n { display: grid; justify-items: start; align-content: start; }
.pillars .ico { margin-bottom: .8rem; }
.ov { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.ov a { position: relative; text-decoration: none; display: grid; align-content: start; gap: .35rem; padding: 1.8rem 1.6rem 2.6rem; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); transition: background .3s; }
.ov a:hover { background: var(--bg-soft); }
.ov .n { font-size: .8125rem; color: var(--brown); font-weight: 500; position: absolute; top: 1.8rem; right: 1.6rem; }
.ov h3 { font-size: 1.1rem; }
.ov p { color: var(--dim); font-size: .9rem; }
.ov .go { position: absolute; right: 1.6rem; bottom: 1.2rem; color: var(--brown); opacity: 0; transform: translateX(-6px); transition: .3s var(--ease); }
.ov a:hover .go { opacity: 1; transform: none; }
@media (max-width: 900px) { .ov { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .ov { grid-template-columns: minmax(0, 1fr); } }
.who .body .textlink { justify-self: start; }
.mvbig { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2rem, 6vw, 5rem); }
.big { font-size: clamp(1.3rem, 2.4vw, 1.75rem); font-weight: 400; letter-spacing: -.02em; line-height: 1.4; margin-top: .9rem; }
@media (max-width: 820px) { .mvbig { grid-template-columns: minmax(0, 1fr); } }
.sub-h { color: var(--text); font-weight: 500; margin-bottom: .5rem; }
.chain { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .5rem; align-content: start; counter-reset: c; }
.chain li { counter-increment: c; font-size: .875rem; padding: .45rem .9rem .45rem .5rem; border: 1px solid var(--line); border-radius: 99px; display: inline-flex; gap: .5rem; align-items: center; }
.chain li::before { content: counter(c); width: 1.4rem; height: 1.4rem; border-radius: 50%; background: var(--bg-soft); color: var(--brown); display: grid; place-items: center; font-size: .75rem; font-weight: 500; }
.oem { margin-top: 3rem; display: grid; grid-template-columns: 12rem minmax(0, 1fr); gap: 1rem 2rem; padding: 1.6rem 1.8rem; border-radius: 1rem; background: var(--bg-soft); }
.oem p:last-child { color: var(--dim); }
@media (max-width: 700px) { .oem { grid-template-columns: minmax(0, 1fr); } }
.oem-logos { grid-column: 1 / -1; list-style: none; margin: .4rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .75rem; }
.oem-logos li { display: grid; grid-template-rows: 3.6rem auto; gap: .6rem; place-items: center; padding: 1.2rem .9rem 1rem; background: #fff; border: 1px solid var(--line); border-radius: .75rem; transition: transform .3s var(--ease), box-shadow .3s var(--ease); }
.oem-logos li:hover { transform: translateY(-2px); box-shadow: 0 8px 20px -12px rgba(0,0,0,.25); }
.oem-logos .lg { display: grid; place-items: center; width: 100%; height: 3.6rem; }
.oem-logos img { max-width: 86%; max-height: 3.2rem; width: auto; height: auto; object-fit: contain; }
.oem-logos .nm { font-size: .8125rem; color: var(--dim); }
@media (max-width: 820px) { .oem-logos { grid-template-columns: repeat(2, minmax(0, 1fr)); } .oem-logos li:last-child { grid-column: 1 / -1; } .oem-logos li:last-child img { max-width: 42%; } }
.jump li { padding: 0; }
.jump a { display: block; padding: .45rem .95rem; text-decoration: none; }
.certs.exp { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.soft .certs li { background: var(--bg); }
.soft .certs li:hover { background: #fff8f1; }
@media (max-width: 820px) { .certs.exp { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.c-page { padding-block: clamp(3.5rem, 8vw, 6rem); }
.c-page h1 { font-size: clamp(2.4rem, 5.6vw, 4rem); letter-spacing: -.035em; margin-block: .9rem 1rem; }
.c-page h1 .lt { color: var(--dim); font-weight: 300; }
.c-page .form { border: 1px solid var(--line); }
.svc .chain li { padding: .45rem .9rem .45rem .5rem; }
.svc .chain li::before { position: static; width: 1.4rem; height: 1.4rem; top: auto; background: var(--bg-soft); }

/* keyword highlight with drawn underline (background-based so it follows wrapped lines) */
.hl { color: var(--brown); background: linear-gradient(#ecdfd0, #ecdfd0) 0 88% / 100% .2em no-repeat; -webkit-box-decoration-break: clone; box-decoration-break: clone; border-radius: .1em; }
.lt .hl { font-weight: 400; }
.soft .hl { background-image: linear-gradient(#e4d3bf, #e4d3bf); }
.in .hl { animation: draw 1s var(--ease) .7s both; }
@keyframes draw { from { background-size: 0 .2em; } to { background-size: 100% .2em; } }
.rv-pre .hl { background-size: 0 .2em; }
.rv-on .hl { background-size: 100% .2em; transition: background-size 1.1s var(--ease) .45s; }
@media (prefers-reduced-motion: reduce) { .hl { background-size: 100% .2em !important; } }
.sec-head .label, .who .label { display: inline-flex; align-items: center; gap: .55rem; }
.sec-head .label::before, .who .label::before { content: ""; width: 1.4rem; height: 1px; background: var(--brown); }
@media (prefers-reduced-motion: reduce) { .hl::after { transform: none !important; } }
.burger { all: unset; display: none; cursor: pointer; width: 2.6rem; height: 2.6rem; border-radius: 50%; border: 1px solid var(--line); place-items: center; align-content: center; gap: 5px; }
.burger span { display: block; width: 1rem; height: 1.5px; background: var(--text); transition: transform .3s var(--ease); }
.burger[aria-expanded="true"] span:first-child { transform: translateY(3.25px) rotate(45deg); }
.burger[aria-expanded="true"] span:last-child { transform: translateY(-3.25px) rotate(-45deg); }
.mnav { display: grid; padding: .5rem clamp(16px, 5vw, 48px) 1.2rem; border-top: 1px solid var(--line); background: var(--bg); animation: up .35s var(--ease) both; }
.mnav a { text-decoration: none; font-size: 1.25rem; font-weight: 500; padding-block: .7rem; border-bottom: 1px solid var(--line); }
.mnav a.on { color: var(--brown); }
@media (max-width: 860px) { .burger { display: grid; } .head .btn { margin-left: auto; padding: .65rem .95rem; font-size: .8125rem; } }
@media (min-width: 861px) { .mnav { display: none !important; } }
@media (max-width: 560px) { .head .btn { display: none; } .head .mnav .btn { display: inline-flex; } .burger { margin-left: auto; } }
.btn { white-space: nowrap; }
@media (max-width: 480px) { .btn { white-space: normal; text-align: center; } .closing .btn, .ctas .btn { justify-content: center; } }
.mnav .btn { margin-top: 1rem; justify-content: center; font-size: 1rem; border-bottom: 0; color: #fff; }
@media (min-width: 561px) { .mnav .btn { display: none; } }
@media (max-width: 560px) { .svc { grid-template-columns: minmax(0, 1fr); gap: 1.2rem; } .svc ul, .svc ol { grid-column: 1; } .svc .n { display: flex; gap: .7rem; align-items: center; } .svc .n .ico { margin: 0; } .ov a { padding: 1.5rem 1.3rem 2.2rem; } }
.view.sub-anim { animation: up .6s var(--ease) both; }

/* ---------- Google colour accents ---------- */
:root { --g-blue: #1a73e8; --g-red: #d93025; --g-yellow: #e8a200; --g-green: #188038;
        --t-blue: #e8f0fe; --t-red: #fce8e6; --t-yellow: #fef7e0; --t-green: #e6f4ea; }
.progress { background: linear-gradient(90deg, var(--g-blue) 0 25%, var(--g-red) 25% 50%, var(--g-yellow) 50% 75%, var(--g-green) 75%); }
/* icons cycle through the four colours */
:is(.why, .ov, .pillars, .svc-list) > :nth-child(4n+1) .ico { --ic: var(--g-blue); --it: var(--t-blue); }
:is(.why, .ov, .pillars, .svc-list) > :nth-child(4n+2) .ico { --ic: var(--g-red); --it: var(--t-red); }
:is(.why, .ov, .pillars, .svc-list) > :nth-child(4n+3) .ico { --ic: var(--g-yellow); --it: var(--t-yellow); }
:is(.why, .ov, .pillars, .svc-list) > :nth-child(4n+4) .ico { --ic: var(--g-green); --it: var(--t-green); }
.ico { color: var(--ic, var(--brown)); background: var(--it, var(--bg-soft)) !important; }
.why > div:hover .ico, .ov a:hover .ico, .pillars > div:hover .ico, .svc:hover .ico { background: var(--ic, var(--brown)) !important; color: #fff; }
.ov a:nth-child(4n+1) .n { color: var(--g-blue); } .ov a:nth-child(4n+2) .n { color: var(--g-red); } .ov a:nth-child(4n+3) .n { color: var(--g-yellow); } .ov a:nth-child(4n+4) .n { color: var(--g-green); }
.ov a:nth-child(4n+1) .go { color: var(--g-blue); } .ov a:nth-child(4n+2) .go { color: var(--g-red); } .ov a:nth-child(4n+3) .go { color: var(--g-yellow); } .ov a:nth-child(4n+4) .go { color: var(--g-green); }
/* methodology: four-colour line, dots take their stage colour */
.steps .fill { background: linear-gradient(90deg, var(--g-blue), var(--g-red) 35%, var(--g-yellow) 65%, var(--g-green)); }
@media (max-width: 860px) { .steps .fill { background: linear-gradient(180deg, var(--g-blue), var(--g-red) 35%, var(--g-yellow) 65%, var(--g-green)); } }
.steps li:nth-of-type(4n+1) { --sc: var(--g-blue); } .steps li:nth-of-type(4n+2) { --sc: var(--g-red); } .steps li:nth-of-type(4n+3) { --sc: var(--g-yellow); } .steps li:nth-of-type(4n+4) { --sc: var(--g-green); }
.steps li.lit::before { border-color: var(--sc); background: var(--sc); }
.steps li .n { color: var(--sc); }
/* licensing chain numbers */
.chain li:nth-child(4n+1)::before { color: var(--g-blue); background: var(--t-blue) !important; } .chain li:nth-child(4n+2)::before { color: var(--g-red); background: var(--t-red) !important; }
.chain li:nth-child(4n+3)::before { color: var(--g-yellow); background: var(--t-yellow) !important; } .chain li:nth-child(4n+4)::before { color: var(--g-green); background: var(--t-green) !important; }
/* footer colour strip */
.foot { border-top: 0; position: relative; }
.foot::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg, var(--g-blue) 0 25%, var(--g-red) 25% 50%, var(--g-yellow) 50% 75%, var(--g-green) 75%); }


/* trainer LinkedIn */
.trainer .tn { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.trainer .li { display: inline-grid; place-items: center; width: 1.5rem; height: 1.5rem; border-radius: .35rem; color: #0a66c2; transition: background .2s, color .2s; }
.trainer .li svg { width: 1rem; height: 1rem; fill: currentColor; }
.trainer .li:hover { background: #0a66c2; color: #fff; }
/* DPDPA consent */
.dp { display: grid; gap: .8rem; }
.dp-note { border: 1px solid var(--line); border-left: 3px solid var(--brown); border-radius: .6rem; padding: .9rem 1rem; background: var(--bg-soft); font-size: .8125rem; line-height: 1.65; color: var(--dim); }
.dp-note strong { color: var(--text); font-weight: 500; }
.dp-note a { color: var(--text); }
.dp-h { display: flex; align-items: center; gap: .5rem; color: var(--text) !important; font-weight: 500; font-size: .8125rem; margin-bottom: .4rem !important; }
.dp-h .ico { width: 1.6rem; height: 1.6rem; margin: 0; border-radius: .45rem; background: var(--bg); }
.dp-h .ico svg { width: .9rem; height: .9rem; }
.dp-go { display: grid; gap: .5rem; justify-items: start; }
.btn[disabled] { opacity: .4; cursor: not-allowed; pointer-events: none; }
.dp-hint { font-size: .75rem; color: var(--dim); }
.dp-hint.ok { color: var(--g-green); }
.maplink { display: inline-flex; gap: .3rem; margin-top: .4rem; font-size: .875rem; font-weight: 500; color: var(--brown); text-decoration: none; }
.maplink:hover .arrow { transform: translate(2px, -2px); }
.hrs-note { display: block; font-size: .8125rem; color: var(--dim); }
.c-page .details .addr { display: grid; }
/* legal pages */
.doc-head { max-width: 44rem; padding-bottom: clamp(2rem, 5vw, 3rem); border-bottom: 1px solid var(--line); }
.doc-head .meta { font-size: .8125rem; color: var(--dim); }
.doc-head .lead { color: var(--dim); margin-top: 1rem; font-size: 1.0625rem; }
.doc-grid { display: grid; grid-template-columns: 14rem minmax(0, 1fr); gap: clamp(2rem, 6vw, 5rem); padding-top: clamp(2rem, 5vw, 3rem); }
.toc { position: sticky; top: 6rem; align-self: start; }
.toc ol { list-style: none; margin: .8rem 0 0; padding: 0; display: grid; gap: .15rem; counter-reset: t; }
.toc li { counter-increment: t; }
.toc a { display: block; padding: .3rem 0; font-size: .875rem; color: var(--dim); text-decoration: none; transition: color .2s; }
.toc a::before { content: counter(t) ". "; color: var(--faint); }
.toc a:hover { color: var(--brown); }
.doc-body { max-width: 44rem; display: grid; gap: 1rem; color: #3f3a35; }
.doc-body h2 { font-size: 1.25rem; margin-top: 1.6rem; color: var(--text); scroll-margin-top: 6rem; }
.doc-body h2:first-child { margin-top: 0; }
.doc-body strong { font-weight: 500; color: var(--text); }
.doc-body ul { margin: 0; padding-left: 1.2rem; display: grid; gap: .5rem; }
.doc-body li::marker { color: var(--brown); }
.doc-body a { color: var(--brown); }
.doc-body .kv { margin: 0; display: grid; gap: .5rem; padding: 1rem 1.2rem; border-radius: .75rem; background: var(--bg-soft); }
.doc-body .kv div { display: grid; grid-template-columns: 4.5rem minmax(0, 1fr); gap: 1rem; }
.doc-body .kv dt { color: var(--dim); font-size: .875rem; }
.doc-body .kv dd { margin: 0; }
.doc-alt { font-size: .875rem; color: var(--dim); padding-top: 1rem; border-top: 1px solid var(--line); }
.foot .legal a { color: inherit; }
@media (max-width: 820px) { .doc-grid { grid-template-columns: minmax(0, 1fr); } .toc { position: static; padding: 1rem 1.2rem; border-radius: .75rem; background: var(--bg-soft); } .toc ol { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1rem; } }


/* ---------- animated logo ---------- */
.owl-anim { position: relative; display: block; }
.owl-anim img { display: block; width: 100%; height: auto; }
.owl-anim svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.owl-anim path { fill: #141210; }
.owl-anim .track { transition: transform .35s var(--ease); }
.owl-anim .lid { transform-box: fill-box; transform-origin: 50% 50%; }
.owl-anim.blink .lid { animation: blink .26s ease-in-out; }
@keyframes blink { 0%, 100% { transform: scaleY(1); } 45%, 55% { transform: scaleY(.08); } }
.brand .lw { position: relative; display: block; height: 2.25rem; aspect-ratio: 422 / 153; }
.brand .lw-base { display: block; height: 100%; width: auto; animation: wipe 1s var(--ease) .1s backwards; }
.brand .lw-owl { position: absolute; left: 46.06%; top: 5.46%; width: 16.49%; transform-origin: 50% 92%; transition: transform .6s cubic-bezier(.34, 1.56, .64, 1); animation: owl-drop 1.1s cubic-bezier(.34, 1.4, .64, 1) .45s backwards; }
.brand:hover .lw-owl, .brand:focus-visible .lw-owl { transform: rotate(-14deg); }
.lw-owl.tilt { transform: rotate(10deg); }
@keyframes wipe { from { clip-path: inset(0 100% 0 0); } to { clip-path: inset(0 0 0 0); } }
@keyframes owl-drop { 0% { opacity: 0; transform: translateY(-70%) rotate(-30deg) scale(.5); } 55% { opacity: 1; transform: translateY(6%) rotate(10deg) scale(1.06); } 78% { transform: rotate(-5deg); } 100% { transform: none; } }
.mark .mk-owl { width: 34%; }
@media (prefers-reduced-motion: reduce) { .brand .lw-base, .brand .lw-owl { animation: none; } .owl-anim .track { transition: none; } }

/* ---------- floating connect button ---------- */
.fab { position: fixed; z-index: 30; right: clamp(16px, 2.5vw, 28px); flex-direction: row-reverse; bottom: calc(clamp(16px, 2.5vw, 28px) + env(safe-area-inset-bottom, 0px)); display: flex; align-items: flex-end; gap: .7rem; pointer-events: none; }
.fab-btn { all: unset; pointer-events: auto; cursor: pointer; width: 4.25rem; height: 4.25rem; border-radius: 50%; background: var(--bg-soft); display: grid; place-items: center; box-shadow: 0 10px 30px -10px rgba(20,18,16,.35), 0 0 0 1px var(--line); transform-origin: 50% 50%; transition: box-shadow .3s, scale .4s cubic-bezier(.34, 1.56, .64, 1); position: relative; }
.fab-btn::after { content: ""; position: absolute; inset: -6px; border-radius: 50%; border: 2px solid var(--brown); opacity: 0; animation: ring 2.8s ease-out 1.2s infinite; }
@keyframes ring { 0% { opacity: .5; transform: scale(.85); } 70%, 100% { opacity: 0; transform: scale(1.25); } }
.fab-btn:hover { scale: 1.08; box-shadow: 0 14px 34px -10px rgba(20,18,16,.45), 0 0 0 1px var(--brown); }
.fab-btn:focus-visible { outline: 2px solid var(--brown); outline-offset: 4px; }
.fab-owl { width: 46%; }
.fab.fly .fab-btn { transition: transform .75s cubic-bezier(.65, 0, .25, 1), opacity .3s; }
.fab-tip { box-sizing: border-box; pointer-events: auto; position: relative; width: min(19rem, calc(100vw - 7.5rem)); margin-bottom: 1.6rem; background: var(--bg); border: 1px solid var(--line); border-radius: 1rem 1rem .25rem 1rem; padding: .8rem 2rem .85rem 1rem; box-shadow: 0 16px 40px -18px rgba(20,18,16,.35); opacity: 0; transform: translateX(10px) scale(.85); transform-origin: 100% 100%; transition: opacity .35s, transform .5s cubic-bezier(.34, 1.56, .64, 1); cursor: pointer; }
.fab-tip::before { content: ""; position: absolute; right: -7px; bottom: 10px; width: 12px; height: 12px; background: var(--bg); border-right: 1px solid var(--line); border-top: 1px solid var(--line); transform: rotate(45deg); }
.fab-tip.on { opacity: 1; transform: none; }
.fab-who { display: flex; align-items: baseline; gap: .4rem; font-size: .8125rem; margin-bottom: .2rem; }
.fab-who b { font-weight: 600; }
.fab-who span { color: var(--dim); font-size: .75rem; }
.fab-msg { font-size: .875rem; line-height: 1.5; color: var(--text); }
.fab-msg .txt { display: none; }
.fab-tip.typed .typing { display: none; } .fab-tip.typed .txt { display: inline; animation: up .4s var(--ease) both; }
.typing { display: inline-flex; gap: 4px; padding: .35rem 0; } .typing i { width: 6px; height: 6px; border-radius: 50%; background: var(--faint); animation: dot 1s infinite; } .typing i:nth-child(2) { animation-delay: .15s; } .typing i:nth-child(3) { animation-delay: .3s; }
@keyframes dot { 0%, 60%, 100% { transform: none; opacity: .5; } 30% { transform: translateY(-4px); opacity: 1; } }
.fab-x { all: unset; cursor: pointer; position: absolute; top: .35rem; right: .55rem; width: 1.5rem; height: 1.5rem; display: grid; place-items: center; font-size: 1.1rem; color: var(--dim); border-radius: 50%; }
.fab-x:hover { background: var(--bg-soft); color: var(--text); }

[data-v="biz"] [data-v="train"], [data-v="train"] [data-v="biz"] { display: none !important; }
.cm-v { display: grid; gap: 1.1rem; }
.cmodal[data-v="train"], .fab[data-v="train"] { --brown: var(--g-blue); --bg-soft: #f4f7fc; }
.cmodal[data-v="train"] .hl { background-image: linear-gradient(#d2e3fc, #d2e3fc); }
.cmodal[data-v="train"] .btn-dark { background: var(--g-blue); }
/* popup */
.cmodal { position: fixed; inset: 0; z-index: 40; display: grid; place-items: center; padding: 16px; }
.cm-back { position: absolute; inset: 0; background: rgba(20,18,16,.45); backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); animation: fade .3s both; }
.cm-card { box-sizing: border-box; position: relative; width: min(44rem, 100%); overscroll-behavior: contain; max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px); overflow: auto; border: 1px solid var(--line); box-shadow: 0 30px 80px -30px rgba(20,18,16,.5); transform-origin: 100% 100%; animation: pop .55s cubic-bezier(.34, 1.3, .64, 1) both; }
.cm-card h3 { font-size: clamp(1.4rem, 3vw, 1.8rem); padding-right: 2.5rem; }
.cm-card .field input::placeholder, .cm-card textarea::placeholder { color: var(--faint); }
.cm-x { all: unset; cursor: pointer; position: absolute; top: 1rem; right: 1rem; width: 2.2rem; height: 2.2rem; border-radius: 50%; display: grid; place-items: center; font-size: 1.4rem; color: var(--dim); border: 1px solid var(--line); transition: all .2s; }
.cm-x:hover { color: var(--text); border-color: var(--text); rotate: 90deg; }
.cm-x:focus-visible { outline: 2px solid var(--brown); outline-offset: 2px; }
@keyframes fade { from { opacity: 0; } }
@keyframes pop { from { opacity: 0; transform: translate(30%, 30%) scale(.4); } }
body.modal-open { overflow: hidden; }
@media (max-width: 560px) { .fab-btn { width: 3.6rem; height: 3.6rem; } .fab-tip { margin-bottom: 1.2rem; } .cm-card .frow { grid-template-columns: minmax(0, 1fr); } }
@media (prefers-reduced-motion: reduce) { .fab-btn::after, .cm-card, .cm-back { animation: none; } .fab.fly .fab-btn { transition: none; } }

.modules li { grid-template-columns: auto minmax(0, 1fr); align-items: center; column-gap: .8rem; row-gap: .7rem; }
.modules li::before { grid-column: 1 / -1; }
.modules li .ico { margin: 0; }
#view-training .modules li:nth-child(4n+1) .ico { color: var(--g-blue); background: var(--t-blue); } #view-training .modules li:nth-child(4n+2) .ico { color: var(--g-red); background: var(--t-red); }
#view-training .modules li:nth-child(4n+3) .ico { color: var(--g-yellow); background: var(--t-yellow); } #view-training .modules li:nth-child(4n+4) .ico { color: var(--g-green); background: var(--t-green); }
.modules li:hover .ico { transform: translateY(-2px) rotate(-6deg); }

/* social links */
.social { list-style: none; margin: 1.1rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.social a { display: grid; place-items: center; width: 2.4rem; height: 2.4rem; border-radius: 50%; border: 1px solid var(--line); color: var(--dim); background: var(--bg); transition: color .25s, background .25s, border-color .25s, transform .35s cubic-bezier(.34, 1.56, .64, 1); }
.social svg { width: 1rem; height: 1rem; fill: currentColor; }
.social a:hover, .social a:focus-visible { color: #fff; background: var(--sc); border-color: var(--sc); transform: translateY(-3px); }
.foot .social { display: flex; gap: .5rem; margin-top: 1.1rem; }
.foot .social a:hover { color: #fff; }
.s-contact { margin-top: .3rem; }
/* ---------- parallax depth ---------- */
.closing { position: relative; overflow: hidden; isolation: isolate; }
.closing .px-owl { position: absolute; z-index: -1; width: clamp(11rem, 24vw, 19rem); right: -3rem; top: 50%; margin-top: -8rem; opacity: .05; pointer-events: none; will-change: translate, rotate; }
.closing .px-owl.l { right: auto; left: -5rem; width: clamp(9rem, 18vw, 15rem); margin-top: -2rem; opacity: .045; }
#view-training .closing .px-owl { filter: hue-rotate(180deg) saturate(.6); }
.hero > .wrap, .t-hero > .wrap { will-change: translate, opacity; }
[data-px] { will-change: translate; }
/* ---------- Training pages: blue instead of brown ---------- */
#view-training { --brown: var(--g-blue); --bg-soft: #f4f7fc; }
#view-training .soft { background: #f4f7fc; }
#view-training .hl { background-image: linear-gradient(#d2e3fc, #d2e3fc); }
#view-training .soft .hl { background-image: linear-gradient(#c2d7fa, #c2d7fa); }
#view-training .ph, #view-training .shot, #view-training .person .av { border-color: #a8c7fa; }
#view-training .ph { background: #f8fbff; }
#view-training .shot { background: linear-gradient(135deg, #f8fbff, #e8f0fe); }
#view-training .soft .certs li:hover, #view-training .certs li:hover { background: var(--t-blue); }
#view-training .seg i, #view-training .stream-tabs button[aria-selected="true"] { background: var(--g-blue); border-color: var(--g-blue); }
#view-training .btn-dark { background: var(--g-blue); }
#view-training .btn-dark:hover { background: #1557b0; }
#view-training .course:hover { border-color: var(--g-blue); }
#view-training .mini li { background: var(--t-blue); color: #174ea6; }
#view-training .stats div:nth-child(4n+1) b { color: var(--g-blue); } #view-training .stats div:nth-child(4n+2) b { color: var(--g-red); }
#view-training .stats div:nth-child(4n+3) b { color: var(--g-yellow); } #view-training .stats div:nth-child(4n+4) b { color: var(--g-green); }
#view-training .trainer:nth-child(4n+2) .ini { color: var(--g-red); background: var(--t-red); } #view-training .trainer:nth-child(4n+3) .ini { color: var(--g-yellow); background: var(--t-yellow); }
#view-training .trainer:nth-child(4n+4) .ini { color: var(--g-green); background: var(--t-green); } #view-training .trainer:nth-child(4n+1) .ini { color: var(--g-blue); background: var(--t-blue); }
#view-training .trainer:hover .ini { background: var(--g-blue); color: #fff; }
#view-training .modules li:nth-child(4n+1)::before { color: var(--g-blue); } #view-training .modules li:nth-child(4n+2)::before { color: var(--g-red); }
#view-training .modules li:nth-child(4n+3)::before { color: var(--g-yellow); } #view-training .modules li:nth-child(4n+4)::before { color: var(--g-green); }

/* certification partner logos */
.certs li.logo { display: grid; grid-template-rows: 4.2rem auto; gap: .7rem; place-items: center; padding: 1.4rem 1rem 1.1rem; background: #fff !important; }
.certs li.logo .lg { display: grid; place-items: center; width: 100%; height: 4.2rem; }
.certs li.logo img { max-width: 78%; max-height: 4.2rem; width: auto; height: auto; object-fit: contain; transition: transform .4s var(--ease); }
.certs li.logo:hover img { transform: scale(1.06); }
.certs li.logo .lg-txt { font-size: 1.35rem; font-weight: 600; letter-spacing: -.02em; color: #3f3a35; }
.certs li.logo .nm { font-size: .8125rem; color: var(--dim); text-align: center; line-height: 1.35; transition: color .3s; }
.certs li.logo:hover .nm { color: var(--brown); }

/* ---------- production additions ---------- */
.hp { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.form-err { font-size: .8125rem; color: var(--err); background: #fbeeea; border-radius: .5rem; padding: .6rem .8rem; }
.btn.sending { opacity: .6; pointer-events: none; }
.nf { min-height: 60vh; display: grid; place-items: center; text-align: center; }
.nf .owl-anim { width: 5rem; margin: 0 auto 1.5rem; }
.nf h1 { font-size: clamp(2.2rem, 5vw, 3.4rem); letter-spacing: -.03em; }
.nf p { color: var(--dim); margin: 1rem auto 2rem; max-width: 30rem; }
.skip { position: absolute; left: 1rem; top: -3rem; z-index: 50; background: var(--text); color: #fff; padding: .6rem 1rem; border-radius: .5rem; text-decoration: none; }
.skip:focus { top: 1rem; }
