/* Fareway proxy voting, shareholder pages. Brand tokens from the Fareway mockups; fonts self-hosted; no external requests. */
@font-face{font-family:"Oswald";font-style:normal;font-weight:200 700;font-display:swap;src:url("/fonts/oswald-latin.woff2") format("woff2")}
@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:200 900;font-display:swap;src:url("/fonts/source-sans-3-latin.woff2") format("woff2")}

:root{
color-scheme:light;
--red:#c8102e;--red-hover:#a50d26;--red-press:#7e0a1d;--red-tint:#fbe7ea;
--ink:#1a1a1a;--ink-2:#3a3a3a;--ink-3:#595959;
--line:#d9d9d9;--line-warm:#e4ded4;--cream:#f7f1e8;--surface:#fff;--surface-2:#f6f6f6;
--yellow:#ffc629;--yellow-deep:#e5a800;
--green:#1d4a1f;--green-line:#2f6131;--green-tint:#e6f0e5;--blue:#0e4c8a;--blue-tint:#e8f0f8;--amber-line:#8a6400;--amber-tint:#fff4cc;--tab:#ededed;
--display:"Oswald",Impact,"Helvetica Neue Condensed","Arial Narrow",sans-serif;
--body:"Source Sans 3","Helvetica Neue",Helvetica,Arial,sans-serif;
--mono:ui-monospace,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;
--radius-sm:4px;--radius:6px;--measure:40rem;
--focus-ring:0 0 0 3px var(--yellow);
}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;background:var(--surface);color:var(--ink);font-family:var(--body);font-size:1.1875rem;line-height:1.6;font-kerning:normal;-webkit-font-smoothing:antialiased}
p,h1,h2,h3,dl,dd,fieldset{margin:0}
h1,h2,legend{text-wrap:balance}
p,dd,li{text-wrap:pretty}
a{color:var(--red);text-decoration:none}
a:hover{color:var(--red-hover);text-decoration:underline}
:focus-visible{outline:3px solid var(--ink);outline-offset:3px;box-shadow:var(--focus-ring)}
/* Headings and the main region take focus from script to guide screen readers; they show no ring. */
.main:focus-visible,.panel-heading:focus-visible,.section-heading:focus-visible{outline:none;box-shadow:none}
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.print-only{display:none}

/* Display type: Oswald, uppercase, tracked */
.display{font-family:var(--display);font-weight:600;text-transform:uppercase;letter-spacing:.12em}

/* Page frame. Container queries let the layout respond to the column, not the device */
.page{container:page/inline-size}
.frame{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:var(--surface)}
.skip-link{position:absolute;left:1rem;top:-10rem;z-index:20;background:var(--ink);color:#fff;padding:.75rem 1rem;border-radius:var(--radius);font-weight:600}
.skip-link:focus{top:.75rem;color:#fff;text-decoration:none}
.main{flex:1;outline:none}

/* Masthead: official wordmark, then the service label */
.masthead{border-bottom:1px solid var(--line-warm);background:var(--surface)}
.masthead-inner{max-width:52rem;margin:0 auto;padding:1rem;display:flex;flex-direction:column;align-items:flex-start;gap:.5rem}
.logo{display:block;height:2.125rem;width:auto}
.masthead-label{font-weight:700;font-size:1rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);line-height:1.3}

/* Sheet */
.sheet{max-width:52rem;margin:0 auto;padding:2rem 1rem 3rem}
.panel{display:flex;flex-direction:column}
.panel>*+*{margin-top:1rem}

/* Step label: name, rule, count */
.step{display:flex;align-items:center;gap:.75rem;font-weight:700;font-size:1rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);line-height:1.3}
.step::after{content:"";order:2;flex:1;min-width:1.5rem;border-top:1px solid var(--line-warm)}
.step-name{order:1}
.step-count{order:3;font-variant-numeric:tabular-nums;color:var(--red)}
.panel .step+.panel-heading{margin-top:1.25rem}

.panel-heading{font-family:var(--display);font-weight:600;font-size:2.25rem;line-height:1.15;letter-spacing:.005em;color:var(--ink);outline:none;overflow-wrap:anywhere}
.section-heading{font-family:var(--display);font-weight:600;font-size:1.75rem;line-height:1.2;letter-spacing:.005em;outline:none}
.subsection-heading{font-family:var(--display);font-weight:600;font-size:1.5rem;line-height:1.2}
.lede{max-width:var(--measure);color:var(--ink)}
.recipient-class{font-weight:700;color:var(--ink-2);margin-top:.375rem!important}

/* Forms */
.form{display:flex;flex-direction:column;gap:1.25rem;margin-top:1.75rem!important}
.field{display:flex;flex-direction:column;gap:.5rem}
.field-label{font-weight:700;font-size:1.1875rem;color:var(--ink)}
.input{width:100%;min-height:3.5rem;padding:.75rem 1rem;font:inherit;font-size:1.25rem;color:var(--ink);background:var(--surface);border:2px solid var(--ink-3);border-radius:var(--radius);box-shadow:inset 0 1px 2px rgba(0,0,0,.04);-webkit-appearance:none;appearance:none}
.input:hover{border-color:var(--ink)}
.input:focus-visible{border-color:var(--ink)}
.input--code{font-family:var(--mono);font-size:1.25rem;letter-spacing:.12em;max-width:22rem}
.input[aria-invalid="true"]{border-color:var(--red);border-width:2px;background:var(--red-tint)}
.input:disabled{background:var(--surface-2);color:var(--ink-3);border-color:var(--line);box-shadow:none;cursor:not-allowed}

/* Buttons: Oswald labels, square corners, primary red, secondary stroked */
.actions{display:flex;flex-direction:column;gap:.75rem}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:3.5rem;padding:.75rem 1.5rem;font-family:var(--body);font-weight:700;font-size:1.1875rem;line-height:1.2;text-align:center;text-decoration:none;border-radius:var(--radius);border:2px solid transparent;cursor:pointer;width:100%;transition:background-color .15s ease-out,color .15s ease-out,border-color .15s ease-out}
.btn--primary{background:var(--red);color:#fff;border-color:var(--red);box-shadow:0 1px 2px rgba(20,20,20,.12)}
.btn--primary:hover{background:var(--red-hover);border-color:var(--red-hover);color:#fff;text-decoration:none}
.btn--primary:active{background:var(--red-press);border-color:var(--red-press);box-shadow:none}
.btn--secondary{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn--secondary:hover{background:var(--ink);color:#fff;text-decoration:none}
.btn--small{min-height:3rem;padding:.5rem 1.125rem;font-size:1.0625rem}
.btn:disabled,.btn[aria-disabled="true"]{background:var(--surface-2);color:var(--ink-3);border-color:var(--line);box-shadow:none;cursor:not-allowed}

/* Status lines (aria-live). Set data-tone="error" | "info" */
.status{max-width:var(--measure);font-weight:600}
.status:empty{margin:0!important;min-height:0}
.status:not(:empty){display:flex;gap:.625rem;align-items:flex-start;padding:.75rem .875rem;border-radius:var(--radius);border:1px solid var(--line);background:var(--surface-2)}
.status:not(:empty)::before{content:"i";content:"i"/"";flex:none;width:1.375rem;height:1.375rem;margin-top:.0625rem;border-radius:50%;background:var(--ink);color:#fff;font:700 .875rem/1.375rem Georgia,serif;font-style:italic;text-align:center}
.status[data-tone="error"]{color:var(--red-press);border-color:var(--red);background:var(--red-tint)}
.status[data-tone="error"]::before{content:"!";content:"!"/"";background:var(--red);font-family:var(--body);font-style:normal}

/* Document row */
.doc-row{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.75rem 1rem;margin-top:1.75rem!important;padding:1rem 0;border-top:1px solid var(--line-warm);border-bottom:1px solid var(--line-warm)}
.doc-icon{width:2.25rem;height:2.75rem;color:var(--red)}
.doc-title{font-weight:600}
.doc-meta{font-size:1rem;color:var(--ink-3)}
.doc-action{grid-column:1/-1}

/* Ballot */
.ballot{margin-top:2.5rem!important;display:flex;flex-direction:column;gap:1rem}
.ballot:has(.preview-banner:not([hidden])){outline:2px dashed var(--yellow-deep);outline-offset:.75rem}
.preview-banner{position:sticky;top:0;z-index:5;background:var(--yellow);color:var(--ink);padding:.375rem 0;border-radius:var(--radius-sm);box-shadow:0 2px 0 var(--surface)}
.preview-banner::before,.preview-banner::after{content:"";display:block;height:.375rem;background:repeating-linear-gradient(-45deg,var(--ink) 0 .375rem,transparent .375rem .75rem);opacity:.3}
.preview-banner-text{padding:.5rem 1rem;text-align:center;font-weight:700;font-size:1.0625rem;letter-spacing:.06em;text-transform:uppercase;line-height:1.3}
.ballot-form{margin-top:.5rem!important;gap:2rem}
.ballot-intro{max-width:var(--measure);color:var(--ink-2)}
.proxy-preamble{display:flex;flex-direction:column;gap:.5rem;max-width:var(--measure);padding:1rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2)}
.proxy-title{font-weight:700;font-size:1rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}
.proxy-text{max-width:var(--measure);color:var(--ink-2)}
.proxy-appointment{margin-top:1.5rem!important}
.questions{display:flex;flex-direction:column;gap:2rem}

.notice{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.75rem;align-items:start;padding:1rem;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius)}
.notice-icon{width:1.5rem;height:1.5rem;color:var(--ink-2);margin-top:.0625rem}
.notice-text{max-width:var(--measure);font-weight:500}
.notice[data-tone="closed"]{border-color:var(--ink);border-width:1.5px}
.notice[data-tone="closed"] .notice-icon{color:var(--ink)}
.notice[data-tone="unavailable"]{border-color:var(--red);border-width:1.5px}
.notice[data-tone="unavailable"] .notice-icon{color:var(--red)}

.question{border:0;padding:0;min-width:0;display:flex;flex-direction:column;gap:.625rem}
.question+.question{padding-top:2rem;border-top:1px solid var(--line-warm)}
.question-legend{padding:0;margin-bottom:.25rem;font-weight:600;font-size:1.375rem;line-height:1.3;color:var(--ink);float:left;width:100%}
.question-legend+*{clear:both}
.question-num{font-weight:700;font-size:1rem;letter-spacing:.06em;text-transform:uppercase;color:var(--red);display:block;margin-bottom:.375rem}
.question-hint{max-width:var(--measure);color:var(--ink-2)}
.options{display:flex;flex-direction:column;gap:.75rem;margin-top:.25rem}
.option{display:grid;grid-template-columns:1.75rem minmax(0,1fr);align-items:center;gap:.25rem 1rem;min-height:3.75rem;padding:.75rem 1.125rem;font-size:1.25rem;border:2px solid var(--ink-3);border-radius:var(--radius);background:var(--surface);cursor:pointer;line-height:1.35}
.option:hover{border-color:var(--ink)}
.option input{margin:0;width:1.625rem;height:1.625rem;accent-color:var(--red);cursor:pointer}
.option:has(input:focus-visible){border-color:var(--ink);box-shadow:var(--focus-ring),0 0 0 6px var(--ink)}
.option:has(input:checked){border-color:var(--red);box-shadow:inset 0 0 0 1px var(--red);background:var(--red-tint);font-weight:700}
.option:has(input:checked)::after{content:"Selected";content:"Selected"/"";grid-column:2;font-size:1rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--red-press)}
.option:has(input:checked:focus-visible){box-shadow:inset 0 0 0 1px var(--red),var(--focus-ring),0 0 0 6px var(--ink)}
.option-or{display:flex;align-items:center;gap:.75rem;margin:.375rem 0 .125rem;font-weight:700;font-size:1rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}
.option-or::before,.option-or::after{content:"";flex:1;border-top:1px solid var(--line-warm)}
.option--exclusive{border-style:dashed}
.option--exclusive:has(input:checked){border-style:solid}

/* Signature */
.signature-block .field{margin-top:.25rem}
.sig-caption{margin-top:.5rem;font-weight:700;font-size:1rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}
.sig-preview{position:relative;min-height:5rem;display:flex;align-items:flex-end;padding:.5rem 0 .625rem 1.75rem;border-bottom:1.5px solid var(--ink);background:var(--surface)}
.sig-preview::before{content:"\00D7";position:absolute;left:.125rem;bottom:.5rem;font-size:1.25rem;line-height:1;color:var(--ink-3)}
.sig-name{font-family:"Snell Roundhand","Apple Chancery","Segoe Script",Georgia,serif;font-style:italic;font-size:2.125rem;line-height:1.15;color:var(--ink);overflow-wrap:anywhere;letter-spacing:.005em}
.sig-name[data-empty="true"]{font-family:var(--body);font-style:normal;font-size:1.0625rem;color:var(--ink-3);line-height:1.5}

/* Review */
.review-list{margin-top:1.75rem!important;border-top:1px solid var(--line-warm)}
.review-row{display:grid;gap:.25rem;padding:1rem 0;border-bottom:1px solid var(--line-warm)}
.review-row dt{font-weight:400;line-height:1.4;color:var(--ink-2)}
.review-row dd{font-weight:700;font-size:1.25rem}
.review-row dd ul{margin:0;padding-left:1.25rem}
.review-row dd[data-empty="true"]{font-weight:400;font-style:italic;color:var(--ink-3)}
.review-signature{margin-top:1.5rem!important}
.panel .actions{margin-top:1.75rem}

/* Confirmation */
.panel--confirm{align-items:flex-start}
.confirm-check{width:3.5rem;height:3.5rem;color:var(--red)}
.panel--confirm .confirm-check+.panel-heading{margin-top:1.25rem}
.confirm-time{font-weight:600;font-variant-numeric:tabular-nums}
.panel--confirm .actions{align-self:stretch}
.receipt{align-self:stretch;margin-top:2rem!important}
.receipt-heading{font-family:var(--display);font-weight:600;font-size:1.5rem;line-height:1.2}
.receipt-list{margin-top:.75rem!important}

/* Portal: greeting, notices, then tabs for the notice, the statement and the vote.
   The tabs stack as full-width buttons until the column is wide enough for a row. */
.masthead-action{width:auto}
.notice--info{border:2px solid var(--blue);border-left-width:8px;background:var(--blue-tint)}
.notice--info .notice-icon{color:var(--blue)}
.notice--success{border:2px solid var(--green-line);border-left-width:8px;background:var(--green-tint)}
.notice--success .notice-icon{color:var(--green-line)}
.notice-body{display:flex;flex-direction:column;gap:.5rem;max-width:var(--measure)}
.notice-title{font-weight:700;font-size:1.3125rem;line-height:1.3}
.notice .actions{margin-top:.5rem}
.panel--portal .notice{margin-top:1.75rem}
.tabs-area{margin-top:2rem!important}
.tabs-label{font-weight:700;margin-bottom:.625rem}
.tabs{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.25rem}
.tab{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"label show" "badge badge";align-items:center;gap:.25rem .75rem;width:100%;min-height:4.5rem;padding:.875rem 1.125rem;text-align:left;font:inherit;color:var(--ink);background:var(--tab);border:2px solid var(--ink-3);border-radius:var(--radius);cursor:pointer}
.tab:hover{background:var(--surface);border-color:var(--ink)}
.tab-label{grid-area:label;font-size:1.375rem;font-weight:600;line-height:1.25}
.tab .badge{grid-area:badge;justify-self:start}
.tab-showing{grid-area:show;display:none;align-items:center;gap:.375rem;font-size:1rem;font-weight:700;color:var(--red-hover);line-height:1}
.tab-showing::before{content:"";border-left:.4rem solid transparent;border-right:.4rem solid transparent;border-top:.55rem solid currentColor}
.tab[aria-selected="true"]{background:var(--surface);border:3px solid var(--ink);border-left:12px solid var(--red);padding-left:1rem}
.tab[aria-selected="true"] .tab-label{font-weight:800}
.tab[aria-selected="true"] .tab-showing{display:inline-flex}
.tabpanel{display:flex;flex-direction:column;gap:1.25rem;padding:1.5rem 1rem 2rem;background:var(--surface);border:2px solid var(--ink);border-top:8px solid var(--red);border-radius:var(--radius)}
.tabpanel .doc-row{margin-top:.5rem!important}
.tabpanel .ballot{margin-top:0!important}
.viewer{display:flex;flex-direction:column;gap:1rem}
.viewer-page{display:block;width:100%;height:auto;border:1px solid var(--line);border-radius:var(--radius);background:#fff}
.viewer-bar{display:grid;grid-template-columns:1fr 1fr;grid-template-areas:"count count" "prev next";gap:.75rem;align-items:center}
.viewer-count{grid-area:count;font-weight:700;text-align:center;font-variant-numeric:tabular-nums}
.viewer-prev{grid-area:prev;width:100%}
.viewer-next{grid-area:next;width:100%}
.viewer-error{display:flex;flex-direction:column;gap:.5rem;padding:1.25rem;border:3px solid var(--red-hover);border-radius:var(--radius);background:var(--red-tint)}
.download-note{max-width:var(--measure);margin-top:.75rem}
.session-status:not(:empty){margin-bottom:1.5rem}
#ballot-heading{scroll-margin-top:1rem}
.ballot:has(.preview-banner:not([hidden])) #ballot-heading{scroll-margin-top:6rem}
.badge{display:inline-flex;align-items:center;gap:.375rem;padding:.1875rem .75rem .1875rem .5rem;border:2px solid var(--amber-line);border-radius:999px;background:var(--amber-tint);color:var(--ink);font-size:1rem;font-weight:700;line-height:1.3}
.badge-icon{width:1.125rem;height:1.125rem;flex:none;display:none}
.badge[data-state="pending"] .badge-icon--pending{display:block;color:var(--amber-line)}
.badge[data-state="done"]{background:var(--green-tint);border-color:var(--green-line);color:var(--green)}
.badge[data-state="done"] .badge-icon--done{display:block;color:var(--green-line)}
.badge[data-state="closed"]{background:var(--surface);border-color:var(--ink-3)}
.badge[data-state="closed"] .badge-icon--closed{display:block;color:var(--ink-2)}
.recorded{display:flex;flex-direction:column;gap:1rem}
.recorded .review-list{margin-top:0!important}
.recorded .review-signature{margin-top:.5rem!important}

/* Static pages */
.panel--static .lede{color:var(--ink)}
.meeting-line{font-weight:600;font-variant-numeric:tabular-nums}

/* Footer: red, white text, like fareway.com */
.site-footer{background:var(--red);color:#fff}
.site-footer-inner{max-width:52rem;margin:0 auto;padding:1.5rem 1rem 2rem}
.footer-q{font-weight:700;font-size:1.1875rem}
.footer-a{margin-top:.25rem;color:#fff}
.site-footer a{color:#fff;text-decoration:underline}

/* Wider columns */
@container page (min-width:30rem){
.masthead-inner{flex-direction:row;align-items:center;gap:1rem}
.masthead-label{padding-left:1rem;border-left:1px solid var(--line)}
.doc-row{grid-template-columns:auto minmax(0,1fr) auto}
.doc-action{grid-column:auto}
.btn{width:auto}
.actions{flex-direction:row;flex-wrap:wrap;align-items:center}
.actions--split{justify-content:space-between}
.panel--confirm .actions{align-self:stretch}
}
@container page (min-width:46rem){
.viewer-bar{grid-template-columns:auto 1fr auto;grid-template-areas:"prev count next"}
.viewer-prev,.viewer-next{width:auto}
.frame{background:var(--cream)}
.masthead-inner{padding:1.25rem 2rem}
.logo{height:2.375rem}
.sheet{margin:2.5rem auto 3rem;padding:3rem 3.5rem 3.5rem;max-width:52rem;background:var(--surface);border:1px solid var(--line-warm);border-radius:var(--radius)}
.panel-heading{font-size:2.75rem}
.section-heading{font-size:2rem}
.site-footer-inner{padding:1.75rem 2rem 2.5rem;text-align:center}
.review-row{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:1.5rem}
.ballot:has(.preview-banner:not([hidden])){outline-offset:1.25rem}
.masthead-action{margin-left:auto}
.tabs{flex-direction:row;align-items:stretch;margin-bottom:-3px;position:relative;z-index:1;padding:0 .75rem}
.tab{flex:1 1 0;min-width:0;grid-template-columns:minmax(0,1fr);grid-template-areas:"show" "label" "badge";align-content:start;align-items:start;min-height:7rem;padding:.875rem 1.125rem 1rem;border-radius:var(--radius) var(--radius) 0 0;border-bottom:3px solid var(--ink)}
.tab-showing{display:inline-flex;visibility:hidden}
.tab[aria-selected="true"]{border:3px solid var(--ink);border-top:10px solid var(--red);border-bottom:0;padding:.625rem 1rem calc(1rem + 3px);margin-top:-.5rem}
.tab[aria-selected="true"] .tab-showing{visibility:visible}
.tabpanel{border-top:3px solid var(--ink);padding:2.25rem 2.25rem 2.5rem}
}

@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
@media (forced-colors:active){.tab[aria-selected="true"]{outline:4px solid Highlight}.badge{border:2px solid CanvasText}.option:has(input:checked){outline:2px solid CanvasText}.status:not(:empty){border:1px solid CanvasText}.preview-banner{border:2px solid CanvasText}}

/* Print: the confirmation page is the receipt */
@media print{
@page{margin:18mm}
body,.frame,.sheet{background:#fff!important}
.frame{min-height:0}
.sheet{border:0;box-shadow:none;margin:0;padding:0;max-width:none}
.skip-link,.actions,.status:empty,.preview-banner,.masthead-action,.tabs-label,.tabs{display:none!important}
.print-only{display:block}
.print-note{font-style:italic;color:var(--ink-2)}
.masthead{border-bottom:1.5px solid #000}
.masthead-inner,.site-footer-inner{padding-left:0;padding-right:0;max-width:none}
.logo{-webkit-print-color-adjust:exact;print-color-adjust:exact}
.site-footer{background:#fff;color:#000;border-top:1px solid #999}
.footer-a,.site-footer a{color:#000}
.confirm-check{color:#000;width:2.5rem;height:2.5rem}
a{color:#000}
.review-row{break-inside:avoid}
.receipt{margin-top:1.25rem!important}
}
