/* Farmhouse design system: framework-free layout and components. */
:root {
	--fh-ink: #1f2428;
	--fh-muted: #5d666d;
	--fh-paper: #fffdf8;
	--fh-surface: #f7f2e8;
	--fh-blue: #405c72;
	--fh-blue-dark: #203d53;
	--fh-rust: #9f604b;
	--fh-rust-dark: #6f3828;
	--fh-gold: #b19c5f;
	--fh-green: #5f7f67;
	--fh-danger: #9b3d35;
	--fh-line: rgba(31, 36, 40, 0.2);
	--fh-focus: #f2c94c;
	--fh-radius-sm: 0.3rem;
	--fh-radius: 0.5rem;
	--fh-radius-lg: 0.75rem;
	--fh-shadow: 0 12px 32px rgba(4, 26, 42, 0.16);
	--fh-space-1: 0.25rem;
	--fh-space-2: 0.5rem;
	--fh-space-3: 1rem;
	--fh-space-4: 1.5rem;
	--fh-space-5: 3rem;
	--fh-content: 1140px;
}

*, *::before, *::after { box-sizing: border-box; }
html { font-size: 16px; overflow-x: clip; scroll-behavior: smooth; }
body { display: flex; flex-direction: column; margin: 0; min-height: 100vh; overflow-x: clip; }
body > main { flex: 1 0 auto; }
img, svg { max-width: 100%; }
button, input, select, textarea { font: inherit; }
:focus-visible { outline: 3px solid var(--fh-focus); outline-offset: 2px; }

/* Layout */
.container {
	margin-inline: auto;
	padding-inline: 15px;
	width: 100%;
}
.row {
	display: flex;
	flex-wrap: wrap;
	margin-inline: -15px;
}
.row > [class*="col-"] {
	min-width: 0;
	padding-inline: 15px;
	position: relative;
	width: 100%;
}
.col- { flex: 1 1 0; max-width: 100%; }
.col-1 { flex: 0 0 8.333333%; max-width: 8.333333%; }
.col-2 { flex: 0 0 16.666667%; max-width: 16.666667%; }
.col-3 { flex: 0 0 25%; max-width: 25%; }
.col-4 { flex: 0 0 33.333333%; max-width: 33.333333%; }
.col-5 { flex: 0 0 41.666667%; max-width: 41.666667%; }
.col-6 { flex: 0 0 50%; max-width: 50%; }
.col-7 { flex: 0 0 58.333333%; max-width: 58.333333%; }
.col-8 { flex: 0 0 66.666667%; max-width: 66.666667%; }
.col-9 { flex: 0 0 75%; max-width: 75%; }
.col-10 { flex: 0 0 83.333333%; max-width: 83.333333%; }
.col-11 { flex: 0 0 91.666667%; max-width: 91.666667%; }
.col-12 { flex: 0 0 100%; max-width: 100%; }

/* Legacy pages are mobile-first. Their former URL-selected 991px layout is
   the base; the original column layout returns at the large breakpoint. */
body:not(.home-page):not(.category-page) .legacy-main .row > [class*="col-"] {
	flex-basis: 100%;
	max-width: 100%;
}
body:not(.home-page):not(.category-page) .legacy-main .row > .col-1:empty,
body:not(.home-page):not(.category-page) .legacy-main .row > .col-2:empty,
body:not(.home-page):not(.category-page) .legacy-main .row > .col-3:empty {
	display: none;
}
body:not(.home-page):not(.category-page) .legacy-main input,
body:not(.home-page):not(.category-page) .legacy-main select,
body:not(.home-page):not(.category-page) .legacy-main textarea {
	max-width: 100%;
}

@media (min-width: 992px) {
	body:not(.home-page):not(.category-page) .legacy-main .row > .col-1 { flex: 0 0 8.333333%; max-width: 8.333333%; }
	body:not(.home-page):not(.category-page) .legacy-main .row > .col-2 { flex: 0 0 16.666667%; max-width: 16.666667%; }
	body:not(.home-page):not(.category-page) .legacy-main .row > .col-3 { flex: 0 0 25%; max-width: 25%; }
	body:not(.home-page):not(.category-page) .legacy-main .row > .col-4 { flex: 0 0 33.333333%; max-width: 33.333333%; }
	body:not(.home-page):not(.category-page) .legacy-main .row > .col-5 { flex: 0 0 41.666667%; max-width: 41.666667%; }
	body:not(.home-page):not(.category-page) .legacy-main .row > .col-6 { flex: 0 0 50%; max-width: 50%; }
	body:not(.home-page):not(.category-page) .legacy-main .row > .col-7 { flex: 0 0 58.333333%; max-width: 58.333333%; }
	body:not(.home-page):not(.category-page) .legacy-main .row > .col-8 { flex: 0 0 66.666667%; max-width: 66.666667%; }
	body:not(.home-page):not(.category-page) .legacy-main .row > .col-9 { flex: 0 0 75%; max-width: 75%; }
	body:not(.home-page):not(.category-page) .legacy-main .row > .col-10 { flex: 0 0 83.333333%; max-width: 83.333333%; }
	body:not(.home-page):not(.category-page) .legacy-main .row > .col-11 { flex: 0 0 91.666667%; max-width: 91.666667%; }
	body:not(.home-page):not(.category-page) .legacy-main .row > .col-12 { flex: 0 0 100%; max-width: 100%; }
	body:not(.home-page):not(.category-page) .legacy-main .row > [class*="col-"]:empty { display: block; }
}

.grid { display: grid; gap: var(--fh-space-3); }
.grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.cluster { align-items: center; display: flex; flex-wrap: wrap; gap: var(--fh-space-2); }
.stack { display: flex; flex-direction: column; gap: var(--fh-space-3); }
.split { align-items: center; display: flex; flex-wrap: wrap; gap: var(--fh-space-3); justify-content: space-between; }

/* Reusable surfaces */
.card {
	background: var(--fh-paper);
	border: 1px solid var(--fh-line);
	border-radius: var(--fh-radius);
	box-shadow: var(--fh-shadow);
	color: var(--fh-ink);
	padding: var(--fh-space-3);
}
.card__header { border-bottom: 1px solid var(--fh-line); margin-bottom: var(--fh-space-3); padding-bottom: var(--fh-space-2); }
.card__footer { border-top: 1px solid var(--fh-line); margin-top: var(--fh-space-3); padding-top: var(--fh-space-2); }

/* Buttons and links styled as actions */
.btn, button, input[type="button"], input[type="submit"], input[type="reset"] {
	align-items: center;
	background: var(--fh-blue-dark);
	border: 1px solid var(--fh-blue-dark);
	border-radius: var(--fh-radius);
	color: #fff;
	cursor: pointer;
	display: inline-flex;
	font-weight: 650;
	gap: var(--fh-space-2);
	justify-content: center;
	line-height: 1.2;
	min-height: 2.35rem;
	padding: 0.5rem 0.8rem;
	text-decoration: none;
}
.btn:hover, .btn:focus, button:hover, button:focus,
input[type="button"]:hover, input[type="submit"]:hover, input[type="reset"]:hover {
	background: var(--fh-green); border-color: var(--fh-green); color: #fff;
}
.btn--secondary { background: var(--fh-paper); border-color: var(--fh-blue-dark); color: var(--fh-blue-dark); }
.btn--danger { background: var(--fh-danger); border-color: var(--fh-danger); color: #fff; }
.btn--danger:hover, .btn--danger:focus { background: var(--fh-rust-dark); border-color: var(--fh-rust-dark); color: #fff; }
.btn--quiet { background: transparent; border-color: transparent; color: var(--fh-blue-dark); }
.btn--small { font-size: 0.875rem; min-height: 2rem; padding: 0.35rem 0.6rem; }
button:disabled, input:disabled { cursor: not-allowed; opacity: 0.58; }

/* Forms */
.form { display: grid; gap: var(--fh-space-3); }
.form-row { display: grid; gap: var(--fh-space-3); grid-template-columns: repeat(2, minmax(0, 1fr)); }
.field { display: grid; gap: var(--fh-space-1); }
label, legend { font-weight: 650; }
fieldset { border: 1px solid var(--fh-line); border-radius: var(--fh-radius); padding: var(--fh-space-3); }
input[type="text"], input[type="password"], input[type="email"], input[type="tel"],
input[type="number"], input[type="date"], input[type="file"], select, textarea {
	background: var(--fh-paper);
	border: 1px solid #747b80;
	border-radius: var(--fh-radius-sm);
	color: var(--fh-ink);
	line-height: 1.35;
	max-width: 100%;
	min-height: 2.35rem;
	padding: 0.5rem 0.6rem;
	width: 100%;
}
textarea { min-height: 7rem; resize: vertical; }
input[type="checkbox"], input[type="radio"] { accent-color: var(--fh-blue-dark); height: 1.1rem; width: 1.1rem; }
.field__help { color: var(--fh-muted); font-size: 0.875rem; }
.field__error { color: var(--fh-danger); font-size: 0.875rem; font-weight: 650; }
.validation-summary {
	background: #faecea;
	border: 1px solid rgba(155, 61, 53, 0.4);
	border-left: 4px solid var(--fh-danger);
	border-radius: var(--fh-radius);
	color: var(--fh-ink);
	margin-block: var(--fh-space-3);
	padding: 0.75rem 0.9rem;
}
.validation-summary:focus { outline: 3px solid var(--fh-focus); outline-offset: 2px; }
[aria-invalid="true"] { border-color: var(--fh-danger) !important; box-shadow: 0 0 0 1px var(--fh-danger); }
.form-actions { align-items: center; display: flex; flex-wrap: wrap; gap: var(--fh-space-2); margin-top: var(--fh-space-3); }
.form-section { border-top: 1px solid var(--fh-line); margin-top: var(--fh-space-4); padding-top: var(--fh-space-3); }

/* Shared merchant admin defaults, including legacy pages using the common shell. */
.page-shell--admin .card, .page-shell--admin .grid > *, .page-shell--admin .form-row > *,
.legacy-main--admin .row > * { min-width: 0; }
.page-shell--admin .page-heading h1 { overflow-wrap: anywhere; }
.page-shell--admin .form fieldset { margin: 0; min-width: 0; }
.page-shell--admin .form-row > .field { align-content: start; }
.page-shell--admin input:not([type]), .page-shell--admin input[type="search"],
.legacy-main--admin input:not([type]), .legacy-main--admin input[type="search"] {
    background: var(--fh-paper); border: 1px solid #747b80; border-radius: var(--fh-radius-sm);
    color: var(--fh-ink); min-height: 2.75rem; max-width: 100%; padding: .5rem .6rem; width: 100%;
}
.page-shell--admin .table-wrap, .legacy-main--admin .table-wrap { max-width: 100%; min-width: 0; overscroll-behavior-inline: contain; }
.page-shell--admin td, .page-shell--admin th { overflow-wrap: anywhere; }
.page-shell--admin .form-actions { row-gap: .5rem; }
.page-shell--admin .empty-state { background: var(--fh-surface); border: 1px solid var(--fh-line); border-radius: var(--fh-radius-sm); padding: 1rem; }
.page-shell--admin .notice--success { background: #eef6ef; border-color: var(--fh-green); }
.page-shell--admin .notice--info { background: #edf3f8; border-color: var(--fh-blue); }
.page-shell--admin .badge { display: inline-block; border: 1px solid var(--fh-line); border-radius: var(--fh-radius-sm); font-size: .875rem; line-height: 1.4; padding: .2rem .5rem; }
@media (max-width: 640px) {
    .page-shell--admin .split { align-items: stretch; }
    .page-shell--admin .form-actions .btn, .page-shell--admin .form-actions button { min-height: 44px; }
}

.shipping-profile__form { gap: var(--fh-space-4); }
.shipping-profile__variant-summary { background: rgba(255,255,255,0.55); border: 1px solid var(--fh-line); border-radius: var(--fh-radius-sm); display: grid; gap: 0; grid-template-columns: repeat(3,minmax(0,1fr)); margin: 0; overflow: hidden; padding: 0; }
.shipping-profile__variant-summary > div { min-width: 0; padding: var(--fh-space-2) var(--fh-space-3); }
.shipping-profile__variant-summary > div + div { border-left: 1px solid var(--fh-line); }
.shipping-profile__variant-summary dt { color: var(--fh-muted); font-size: 0.78rem; font-weight: 700; letter-spacing: 0.04em; margin-bottom: var(--fh-space-1); text-transform: uppercase; }
.shipping-profile__variant-summary dd { font-size: 1rem; font-weight: 700; margin: 0; overflow-wrap: anywhere; }
.shipping-profile__section-title { color: var(--fh-blue-dark); margin-bottom: calc(-1 * var(--fh-space-2)); }
.shipping-profile__intro { color: var(--fh-muted); margin: 0 0 var(--fh-space-2); max-width: 76ch; }
.shipping-profile__form fieldset { background: rgba(255,255,255,0.4); display: grid; gap: var(--fh-space-3); }
.shipping-profile__form legend { color: var(--fh-blue-dark); font-size: 1.15rem; padding-inline: var(--fh-space-1); }
.shipping-profile__form .field { align-content: start; }
.shipping-profile__checks { display: grid; gap: var(--fh-space-2); grid-template-columns: repeat(2,minmax(0,1fr)); }
.shipping-profile__checks label { background: var(--fh-paper); border: 1px solid var(--fh-line); border-radius: var(--fh-radius-sm); display: grid; gap: var(--fh-space-1); margin: 0; padding: var(--fh-space-2); }
.shipping-profile__checks label > span { align-items: center; display: flex; gap: var(--fh-space-2); }

/* Normalize legacy procedural forms without altering their field layout. */
.legacy-main form, .page-main form { margin-block: var(--fh-space-3); max-width: 100%; }
.legacy-main form p, .page-main form p { margin-block: var(--fh-space-2); }
.legacy-main form label, .page-main form label { display: inline-block; margin-bottom: var(--fh-space-1); }
.legacy-main form br + label, .page-main form br + label { margin-top: var(--fh-space-2); }
.legacy-main form input[type="submit"], .legacy-main form input[type="reset"],
.page-main form input[type="submit"], .page-main form input[type="reset"] { margin: var(--fh-space-1) var(--fh-space-1) var(--fh-space-1) 0; }
.legacy-main form input[type="checkbox"] + label, .legacy-main form input[type="radio"] + label,
.page-main form input[type="checkbox"] + label, .page-main form input[type="radio"] + label { display: inline; margin-left: var(--fh-space-1); }

/* Tables */
.table-wrap { border: 1px solid var(--fh-line); border-radius: var(--fh-radius); max-width: 100%; overflow-x: auto; }
.table-wrap:focus { outline: 3px solid var(--fh-focus); outline-offset: 2px; }
table { border-collapse: collapse; color: var(--fh-ink); width: 100%; }
caption { font-weight: 700; padding: var(--fh-space-2); text-align: left; }
th, td { border-bottom: 1px solid var(--fh-line); padding: 0.65rem 0.75rem; text-align: left; vertical-align: top; }
th { background: var(--fh-blue-dark); color: #fff; }
tbody tr:nth-child(even) { background: rgba(241, 227, 185, 0.28); }
tbody tr:hover { background: rgba(211, 218, 223, 0.48); }
.inventory-page tbody th { background: transparent; color: var(--fh-ink); }
.inventory-page tbody th a:not(.btn) { color: var(--fh-blue-dark); text-decoration-color: currentColor; text-underline-offset: 0.15em; }
.inventory-page tbody th a:not(.btn):hover, .inventory-page tbody th a:not(.btn):focus { color: var(--fh-gold); }
header a:not(.btn):hover, header a:not(.btn):focus,
th a:not(.btn):hover, th a:not(.btn):focus { color: var(--fh-gold); }

/* Notices */
.notice { background: #edf4f8; border-left: 4px solid var(--fh-blue); border-radius: var(--fh-radius); color: var(--fh-ink); padding: 0.75rem 0.9rem; }
.notice--success { background: #eef6ef; border-color: var(--fh-green); }
.notice--warning { background: #fff4d8; border-color: var(--fh-gold); }
.notice--danger { background: #faecea; border-color: var(--fh-danger); }
.messfontsz { background: #fff4d8; border-left: 4px solid var(--fh-gold); border-radius: var(--fh-radius); color: var(--fh-ink); margin-block: var(--fh-space-3); padding: 0.75rem 0.9rem; }
.messfontsz.is-error { background: #faecea; border-color: var(--fh-danger); }
.confirmation-message { background: #eef6ef; border-left: 4px solid var(--fh-green); border-radius: var(--fh-radius); padding: 0.75rem 0.9rem; }

/* Navigation */
.nav { align-items: center; display: flex; flex-wrap: wrap; gap: var(--fh-space-2); list-style: none; margin: 0; padding: 0; }
.nav a { border-radius: var(--fh-radius-sm); display: block; padding: 0.45rem 0.65rem; text-decoration: none; }
.nav a:hover, .nav a:focus, .nav a[aria-current="page"] { background: rgba(255,255,255,.14); }
.breadcrumb { display: flex; flex-wrap: wrap; gap: var(--fh-space-2); list-style: none; padding: 0; }
.breadcrumb li + li::before { color: var(--fh-muted); content: "/"; margin-right: var(--fh-space-2); }

/* Shared page shell */
.skip-link { background: var(--fh-paper); color: var(--fh-blue-dark); left: var(--fh-space-2); padding: var(--fh-space-2) var(--fh-space-3); position: fixed; top: -5rem; z-index: 1000; }
.skip-link:focus { top: var(--fh-space-2); }
.site-header { background: var(--fh-blue-dark); border-bottom: 4px solid var(--fh-gold); color: #fff; }
.site-header__inner { align-items: center; display: flex; flex-wrap: wrap; gap: var(--fh-space-3); justify-content: space-between; padding-block: var(--fh-space-3); }
.site-header__tools { align-items: center; display: flex; flex: 1 0 100%; flex-wrap: nowrap; gap: var(--fh-space-3); min-width: 0; }
.site-header__tools .currency-selector { flex: 0 1 auto; width: auto; }
.threshold-discount-card { background: #ffd84d; border: 1px solid #111; border-radius: var(--fh-radius); box-shadow: var(--fh-shadow-sm); color: #000; flex: 1 1 auto; font-size: .9rem; font-weight: 700; min-width: 0; overflow-wrap: anywhere; padding: .55rem .75rem; text-align: center; white-space: normal; }
.site-brand { align-items: center; color: #fff; display: inline-flex; flex-flow: row nowrap; gap: var(--fh-space-3); line-height: 1.15; max-width: 32rem; text-decoration: none; }
.site-brand:hover, .site-brand:focus { color: #fff; text-decoration: none; }
.site-brand__logo { display: block; flex: 0 0 4rem; height: 4rem; object-fit: contain; width: 4rem; }
.site-brand__text { display: flex; flex: 0 1 auto; flex-direction: column; min-width: 0; }
.site-brand__name { font-size: 1.35rem; font-weight: 750; }
.site-brand__tagline { color: rgba(255,255,255,.82); font-size: .82rem; margin-top: var(--fh-space-1); }
.site-nav a { color: #fff; }
.admin-documentation { position: relative; }
.admin-documentation__dropdown > summary { cursor: pointer; border-radius: var(--fh-radius-sm); padding: .45rem .65rem; min-height: 44px; }
.admin-documentation__dropdown > summary:hover,
.admin-documentation__dropdown > summary:focus-visible,
.admin-documentation__dropdown[open] > summary { background: rgba(255,255,255,.14); }
.admin-documentation__dropdown > summary:focus-visible { outline: 2px solid var(--fh-gold); outline-offset: 2px; }
.admin-documentation__panel { position: absolute; right: 0; top: 100%; z-index: 100; width: min(20rem,calc(100vw - 2rem)); max-height: min(70vh,36rem); overflow-y: auto; background: var(--fh-paper); color: var(--fh-ink); border: 1px solid var(--fh-blue-dark); border-radius: var(--fh-radius-sm); box-shadow: var(--fh-shadow-sm); padding: .5rem; }
.admin-documentation__group { list-style: none; margin: 0; padding: .25rem 0; }
.admin-documentation__label { color: var(--fh-muted); font-size: .72rem; font-weight: 700; letter-spacing: .06em; line-height: 1.25; padding: .25rem .65rem; text-transform: uppercase; }
.admin-documentation__group + .admin-documentation__group,
.admin-documentation__all { border-top: 1px solid var(--fh-muted); }
.site-nav .admin-documentation__panel a { color: var(--fh-blue-dark); min-height: 44px; overflow-wrap: anywhere; }
.site-nav .admin-documentation__panel a:hover,
.site-nav .admin-documentation__panel a:focus-visible { background: rgba(32,61,80,.1); outline: 2px solid var(--fh-blue-dark); outline-offset: -2px; }
.site-nav .admin-documentation__all { font-weight: 700; }
@media (min-width: 993px) and (hover: hover) and (pointer: fine) {
    .site-nav .admin-documentation__panel a { min-height: 32px; padding-block: .25rem; line-height: 1.5; }
}
@media (max-width: 992px) {
    .site-nav--admin .admin-documentation { flex: 1 0 100%; grid-column: 1 / -1; }
    .admin-documentation__panel { position: static; width: 100%; box-sizing: border-box; }
}
.currency-selector { align-items: center; display: flex; flex: 1 0 100%; flex-wrap: nowrap; gap: var(--fh-space-2); justify-content: flex-start; width: 100%; }
.currency-selector label { color: #fff; font-size: .875rem; font-weight: 700; white-space: nowrap; width: auto; }
.currency-selector__help { color: #fff; font-size: .75rem; white-space: nowrap; width: auto; }
.currency-selector select { flex: 0 1 15rem; min-width: 10rem; width: auto; }
.currency-selector .btn { margin: 0; }
.display-price { display: inline-flex; flex-direction: column; line-height: 1.25; }
.display-price__usd { color: inherit; font-weight: 700; }
.display-price__approx { color: var(--fh-muted); display: block; font-size: .8em; font-weight: 500; margin-top: .2rem; }
.shop-price .display-price__approx { font-size: .55em; }
.currency-estimate-notice { background: var(--fh-surface-muted); border-left: 4px solid var(--fh-gold); padding: var(--fh-space-3); }
.payment-currency-disclosure { background: var(--fh-surface-muted); border: 1px solid var(--fh-border); border-left: 4px solid var(--fh-gold); margin-top: var(--fh-space-3); padding: var(--fh-space-3); }
.payment-currency-disclosure p { margin-block: 0 var(--fh-space-2); }
.payment-currency-disclosure p:last-child { margin-bottom: 0; }
.page-shell { background: var(--fh-paper); min-height: 100vh; }
.page-shell--public { background: var(--fh-public-container-color, var(--fh-paper)); }
.page-shell--admin { background: var(--fh-blue-dark); }
.page-shell--customer { background: var(--fh-rust); }
.home-page, .category-page { background: var(--fh-public-container-color, #b95153); }
.page-main { background: var(--fh-paper); color: var(--fh-ink); min-height: 65vh; padding-block: var(--fh-space-4); }
.home-page .home-main {
	background: transparent;
	max-width: none;
	min-height: 0;
	padding: 0;
}
.legacy-main {
	display: flex;
	flex-direction: column;
	min-height: 65vh;
}
.legacy-main > .pageheight { flex: 1 0 auto; }
.legacy-main--admin { background: var(--fh-blue-dark); padding-bottom: var(--fh-space-4); }
.legacy-main--customer { background: var(--fh-rust); padding-bottom: var(--fh-space-4); }
:is(.legacy-main--admin, .legacy-main--customer) > .container {
	background: var(--fh-paper);
	color: var(--fh-ink);
	min-height: 65vh;
	padding-block: var(--fh-space-4);
}
:is(.legacy-main--admin, .legacy-main--customer) > .container.color-secondary-2-0,
:is(.legacy-main--admin, .legacy-main--customer) > .container.displayinneed {
	background: var(--fh-paper);
}
:is(.legacy-main--admin, .legacy-main--customer) > .container > br:first-child { display: none; }
:is(.legacy-main--admin, .legacy-main--customer) > .container a:not(.btn):not(.button-link) { color: var(--fh-blue-dark); }
:is(.legacy-main--admin, .legacy-main--customer) > .container h1:first-of-type {
	border-bottom: 1px solid var(--fh-line);
	margin-top: 0;
	padding-bottom: var(--fh-space-2);
}
:is(.legacy-main--admin, .legacy-main--customer) .displayinneed { background-color: var(--fh-surface); }
:is(.legacy-main--admin, .legacy-main--customer) .row + .row { margin-top: var(--fh-space-2); }
:is(.legacy-main--admin, .legacy-main--customer) hr { border: 0; border-top: 1px solid var(--fh-line); margin-block: var(--fh-space-4); }
:is(.legacy-main--admin, .legacy-main--customer) form {
	background: var(--fh-paper);
	border-radius: var(--fh-radius);
	color: var(--fh-ink);
}
:is(.legacy-main--admin, .legacy-main--customer) img { height: auto; }
:is(.legacy-main--admin, .legacy-main--customer) table {
	background: var(--fh-paper);
	border: 1px solid var(--fh-line);
	border-radius: var(--fh-radius);
}
:is(.legacy-main--admin, .legacy-main--customer) .site-footer { margin-top: var(--fh-space-4); }
:is(.legacy-main--admin, .legacy-main--customer) .conffontszA {
	background: var(--fh-paper);
	border: 1px solid var(--fh-blue-dark);
	border-radius: var(--fh-radius);
	color: var(--fh-blue-dark) !important;
	display: inline-flex;
	font-weight: 650;
	margin: var(--fh-space-1);
	padding: .5rem .8rem;
	text-decoration: none;
}
:is(.legacy-main--admin, .legacy-main--customer) .conffontszA:hover,
:is(.legacy-main--admin, .legacy-main--customer) .conffontszA:focus {
	background: var(--fh-green);
	border-color: var(--fh-green);
	color: #fff !important;
}
.page-main a { color: var(--fh-blue-dark); }
.page-main a.btn { color: #fff; }
.page-main a.btn--secondary, .page-main a.btn--quiet { color: var(--fh-blue-dark); }
.page-heading { border-bottom: 1px solid var(--fh-line); margin-bottom: var(--fh-space-3); padding-bottom: var(--fh-space-2); }
.page-heading h1 { margin: 0; }
.page-heading__context { color: var(--fh-muted); font-size: .8rem; font-weight: 700; letter-spacing: .08em; margin: 0 0 var(--fh-space-1); text-transform: uppercase; }
.site-footer { background: var(--fh-blue-dark); border-top: 3px solid var(--fh-gold); color: #fff; left: 50%; max-width: none; position: relative; transform: translateX(-50%); width: 100vw; }
.site-footer__inner { align-items: start; display: grid; gap: clamp(1.5rem, 4vw, 4rem); grid-template-columns: minmax(12rem, 1fr) minmax(0, 2fr); padding-block: clamp(2rem, 5vw, 3.5rem); text-align: left; }
.site-footer__brand { display: grid; gap: .35rem; }
.site-footer__brand strong { font-size: 1.2rem; }
.site-footer__brand span { color: #d9e2e8; font-size: .9rem; }
.site-footer__nav { display: grid; gap: 1.5rem; grid-template-columns: repeat(3, minmax(0, 1fr)); left: -60px; position: relative; width: calc(100% + 60px); }
.site-footer__nav > div { align-content: start; display: grid; gap: .55rem; }
.site-footer__nav strong { color: #f3d58b; font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; }
.site-footer p { margin: 0; }
.site-footer a { color: #fff; overflow-wrap: anywhere; text-decoration-color: rgba(255,255,255,.5); text-underline-offset: .18em; }
.site-footer a:hover, .site-footer a:focus { color: #f3d58b; }
.site-footer__legal { border-top: 1px solid rgba(255,255,255,.18); color: #c8d3da; font-size: .82rem; padding-block: 1rem; text-align: center; }
.site-footer__legal p:first-child { color: #fff; }
.site-footer__legal p + p { margin-top: .3rem; }
.policy-content { max-width: 58rem; }
.policy-content h2 { margin-top: 1.75rem; }
.policy-content li + li { margin-top: .45rem; }
.policy-meta { color: var(--fh-muted); }
@media (max-width: 767px) {
	.site-footer__inner { grid-template-columns: minmax(0, 1fr); }
	.site-footer__nav { grid-template-columns: minmax(0, 1fr); left: 0; width: 100%; }
}
.content-section { margin-block: var(--fh-space-3); }
.action-list { display: grid; gap: var(--fh-space-2); list-style: none; margin: 0; padding: 0; }
.action-list a { background: var(--fh-surface); border: 1px solid var(--fh-line); border-radius: var(--fh-radius); display: block; font-weight: 650; padding: .7rem .8rem; text-decoration: none; }
.action-list a:hover, .action-list a:focus { background: #eef3ef; }
.action-list .action-danger { border-color: var(--fh-danger); color: var(--fh-danger); }
.initial-setup-list .initial-setup-step {
	align-items: center;
	background: var(--fh-surface);
	border: 1px solid var(--fh-line);
	border-radius: var(--fh-radius);
	display: flex;
	flex-wrap: nowrap;
}
.initial-setup-list .initial-setup-step > a {
	background: transparent;
	border: 0;
	flex: 1 1 auto;
	min-width: 0;
	padding-block: .05rem;
}
.initial-setup-list .initial-setup-step > a:hover,
.initial-setup-list .initial-setup-step > a:focus {
	background: #eef3ef;
}
.initial-setup-completion {
	flex: 0 0 auto;
	margin-left: auto;
	padding: .05rem .8rem;
}
.initial-setup-completion label {
	align-items: center;
	cursor: pointer;
	display: inline-flex;
	font-weight: 650;
	gap: .4rem;
	margin: 0;
	white-space: nowrap;
}
.action-danger:not(.btn) { color: var(--fh-danger) !important; font-weight: 700; }
.action-danger:not(.btn):hover, .action-danger:not(.btn):focus { background: #faecea !important; }
.btn.btn--danger,
button.btn--danger,
input.btn--danger {
	background: var(--fh-danger);
	border-color: var(--fh-danger);
	color: #fff !important;
}
.btn.btn--danger:hover,
.btn.btn--danger:focus,
button.btn--danger:hover,
button.btn--danger:focus,
input.btn--danger:hover,
input.btn--danger:focus {
	background: var(--fh-rust-dark);
	border-color: var(--fh-rust-dark);
	color: #fff !important;
}
.auth-card { margin-inline: auto; max-width: 34rem; }
.account-credentials input[type="email"],
.account-credentials input[type="password"],
.account-credentials input[type="email"]:focus,
.account-credentials input[type="password"]:focus { border-color: #000; }
.prose { margin-inline: auto; max-width: 52rem; }
.prose p { max-width: 75ch; }
.position-utility-page .page-main { max-width: 90rem; }
.position-item { align-items: center; display: grid; gap: .65rem; grid-template-columns: 3.5rem minmax(10rem,1fr); }
.position-item img { aspect-ratio: 1; background: var(--fh-surface); border-radius: var(--fh-radius-sm); height: 3.5rem; object-fit: cover; width: 3.5rem; }
.position-item span { display: grid; }
.position-item small, .position-table td small { color: var(--fh-muted); }
.position-input { min-width: 5rem; width: 7rem !important; }
.position-toggle { align-items: center; display: inline-flex !important; gap: var(--fh-space-2); }
.category-status { border-radius: 999px; font-size: .8rem; font-weight: 750; padding: .3rem .65rem; }
.category-status--active { background: #eef6ef; color: #31563a; }
.category-status--hidden { background: var(--fh-surface); color: var(--fh-muted); }

/* Product browser */
.shop-browser-page .page-main { max-width: 90rem; }
.shop-toolbar { align-items: start; display: grid; gap: var(--fh-space-3); grid-template-columns: minmax(0,1fr); }
.shop-toolbar p { color: var(--fh-muted); margin: .2rem 0 0; }
.shop-toolbar strong { font-size: 1.2rem; }
.shop-status { border-radius: 999px; display: inline-block; font-size: .75rem; font-weight: 700; margin-top: .55rem; padding: .3rem .55rem; }
.shop-status--pending { background: #fff4d8; border: 1px solid var(--fh-gold); color: #5a4510; }
.shop-eyebrow { color: var(--fh-muted); font-size: .75rem; font-weight: 750; letter-spacing: .08em; margin: 0 0 .3rem !important; text-transform: uppercase; }
.shop-order-form { margin: 0 !important; }
.shop-inline-controls { display: grid; gap: .5rem; grid-template-columns: minmax(0,1fr); }
.shop-toolbar__actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .65rem; }
.shop-layout { display: grid; gap: var(--fh-space-3); margin-block: var(--fh-space-3); }
.shop-category-picker { display: grid; gap: .5rem; padding: .25rem .25rem .9rem; }
.shop-category-picker select { min-width: 0; width: 100%; }
.shop-catalog { align-self: start; padding: .75rem; }
.shop-catalog__heading { align-items: center; display: flex; justify-content: space-between; padding: .25rem .25rem .65rem; }
.shop-catalog__heading h2 { font-size: 1.05rem; margin: 0; }
.shop-catalog__heading span { background: var(--fh-surface); border-radius: 999px; font-size: .8rem; font-weight: 700; padding: .2rem .5rem; }
.shop-catalog nav { display: grid; gap: .4rem; }
.shop-catalog-item { align-items: center; border: 1px solid transparent; border-radius: var(--fh-radius); color: var(--fh-ink) !important; display: grid; gap: .65rem; grid-template-columns: 3.25rem minmax(0,1fr); padding: .45rem; text-decoration: none; }
.shop-catalog-item:hover, .shop-catalog-item:focus { background: var(--fh-surface); }
.shop-catalog-item.is-current { background: #edf4f8; border-color: var(--fh-blue); box-shadow: inset 3px 0 var(--fh-blue); }
.shop-catalog-item img { aspect-ratio: 1; background: var(--fh-surface); border-radius: var(--fh-radius-sm); height: 3.25rem; object-fit: cover; width: 3.25rem; }
.shop-catalog-item span { display: grid; min-width: 0; }
.shop-catalog-item strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.shop-catalog-item small { color: var(--fh-muted); }
.shop-product { min-width: 0; }
.shop-pager { align-items: center; border-bottom: 1px solid var(--fh-line); display: grid; grid-template-columns: 1fr auto 1fr; margin: calc(-1 * var(--fh-space-3)) calc(-1 * var(--fh-space-3)) var(--fh-space-3); padding: .75rem var(--fh-space-3); text-align: center; }
.shop-pager > :last-child { justify-self: end; }
.shop-product__grid { display: grid; gap: clamp(1.25rem,4vw,3rem); }
.shop-gallery__stage { align-items: center; background: var(--fh-surface); border-radius: var(--fh-radius-lg); display: flex; justify-content: center; min-height: 18rem; overflow: hidden; }
.shop-gallery__stage > img { height: auto; max-height: 36rem; object-fit: contain; width: 100%; }
.shop-variants { display: grid; gap: .5rem; grid-template-columns: repeat(auto-fill,minmax(5rem,1fr)); margin-top: .75rem; }
.shop-variant { border: 2px solid transparent; border-radius: var(--fh-radius); color: var(--fh-ink) !important; display: grid; font-size: .78rem; gap: .25rem; padding: .25rem; text-align: center; text-decoration: none; }
.shop-variant:hover, .shop-variant:focus { background: var(--fh-surface); }
.shop-variant.is-current { border-color: var(--fh-blue); }
.shop-variant img { aspect-ratio: 4/3; border-radius: var(--fh-radius-sm); height: auto; object-fit: cover; width: 100%; }
.shop-product__info h2 { font-size: clamp(1.5rem,3vw,2.15rem); margin: 0 0 .75rem; }
.shop-description { color: #394148; line-height: 1.65; }
.shop-specs { border-block: 1px solid var(--fh-line); display: grid; gap: .75rem; grid-template-columns: repeat(3,minmax(0,1fr)); margin-block: 1rem; padding-block: .85rem; }
.shop-specs div { min-width: 0; }
.shop-specs dt { color: var(--fh-muted); font-size: .72rem; font-weight: 750; letter-spacing: .05em; text-transform: uppercase; }
.shop-specs dd { font-weight: 650; margin: .2rem 0 0; overflow-wrap: anywhere; }
.shop-specs--email { grid-template-columns: minmax(0, 1fr); gap: .2rem; }
.shop-specs--email dd + dt { margin-top: .75rem; }
.shop-price { color: var(--fh-blue-dark); font-size: 1.75rem; font-weight: 800; margin-block: 1rem; }
.shop-add-form { background: var(--fh-surface); border: 1px solid var(--fh-line); border-radius: var(--fh-radius-lg); display: grid; gap: .9rem; margin: 0 !important; padding: 1rem; }
.shop-add-form .field label { display: block; margin: 0; }
.shop-quantity { max-width: 8rem; }
.shop-optional { color: var(--fh-muted); font-size: .75rem; font-weight: 500; }
.shop-add-summary { align-items: center; border-top: 1px solid var(--fh-line); display: flex; justify-content: space-between; padding-top: .85rem; }
.shop-add-summary strong { font-size: 1.2rem; }
.shop-add-button { min-height: 3rem; width: 100%; }
.shop-empty { margin-block: var(--fh-space-3); text-align: center; }
.order-line { display: grid; gap: var(--fh-space-3); }
.order-line__image img { background: var(--fh-surface); border-radius: var(--fh-radius); height: auto; max-height: 16rem; object-fit: contain; width: 100%; }
.order-line__details h2 { margin-top: 0; }
.order-line__facts { display: grid; gap: .75rem; grid-template-columns: repeat(2,minmax(0,1fr)); }
.order-line__facts div, .order-summary dl div { display: flex; gap: .75rem; justify-content: space-between; }
.order-line__facts dt, .order-summary dt { color: var(--fh-muted); }
.order-line__facts dd, .order-summary dd { font-weight: 700; margin: 0; }
.order-summary { margin-left: auto; max-width: 38rem; }
.order-summary dl { display: grid; gap: .65rem; }
.order-summary__total { border-top: 1px solid var(--fh-line); font-size: 1.2rem; padding-top: .75rem; }
.checkout-shipping-summary { display: grid; gap: var(--fh-space-3); scroll-margin-top: var(--fh-space-4); }
.checkout-shipping-summary > .card { align-self: start; margin: 0; max-width: none; width: 100%; }
.order-select-page .form-actions > .btn { flex: 0 1 14rem; }
.payment-layout { display: grid; gap: var(--fh-space-3); margin-inline: auto; max-width: 64rem; }
.payment-form { margin-bottom: 0 !important; }
.payment-form input { font-variant-numeric: tabular-nums; }
.payment-submit { min-width: min(100%, 16rem); }
.payment-summary { align-self: start; }
.payment-summary dl { display: grid; gap: .65rem; }
.payment-summary dl div { display: flex; gap: .75rem; justify-content: space-between; }
.payment-summary dt { color: var(--fh-muted); }
.payment-summary dd { font-weight: 700; margin: 0; }
.payment-summary address { font-style: normal; line-height: 1.6; }

@media (min-width: 640px) {
	.shop-inline-controls { grid-template-columns: minmax(15rem,1fr) auto; }
}
@media (min-width: 768px) {
	.shop-toolbar { grid-template-columns: minmax(12rem,.7fr) minmax(24rem,1.3fr); }
	.shop-product__grid { grid-template-columns: minmax(0,1.05fr) minmax(18rem,.95fr); }
	.order-line { grid-template-columns: minmax(10rem,15rem) minmax(0,1fr); }
	.order-line__facts { grid-template-columns: repeat(4,minmax(0,1fr)); }
	.checkout-shipping-summary { grid-template-columns: minmax(0,1.15fr) minmax(18rem,.85fr); }
	.payment-layout { grid-template-columns: minmax(0,1.35fr) minmax(18rem,.65fr); }
}
@media (min-width: 992px) {
	.shop-layout { grid-template-columns: minmax(13rem,17rem) minmax(0,1fr); }
	.shop-catalog { max-height: calc(100vh - 2rem); overflow-y: auto; position: sticky; top: 1rem; }
}

/* Small compatibility set for spacing and alignment used by legacy templates. */
.text-left { text-align: left !important; }
.text-center { text-align: center !important; }
.text-white { color: #fff !important; }
.p-3 { padding: var(--fh-space-3) !important; }
.pt-1 { padding-top: var(--fh-space-1) !important; } .pt-2 { padding-top: var(--fh-space-2) !important; }
.pt-3 { padding-top: var(--fh-space-3) !important; } .pt-4 { padding-top: var(--fh-space-4) !important; } .pt-5 { padding-top: var(--fh-space-5) !important; }
.pb-1 { padding-bottom: var(--fh-space-1) !important; } .pb-2 { padding-bottom: var(--fh-space-2) !important; }
.pb-3 { padding-bottom: var(--fh-space-3) !important; } .pb-4 { padding-bottom: var(--fh-space-4) !important; } .pb-5 { padding-bottom: var(--fh-space-5) !important; }
.pl-1 { padding-left: var(--fh-space-1) !important; } .pl-3 { padding-left: var(--fh-space-3) !important; }
.pl-4 { padding-left: var(--fh-space-4) !important; } .pl-5 { padding-left: var(--fh-space-5) !important; }
.pr-1 { padding-right: var(--fh-space-1) !important; } .pr-3 { padding-right: var(--fh-space-3) !important; }
.pr-4 { padding-right: var(--fh-space-4) !important; } .pr-5 { padding-right: var(--fh-space-5) !important; }
.sr-only { clip: rect(0,0,0,0); clip-path: inset(50%); height: 1px; overflow: hidden; position: absolute; white-space: nowrap; width: 1px; }
.noPrint { display: initial; }

@media (min-width: 576px) { .container { max-width: 540px; } }
@media (min-width: 768px) {
	.container { max-width: 720px; }
	.col-md-1 { flex: 0 0 8.333333%; max-width: 8.333333%; }
	.col-md-2 { flex: 0 0 16.666667%; max-width: 16.666667%; }
	.col-md-6 { flex: 0 0 50%; max-width: 50%; }
	.col-md-7 { flex: 0 0 58.333333%; max-width: 58.333333%; }
	.col-md-8 { flex: 0 0 66.666667%; max-width: 66.666667%; }
	.col-md-10 { flex: 0 0 83.333333%; max-width: 83.333333%; }
	.col-md-12 { flex: 0 0 100%; max-width: 100%; }
}
@media (min-width: 992px) { .container { max-width: 960px; } }
@media (min-width: 1200px) { .container { max-width: var(--fh-content); } }
@media (min-width: 768px) and (max-width: 1199px) {
	.site-header__tools .currency-selector { flex-wrap: wrap; }
	.site-header__tools .currency-selector label { flex: 0 0 100%; }
}
@media (max-width: 767px) {
	.site-header__inner { align-items: flex-start; flex-direction: column; }
	.site-header__tools { align-items: stretch; flex: 0 0 auto; flex-wrap: wrap; margin-left: 0; width: 100%; }
	.site-header__tools .currency-selector { width: 100%; }
	.threshold-discount-card { flex: 0 0 auto; width: 100%; }
	.site-nav { width: 100%; }
	.site-nav .nav { align-items: stretch; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
	.site-nav--public .nav { grid-template-columns: repeat(3,minmax(0,1fr)); }
	.site-nav--public .nav a { padding-inline: .35rem; text-align: center; white-space: nowrap; }
	.currency-selector { align-items: center; flex-wrap: wrap; width: 100%; }
	.site-header__tools .currency-selector label,
	.site-header__tools .currency-selector__help { flex: 0 0 auto; width: auto; }
	.site-header__tools .currency-selector select { flex: 1 1 calc(100% - 5rem); min-width: 0; }
	.page-main { padding-inline: var(--fh-space-3); }
	.grid--2, .grid--3, .grid--4, .form-row, .shipping-profile__checks, .shipping-profile__variant-summary { grid-template-columns: 1fr; }
	.shipping-profile__variant-summary > div + div { border-left: 0; border-top: 1px solid var(--fh-line); }
	.row > [class*="col-md-"] { flex: 0 0 100%; max-width: 100%; }
	.table-wrap { border: 1px solid var(--fh-line); border-radius: var(--fh-radius); }
}

/* Admin pages render once and adapt without viewport-query redirects. */
@media (max-width: 992px) {
	.admin-responsive .legacy-main > .container {
		max-width: 100%;
		padding-inline: var(--fh-space-3);
	}

	.admin-responsive .row {
		margin-inline: 0;
	}

	.admin-responsive .row > [class*="col-"] {
		flex: 0 0 100%;
		max-width: 100%;
		padding-inline: 0;
	}

	.admin-responsive .row > [class*="col-"]:empty {
		display: none;
	}

	.admin-responsive form {
		width: 100%;
	}

	.admin-responsive form img {
		height: auto;
		max-height: 20rem;
		max-width: 100%;
		object-fit: contain;
		width: auto !important;
	}

	.admin-responsive input[type="text"],
	.admin-responsive input[type="password"],
	.admin-responsive input[type="email"],
	.admin-responsive input[type="number"],
	.admin-responsive input[type="file"],
	.admin-responsive select,
	.admin-responsive textarea {
		max-width: 100% !important;
		width: 100% !important;
	}

	.admin-responsive .form-actions,
	.admin-responsive form > .row:last-child {
		gap: var(--fh-space-2);
	}

	.admin-responsive .table-wrap {
		margin-inline: 0;
		width: 100%;
	}
}
@media print {
	.admin-list-controls,.admin-list-toolbar .cluster,.admin-list-pagination,
	header nav,footer nav,.btn { display: none !important; }
	.card { box-shadow: none !important; break-inside: avoid; }
	.table-wrap { overflow: visible !important; border: 0 !important; }
	.noPrint { display: none !important; }
	body { background: #fff !important; color: #000 !important; }
	.card { border: 1px solid #999; box-shadow: none; }
	.order-management-page .site-header,
	.order-management-page .page-heading,
	.order-management-page footer { display: none !important; }
	.order-management-page .page-main { max-width: none; padding: 0; }
	.order-management-page .table-wrap { overflow: visible; }

	/* Reports need the complete printable sheet, not the screen-width container. */
	.report-page {
		page: report;
		font-size: 9pt;
	}
	.report-page .site-header,
	.report-page .site-footer,
	.report-page .page-heading__context {
		display: none !important;
	}
	.report-page .page-main {
		max-width: none;
		min-height: 0;
		padding: 0;
		width: 100%;
	}
	.report-page .page-heading {
		margin-bottom: .15in;
		padding-bottom: .08in;
	}
	.report-page .page-heading h1 {
		font-size: 18pt;
	}
	.report-page .content-section {
		border: 0;
		break-inside: auto;
		margin: 0 0 .12in;
		padding: 0;
	}
	.report-page .content-section:first-of-type {
		display: none;
	}
	.report-page .admin-list-toolbar {
		display: block;
		margin-bottom: .08in;
	}
	.report-page .admin-list-toolbar p {
		margin: 0;
	}
	.report-page table {
		font-size: 7.5pt;
		table-layout: auto;
	}
	.report-page thead {
		display: table-header-group;
	}
	.report-page tr {
		break-inside: avoid;
		page-break-inside: avoid;
	}
	.report-page th,
	.report-page td {
		overflow-wrap: normal;
		padding: .05in .04in;
		word-break: normal;
	}
	.report-page th {
		background: #e8e8e8 !important;
		color: #000 !important;
	}
	.report-page td {
		white-space: nowrap;
	}
}

@page report {
	size: landscape;
	margin: .4in;
}

.credit-memo__references,
.credit-memo__totals {
	margin: 0;
	min-width: min(100%, 22rem);
}
.credit-memo__references div,
.credit-memo__totals div {
	display: flex;
	gap: 1rem;
	justify-content: space-between;
}
.credit-memo__references dd,
.credit-memo__totals dd {
	margin: 0;
	text-align: right;
}
.credit-memo__parties {
	display: grid;
	gap: var(--fh-space-4);
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin-block: var(--fh-space-4);
}
.credit-memo__totals {
	margin: var(--fh-space-4) 0 var(--fh-space-4) auto;
}

@media print {
	.credit-memo-page {
		page: credit-memo;
		font-size: 10pt;
	}
	.credit-memo-page .site-header,
	.credit-memo-page .site-footer,
	.credit-memo-page .page-heading,
	.credit-memo__actions {
		display: none !important;
	}
	.credit-memo-page .page-main {
		max-width: none;
		min-height: 0;
		padding: 0;
	}
	.credit-memo {
		border: 0;
		break-inside: auto;
		margin: 0;
		padding: 0;
	}
	.credit-memo thead {
		display: table-header-group;
	}
	.credit-memo tr {
		break-inside: avoid;
		page-break-inside: avoid;
	}
	.credit-memo th {
		background: #e8e8e8 !important;
		color: #000 !important;
	}
}

@page credit-memo {
	size: portrait;
	margin: .55in;
}

.invoice-document__title {
	text-align: right;
}
.invoice-document__title h2 {
	font-size: clamp(2rem, 5vw, 3rem);
	margin: 0 0 var(--fh-space-2);
	text-transform: uppercase;
}
.invoice-document__parties {
	display: grid;
	gap: var(--fh-space-4);
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin-block: var(--fh-space-4);
}
.invoice-document__details,
.invoice-document__totals {
	margin: 0;
}
.invoice-document__details div,
.invoice-document__totals div {
	display: flex;
	gap: 1rem;
	justify-content: space-between;
}
.invoice-document__details dd,
.invoice-document__totals dd {
	margin: 0;
	text-align: right;
}
.invoice-document__totals {
	margin: var(--fh-space-4) 0 var(--fh-space-4) auto;
	max-width: 24rem;
}
.invoice-document__closing {
	color: var(--fh-muted);
}

@media (max-width: 600px) {
	.credit-memo__parties,
	.invoice-document__parties {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media print {
	.invoice-page {
		page: invoice;
		font-size: 10pt;
	}
	.invoice-page .site-header,
	.invoice-page .site-footer,
	.invoice-page .page-heading,
	.invoice-document__actions {
		display: none !important;
	}
	.invoice-page .page-main {
		max-width: none;
		min-height: 0;
		padding: 0;
	}
	.invoice-document {
		border: 0;
		break-inside: auto;
		margin: 0;
		padding: 0;
	}
	.invoice-document thead {
		display: table-header-group;
	}
	.invoice-document tr {
		break-inside: avoid;
		page-break-inside: avoid;
	}
	.invoice-document th {
		background: #e8e8e8 !important;
		color: #000 !important;
	}
}

@page invoice {
	size: portrait;
	margin: .55in;
}
.demo-site-banner{position:sticky;top:0;z-index:10000;display:flex;justify-content:center;gap:1rem;align-items:center;padding:.7rem 1rem;background:#7a1900;color:#fff;border-bottom:4px solid #ffd166;text-align:center;box-shadow:0 2px 8px rgba(0,0,0,.3)}
.demo-site-banner strong{text-transform:uppercase;letter-spacing:.08em}.demo-site-banner span{font-weight:600}
@media(max-width:640px){.demo-site-banner{display:block}.demo-site-banner span{display:block;margin-top:.25rem;font-size:.85rem}}
