/*******************************************************************************
 *
 * This file is part of the LGS1920/countdown project.
 *
 * File: styles.css
 *
 * Author : LGS1920 Team
 * email: studio@lgs1920.fr
 *
 * Created on: 2026-09-04
 * Last modified: 2026-09-04
 *
 *
 * Copyright © 2026 LGS1920
 ******************************************************************************/

:root {
    --demo-background: var(--wa-color-surface-default);
    --demo-panel: var(--wa-color-surface-raised);
    --demo-panel-border: var(--wa-color-surface-border);
    --demo-text: var(--wa-color-text-normal);
    --demo-muted: var(--wa-color-text-quiet);
    --demo-accent: var(--wa-color-brand);
    --demo-accent-quiet: var(--wa-color-brand-fill-quiet);
    background: var(--demo-background);
    color: var(--demo-text);
    font-family: var(--wa-font-family-body, system-ui, sans-serif);
}

* {
    box-sizing: border-box;
}

body {
    min-block-size: 100vh;
    margin: 0;
    background: radial-gradient(circle at 15% 0%, color-mix(in srgb, var(--wa-color-brand-fill-quiet) 40%, transparent) 0, transparent 35rem), var(--demo-background);
}

.demo-shell {
    inline-size: min(100% - 2rem, 72rem);
    margin: 0 auto;
    padding: 6.5rem 0 3rem;
}

.site-banner {
    position: fixed;
    inset-block-start: 0;
    inset-inline-start: 0;
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: space-between;
    box-sizing: border-box;
    inline-size: 100%;
    gap: var(--wa-space-l);
    margin: 0;
    padding: 0.75rem 1rem;
    border: 1px solid var(--demo-panel-border);
    border-radius: 0;
    background: color-mix(in srgb, var(--demo-panel) 92%, transparent);
    box-shadow: 0 0.75rem 2rem rgb(0 0 0 / 12%);
    backdrop-filter: blur(1rem);
}

.site-banner-left,
.site-banner-pages,
.site-banner-controls,
.site-banner-external {
    display: flex;
    align-items: center;
    gap: var(--wa-space-m);
}

.site-banner-controls {
    flex: 1 1 auto;
    justify-content: center;
    gap: var(--wa-space-xs);
}

.site-banner-controls wa-select {
    inline-size: clamp(5rem, 9vw, 7rem);
    min-inline-size: 0;
}

.site-banner-left {
    gap: var(--wa-space-xl);
}

.site-banner-pages {
    gap: var(--wa-space-l);
}

.site-banner-logo {
    display: inline-flex;
    flex: 0 0 auto;
    inline-size: clamp(7rem, 14vw, 10rem);
}

.site-banner-logo img {
    display: block;
    inline-size: 100%;
    block-size: auto;
}

.site-banner-pages a,
.site-banner-external a {
    display: inline-flex;
    align-items: center;
    gap: var(--wa-space-2xs);
    color: var(--demo-muted);
    font-size: 0.8rem;
    font-weight: 750;
    letter-spacing: 0.08em;
    text-decoration: none;
    text-transform: uppercase;
}

.site-banner-external a {
    color: var(--demo-accent);
}

.site-banner-pages a:hover,
.site-banner-pages a[aria-current='page'],
.site-banner-external a:hover {
    color: var(--demo-accent);
}

.site-banner-external {
    gap: var(--wa-space-m);
}

.site-banner-external wa-icon {
    font-size: 1.5rem;
}

.demo-breadcrumb {
    margin-block-end: 2.5rem;
}

.demo-breadcrumb wa-breadcrumb {
    color: var(--demo-muted);
}

.demo-header {
    margin-block-end: 3rem;
}

.demo-header-main {
    display: grid;
    grid-template-columns: minmax(0, 44rem) auto;
    align-items: center;
    gap: var(--wa-space-xl);
    margin-block-end: var(--wa-space-m);
}

.demo-header-title {
    max-inline-size: 44rem;
}

.eyebrow {
    margin: 0 0 0.75rem;
    color: var(--demo-accent);
    font-size: 0.75rem;
    font-weight: 750;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

h1,
h2,
h3,
p {
    margin-block-start: 0;
}

h1 {
    max-inline-size: 13ch;
    margin-block-end: 1rem;
    font-size: clamp(2.8rem, 8vw, 6rem);
    line-height: 0.95;
    letter-spacing: -0.06em;
}

h2 {
    margin-block-end: 0;
    font-size: clamp(1.5rem, 3vw, 2.25rem);
    letter-spacing: -0.04em;
}

h3 {
    margin-block-end: 0.5rem;
    font-size: 1.05rem;
}

.intro,
.example-copy p {
    color: var(--demo-muted);
    line-height: 1.6;
}

.intro {
    max-inline-size: 44rem;
    margin-block-end: 0;
    font-size: 1.15rem;
}

.demo-controls,
.playground,
.example-card {
    border: 1px solid var(--demo-panel-border);
    background: color-mix(in srgb, var(--demo-panel) 92%, transparent);
    box-shadow: 0 1.5rem 4rem rgb(0 0 0 / 18%);
}

.demo-controls,
.playground {
    padding: clamp(1.25rem, 4vw, 2rem);
}

.demo-controls {
    display: grid;
    gap: 1.5rem;
    margin-block-end: 1rem;
    border-radius: var(--wa-panel-border-radius);
}

.controls-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    align-items: end;
    gap: 1rem;
}

.control-switches {
    display: flex;
    grid-column: 1 / -1;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: var(--wa-space-l);
}

.control-switches wa-switch {
    flex: 0 1 auto;
}

.playground {
    container-type: inline-size;
    margin-block-end: 4rem;
    border-radius: var(--wa-panel-border-radius);
    background: linear-gradient(145deg, var(--wa-color-brand-fill-quiet), var(--demo-panel));
}

.section-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 1rem;
    margin-block-end: 2rem;
}

.section-heading code {
    color: var(--demo-muted);
    font-size: 0.8rem;
}

.playground lgs1920-countdown {
    --lgs-countdown-card-radius: var(--wa-border-radius-m);
    --lgs-countdown-card-surface: color-mix(in srgb, var(--wa-color-brand-fill-quiet) 72%, var(--wa-color-surface-default));
    --lgs-countdown-card-border: var(--wa-color-brand-border-normal);
    --lgs-countdown-brand-color: var(--wa-color-brand);
    --lgs-countdown-legend-color: var(--wa-color-text-normal);
}

.examples {
    margin-block-end: 3rem;
}

.example-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.example-card {
    display: block;
    min-inline-size: 0;
    padding: 1.25rem;
    border-radius: var(--wa-panel-border-radius);
}

.example-copy p {
    margin-block-end: 0;
    font-size: 0.9rem;
}

.example-countdown {
    margin-block-start: var(--wa-space-s);
    --lgs-countdown-card-radius: var(--wa-border-radius-m);
    --lgs-countdown-card-surface: color-mix(in srgb, var(--wa-color-brand-fill-quiet) 55%, var(--wa-color-surface-default));
    --lgs-countdown-card-border: var(--wa-color-brand-border-normal);
    --lgs-countdown-brand-color: var(--demo-accent);
    --lgs-countdown-legend-color: var(--demo-muted);
}

.example-code {
    position: relative;
    min-inline-size: 0;
    margin-block-start: var(--wa-space-xl);
}

.example-code pre {
    min-inline-size: 0;
    max-inline-size: 100%;
    inline-size: 100%;
    margin: 0;
    overflow-x: auto;
    padding: var(--wa-space-s) 3.5rem var(--wa-space-s) var(--wa-space-s);
    border: 1px solid var(--wa-color-brand-border-quiet, var(--demo-panel-border));
    border-radius: var(--wa-border-radius-m);
    background: color-mix(in srgb, var(--wa-color-brand-fill-quiet, transparent) 22%, var(--wa-color-surface-sunken, var(--wa-color-surface-default, var(--demo-background))));
}

.example-code code {
    color: var(--wa-color-text-normal, var(--demo-text));
    font-family: var(--wa-font-family-code, ui-monospace, monospace);
    font-size: 0.8rem;
    line-height: 1.6;
    white-space: pre;
}

.example-code wa-copy-button {
    position: absolute;
    inset-block-start: var(--wa-space-2xs);
    inset-inline-end: var(--wa-space-2xs);
    z-index: 1;
}

.example-code wa-copy-button::part(button) {
    color: var(--demo-accent);
}

.demo-footer {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    color: var(--demo-muted);
    font-size: 0.85rem;
}

.demo-footer a {
    display: inline-flex;
    align-items: center;
    gap: var(--wa-space-2xs);
}

.demo-footer wa-icon {
    font-size: 1rem;
}

.eleventy-credit {
    display: flex;
    flex-basis: 100%;
    align-items: center;
    justify-content: center;
    gap: var(--wa-space-2xs);
}

.eleventy-credit a {
    display: inline-flex;
    align-items: center;
    gap: var(--wa-space-2xs);
    color: var(--demo-accent);
    text-decoration: none;
}

.eleventy-credit img {
    inline-size: 0.9rem;
    block-size: 1.25rem;
    padding: 0.1rem;
    border-radius: var(--wa-border-radius-xs, 0.2rem);
    background: var(--wa-color-text-normal, var(--demo-text));
}

.readme-content {
    padding: clamp(1.25rem, 4vw, 3rem);
    border: 1px solid var(--demo-panel-border);
    border-radius: var(--wa-panel-border-radius);
    background: color-mix(in srgb, var(--demo-panel) 94%, transparent);
    box-shadow: 0 1.5rem 4rem rgb(0 0 0 / 18%);
    color: var(--wa-color-text-normal, var(--demo-text));
    font-family: var(--wa-font-family-body, system-ui, sans-serif);
    font-size: var(--wa-font-size-m, 1rem);
    line-height: 1.65;
}

.readme-content h1,
.readme-content h2,
.readme-content h3 {
    color: var(--wa-color-text-normal, var(--demo-text));
    font-family: var(--wa-font-family-heading, var(--wa-font-family-body, system-ui, sans-serif));
    line-height: 1.15;
}

.readme-content h1 {
    max-inline-size: none;
    margin-block-end: 1.5rem;
    font-size: clamp(2rem, 5vw, 3.5rem);
    letter-spacing: -0.05em;
}

.readme-content h2 {
    margin-block-start: 3rem;
    margin-block-end: 1rem;
    padding-block-start: 1.5rem;
    border-block-start: 1px solid var(--demo-panel-border);
}

.readme-content h3 {
    margin-block-start: 2rem;
}

.readme-content a {
    color: var(--demo-accent);
}

.readme-content table {
    display: block;
    max-inline-size: 100%;
    overflow-x: auto;
    border-collapse: collapse;
}

.readme-content th,
.readme-content td {
    padding: 0.75rem 1rem;
    border: 1px solid var(--demo-panel-border);
    text-align: start;
    vertical-align: top;
}

.readme-content th {
    background: var(--wa-color-brand-fill-quiet, var(--demo-accent-quiet));
    color: var(--wa-color-text-normal, var(--demo-text));
}

.readme-content code {
    padding: 0.15em 0.35em;
    border-radius: var(--wa-border-radius-s, 0.25rem);
    background: color-mix(in srgb, var(--demo-accent-quiet) 60%, var(--demo-panel));
    color: var(--demo-accent);
    font-size: 0.9em;
}

.readme-content pre {
    max-inline-size: 100%;
    overflow-x: auto;
    padding: 1rem;
    border: 1px solid var(--wa-color-brand-border-quiet, var(--demo-panel-border));
    border-radius: var(--wa-border-radius-m);
    background: color-mix(in srgb, var(--wa-color-brand-fill-quiet, transparent) 22%, var(--wa-color-surface-sunken, var(--wa-color-surface-default, var(--demo-background))));
    color: var(--wa-color-text-normal, var(--demo-text));
}

:is(.readme-content, .example-code) pre code {
    padding: 0;
    background: transparent;
    color: var(--wa-color-text-normal, var(--demo-text));
    font-family: var(--wa-font-family-code, ui-monospace, monospace);
    font-size: 0.875rem;
    line-height: 1.6;
}

:is(.readme-content, .example-code) pre .syntax-comment {
    color: var(--wa-color-text-quiet, var(--demo-muted));
}

:is(.readme-content, .example-code) pre .syntax-keyword {
    color: var(--wa-color-purple, var(--demo-accent));
    font-weight: 700;
}

:is(.readme-content, .example-code) pre .syntax-string {
    color: var(--wa-color-green, var(--demo-accent));
}

:is(.readme-content, .example-code) pre .syntax-number {
    color: var(--wa-color-orange, var(--demo-accent));
}

:is(.readme-content, .example-code) pre .syntax-literal {
    color: var(--wa-color-cyan, var(--demo-accent));
    font-weight: 650;
}

:is(.readme-content, .example-code) pre .syntax-tag {
    color: var(--wa-color-pink, var(--demo-accent));
}

:is(.readme-content, .example-code) pre .syntax-tag-name {
    color: var(--wa-color-blue, var(--demo-accent));
    font-weight: 700;
}

:is(.readme-content, .example-code) pre .syntax-attribute {
    color: var(--wa-color-purple, var(--demo-accent));
}

:is(.readme-content, .example-code) pre .syntax-operator,
:is(.readme-content, .example-code) pre .syntax-punctuation {
    color: var(--wa-color-text-quiet, var(--demo-muted));
}

.readme-content blockquote {
    margin-inline: 0;
    padding-inline-start: 1rem;
    border-inline-start: 0.25rem solid var(--demo-accent);
    color: var(--demo-muted);
}

.changelog-header .intro {
    max-inline-size: 52rem;
}

.changelog-content {
    display: grid;
    gap: var(--wa-space-l);
    max-inline-size: 56rem;
    margin-block-end: 3rem;
}

.changelog-entry {
    padding: clamp(1.25rem, 4vw, 2rem);
    border: 1px solid var(--demo-panel-border);
    border-radius: var(--wa-panel-border-radius);
    background: color-mix(in srgb, var(--demo-panel) 92%, transparent);
    box-shadow: 0 1.5rem 4rem rgb(0 0 0 / 18%);
}

.changelog-entry-header {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: var(--wa-space-l);
    padding-block-end: var(--wa-space-m);
    border-block-end: 1px solid var(--demo-panel-border);
}

.changelog-entry-header h2 {
    margin: 0;
}

.changelog-entry time {
    flex: 0 0 auto;
    color: var(--demo-muted);
    font-size: 0.9rem;
}

.changelog-changes {
    display: grid;
    gap: var(--wa-space-xs);
    margin: var(--wa-space-m) 0 0;
    padding-inline-start: 1.25rem;
    color: var(--demo-muted);
    line-height: 1.6;
}

.changelog-empty {
    margin: var(--wa-space-m) 0 0;
    color: var(--demo-muted);
    font-style: italic;
}

.changelog-compare {
    display: inline-flex;
    margin-block-start: var(--wa-space-m);
    color: var(--demo-accent);
    font-size: 0.9rem;
    font-weight: 700;
}

.storage-note {
    margin-inline-start: auto;
}

.color-swatch {
    font-size: 0.8rem;
}

a {
    color: var(--demo-accent);
}

@container (max-width: 35rem) {
    .section-heading {
        align-items: start;
        flex-direction: column;
    }
}

@media (max-width: 1100px) {
    .controls-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 34rem) {
    .demo-shell {
        inline-size: min(100% - 1rem, 72rem);
        padding-block-start: 8rem;
    }

    .controls-grid,
    .example-grid {
        grid-template-columns: 1fr;
    }

    .control-switches {
        align-items: stretch;
        flex-direction: column;
        gap: var(--wa-space-s);
    }

    .demo-header-main {
        grid-template-columns: 1fr;
        gap: var(--wa-space-m);
    }

    .site-banner {
        align-items: flex-start;
        flex-wrap: wrap;
        gap: var(--wa-space-s);
    }

    .site-banner-left,
    .site-banner-external {
        gap: var(--wa-space-s);
    }

    .site-banner-left {
        order: 1;
    }

    .site-banner-external {
        order: 2;
    }

    .site-banner-controls {
        flex-basis: 100%;
        order: 3;
    }

    .site-banner-pages {
        gap: var(--wa-space-m);
    }

    .site-banner-external {
        margin-inline-start: auto;
    }

    .changelog-entry-header {
        align-items: start;
        flex-direction: column;
        gap: var(--wa-space-s);
    }

    .playground {
        padding-inline: 0.75rem;
    }
}
