/* themes/_core/assets/core.css — base styles shared by every theme. Brand colors arrive as
   --brand-primary / --brand-secondary / --brand-accent / --brand-background / --brand-text. */
:root {
  --brand-primary: #1b5e8c;
  --brand-secondary: #4f9d69;
}
body { background: var(--brand-background, #fff); color: var(--brand-text, #212529); }
a { color: var(--brand-primary); }
.btn-brand { background: var(--brand-primary); border-color: var(--brand-primary); color: #fff; }
.btn-brand:hover, .btn-brand:focus { background: var(--brand-secondary); border-color: var(--brand-secondary); color: #fff; }
.btn-outline-brand { border-color: var(--brand-primary); color: var(--brand-primary); }
.btn-outline-brand:hover { background: var(--brand-primary); color: #fff; }
.site-logo { max-height: 56px; width: auto; }
.site-nav { border-bottom: 1px solid rgba(0,0,0,.08); }
.site-nav .nav-link.active { color: var(--brand-primary); font-weight: 600; }
.sec-heading { color: var(--brand-primary); margin-bottom: 1rem; }
.sec-hero { background-size: cover; background-position: center; }
.sec-hero.has-image { color: #fff; text-shadow: 0 1px 4px rgba(0,0,0,.5); min-height: 340px; display: flex; align-items: center; }
.sec-hero.has-overlay { box-shadow: inset 0 0 0 2000px rgba(0,0,0,.45); }
.sec-carousel .carousel-item img { max-height: 520px; object-fit: cover; }
.sec-carousel .carousel-caption { background: rgba(0,0,0,.35); border-radius: .5rem; }
.sec-cta-banner { background: var(--brand-primary); color: #fff; background-size: cover; background-position: center; }
.sec-cta-banner.has-image { box-shadow: inset 0 0 0 2000px rgba(0,0,0,.45); }
.sec-appointments-banner { background: linear-gradient(rgba(0,0,0,.65), rgba(0,0,0,.3)), url("https://cdn.srspharmacy.com/hosted/appointment/img/background.jpg") center/cover; color: #fff; }
.gallery-img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; }
.feature-icon { color: var(--brand-primary); }
.testimonial { background: rgba(0,0,0,.03); border-left: 4px solid var(--brand-secondary); }
.refill-alt { background: rgba(0,0,0,.04); }
.site-footer { background: #1f2a33; color: #e9ecef; }
.site-footer a { color: #fff; }
.site-footer .footer-hours { --bs-table-bg: transparent; --bs-table-color: #e9ecef; }
.legal-text h2 { font-size: 1.25rem; margin-top: 1.5rem; }
.site-bare #container { min-height: 100vh; }

/* About us (sections/about.ejs): photo with a round inset photo over its lower corner, label, checklist. */
.sec-about { background: rgba(0,0,0,.025); }
.sec-about .about-photo { position: relative; }
.sec-about .about-photo.has-inset { padding: 0 0 3rem 3rem; }
.sec-about .about-photo.has-inset.inset-right { padding: 0 3rem 3rem 0; }
.sec-about .about-photo-main { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: .6rem; }
.sec-about .about-photo-inset { position: absolute; left: 0; bottom: 0; width: 42%; aspect-ratio: 1; object-fit: cover;
  border-radius: 50%; border: 8px solid #fff; box-shadow: 0 .25rem 1rem rgba(0,0,0,.12); }
.sec-about .inset-right .about-photo-inset { left: auto; right: 0; }
.sec-about .about-eyebrow { margin: 0 0 .25rem; color: var(--brand-primary); font-weight: 600; letter-spacing: .04em;
  text-transform: uppercase; font-size: 1.1rem; }
/* .sec.sec-about outranks a theme's own .theme-x .sec-heading (centered headings with a rule under them). */
.sec-about .about-heading { color: inherit; } /* low specificity: a theme's own heading color wins */
.sec.sec-about .about-heading { text-align: left; font-size: calc(1.6rem + 1.6vw); line-height: 1.1; margin-bottom: 1.5rem; }
.sec.sec-about .about-heading::after { margin-left: 0; margin-right: 0; }
.sec-about .about-checklist { list-style: none; padding: 0; margin: 1.5rem 0 0; display: grid;
  grid-template-columns: 1fr; column-gap: 1.5rem; }
@media (min-width: 576px) { .sec-about .about-checklist { grid-template-columns: 1fr 1fr; } }
.sec-about .about-checklist li { display: flex; gap: .6rem; align-items: center; padding: .55rem .5rem;
  border-bottom: 1px solid rgba(0,0,0,.08); color: var(--brand-secondary); }
.sec-about .about-checklist svg { flex: none; color: var(--brand-primary); }

/* Background bands (section "background" in the editor, or a theme's default for a kind of section).
   .sec.band.band-x outranks a theme's per-section backgrounds. A theme can retune them with --band-light-bg,
   --band-dark-bg and --band-on-dark. */
.sec.band { position: relative; }
.sec.band.band-white { background-color: #fff; color: var(--brand-text, #212529); }
.sec.band.band-light { background-color: #f4f6f9; background-color: var(--band-light-bg,
  color-mix(in srgb, var(--brand-primary) 6%, #fff)); color: var(--brand-text, #212529); }
.sec.band.band-brand { background-color: var(--brand-primary); color: rgba(255,255,255,.92); }
.sec.band.band-dark { background-color: var(--band-dark-bg, #1d2433); color: var(--band-on-dark, rgba(255,255,255,.85)); }
.sec.band.band-brand :is(h1, h2, h3, h4, h5, .sec-heading, .about-eyebrow),
.sec.band.band-dark :is(h1, h2, h3, h4, h5, .sec-heading, .about-eyebrow) { color: #fff; }
.sec.band.band-brand a:not(.btn), .sec.band.band-dark a:not(.btn) { color: #fff; }
.sec.band.band-brand .about-checklist li, .sec.band.band-dark .about-checklist li { color: inherit;
  border-color: rgba(255,255,255,.2); }
.sec.band.band-brand .about-checklist svg, .sec.band.band-brand .feature-icon { color: #fff; }
.sec.band.band-brand .btn-brand { background: #fff; border-color: #fff; color: var(--brand-primary); }
.sec.band.band-brand .btn-outline-brand { border-color: #fff; color: #fff; }
.sec.band :is(.card, .testimonial, .refill-alt) { color: var(--brand-text, #212529); }
.sec.band .card :is(h3, h5, .card-title) { color: inherit; }
.sec.band.band-brand .hours-table, .sec.band.band-dark .hours-table { --bs-table-bg: transparent; --bs-table-color: inherit; }

/* Scroll animations (partials/head.ejs adds "motion" to <html> when the site has them on). --reveal-i staggers
   the items of a row of cards. */
.motion [data-reveal] { opacity: 0; transition: opacity .8s ease, transform .8s cubic-bezier(.2,.7,.2,1);
  transition-delay: calc(var(--reveal-i, 0) * 120ms); }
.motion [data-reveal="up"] { transform: translateY(2rem); }
.motion [data-reveal="left"] { transform: translateX(-3rem); }
.motion [data-reveal="right"] { transform: translateX(3rem); }
.motion [data-reveal="zoom"] { transform: scale(.94); }
.motion [data-reveal].is-in { opacity: 1; transform: none; }
@media print { .motion [data-reveal] { opacity: 1 !important; transform: none !important; } }
