:root {
    --bg: #f3efe6;
    --bg-alt: #efe7d9;
    --ink: #172321;
    --muted: #596865;
    --card: #fffdf7;
    --card-alt: #fffaf0;
    --line: rgba(23, 35, 33, 0.12);
    --accent: #bf5f2f;
    --accent-dark: #8f431d;
    --teal: #214c4a;
    --gold: #d3b36a;
    --header-bg: rgba(255, 253, 247, 0.78);
    --header-border: rgba(255, 255, 255, 0.65);
    --nav-bg: rgba(33, 76, 74, 0.08);
    --nav-ink: var(--teal);
    --hero-bg: var(--card);
    --sidebar-card-bg: var(--card);
    --surface-tint: rgba(255, 253, 247, 0.78);
    --button-ink: #fffaf2;
    --page-burst-a: rgba(211, 179, 106, 0.35);
    --page-burst-b: rgba(33, 76, 74, 0.08);
    --page-burst-c: rgba(191, 95, 47, 0.08);
    --page-burst-a-position: 8% 0%;
    --page-burst-b-position: 100% 18%;
    --page-burst-c-position: 28% 100%;
    --page-burst-a-size: 28rem;
    --page-burst-b-size: 22rem;
    --page-burst-c-size: 20rem;
    --page-gradient-angle: 180deg;
    --page-gradient-start: #f7f2e8;
    --page-gradient-end: #efe7d9;
    --page-shell-max: 1380px;
    --page-shell-side: 2rem;
    --page-shell-top: 1.2rem;
    --page-shell-bottom: 2rem;
    --sidebar-width: 320px;
    --category-grid-min: 240px;
    --item-grid-min: 220px;
    --media-ratio: 4 / 3;
    --nav-gap: 0.9rem;
    --section-gap: 1.5rem;
    --card-gap: 1.1rem;
    --hero-gap: 1.5rem;
    --panel-radius: 1.5rem;
    --card-radius: 1.5rem;
    --control-radius: 1rem;
    --pill-radius: 999px;
    --brand-radius: 1rem;
    --media-radius: 0;
    --border-width: 1px;
    --border-style: solid;
    --header-blur: 18px;
    --panel-padding: 1.35rem;
    --button-radius: 999px;
    --hover-lift: -4px;
    --eyebrow-spacing: 0.18em;
    --brand-size: 3.25rem;
    --font-body: "Trebuchet MS", "Segoe UI", sans-serif;
    --font-title: Georgia, serif;
    --shadow: 0 18px 50px rgba(30, 35, 28, 0.08);
    --shadow-strong: 0 24px 60px rgba(30, 35, 28, 0.14);
}

* {
    box-sizing: border-box;
}

body {
    margin: 0;
    font-family: var(--font-body);
    color: var(--ink);
    background:
        radial-gradient(circle at var(--page-burst-a-position), var(--page-burst-a), transparent var(--page-burst-a-size)),
        radial-gradient(circle at var(--page-burst-b-position), var(--page-burst-b), transparent var(--page-burst-b-size)),
        radial-gradient(circle at var(--page-burst-c-position), var(--page-burst-c), transparent var(--page-burst-c-size)),
        linear-gradient(var(--page-gradient-angle), var(--page-gradient-start) 0%, var(--page-gradient-end) 100%);
}

a {
    color: inherit;
    text-decoration: none;
}

img {
    display: block;
    max-width: 100%;
}

.page-shell {
    width: min(var(--page-shell-max), calc(100% - var(--page-shell-side)));
    margin: 0 auto;
    padding: var(--page-shell-top) 0 var(--page-shell-bottom);
}

.site-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1.5rem;
    padding: 1rem 1.25rem;
    margin-bottom: 1.5rem;
    background: var(--header-bg);
    border: var(--border-width) var(--border-style) var(--header-border);
    border-radius: var(--panel-radius);
    backdrop-filter: blur(var(--header-blur));
    box-shadow: var(--shadow);
}

.brand-block {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.brand-mark {
    width: var(--brand-size);
    height: var(--brand-size);
    display: grid;
    place-items: center;
    border-radius: var(--brand-radius);
    background: linear-gradient(135deg, var(--teal), var(--accent));
    color: #fff8e7;
    font-weight: 700;
    letter-spacing: 0.08em;
}

.brand-title {
    display: inline-block;
    font: 700 1.45rem/1.1 var(--font-title);
}

.brand-tagline {
    margin: 0.15rem 0 0;
    color: var(--muted);
    font-size: 0.95rem;
}

.site-nav {
    display: flex;
    flex-wrap: wrap;
    gap: var(--nav-gap);
}

.site-nav a {
    padding: 0.75rem 1rem;
    border-radius: var(--pill-radius);
    background: var(--nav-bg);
    color: var(--nav-ink);
    font-weight: 600;
}

.page-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) var(--sidebar-width);
    grid-template-areas: "content sidebar";
    gap: 1.5rem;
}

.content-panel,
.sidebar-panel {
    min-width: 0;
}

.content-panel {
    grid-area: content;
}

.sidebar-panel {
    grid-area: sidebar;
}

.hero-panel,
.side-card,
.category-card,
.item-card,
.detail-copy,
.detail-gallery,
.meta-card,
.form-shell,
.page-copy,
.empty-state,
.flash-success {
    background: var(--card);
    border: var(--border-width) var(--border-style) var(--line);
    border-radius: var(--panel-radius);
    box-shadow: var(--shadow);
}

.hero-panel {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(280px, 0.8fr);
    gap: var(--hero-gap);
    padding: var(--panel-padding);
    margin-bottom: 1.5rem;
    background: var(--hero-bg);
}

.hero-panel.compact {
    grid-template-columns: minmax(0, 1fr) minmax(280px, 0.9fr);
}

.eyebrow {
    margin: 0 0 0.55rem;
    color: var(--accent-dark);
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: var(--eyebrow-spacing);
    text-transform: uppercase;
}

.hero-panel h1,
.section-head h1,
.section-head h2,
.page-copy h1 {
    margin: 0;
    font: 700 clamp(2rem, 4vw, 3.2rem)/1.05 var(--font-title);
}

.hero-copy {
    margin: 1rem 0 0;
    max-width: 52rem;
    color: var(--muted);
    line-height: 1.75;
}

.hero-search,
.form-shell {
    display: grid;
    gap: 0.85rem;
}

.label,
.form-shell span {
    display: block;
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--muted);
}

input,
select,
textarea,
button {
    font: inherit;
}

input,
select,
textarea {
    width: 100%;
    padding: 0.95rem 1rem;
    border: var(--border-width) var(--border-style) rgba(23, 35, 33, 0.14);
    border-radius: var(--control-radius);
    background: #fff;
    color: var(--ink);
}

button,
.outline-link,
.side-link {
    transition: transform 0.2s ease, background 0.2s ease;
}

button {
    border: 0;
    border-radius: var(--button-radius);
    padding: 0.95rem 1.2rem;
    background: linear-gradient(135deg, var(--accent), #d17a44);
    color: var(--button-ink);
    font-weight: 700;
    cursor: pointer;
}

button:hover,
.outline-link:hover,
.side-link:hover {
    transform: translateY(-1px);
}

.button-muted {
    background: linear-gradient(135deg, rgba(33, 76, 74, 0.92), rgba(65, 108, 105, 0.92));
}

.button-danger {
    background: linear-gradient(135deg, #9e2f1f, #d14d39);
}

.section-head {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: var(--section-gap);
    margin: 0 0 1rem;
}

.outline-link {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.85rem 1rem;
    border-radius: var(--pill-radius);
    border: var(--border-width) var(--border-style) rgba(33, 76, 74, 0.15);
    background: rgba(255, 255, 255, 0.5);
    color: var(--teal);
    font-weight: 700;
}

.category-grid,
.item-grid {
    display: grid;
    gap: var(--card-gap);
}

.category-grid {
    grid-template-columns: repeat(auto-fit, minmax(var(--category-grid-min), 1fr));
}

.item-grid {
    grid-template-columns: repeat(auto-fit, minmax(var(--item-grid-min), 1fr));
}

.category-card,
.item-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow: hidden;
    border-radius: var(--card-radius);
    transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease, background 0.22s ease;
}

.card-link {
    cursor: pointer;
}

.card-link:hover {
    transform: translateY(var(--hover-lift));
    border-color: rgba(33, 76, 74, 0.22);
    box-shadow: var(--shadow-strong);
    background: var(--card-alt);
}

.card-link:focus-visible {
    outline: 3px solid rgba(191, 95, 47, 0.38);
    outline-offset: 4px;
}

.card-media {
    aspect-ratio: var(--media-ratio);
    position: relative;
    overflow: hidden;
    flex: 0 0 auto;
    border-radius: var(--media-radius);
    background:
        radial-gradient(circle at 50% 28%, rgba(255, 248, 231, 0.75), transparent 48%),
        linear-gradient(145deg, rgba(33, 76, 74, 0.12), rgba(191, 95, 47, 0.18));
}

.card-media img,
.card-media .image-fallback,
.gallery-grid img {
    width: 100%;
}

.card-media.has-image .card-media-glow,
.card-media.has-image .card-media-image,
.card-media.has-image::after {
    position: absolute;
}

.card-media.has-image .card-media-glow {
    inset: -14%;
    width: 128%;
    height: 128%;
    object-fit: cover;
    object-position: center;
    filter: blur(42px) saturate(0.95);
    opacity: 0.62;
    transform: scale(1.08);
}

.card-media.has-image .card-media-image {
    inset: -2%;
    width: 104%;
    height: 104%;
    object-fit: cover;
    object-position: center;
    transform: scale(1.03);
    -webkit-mask-image:
        linear-gradient(to right, transparent 0%, #000 13%, #000 87%, transparent 100%),
        linear-gradient(to bottom, transparent 0%, #000 13%, #000 87%, transparent 100%),
        radial-gradient(circle at center, #000 56%, rgba(0, 0, 0, 0.92) 74%, rgba(0, 0, 0, 0.42) 92%, transparent 100%);
    mask-image:
        linear-gradient(to right, transparent 0%, #000 13%, #000 87%, transparent 100%),
        linear-gradient(to bottom, transparent 0%, #000 13%, #000 87%, transparent 100%),
        radial-gradient(circle at center, #000 56%, rgba(0, 0, 0, 0.92) 74%, rgba(0, 0, 0, 0.42) 92%, transparent 100%);
}

.card-media.has-image::after {
    content: "";
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(circle at center, rgba(255, 253, 247, 0) 50%, rgba(255, 253, 247, 0.14) 70%, rgba(255, 253, 247, 0.6) 100%),
        linear-gradient(
            to bottom,
            rgba(255, 253, 247, 0.62) 0%,
            rgba(255, 253, 247, 0.16) 14%,
            rgba(255, 253, 247, 0) 30%,
            rgba(255, 253, 247, 0) 70%,
            rgba(255, 253, 247, 0.18) 86%,
            rgba(255, 253, 247, 0.66) 100%
        ),
        linear-gradient(
            to right,
            rgba(255, 253, 247, 0.54) 0%,
            rgba(255, 253, 247, 0.1) 14%,
            rgba(255, 253, 247, 0) 28%,
            rgba(255, 253, 247, 0) 72%,
            rgba(255, 253, 247, 0.1) 86%,
            rgba(255, 253, 247, 0.54) 100%
        );
}

.gallery-grid img {
    aspect-ratio: 16 / 11;
    object-fit: cover;
}

.image-fallback,
.gallery-empty {
    display: grid;
    place-items: center;
    min-height: 0;
    color: var(--teal);
    font: 700 clamp(2.5rem, 6vw, 3.4rem)/1 Georgia, serif;
}

.card-media .image-fallback {
    height: 100%;
    background:
        radial-gradient(circle at 35% 30%, rgba(255, 248, 231, 0.88), transparent 38%),
        linear-gradient(145deg, rgba(33, 76, 74, 0.14), rgba(191, 95, 47, 0.22));
}

.card-copy {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.6rem;
    padding: var(--panel-padding);
}

.card-count,
.card-badge,
.card-meta,
.card-price {
    margin: 0;
    color: var(--muted);
}

.card-copy h3 {
    margin: 0;
    font-size: 1.15rem;
    line-height: 1.25;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
}

.card-meta {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}

.sidebar-panel {
    display: grid;
    gap: 1rem;
    align-content: start;
}

.side-card {
    padding: var(--panel-padding);
    background: var(--sidebar-card-bg);
}

.side-card h2 {
    margin: 0 0 0.85rem;
    font: 700 1.2rem/1.2 var(--font-title);
}

.side-link {
    display: block;
    padding: 0.8rem 0;
    border-top: 1px solid var(--line);
    color: var(--teal);
    font-weight: 600;
}

.side-link:first-of-type {
    border-top: 0;
    padding-top: 0;
}

.side-empty {
    margin: 0;
    color: var(--muted);
}

.detail-shell {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 1.2rem;
}

.detail-main {
    display: grid;
    gap: 1rem;
}

.detail-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.9rem;
}

.detail-actions form {
    margin: 0;
}

.detail-breadcrumbs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    color: var(--muted);
    font-size: 0.92rem;
}

.detail-gallery,
.detail-copy,
.meta-card,
.page-copy,
.form-shell {
    padding: var(--panel-padding);
}

.gallery-grid {
    display: grid;
    gap: 1rem;
}

.detail-copy h1 {
    margin: 0;
    font: 700 clamp(2rem, 3vw, 2.8rem)/1.05 var(--font-title);
}

.detail-badge,
.detail-price {
    margin: 0.85rem 0 0;
}

.detail-price {
    color: var(--accent-dark);
    font-size: 1.3rem;
    font-weight: 700;
}

.rich-copy {
    margin-top: 1.35rem;
    color: #24302e;
    line-height: 1.8;
}

.rich-copy p:first-child {
    margin-top: 0;
}

.meta-card h2 {
    margin: 0 0 0.85rem;
    font: 700 1.2rem/1.2 var(--font-title);
}

.meta-card dl {
    display: grid;
    gap: 0.9rem;
    margin: 0;
}

.meta-card dt {
    color: var(--muted);
    font-size: 0.86rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.meta-card dd {
    margin: 0.25rem 0 0;
    font-weight: 600;
}

.page-copy p,
.contact-card p {
    line-height: 1.8;
}

.contact-card {
    display: grid;
    gap: 0.1rem;
    margin-top: 1rem;
}

.form-shell {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.form-shell label {
    display: grid;
    gap: 0.45rem;
}

.form-shell .full {
    grid-column: 1 / -1;
}

.form-actions {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.form-actions p,
.flash-success,
small,
.empty-state p {
    color: var(--muted);
}

.flash-success,
.empty-state {
    padding: 1.2rem 1.25rem;
    margin-bottom: 1rem;
}

.empty-state h3 {
    margin-top: 0;
}

.pager {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
    margin-top: 1.2rem;
}

.pager-link {
    padding: 0.72rem 0.95rem;
    border-radius: var(--pill-radius);
    border: var(--border-width) var(--border-style) rgba(23, 35, 33, 0.14);
    background: rgba(255, 255, 255, 0.5);
    font-weight: 700;
}

.pager-link.active {
    background: var(--teal);
    color: #fff;
    border-color: transparent;
}

.pager-link.muted {
    opacity: 0.55;
}

.empty-copy {
    margin: 0;
    color: var(--muted);
}

small {
    font-size: 0.84rem;
}

body.theme-sidebar-left .page-grid {
    grid-template-columns: var(--sidebar-width) minmax(0, 1fr);
    grid-template-areas: "sidebar content";
}

body.theme-sidebar-top .page-grid {
    grid-template-columns: 1fr;
    grid-template-areas:
        "sidebar"
        "content";
}

body.theme-sidebar-bottom .page-grid {
    grid-template-columns: 1fr;
    grid-template-areas:
        "content"
        "sidebar";
}

body.theme-sidebar-top .sidebar-panel,
body.theme-sidebar-bottom .sidebar-panel {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

body.theme-sidebar-flow-pair .sidebar-panel {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

body.theme-sidebar-flow-strip .sidebar-panel {
    grid-auto-flow: column;
    grid-auto-columns: minmax(240px, 1fr);
    overflow-x: auto;
    padding-bottom: 0.3rem;
}

body.theme-sidebar-left .sidebar-panel,
body.theme-sidebar-right .sidebar-panel {
    grid-template-columns: 1fr;
    grid-auto-flow: row;
    grid-auto-columns: auto;
    overflow-x: visible;
}

body.theme-header-stacked .site-header,
body.theme-header-split .site-header {
    display: grid;
}

body.theme-header-stacked .site-header {
    justify-items: center;
    text-align: center;
}

body.theme-header-stacked .brand-block,
body.theme-header-stacked .site-nav {
    justify-content: center;
}

body.theme-header-split .site-header {
    grid-template-columns: minmax(0, 1fr);
    gap: 1rem;
}

body.theme-header-split .site-nav {
    justify-content: space-between;
    width: 100%;
}

body.theme-header-split .brand-block {
    justify-content: space-between;
    width: 100%;
}

body.theme-hero-stacked .hero-panel,
body.theme-hero-spotlight .hero-panel {
    grid-template-columns: 1fr;
}

body.theme-hero-reversed .hero-panel {
    grid-template-columns: minmax(280px, 0.8fr) minmax(0, 1.4fr);
}

body.theme-hero-reversed .hero-panel > :first-child {
    order: 2;
}

body.theme-hero-reversed .hero-panel > :last-child {
    order: 1;
}

body.theme-hero-spotlight .hero-search {
    padding: var(--panel-padding);
    background: var(--surface-tint);
    border-radius: var(--panel-radius);
    box-shadow: var(--shadow);
}

body.theme-nav-box .site-nav a {
    background: transparent;
    border: var(--border-width) var(--border-style) currentColor;
    border-radius: var(--control-radius);
}

body.theme-nav-underline .site-nav a {
    background: transparent;
    border-radius: 0;
    border-bottom: var(--border-width) var(--border-style) currentColor;
    padding: 0.45rem 0.1rem;
}

body.theme-nav-strip .site-nav {
    padding: 0.45rem;
    border-radius: var(--panel-radius);
    background: var(--surface-tint);
}

body.theme-nav-strip .site-nav a {
    background: transparent;
}

body.theme-section-center .hero-panel,
body.theme-section-center .section-head,
body.theme-section-center .page-copy {
    text-align: center;
}

body.theme-section-center .section-head {
    justify-content: center;
    align-items: center;
}

body.theme-section-center .outline-link {
    margin-inline: auto;
}

body.theme-card-copy-center .card-copy,
body.theme-card-copy-center .card-count,
body.theme-card-copy-center .card-badge,
body.theme-card-copy-center .card-meta,
body.theme-card-copy-center .card-price {
    align-items: center;
    text-align: center;
}

body.theme-surface-glass .hero-panel,
body.theme-surface-glass .side-card,
body.theme-surface-glass .category-card,
body.theme-surface-glass .item-card,
body.theme-surface-glass .detail-copy,
body.theme-surface-glass .detail-gallery,
body.theme-surface-glass .meta-card,
body.theme-surface-glass .form-shell,
body.theme-surface-glass .page-copy,
body.theme-surface-glass .empty-state,
body.theme-surface-glass .flash-success {
    background: var(--surface-tint);
    backdrop-filter: blur(calc(var(--header-blur) / 1.4));
}

body.theme-surface-outline .hero-panel,
body.theme-surface-outline .side-card,
body.theme-surface-outline .category-card,
body.theme-surface-outline .item-card,
body.theme-surface-outline .detail-copy,
body.theme-surface-outline .detail-gallery,
body.theme-surface-outline .meta-card,
body.theme-surface-outline .form-shell,
body.theme-surface-outline .page-copy,
body.theme-surface-outline .empty-state,
body.theme-surface-outline .flash-success {
    background: transparent;
    box-shadow: none;
    border-width: calc(var(--border-width) + 1px);
}

body.theme-surface-tint .hero-panel,
body.theme-surface-tint .side-card,
body.theme-surface-tint .category-card,
body.theme-surface-tint .item-card,
body.theme-surface-tint .detail-copy,
body.theme-surface-tint .detail-gallery,
body.theme-surface-tint .meta-card,
body.theme-surface-tint .form-shell,
body.theme-surface-tint .page-copy,
body.theme-surface-tint .empty-state,
body.theme-surface-tint .flash-success {
    background: linear-gradient(180deg, var(--surface-tint), var(--card));
}

body.theme-button-soft button,
body.theme-button-soft .outline-link {
    box-shadow: var(--shadow);
}

body.theme-button-sharp button,
body.theme-button-sharp .outline-link {
    border-radius: 0;
    letter-spacing: 0.04em;
}

body.theme-tone-dark .site-header,
body.theme-tone-dark .side-card,
body.theme-tone-dark .hero-panel,
body.theme-tone-dark .detail-copy,
body.theme-tone-dark .detail-gallery,
body.theme-tone-dark .meta-card,
body.theme-tone-dark .form-shell,
body.theme-tone-dark .page-copy,
body.theme-tone-dark .empty-state,
body.theme-tone-dark .flash-success {
    color: var(--ink);
}

.cookie-settings-launch {
    position: fixed;
    left: 1rem;
    bottom: 1rem;
    z-index: 70;
    width: auto;
    padding: 0.75rem 1rem;
    border: var(--border-width) var(--border-style) rgba(23, 35, 33, 0.2);
    background: rgba(255, 253, 247, 0.94);
    color: var(--teal);
    box-shadow: var(--shadow);
}

.cookie-consent-banner {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 80;
    padding: 1rem;
}

.cookie-consent-card {
    max-width: min(980px, 100%);
    margin: 0 auto;
    background: var(--card);
    border: var(--border-width) var(--border-style) var(--line);
    border-radius: var(--panel-radius);
    box-shadow: var(--shadow-strong);
    padding: 1rem 1.2rem;
    display: grid;
    gap: 1rem;
}

.cookie-consent-copy h2 {
    margin: 0 0 0.5rem;
    font: 700 1.15rem/1.2 var(--font-title);
}

.cookie-consent-copy p {
    margin: 0;
    color: var(--muted);
    line-height: 1.55;
}

.cookie-consent-copy a {
    text-decoration: underline;
}

.cookie-consent-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
}

.cookie-consent-actions button {
    width: auto;
    min-width: 9rem;
    padding: 0.75rem 1rem;
}

.cookie-consent-modal {
    position: fixed;
    inset: 0;
    z-index: 95;
    display: grid;
    place-items: center;
    padding: 1rem;
}

.cookie-consent-modal[hidden],
.cookie-consent-banner[hidden] {
    display: none !important;
}

.cookie-consent-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(23, 35, 33, 0.5);
}

.cookie-consent-modal-card {
    position: relative;
    width: min(600px, 100%);
    background: var(--card);
    border: var(--border-width) var(--border-style) var(--line);
    border-radius: var(--panel-radius);
    box-shadow: var(--shadow-strong);
    padding: 1.2rem;
    display: grid;
    gap: 1rem;
}

.cookie-consent-modal-card h2 {
    margin: 0;
    font: 700 1.35rem/1.2 var(--font-title);
}

.cookie-consent-modal-copy {
    margin: 0;
    color: var(--muted);
}

.cookie-consent-toggle {
    display: flex;
    justify-content: space-between;
    align-items: start;
    gap: 1rem;
    padding: 0.85rem 0.95rem;
    border: var(--border-width) var(--border-style) rgba(23, 35, 33, 0.14);
    border-radius: var(--control-radius);
    background: #fff;
}

.cookie-consent-toggle strong {
    display: block;
    margin-bottom: 0.2rem;
}

.cookie-consent-toggle small {
    display: block;
    color: var(--muted);
    line-height: 1.45;
}

.cookie-consent-toggle input[type="checkbox"] {
    width: 1.05rem;
    height: 1.05rem;
    margin-top: 0.2rem;
    accent-color: var(--accent);
}

.cookie-consent-toggle.is-required {
    background: rgba(33, 76, 74, 0.05);
}

body.cookie-modal-open {
    overflow: hidden;
}

@media (max-width: 1100px) {
    .page-grid,
    .detail-shell {
        grid-template-columns: 1fr;
    }

    .sidebar-panel {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .page-shell {
        width: min(100% - 1rem, 100%);
    }

    .site-header,
    .hero-panel,
    .section-head,
    .form-actions {
        grid-template-columns: 1fr;
        display: grid;
    }

    .site-header,
    .section-head {
        align-items: start;
    }

    .site-nav {
        gap: 0.55rem;
    }

    .site-nav a,
    .outline-link,
    button {
        width: 100%;
        justify-content: center;
    }

    .sidebar-panel,
    .form-shell {
        grid-template-columns: 1fr;
    }

    .cookie-consent-actions button {
        width: 100%;
    }

    .cookie-settings-launch {
        left: 0.75rem;
        bottom: 0.75rem;
        width: auto;
    }
}
