:root {
    /* Brand colors: edit this block to recolor the public site and admin area. */
    --brand-primary: #0068f6;
    --brand-primary-hover: color-mix(in srgb, var(--brand-primary) 82%, var(--brand-navy));
    --brand-secondary: #1595ff;
    --brand-secondary-soft: color-mix(in srgb, var(--brand-secondary) 12%, var(--brand-surface));
    --brand-navy: #061b3b;
    --brand-navy-soft: color-mix(in srgb, var(--brand-navy) 82%, var(--brand-surface));
    --brand-ink: #081c38;
    --brand-muted: #60728a;
    --brand-canvas: #f3f7fc;
    --brand-surface: #fbfdff;
    --brand-border: #d8e4f2;
    --brand-success: #16805a;
    --brand-warning: #a66a00;
    --brand-danger: #b42318;
    --brand-on-dark: var(--brand-surface);
    --brand-on-dark-muted: color-mix(in srgb, var(--brand-surface) 72%, var(--brand-muted));
    --brand-focus: color-mix(in srgb, var(--brand-primary) 24%, transparent);
    --brand-shadow: color-mix(in srgb, var(--brand-navy) 12%, transparent);
    --brand-overlay: color-mix(in srgb, var(--brand-navy) 76%, transparent);
    --brand-overlay-light: color-mix(in srgb, var(--brand-navy) 6%, transparent);
    --brand-border-strong: color-mix(in srgb, var(--brand-border) 72%, var(--brand-muted));
    --brand-success-soft: color-mix(in srgb, var(--brand-success) 8%, var(--brand-surface));
    --brand-success-border: color-mix(in srgb, var(--brand-success) 24%, var(--brand-surface));
    --brand-danger-soft: color-mix(in srgb, var(--brand-danger) 8%, var(--brand-surface));
    --brand-danger-border: color-mix(in srgb, var(--brand-danger) 22%, var(--brand-surface));

    /* Typography: replace these two values to change every font. */
    --font-family-base: Tahoma, Arial, system-ui, sans-serif;
    --font-family-heading: Tahoma, Arial, system-ui, sans-serif;

    /* Compatibility tokens consumed by every existing component. */
    --primary: var(--brand-primary);
    --primary-soft: var(--brand-secondary-soft);
    --dark: var(--brand-navy);
    --ink: var(--brand-ink);
    --gray: var(--brand-muted);
    --muted: var(--brand-muted);
    --light: var(--brand-canvas);
    --canvas: var(--brand-canvas);
    --white: var(--brand-surface);
    --surface: var(--brand-surface);
    --border: var(--brand-border);
    --success: var(--brand-success);
    --warning: var(--brand-warning);
    --danger: var(--brand-danger);
    --shadow: 0 10px 32px var(--brand-shadow);
}

.public-site { font-size: var(--brand-base-size, 16px); }

body, button, input, select, textarea { font-family: var(--font-family-base); }
h1, h2, h3, h4, h5, h6, .brand, .admin-brand, .footer-logo { font-family: var(--font-family-heading); }

/* Public identity */
.utility-bar, .main-nav, .site-footer, .category-mast, .tag-masthead { color: var(--brand-on-dark); background: var(--brand-navy); }
.utility-bar, .site-footer { color: var(--brand-on-dark-muted); }
.main-nav { border-color: var(--brand-secondary); }
.nav-inner a:hover, .nav-inner a.active { color: var(--brand-navy); background: var(--brand-secondary); }
.header-search button, .breaking-inner > strong, .search-large button, .button { color: var(--brand-on-dark); background: var(--brand-primary); }
.main-news-copy .category-label { color: var(--brand-navy); background: var(--brand-secondary); }
.category-label, .page-header > span, .tag-masthead span { color: var(--brand-primary); }
.section-heading h2::after { background: var(--brand-secondary); }
.breaking-bar, .article-content blockquote { background: var(--brand-secondary-soft); border-color: var(--brand-border-strong); }
.main-news-image::after { background: linear-gradient(0deg, var(--brand-overlay), var(--brand-overlay-light) 72%); }
.brand-mark { width: 210px; height: 64px; display: block; flex: 0 0 210px; }
.brand-mark img { width: 100%; height: 100%; max-width: none; max-height: none; object-fit: contain; transform: none; }
.masthead { grid-template-columns: auto minmax(260px, 1fr) minmax(260px, 420px) auto; }
.masthead-message { justify-self: center; display: grid; gap: 3px; text-align: center; }
.masthead-message strong { color: var(--brand-navy); font-family: var(--font-family-heading); font-size: clamp(1rem, 1.6vw, 1.35rem); font-weight: 900; }
.masthead-message span { color: var(--brand-muted); font-size: .75rem; }
.footer-logo { display: inline-flex; align-items: center; gap: 9px; }
.footer-logo .brand-mark { width: 138px; height: 42px; flex-basis: 138px; }

/* Admin identity */
.sidebar, .login-visual { background: var(--brand-navy); }
.sidebar nav a:hover { color: var(--brand-on-dark); background: var(--brand-navy-soft); }
.sidebar nav a.active { color: var(--brand-on-dark); background: var(--brand-navy-soft); box-shadow: inset -3px 0 var(--brand-secondary); }
.sidebar nav a.active .nav-icon { color: var(--brand-navy); background: var(--brand-secondary); }
.nav-icon, .nav-label, .admin-brand small { color: var(--brand-on-dark-muted); }
.admin-brand { display: flex; align-items: center; flex-direction: column; }
.admin-brand .brand-mark { width: 180px; height: 62px; flex-basis: 62px; }
.login-box .admin-brand { width: max-content; }
.login-visual::after { background: linear-gradient(135deg, var(--brand-shadow), var(--brand-overlay)); }
.login-copy span { color: var(--brand-secondary); }
.login-copy, .stat-card:first-child, .stat-grid article:first-child { color: var(--brand-on-dark); background-color: var(--brand-navy); }
.button:hover { background: var(--brand-primary-hover); border-color: var(--brand-primary-hover); }
input:focus, select:focus, textarea:focus, .tag-input-shell:focus-within, .rich-canvas:focus { border-color: var(--brand-primary); box-shadow: 0 0 0 3px var(--brand-focus); }
:focus-visible { outline-color: var(--brand-focus); }

@media (max-width: 640px) {
    .brand-mark { width: 150px; height: 50px; flex-basis: 150px; }
}

@media (max-width: 980px) {
    .masthead { grid-template-columns: 1fr auto auto; }
    .masthead-message { display: none; }
}

/* General public-page composition */
.utility-bar { background: var(--brand-surface); border-bottom: 1px solid var(--brand-border); color: var(--brand-muted); }
.utility-inner { min-height: 38px; font-size: .72rem; }
.edition-label { display: inline-flex; align-items: center; gap: 7px; color: var(--brand-navy); font-weight: 800; }
.edition-label::before { width: 7px; height: 7px; content: ""; background: var(--brand-primary); border-radius: 50%; box-shadow: 0 0 0 4px var(--brand-secondary-soft); }
.masthead { min-height: 116px; grid-template-columns: auto minmax(220px, 1fr) minmax(230px, 360px) auto auto; gap: clamp(14px, 2vw, 30px); }
.masthead-message { justify-self: start; text-align: start; padding-inline-start: clamp(14px, 2vw, 30px); border-inline-start: 1px solid var(--brand-border); }
.masthead-message strong { font-size: clamp(.94rem, 1.35vw, 1.2rem); }
.masthead-live { display: inline-flex; align-items: center; gap: 7px; color: var(--brand-navy); font-size: .75rem; font-weight: 800; white-space: nowrap; }
.masthead-live i { width: 8px; height: 8px; background: var(--brand-primary); border-radius: 50%; }
.main-nav { color: var(--brand-navy); background: var(--brand-surface); border-block: 1px solid var(--brand-border); border-block-end-width: 1px; }
.nav-inner { justify-content: center; }
.nav-inner a { position: relative; min-height: 54px; color: var(--brand-navy); font-size: .88rem; }
.nav-inner a::after { position: absolute; inset-inline: 18px; inset-block-end: 0; height: 3px; content: ""; background: transparent; }
.nav-inner a:hover, .nav-inner a.active { color: var(--brand-primary); background: transparent; }
.nav-inner a:hover::after, .nav-inner a.active::after { background: var(--brand-primary); }
.site-ad-top { margin-block: 14px 0; }
.home-content { padding-top: 16px; }
.hero-grid { grid-template-columns: 1fr; gap: 24px; }
.main-news-card { border-radius: 0; box-shadow: 18px 18px 0 var(--brand-secondary-soft); }
.main-news-copy { min-height: clamp(400px, 45vw, 580px); padding: clamp(24px, 4vw, 54px); }
.main-news-copy h1 { max-width: 24ch; }
.secondary-news { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(14px, 2vw, 24px); border-top: 0; }
.news-card-secondary { display: block; padding: 0; border-bottom: 0; }
.news-card-secondary .news-card-image { aspect-ratio: 16 / 10; }
.news-card-secondary .news-card-body { padding-top: 10px; }
.news-card-secondary h3 { margin-top: 0; font-size: 1rem; }
.content-columns { grid-template-columns: minmax(260px, .68fr) minmax(0, 2.15fr); }
.content-columns > aside { grid-column: 1; grid-row: 1; }
.latest-news { grid-column: 2; grid-row: 1; }
.category-mast, .tag-masthead { color: var(--brand-on-dark); background: var(--brand-navy); }
.category-mast { margin-top: 0; border-block-end: 6px solid var(--brand-primary); }
.category-mast-inner { min-height: 250px; display: grid; grid-template-columns: 150px minmax(0, 1fr) auto; align-items: end; gap: 20px; padding-block: clamp(32px, 6vw, 74px); }
.category-mast-inner > span { align-self: start; padding-top: 8px; color: var(--brand-secondary); font-size: .76rem; font-weight: 800; }
.category-mast h1 { max-width: 14ch; margin: 0; font-size: clamp(3.2rem, 7vw, 6.8rem); }
.category-mast p { margin: 14px 0 0; color: var(--brand-on-dark-muted); }
.category-mast b { align-self: start; padding: 8px 0; color: var(--brand-secondary); font-size: .78rem; }
.page-hero { max-width: none; display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, .55fr); gap: 0 40px; padding: clamp(34px, 6vw, 72px); color: var(--brand-on-dark); background: var(--brand-navy); border-block-end: 6px solid var(--brand-primary); }
.page-hero > span { color: var(--brand-secondary); }
.page-hero h1 { grid-column: 1; max-width: 18ch; margin-bottom: 0; }
.page-hero p { grid-column: 2; grid-row: 1 / span 2; align-self: end; max-width: 32ch; margin: 0; color: var(--brand-on-dark-muted); }
.search-large { position: relative; z-index: 1; max-width: 880px; margin: -26px auto 54px; box-shadow: 0 12px 28px var(--brand-shadow); }
.tag-masthead { padding-block: 0; border-block-end: 6px solid var(--brand-primary); }
.tag-masthead .container { min-height: 220px; display: grid; grid-template-columns: 150px minmax(0, 1fr) auto; align-items: end; gap: 20px; padding-block: 38px; }
.tag-masthead span { align-self: start; color: var(--brand-secondary); }
.tag-masthead h1 { margin: 0; font-size: clamp(2.8rem, 6vw, 5.5rem); }
.tag-masthead p { color: var(--brand-on-dark-muted); }
.tag-masthead a { align-self: start; color: var(--brand-on-dark); font-size: .78rem; font-weight: 800; }
.article-page { padding-top: 24px; }
.article-hero { max-width: 1000px; margin: 0 auto clamp(30px, 4vw, 54px); text-align: center; }
.article-hero .category-label { margin-inline: auto; padding: 5px 12px; color: var(--brand-primary); background: var(--brand-secondary-soft); }
.article-hero h1 { max-width: 18ch; margin-inline: auto; font-size: clamp(2.5rem, 5.7vw, 5.1rem); }
.article-hero .article-subtitle { margin-inline: auto; }
.article-hero-meta { display: flex; justify-content: center; gap: 14px; color: var(--brand-muted); font-size: .78rem; }
.article-hero-meta span { color: var(--brand-primary); font-weight: 800; }
.article-layout { grid-template-columns: minmax(250px, .62fr) minmax(0, 850px); }
.article-main { grid-column: 2; }
.article-aside { grid-column: 1; grid-row: 1; }

@media (max-width: 980px) {
    .masthead { grid-template-columns: 1fr auto auto; min-height: 92px; }
    .masthead-message, .masthead-live { display: none; }
    .main-nav { display: none; }
    .main-nav.open { display: block; }
    .nav-inner { justify-content: stretch; }
    .hero-grid, .content-columns, .article-layout { grid-template-columns: 1fr; }
    .secondary-news { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; border-top: 0; }
    .news-card-secondary { display: block; padding: 0; }
    .news-card-secondary .news-card-body { padding-top: 10px; }
    .content-columns > aside, .latest-news, .article-main, .article-aside { grid-column: auto; grid-row: auto; }
    .category-mast-inner, .tag-masthead .container { grid-template-columns: 1fr auto; min-height: 210px; }
    .category-mast-inner > span, .tag-masthead span { grid-column: 1 / -1; }
    .page-hero { grid-template-columns: 1fr; }
    .page-hero p { grid-column: 1; grid-row: auto; margin-top: 20px; }
}

@media (max-width: 640px) {
    .edition-label { display: none; }
    .utility-inner { justify-content: center; }
    .hero-grid { gap: 28px; }
    .main-news-card { box-shadow: 10px 10px 0 var(--brand-secondary-soft); }
    .secondary-news { grid-template-columns: 1fr; gap: 0; border-top: 3px solid var(--brand-navy); }
    .news-card-secondary { display: grid; grid-template-columns: 104px minmax(0, 1fr); gap: 12px; padding-block: 14px; }
    .news-card-secondary .news-card-body { padding: 0; }
    .category-mast-inner, .tag-masthead .container { grid-template-columns: 1fr; min-height: 0; gap: 14px; padding-block: 32px; }
    .category-mast-inner > span, .tag-masthead span, .category-mast b, .tag-masthead a { grid-column: auto; }
    .category-mast-inner > span, .tag-masthead span, .category-mast b, .tag-masthead a { align-self: auto; }
    .category-mast h1 { font-size: clamp(3rem, 15vw, 4.5rem); }
    .page-hero { width: calc(100% + 24px); margin-inline: -12px; padding: 36px 24px; }
    .page-hero h1 { font-size: 2.8rem; }
    .search-large { margin-top: -18px; margin-bottom: 42px; }
    .article-hero { text-align: start; }
    .article-hero .category-label { margin-inline: 0; }
    .article-hero h1 { margin-inline: 0; font-size: 2.45rem; }
    .article-hero .article-subtitle { margin-inline: 0; }
    .article-hero-meta { justify-content: flex-start; }
}

/* Header templates selected from Branding. */
.header-template-centered .masthead { min-height: 150px; grid-template-columns: minmax(220px, 1fr) auto minmax(220px, 1fr); grid-template-areas: "search brand live"; }
.header-template-centered .brand { grid-area: brand; justify-self: center; }
.header-template-centered .header-search { grid-area: search; }
.header-template-centered .masthead-live { grid-area: live; justify-self: end; }
.header-template-centered .masthead-message { display: none; }
.header-template-centered .nav-inner { justify-content: center; }

.header-template-bold .masthead { padding-inline: clamp(20px, 4vw, 54px); color: var(--brand-on-dark); background: var(--brand-navy); }
.header-template-bold .masthead-message { border-color: var(--brand-navy-soft); }
.header-template-bold .masthead-message strong, .header-template-bold .masthead-live { color: var(--brand-on-dark); }
.header-template-bold .masthead-message span { color: var(--brand-on-dark-muted); }
.header-template-bold .header-search { background: var(--brand-surface); border-color: transparent; }
.header-template-bold .main-nav { color: var(--brand-on-dark); background: var(--brand-primary); border: 0; }
.header-template-bold .nav-inner a { color: var(--brand-on-dark); }
.header-template-bold .nav-inner a:hover, .header-template-bold .nav-inner a.active { color: var(--brand-navy); background: var(--brand-secondary); }

.header-template-minimal .utility-bar, .header-template-minimal .masthead-message, .header-template-minimal .masthead-live { display: none; }
.header-template-minimal .masthead { min-height: 86px; grid-template-columns: 1fr minmax(250px, 360px) auto; }
.header-template-minimal .main-nav { border-block-start: 0; }
.header-template-minimal .nav-inner { justify-content: flex-start; }
.header-template-minimal .nav-inner a { min-height: 46px; }

.header-template-split .masthead { width: 100%; min-height: 132px; padding-inline: max(16px, calc((100% - var(--container)) / 2)); grid-template-columns: auto 1fr minmax(260px, 420px) auto; background: linear-gradient(90deg, var(--brand-canvas) 0 48%, var(--brand-surface) 48%); }
.header-template-split .masthead-message { justify-self: center; }
.header-template-split .masthead-live { display: none; }
.header-template-split .main-nav { color: var(--brand-on-dark); background: var(--brand-navy); border: 0; }
.header-template-split .nav-inner { justify-content: flex-end; }
.header-template-split .nav-inner a { color: var(--brand-on-dark); }
.header-template-split .nav-inner a:hover, .header-template-split .nav-inner a.active { color: var(--brand-navy); background: var(--brand-secondary); }

.header-template-framed { padding-block: 14px 0; }
.header-template-framed .utility-bar { width: min(calc(100% - 32px), var(--container)); margin-inline: auto; }
.header-template-framed .masthead { min-height: 108px; padding-inline: 22px; border-inline: 2px solid var(--brand-navy); }
.header-template-framed .main-nav { width: min(calc(100% - 32px), var(--container)); margin-inline: auto; color: var(--brand-on-dark); background: var(--brand-navy); border: 0; }
.header-template-framed .nav-inner a { color: var(--brand-on-dark); }
.header-template-framed .nav-inner a:hover, .header-template-framed .nav-inner a.active { color: var(--brand-navy); background: var(--brand-secondary); }

.header-template-nav-first { display: flex; flex-direction: column; }
.header-template-nav-first .utility-bar { order: 1; }
.header-template-nav-first .main-nav { order: 2; border-block-start: 0; border-block-end: 3px solid var(--brand-primary); }
.header-template-nav-first .masthead { order: 3; }
.header-template-nav-first .nav-inner { justify-content: space-between; }
.header-template-nav-first .nav-inner a::after { inset-block: 0 auto; }

.header-template-compact .utility-bar, .header-template-compact .masthead-message, .header-template-compact .masthead-live { display: none; }
.header-template-compact .masthead { min-height: 70px; grid-template-columns: 1fr minmax(240px, 340px) auto; }
.header-template-compact .brand-mark { width: 150px; height: 48px; flex-basis: 150px; }
.header-template-compact .header-search { min-height: 40px; }
.header-template-compact .nav-inner a { min-height: 40px; font-size: .78rem; }

/* Footer templates selected independently from the header. */
.footer-copy { max-width: 38ch; margin: 0; color: var(--brand-on-dark-muted); font-size: .72rem; }
.footer-template-centered .footer-tags { justify-content: center; }
.footer-template-centered .footer-bar { min-height: 150px; flex-direction: column; justify-content: center; gap: 12px; text-align: center; }
.footer-template-centered .footer-bar small { margin-inline-start: 0; }
.footer-template-centered .footer-copy { max-width: 55ch; }

.footer-template-light { color: var(--brand-muted); background: var(--brand-surface); border-block-start: 1px solid var(--brand-border); }
.footer-template-light .footer-tags { border-color: var(--brand-border); }
.footer-template-light .footer-tags strong, .footer-template-light .footer-nav a, .footer-template-light .footer-bar small, .footer-template-light .footer-copy { color: var(--brand-muted); }
.footer-template-light .footer-tags a { color: var(--brand-navy); border-color: var(--brand-border); }

.footer-template-accent { color: var(--brand-on-dark); background: var(--brand-primary); }
.footer-template-accent .footer-tags { border-color: color-mix(in srgb, var(--brand-surface) 28%, transparent); }
.footer-template-accent .footer-tags a, .footer-template-accent .footer-tags strong, .footer-template-accent .footer-nav a, .footer-template-accent .footer-bar small, .footer-template-accent .footer-copy { color: var(--brand-on-dark); }
.footer-template-accent .footer-tags a { border-color: color-mix(in srgb, var(--brand-surface) 42%, transparent); }

.footer-template-columns .footer-bar { min-height: 190px; display: grid; grid-template-columns: minmax(180px, .7fr) minmax(220px, 1fr) minmax(220px, 1fr) auto; align-items: center; gap: 34px; }
.footer-template-columns .footer-logo { align-self: center; }
.footer-template-columns .footer-nav { display: grid; grid-template-columns: repeat(2, max-content); gap: 10px 22px; }
.footer-template-columns .footer-bar small { margin: 0; align-self: end; padding-bottom: 28px; }

.footer-template-reversed .footer-bar { flex-direction: row-reverse; }
.footer-template-reversed .footer-bar small { margin-inline: 0 auto; }
.footer-template-reversed .footer-copy { text-align: center; }

.footer-template-signature .footer-bar { min-height: 190px; display: grid; grid-template-columns: minmax(210px, .8fr) minmax(260px, 1.25fr) 1fr; gap: 34px; }
.footer-template-signature .footer-logo .brand-mark { width: 210px; height: 68px; flex-basis: 210px; }
.footer-template-signature .footer-copy { font-size: .9rem; line-height: 1.9; }
.footer-template-signature .footer-bar small { grid-column: 3; margin: 0; }

.footer-template-minimal .footer-tags, .footer-template-minimal .footer-logo, .footer-template-minimal .footer-copy { display: none; }
.footer-template-minimal .footer-bar { justify-content: space-between; background: var(--brand-navy); }
.footer-template-minimal .footer-bar small { margin-inline-start: 0; }

@media (max-width: 980px) {
    /* Keep search and navigation available without flattening the eight header presets. */
    .site-header[class*="header-template-"] .masthead { width: min(calc(100% - 32px), var(--container)); min-height: 0; margin-block: 0; padding-block: 12px; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "brand toggle" "search search"; gap: 10px 14px; background: var(--brand-surface); border: 0; }
    .site-header[class*="header-template-"] .brand { grid-area: brand; }
    .site-header[class*="header-template-"] .header-search { grid-area: search; inline-size: 100%; min-inline-size: 0; }
    .site-header[class*="header-template-"] .menu-toggle { grid-area: toggle; }
    .site-header[class*="header-template-"] .masthead-message, .site-header[class*="header-template-"] .masthead-live { display: none; }

    .site-header.header-template-newsroom .masthead { border-block-end: 3px solid var(--brand-primary); }

    .site-header.header-template-centered .masthead { grid-template-columns: 46px minmax(0, 1fr) 46px; grid-template-areas: "toggle brand spacer" "search search search"; }
    .site-header.header-template-centered .masthead::after { grid-area: spacer; content: ""; }
    .site-header.header-template-centered .brand { justify-self: center; }

    .site-header.header-template-bold .masthead { width: min(calc(100% - 32px), var(--container)); padding-inline: 12px; color: var(--brand-on-dark); background: var(--brand-navy); }
    .site-header.header-template-bold .brand { padding: 5px 9px; background: var(--brand-surface); }
    .site-header.header-template-bold .header-search { background: var(--brand-surface); }
    .site-header.header-template-bold .menu-toggle { background: var(--brand-surface); }

    .site-header.header-template-nav-first .masthead { border-block-end: 1px solid var(--brand-border); }
    .header-template-nav-first .utility-bar { order: 1; }
    .header-template-nav-first .main-nav { order: 2; }
    .header-template-nav-first .masthead { order: 3; }

    .site-header.header-template-split .masthead { width: 100%; padding-inline: max(16px, calc((100% - var(--container)) / 2)); background: linear-gradient(90deg, var(--brand-canvas) 0 48%, var(--brand-surface) 48%); }
    .site-header.header-template-split .brand { padding-inline: 8px; background: var(--brand-surface); }

    .site-header.header-template-compact .masthead { min-height: 0; padding-block: 7px; gap: 7px 12px; }
    .site-header.header-template-compact .header-search { min-height: 40px; }

    .header-template-framed { padding-top: 8px; }
    .header-template-framed .utility-bar, .header-template-framed .main-nav { width: min(calc(100% - 32px), var(--container)); margin-inline: auto; }
    .site-header.header-template-framed .masthead { padding-inline: 14px; border-inline: 2px solid var(--brand-navy); }

    .site-header.header-template-minimal .masthead { min-height: 0; padding-block: 14px 10px; border-block-end: 1px solid var(--brand-border); }
    .footer-template-columns .footer-bar, .footer-template-signature .footer-bar { min-height: 170px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .footer-template-columns .footer-bar small, .footer-template-signature .footer-bar small { grid-column: auto; align-self: auto; padding: 0; }
}

@media (max-width: 640px) {
    .site-header[class*="header-template-"] .masthead { width: min(calc(100% - 24px), var(--container)); min-height: 78px; }
    .site-header.header-template-split .masthead { width: 100%; padding-inline: 16px; }
    .site-header.header-template-compact .masthead { min-height: 0; }
    .header-template-compact .brand-mark { width: 130px; height: 44px; flex-basis: 130px; }
    .footer-template-columns .footer-bar, .footer-template-signature .footer-bar { min-height: 0; display: flex; align-items: flex-start; flex-direction: column; gap: 14px; padding-block: 28px; }
    .footer-template-signature .footer-logo .brand-mark { width: 170px; height: 54px; flex-basis: 170px; }
    .footer-template-reversed .footer-bar { align-items: flex-start; flex-direction: column-reverse; padding-block: 22px; }
}

/* Menu templates selected from Branding. The mega menu stays usable with hover, focus, and touch. */
.nav-item { position: relative; display: flex; flex: 0 0 auto; align-items: stretch; }
.nav-item > a { min-height: 48px; display: grid; place-items: center; padding-inline: 18px; font-size: .94rem; font-weight: 700; transition: background-color .18s ease-out, color .18s ease-out, border-color .18s ease-out; }
.menu-template-classic .nav-item > a:hover, .menu-template-classic .nav-item > a.active { color: var(--brand-on-dark); background: var(--brand-primary); }

.menu-template-pills { color: var(--brand-navy); background: var(--brand-canvas); border-block: 1px solid var(--brand-border); }
.menu-template-pills .nav-inner { gap: 8px; padding-block: 10px; overflow-x: auto; }
.menu-template-pills .nav-inner > a, .menu-template-pills .nav-item > a { min-height: 40px; padding-inline: 17px; color: var(--brand-navy); border: 1px solid var(--brand-border); border-radius: 999px; }
.menu-template-pills .nav-inner > a:hover, .menu-template-pills .nav-inner > a.active, .menu-template-pills .nav-item > a:hover, .menu-template-pills .nav-item > a.active { color: var(--brand-on-dark); background: var(--brand-primary); border-color: var(--brand-primary); }

.menu-template-tabs { color: var(--brand-navy); background: var(--brand-surface); border-block-end: 1px solid var(--brand-border); }
.menu-template-tabs .nav-inner { justify-content: flex-start; }
.menu-template-tabs .nav-inner > a, .menu-template-tabs .nav-item > a { min-height: 56px; color: var(--brand-muted); border-block-end: 3px solid transparent; }
.menu-template-tabs .nav-inner > a:hover, .menu-template-tabs .nav-inner > a.active, .menu-template-tabs .nav-item > a:hover, .menu-template-tabs .nav-item > a.active { color: var(--brand-primary); background: var(--brand-canvas); border-color: var(--brand-primary); }

.menu-template-mega { color: var(--brand-on-dark); background: var(--brand-navy); border-block-end: 3px solid var(--brand-primary); }
.menu-template-mega .nav-inner { overflow: visible; }
.menu-template-mega .nav-inner > a, .menu-template-mega .nav-item > a { color: var(--brand-on-dark); }
.menu-template-mega .nav-inner > a:hover, .menu-template-mega .nav-inner > a.active, .menu-template-mega .nav-item > a:hover, .menu-template-mega .nav-item > a.active, .menu-template-mega .nav-item:focus-within > a { color: var(--brand-navy); background: var(--brand-secondary); }
.nav-mega { position: absolute; z-index: 20; inset-block-start: 100%; inset-inline-start: 0; display: none; width: min(760px, calc(100vw - 32px)); padding: 18px; color: var(--brand-navy); background: var(--brand-surface); border: 1px solid var(--brand-border); box-shadow: 0 18px 42px var(--brand-shadow); }
.nav-item:hover .nav-mega, .nav-item:focus-within .nav-mega, .nav-item.is-open .nav-mega { display: block; }
.nav-mega-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-bottom: 12px; border-bottom: 1px solid var(--brand-border); }
.nav-mega-heading strong { font-size: .9rem; }
.nav-mega-heading a { color: var(--brand-primary); font-size: .76rem; font-weight: 800; }
.nav-mega-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding-top: 14px; }
.nav-mega-card { display: grid; grid-template-columns: 78px minmax(0, 1fr); align-items: center; gap: 10px; min-height: 72px; padding: 7px; color: var(--brand-navy); background: var(--brand-canvas); border: 1px solid transparent; }
.nav-mega-card:hover, .nav-mega-card:focus-visible { color: var(--brand-navy); background: var(--brand-surface); border-color: var(--brand-primary); }
.nav-mega-card img { width: 78px; height: 58px; object-fit: cover; }
.nav-mega-card span { display: -webkit-box; overflow: hidden; color: inherit; font-size: .78rem; font-weight: 800; line-height: 1.55; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.nav-mega-empty { grid-column: 1 / -1; margin: 0; color: var(--brand-muted); font-size: .8rem; }

@media (max-width: 980px) {
    .nav-mega { width: min(600px, calc(100vw - 32px)); }
}

@media (max-width: 700px) {
    .menu-template-pills .nav-inner { padding-block: 8px; }
    .menu-template-pills .nav-inner > a, .menu-template-pills .nav-item > a { min-height: 42px; padding-inline: 12px; font-size: .8rem; }
    .menu-template-mega .nav-inner { overflow: visible; }
    .menu-template-mega .nav-item { display: block; }
    .menu-template-mega .nav-item > a { justify-content: start; min-height: 44px; }
    .nav-mega { position: static; width: 100%; padding: 13px; border-width: 0 0 1px; box-shadow: none; }
    .nav-mega-grid { grid-template-columns: 1fr; }
    .nav-mega-card { grid-template-columns: 70px minmax(0, 1fr); }
    .nav-mega-card img { width: 70px; height: 52px; }
}

@media (prefers-reduced-motion: reduce) {
    .nav-item > a, .nav-mega-card { transition: none; }
}
