/* Cereal Boxes — shared theme styles (the designs' own styles live in tpl-*.css). */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: #F7F5F0; color: #151515; font-family: Archivo, Helvetica, Arial, sans-serif; -webkit-font-smoothing: antialiased; }
a { color: #151515; text-decoration: none; }
a:hover { color: #7C172D; }
button { font-family: inherit; }
:focus-visible { outline: 2px solid #7C172D; outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }

/* image slots: an assigned image covers the placeholder art */
[data-image-filled] { position: relative; overflow: hidden; }
[data-image-filled] > .cb-slot-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 1; border-radius: inherit; }
.cb-slot-img[data-fit="contain"] { object-fit: contain; }

/* utilities */
.cb-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; }
.skip-link:focus { position: fixed; left: 12px; top: 12px; z-index: 1000; background: #151515; color: #F7F5F0; padding: 12px 16px; border-radius: 8px; clip: auto; width: auto; height: auto; }

/* toast used by forms */
.cb-toast { position: fixed; left: 50%; bottom: 24px; transform: translate(-50%, 20px); max-width: min(560px, calc(100vw - 32px)); background: #151515; color: #F7F5F0; padding: 16px 20px; border-radius: 10px; font-size: 15px; line-height: 1.45; box-shadow: 0 20px 40px -24px rgba(21,21,21,0.6); opacity: 0; pointer-events: none; transition: opacity 200ms ease, transform 200ms ease; z-index: 200; }
.cb-toast.is-on { opacity: 1; transform: translate(-50%, 0); }
.cb-toast.is-error { background: #7C172D; }

/* admin bar offset for the sticky design headers */
body.admin-bar header[style*="position: sticky"] { top: 32px !important; }
@media (max-width: 782px) { body.admin-bar header[style*="position: sticky"] { top: 46px !important; } }

/* Shared site header (all templates except the homepage, which has its own) */
@media (max-width: 1180px) {
  [data-sn-burger] { display: flex !important; }
  [data-sn-mega] { display: none !important; }
}
@media (max-width: 620px) {
  header > [data-pad] { gap: 12px !important; }
  header > [data-pad] > a[href*="quote"], header > [data-pad] button[data-cb-quote] { padding: 11px 13px !important; letter-spacing: 0.05em !important; }
}
