@layer site-base, layout, components, pages, responsive;

@layer site-base {
    :root {
        --site-max: 1180px;
        --site-readable: 760px;
        --space-1: .375rem;
        --space-2: .625rem;
        --space-3: 1rem;
        --space-4: 1.5rem;
        --space-5: 2.25rem;
        --space-6: 3.5rem;
        --space-7: 5.5rem;
    }
    html { scroll-behavior: smooth; }
    body { min-height: 100vh; }
    button, input, select { color: inherit; }
    button { cursor: pointer; }
    :focus-visible { outline: 3px solid color-mix(in srgb, var(--nl-blue) 70%, white); outline-offset: 3px; }
    ::selection { background: var(--nl-blue); color: white; }
}

@layer layout {
    .site-shell { width: min(var(--site-max), calc(100% - 2rem)); margin-inline: auto; }
    .site-readable { width: min(var(--site-readable), 100%); }
    .site-header { position: sticky; top: 0; z-index: 20; background: color-mix(in srgb, var(--nl-porcelain) 93%, transparent); backdrop-filter: blur(16px); border-bottom: var(--nl-border); }
    .site-header__inner { width: min(var(--site-max), calc(100% - 2rem)); min-height: 72px; margin-inline: auto; display: flex; align-items: center; gap: var(--space-4); }
    .site-brand { flex: 0 0 auto; text-decoration: none; }
    .site-nav { margin-inline-start: auto; display: flex; align-items: center; gap: var(--space-4); }
    .site-nav a { color: var(--nl-slate); text-decoration: none; font-weight: 600; }
    .site-nav a:hover { color: var(--nl-ink); }
    .site-language { margin-inline-start: var(--space-2); border: var(--nl-border); border-radius: var(--nl-radius-compact); background: transparent; padding: .55rem .75rem; font-weight: 600; }
    .site-main { min-height: 60vh; }
    .page-section { padding-block: var(--space-7); }
    .page-section + .page-section { border-top: var(--nl-border); }
    .page-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--space-4); }
    .page-grid > .span-8 { grid-column: span 8; }
    .page-grid > .span-4 { grid-column: span 4; }
    .page-grid > .span-6 { grid-column: span 6; }
    .site-footer { margin-top: var(--space-7); border-top: var(--nl-border); }
    .site-footer__inner { width: min(var(--site-max), calc(100% - 2rem)); margin-inline: auto; padding-block: var(--space-6); display: grid; grid-template-columns: 1fr auto; gap: var(--space-4); align-items: end; }
    .site-footer__links { display: flex; flex-wrap: wrap; gap: var(--space-4); margin-top: var(--space-3); }
    .site-footer a { color: var(--nl-slate); }
}

@layer components {
    .eyebrow { display: inline-flex; align-items: center; gap: .5rem; color: var(--nl-blue); font-weight: 700; font-size: .82rem; letter-spacing: .06em; text-transform: uppercase; }
    .hero { padding-block: clamp(4rem, 10vw, 9rem); }
    .hero h1 { max-width: 16ch; font-size: clamp(2.8rem, 8vw, 6.8rem); letter-spacing: -.045em; }
    .hero p { max-width: 62ch; margin-top: var(--space-4); font-size: clamp(1.05rem, 2vw, 1.35rem); color: var(--nl-slate); }
    .hero__actions { display: flex; flex-wrap: wrap; gap: var(--space-3); margin-top: var(--space-5); }
    .button { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: .5rem; border: 0; border-radius: var(--nl-radius-compact); padding: .72rem 1rem; background: var(--nl-blue); color: white; text-decoration: none; font-weight: 700; }
    .button--quiet { background: transparent; color: var(--nl-ink); border: var(--nl-border); }
    .button--dark { background: var(--nl-night); color: var(--nl-pearl); }
    .button[disabled] { opacity: .5; cursor: not-allowed; }
    .card { border: var(--nl-border); border-radius: var(--nl-radius-surface); padding: var(--space-4); background: var(--nl-surface); }
    .card h2, .card h3 { margin-bottom: var(--space-2); }
    .card p + p { margin-top: var(--space-3); }
    .card--elevated { box-shadow: var(--nl-shadow-light); }
    .meta-list { display: grid; gap: .65rem; margin: var(--space-4) 0 0; padding: 0; list-style: none; color: var(--nl-slate); }
    .meta-list strong { color: var(--nl-ink); }
    .tag-list { display: flex; flex-wrap: wrap; gap: .5rem; padding: 0; list-style: none; }
    .tag { border: var(--nl-border); border-radius: 999px; padding: .32rem .65rem; font-size: .85rem; }
    .name-links { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: var(--space-3); margin-top: var(--space-5); }
    .name-links a { padding: var(--space-4); border: var(--nl-border); border-radius: var(--nl-radius-surface); text-decoration: none; font-family: var(--nl-font-specimen); font-size: 1.6rem; font-weight: 300; }
    .name-links a:hover { border-color: var(--nl-blue); }
    .callout { border-inline-start: 4px solid var(--nl-blue); padding: var(--space-3) var(--space-4); background: color-mix(in srgb, var(--nl-blue) 6%, var(--nl-porcelain)); }
    .prose h2 { margin-top: var(--space-6); font-size: 2rem; }
    .prose h3 { margin-top: var(--space-5); font-size: 1.45rem; }
    .prose p { margin-top: var(--space-3); color: var(--nl-slate); }
    .prose ul { margin-top: var(--space-3); padding-inline-start: 1.35rem; }
    .prose blockquote { margin-top: var(--space-5); padding: var(--space-5); border: var(--nl-border); border-radius: var(--nl-radius-surface); font-family: var(--nl-font-fancy); font-size: clamp(1.7rem, 4vw, 3rem); font-style: italic; line-height: 1.18; }

    dialog { width: min(640px, calc(100% - 2rem)); max-height: min(80vh, 760px); padding: 0; border: var(--nl-border); border-radius: var(--nl-radius-surface); background: var(--nl-porcelain); color: var(--nl-ink); box-shadow: var(--nl-shadow-light); }
    dialog::backdrop { background: rgb(17 24 32 / .58); backdrop-filter: blur(4px); }
    .dialog-head { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); padding: var(--space-4); border-bottom: var(--nl-border); }
    .dialog-head h2 { font-size: 1.35rem; }
    .dialog-close { width: 38px; height: 38px; border: 0; border-radius: var(--nl-radius-compact); background: transparent; font-size: 1.5rem; }
    .dialog-body { padding: var(--space-4); }
    .language-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: .5rem; }
    .language-grid a { padding: .7rem .75rem; border-radius: var(--nl-radius-compact); text-decoration: none; }
    .language-grid a:hover, .language-grid a[aria-current='true'] { background: color-mix(in srgb, var(--nl-blue) 9%, transparent); color: var(--nl-blue); }
    .field { display: grid; gap: .35rem; margin-top: var(--space-3); }
    .field label { font-weight: 600; }
    .field input { width: 100%; min-height: 44px; border: var(--nl-border); border-radius: var(--nl-radius-compact); background: white; padding: .7rem .8rem; }
    .status { margin-top: var(--space-3); padding: var(--space-3); border-radius: var(--nl-radius-compact); background: color-mix(in srgb, var(--nl-blue) 8%, white); }
}

@layer pages {
    .name-product { padding-block: clamp(2rem, 5vw, 4rem) var(--space-7); }
    .name-product__head { display: flex; align-items: end; justify-content: space-between; gap: var(--space-4); margin-bottom: var(--space-4); }
    .name-product__head h1 { font-size: clamp(2rem, 5vw, 4.4rem); }
    .procedure-id { color: var(--nl-slate); font: 600 .85rem/1 var(--nl-font-information); letter-spacing: .06em; text-transform: uppercase; }
    .name-stage { --render-color: var(--procedure-light, var(--nl-blue)); min-height: clamp(340px, 58vw, 680px); display: grid; place-items: center; overflow: hidden; position: relative; border-radius: var(--nl-radius-surface); background: var(--nl-night); color: var(--render-color); isolation: isolate; }
    .name-stage::before, .name-stage::after { content: ''; position: absolute; width: 48%; aspect-ratio: 1; border-radius: 50%; filter: blur(1px); opacity: .18; z-index: -1; }
    .name-stage::before { inset: -18% auto auto -12%; background: var(--procedure-light2, var(--nl-light-turquoise)); }
    .name-stage::after { inset: auto -12% -28% auto; background: var(--procedure-dark, var(--nl-dark-petrol)); }
    .name-stage__word { max-width: 92%; padding: 2rem; text-align: center; font-family: var(--nl-font-specimen); font-size: clamp(3.3rem, 11vw, 10.5rem); font-weight: var(--nl-special-large-weight, 300); line-height: .95; overflow-wrap: anywhere; }
    .name-stage[data-style='regular'] .name-stage__word { font-weight: var(--nl-special-context-weight, 400); }
    .name-stage[data-style='identity'] .name-stage__word { font-family: var(--nl-font-identity); font-weight: 400; }
    .name-stage[data-style='fancy'] .name-stage__word { font-family: var(--nl-font-fancy); font-style: var(--nl-fancy-style, italic); font-weight: 400; }
    .name-controls { display: grid; grid-template-columns: 1fr 1fr auto; gap: var(--space-4); align-items: end; margin-top: var(--space-4); }
    .control-group { display: grid; gap: .55rem; }
    .control-label { font-weight: 700; font-size: .85rem; color: var(--nl-slate); }
    .choice-row { display: flex; flex-wrap: wrap; gap: .5rem; }
    .choice { min-height: 38px; border: var(--nl-border); border-radius: var(--nl-radius-compact); padding: .45rem .7rem; background: transparent; font-weight: 600; }
    .choice[aria-pressed='true'] { border-color: var(--nl-blue); color: var(--nl-blue); }
    .swatch { width: 38px; height: 38px; border: var(--nl-border); border-radius: 50%; background: var(--swatch); padding: 0; }
    .swatch[aria-pressed='true'] { box-shadow: 0 0 0 3px var(--nl-porcelain), 0 0 0 5px var(--nl-blue); }
    .product-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-4); margin-top: var(--space-6); }
    .mini-stage { min-height: 250px; display: grid; place-items: center; border-radius: var(--nl-radius-surface); overflow: hidden; padding: var(--space-4); }
    .mini-stage--light { background: var(--nl-porcelain); color: var(--procedure-dark); border: var(--nl-border); }
    .mini-stage--dark { background: var(--nl-night); color: var(--procedure-light2); }
    .mini-stage span { font-family: var(--nl-font-specimen); font-size: clamp(2.2rem, 6vw, 5.5rem); font-weight: 400; overflow-wrap: anywhere; text-align: center; }
    .purchase-summary { display: grid; grid-template-columns: 1fr auto; gap: var(--space-3); align-items: center; padding: var(--space-4); border: var(--nl-border); border-radius: var(--nl-radius-surface); }
    .purchase-price { font-size: 1.5rem; font-weight: 700; }

    .brief-index { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: var(--space-4); margin-top: var(--space-5); }
    .brief-card { min-height: 180px; display: flex; flex-direction: column; justify-content: space-between; padding: var(--space-4); border: var(--nl-border); border-radius: var(--nl-radius-surface); text-decoration: none; }
    .brief-card:hover { border-color: var(--nl-blue); }
    .brief-card small { color: var(--nl-slate); }
    .swatch-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: .75rem; margin-top: var(--space-4); }
    .brand-swatch { min-height: 110px; display: flex; align-items: end; padding: .75rem; border-radius: var(--nl-radius-compact); color: white; font-weight: 700; background: var(--swatch); }
    .brand-swatch--light-label { color: var(--nl-ink); }
    .type-sample { padding: var(--space-5); border-bottom: var(--nl-border); }
    .type-sample:last-child { border-bottom: 0; }
    .type-sample small { color: var(--nl-slate); }
    .type-sample p { margin-top: var(--space-3); font-size: clamp(2rem, 6vw, 5rem); line-height: 1.05; }
    .logo-demo { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-4); margin-top: var(--space-5); }
    .logo-demo__surface { min-height: 300px; display: grid; place-items: center; border: var(--nl-border); border-radius: var(--nl-radius-surface); }
    .logo-demo__surface.dark { background: var(--nl-night); color: var(--nl-pearl); }
}

@layer responsive {
    @media (max-width: 820px) {
        .site-header__inner { min-height: 64px; }
        .site-nav { display: none; }
        .site-language { margin-inline-start: auto; }
        .page-grid > .span-8, .page-grid > .span-4, .page-grid > .span-6 { grid-column: 1 / -1; }
        .name-controls { grid-template-columns: 1fr; }
        .product-grid, .logo-demo { grid-template-columns: 1fr; }
        .site-footer__inner { grid-template-columns: 1fr; }
    }
    @media (max-width: 520px) {
        .site-shell, .site-header__inner, .site-footer__inner { width: min(100% - 1.25rem, var(--site-max)); }
        .hero { padding-block: 3.5rem 4.5rem; }
        .page-section { padding-block: 3.5rem; }
        .name-product__head { display: block; }
        .procedure-id { margin-top: .75rem; }
        .nl-lockup { --nl-field: 40px; }
    }
}
@layer layout { main.t_part { min-height: 60vh; } }
