@font-face { font-family:Barlow; src:url('../fonts/barlow/Barlow-Regular.ttf') format('truetype'); font-style:normal; font-weight:400; font-display:swap; }
@font-face { font-family:Barlow; src:url('../fonts/barlow/Barlow-Medium.ttf') format('truetype'); font-style:normal; font-weight:500; font-display:swap; }
@font-face { font-family:Barlow; src:url('../fonts/barlow/Barlow-SemiBold.ttf') format('truetype'); font-style:normal; font-weight:600; font-display:swap; }
@font-face { font-family:Barlow; src:url('../fonts/barlow/Barlow-Bold.ttf') format('truetype'); font-style:normal; font-weight:700; font-display:swap; }
/* Shared palette and controls. */
:root {
    --accent: #8f1d32;
    --accent-hover: #701627;
    --red: var(--accent);
    --ink: #111;
    --paper: #fff;
    --content: 1280px;
    --admin-bar-height: 0px;
    --button-width: 204px;
    --button-height: 44px;
    --bar-font-size:20px;
    --strip-height:76px;
}
* { box-sizing: border-box; }
body { margin: 0; color: var(--ink); background: #fff; font-family:Barlow,Arial, Helvetica, sans-serif; }
body.admin-bar { --admin-bar-height: 32px; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
img { max-width: 100%; display: block; }
.container { width: calc(100% - 12%); max-width: var(--content); margin-inline: auto; }
.button { display: inline-flex; align-items: center; justify-content: space-between; gap: 24px; text-transform: uppercase; line-height: 1.2; }
.button-primary { background:var(--accent); color:#fff; width:min(var(--button-width),100%); height:var(--button-height); padding:0 24px; min-width:0; flex-shrink:0; font-family:Barlow,Arial,Helvetica,sans-serif; font-size:14px; font-weight:400; line-height:1; border:0; border-radius:2px; justify-content:center; gap:0; white-space:nowrap; }
.button-primary:hover { background: var(--accent-hover); }
.button span { font-size: 20px; }
.button-outline { border: 1px solid currentColor; padding: 6px 14px; font-family: Impact, 'Arial Narrow', sans-serif; font-size: 12px; }
.skip-link { position: fixed; top: -100px; left: 16px; padding: 12px; background: #fff; z-index: 100; }
.skip-link:focus { top: 10px; }
:focus-visible { outline: 3px solid var(--accent); outline-offset: 4px; }
.page-content { padding-top: 140px; }
/* The panels form the last natural grid row, rather than covering the hero. */
body.home #site-content {
    min-height: calc(100vh - var(--admin-bar-height));
    min-height: calc(100svh - var(--admin-bar-height));
    display: grid;
    grid-template-rows: minmax(520px, 1fr) auto;
}
