/* Generated by tools/build-site.mjs — edit the .dc.html sources instead. */
.dc-wide, .dc-narrow { display: contents; }
@media (max-width: 1099.98px) { .dc-wide { display: none; } }
@media (min-width: 1100px) { .dc-narrow { display: none; } }

.hero-grid { grid-template-columns: minmax(0,0.92fr) minmax(0,1.14fr); }
@media (max-width: 899.98px) {
  .hero-grid { grid-template-columns: minmax(0,1fr); }
  .r-hero-media { justify-self: center !important; max-width: 560px !important; }
}

/* ---------- Testimonial cards + pop-up ---------- */
.t-card { transition: box-shadow .2s ease, transform .2s ease; }
.t-card:hover, .t-card:focus-visible { box-shadow: inset 0 0 0 2px #CD242C; outline: none; }
.t-card:hover .t-more { text-decoration: underline; text-underline-offset: 4px; }
.t-modal { position: fixed; inset: 0; z-index: 300; display: flex; align-items: center; justify-content: center; padding: 20px; }
.t-modal[hidden] { display: none; }
.t-modal__backdrop { position: absolute; inset: 0; background: rgba(25,25,25,0.72); backdrop-filter: blur(4px); animation: tFade .25s ease both; }
.t-modal__panel { position: relative; width: min(680px, 100%); max-height: calc(100vh - 40px); max-height: calc(100dvh - 40px); overflow-y: auto; background: #F8EEE1; color: #191919;
  padding: clamp(30px,5vw,52px) clamp(22px,5vw,52px) clamp(28px,4vw,44px); border-top: 6px solid #CD242C; box-shadow: 0 30px 80px rgba(0,0,0,0.35); animation: tRise .35s cubic-bezier(.2,.7,.2,1) both; outline: none; }
.t-modal__close { position: absolute; top: 14px; right: 14px; width: 44px; height: 44px; border: 1px solid rgba(25,25,25,0.2); border-radius: 50%; background: transparent; color: #191919; font-size: 18px; line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center; }
.t-modal__close:hover { background: #191919; color: #F8EEE1; }
.t-modal__mark { display: block; font-size: 88px; line-height: 1; height: 44px; color: #CD242C; font-weight: 700; }
.t-modal__body p { font-size: clamp(18px,1.6vw,20px); line-height: 1.6; margin: 0 0 18px; color: #3E3830; text-wrap: pretty; }
.t-modal__who { display: flex; align-items: center; gap: 14px; margin-top: 26px; padding-top: 22px; border-top: 1px solid rgba(25,25,25,0.16); }
.t-modal__avatar { width: 48px; height: 48px; border-radius: 50%; background: #EFE3D4; color: #9F542B; display: flex; align-items: center; justify-content: center; font-size: 16px; font-weight: 700; letter-spacing: 0.04em; flex: none; }
.t-modal__name { font-size: 18px; font-weight: 600; margin: 0 0 4px; }
.t-modal__role { font-size: 15px; color: #8A8175; margin: 0; }
html.t-modal-open { overflow: hidden; }
@keyframes tFade { from { opacity: 0; } to { opacity: 1; } }
@keyframes tRise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }

/* ---------- Tablet & phone refinements (the design itself is desktop-first) ---------- */
.r-gutter, .r-hero { padding-left: clamp(20px,4.5vw,44px) !important; padding-right: clamp(20px,4.5vw,44px) !important; }
.r-hero { padding-top: clamp(36px,6vw,70px) !important; }

/* Four-up card rows: 4 → 2 → 1 columns, with even gutters and dividers. */
@media (min-width: 900px) { .r-cards4 { grid-template-columns: repeat(4, minmax(0,1fr)) !important; } }
@media (max-width: 899.98px) {
  .r-cards4 { grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
  .r-cards4 > * { padding: 30px 26px 30px 0 !important; border-right: 0 !important; border-bottom: 1px solid rgba(248,238,225,0.16); }
  .r-cards4 > :nth-child(odd) { border-right: 1px solid rgba(248,238,225,0.16) !important; }
  .r-cards4 > :nth-child(even) { padding-left: 26px !important; padding-right: 0 !important; }
  .r-foot { grid-template-columns: repeat(2, minmax(0,1fr)) !important; gap: 40px 32px !important; }
  .r-price { padding: clamp(28px,5vw,48px) clamp(20px,4.5vw,44px) !important; }
}
@media (max-width: 1099.98px) { .r-check { grid-template-columns: repeat(2, minmax(0,1fr)) !important; } }
@media (min-width: 900px) and (max-width: 1099.98px) {
  .r-foot { grid-template-columns: repeat(4, minmax(0,1fr)) !important; gap: 32px !important; }
}

/* Proof bar: three across on tablets, stacked rows on phones. */
@media (min-width: 600px) { .r-stats { grid-template-columns: repeat(3, minmax(0,1fr)) !important; } }

@media (max-width: 599.98px) {
  .r-announce { padding: 10px 20px !important; font-size: 14px !important; }
  .r-stats > * { padding: 22px 0 !important; border-left: 0 !important; }
  .r-stats > * + * { border-top: 1px solid rgba(25,25,25,0.14); }
  .r-cards4 { grid-template-columns: minmax(0,1fr) !important; }
  .r-cards4 > *, .r-cards4 > :nth-child(odd), .r-cards4 > :nth-child(even) { padding: 28px 0 !important; border-right: 0 !important; }
  .r-mini-stats { grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
  .r-mini-stats > * { padding: 20px 12px 0 0 !important; border-left: 0 !important; }
  .r-cards4 > :last-child { border-bottom: 0; }
  .r-check { grid-template-columns: minmax(0,1fr) !important; gap: 18px !important; }
  .r-box { padding: 34px 22px !important; }
  .r-badge { left: -6px !important; top: -34px !important; width: 96px !important; height: 96px !important; }
  .r-foot { grid-template-columns: minmax(0,1fr) !important; }
  .r-faq-a { padding-right: 8px !important; }
  .r-mod-head { gap: 14px !important; padding: 22px 2px !important; }
  .r-mod-head > :first-child { width: 36px !important; }
  .r-mod-body { padding: 0 2px 28px 50px !important; gap: 22px !important; }
  .r-ia-hero, .r-ia-hero > img:first-child { min-height: 0 !important; }
  .r-ia-hero > img:first-child { aspect-ratio: 1 / 1; }

}

@keyframes menuDrop { from { transform: translateY(-102%); } to { transform: translateY(0); } }
@keyframes menuLift { from { transform: translateY(0); } to { transform: translateY(-102%); } }

[data-acc-head]:focus-visible, [data-rail-btn]:focus-visible, a:focus-visible, button:focus-visible { outline: 2px solid #CD242C; outline-offset: 3px; }
academy-map { display: block; }
/* Globe: hand cursor to grab, closed hand while turning it (overrides the home page's pen cursor). */
html.globe-hover, html.globe-hover * { cursor: grab !important; }
html.globe-grab, html.globe-grab * { cursor: grabbing !important; user-select: none; }

/* After the first page of a visit the curtain just lifts, and the hero ring draws right after. */
html.quick-intro [data-loader] h2, html.quick-intro [data-loader] img[src$=".svg"] { display: none; }
html.quick-intro [data-tear-panel] { animation: tearOut 1.1s cubic-bezier(0.5,0,0.2,1) 0.15s forwards !important; }
html.quick-intro [data-ring-hero] path[data-ring="1"] { animation-delay: 1.1s !important; }
html.quick-intro [data-ring-hero] path[data-ring="2"] { animation-delay: 1.44s !important; }

/* No scrolling while the intro curtain is down (site.js lifts the lock when it has gone). */
html.intro-lock, html.intro-lock body { overflow: hidden !important; overscroll-behavior: none; }
.intro-skip { position: absolute; right: clamp(20px,4vw,48px); bottom: clamp(24px,5vh,48px); z-index: 2; pointer-events: auto; font: inherit; font-size: 15px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #F8EEE1; background: transparent; border: 1.5px solid rgba(248,238,225,0.6); border-radius: 999px; padding: 11px 22px; cursor: pointer; opacity: 0; animation: skipIn 0.5s ease 0.6s forwards; transition: background .2s ease, color .2s ease, border-color .2s ease, opacity .3s ease; }
.intro-skip:hover, .intro-skip:focus-visible { background: #F8EEE1; color: #CD242C; border-color: #F8EEE1; outline: none; }
@keyframes skipIn { to { opacity: 1; } }

/* brief 2026-10: three problem cards, and the module unit lists */
@media (max-width: 899.98px) {
  [data-cards3] { grid-template-columns: minmax(0,1fr) !important; }
  [data-cards3] > * { padding: 28px 0 !important; border-right: 0 !important; border-bottom: 1px solid rgba(248,238,225,0.16); }
  [data-cards3] > :last-child { border-bottom: 0; }
  [data-units] { padding-left: 0 !important; }
}
/* module rows with their illustration (IA structure + homepage card) */
@media (max-width: 699.98px) {
  [data-mhead] { display: grid !important; grid-template-columns: var(--mt, 96px) minmax(0,1fr) 26px; grid-template-areas: "t n s" "t ti s" "t m s"; gap: 2px 14px !important; align-items: center !important; }
  [data-mhead] > :nth-child(1) { grid-area: n; width: auto !important; font-size: 12px !important; }
  [data-mhead] > :nth-child(2) { grid-area: t; width: 100% !important; }
  [data-mhead] > :nth-child(3) { grid-area: ti; font-size: 19px !important; }
  [data-mhead] > :nth-child(4) { grid-area: m; font-size: 13px !important; }
  [data-mhead] > :nth-child(5) { grid-area: s; align-self: center; }
}
@media (prefers-reduced-motion: reduce) {
  [data-loader] { display: none; }
  *, *::before, *::after { animation-duration: 0.01ms !important; animation-delay: 0s !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
}

.hv1:hover, .hv1:focus-visible { color:#F8EEE1 !important; }
.hv2:hover, .hv2:focus-visible { color:#CD242C !important; }
.hv3:hover, .hv3:focus-visible { background:#A1181E !important; color:#F8EEE1 !important; }
.hv4:hover, .hv4:focus-visible { color:#191919 !important; }
.hv5:hover, .hv5:focus-visible { background:#FFFFFF !important; color:#A1181E !important; }
.hv6:hover, .hv6:focus-visible { background:#191919 !important; color:#F8EEE1 !important; }
.hv7:hover, .hv7:focus-visible { background:#191919 !important; }
.hv8:hover, .hv8:focus-visible { background:#9F542B !important; }
.hv9:hover, .hv9:focus-visible { border-color:#F8EEE1 !important; color:#F8EEE1 !important; }
.hv10:hover, .hv10:focus-visible { background:rgba(248,238,225,0.04) !important; }
.hv11:hover, .hv11:focus-visible { background:#3E3830 !important; color:#F8EEE1 !important; }
.hv12:hover, .hv12:focus-visible { border-color:#CD242C !important; color:#CD242C !important; }
.hv13:hover, .hv13:focus-visible { background:rgba(25,25,25,0.035) !important; }
