.scc-edition section { padding-block: var(--scc-section-y); }

.scc-main .scc-section-title {
    font-size: var(--scc-text-h2);
    text-align: center;
    margin-block-end: clamp(1.5rem, 1rem + 2vw, 3rem);
}

/* Hero ------------------------------------------------------------------- */
.scc-hero {
    background: linear-gradient(180deg, var(--scc-bg-deep) 0%, var(--scc-bg) 100%);
    text-align: center;
}

.scc-hero__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.25rem;
    /* gutters added on top, not taken out — border-box would squeeze the column */
    max-width: calc(52rem + 2 * var(--scc-gutter));
}

.scc-hero__logo { width: clamp(180px, 24vw, 244px); height: auto; }

.scc-main .scc-hero__where {
    margin: 0;
    color: var(--scc-accent);
    font-weight: var(--scc-weight-bold);
    letter-spacing: 0.02em;
}

.scc-main .scc-hero__title { font-size: var(--scc-text-h1); margin: 0; }
.scc-main .scc-hero__subtitle { margin: 0; color: var(--scc-text); max-width: 46ch; }
.scc-main .scc-hero__past { margin: 0; color: var(--scc-text-muted); }

.scc-hero__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.75rem;
    margin: 0.5rem 0 0;
}

/* Secondary action: same box as the primary, outlined. (0,2,0) to clear the kit. */
.btn.btn--ghost {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.875rem 1.75rem;
    border: 1px solid var(--scc-accent);
    border-radius: var(--scc-radius);
    background: none;
    color: var(--scc-accent);
    font-family: var(--scc-font);
    font-size: var(--scc-text-body);
    font-weight: var(--scc-weight-bold);
    text-transform: none;
    letter-spacing: normal;
    text-decoration: none;
    cursor: pointer;
}
.btn.btn--ghost:hover,
.btn.btn--ghost:focus-visible {
    background: var(--scc-accent);
    border: 1px solid var(--scc-accent);
    color: var(--scc-bg);
}

/* Countdown -------------------------------------------------------------- */
.scc-countdown__grid {
    display: flex;
    justify-content: center;
    gap: clamp(0.75rem, 0.4rem + 1.5vw, 1.75rem);
    margin: 0;
    padding: 0;
    list-style: none;
}
.scc-countdown__unit {
    min-width: 4.5rem;
    padding: 0.75rem 0.5rem;
    background: var(--scc-surface);
    border-radius: var(--scc-radius);
}
.scc-countdown__value { display: block; font-size: 1.75rem; font-weight: var(--scc-weight-bold); line-height: 1; color: var(--scc-text-strong); }
.scc-countdown__label { display: block; margin-block-start: 0.35rem; font-size: var(--scc-text-small); color: var(--scc-text-muted); }
.scc-main .scc-countdown__fallback { margin: 0; color: var(--scc-accent); font-weight: var(--scc-weight-bold); }

/* About ------------------------------------------------------------------ */
.scc-about__inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: clamp(2rem, 1rem + 4vw, 5rem);
    align-items: start;
}

.scc-questions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    margin: 0;
    padding: 0;
    list-style: none;
    counter-reset: none;
}
.scc-questions__item {
    display: flex;
    gap: 0.75rem;
    padding: 1.25rem;
    background: var(--scc-surface);
    border-radius: var(--scc-radius);
}
.scc-questions__icon { width: 32px; height: 32px; flex-shrink: 0; }
.scc-questions__number { color: var(--scc-accent); font-size: 1.5rem; font-weight: var(--scc-weight-bold); line-height: 1; }
.scc-questions__text { font-size: var(--scc-text-small); line-height: 1.45; }

/* Topics ----------------------------------------------------------------- */
.scc-topics__list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
    gap: 1rem;
    margin: 0;
    padding: 0;
    list-style: none;
}
.scc-topics__item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 1rem 1.25rem;
    background: var(--scc-surface);
    border-radius: var(--scc-radius);
    font-weight: var(--scc-weight-bold);
}
.scc-topics__icon { width: 24px; height: 24px; flex-shrink: 0; }

/* Speakers --------------------------------------------------------------- */
.scc-speakers__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr));
    gap: clamp(1rem, 0.5rem + 1.5vw, 2rem);
    margin: 0;
    padding: 0;
    list-style: none;
}
.scc-speaker { text-align: center; }
.scc-speaker__photo {
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    border-radius: var(--scc-radius);
    background: var(--scc-surface);
}
.scc-main .scc-speaker__name { margin: 0.75rem 0 0.15rem; font-weight: var(--scc-weight-bold); color: var(--scc-text-strong); }
.scc-main .scc-speaker__job { margin: 0; font-size: var(--scc-text-small); color: var(--scc-text-muted); line-height: 1.35; }
.scc-main .scc-speaker__company { margin: 0.25rem 0 0; font-size: var(--scc-text-small); color: var(--scc-accent); font-weight: var(--scc-weight-bold); }

/* Partners --------------------------------------------------------------- */
.scc-partners__band {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
    gap: clamp(1rem, 0.6rem + 1vw, 1.75rem);
    margin: 0 0 clamp(2rem, 1rem + 3vw, 3.5rem);
    padding: 0;
    list-style: none;
}

/* The card is dark on purpose. Most of these logos are the reversed, white
   versions the partners supply for dark backgrounds — on a white card the
   majority of them disappear completely. */
.scc-partner {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.85rem;
    min-height: 10.5rem;
    padding: 1.5rem 1.25rem;
    background: var(--scc-surface);
    border-radius: var(--scc-radius);
}

.scc-partner > a,
.scc-partner__trigger {
    display: grid;
    place-items: center;
    width: 100%;
    /* The button has to carry no button chrome — the logo is the control. */
    background: none;
    border: 0;
    padding: 0;
    font: inherit;
    color: inherit;
    cursor: pointer;
}

/* One height for every logo, whatever its own proportions, or the band reads as
   a jumble of sizes rather than a row of equals. */
.scc-partner__logo {
    max-height: 4.5rem;
    max-width: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
}

.scc-partner__name {
    color: var(--scc-text-strong);
    font-weight: var(--scc-weight-bold);
    text-align: center;
}

.scc-partner__more {
    font-size: var(--scc-text-small);
    color: var(--scc-accent);
    font-weight: var(--scc-weight-bold);
}

.scc-partner__trigger:hover + .scc-partner__more,
.scc-partner__trigger:focus-visible + .scc-partner__more { text-decoration: underline; }

.scc-partners__cta,
.scc-speakers__cta { text-align: center; margin: 0; }

/* Modal ------------------------------------------------------------------ */
/* position/inset/margin are stated rather than inherited: the UA's dialog rule
   is what centres a modal, and without them the box is parked wherever it sits in
   the document. The comment lives outside the block on purpose — see base.css. */
.scc-modal {
    position: fixed;
    inset: 0;
    margin: auto;
    width: min(40rem, calc(100vw - 2rem));
    max-height: min(80vh, 44rem);
    overflow-y: auto;
    padding: clamp(1.5rem, 1rem + 2vw, 2.5rem);
    border: 1px solid var(--scc-line);
    border-radius: var(--scc-radius);
    background: var(--scc-bg-deep);
    color: var(--scc-text);
}
.scc-modal::backdrop { background: rgba(0, 0, 0, 0.7); }
.scc-modal__title { margin: 0 0 1rem; font-size: var(--scc-text-h3); color: var(--scc-text-strong); }
.scc-modal__body p { margin: 0 0 0.9rem; }
.scc-modal__body p:last-child { margin-bottom: 0; }
.scc-partner__about-title { margin: 0 0 0.75rem; font-size: var(--scc-text-body); color: var(--scc-accent); }
.scc-partner__about-link a { color: var(--scc-accent); }
.scc-modal__close {
    position: absolute;
    inset-block-start: 0.5rem;
    inset-inline-end: 0.75rem;
    background: none;
    border: 0;
    color: var(--scc-text-muted);
    font-size: 1.75rem;
    line-height: 1;
    cursor: pointer;
}
.scc-modal__close:hover { color: var(--scc-text-strong); }

/* FAQ -------------------------------------------------------------------- */
.scc-faq__list { max-width: 60rem; margin-inline: auto; counter-reset: faq; }
.scc-faq__item { border-block-end: 1px solid var(--scc-line); }
.scc-faq__question {
    counter-increment: faq;
    display: flex;
    gap: 0.75rem;
    padding: 1.1rem 0;
    font-weight: var(--scc-weight-bold);
    color: var(--scc-text-strong);
    cursor: pointer;
    list-style: none;
}
/* The numbers are a counter, not typed into the text: inserting a question in
   the middle used to mean retyping every one after it. */
.scc-faq__question::before { content: counter(faq) "."; color: var(--scc-accent); flex-shrink: 0; }
.scc-faq__question::-webkit-details-marker { display: none; }
.scc-faq__item[open] .scc-faq__question { color: var(--scc-accent); }
.scc-faq__answer { padding-block-end: 1.1rem; padding-inline-start: 1.9rem; }

/* Contact ---------------------------------------------------------------- */
.scc-contact__inner {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr));
    gap: clamp(2rem, 1rem + 3vw, 4rem);
}
.scc-contact__list { display: grid; gap: 1.5rem; margin: 0; padding: 0; list-style: none; }
.scc-person { display: flex; gap: 1rem; align-items: center; }
.scc-person__photo { width: 72px; height: 72px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.scc-main .scc-person__name { margin: 0; font-weight: var(--scc-weight-bold); color: var(--scc-text-strong); }
.scc-main .scc-person__role,
.scc-main .scc-person__email { margin: 0; font-size: var(--scc-text-small); }
.scc-main .scc-venue__name { margin: 0 0 0.35rem; font-weight: var(--scc-weight-bold); color: var(--scc-text-strong); }

@media (max-width: 900px) {
    .scc-about__inner { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
    .scc-questions { grid-template-columns: 1fr; }
}

/* Reasons ---------------------------------------------------------------- */
.scc-reasons__list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
    gap: 1.25rem;
    margin: 0;
    padding: 0;
    list-style: none;
}
.scc-reason {
    padding: 1.5rem;
    background: var(--scc-surface);
    border-radius: var(--scc-radius);
}
.scc-reason__icon { width: 44px; height: 44px; display: block; }
.scc-reason__number { display: block; color: var(--scc-accent); font-size: 2rem; font-weight: var(--scc-weight-bold); line-height: 1; }
.scc-main .scc-reason__title { margin: 0.5rem 0 0.4rem; font-size: var(--scc-text-h3); }
.scc-main .scc-reason__text { margin: 0; font-size: var(--scc-text-small); color: var(--scc-text-muted); }

/* Past events ------------------------------------------------------------ */
.scc-recap__list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr));
    gap: clamp(1.25rem, 0.75rem + 2vw, 2.5rem);
    margin: 0;
    padding: 0;
    list-style: none;
}
.scc-recap__tile {
    padding: 1.25rem;
    background: var(--scc-surface-alt);
    border-radius: var(--scc-radius);
}
.scc-main .scc-recap__year { margin: 0 0 0.9rem; font-size: var(--scc-text-h3); display: flex; align-items: baseline; gap: 0.6rem; }
.scc-recap__city { font-size: var(--scc-text-small); font-weight: var(--scc-weight-regular); color: var(--scc-text-muted); }

.scc-recap__photos {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.5rem;
    margin: 0 0 1rem;
    padding: 0;
    list-style: none;
}
.scc-recap__photos img {
    width: 100%;
    aspect-ratio: 3 / 2;
    object-fit: cover;
    border-radius: calc(var(--scc-radius) - 4px);
    display: block;
}

.scc-recap__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem; margin: 0; }
.scc-main .scc-recap__gallery { font-size: var(--scc-text-small); }

/* Video dialog ----------------------------------------------------------- */
.scc-video {
    /* Stated rather than inherited from the UA stylesheet's dialog rule. */
    position: fixed;
    inset: 0;
    margin: auto;
    width: min(64rem, 92vw);
    padding: 0;
    border: none;
    border-radius: var(--scc-radius);
    background: var(--scc-bg-deep);
    overflow: visible;
}
.scc-video::backdrop { background: rgba(0, 0, 0, 0.8); }

.scc-video__frame { aspect-ratio: 16 / 9; }
.scc-video__frame iframe { width: 100%; height: 100%; border: 0; border-radius: var(--scc-radius); display: block; }

/* (0,2,0) to clear the kit's bare button rule while Elementor is still active. */
.scc-video .scc-video__close {
    position: absolute;
    inset-block-start: -2.75rem;
    inset-inline-end: 0;
    width: 40px;
    height: 40px;
    padding: 0;
    background: none;
    border: none;
    border-radius: 0;
    color: var(--scc-text-strong);
    font-size: 2rem;
    line-height: 1;
    cursor: pointer;
}
.scc-video .scc-video__close:hover,
.scc-video .scc-video__close:focus-visible { background: none; border: none; color: var(--scc-accent); }

@media (max-width: 480px) {
    .scc-recap__photos { grid-template-columns: 1fr 1fr; }
}

/* Splash ----------------------------------------------------------------- */
.scc-splash {
    display: flex;
    align-items: center;
    min-height: calc(100vh - var(--scc-header-h));
    background: linear-gradient(180deg, var(--scc-bg-deep) 0%, var(--scc-bg) 100%);
    text-align: center;
}

.scc-splash__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.5rem;
    max-width: calc(46rem + 2 * var(--scc-gutter));
}

.scc-splash__logo { width: clamp(190px, 26vw, 244px); height: auto; }
.scc-main .scc-splash__title { font-size: var(--scc-text-h1); margin: 0; }
.scc-main .scc-splash__lead { margin: 0; max-width: 44ch; }

.scc-splash__choices { display: flex; flex-wrap: wrap; justify-content: center; gap: 1rem; margin-block-start: 0.5rem; }
.scc-splash .btn.scc-splash__choice { min-width: 15rem; }

/* Recovered archive content --------------------------------------------- */
.scc-recovered .scc-content { max-width: 72ch; margin-inline: auto; }
.scc-main .scc-recovered h2 { font-size: var(--scc-text-h3); margin-block-start: 1.6em; }
.scc-recovered .wp-block-image img { border-radius: var(--scc-radius); }

/* Who attends ------------------------------------------------------------ */
.scc-audience__inner {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
    gap: clamp(1.5rem, 1rem + 2vw, 3rem);
    align-items: center;
}
/* The chart is an SVG with no intrinsic size, so without a cap it grows to fill
   the column and dwarfs the list it is meant to illustrate. */
.scc-audience__chart { display: flex; justify-content: center; }
.scc-audience__chart img { width: 100%; max-width: 22rem; height: auto; }
.scc-audience__roles {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(9rem, 1fr));
    gap: 0.6rem 1rem;
    margin: 0;
    padding: 0;
    list-style: none;
}
.scc-audience__roles li {
    position: relative;
    padding-inline-start: 1.1rem;
    font-weight: var(--scc-weight-bold);
}
.scc-audience__roles li::before {
    content: "";
    position: absolute;
    inset-inline-start: 0;
    inset-block-start: 0.55em;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--scc-accent);
}

/* Video bands ------------------------------------------------------------ */
.scc-videos { padding-block: var(--scc-section-y); }
.scc-videos__intro {
    max-width: 60ch;
    margin: 0 auto clamp(1.5rem, 1rem + 2vw, 2.5rem);
    color: var(--scc-text-muted);
    text-align: center;
}
.scc-videos__list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
    gap: clamp(1rem, 0.6rem + 1vw, 1.75rem);
    margin: 0 0 1.75rem;
    padding: 0;
    list-style: none;
}
.scc-videos__tile {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    width: 100%;
    aspect-ratio: 16 / 9;
    background: var(--scc-surface);
    border: 0;
    border-radius: var(--scc-radius);
    color: var(--scc-text);
    font: inherit;
    cursor: pointer;
}
.scc-videos__tile:hover,
.scc-videos__tile:focus-visible { background: var(--scc-surface-alt); }
.scc-videos__play {
    width: 3.25rem;
    height: 3.25rem;
    border-radius: 50%;
    background: var(--scc-accent);
    display: grid;
    place-items: center;
}
.scc-videos__play::after {
    content: "";
    border-style: solid;
    border-width: 0.55rem 0 0.55rem 0.9rem;
    border-color: transparent transparent transparent var(--scc-bg);
    margin-inline-start: 0.2rem;
}
.scc-videos__label { font-weight: var(--scc-weight-bold); }
.scc-videos__cta { text-align: center; margin: 0; }

@media (max-width: 720px) {
    .scc-audience__inner { grid-template-columns: 1fr; }
}
