:root {
    --blue: #00447a;
    --blue-dark: #00345d;
    --gold: #b49759;
    --gold-dark: #80662f;
    --gold-action: #80662f;
    --gold-action-hover: #684f1d;
    --gray-top: #606060;
    --ink: #252525;
    --muted: #737373;
    --line: #e3e3e3;
    --soft: #f6f6f6;
    --white: #fff;
    --success: #2f7d32;
    --danger: #a12929;
    --shadow: 0 12px 32px rgb(0 0 0 / 8%);
    --shell: min(1180px, calc(100% - 40px));
    --font-sans: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --font-heading: ui-rounded, "SF Pro Rounded", "Avenir Next", var(--font-sans);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: #fff; font-family: var(--font-sans); font-size: 15px; line-height: 1.65; }
img { display: block; max-width: 100%; }
a { color: var(--blue); text-decoration: none; }
a:hover { color: var(--gold-dark); }
h1, h2, h3, h4 { margin: 0 0 .6em; color: #202020; font-family: var(--font-heading); font-weight: 650; line-height: 1.15; }
h1 { font-size: clamp(2.2rem, 5vw, 4rem); }
h2 { font-size: clamp(1.7rem, 3vw, 2.5rem); }
h3 { font-size: 1.25rem; }
p { margin: 0 0 1em; }
button, input, select, textarea { color: inherit; font: inherit; }
input, select, textarea { width: 100%; border: 1px solid #d5d5d5; border-radius: 0; background: #fff; padding: .72rem .8rem; }
input:focus, select:focus, textarea:focus { border-color: var(--blue); outline: 2px solid rgb(0 68 122 / 14%); outline-offset: 0; }
button { cursor: pointer; }
label { display: block; color: #3d3d3d; font-size: .9rem; font-weight: 600; }
label input, label select, label textarea { margin-top: .35rem; font-weight: 400; }
abbr { color: var(--danger); text-decoration: none; }
.section-shell { width: var(--shell); margin-inline: auto; }
.button { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; border: 1px solid transparent; padding: .7rem 1.3rem; font-family: var(--font-sans); font-size: .78rem; font-weight: 700; letter-spacing: .055em; line-height: 1.2; text-transform: uppercase; transition: .2s ease; }
.button:hover { transform: translateY(-1px); }
.button:focus-visible, .icon-button:focus-visible, .admin-menu-toggle:focus-visible, .admin-menu-close:focus-visible { outline: 3px solid #078bc5; outline-offset: 2px; }
.button-gold { border-color: var(--gold-action); color: #fff; background: var(--gold-action); }
.button-gold:hover { border-color: var(--gold-action-hover); color: #fff; background: var(--gold-action-hover); }
.button-blue { border-color: var(--blue); color: #fff; background: var(--blue); }
.button-blue:hover { border-color: var(--blue-dark); color: #fff; background: var(--blue-dark); }
.button-outline { border-color: #ccc; color: #333; background: #fff; }
.button-outline:hover { border-color: var(--blue); color: var(--blue); }
.button-block { width: 100%; }
.statutory-label { letter-spacing: normal; text-transform: none; }
.muted { color: var(--muted); font-size: .86rem; }
.error-text { color: var(--danger); }
.visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; clip-path: inset(50%) !important; }

.site-header { position: relative; z-index: 20; min-height: 70px; border-bottom: 1px solid rgb(255 255 255 / 12%); background: var(--blue); }
.home-page .site-header { position: absolute; top: 0; right: 0; left: 0; }
.header-inner { display: grid; width: min(1320px, calc(100% - 48px)); min-height: 70px; margin: auto; align-items: center; grid-template-columns: 220px 1fr auto; gap: 1.5rem; }
.brand { display: inline-flex; align-items: center; }
.brand img { width: 205px; max-height: 54px; object-fit: contain; object-position: left center; }
.primary-nav { display: flex; height: 100%; align-items: stretch; justify-content: center; gap: .65rem; }
.primary-nav a { position: relative; display: inline-flex; align-items: center; padding: 0 1.15rem; color: #fff; font-family: var(--font-heading); font-size: 1.02rem; font-weight: 700; letter-spacing: .02em; line-height: 1.15; text-transform: uppercase; transition: background-color .2s ease; }
.primary-nav a:hover, .primary-nav a.active { color: #fff; background: #00689a; }
.cart-link { position: relative; display: flex; min-width: 120px; align-items: center; justify-content: flex-end; gap: .5rem; color: #fff; font-size: .8rem; font-weight: 600; }
.cart-link:hover { color: #fff; }
.cart-link svg { overflow: visible; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.6; }
.cart-link strong { position: absolute; top: 10px; left: 15px; display: grid; width: 20px; height: 20px; place-items: center; border: 2px solid var(--blue); border-radius: 50%; color: #fff; background: #ef5757; font-size: .65rem; line-height: 1; }
.nav-toggle { display: none; width: 44px; height: 44px; border: 0; color: #fff; background: transparent; padding: 10px 8px; }
.nav-toggle > span[aria-hidden] { display: block; width: 26px; height: 2px; margin: 5px auto; background: currentColor; transition: transform .2s ease, opacity .2s ease; }
.nav-toggle[aria-expanded="true"] > span[aria-hidden]:nth-of-type(2) { transform: translateY(7px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] > span[aria-hidden]:nth-of-type(3) { opacity: 0; }
.nav-toggle[aria-expanded="true"] > span[aria-hidden]:nth-of-type(4) { transform: translateY(-7px) rotate(-45deg); }

.hero { position: relative; display: grid; min-height: 100svh; place-items: center; overflow: hidden; color: #fff; background: #273747 url('/media/original/2021/12/slider_start07.jpg') center/cover no-repeat; isolation: isolate; }
.hero-overlay { position: absolute; z-index: -1; inset: 0; background: linear-gradient(180deg, rgb(10 22 38 / 8%), transparent 32%, transparent 69%, rgb(7 15 27 / 14%)); }
.hero-content { position: relative; display: flex; width: min(900px, calc(100% - 36px)); align-items: center; flex-direction: column; text-align: center; transform: translateY(20px); }
.hero-kicker { order: 1; margin: 0 0 .38em; color: #fff; font-size: clamp(1.6rem, 2.7vw, 2.45rem); font-weight: 400; letter-spacing: .005em; line-height: 1.15; text-shadow: 0 2px 18px rgb(0 0 0 / 40%); }
.hero h1 { order: 2; margin: 0; color: #fff; font-family: var(--font-sans); font-size: clamp(3.8rem, 5.55vw, 5rem); font-weight: 600; letter-spacing: -.025em; line-height: 1.08; text-shadow: 0 3px 20px rgb(0 0 0 / 18%); }
.hero h1 span { display: block; padding: .08em .34em .13em; background: #003974; box-shadow: 0 12px 30px rgb(0 0 0 / 14%); }
.hero-logo { order: 3; width: min(320px, 74vw); max-height: 105px; margin: 1.55rem auto 0; object-fit: contain; }
.hero-scroll { position: absolute; right: 50%; bottom: 94px; display: grid; width: 56px; height: 56px; place-items: center; border: 2px solid rgb(255 255 255 / 88%); border-radius: 50%; color: #fff; transform: translateX(50%); transition: border-color .2s ease, background-color .2s ease, transform .2s ease; }
.hero-scroll:hover { border-color: #fff; color: #fff; background: rgb(0 57 116 / 72%); transform: translate(50%, 3px); }
.hero-scroll:focus-visible, .hero-mission:focus-visible { outline: 3px solid #fff; outline-offset: 4px; }
.hero-scroll span { width: 16px; height: 16px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-3px) rotate(45deg); }
.hero-mission { position: absolute; bottom: 16px; left: 50%; display: flex; min-width: min(480px, calc(100% - 30px)); padding: .38rem 1.7rem .48rem; align-items: center; flex-direction: column; color: #fff; background: rgb(10 12 17 / 58%); font-size: 1.3rem; font-weight: 600; line-height: 1.35; text-align: center; transform: translateX(-50%); transition: background-color .2s ease; }
.hero-mission strong { font-size: 1.12em; }
.hero-mission:hover { color: #fff; background: rgb(0 57 116 / 85%); }
@keyframes hero-reveal { from { opacity: 0; } to { opacity: 1; } }
@media (prefers-reduced-motion: no-preference) {
    .hero-kicker, .hero h1, .hero-logo, .hero-scroll, .hero-mission { animation: hero-reveal .7s ease-out both; }
    .hero h1 { animation-delay: .12s; }
    .hero-logo { animation-delay: .24s; }
    .hero-scroll { animation-delay: .42s; }
    .hero-mission { animation-delay: .52s; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
.eyebrow { margin: 0 0 .65rem; color: var(--gold-dark); font-size: .78rem; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; }
.eyebrow.dark { color: var(--gold-dark); }
.intro { position: relative; max-width: 900px; padding-block: 100px 96px; text-align: center; }
.intro::before { display: block; width: 62px; height: 3px; margin: 0 auto 1.55rem; content: ''; background: var(--gold); }
.intro h2 { margin-inline: auto; max-width: 820px; }
.intro p:last-child { color: #595959; font-size: 1.05rem; }
.featured-section { padding-block: 80px; background: var(--soft); }
.section-heading { display: flex; align-items: end; justify-content: space-between; margin-bottom: 2rem; gap: 1rem; }
.section-heading h2 { margin: 0; }
.section-heading > a { padding-bottom: .55rem; border-bottom: 1px solid var(--gold); color: var(--ink); font-size: .78rem; font-weight: 700; text-transform: uppercase; }
.product-carousel { display: grid; grid-auto-columns: minmax(215px, 1fr); grid-auto-flow: column; gap: 22px; overflow-x: auto; overscroll-behavior-inline: contain; padding-bottom: 1rem; scroll-snap-type: inline mandatory; }
.product-carousel .product-card { scroll-snap-align: start; }
.benefits { display: grid; padding-block: 80px; grid-template-columns: repeat(4, 1fr); }
.benefits article { padding: 1rem 2.1rem; border-right: 1px solid var(--line); text-align: center; }
.benefits article:last-child { border-right: 0; }
.benefits span { display: block; margin-bottom: .6rem; color: var(--gold-dark); font-family: Georgia, serif; font-size: 2.4rem; }
.benefits h3 { letter-spacing: .08em; text-transform: uppercase; }
.benefits h4 { margin-bottom: .65rem; color: var(--gold-dark); font-family: var(--font-sans); font-size: .78rem; font-weight: 700; text-transform: uppercase; }
.benefits p { color: var(--muted); font-size: .87rem; }

.page-top { padding-block: 58px; color: #fff; background: var(--gray-top); }
.page-top.compact { padding-block: 25px; }
.page-top h1 { margin: 0; color: #fff; font-size: 2.8rem; }
.page-top h1, .prose { overflow-wrap: anywhere; }
.page-top p { margin: 0 0 .55rem; color: #ddd; font-size: .78rem; text-transform: uppercase; }
.page-top.compact p { margin: 0; }
.page-top a { color: #fff; }
.shop-layout { display: grid; padding-block: 60px 90px; grid-template-columns: 245px 1fr; gap: 50px; }
.shop-sidebar, .shop-products { min-width: 0; }
.shop-filters > summary { display: none; }
.shop-sidebar h2 { margin: 2.1rem 0 .8rem; padding-bottom: .7rem; border-bottom: 1px solid var(--line); font-family: var(--font-sans); font-size: .82rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.shop-sidebar h2:first-of-type { margin-top: 2.1rem; }
.search-form > div { display: flex; }
.search-form input { min-width: 0; }
.search-form button { border: 0; color: #fff; background: var(--blue); font-size: 0; }
.search-form button::after { content: '⌕'; font-size: 1.2rem; }
.category-list { margin: 0; padding: 0; list-style: none; }
.category-list li { border-bottom: 1px solid #eee; }
.category-list a { display: flex; padding: .55rem 0; justify-content: space-between; color: #474747; font-size: .84rem; }
.category-list a { overflow-wrap: anywhere; gap: .5rem; }
.category-list li.active a, .category-list a:hover { color: var(--gold-dark); }
.category-list span { color: #666; }
.price-filter { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; }
.price-filter .button { grid-column: 1 / -1; }
.shop-toolbar { display: flex; min-height: 52px; align-items: center; justify-content: space-between; margin-bottom: 1.5rem; border-bottom: 1px solid var(--line); gap: 1rem; }
.shop-toolbar p { margin: 0; color: var(--muted); font-size: .83rem; }
.shop-toolbar form { display: flex; gap: .9rem; }
.shop-toolbar label { display: flex; align-items: center; color: var(--muted); gap: .4rem; font-size: .78rem; }
.shop-toolbar select { width: auto; margin: 0; border: 0; padding-inline: .3rem; }
.product-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px 20px; }
.product-card { min-width: 0; background: #fff; transition: transform .2s ease, box-shadow .2s ease; }
.product-card:hover { transform: translateY(-3px); box-shadow: var(--shadow); }
.product-image { display: block; overflow: hidden; aspect-ratio: 1 / 1; background: #f3f3f3; }
.product-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.product-card:hover .product-image img { transform: scale(1.025); }
.product-card-body { padding: 1rem .85rem 1.15rem; }
.product-card h3 { min-height: 2.6em; margin: 0 0 .7rem; font-family: var(--font-sans); font-size: .88rem; font-weight: 600; line-height: 1.35; }
.product-card h3 a { color: #252525; }
.product-card-bottom { display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.price { color: var(--gold-dark); font-weight: 700; }
.icon-button { display: grid; width: 34px; height: 34px; place-items: center; border: 1px solid var(--blue); border-radius: 50%; color: var(--blue); background: #fff; font-size: 1.2rem; line-height: 1; }
.icon-button:hover { color: #fff; background: var(--blue); }
.pagination { display: flex; margin-top: 3rem; flex-wrap: wrap; justify-content: center; gap: .35rem; }
.pagination a { display: grid; width: 38px; height: 38px; place-items: center; border: 1px solid var(--line); color: #555; }
.pagination a.current, .pagination a:hover { border-color: var(--blue); color: #fff; background: var(--blue); }

.product-detail { display: grid; padding-block: 65px; grid-template-columns: minmax(0, 1.15fr) minmax(340px, .85fr); gap: 65px; }
.gallery-main { overflow: hidden; aspect-ratio: 1 / 1; background: var(--soft); }
.gallery-main img { width: 100%; height: 100%; object-fit: contain; }
.gallery-thumbs { display: grid; margin-top: .75rem; grid-template-columns: repeat(5, 1fr); gap: .55rem; }
.gallery-thumbs button { overflow: hidden; padding: 0; border: 1px solid var(--line); aspect-ratio: 1; background: #fff; }
.gallery-thumbs button:hover { border-color: var(--gold); }
.gallery-thumbs img { width: 100%; height: 100%; object-fit: cover; }
.product-summary h1 { margin-bottom: .25em; font-size: clamp(2rem, 4vw, 3.4rem); }
.product-price { color: var(--gold-dark); font-size: 1.55rem; font-weight: 700; }
.short-description { margin-block: 1.5rem; color: #555; }
.stock { font-size: .85rem; font-weight: 700; }
.in-stock { color: var(--success); }
.out-of-stock { color: var(--danger); }
.add-form { display: flex; margin-block: 1.4rem; gap: .65rem; }
.add-form input { width: 74px; text-align: center; }
.product-meta { margin: .45rem 0; padding-top: .6rem; border-top: 1px solid var(--line); color: #666; font-size: .82rem; }
.product-tabs { padding-block: 10px 60px; }
.product-tabs > h2 { margin-top: 2rem; padding-bottom: .65rem; border-bottom: 1px solid var(--line); font-size: 1.45rem; }
.prose { max-width: 850px; }
.prose a { text-decoration: underline; }
.prose table, .attributes { width: 100%; border-collapse: collapse; }
.prose td, .prose th, .attributes td, .attributes th { padding: .7rem; border: 1px solid var(--line); text-align: left; }
.attributes { max-width: 650px; }
.product-navigation { display: grid; padding-block: 25px; border-block: 1px solid var(--line); grid-template-columns: 1fr 1fr; }
.product-navigation > div:last-child { text-align: right; }
.product-navigation small { display: block; color: var(--muted); text-transform: uppercase; }
.product-navigation a { color: var(--ink); font-weight: 600; }
.related-products { padding-block: 60px 90px; }
.related-products .product-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }

.checkout-progress { display: flex; min-height: 64px; align-items: center; justify-content: center; border-bottom: 1px solid var(--line); gap: clamp(1rem, 5vw, 5rem); color: #767676; background: #fff; font-family: var(--font-heading); font-size: 1.05rem; font-weight: 600; text-transform: uppercase; }
.checkout-progress span { position: relative; }
.checkout-progress span.current { color: var(--blue); }
.checkout-progress span.done { color: var(--gold-dark); }
.cart-page { padding-block: 60px 90px; }
.cart-form { margin-right: 365px; }
.table-scroll { width: 100%; overflow-x: auto; }
.cart-table, .order-review table, .confirmation-card table { width: 100%; border-collapse: collapse; }
.cart-table th, .cart-table td, .order-review th, .order-review td, .confirmation-card th, .confirmation-card td { padding: 1rem .75rem; border-bottom: 1px solid var(--line); text-align: left; }
.cart-table thead th { color: #666; font-size: .75rem; letter-spacing: .05em; text-transform: uppercase; }
.cart-table td:nth-child(n+2) { white-space: nowrap; }
.cart-product { display: flex; min-width: 260px; align-items: center; color: #333; font-weight: 600; gap: 1rem; }
.cart-product img { width: 74px; height: 74px; object-fit: cover; }
.cart-table input[type=number] { width: 72px; }
.remove-button { border: 0; color: #666; background: transparent; font-size: 1.5rem; }
.cart-actions { display: flex; margin-top: 1.2rem; justify-content: flex-end; gap: 1rem; }
.cart-totals { width: 325px; margin-top: -100px; margin-left: auto; padding: 1.5rem; border: 2px solid var(--blue); }
.cart-totals h2 { font-size: 1.5rem; }
.cart-totals > div { display: flex; padding: .75rem 0; justify-content: space-between; border-bottom: 1px solid var(--line); }
.grand-total { color: var(--blue); font-size: 1.05rem; }
.cart-totals .button { margin-top: 1.2rem; }
.empty-state { padding: 80px 30px; text-align: center; background: var(--soft); }

.checkout-form { padding-block: 60px 90px; }
.checkout-columns { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(360px, .85fr); gap: 65px; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.form-grid .wide { grid-column: 1 / -1; }
.checkbox-label { display: flex; align-items: flex-start; margin-block: 1.5rem; gap: .55rem; font-weight: 500; }
.checkbox-label input { width: auto; margin-top: .25rem; }
.wide-label { margin-top: 1.5rem; }
.pickup-notice { margin-block: 1.5rem; padding: 1.25rem; border-left: 4px solid var(--gold-dark); background: var(--soft); }
.pickup-notice h3 { margin-bottom: .35rem; font-size: 1.15rem; }
.pickup-notice p { margin: 0; }
.order-review { align-self: start; padding: 2rem; border: 2px solid var(--blue); background: #fff; }
.order-review table { margin-bottom: 1.5rem; font-size: .87rem; }
.order-review th:first-child { width: 65%; }
.order-review td:last-child, .order-review th:last-child { text-align: right; }
.payment-methods { margin: 0; padding: 0; border: 0; }
.payment-methods legend { margin-bottom: .6rem; font-family: var(--font-heading); font-size: 1.35rem; font-weight: 600; }
.payment-methods label { padding: .8rem 0; border-bottom: 1px solid var(--line); }
.payment-methods label > span { display: flex; align-items: center; gap: .45rem; }
.payment-methods input { width: auto; margin: 0; }
.payment-methods small { display: block; margin: .45rem 0 0 1.5rem; color: var(--muted); font-weight: 400; line-height: 1.5; }
.privacy-copy { margin-top: 1.5rem; color: var(--muted); font-size: .79rem; }
.withdrawal-precontract { margin-top: 1.5rem; padding: 1rem; border-left: 4px solid var(--blue); background: #eef6fb; }
.withdrawal-precontract h3 { margin-bottom: .35rem; font-family: var(--font-sans); font-size: .92rem; }
.withdrawal-precontract p { margin: 0; font-size: .8rem; }
.terms { font-size: .78rem; }
.validation-summary { margin-bottom: 2rem; padding: 1rem 1.25rem; border-left: 4px solid var(--danger); color: #651c1c; background: #fff1f1; }
.validation-summary ul { margin: .5rem 0 0; }
.validation-summary.compact { margin-bottom: .5rem; padding: .75rem 1rem; }
.validation-summary.compact ul { padding-left: 1.25rem; }
.field-hint { display: block; margin-top: .35rem; color: var(--muted); font-size: .78rem; font-weight: 400; }
.notice { position: relative; z-index: 10; width: var(--shell); margin: 1rem auto; padding: .85rem 1rem; border-left: 4px solid; box-shadow: 0 2px 8px rgb(0 0 0 / 7%); }
.notice-success { border-color: var(--success); color: #225d25; background: #eff8ef; }
.notice-error { border-color: var(--danger); color: #7a2020; background: #fff0f0; }
.order-confirmation { max-width: 850px; padding-block: 60px 90px; text-align: center; }
.success-mark { display: grid; width: 64px; height: 64px; margin: 0 auto 1rem; place-items: center; border-radius: 50%; color: #fff; background: var(--success); font-size: 2rem; }
.order-summary { display: grid; margin-block: 2.2rem; padding: 1.3rem; background: var(--soft); grid-template-columns: repeat(4, 1fr); }
.order-summary div { border-right: 1px solid var(--line); }
.order-summary div:last-child { border: 0; }
.order-summary dt { color: var(--muted); font-size: .72rem; text-transform: uppercase; }
.order-summary dd { margin: .25rem 0 0; font-weight: 700; }
.confirmation-card { margin-top: 1.5rem; padding: 1.6rem; border: 1px solid var(--line); text-align: left; }
.confirmation-card table td:last-child, .confirmation-card table th:last-child { text-align: right; }
.legal-content { min-height: 380px; padding-block: 60px 90px; }
.pro-bono-banner { position: relative; display: grid; min-height: 330px; margin-top: 60px; overflow: hidden; padding: clamp(2rem, 5vw, 4.2rem); align-items: center; border-radius: 3px; color: #fff; background: linear-gradient(125deg, #00345d 0%, #004f89 67%, #00689a 100%); box-shadow: 0 22px 65px rgb(0 52 93 / 20%); grid-template-columns: minmax(0, 1.2fr) minmax(250px, .8fr); isolation: isolate; }
.pro-bono-banner::before { position: absolute; z-index: -1; inset: 0; content: ''; background: radial-gradient(circle at 77% 28%, rgb(230 201 127 / 27%), transparent 34%), linear-gradient(100deg, transparent 60%, rgb(255 255 255 / 5%)); }
.pro-bono-banner-copy { position: relative; z-index: 1; max-width: 690px; }
.pro-bono-kicker { margin: 0 0 .8rem; color: #e6c97f; font-size: .77rem; font-weight: 800; letter-spacing: .19em; text-transform: uppercase; }
.pro-bono-banner h2 { margin-bottom: .35em; color: #fff; font-size: clamp(2.35rem, 5vw, 4.4rem); letter-spacing: -.025em; }
.pro-bono-banner-copy > p:not(.pro-bono-kicker) { max-width: 630px; margin-bottom: 1.7rem; color: #e8f1f6; font-size: clamp(1rem, 1.7vw, 1.17rem); line-height: 1.7; }
.pro-bono-button { border-color: #e6c97f; color: #082b48; background: #e6c97f; }
.pro-bono-button:hover { border-color: #fff; color: #082b48; background: #fff; }
.pro-bono-button span { margin-left: .55rem; font-size: 1rem; }
.pro-bono-banner-art { width: min(360px, 100%); margin-inline: auto; overflow: visible; }
.pro-bono-halo { fill: rgb(230 201 127 / 16%); stroke: rgb(230 201 127 / 35%); stroke-width: 2; }
.pro-bono-heart { fill: #e55252; filter: drop-shadow(0 18px 24px rgb(12 32 52 / 25%)); }
.pro-bono-child-head, .pro-bono-child { fill: #fff; }
.pro-bono-arms { fill: none; stroke: #fff; stroke-linecap: round; stroke-width: 14; }
.pro-bono-spark { fill: #e6c97f; }
.pro-bono-spark.small { opacity: .7; }
.pro-bono-hero { position: relative; overflow: hidden; color: #fff; background: linear-gradient(120deg, #00345d, #005f96); isolation: isolate; }
.pro-bono-hero::before, .pro-bono-hero::after { position: absolute; z-index: -1; border-radius: 50%; content: ''; }
.pro-bono-hero::before { top: -210px; right: -100px; width: 590px; height: 590px; border: 1px solid rgb(230 201 127 / 30%); box-shadow: inset 0 0 0 70px rgb(230 201 127 / 4%), inset 0 0 0 140px rgb(230 201 127 / 3%); }
.pro-bono-hero::after { bottom: -160px; left: -80px; width: 340px; height: 340px; background: rgb(255 255 255 / 4%); }
.pro-bono-hero-inner { display: grid; min-height: 650px; padding-block: clamp(5rem, 10vw, 8rem); align-items: center; grid-template-columns: minmax(0, 1.2fr) minmax(280px, .8fr); gap: clamp(2rem, 7vw, 7rem); }
.pro-bono-hero h1 { margin-bottom: .35em; color: #fff; font-size: clamp(4rem, 9vw, 7.8rem); letter-spacing: -.055em; line-height: .92; }
.pro-bono-lead { max-width: 720px; color: #e9f2f7; font-size: clamp(1.1rem, 2vw, 1.38rem); line-height: 1.72; }
.pro-bono-hero-heart { position: relative; display: grid; width: min(350px, 75vw); margin: auto; aspect-ratio: 1; place-items: center; border: 1px solid rgb(230 201 127 / 48%); border-radius: 50%; box-shadow: inset 0 0 0 30px rgb(230 201 127 / 6%), 0 30px 80px rgb(0 24 44 / 28%); }
.pro-bono-hero-heart::before, .pro-bono-hero-heart::after { position: absolute; border-radius: 50%; content: ''; }
.pro-bono-hero-heart::before { width: 77%; height: 77%; border: 1px solid rgb(255 255 255 / 24%); }
.pro-bono-hero-heart::after { width: 12px; height: 12px; border-radius: 50%; background: #e6c97f; box-shadow: 105px -62px 0 -2px #e6c97f, -112px 52px 0 -3px #e6c97f; }
.pro-bono-hero-heart span { color: #e55252; font-family: Georgia, serif; font-size: clamp(8rem, 19vw, 13rem); line-height: 1; filter: drop-shadow(0 20px 26px rgb(0 22 40 / 30%)); transform: translateY(-.035em); }
.pro-bono-story { display: grid; padding-block: clamp(5rem, 10vw, 9rem); grid-template-columns: 1fr 1fr; gap: clamp(3rem, 8vw, 8rem); }
.pro-bono-story article { position: relative; padding-top: 2.2rem; border-top: 3px solid var(--gold); }
.pro-bono-number { position: absolute; top: -1.05rem; right: 0; color: #e5e5e5; font-family: var(--font-heading); font-size: clamp(4rem, 8vw, 7rem); font-weight: 750; line-height: 1; }
.pro-bono-story h2 { position: relative; max-width: 500px; font-size: clamp(2rem, 4vw, 3.25rem); }
.pro-bono-story p { position: relative; max-width: 570px; color: #555; font-size: 1.08rem; }
.pro-bono-cta { padding-block: clamp(4rem, 8vw, 7rem); color: #fff; background: #172d3d; text-align: center; }
.pro-bono-cta h2 { margin-bottom: .7em; color: #fff; font-size: clamp(2.4rem, 5vw, 4.5rem); }
.pro-bono-cta-actions { display: flex; align-items: center; justify-content: center; gap: 1.6rem; }
.pro-bono-text-link { padding-block: .5rem; border-bottom: 1px solid rgb(255 255 255 / 45%); color: #fff; font-weight: 700; }
.pro-bono-text-link:hover { border-color: #e6c97f; color: #e6c97f; }
.withdrawal-page { max-width: 850px; padding-block: 60px 100px; }
.withdrawal-intro { margin-bottom: 2rem; font-size: 1.03rem; }
.withdrawal-form { padding: clamp(1.3rem, 4vw, 2.2rem); border: 1px solid var(--line); border-top: 4px solid var(--blue); background: #fff; box-shadow: var(--shadow); }
.withdrawal-fields { display: grid; gap: .45rem; }
.withdrawal-fields label:not(:first-child) { margin-top: .85rem; }
.withdrawal-fields input { min-width: 0; }
.field-error { margin: .25rem 0 0; color: var(--danger); font-size: .82rem; font-weight: 600; }
.withdrawal-declaration { margin-block: 2rem 1.5rem; padding: 1.25rem; border-left: 4px solid var(--gold-dark); background: var(--soft); }
.withdrawal-declaration h2 { font-size: 1.35rem; }
.withdrawal-declaration p:last-child { margin-bottom: 0; }
.withdrawal-confirm-button { width: 100%; min-height: 50px; font-size: .9rem; }
.withdrawal-alternatives { margin-top: 2rem; padding: 1.5rem; background: var(--soft); }
.withdrawal-alternatives h2 { font-size: 1.4rem; }
.withdrawal-alternatives p:last-child { margin-bottom: 0; }
.withdrawal-confirmation blockquote, .withdrawal-declaration-record { margin: 1rem 0 1.5rem; padding: 1rem 1.25rem; border-left: 4px solid var(--blue); background: var(--soft); font-size: 1rem; overflow-wrap: anywhere; }
.withdrawal-receipt-data { margin-top: 1.5rem; }
.not-found { margin-block: 70px; }
.error-code { margin: 0; color: var(--gold-dark); font-family: var(--font-heading); font-size: 6rem; line-height: 1; }

.site-footer { color: #ddd; background: #2e2e2e; }
.footer-inner { display: grid; width: var(--shell); margin: auto; padding-block: 55px; grid-template-columns: 2fr 1fr 1.2fr; gap: 4rem; }
.footer-inner h2 { margin-bottom: 1rem; color: #fff; font-family: var(--font-sans); font-size: .8rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.footer-inner a { color: #ddd; font-size: .84rem; }
.footer-links { display: flex; align-items: flex-start; flex-direction: column; gap: .55rem; }
.footer-links a { display: block; line-height: 1.4; }
.footer-logo { width: 165px; margin-bottom: 1rem; }
.footer-email { margin-bottom: 0; }
.footer-email-image { width: auto; height: .9rem; max-width: 100%; }
.inline-email-image { display: inline-block; width: auto; height: 1em; max-width: 100%; filter: brightness(0); opacity: .78; vertical-align: -.1em; }
.copyright { border-top: 1px solid #464646; color: #aaa; font-size: .8rem; }
.copyright-inner { display: flex; width: var(--shell); min-height: 54px; margin-inline: auto; padding-block: .8rem; align-items: center; justify-content: space-between; gap: 1.5rem; }
.footer-credit strong { color: #d9272d; }
.footer-credit a { color: #ccc; text-decoration: underline; text-underline-offset: 2px; }
.footer-credit a:hover { color: #fff; }
.footer-donation { color: #bbb; }
.footer-donation a { color: #ddd; }

/* Administration */
.admin-body { min-height: 100vh; background: #f2f4f6; }
.admin-sidebar { position: fixed; z-index: 40; inset: 0 auto 0 0; display: flex; width: 240px; overflow-y: auto; overscroll-behavior-y: contain; flex-direction: column; color: #fff; background: var(--blue-dark); }
.admin-brand { display: flex; min-height: 118px; align-items: flex-start; padding: 1.25rem; border-bottom: 1px solid rgb(255 255 255 / 13%); color: #fff; flex-direction: column; gap: .8rem; }
.admin-brand:hover { color: #fff; }
.admin-brand img { width: 168px; height: auto; object-fit: contain; }
.admin-brand span { font-size: .72rem; font-weight: 750; letter-spacing: .12em; line-height: 1; text-transform: uppercase; }
.admin-sidebar nav { padding-block: 1rem; }
.admin-sidebar nav a { display: block; padding: .7rem 1.25rem; color: #e6edf3; font-size: .85rem; }
.admin-sidebar nav a:hover { color: #fff; background: rgb(255 255 255 / 10%); }
.admin-sidebar > form { margin-top: auto; padding: 1.2rem; }
.admin-sidebar > form button { width: 100%; padding: .6rem; border: 1px solid rgb(255 255 255 / 35%); color: #fff; background: transparent; }
.admin-menu-close { display: none; margin: .75rem 1.25rem 0; border: 1px solid rgb(255 255 255 / 35%); color: #fff; background: transparent; padding: .55rem .7rem; }
.admin-main { min-height: 100vh; margin-left: 240px; }
.admin-topbar { display: flex; height: 72px; align-items: center; justify-content: space-between; padding-inline: 2rem; border-bottom: 1px solid #ddd; background: #fff; }
.admin-topbar h1 { margin: 0; font-size: 1.65rem; }
.admin-topbar > span { color: var(--muted); font-size: .85rem; }
.admin-menu-toggle { display: none; }
.admin-content { padding: 2rem; }
.stat-grid { display: grid; margin-bottom: 2rem; grid-template-columns: repeat(4, 1fr); gap: 1.25rem; }
.stat-grid article { display: flex; min-height: 150px; flex-direction: column; padding: 1.4rem; border-top: 3px solid var(--gold); background: #fff; box-shadow: 0 2px 7px rgb(0 0 0 / 4%); }
.stat-grid span { color: var(--muted); font-size: .8rem; text-transform: uppercase; }
.stat-grid strong { margin-block: .4rem; color: var(--blue); font-family: var(--font-heading); font-size: 2.6rem; }
.stat-grid a { margin-top: auto; font-size: .8rem; }
.admin-panel { margin-bottom: 1.4rem; padding: 1.5rem; border: 1px solid #e0e3e5; background: #fff; box-shadow: 0 1px 3px rgb(0 0 0 / 3%); }
.admin-panel h2 { font-size: 1.4rem; }
.panel-heading { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; }
.panel-heading > :last-child { margin-bottom: 0; }
.admin-table { width: 100%; border-collapse: collapse; }
.admin-table th, .admin-table td { padding: .8rem .7rem; border-bottom: 1px solid #e6e6e6; text-align: left; vertical-align: middle; }
.admin-table th { color: #686868; background: #fafafa; font-size: .73rem; letter-spacing: .03em; text-transform: uppercase; }
.admin-table tbody tr:hover { background: #fcfcfc; }
.admin-table tbody tr[data-row-href] { cursor: pointer; transition: background-color .15s ease, box-shadow .15s ease; }
.admin-table tbody tr[data-row-href]:hover { background: #f2f7fa; box-shadow: inset 3px 0 var(--blue); }
.admin-thumb { width: 54px; height: 54px; object-fit: cover; background: var(--soft); }
.admin-actions { display: flex; margin-bottom: 1.2rem; align-items: center; justify-content: space-between; gap: 1rem; }
.admin-search { display: flex; width: min(460px, 100%); }
.admin-edit-grid { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 1.4rem; }
.admin-edit-grid > * { min-width: 0; }
.admin-edit-side { min-width: 0; }
.stack-form { display: grid; gap: 1rem; }
.category-checkboxes { display: grid; max-height: 330px; overflow-y: auto; gap: .4rem; }
.category-checkboxes label { font-weight: 400; }
.category-checkboxes input { width: auto; margin: 0 .4rem 0 0; }
.admin-featured { width: 100%; margin-bottom: 1rem; aspect-ratio: 1; object-fit: contain; background: var(--soft); }
.admin-inventory-panel { width: min(320px, 100%); margin-left: auto; }
.admin-gallery-grid { display: grid; margin-bottom: 1rem; grid-template-columns: repeat(3, 1fr); gap: .65rem; }
.admin-gallery-grid label { font-size: .7rem; font-weight: 400; }
.admin-gallery-grid img { width: 100%; aspect-ratio: 1; object-fit: cover; background: var(--soft); }
.admin-gallery-grid span { display: flex; margin-top: .25rem; align-items: center; gap: .25rem; }
.admin-gallery-grid input { width: auto; margin: 0; }
.status { display: inline-block; padding: .22rem .55rem; border-radius: 99px; color: #555; background: #ececec; font-size: .7rem; font-weight: 700; white-space: nowrap; }
.status-processing { color: #075f83; background: #def2fa; }
.status-received { color: #715514; background: #fff1c9; }
.status-ready-pickup { color: #075f83; background: #d9f3ef; }
.status-completed { color: #28652b; background: #e3f3e4; }
.status-on-hold, .status-pending { color: #715514; background: #fff1c9; }
.status-cancelled, .status-failed, .status-refunded { color: #7a2020; background: #f9dddd; }
.address-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; }
.notes-list article { margin-bottom: .7rem; padding: .9rem; border-left: 3px solid var(--gold); background: var(--soft); }
.notes-list article p { margin-bottom: .35rem; }
.notes-list small { color: var(--muted); }
.notes-list article.customer-note { border-left-color: var(--blue); background: #eef7fb; box-shadow: inset 0 0 0 1px rgb(0 68 122 / 9%); }
.note-type { display: inline-block; margin-bottom: .55rem; padding: .2rem .5rem; border-radius: 99px; color: #fff; background: var(--blue); font-size: .67rem; letter-spacing: .06em; line-height: 1.25; text-transform: uppercase; }
.wysiwyg-field { display: grid; gap: .35rem; }
.wysiwyg-toolbar, .wysiwyg-editor { display: none; }
.wysiwyg.is-enhanced { overflow: hidden; border: 1px solid #d5d5d5; background: #fff; }
.wysiwyg.is-enhanced:focus-within { border-color: var(--blue); outline: 2px solid rgb(0 68 122 / 14%); }
.wysiwyg.is-enhanced .wysiwyg-toolbar { display: flex; min-height: 45px; padding: .35rem; align-items: center; flex-wrap: wrap; border-bottom: 1px solid #ddd; background: #f5f7f8; gap: .25rem; }
.wysiwyg-toolbar button { min-width: 34px; min-height: 32px; padding: .3rem .48rem; border: 1px solid #d4d9dc; color: #2f3b43; background: #fff; font-size: .76rem; line-height: 1; }
.wysiwyg-toolbar button:hover { border-color: var(--blue); color: var(--blue); background: #f4f9fc; }
.wysiwyg-toolbar button:focus-visible { outline: 2px solid var(--blue); outline-offset: 1px; }
.wysiwyg-toolbar-separator { width: 1px; height: 24px; margin-inline: .15rem; background: #d4d9dc; }
.wysiwyg.is-enhanced .wysiwyg-editor { display: block; min-height: 220px; overflow-y: auto; padding: .9rem 1rem; color: var(--ink); outline: 0; }
.wysiwyg.is-enhanced .wysiwyg-editor[aria-invalid="true"] { box-shadow: inset 0 0 0 2px var(--danger); }
.wysiwyg.is-enhanced textarea { display: none; }
.wysiwyg-editor:empty::before { color: #929292; content: attr(data-placeholder); pointer-events: none; }
.wysiwyg-editor p { margin: 0 0 .85em; }
.wysiwyg-editor h2 { margin-top: 1em; font-size: 1.4rem; }
.wysiwyg-editor h3 { margin-top: 1em; font-size: 1.15rem; }
.wysiwyg-editor ul, .wysiwyg-editor ol { padding-left: 1.5rem; }
.wysiwyg-compact .wysiwyg-editor { min-height: 120px; }
.wysiwyg-medium .wysiwyg-editor { min-height: 260px; }
.wysiwyg-large .wysiwyg-editor { min-height: 430px; }
.settings-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.4rem; }
.settings-grid > * { min-width: 0; }
.key-values { display: grid; grid-template-columns: 160px 1fr; }
.key-values dt, .key-values dd { margin: 0; padding: .45rem 0; border-bottom: 1px solid var(--line); }
.key-values dd { overflow-wrap: anywhere; }
.admin-panel code, .address-grid p, .notes-list p, .outbox-list li, .confirmation-card { overflow-wrap: anywhere; }
.withdrawal-admin-grid .outbox-list { margin: 0 0 1rem; padding-left: 1.2rem; }
.withdrawal-admin-grid .outbox-list li { margin-bottom: .7rem; }
.withdrawal-admin-grid .outbox-list input { width: auto; margin: 0 .35rem 0 0; }
.withdrawal-admin-grid .outbox-list .error-text { display: block; margin-top: .25rem; font-size: .78rem; }
.admin-login-body { display: grid; min-height: 100vh; place-items: center; padding: 1rem; background: linear-gradient(135deg, var(--blue-dark), var(--blue)); }
.admin-login-card { width: min(420px, 100%); min-width: 0; padding: clamp(1.4rem, 7vw, 2.4rem); background: #fff; box-shadow: 0 18px 60px rgb(0 0 0 / 30%); }
.admin-login-card > img { width: 190px; margin: 0 auto 1.5rem; }
.admin-login-card h1 { overflow-wrap: anywhere; font-size: clamp(1.7rem, 8.5vw, 2.2rem); text-align: center; }
.admin-login-card .notice { width: 100%; margin-inline: 0; }
.admin-login-card > .muted { margin: 1.4rem 0 0; text-align: center; }

@media (max-width: 1050px) {
    .header-inner { width: min(100% - 32px, 980px); grid-template-columns: 175px 1fr auto; gap: .8rem; }
    .brand img { width: 170px; }
    .primary-nav { gap: .25rem; }
    .primary-nav a { padding-inline: .68rem; font-size: .83rem; }
    .product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .related-products .product-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .cart-form { margin-right: 0; }
    .cart-totals { margin-top: 2rem; }
    .stat-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 800px) {
    :root { --shell: min(100% - 28px, 680px); }
    .site-header, .header-inner { min-height: 76px; }
    .header-inner { width: min(100% - 24px, 680px); grid-template-columns: 1fr auto auto; gap: .35rem; }
    .brand img { width: 168px; max-height: 58px; }
    .nav-toggle { display: block; }
    .primary-nav { position: absolute; top: 76px; right: 0; left: 0; display: none; padding: 1rem max(14px, calc((100% - 680px) / 2)); align-items: stretch; flex-direction: column; background: var(--blue-dark); }
    .primary-nav.open { display: flex; }
    .primary-nav a { padding: .55rem; font-size: .8rem; }
    .cart-label { display: none; }
    .cart-link { min-width: 40px; padding-inline: 5px; }
    .cart-link strong { top: -7px; left: 23px; border-color: var(--blue); }
    .hero { min-height: 100svh; }
    .hero-content { transform: translateY(-8%); }
    .hero-logo { order: 1; width: min(300px, 76vw); margin: 0 auto 1.65rem; }
    .hero-kicker { order: 2; margin-bottom: .45em; font-size: clamp(1.35rem, 6vw, 2rem); }
    .hero h1 { order: 3; font-size: clamp(3.1rem, 13vw, 4.25rem); }
    .hero-scroll { bottom: 96px; width: 50px; height: 50px; }
    .hero-mission { bottom: 12px; padding-inline: .8rem; font-size: clamp(.97rem, 4vw, 1.15rem); }
    .intro, .featured-section, .benefits { padding-block: 55px; }
    .benefits { grid-template-columns: 1fr 1fr; }
    .benefits article:nth-child(2) { border-right: 0; }
    .benefits article:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
    .shop-layout { grid-template-columns: 1fr; }
    .shop-filters > summary { display: block; min-height: 44px; padding: .65rem .8rem; border: 1px solid var(--line); color: var(--blue); background: var(--soft); font-weight: 700; cursor: pointer; }
    .shop-filter-content { padding-top: .5rem; }
    .shop-sidebar h2:first-of-type { margin-top: 1.25rem; }
    .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .product-detail { grid-template-columns: 1fr; gap: 35px; }
    .related-products .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .checkout-columns { grid-template-columns: 1fr; }
    .checkout-columns > section { min-width: 0; }
    .checkout-progress { padding: .8rem; align-items: flex-start; flex-direction: column; gap: .15rem; font-size: .86rem; }
    .pro-bono-banner { grid-template-columns: minmax(0, 1fr) 240px; }
    .pro-bono-hero-inner { min-height: auto; grid-template-columns: 1fr; text-align: center; }
    .pro-bono-lead { margin-inline: auto; }
    .pro-bono-hero-heart { width: min(290px, 64vw); }
    .order-summary { grid-template-columns: 1fr 1fr; gap: 1rem; }
    .order-summary div { border: 0; }
    .footer-inner { grid-template-columns: 1fr 1fr; gap: 2rem; }
    .footer-inner > div:first-child { grid-column: 1 / -1; }
    .admin-sidebar { visibility: hidden; pointer-events: none; transform: translateX(-100%); transition: transform .2s ease, visibility 0s linear .2s; }
    .admin-sidebar.open { visibility: visible; pointer-events: auto; transform: translateX(0); transition-delay: 0s; }
    .admin-menu-close { display: block; }
    .admin-main { margin-left: 0; }
    .admin-menu-toggle { display: block; }
    .admin-content { padding: 1rem; }
    .admin-edit-grid, .settings-grid { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
    .pro-bono-banner { grid-template-columns: 1fr; text-align: center; }
    .pro-bono-banner-copy { margin-inline: auto; }
    .pro-bono-banner-art { width: min(250px, 68vw); grid-row: 1; }
}

@media (max-width: 520px) {
    .hero { min-height: 100svh; background-position: 50% center; }
    .hero-content { transform: translateY(-12%); }
    .hero-logo { width: min(268px, 76vw); }
    .hero h1 { font-size: clamp(2.85rem, 14vw, 3.75rem); }
    .hero-mission { min-width: calc(100% - 24px); }
    .benefits { grid-template-columns: 1fr; }
    .benefits article { border-right: 0; border-bottom: 1px solid var(--line); }
    .shop-toolbar { align-items: flex-start; flex-direction: column; }
    .shop-toolbar form { width: 100%; flex-direction: column; }
    .product-grid { grid-template-columns: 1fr 1fr; gap: 16px 10px; }
    .product-card-body { padding-inline: .35rem; }
    .product-card h3 { font-size: .78rem; }
    .product-card .price { font-size: .78rem; }
    .related-products .product-grid { grid-template-columns: 1fr 1fr; }
    .form-grid { grid-template-columns: 1fr; }
    .form-grid .wide { grid-column: auto; }
    .order-review { padding: 1.2rem; }
    .order-review table { table-layout: fixed; }
    .order-review th, .order-review td { overflow-wrap: anywhere; }
    .cart-actions { align-items: stretch; flex-direction: column; }
    .cart-totals { width: 100%; }
    .pro-bono-banner { margin-top: 30px; padding: 2rem 1.35rem; }
    .pro-bono-banner-art { width: min(250px, 78vw); }
    .pro-bono-hero-inner { padding-block: 4.5rem; gap: 2rem; }
    .pro-bono-hero h1 { font-size: clamp(3.35rem, 17vw, 5rem); }
    .pro-bono-hero-heart { width: min(240px, 70vw); }
    .pro-bono-story { grid-template-columns: 1fr; gap: 4.5rem; }
    .pro-bono-cta-actions { flex-direction: column; gap: .8rem; }
    .footer-inner { grid-template-columns: 1fr; }
    .footer-inner > div:first-child { grid-column: auto; }
    .copyright-inner { min-height: 70px; align-items: center; flex-direction: column; justify-content: center; gap: .25rem; text-align: center; }
    .stat-grid { grid-template-columns: 1fr; }
    .admin-topbar { padding-inline: 1rem; }
    .admin-topbar h1 { font-size: 1.25rem; }
    .admin-topbar > span { display: none; }
    .admin-actions { align-items: stretch; flex-direction: column; }
    .admin-search { width: 100%; }
    .address-grid { grid-template-columns: 1fr; gap: 1rem; }
    .key-values { grid-template-columns: 1fr; }
    .key-values dt { padding-bottom: 0; border-bottom: 0; font-weight: 700; }
    .withdrawal-page { padding-block: 42px 90px; }
    .withdrawal-form { padding-inline: 1rem; }
}

@media (max-height: 560px) and (orientation: landscape) {
    .hero-content { transform: translateY(0); }
    .hero-kicker { margin-bottom: .25em; font-size: 1.25rem; }
    .hero h1 { font-size: 3.1rem; }
    .hero-logo { width: 220px; margin-top: .75rem; }
    .hero-scroll { bottom: 75px; width: 42px; height: 42px; }
    .hero-scroll span { width: 13px; height: 13px; }
    .hero-mission { bottom: 8px; width: min(560px, calc(100% - 24px)); min-width: 0; padding: .35rem 1.1rem; flex-direction: row; justify-content: center; gap: .35em; font-size: .95rem; }
    .hero-mission span, .hero-mission strong { white-space: nowrap; }
}

@media (max-height: 400px) and (orientation: landscape) {
    .hero-content { transform: translateY(8px); }
    .hero-scroll { display: none; }
}
