:root {
    --red: #b80c23;
    --card-red: #ff0000;
    --ink: #1c1416;
    --muted: #5c5154;
    --line: #e4e4e4;
    --paper: #fff;
    --sand: #f1f1f1;
    --dark: #111;
    --header-h: 72px;
    --section-nav-h: 0px;
}
* { box-sizing: border-box; }
[x-cloak] { display: none !important; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    color: var(--ink);
    background: var(--paper);
    font-family: "Titillium Web", sans-serif;
    font-size: 1.05rem;
    line-height: 1.6;
}
img { max-width: 100%; height: auto; }
a { color: inherit; }
button, input, textarea, select { font: inherit; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.wrap { width: min(1320px, calc(100% - 24px)); margin: 0 auto; padding: 0 12px; }

.site-header {
    --header-h: 72px;
    position: sticky; top: 0; z-index: 40;
    background: #fff;
    box-shadow: 0 0 20px 3px rgba(0, 0, 0, .05);
}
.header-top {
    display: flex; align-items: center; gap: .4rem;
    min-height: var(--header-h); padding: 6px 0;
}
.brand { flex: 0 0 auto; }
.brand img { height: 52px; width: auto; display: block; }
.main-nav { flex: 1 1 auto; min-width: 0; border: 0; padding: 0; }
.nav-row {
    display: flex; align-items: center; justify-content: center; flex-wrap: nowrap; gap: 0;
}
.main-nav > a, .nav-row > a, .drop > button {
    position: relative;
    background: none; border: 0; color: #111; text-decoration: none;
    padding: .4rem .42rem; cursor: pointer; font-weight: 600; font-size: 15px;
    white-space: nowrap;
    transition: color .15s ease;
}
.drop > button i { display: none; }
.nav-row > a:hover,
.nav-row > a:focus-visible,
.drop:hover > button,
.drop:focus-within > button {
    color: var(--red);
}
.drop:hover > button i,
.drop:focus-within > button i { transform: rotate(180deg); }
.drop { position: relative; }
.drop-menu {
    display: none; position: absolute; top: 100%; left: 0; min-width: 250px;
    background: #fff; border: 0; padding: .2rem 0; z-index: 5;
    box-shadow: 0 12px 28px rgba(184, 12, 35, .12);
}
.drop:hover .drop-menu, .drop:focus-within .drop-menu { display: grid; }
.drop-menu a {
    text-decoration: none; padding: .55rem .9rem;
    color: #333; font-weight: 400;
    border-left: 3px solid transparent;
    transition: color .15s ease, background-color .15s ease, border-color .15s ease;
}
.drop-menu a:hover,
.drop-menu a:focus-visible,
.drop-menu a.is-on {
    color: var(--red);
    background: #fdf2f4;
    border-left-color: var(--red);
}
.drop-menu a.calendar-link {
    margin: .45rem .55rem 0; background: #111; color: #fff; border-radius: 10px; text-align: center;
    border-left-color: transparent;
}
.drop-menu a.calendar-link:hover,
.drop-menu a.calendar-link:focus-visible,
.drop-menu a.calendar-link.is-on {
    background: var(--red); color: #fff; border-left-color: transparent;
}
.header-tools { display: flex; align-items: center; gap: .55rem; flex: 0 0 auto; }
.black-btn, .line-btn, .hbtn {
    display: inline-flex; align-items: center; gap: .4rem;
    border-radius: 5px; font-weight: 700; text-decoration: none; cursor: pointer;
    padding: .45rem 1rem; border: 1px solid #111; line-height: 1.2;
}
.header-tools .black-btn, .header-tools .line-btn {
    padding: .42rem .75rem; font-size: .92rem; white-space: nowrap;
}
.header-tools .header-search {
    display: inline-flex; align-items: center; justify-content: center;
    width: 36px; height: 36px; padding: 0;
    border: 0; border-radius: 5px; background: transparent;
    color: #111; font-size: 1.05rem; line-height: 1; text-decoration: none;
}
.header-tools .header-search:hover,
.header-tools .header-search:focus-visible { color: var(--red); background: transparent; }
.black-btn, .hbtn-dark { background: #111; color: #fff; }
.line-btn, .hbtn-white { background: #fff; color: #111; }
.black-btn:hover, .black-btn:focus-visible { background: var(--red); border-color: var(--red); color: #fff; }
.line-btn:hover, .line-btn:focus-visible { background: #f1f1f1; color: #111; }
.hbtn-dark:hover, .hbtn-dark:focus-visible { background: #fff; color: #111; }
.hbtn-white:hover, .hbtn-white:focus-visible { background: #111; color: #fff; }
.flag {
    display: flex; flex-direction: column; align-items: center; gap: 0;
    text-decoration: none; font-size: 10px; font-weight: 600; color: #111;
    line-height: 1.1;
}
.flag img { width: 22px; height: 14px; object-fit: cover; }
.nav-toggle { display: none; border: 0; background: transparent; font-size: 1.35rem; padding: .2rem; cursor: pointer; }

.home-intro {
    background: url("../images/banner/home.jpg") center / cover no-repeat;
    color: #fff; min-height: 70vh; display: flex; align-items: center;
    padding: 4.5rem 0;
}
.home-intro h1 { font-size: clamp(2.4rem, 3.5vw, 3.25rem); line-height: 1.15; font-weight: 700; max-width: 640px; margin: 0 0 1.2rem; }
.home-intro h2 { font-size: clamp(1.15rem, 2vw, 1.4rem); font-weight: 600; line-height: 1.35; max-width: 28ch; margin: 0 0 1.6rem; }

.band { background: var(--sand); padding: 5rem 0; }
.section { padding: 4.2rem 0; }
.section.tight { padding-top: 0; }
.display, .section h2, .page-banner h1 { font-size: clamp(1.8rem, 3vw, 2.6rem); line-height: 1.2; margin: 0 0 1rem; }
.display span { color: var(--red); }
.lede { font-size: 1.15rem; color: #333; max-width: 40rem; }
.more { margin-top: 1.6rem; }
.split { display: grid; grid-template-columns: 1fr 1fr; gap: 2.5rem; align-items: center; }
.media-split img, .lead-row img, .person img, .cover { border-radius: 12px; }
.squares { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; }
.square {
    position: relative; overflow: hidden; height: 170px; border-radius: 10px;
    background: #fff; color: #111; display: flex; flex-direction: column;
    align-items: center; justify-content: center; text-align: center; padding: 1rem;
}
.square.is-dark { background: #111; color: #fff; }
.square strong { font-size: 3rem; line-height: 1; color: var(--red); }
.square.is-dark strong, .square.is-dark span { color: #fff; }
.square span { display: block; margin-top: .35rem; }
.square-box {
    position: absolute; inset: 0; background: #ffd146; color: #111;
    display: flex; align-items: center; justify-content: center; padding: 1rem;
    text-align: center;
    transform: translateY(calc(100% + 2px));
    transition: transform .25s ease;
}
.square:hover .square-box, .square:focus-within .square-box { transform: translateY(0); }
.square-box p { margin: 0; color: #111; }

.person {
    display: flex; flex-direction: column; height: 100%;
    background: #fff;
    border-width: 4px 1px 1px;
    border-style: solid;
    border-color: var(--card-red) #ccc #ccc;
    border-radius: 8px;
    padding: 15px 16px 18px;
    overflow: hidden;
}
.person:hover { box-shadow: 0 0 12px rgba(0, 0, 0, .2); }
.person img {
    width: 100%; aspect-ratio: 4 / 3; height: auto; object-fit: cover; object-position: top center;
    display: block; border-radius: 4px;
}
.person h3 { margin: .8rem 0 .2rem; font-size: 1.12rem; line-height: 1.3; }
.person p { color: var(--muted); margin: 0; }

.course-card, .news-card {
    display: flex; flex-direction: column; height: 100%;
    background: #fff;
    border-width: 4px 1px 1px;
    border-style: solid;
    border-color: var(--card-red) #ccc #ccc;
    border-radius: 8px;
    padding: 15px 20px 22px;
    overflow: hidden;
    position: relative;
}
.course-card:hover, .news-card:hover { box-shadow: 0 0 12px rgba(0, 0, 0, .2); }
.card-media, .news-media {
    display: block; position: relative;
    aspect-ratio: 3 / 2; overflow: hidden;
    margin: 0 0 .15rem; background: #f3f3f3;
}
.card-media img, .news-media img {
    width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 0;
}
.card-body, .news-body {
    display: flex; flex-direction: column; flex: 1; min-height: 0;
    gap: .55rem; padding: .75rem 0 0;
}
.card-kicker { margin: 0; color: #333; font-size: .92rem; }
.course-card h3, .news-card h3 {
    margin: 0; min-height: 3.5rem;
    font-size: 1.15rem; line-height: 1.4; font-weight: 800;
}
.course-card h3 a, .news-card h3 a { color: #000; text-decoration: none; }
.course-card:hover h3 a, .news-card:hover h3 a,
.course-card h3 a:hover, .news-card h3 a:hover { color: var(--red); text-decoration: underline; }
.course-card .summary, .news-card .excerpt {
    margin: 0; color: #242424; font-size: .9rem; line-height: 1.45; font-weight: 400;
    display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden;
}
.news-grid:not(.events-grid) .news-card .excerpt { -webkit-line-clamp: 8; line-clamp: 8; }
.events-grid .news-card .excerpt {
    display: block; -webkit-line-clamp: unset; line-clamp: unset;
    -webkit-box-orient: unset; overflow: visible;
}
.course-card .summary { -webkit-line-clamp: 3; line-clamp: 3; }
.ongoing {
    position: absolute; top: 30px; left: 0; z-index: 1; margin: 0;
    background: #ffd146; color: #111; font-size: 12px; font-weight: 800;
    letter-spacing: 0; text-transform: uppercase; padding: 5px 10px;
    border-top-right-radius: 10px; border-bottom-right-radius: 10px;
}
.news-foot {
    display: flex; align-items: flex-end; justify-content: space-between; gap: .75rem;
    margin-top: auto; padding-top: 1rem;
}
.news-foot.is-quiet { align-items: center; border-top: 1px solid #e5e5e5; margin-top: auto; padding-top: .75rem; }
.news-meta { min-width: 0; flex: 1; }
.news-foot .meta, .news-foot .where { margin: 0; }
.news-foot .meta { color: #111; font-weight: 700; font-size: .92rem; }
.news-foot .meta i, .news-foot .where i { color: var(--red); width: 1em; margin-right: .28rem; }
.news-foot .where {
    margin-top: .2rem; color: #333; font-size: .82rem; font-weight: 400; line-height: 1.3;
    min-height: 2.6em;
    display: -webkit-box; -webkit-line-clamp: 2; line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.news-foot .text-link { margin: 0; white-space: nowrap; text-decoration: none; border-bottom: 1px solid var(--red); line-height: 1.2; }
.card-btn {
    display: inline-flex; align-items: center; justify-content: center;
    flex: 0 0 auto; align-self: flex-end;
    background: #111; color: #fff; text-decoration: none;
    border-radius: 4px; padding: 7px 13px; font-size: 14px; font-weight: 700;
    white-space: nowrap; border: 1px solid #111;
}
.card-btn:hover, .card-btn:focus-visible { background: var(--red); border-color: var(--red); color: #fff; }
.course-card .card-btn {
    background: #444; border: 0; border-radius: 15px 0 0 15px;
    font-weight: 600; text-transform: lowercase; margin-right: -20px; padding: 8px 15px 10px;
}
.course-card .card-btn:hover, .course-card .card-btn:focus-visible { background: #ccc; color: #fff; }
.news-date {
    position: absolute; z-index: 1; top: 8%; left: 0;
    background: #ffd146; color: #000; line-height: 1.05;
    padding: .4rem .75rem .35rem .85rem; pointer-events: none;
}
.news-date strong, .news-date small { display: block; }
.news-date strong { font-size: 1.25rem; font-weight: 700; }
.news-date small { font-size: .8rem; font-weight: 600; }
.text-link, .more a { color: var(--red); font-weight: 700; }
.more a.hbtn { color: #fff; }
.more a.hbtn:hover { color: #111; }
.finder, .page-intro .card-btn { margin-top: .2rem; }
.finder {
    width: min(100%, 24rem); border: 1px solid var(--line); background: #fff;
    padding: .7rem .8rem; margin-bottom: 1.2rem; border-radius: 6px;
}

.testimonials h2 { text-align: center; }
.title-divider { width: 70px; border: 0; border-top: 3px solid var(--red); margin: 0 auto 2rem; }
.quote-slider {
    display: grid; width: 100%; min-width: 0;
    grid-template-columns: auto minmax(0, 1fr) auto;
    grid-template-areas: "prev view next" "dots dots dots";
    align-items: center;
    gap: .85rem .7rem;
}
.quote-prev { grid-area: prev; }
.quote-next { grid-area: next; }
.quote-viewport {
    grid-area: view; justify-self: stretch; width: 100%; min-width: 0; max-width: 100%;
    overflow: hidden; touch-action: pan-y;
    padding: .45rem .15rem 1.6rem; margin-bottom: -1.1rem; cursor: grab;
}
.quote-viewport.is-dragging { cursor: grabbing; }
.quote-dots { grid-area: dots; display: flex; justify-content: center; gap: .45rem; }
.quote-track { display: flex; gap: 1rem; transition: transform .45s ease; }
.quote-nav {
    width: 46px; height: 46px; border: 0; border-radius: 50%; padding: 0;
    display: grid; place-items: center; cursor: pointer;
    background: var(--red); color: #fff; font-size: .95rem;
    box-shadow: 0 8px 18px rgba(184, 12, 35, .22);
}
.quote-nav:hover, .quote-nav:focus-visible { background: #111; color: #fff; }
.quote-nav:focus-visible { outline: 2px solid var(--red); outline-offset: 3px; }
.quote-dots button {
    width: 9px; height: 9px; border: 0; border-radius: 50%; padding: 0;
    background: #d5d5d5; cursor: pointer;
}
.quote-dots button.on { background: var(--red); }
.quote-dots button:focus-visible { outline: 2px solid var(--red); outline-offset: 3px; }
.quote-slider.is-static { grid-template-columns: minmax(0, 1fr); grid-template-areas: "view"; }
.quote-slider.is-static .quote-nav,
.quote-slider.is-static .quote-dots { display: none; }
.quote-card {
    flex: 0 0 calc((100% - 2rem) / 3); min-width: 0;
    display: flex; flex-direction: column;
    background: #fff; border-radius: 8px; box-shadow: 0 10px 28px rgba(0,0,0,.08); padding: 1.2rem;
}
.quote-card p { margin: 0 0 1rem; font-size: .95rem; flex: 1; }
.who { display: flex; gap: .7rem; align-items: center; margin-top: auto; }
.who strong, .who small { display: block; }
.who small { color: #8c8c8c; font-size: .78rem; line-height: 1.3; }
.avatar {
    width: 45px; height: 45px; border-radius: 50%; flex: 0 0 45px;
    display: grid; place-items: center; background: var(--red); color: #fff; font-weight: 700; font-size: 1.2rem;
}
.avatar.is-dark { background: #111; }

.cta-band {
    display: flex; align-items: center; justify-content: space-between; gap: 1.5rem;
    background: var(--sand); border-radius: 12px; padding: 1.6rem 1.8rem;
}
.cta-band h3 { margin: 0 0 .35rem; font-size: 1.45rem; }
.cta-band p { margin: 0; }
.newsletter {
    display: grid; grid-template-columns: .85fr 1.15fr; gap: 1.5rem; align-items: center;
    background: #333; color: #fff; border-radius: 12px; padding: 1.4rem;
}
.newsletter h2, .newsletter p { color: #fff; }
.newsletter img { border-radius: 12px; width: 100%; height: 100%; object-fit: cover; }
.newsletter .form label, .newsletter .form .choice { color: #fff; }
.newsletter .news-row { display: flex; gap: .5rem; }
.newsletter .news-row input { flex: 1; }
.newsletter .btn { background: #fff; color: #111; border-color: #fff; white-space: nowrap; }
.newsletter .btn:hover { background: var(--red); color: #fff; border-color: var(--red); }

.course-grid, .news-grid, .people { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; align-items: stretch; }
.news-grid.events-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.people { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.filters { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 1.4rem; }
.filters button, .filters select {
    border: 1px solid var(--line); background: #fff; padding: .45rem .75rem; cursor: pointer; border-radius: 6px;
}
.filters button.on { background: var(--ink); color: #fff; border-color: var(--ink); }
.page-banner {
    background-size: cover; background-position: center; color: #fff;
    padding: 6.5rem 0 5.5rem; position: relative;
}
.page-banner::before {
    content: ""; position: absolute; inset: 0;
    background: linear-gradient(90deg, rgba(20,20,20,.28), rgba(20,20,20,0) 55%);
}
.page-banner .wrap { position: relative; }
.page-banner h1, .page-banner p, .page-banner .meta { color: #fff; text-shadow: 0 1px 2px rgba(0,0,0,.45); }
.page-banner .meta { color: #ffd6de; }
.page-banner .btn { margin-top: .4rem; }
.page-intro { position: relative; overflow: hidden; background: #fff; padding: .35rem 0 .6rem; }
.page-intro.has-mark { overflow: visible; padding: 70px 0 1.2rem; }
.page-intro .wrap { position: relative; }
.page-intro-mark {
    position: absolute; z-index: 0; top: -150px; left: 0;
    width: 240px; height: 120px; margin: 10px 0 0 10px;
    border-radius: 50%; background: #ffd146; opacity: .5; pointer-events: none;
}
.page-intro h1, .page-intro .intro-sub, .page-intro .page-intro-back, .page-intro .course-hero, .page-intro .kicker, .page-intro .kicker-rule {
    position: relative; z-index: 1;
}
.page-intro h1 {
    max-width: 46rem; margin: 0 0 .55rem;
    color: #000; font-size: 40px; font-weight: 700; line-height: 1.2;
}
.page-intro .intro-sub { position: relative; max-width: 34rem; margin: 0; color: #000; font-size: 22px; font-weight: 600; line-height: 1.28; }
.page-intro.is-plain { background: #f1f1f1; padding: 4.2rem 0 3.2rem; }
.page-intro.is-open { padding: 2.1rem 0 1.15rem; overflow: hidden; background: #fff; }
.page-intro.is-open:has(+ .section.tight) { padding-bottom: 0; }
.page-intro.is-open + .section.tight { padding-top: .7rem; }
.page-intro.is-plain .intro-sub { font-weight: 400; font-size: 1.15rem; line-height: 1.45; max-width: 40rem; }
.page-intro + .section { padding-top: 1.5rem; }
.page-intro-back { margin: 0 0 .85rem; }
.page-intro-back a { color: #111; font-weight: 700; font-size: .92rem; text-decoration: none; }
.page-intro-back a:hover { color: var(--red); }
.course-hero { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(280px, .95fr); gap: 2rem 2.8rem; align-items: center; }
.course-hero img { width: 100%; border-radius: 16px; display: block; }
.course-hero .kicker { margin: 0; font-size: 1.2rem; font-weight: 700; }
.kicker-rule { width: 48px; border: 0; border-top: 1px solid #555; margin: .45rem 0 .7rem; }
.course-hero h1 { max-width: none; }
.course-intro { padding-bottom: 2.2rem; }
.course-intro .page-intro-back a { letter-spacing: .06em; font-size: .78rem; }
.course-intro h1 {
    max-width: 16em; margin-bottom: .7rem;
    font-size: clamp(2.15rem, 3.6vw, 3.15rem); line-height: 1.08; letter-spacing: -.02em;
}
.course-kicker-row { display: flex; flex-wrap: wrap; gap: .45rem; margin: 0 0 .9rem; }
.course-type, .course-live {
    margin: 0; padding: .28rem .72rem; border-radius: 999px;
    font-size: .78rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase;
}
.course-type { background: #fdf2f4; color: var(--red); }
.course-live { background: #ffd146; color: #111; }
.course-chips { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1.15rem 0 0; padding: 0; list-style: none; }
.course-chips li {
    display: inline-flex; align-items: center; gap: .45rem;
    padding: .42rem .8rem; background: #f6f4f4; border-radius: 999px;
    font-weight: 600; font-size: .95rem; line-height: 1.3;
}
.course-chips i { color: var(--red); }
.course-hero-actions { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1.35rem; }
.course-hero-actions .hbtn { padding: .72rem 1.15rem; border-radius: 8px; font-size: 1rem; }
.course-hero-media {
    margin: 0; padding: 3px; border-radius: 20px;
    background: linear-gradient(135deg, #ffd146, #b80c23 46%, #2a1216);
    box-shadow: 0 18px 42px rgba(28, 20, 22, .12);
}
.course-hero-media img { width: 100%; height: auto; display: block; border-radius: 17px; background: #fff; }
.course-columns { position: relative; display: grid; grid-template-columns: minmax(280px, 360px) minmax(0, 1fr); gap: 1.6rem 2.2rem; align-items: start; }
.page-intro + .course-body { padding-top: 2.2rem; padding-bottom: 3.2rem; background: #f6f3f3; }
.course-sheet {
    position: sticky; top: calc(var(--header-h) + 18px);
    background: #fff; border: 1px solid #f0e4e6; border-top: 4px solid var(--red);
    border-radius: 18px; box-shadow: 0 16px 36px rgba(28, 20, 22, .06);
    padding: 1.35rem 1.25rem 1.3rem;
}
.course-sheet h2, .course-main > h2, .course-agenda h2, .course-faq h2 { margin: 0 0 .9rem; font-size: 1.45rem; line-height: 1.2; }
.course-dates { display: grid; grid-template-columns: 1fr 1fr; gap: .55rem; margin: 0 0 .35rem; }
.course-dates div { background: #faf6f6; border-radius: 12px; padding: .75rem .8rem .8rem; }
.course-dates span {
    display: block; color: var(--muted); font-size: .72rem; font-weight: 700;
    letter-spacing: .05em; text-transform: uppercase;
}
.course-dates strong { display: block; margin-top: .2rem; font-size: 1.02rem; line-height: 1.3; }
.course-facts { margin: .35rem 0 0; padding: 0; list-style: none; }
.course-facts li {
    display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: .75rem; align-items: center;
    margin: 0; padding: .72rem 0; border-top: 1px solid #f3e8ea;
}
.course-facts i {
    width: 42px; height: 42px; margin: 0; display: grid; place-items: center;
    border-radius: 12px; background: #fdf2f4; color: var(--red); font-size: .95rem;
}
.course-facts strong {
    display: block; color: var(--muted); font-size: .72rem; font-weight: 700;
    letter-spacing: .04em; text-transform: uppercase;
}
.course-facts a, .course-facts address {
    display: block; margin-top: .1rem; color: #161216; font-style: normal; font-weight: 600; line-height: 1.35;
    text-decoration: none; overflow-wrap: anywhere;
}
.course-facts a:hover, .course-facts a:focus-visible { color: var(--red); }
.course-sheet-cta { width: 100%; justify-content: center; margin-top: .85rem; padding: .75rem 1rem; border-radius: 8px; }
.course-main > h2 { margin-bottom: 0; }
.course-main > .divider-1 { margin-top: .7rem; margin-bottom: 1.15rem; }
.course-main .story.is-embedded .story-section {
    background: #fff; border: 1px solid #f0e4e6; border-radius: 16px;
    padding: 1.15rem 1.25rem .2rem; margin: 0 0 .8rem;
    box-shadow: 0 10px 26px rgba(28, 20, 22, .04);
}
.course-main .story.is-embedded .story-section.is-sand { background: #fffdf8; }
.course-main .story-head h2 { margin: 0 0 .45rem; font-size: 1.28rem; }
.course-main .story-copy .lead { font-size: 1.08rem; font-weight: 600; line-height: 1.5; color: #222; }
.course-main .story-copy p:has(> strong:first-child) {
    margin-top: .35rem; padding-top: .8rem; border-top: 1px solid #f3e8ea;
}
.course-agenda { margin-top: 1.5rem; }
.course-agenda ol { list-style: none; margin: 0; padding: 0; display: grid; gap: .7rem; }
.course-agenda .session-card {
    display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .9rem; align-items: start;
    width: auto; margin: 0; background: #fff; border: 1px solid #f0e4e6; border-radius: 16px;
    padding: 1rem 1.1rem 1.05rem; box-shadow: 0 10px 26px rgba(28, 20, 22, .04);
}
.course-agenda-index {
    display: grid; place-items: center; width: 2.6rem; height: 2.6rem; border-radius: 12px;
    background: #111; color: #fff; font-weight: 700; letter-spacing: .02em;
}
.course-agenda .kicker { margin: .15rem 0 .2rem; color: var(--red); font-weight: 700; letter-spacing: .04em; }
.course-agenda .session-when { margin: 0 0 .25rem; font-weight: 700; }
.course-agenda .session-when i { color: var(--red); margin-right: .3rem; }
.course-agenda .session-card p:last-child { margin-bottom: 0; color: #333; }
.course-more { margin: .35rem 0 0; }
.course-more a {
    display: inline-flex; align-items: center; gap: .45rem;
    color: var(--red); font-weight: 700; text-decoration: none;
}
.course-more a:hover, .course-more a:focus-visible { gap: .7rem; }
.course-faq { margin-top: 2rem; }
.course-hero:not(:has(.course-hero-media)) { grid-template-columns: minmax(0, 1fr); }
.course-body .course-faq details {
    border: 1px solid #f0e4e6; border-bottom: 1px solid #f0e4e6; border-radius: 14px; margin: 0 0 .6rem; padding: 0;
    background: #fff; overflow: hidden; box-shadow: 0 8px 20px rgba(28, 20, 22, .03);
}
.course-body .course-faq summary {
    display: flex; align-items: center; justify-content: space-between; gap: 1rem;
    padding: .95rem 1.05rem; list-style: none; cursor: pointer; font-weight: 700;
}
.course-body .course-faq summary::-webkit-details-marker { display: none; }
.course-body .course-faq summary::after {
    content: ""; width: 8px; height: 8px; flex: none; margin-top: -4px;
    border-right: 2px solid var(--red); border-bottom: 2px solid var(--red);
    transform: rotate(45deg); transition: transform .2s ease;
}
.course-body .course-faq details[open] summary::after { transform: rotate(225deg); margin-top: 2px; }
.course-body .course-faq details[open] summary { color: var(--red); }
.course-body .course-faq details p { margin: 0; padding: 0 1.05rem 1rem; color: #333; }
.course-when { margin: .2rem 0 1rem; font-size: 1rem; font-weight: 600; }
.course-when i { color: var(--red); margin-right: .25rem; }
.course-when i + i, .course-when .fa-location-dot { margin-left: .8rem; }
.page-intro .card-btn { margin-top: 1rem; }
.prose { max-width: 46rem; }
.prose h2 { font-size: 1.55rem; margin: 1.8rem 0 .6rem; }
.prose h3 { margin: 1.3rem 0 .4rem; }
.prose p, .prose ul, .prose ol, .prose blockquote { margin: 0 0 1rem; }
.prose a { color: var(--red); }
.prose img { margin: 1rem 0; border-radius: 10px; }
.lead-wrap { padding-top: 1.6rem; }
.section-nav {
    position: sticky;
    top: var(--header-h);
    z-index: 35;
    background: #f1f1f1;
    border-top: 1px solid #e3e3e3;
    border-bottom: 1px solid #e3e3e3;
    margin-top: 0;
}
body:has(.section-nav) { --section-nav-h: 58px; }
.page-banner + .section-nav { margin-top: 0; }
.section-nav-bar { display: flex; flex-wrap: wrap; justify-content: center; gap: 0 10px; padding: 9px 0; }
.section-nav a { color: #2c2c2c; font-weight: 500; text-decoration: none; font-size: 14px; padding: 8px 20px 8px 0; }
.section-nav a:hover { color: var(--red); }
.section-nav-fold { display: none; }
.spec-split { display: grid; grid-template-columns: 1.2fr .8fr; gap: 1.5rem; align-items: center; }
.spec-split img { width: 100%; border-radius: 12px; display: block; }
.milestones { display: grid; gap: .8rem; }
.milestones div { background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 1rem 1.1rem; }
.milestones strong { display: block; font-size: 2rem; color: var(--red); line-height: 1; }
.milestones span { display: block; margin-top: .25rem; font-weight: 600; }
.session-list { display: grid; gap: .8rem; }
.session-card { background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 1rem 1.15rem; }
.session-card .kicker { margin: 0 0 .25rem; color: var(--red); font-weight: 700; }
.session-card p { margin: 0 0 .35rem; }
.session-when { font-weight: 700; }
.trainer-bio { display: grid; grid-template-columns: minmax(220px, 360px) minmax(0, 1fr); gap: 2.5rem 3rem; align-items: start; }
.trainer-photo { position: relative; }
.trainer-photo::before {
    content: ""; position: absolute; left: 18px; bottom: -22px; width: 78%; height: 46%;
    background: #ffd146; z-index: 0;
}
.trainer-bio img { position: relative; z-index: 1; width: 100%; border-radius: 4px; display: block; }
.trainer-page h1 { margin: 1.2rem 0 0; font-size: 2.4rem; }
.trainer-page .page-intro-back { margin: 0 0 .4rem; }
.person-link { color: inherit; text-decoration: none; display: flex; flex-direction: column; height: 100%; }
.person-link:hover h3 { color: var(--red); }
.person-body { display: flex; flex-direction: column; flex: 1; min-height: 0; }
.person-more { display: inline-block; margin-top: auto; padding-top: .85rem; color: var(--red); font-weight: 700; }
.lead-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1rem; }
.lead-row img { width: 100%; height: 220px; object-fit: cover; border-radius: 12px; }
.lead-row.icons { display: flex; justify-content: center; gap: 2.4rem; }
.lead-row.icons img { width: 84px; height: auto; object-fit: contain; border-radius: 0; }
.story { min-width: 0; }
.story-nav {
    position: sticky; top: var(--header-h); z-index: 25;
    background: #f6f6f6; border-bottom: 1px solid var(--line);
}
.story-nav .wrap {
    display: flex; gap: .35rem; overflow-x: auto; padding: .55rem 0;
    scrollbar-width: none;
}
.story-nav a {
    flex: 0 0 auto; text-decoration: none; color: #333; font-weight: 700; font-size: .92rem;
    padding: .38rem .75rem; border-radius: 999px; white-space: nowrap;
}
.story-nav a:hover, .story-nav a:focus-visible { color: var(--red); background: #fff; }
.story-nav a:focus-visible { outline: 2px solid var(--red); outline-offset: 2px; }
.story-block { scroll-margin-top: 5.5rem; }
.story-block h2, .story-block h3, #traineri, .pair-card { scroll-margin-top: 5.5rem; }
body:has(.section-nav) :is(.story-block, .story-block h2, .story-block h3, #traineri, #trainers, .pair-card, #oferta, #descarca-ghid) {
    scroll-margin-top: calc(var(--header-h) + var(--section-nav-h) + 16px);
}
.story-section { padding: 3.2rem 0; }
.story-section.has-mark { position: relative; overflow: visible; padding-top: 80px; padding-bottom: 2.4rem; }
.story-section.has-mark .wrap { position: relative; }
.story-section.has-mark .page-intro-mark { z-index: -1; }
.idea-title { grid-column: 1 / -1; grid-row: 1; margin: 0 0 1.15rem; }
.idea-title h1 {
    position: relative; z-index: 1; max-width: none; margin: 0;
    color: #000; font-size: 40px; font-weight: 700; line-height: 1.2;
}
.idea-title .intro-sub { margin: .8rem 0 0; max-width: none; }
.idea-copy { grid-column: 1; grid-row: 2; }
.idea-box { grid-column: 2; grid-row: 2; }
.idea-copy .story-copy { max-width: none; }
.idea-copy .lead { margin-top: 0; font-size: 1.25rem; font-weight: 300; line-height: 1.5; color: #212529; }
.divider-1 { display: block; width: 50px; height: 0; border: 0; border-top: 3px solid #b80c23; margin: 20px 0; }
.story-section.is-sand { background: var(--sand); }
.story-head h2 { margin: 0 0 .85rem; font-size: clamp(1.7rem, 3vw, 2.35rem); line-height: 1.2; }
.story-head .accent { color: var(--red); }
.story-head.is-center { text-align: center; }
.story-head.is-center h2 { margin-bottom: .35rem; }
.story-head.is-center .title-divider { margin: .15rem auto 1.4rem; }
.story-copy { max-width: 46rem; }
.story-copy p { margin: 0 0 1rem; }
.story-copy .lead, .story-split .lead { font-size: 1.18rem; font-weight: 600; line-height: 1.45; color: #222; }
.story-intro { max-width: 46rem; position: relative; }
.story-intro .story-copy { max-width: none; }
.story-continue, .story-note {
    margin: 0 auto 1.4rem; max-width: 38rem; text-align: center; font-size: 1.15rem; font-weight: 600; line-height: 1.4;
}
.story-note { margin-top: 1.5rem; }
.story-points { margin-top: 1.4rem; }
.story-points h3, .story-minor { margin: 0 0 .8rem; font-size: 1.25rem; }
.feature-grid, .story-quotes, .pair-grid { display: grid; gap: 1rem; }
.feature-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.feature-grid.is-wide { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.feature {
    background: #fff; border: 1px solid var(--line); border-top: 4px solid var(--red);
    border-radius: 12px; padding: 1.25rem 1.1rem 1.15rem; text-align: center;
}
.story-section:not(.is-sand) .feature { background: var(--sand); border-color: transparent; }
.feature i { color: var(--red); font-size: 1.7rem; }
.feature h3 { margin: .75rem 0 .4rem; font-size: 1.12rem; }
.feature p { margin: 0; color: #444; }
.feature-grid.is-wide .feature { text-align: left; }
.story-steps {
    list-style: none; margin: 0; padding: 0; counter-reset: step;
    display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 1rem;
}
.story-steps li {
    background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 1.05rem 1rem 1rem;
}
.story-section:not(.is-sand) .story-steps li { background: var(--sand); border-color: transparent; }
.story-steps li::before {
    counter-increment: step; content: counter(step);
    display: grid; place-items: center; width: 2rem; height: 2rem; margin-bottom: .65rem;
    border-radius: 50%; background: var(--red); color: #fff; font-weight: 700;
}
.story-steps h3 { margin: 0 0 .35rem; font-size: 1.05rem; }
.story-steps p { margin: 0; color: #444; }
.check-list.is-catalog { display: block; columns: 2; column-gap: 2.5rem; }
.check-list.is-catalog li, .numbered-cols li { break-inside: avoid; margin: 0 0 .45rem; }
.numbered-cols { columns: 2; column-gap: 2.5rem; margin: 0; padding-left: 1.25rem; }
.story-section:has(.numbered-cols), .story-section:has(.check-list.is-catalog) { background: transparent; }
.story-section:has(.numbered-cols) .wrap, .story-section:has(.check-list.is-catalog) .wrap {
    display: grid; grid-template-columns: minmax(240px, 4fr) minmax(0, 8fr); column-gap: 2rem; align-items: start;
}
.story-section:has(.numbered-cols) .story-head,
.story-section:has(.numbered-cols) .story-copy,
.story-section:has(.check-list.is-catalog) .story-head,
.story-section:has(.check-list.is-catalog) .story-copy { grid-column: 1; }
.story-section:has(.numbered-cols) .numbered-cols,
.story-section:has(.check-list.is-catalog) .check-list.is-catalog { grid-column: 2; grid-row: 1 / span 4; }
.check-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr; gap: .35rem; }
.check-list li {
    position: relative; background: transparent; border: 0; border-radius: 0;
    padding: .15rem 0 .15rem 1.45rem;
}
.check-list li::before {
    content: ""; position: absolute; left: .15rem; top: .45rem; width: .42rem; height: .7rem;
    border: solid var(--red); border-width: 0 2px 2px 0; transform: rotate(45deg);
}
ul.list-tick,
ul.list-dash,
ul.list-arrow,
ul.list-square,
ul.list-diamond {
    list-style: none; margin: .15rem 0 1rem; padding: 0;
    display: grid; gap: .38rem;
}
ul.list-tick li,
ul.list-dash li,
ul.list-arrow li,
ul.list-square li,
ul.list-diamond li {
    position: relative; margin: 0; padding: .12rem 0 .12rem 1.6rem;
    background: transparent; border: 0; border-radius: 0; font-weight: inherit;
}
ul.list-tick li::before,
ul.list-dash li::before,
ul.list-arrow li::before,
ul.list-square li::before,
ul.list-diamond li::before {
    content: ""; position: absolute; display: block;
}
ul.list-tick li::before {
    left: .18rem; top: .42rem; width: .42rem; height: .7rem;
    border: solid var(--red); border-width: 0 2px 2px 0; transform: rotate(45deg);
}
ul.list-dash li::before {
    left: .08rem; top: .72rem; width: .9rem; height: 2px;
    border-radius: 2px; background: var(--red);
}
ul.list-arrow li::before {
    left: .28rem; top: .52rem; width: .42rem; height: .42rem;
    border: solid var(--red); border-width: 2px 2px 0 0; transform: rotate(45deg);
}
ul.list-square li::before {
    left: .22rem; top: .55rem; width: .42rem; height: .42rem;
    border-radius: 2px; background: var(--red);
}
ul.list-diamond li::before {
    left: .28rem; top: .58rem; width: .4rem; height: .4rem;
    border-radius: 1px; background: var(--red); transform: rotate(45deg);
}
li > ul.list-tick,
li > ul.list-dash,
li > ul.list-arrow,
li > ul.list-square,
li > ul.list-diamond { margin: .35rem 0 .15rem; }
.short-page .story-head h2::after {
    content: ""; display: block; width: 48px; height: 3px; margin-top: .7rem;
    background: var(--red); border-radius: 2px;
}
.short-page .media-pair img { border-radius: 18px; box-shadow: 0 16px 36px rgba(28, 20, 22, .1); }
.short-page .story-section:has(.check-list) { background: #f6f3f3; }
.short-page .check-list { grid-template-columns: 1fr 1fr; gap: .55rem; }
.short-page .story-section:has(.check-list.is-catalog) .check-list.is-catalog {
    display: grid; columns: unset; grid-template-columns: 1fr; gap: .55rem;
}
.short-page .check-list li {
    margin: 0; padding: .72rem .9rem .72rem 2.15rem;
    background: #fff; border: 1px solid #f0e4e6; border-radius: 12px;
    font-weight: 600; line-height: 1.35;
}
.short-page .check-list li::before {
    width: 8px; height: 8px; border: 0; border-radius: 50%; background: var(--red);
    top: 1.05rem; left: .95rem; transform: none;
}
.short-page .story-section:has(.numbered-cols) { background: #f6f3f3; }
.short-page .numbered-cols {
    columns: unset; display: grid; grid-template-columns: 1fr; gap: .55rem;
    margin: 0; padding: 0; list-style: none; counter-reset: short-course;
}
.short-page .numbered-cols li {
    position: relative; margin: 0; padding: .72rem .9rem .72rem 2.85rem;
    background: #fff; border: 1px solid #f0e4e6; border-radius: 12px;
    font-weight: 600; line-height: 1.35; counter-increment: short-course;
}
.short-page .numbered-cols li::before {
    content: counter(short-course, decimal-leading-zero);
    position: absolute; left: .75rem; top: 50%; transform: translateY(-50%);
    color: var(--red); font-size: .78rem; font-weight: 700;
}
.detail-stack { display: grid; gap: .8rem; }
.detail-card {
    background: #fff; border: 1px solid var(--line); border-left: 4px solid var(--red);
    border-radius: 12px; padding: 1rem 1.15rem .35rem;
}
.story-section:not(.is-sand) .detail-card { background: var(--sand); border-color: transparent; border-left: 4px solid var(--red); }
.detail-card h3 { margin: 0 0 .45rem; font-size: 1.12rem; }
.detail-card .story-copy { max-width: none; }
.detail-card .check-list { grid-template-columns: 1fr; margin-bottom: .8rem; }
.detail-card .check-list li { background: transparent; border: 0; border-radius: 0; padding: .15rem 0 .15rem 1.35rem; }
.story-quotes { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; }
.story-quote {
    display: flex; flex-direction: column; gap: .85rem; margin: 0;
    background: #fff; border-radius: 12px; box-shadow: 0 10px 28px rgba(0,0,0,.06); padding: 1.2rem 1.2rem 1rem;
}
.story-section:not(.is-sand) .story-quote { background: var(--sand); box-shadow: none; }
.story-quote blockquote { margin: 0; }
.story-quote p { margin: 0 0 .7rem; }
.story-quote p:last-child { margin-bottom: 0; }
.story-quote .quote-kicker { color: var(--red); font-weight: 700; }
.story-quote figcaption { display: flex; gap: .7rem; align-items: center; margin-top: auto; }
.story-quote figcaption strong, .story-quote figcaption small { display: block; }
.story-quote figcaption small { color: #8c8c8c; font-size: .78rem; line-height: 1.3; }
.story-subs { display: grid; gap: .85rem; margin-top: .4rem; }
.story-sub {
    background: #fff; border-radius: 12px; border-top: 3px solid var(--red);
    box-shadow: 0 8px 22px rgba(0,0,0,.05); padding: 1rem 1.1rem .2rem;
}
.story-sub h3 { margin: 0 0 .45rem; font-size: 1.15rem; }
.story-sub .story-copy { max-width: none; }
.pair-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; }
.pair-card {
    background: #fff; border: 1px solid var(--line); border-top: 4px solid var(--red);
    border-radius: 12px; padding: 1.15rem 1.15rem .4rem;
}
.story-section:not(.is-sand) .pair-card { background: var(--sand); border-color: transparent; }
.pair-card h3 { margin: 0 0 .7rem; font-size: 1.3rem; }
.pair-card .check-list, .story-points .check-list { grid-template-columns: 1fr; }
.story-split { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 2.2rem; align-items: start; }
.story-split h2 { margin: 0 0 .7rem; font-size: clamp(1.55rem, 2.4vw, 2.15rem); line-height: 1.25; }
.story-band { background: #1a0508 url('../images/dark-red_bg.jpg') 40% 50% / cover no-repeat; color: #fff; padding: 4.4rem 0 3.6rem; }
.story-band-grid { display: block; }
.story-band-grid > div:first-child { max-width: 640px; }
.story-band h2, .story-band p, .story-band .lead { color: #fff; }
.story-band .accent { color: #fff; }
.story-band .title-divider { width: 30px; margin: 1.1rem 0 0; border-top: 3px solid #fff; }
.story-band-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 1.4rem 2.5rem; margin-top: 2.4rem; max-width: 860px; }
.story-band-cards article { background: none; border: 0; border-radius: 0; padding: 0; }
.story-band-cards h3 { margin: 0 0 .7rem; color: #fff; font-size: 24px; font-weight: 700; line-height: 1.25; }
.story-band-cards p { margin: 0; }
.story-callout {
    margin: 1.2rem 0 0; padding: .95rem 1.1rem; background: #111; color: #fff;
    border-radius: 10px; font-weight: 700;
}
.story.is-embedded .story-section { padding: 1.15rem 0; background: transparent; }
.story.is-embedded .story-section.is-sand { background: var(--sand); border-radius: 12px; padding: 1.15rem 1rem .9rem; margin: .8rem 0; }
.cta-actions { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; }
.person-role { color: #222 !important; font-weight: 600; margin: 0 0 .15rem !important; line-height: 1.35; }
.person-company { color: var(--muted); font-size: .92rem; margin: 0 !important; line-height: 1.35; }
.team-section .person img { object-position: top center; }
.layout-course { display: grid; grid-template-columns: 220px 1fr; gap: 2rem; align-items: start; }
.toc { position: sticky; top: 5.5rem; border-left: 2px solid var(--line); padding-left: .8rem; }
.toc a { display: block; text-decoration: none; color: var(--muted); padding: .25rem 0; }
.toc a:hover { color: var(--red); }
.faq details { border-bottom: 1px solid var(--line); padding: .8rem 0; }
.faq summary { cursor: pointer; font-weight: 700; }
.cover { width: 100%; max-height: 460px; object-fit: cover; margin-top: 1.4rem; }
.article-intro { padding: 1.15rem 0 .2rem; }
.article-hero { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(280px, .88fr); gap: 1.4rem 2.4rem; align-items: center; }
.article-hero:not(:has(img)) { grid-template-columns: minmax(0, 46rem); }
.article-hero h1 { max-width: none; margin: 0; font-size: clamp(1.85rem, 2.8vw, 2.65rem); line-height: 1.12; letter-spacing: -.02em; }
.article-meta { display: flex; flex-wrap: wrap; gap: .45rem; margin: 0 0 .85rem; }
.article-meta span {
    display: inline-flex; align-items: center; gap: .4rem;
    padding: .28rem .72rem; background: #f6f4f4; border-radius: 999px;
    color: var(--muted); font-size: .92rem; font-weight: 600;
}
.article-meta i { color: var(--red); }
.article-hero-media { margin: 0; border-radius: 16px; overflow: hidden; background: #f6f4f4; box-shadow: 0 16px 36px rgba(28, 20, 22, .08); }
.article-hero-media img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
.article-body { padding-top: 1.5rem; padding-bottom: 3.2rem; }
.article-page .article-column:not(.layout-course) { width: min(980px, calc(100% - 24px)); }
.article-page .story-copy { max-width: none; }
.article-page .story.is-embedded .story-section { padding: .35rem 0 1.2rem; }
.article-page .story.is-embedded .story-section.is-sand {
    background: #f7f5f5; border-radius: 16px; padding: 1.25rem 1.35rem 1.05rem; margin: .35rem 0 1.15rem;
}
.article-page .story-head h2 { font-size: clamp(1.35rem, 2vw, 1.75rem); }
.article-page .story-continue { max-width: none; }
.detail-stack.is-board { grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: stretch; }
.detail-stack.is-board .detail-card { height: 100%; padding-bottom: .9rem; }
.fact-sheet { display: grid; gap: .8rem; margin: 0 0 .35rem; }
.fact-sheet > div { display: grid; gap: .12rem; }
.fact-sheet dt { color: var(--red); font-size: .75rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.fact-sheet dd { margin: 0; }
.name-list { list-style: none; margin: .35rem 0 0; padding: 0; display: grid; gap: .28rem; }
.name-list li { margin: 0; padding: 0; font-size: .95rem; line-height: 1.35; }
.check-list.is-places { grid-template-columns: 1fr 1fr; gap: .7rem; }
.check-list.is-places li {
    background: #fff; border-radius: 12px; border-top: 3px solid var(--red);
    padding: .8rem .9rem .75rem; box-shadow: 0 8px 20px rgba(0,0,0,.04);
}
.check-list.is-places li::before { display: none; }
.story-copy a.text-url {
    display: inline-flex; align-items: center; gap: .5rem; margin-top: .35rem;
    padding: .55rem .85rem; background: #fff; border: 1px solid #f0e4e6; border-left: 3px solid var(--red);
    border-radius: 10px; color: var(--red); font-weight: 700; text-decoration: none; word-break: break-word;
}
.story-copy a.text-url:hover { background: #fff7f8; }
.guide-band, .offer-band { background: var(--sand); padding: 3.4rem 0 3.6rem; }
.guide-layout, .offer-layout {
    display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(320px, .88fr);
    gap: 2rem 2.6rem; align-items: start;
}
.guide-copy .kicker, .offer-copy .kicker {
    margin: 0 0 .35rem; color: var(--red); font-weight: 700; font-size: .95rem;
}
.guide-copy h2, .offer-copy h2 {
    margin: 0 0 .75rem; font-size: clamp(1.7rem, 2.5vw, 2.35rem); line-height: 1.15; max-width: 16ch;
}
.offer-copy h2 { max-width: 12ch; }
.guide-copy > p, .offer-copy > p { margin: 0 0 1.15rem; color: #333; max-width: 42rem; }
.guide-points, .offer-points { list-style: none; margin: 0; padding: 0; display: grid; gap: .7rem; }
.guide-points li, .offer-points li {
    display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: .8rem; align-items: start;
    background: #fff; border-radius: 12px; padding: .85rem .95rem .9rem;
}
.guide-points i, .offer-points i {
    width: 44px; height: 44px; border-radius: 10px; background: #fdf2f4; color: var(--red);
    display: grid; place-items: center; font-size: 1.05rem;
}
.guide-points strong, .offer-points strong { display: block; margin: .1rem 0 .15rem; font-size: 1.02rem; line-height: 1.3; }
.guide-points span, .offer-points span { display: block; color: #444; font-size: .95rem; line-height: 1.45; }
.guide-card, .offer-card {
    background: #fff; border-radius: 14px; border-top: 4px solid var(--red);
    box-shadow: 0 14px 34px rgba(28, 20, 22, .08); padding: 1.3rem 1.3rem 1.4rem;
}
.guide-card-head, .offer-card-head {
    display: flex; gap: .8rem; align-items: center;
    margin: 0 0 1rem; padding-bottom: .95rem; border-bottom: 1px solid var(--line);
}
.guide-card-head > i, .offer-card-head > i {
    width: 46px; height: 46px; flex: none; border-radius: 10px;
    background: var(--red); color: #fff; display: grid; place-items: center; font-size: 1.05rem;
}
.guide-card-head strong, .offer-card-head strong { display: block; font-size: 1.12rem; line-height: 1.25; }
.guide-card-head span, .offer-card-head span { display: block; margin-top: .1rem; color: var(--muted); font-size: .92rem; line-height: 1.35; }
.guide-done, .offer-done {
    position: relative; margin: 0; padding: .95rem 1rem .95rem 2.7rem;
    background: #fdf2f4; border-radius: 10px; font-weight: 600; line-height: 1.4;
}
.guide-done i, .offer-done i { position: absolute; left: 1rem; top: 1.05rem; color: var(--red); }
.form { display: grid; gap: .75rem; }
.form input, .form textarea, .form select { width: 100%; border: 1px solid var(--line); padding: .7rem .8rem; background: #fff; border-radius: 6px; }
.form input[type="checkbox"] { width: 1.05rem; height: 1.05rem; margin: .28rem 0 0; padding: 0; flex: none; accent-color: var(--red); }
.form label.choice { display: flex; gap: .55rem; align-items: flex-start; }
.form .error { color: var(--red); margin: 0; }
.form.is-pair { grid-template-columns: 1fr 1fr; gap: .7rem .85rem; }
.form.is-pair > label:not(.choice) { display: grid; gap: .28rem; font-weight: 600; font-size: .92rem; }
.form.is-pair label:has(textarea),
.form.is-pair label.choice,
.form.is-pair .error,
.form.is-pair > .btn { grid-column: 1 / -1; }
.form.is-pair label.choice { font-weight: 400; font-size: 1rem; }
.form.is-guide, .form.is-offer { position: relative; grid-template-columns: 1fr 1fr; gap: .7rem .75rem; }
.form.is-guide > label:not(.choice),
.form.is-offer > label:not(.choice) {
    display: grid; gap: .28rem; font-weight: 600; font-size: .9rem; color: #222;
}
.form.is-guide input:not([type="checkbox"]),
.form.is-offer input:not([type="checkbox"]),
.form.is-offer textarea {
    border-color: #e1e1e1; border-radius: 8px; padding: .72rem .8rem; background: #fafafa;
}
.form.is-offer textarea { resize: vertical; min-height: 6.5rem; }
.form.is-guide input:not([type="checkbox"]):focus,
.form.is-offer input:not([type="checkbox"]):focus,
.form.is-offer textarea:focus {
    outline: 2px solid rgba(184, 12, 35, .22); border-color: var(--red); background: #fff;
}
.form.is-guide label.choice,
.form.is-guide .error,
.form.is-guide > .btn,
.form.is-offer label.choice,
.form.is-offer label:has(textarea),
.form.is-offer .error,
.form.is-offer > .btn { grid-column: 1 / -1; }
.form.is-guide label.choice, .form.is-offer label.choice { color: #444; font-size: .92rem; line-height: 1.4; }
.form.is-guide > .btn, .form.is-offer > .btn { width: 100%; margin-top: .15rem; padding: .85rem 1.1rem; border-radius: 8px; }
.form.is-guide > .btn:hover,
.form.is-guide > .btn:focus-visible,
.form.is-offer > .btn:hover,
.form.is-offer > .btn:focus-visible { background: #111; border-color: #111; color: #fff; }
.btn {
    display: inline-flex; align-items: center; justify-content: center; gap: .4rem;
    background: var(--red); color: #fff; text-decoration: none; border: 1px solid var(--red);
    padding: .75rem 1.15rem; font-weight: 700; cursor: pointer; border-radius: 5px;
}
.honeypot { position: absolute; left: -9999px; }
.site-footer {
    background: #fff; color: #000; padding: 40px 0 20px;
    border-top: 1px solid #ccc; font-size: 16px; line-height: 1.45;
}
.site-footer .wrap { width: min(1320px, calc(100% - 2rem)); }
.footer-grid {
    display: grid; grid-template-columns: 2fr 1fr 1fr 1fr 1fr;
    column-gap: 1.75rem; row-gap: 1.5rem; align-items: start;
}
.footer-logo { display: flex; justify-content: center; margin: 0 0 2rem; }
.footer-logo img { height: 52px; width: auto; display: block; }
.footer-mail { display: flex; align-items: center; gap: .55rem; margin: 0 0 8px; color: #000; }
.footer-mail i { font-size: 22px; }
.footer-mail a { color: #000; font-size: .875rem; text-decoration: none; }
.social { display: flex; gap: 8px; margin: 0 0 4px; }
.social a { color: #000; font-size: 24px; width: 28px; line-height: 40px; text-align: center; text-decoration: none; opacity: .9; }
.social a:hover { opacity: 1; color: #000; }
.copy { margin: 10px 0 16px; font-size: .875rem; color: #000; }
.site-footer h2 { font-size: 16px; font-weight: 700; color: #000; margin: 5px 0 20px; }
.site-footer ul { list-style: none; margin: 0; padding: 0; }
.site-footer li { margin: 0 0 10px; }
.site-footer li:last-child { margin-bottom: 0; }
.site-footer li a { color: #676767; font-weight: 400; text-decoration: none; }
.site-footer li a:hover { color: #000; font-weight: 600; }
.site-footer .footer-actions { margin-bottom: 0; }
.site-footer .footer-actions button,
.site-footer .footer-actions a {
    color: #111; font-weight: 700; font-size: 16px; line-height: 1.35;
    background: none; border: 0; padding: 0; font-family: inherit; cursor: pointer; text-align: left;
}
.site-footer .footer-actions button:hover,
.site-footer .footer-actions button:focus-visible,
.site-footer .footer-actions a:hover,
.site-footer .footer-actions a:focus-visible { color: var(--red); font-weight: 700; }
.footer-rule {
    width: 72px; height: 3px; border: 0; background: var(--red); margin: 16px 0 16px;
}
.site-footer .footer-apps a { color: #111; font-weight: 700; transition: color .15s ease; }
.site-footer .footer-apps a:hover,
.site-footer .footer-apps a:focus-visible { color: var(--red); }
.whatsapp {
    position: fixed; right: 1rem; bottom: 1rem; width: 54px; height: 54px; z-index: 35;
}
.whatsapp img { width: 54px; height: 54px; display: block; }
.cookie {
    position: fixed; left: 1rem; right: calc(54px + 2rem); bottom: 1rem; z-index: 30; max-width: 36rem;
    background: #fff; border: 1px solid var(--line); padding: 1rem; display: flex; gap: .7rem; align-items: center;
    box-shadow: 0 8px 24px rgba(0,0,0,.12);
}
.cookie[hidden] { display: none; }
.group { margin-top: 1.6rem; }
.group h2 { font-size: 1.2rem; }
.enroll-dialog {
    width: min(500px, calc(100% - 1.5rem));
    max-height: min(92dvh, 760px);
    padding: 0; border: 0; border-radius: 8px;
    box-shadow: 0 12px 40px rgba(0,0,0,.28);
}
.enroll-dialog[open] { display: flex; flex-direction: column; overflow: hidden; }
.enroll-dialog::backdrop { background: rgba(0,0,0,.55); }
.enroll-head {
    display: flex; align-items: center; justify-content: space-between; gap: 1rem;
    padding: .9rem 1rem .85rem 1.15rem; border-bottom: 1px solid #dee2e6;
}
.enroll-head h2 { margin: 0; font-size: 1.25rem; font-weight: 500; line-height: 1.3; }
.enroll-body { padding: 1rem 1.15rem 1.15rem; overflow: auto; min-height: 0; }
.enroll-foot {
    display: flex; justify-content: flex-end;
    padding: .75rem 1rem; border-top: 1px solid #dee2e6;
}
.btn-muted {
    background: #6c757d; color: #fff; border: 0; border-radius: .375rem;
    padding: .4rem .85rem; font-weight: 400; cursor: pointer;
}
.btn-muted:hover { background: #5c636a; }
.dialog-close {
    border: 0; background: transparent; font-size: 1.6rem; line-height: 1;
    width: 1.8rem; height: 1.8rem; cursor: pointer; color: #111;
}
.form.is-enroll { gap: .85rem; }
.form.is-enroll > .btn { justify-self: start; }
.form.is-enroll label:not(.choice):not(.course-switch) {
    display: grid; gap: .28rem; font-weight: 400; font-size: .95rem;
}
.enroll-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem .85rem; }
.enroll-courses { border: 0; margin: 0; padding: 0; display: grid; gap: .15rem; }
.enroll-courses legend { font-size: .95rem; font-weight: 400; padding: 0; margin: 0 0 .35rem; }
.form.is-enroll .course-switch {
    display: flex; align-items: center; gap: .7rem; font-weight: 400; cursor: pointer; margin: .15rem 0;
}
.form.is-enroll .course-switch input[type="checkbox"] {
    appearance: none; -webkit-appearance: none;
    width: 2.4rem; height: 1.25rem; margin: 0; padding: 0; flex: none;
    border-radius: 999px; border: 1px solid #c5c5c5; background: #e7e7e7;
    position: relative; cursor: pointer; accent-color: auto;
}
.form.is-enroll .course-switch input[type="checkbox"]::before {
    content: ""; position: absolute; width: 1rem; height: 1rem; border-radius: 50%;
    background: #fff; top: 50%; left: 2px; transform: translateY(-50%);
    box-shadow: 0 1px 2px rgba(0,0,0,.25); transition: left .15s ease;
}
.form.is-enroll .course-switch input[type="checkbox"]:checked {
    background: #0d6efd; border-color: #0d6efd;
}
.form.is-enroll .course-switch input[type="checkbox"]:checked::before {
    left: calc(100% - 1rem - 2px);
}
.form.is-enroll hr { border: 0; border-top: 1px solid #dee2e6; margin: .15rem 0; }
.form.is-enroll .choice small { font-size: .85rem; line-height: 1.4; }
.form.is-enroll .choice a { color: inherit; }
@media (max-width: 991px) {
    .enroll-grid-wide { grid-template-columns: 1fr; }
}

.spec-open, .dossier-grid, .idea-split, .media-pair, .programme {
    display: grid; grid-template-columns: 1.05fr .95fr; gap: 2rem; align-items: start;
}
.dossier-grid { grid-template-columns: .9fr 1.1fr; }
.idea-split { grid-template-columns: 7fr 5fr; align-items: start; column-gap: 1.5rem; row-gap: 0; }
.idea-copy { padding-right: 2rem; }
.media-pair { align-items: center; }
.media-pair img, .spec-photo img, .dossier-copy img { width: 100%; border-radius: 12px; display: block; }
.media-pair.is-flip img { order: 2; }
.spec-photo { position: relative; }
.spec-photo img { border-radius: 18px; box-shadow: 0 16px 36px rgba(28, 20, 22, .1); }
.photo-stats {
    position: absolute; left: 6%; right: 6%; bottom: 6%;
    display: grid; grid-template-columns: repeat(3, 1fr); gap: .35rem;
    padding: .75rem .35rem; border-radius: 14px;
    background: rgba(17, 10, 12, .55); color: #fff; text-align: center;
    backdrop-filter: blur(8px);
}
.photo-stats strong { display: block; font-size: 2.1rem; line-height: 1; color: #ffd146; }
.photo-stats span { display: block; margin-top: .25rem; font-size: .82rem; font-weight: 600; line-height: 1.25; }
.section.tight:has(.spec-open) { padding-bottom: 1.5rem; }
.spec-copy h2, .dossier h2 { margin: 0 0 .85rem; font-size: clamp(1.45rem, 2.4vw, 1.9rem); line-height: 1.2; }
.spec-copy h2::after, .dossier h2::after {
    content: ""; display: block; width: 48px; height: 3px; margin-top: .7rem; background: var(--red);
}
.spec-copy p { margin: 0 0 .9rem; }
.spec-copy ul { list-style: none; padding: 0; margin: .3rem 0 1.25rem; display: grid; gap: .45rem; }
.spec-copy li {
    display: flex; align-items: center; gap: .65rem; margin: 0;
    padding: .62rem .8rem; background: #faf6f6; border-radius: 12px; font-weight: 600; line-height: 1.35;
}
.spec-copy li::before {
    content: ""; width: 8px; height: 8px; flex: none; border-radius: 50%; background: var(--red);
}
.spec-link {
    display: inline-flex; align-items: center; gap: .5rem;
    padding: .62rem 1.05rem; border: 1.5px solid var(--red); border-radius: 999px;
    background: #fff; color: var(--red); font-weight: 700; line-height: 1.2; text-decoration: none;
}
.more a.spec-link { color: var(--red); }
.spec-link:hover, .spec-link:focus-visible,
.more a.spec-link:hover, .more a.spec-link:focus-visible { background: var(--red); color: #fff; }
.spec-catalog { background: #f6f3f3; padding: 1.35rem 0 2.4rem; }
.dossier-copy ul, .fold-body ul, .legal ul { margin: .2rem 0 1rem; padding-left: 1.15rem; }
.dossier-copy li, .fold-body li, .legal li { margin: .2rem 0; }
.dossier { padding: 0 0 .9rem; border-top: 0; background: transparent; }
.dossier .wrap {
    background: #fff; border: 1px solid #f0e4e6; border-top: 4px solid var(--red);
    border-radius: 18px; box-shadow: 0 12px 30px rgba(28, 20, 22, .05);
    padding: 1.25rem 1.15rem 1.15rem;
}
.dossier-copy img { margin-bottom: 1rem; border-radius: 14px; box-shadow: 0 10px 24px rgba(28, 20, 22, .08); }
.dossier-copy .more { margin-top: 1.1rem; }
.idea-box { background: #ffd146; border-radius: 5px; padding: 35px; font-size: 16px; line-height: 1.5; }
.idea-box h3 { margin: 0 0 12px; font-size: 24px; font-weight: 900; line-height: 30px; }
.idea-box h3 i { margin-right: .45rem; }
.idea-box .check-list { gap: 0; }
.idea-box .check-list li { display: block; position: relative; padding: 0 0 0 1.35rem; margin: 0 0 8px; }
.idea-box .check-list li::before { content: none; }
.idea-box .check-list i { position: absolute; left: 0; top: .28rem; margin: 0; font-size: .85rem; color: #111; }
.folds { display: grid; gap: .55rem; }
.folds details, .contact-options .folds details { border: 1px solid #f0e4e6; border-radius: 14px; background: #fff; }
.folds summary {
    cursor: pointer; font-weight: 700; padding: .95rem 1.05rem; list-style: none;
    display: flex; justify-content: space-between; gap: 1rem; align-items: center;
}
.folds summary::-webkit-details-marker { display: none; }
.folds summary::after { content: ""; width: 8px; height: 8px; border-right: 2px solid var(--red); border-bottom: 2px solid var(--red); transform: rotate(45deg); flex: none; margin-top: -4px; }
.folds details[open] summary { color: var(--red); }
.folds details[open] summary::after { transform: rotate(225deg); margin-top: 2px; }
.fold-body { padding: 0 1rem .2rem; }
.contact-section { padding: 2.4rem 0 3.2rem; }
.contact-layout {
    display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
    gap: 1.6rem 2.2rem; align-items: start;
}
.contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .85rem; }
.contact-card {
    display: flex; flex-direction: column;
    border: 1px solid #ececec; border-radius: 12px; background: #fff;
    padding: 1.15rem 1.1rem 1.05rem; min-height: 100%;
}
.contact-card > i {
    width: 42px; height: 42px; margin-bottom: .65rem; border-radius: 10px;
    background: #fdf2f4; color: var(--red); display: grid; place-items: center;
    font-size: 1.05rem; line-height: 1;
}
.contact-card h3 { margin: 0 0 .3rem; font-size: 1.05rem; }
.contact-card p { margin: 0 0 .35rem; font-size: .98rem; line-height: 1.45; }
.contact-card a { color: var(--red); font-weight: 700; text-decoration: none; }
.contact-card a:hover, .contact-card a:focus-visible { text-decoration: underline; }
.contact-card a[href^="mailto:"] { overflow-wrap: anywhere; }
.contact-card .more { margin-top: auto; padding-top: .15rem; }
.contact-social { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: .1rem; }
.contact-social a {
    display: inline-flex; align-items: center; gap: .4rem;
    width: auto; height: auto; padding: .38rem .7rem .38rem .55rem;
    border-radius: 999px; background: #f3f3f3; color: #222; font-size: .92rem;
}
.contact-social a i { color: #333; font-size: .95rem; }
.contact-social a:hover, .contact-social a:focus-visible { background: var(--red); color: #fff; text-decoration: none; }
.contact-social a:hover i, .contact-social a:focus-visible i { color: #fff; }
.contact-options { max-width: none; }
.contact-options h2 { margin: .15rem 0 1rem; font-size: clamp(1.35rem, 2vw, 1.6rem); line-height: 1.25; }
.contact-options .fold-body { padding: .15rem 1rem 1rem; }
.legal { max-width: 52rem; margin: 0 auto; padding: 2.2rem 0 3rem; }
.legal h3 { margin: 1.6rem 0 .45rem; }
.legal p { margin: 0 0 1rem; }
.legal a { color: var(--red); }
.programme { grid-template-columns: 280px minmax(0, 1fr); align-items: start; }
.programme-side p { margin: 0 0 .7rem; }
.programme-side i { color: var(--red); width: 1.1rem; }
.timeline { position: relative; display: grid; gap: 1rem; }
.timeline::before {
    content: ""; position: absolute; left: 50%; top: .4rem; bottom: .4rem; width: 2px; background: #e4e4e4;
}
.timeline .session-card { width: calc(50% - 1.6rem); position: relative; }
.timeline .session-card:nth-child(even) { margin-left: auto; }
.timeline .session-card::after {
    content: ""; position: absolute; top: 1.3rem; width: 12px; height: 12px; border-radius: 50%;
    background: #fff; border: 3px solid var(--red);
}
.timeline .session-card:nth-child(odd)::after { right: -1.6rem; transform: translateX(50%); }
.timeline .session-card:nth-child(even)::after { left: -1.6rem; transform: translateX(-50%); }

@media (max-width: 1360px) {
    .nav-row > a, .drop > button { padding: .4rem .28rem; font-size: .88rem; }
    .header-tools .black-btn, .header-tools .line-btn { padding: .38rem .5rem; font-size: .8rem; }
    .header-tools { gap: .35rem; }
    .brand img { height: 46px; }
}
@media (max-width: 1099px) {
    :root { --header-h: 72px; }
    .header-top {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto auto;
        grid-template-areas: "brand tools toggle";
        align-items: center;
        column-gap: .7rem;
        min-height: 72px; padding: .45rem 0;
    }
    .nav-toggle {
        display: inline-flex; grid-area: toggle; align-items: center; justify-content: center;
        width: 36px; height: 36px; margin-left: .15rem;
    }
    .brand { grid-area: brand; }
    .brand img { height: 46px; }
    .header-tools { grid-area: tools; margin-left: 0; }
    .main-nav { display: none; }
    .black-btn span, .line-btn span, .flag span { display: none; }
    .header-tools .black-btn, .header-tools .line-btn {
        width: 36px; height: 36px; padding: 0; gap: 0; justify-content: center; font-size: 1rem;
    }
    .header-tools i {
        display: grid; place-items: center; width: 1em; height: 1em; line-height: 1;
    }
    .header-tools .fa-paper-plane,
    .header-tools .fa-magnifying-glass { transform: translateY(-0.5px); }
    .header-tools .fa-lock { transform: translateY(-1px); }
    .flag { height: 36px; justify-content: center; }
}
@media (max-width: 980px) {
    .split, .guide-layout, .offer-layout, .layout-course, .course-columns, .newsletter, .cta-band, .course-hero, .article-hero, .spec-split, .trainer-bio,
    .story-band-grid, .story-split, .pair-grid, .feature-grid.is-wide, .detail-stack.is-board { grid-template-columns: 1fr; }
    .story-band-cards { grid-template-columns: 1fr; max-width: none; }
    .numbered-cols, .check-list.is-catalog { columns: 1; }
    .story-section:has(.numbered-cols) .wrap, .story-section:has(.check-list.is-catalog) .wrap { grid-template-columns: 1fr; }
    .story-section:has(.numbered-cols) .numbered-cols,
    .story-section:has(.check-list.is-catalog) .check-list.is-catalog { grid-column: 1; grid-row: auto; }
    .feature-grid { grid-template-columns: 1fr 1fr; }
    .spec-open, .dossier-grid, .idea-split, .media-pair, .programme, .contact-layout { grid-template-columns: 1fr; }
    .idea-title, .idea-copy, .idea-box { grid-column: 1; grid-row: auto; }
    .idea-title { margin-bottom: 1.4rem; }
    .idea-copy { padding-right: 0; }
    .idea-copy .lead { margin-top: 0; }
    .media-pair.is-flip img { order: 0; }
    .timeline::before { left: 1rem; }
    .timeline .session-card, .timeline .session-card:nth-child(even) { width: auto; margin-left: 2rem; }
    .course-grid, .news-grid, .people { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .footer-grid { grid-template-columns: 1fr 1fr; }
    .footer-logo { margin-bottom: 1.35rem; }
    .footer-meta { order: 1; grid-column: 1 / -1; margin-top: 1.6rem; }
    .footer-meta .copy { margin-bottom: 0; }
    .site-footer .footer-grid { padding-right: 12px; }
    .site-footer { padding-bottom: calc(54px + 1.75rem); }
    .cta-band { display: grid; }
    .course-sheet { position: static; }
    .toc { position: static; }
    .home-intro { min-height: 62vh; background-attachment: scroll; }
    .quote-card { flex-basis: calc((100% - 1rem) / 2); }
}
@media (max-width: 680px) {
    .course-grid, .news-grid, .people, .news-grid.events-grid, .feature-grid, .story-steps, .check-list, .check-list.is-places, .story-quotes { grid-template-columns: 1fr; }
    .story-nav { top: 64px; }
    .section-nav-bar {
        flex-wrap: nowrap; justify-content: safe center; overflow-x: auto;
        padding: 6px 0; scrollbar-width: none; -webkit-overflow-scrolling: touch;
    }
    .section-nav-bar::-webkit-scrollbar { display: none; }
    .section-nav-bar a { flex: 0 0 auto; white-space: nowrap; }
    .page-intro h1 { font-size: 32px; }
    .page-intro p { font-size: 18px; }
    .page-intro.has-mark { padding-top: 42px; }
    .page-intro.is-open { padding: 1.4rem 0 .8rem; }
    .page-intro.is-open:has(+ .section.tight) { padding-bottom: 0; }
    .page-intro.is-open + .section.tight { padding-top: .5rem; }
    .short-page .check-list { grid-template-columns: 1fr; }
    .page-intro-mark { top: -88px; left: 0; width: 160px; height: 80px; margin: 0; }
    .contact-grid, .form.is-pair, .form.is-guide, .form.is-offer { grid-template-columns: 1fr; }
    .guide-band, .offer-band { padding: 2.2rem 0 2.5rem; }
    .guide-card, .offer-card { padding: 1.1rem 1rem 1.2rem; }
    .guide-copy h2, .offer-copy h2 { max-width: none; }
    .photo-stats strong { font-size: 1.6rem; }
    .quote-slider {
        grid-template-columns: 1fr 1fr;
        grid-template-areas: "view view" "prev next" "dots dots";
        justify-items: center;
    }
    .quote-slider.is-static { grid-template-columns: minmax(0, 1fr); grid-template-areas: "view"; }
    .quote-viewport { grid-column: 1 / -1; }
    .quote-prev { justify-self: end; }
    .quote-next { justify-self: start; }
    .quote-card { flex-basis: 100%; }
}
.nav-modal {
    position: fixed; inset: 0;
    width: 100%; height: 100%;
    max-width: none; max-height: none;
    height: 100vh; height: 100dvh;
    margin: 0; padding: 0; border: 0;
    background: #fff; color: var(--ink);
    overflow: hidden;
}
.nav-modal[open] { display: flex; animation: nav-modal-in .32s ease; }
.nav-modal::backdrop { background: transparent; }
body.nav-open { overflow: hidden; }
.nav-modal-shell {
    position: relative; z-index: 1;
    width: min(680px, calc(100% - 2.6rem));
    margin: 0 auto; height: 100%;
    display: flex; flex-direction: column; min-height: 0;
    padding-top: env(safe-area-inset-top);
}
.nav-modal-top {
    display: flex; align-items: center; justify-content: space-between; gap: 1rem;
    padding: .95rem 0 .85rem; position: relative;
}
.nav-modal-top::after {
    content: ""; position: absolute; left: 50%; bottom: 0;
    width: 100vw; height: 3px; transform: translateX(-50%);
    background: var(--red);
}
.nav-modal-brand img { height: 52px; width: auto; display: block; }
.nav-modal-close {
    width: 44px; height: 44px; flex: 0 0 auto;
    display: grid; place-items: center;
    border: 1px solid #eadfe1; border-radius: 50%;
    background: #fff; color: #111; font-size: 1.15rem; cursor: pointer;
    transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.nav-modal-close:hover,
.nav-modal-close:focus-visible { background: var(--red); border-color: var(--red); color: #fff; }
.nav-modal-scroll { flex: 1; min-height: 0; overflow: auto; overscroll-behavior: contain; }
.nav-modal-nav { display: flex; flex-direction: column; padding: .35rem 0 1.4rem; }
.nav-modal-link,
.nav-group-toggle {
    display: flex; align-items: center; justify-content: space-between; gap: .8rem;
    width: 100%; padding: 1rem .1rem;
    border: 0; border-bottom: 1px solid #f1e6e8;
    background: none; color: #161216; text-decoration: none; text-align: left;
    font-size: 1.28rem; font-weight: 700; letter-spacing: -.01em; cursor: pointer;
}
.nav-modal-link.is-on,
.nav-group.is-current > .nav-group-toggle { color: var(--red); }
.nav-group-toggle i {
    width: 30px; height: 30px; flex: 0 0 auto;
    display: grid; place-items: center;
    border-radius: 50%; background: #f6f1f2; color: #111; font-size: .7rem;
    transition: transform .25s ease, background .15s ease, color .15s ease;
}
.nav-group.is-open > .nav-group-toggle i { transform: rotate(180deg); background: var(--red); color: #fff; }
.nav-group-panel { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .28s ease; }
.nav-group.is-open > .nav-group-panel { grid-template-rows: 1fr; }
.nav-group-menu { overflow: hidden; min-height: 0; }
.nav-group-card {
    display: grid; gap: .15rem;
    margin: .55rem 0 .25rem; padding: .4rem;
    background: #faf6f6; border-radius: 14px;
}
.nav-sublink {
    display: flex; align-items: center; gap: .7rem;
    padding: .68rem .8rem; border-radius: 10px;
    color: #3a3335; text-decoration: none; font-weight: 600; font-size: 1.05rem;
}
.nav-sublink::before {
    content: ""; width: 7px; height: 7px; flex: 0 0 auto;
    border-radius: 50%; background: #e4c5ca;
}
.nav-sublink:hover,
.nav-sublink:focus-visible,
.nav-sublink.is-on { color: var(--red); background: #fff; }
.nav-sublink.is-on::before,
.nav-sublink:hover::before,
.nav-sublink:focus-visible::before { background: var(--red); }
.nav-sublink.is-calendar {
    justify-content: center; margin-top: .3rem;
    background: #111; color: #fff; font-weight: 700;
}
.nav-sublink.is-calendar::before { display: none; }
.nav-sublink.is-calendar:hover,
.nav-sublink.is-calendar:focus-visible,
.nav-sublink.is-calendar.is-on { background: var(--red); color: #fff; }
.nav-modal-foot {
    position: relative; z-index: 1;
    display: grid; gap: .55rem;
    padding: 1rem 0 calc(1rem + env(safe-area-inset-bottom));
    background: #fff;
    box-shadow: 0 -18px 24px rgba(255, 255, 255, .95);
}
.nav-modal-foot .black-btn,
.nav-modal-foot .line-btn {
    justify-content: center; width: 100%;
    padding: .85rem 1rem; font-size: 1rem;
}
.nav-modal-foot .black-btn span,
.nav-modal-foot .line-btn span { display: inline; }
.nav-modal-lang {
    display: flex; align-items: center; justify-content: center; gap: .55rem;
    margin-top: .15rem; padding: .35rem;
    color: #111; text-decoration: none; font-weight: 700; font-size: .95rem;
}
.nav-modal-lang img { width: 22px; height: 14px; object-fit: cover; border-radius: 2px; }
.nav-modal a:focus-visible,
.nav-modal button:focus-visible { outline: 2px solid var(--red); outline-offset: 3px; }
@keyframes nav-modal-in {
    from { opacity: 0; transform: translateY(16px); }
    to { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
    .quote-track { transition: none; }
    .nav-modal[open] { animation: none; }
    .nav-group-panel, .nav-group-toggle i, .course-faq summary::after, .course-more a { transition: none; }
}

.page-loader {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 90;
    margin: 0;
    background: #fff;
    color: var(--ink);
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 1rem;
    cursor: progress;
}
html.has-loader .page-loader { display: flex; }
html.has-loader body { overflow: hidden; }
.page-loader.is-leaving { opacity: 0; transition: opacity .28s ease; }
.page-loader img { height: 42px; width: auto; }
.page-loader-label { margin: 0; color: var(--muted); font-weight: 600; }
.page-loader-track {
    width: min(220px, 60vw);
    height: 4px;
    background: var(--line);
    border-radius: 999px;
    overflow: hidden;
}
.page-loader-bar {
    display: block;
    height: 100%;
    width: 100%;
    background: var(--red);
    transform: scaleX(0);
    transform-origin: left center;
}
.page-loader-pct {
    margin: 0;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    letter-spacing: .04em;
}
@media (prefers-reduced-motion: reduce) {
    html.has-loader body { overflow: visible; }
    .page-loader { display: none !important; }
}
@media print {
    html.has-loader body { overflow: visible; }
    .page-loader { display: none !important; }
}

main:has(> .error-page) { display: flex; align-items: center; }
.error-page {
    width: 100%;
    padding: 4.5rem 0 5rem;
    background:
        radial-gradient(ellipse 34rem 16rem at 50% 0, rgba(184, 12, 35, .16), transparent 72%),
        var(--sand);
}
.error-page-inner { max-width: 40rem; margin: 0 auto; text-align: center; }
.error-mark {
    display: flex; align-items: center; justify-content: center;
    width: 6.25rem; height: 6.25rem; margin: 0 auto 1.15rem;
    border-radius: 50%; background: var(--red); color: #fff;
    font-size: 2.15rem; line-height: 1;
    box-shadow: 0 0 0 12px rgba(184, 12, 35, .16);
}
.error-mark i { line-height: 1; }
.error-code {
    margin: 0; color: var(--red);
    font-weight: 700; font-size: .95rem; letter-spacing: .16em;
}
.error-page h1 {
    margin: .35rem 0 .75rem;
    font-size: clamp(2rem, 4vw, 2.75rem); line-height: 1.15;
}
.error-lead {
    max-width: 34rem; margin: 0 auto 1.6rem;
    color: var(--muted); font-size: 1.12rem;
}
.error-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: .7rem; }
.error-actions .black-btn,
.error-actions .line-btn { padding: .75rem 1.15rem; border-radius: 8px; }
@media (max-width: 640px) {
    .error-page { padding: 3rem 0 3.5rem; }
    .error-actions { flex-direction: column; align-items: center; }
.error-actions .black-btn,
.error-actions .line-btn { width: min(100%, 16rem); justify-content: center; }
}

.page-intro + .search-section { padding-top: 0; }
.search-section { padding-bottom: 3.5rem; }
.search-stage { position: relative; z-index: 2; margin-top: -2rem; }
.search-dock {
    position: relative;
    background: #fff;
    border: 1px solid #e6e6e6;
    border-top: 4px solid var(--card-red);
    border-radius: 12px;
    box-shadow: 0 16px 40px rgba(28, 20, 22, .08);
    padding: 1rem 1rem .95rem;
}
.search-field {
    display: flex; align-items: center; gap: .7rem;
    min-height: 3.4rem; padding: .35rem .45rem .35rem .95rem;
    background: var(--sand); border: 2px solid transparent; border-radius: 10px;
    transition: background .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.search-field:focus-within {
    background: #fff; border-color: var(--red);
    box-shadow: 0 0 0 4px rgba(184, 12, 35, .12);
}
.search-field input {
    flex: 1; min-width: 0; border: 0; outline: 0; background: transparent;
    padding: .65rem 0; color: var(--ink); font-size: 1.15rem; font-weight: 600;
}
.search-field input::placeholder { color: #8a8083; font-weight: 400; }
.search-field input[type="search"]::-webkit-search-decoration,
.search-field input[type="search"]::-webkit-search-cancel-button,
.search-field input[type="search"]::-webkit-search-results-button { display: none; }
.search-icon { color: var(--red); font-size: 1.05rem; }
.search-clear {
    display: grid; place-items: center;
    width: 2.2rem; height: 2.2rem; border: 0; border-radius: 8px;
    background: transparent; color: #555; cursor: pointer;
}
.search-clear:hover, .search-clear:focus-visible { background: #fff; color: #111; }
.search-status-row {
    display: flex; justify-content: space-between; align-items: baseline;
    gap: .75rem; margin-top: .75rem;
}
.search-status, .search-keys { margin: 0; }
.search-status { font-weight: 700; }
.search-keys { color: var(--muted); font-size: .85rem; }
.search-chips { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: .85rem; }
.search-chips button {
    display: inline-flex; align-items: center; gap: .4rem;
    border: 1px solid var(--line); background: #fff; border-radius: 999px;
    padding: .38rem .75rem; font-weight: 700; font-size: .92rem; cursor: pointer;
}
.search-chips button .count {
    min-width: 1.35rem; padding: 0 .35rem; border-radius: 999px;
    background: var(--sand); color: #111; font-size: .78rem; line-height: 1.35rem; text-align: center;
}
.search-chips button.on { background: #111; border-color: #111; color: #fff; }
.search-chips button.on .count { background: var(--red); color: #fff; }
.search-chips button:disabled { opacity: .45; cursor: default; }
.search-chips button:hover:not(:disabled):not(.on),
.search-chips button:focus-visible:not(:disabled) { border-color: var(--red); color: var(--red); }
.search-results {
    list-style: none; margin: 1rem 0 0; padding: 0;
    display: grid; gap: .7rem;
}
.search-results:not(:has(li)) { display: none; }
.search-results.is-pending { opacity: .5; }
.search-hit {
    display: grid; grid-template-columns: auto minmax(0, 1fr) auto;
    gap: .85rem; align-items: center;
    padding: .8rem .95rem; text-decoration: none; color: inherit;
    background: #fff; border: 1px solid #e6e6e6; border-left: 4px solid var(--red);
    border-radius: 10px;
    animation: search-in .28s ease both;
}
.search-hit:hover, .search-hit:focus-visible { box-shadow: 0 0 12px rgba(0, 0, 0, .16); }
.search-hit:focus-visible { outline: 2px solid var(--red); outline-offset: 3px; }
.search-thumb, .search-mark {
    width: 4.5rem; height: 4.5rem; border-radius: 8px; flex: none;
}
.search-thumb { object-fit: cover; background: #f3f3f3; display: block; }
.search-mark {
    display: grid; place-items: center;
    background: #fdf2f4; color: var(--red); font-size: 1.15rem;
}
.search-kind {
    display: block; margin-bottom: .12rem;
    color: var(--red); font-size: .75rem; font-weight: 700;
    letter-spacing: .06em; text-transform: uppercase;
}
.search-title { display: block; font-size: 1.08rem; font-weight: 700; line-height: 1.35; }
.search-title mark, .search-snippet mark {
    background: #ffd146; color: inherit; padding: 0 .12em; border-radius: 3px;
}
.search-snippet {
    display: -webkit-box; -webkit-line-clamp: 2; line-clamp: 2; -webkit-box-orient: vertical;
    overflow: hidden; margin-top: .15rem; color: #333;
    font-size: .95rem; font-weight: 400; line-height: 1.4;
}
.search-meta { display: block; margin-top: .28rem; color: var(--muted); font-size: .85rem; font-weight: 600; }
.search-go { color: #c5c5c5; transition: color .15s ease, transform .15s ease; }
.search-hit:hover .search-go, .search-hit:focus-visible .search-go { color: var(--red); transform: translateX(3px); }
.search-ideas {
    display: flex; flex-wrap: wrap; align-items: center; gap: .45rem .5rem;
    margin: 1.15rem 0 0;
}
.search-ideas > span { font-weight: 700; }
.search-ideas button {
    max-width: 18rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    border: 1px solid var(--line); background: #fff; border-radius: 999px;
    padding: .4rem .8rem; font-weight: 600; cursor: pointer;
}
.search-ideas button:hover, .search-ideas button:focus-visible { border-color: var(--red); color: var(--red); }
.search-empty-mark {
    display: grid; place-items: center;
    width: 4.5rem; height: 4.5rem; margin: 1.4rem auto 0;
    border-radius: 50%; background: var(--red); color: #fff; font-size: 1.25rem;
    box-shadow: 0 0 0 10px rgba(184, 12, 35, .12);
}
.search-reset { margin: 1.1rem 0 0; }
.search-explore { margin: 1.25rem 0 .15rem; font-weight: 700; }
.search-shortcuts {
    display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .75rem; margin-top: .8rem;
}
.search-shortcut {
    display: flex; flex-direction: column; justify-content: space-between; gap: .45rem;
    min-height: 6.4rem; padding: .9rem 1rem; text-decoration: none;
    background: #fff; color: #111; font-weight: 700;
    border: 1px solid #ccc; border-top: 4px solid var(--card-red); border-radius: 8px;
}
.search-shortcut i { color: var(--red); font-size: 1.05rem; }
.search-shortcut:hover, .search-shortcut:focus-visible { box-shadow: 0 0 12px rgba(0, 0, 0, .2); color: var(--red); }
@keyframes search-in {
    from { opacity: 0; transform: translateY(6px); }
    to { opacity: 1; transform: none; }
}
@media (max-width: 680px) {
    .search-hit { grid-template-columns: auto minmax(0, 1fr); padding: .75rem; }
    .search-go { display: none; }
    .search-shortcuts { grid-template-columns: 1fr 1fr; }
    .search-keys { display: none; }
    .search-thumb, .search-mark { width: 3.4rem; height: 3.4rem; }
    .search-status-row { align-items: flex-start; flex-direction: column; }
}
@media (prefers-reduced-motion: reduce) {
    .search-hit { animation: none; }
    .search-icon.fa-spin { animation: none; }
    .search-go, .search-field { transition: none; }
}
