/*
| Alpi Self Storage design system
| Shared by every public page. Matches the 3D landing hero: white surfaces, soft-shadow
| cards, red label chips, two-tone headings. Loaded after the Space/Bootstrap theme.
*/

:root {
  --a-red: #f53737;
  --a-red-strong: #e02d2d;
  --a-red-deep: #d42b2b;
  --a-red-soft: rgba(245, 55, 55, .1);
  --a-red-btn: #e02d2d; /* white text on it is 4.6:1 (WCAG AA); #f53737 stays for accents */
  --a-red-btn-hover: #c92525;
  --a-red-text: #c42222; /* red text on the soft chip background, 5:1 */
  --a-ink: #121214;
  --a-body: #4a4a50;
  --a-muted: #6d6d72;
  --a-faint: #a1a1a6;
  --a-line: rgba(17, 17, 20, .08);
  --a-line-strong: rgba(17, 17, 20, .14);
  --a-bg: #f6f6f4;
  --a-surface: #fff;
  --a-radius: 16px;
  --a-radius-sm: 10px;
  --a-shadow: 0 24px 60px rgba(17, 17, 20, .1), 0 2px 8px rgba(17, 17, 20, .05);
  --a-shadow-sm: 0 10px 30px rgba(17, 17, 20, .07);
  --a-ease: cubic-bezier(.2, .7, .2, 1);
}

/* ---------- Base ---------- */
html { cursor: default; scroll-behavior: smooth; }
body {
  font-family: 'Roboto', system-ui, -apple-system, 'Segoe UI', sans-serif;
  color: var(--a-body);
  background: var(--a-surface);
  -webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
  color: var(--a-ink);
  font-weight: 700;
  letter-spacing: -.02em;
}
a { color: var(--a-ink); text-decoration: none; transition: color .2s ease; }
a:hover { color: var(--a-red-text); }
img { border-radius: 0; }
::selection { color: #fff; background: var(--a-red); }
.text-primary { color: var(--a-red) !important; }
main#content { min-height: 50vh; }

/* ---------- Typography helpers ---------- */
.a-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .35rem .75rem;
  border-radius: 999px;
  background: var(--a-red-soft);
  color: var(--a-red-text);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .12em;
  line-height: 1.2;
}
.a-eyebrow::before {
  content: '';
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--a-red);
}
.a-title {
  margin: 0 0 .75rem;
  color: var(--a-ink);
  font-size: clamp(1.9rem, 3.4vw, 2.8rem);
  font-weight: 700;
  line-height: 1.12;
  letter-spacing: -.02em;
}
.a-title span { display: block; color: var(--a-red-strong); }
.a-title--inline span { display: inline; }
.a-h2 {
  margin: 0 0 .75rem;
  font-size: clamp(1.6rem, 2.6vw, 2.25rem);
  line-height: 1.15;
}
.a-h2 span { color: var(--a-red-strong); }
.a-lead { color: var(--a-body); font-size: 1.05rem; line-height: 1.6; }
.a-muted { color: var(--a-muted); }

/* ---------- Layout ---------- */
.a-section { padding: clamp(3.5rem, 7vw, 6rem) 0; }
.a-section--tight { padding: clamp(2.5rem, 5vw, 4rem) 0; }
.a-section--soft { background: var(--a-bg); }
.a-section-head { max-width: 40rem; margin-bottom: 2.5rem; }
.a-section-head .a-eyebrow { margin-bottom: 1rem; }
.a-section-head--center { margin-left: auto; margin-right: auto; text-align: center; }
.a-section-head--center .a-eyebrow { margin-left: auto; margin-right: auto; }
.a-grid { display: grid; gap: 1.25rem; }
@media (min-width: 768px) {
  .a-grid--2 { grid-template-columns: repeat(2, 1fr); }
  .a-grid--3 { grid-template-columns: repeat(3, 1fr); }
}
/* Flex instead of grid so an incomplete last row (5 sites) sits centred */
.a-grid--sites { display: flex; flex-wrap: wrap; justify-content: center; }
.a-grid--sites > * { flex: 0 0 100%; }
@media (min-width: 576px) {
  .a-grid--sites > * { flex-basis: calc((100% - 1.25rem) / 2); }
}
@media (min-width: 992px) {
  .a-grid--sites > * { flex-basis: calc((100% - 2.5rem) / 3); }
}

/* ---------- Buttons ---------- */
.btn { border-radius: var(--a-radius-sm); font-weight: 500; transition: transform .2s var(--a-ease), box-shadow .2s ease, background-color .2s ease, border-color .2s ease, color .2s ease; }
.btn-primary,
.btn-primary:focus {
  color: #fff !important;
  background-color: var(--a-red-btn) !important;
  border-color: var(--a-red-btn) !important;
}
.btn-primary:hover {
  background-color: var(--a-red-btn-hover) !important;
  border-color: var(--a-red-btn-hover) !important;
  box-shadow: 0 10px 24px rgba(245, 55, 55, .28) !important;
  transform: translateY(-1px);
}
.btn-primary:disabled { opacity: .7; transform: none; }
.a-btn-ghost,
.a-btn-ghost:focus {
  color: var(--a-ink) !important;
  background: #fff;
  border: 1px solid var(--a-line-strong);
}
.a-btn-ghost:hover { color: var(--a-ink) !important; border-color: var(--a-ink); transform: translateY(-1px); }
.a-btn-dark { color: #fff !important; background: var(--a-ink); border: 1px solid var(--a-ink); }
.a-btn-dark:hover { color: #fff !important; background: #000; transform: translateY(-1px); }
.a-btn-light { color: var(--a-ink) !important; background: #fff; border: 1px solid #fff; }
.a-btn-light:hover { color: var(--a-red) !important; transform: translateY(-1px); }
.a-actions { display: flex; flex-wrap: wrap; gap: .6rem; }
.a-link { display: inline-flex; align-items: center; gap: .35rem; color: var(--a-red-deep); font-weight: 500; }
.a-link i { transition: transform .2s var(--a-ease); }
.a-link:hover { color: var(--a-red-strong); }
.a-link:hover i { transform: translateX(3px); }

/* ---------- Cards ---------- */
.a-card {
  position: relative;
  padding: 1.75rem;
  border: 1px solid var(--a-line);
  border-radius: var(--a-radius);
  background: var(--a-surface);
  box-shadow: var(--a-shadow-sm);
}
.a-card--lift { transition: transform .3s var(--a-ease), box-shadow .3s ease; }
.a-card--lift:hover { transform: translateY(-4px); box-shadow: var(--a-shadow); }
.a-card--lg { padding: clamp(1.5rem, 3.5vw, 2.5rem); }
.a-step-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  margin-bottom: 1rem;
  border-radius: 50%;
  background: var(--a-red);
  color: #fff;
  font-weight: 700;
}
.a-icon-tile {
  display: inline-flex;
  flex: none;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 12px;
  background: var(--a-red-soft);
  color: var(--a-red-deep);
  font-size: 1.2rem;
}

/* ---------- Forms ---------- */
.form-label { color: var(--a-ink); font-weight: 500; font-size: .92rem; margin-bottom: .4rem; }
.form-control,
.form-select {
  min-height: 3rem;
  padding: .7rem .95rem;
  border: 1px solid var(--a-line-strong);
  border-radius: var(--a-radius-sm);
  color: var(--a-ink);
  background-color: #fff;
  font-size: 1rem;
  transition: border-color .2s ease, box-shadow .2s ease;
}
textarea.form-control { min-height: 7rem; }
.form-control::placeholder { color: var(--a-faint); }
.form-control:focus,
.form-select:focus {
  border-color: var(--a-red);
  box-shadow: 0 0 0 4px var(--a-red-soft);
}
.form-check-input:checked { background-color: var(--a-red); border-color: var(--a-red); }
.a-required { color: var(--a-red-text); margin-left: .15rem; }
.a-form-note { color: var(--a-muted); font-size: .88rem; }
.a-alert {
  display: flex;
  gap: .6rem;
  align-items: flex-start;
  margin: 0 0 1rem;
  padding: .85rem 1rem;
  border-radius: 12px;
  font-size: .95rem;
}
.a-alert--success { color: #15803d; background: #dcfce7; border: 1px solid #bbf7d0; }
.a-alert--error { color: #b91c1c; background: #fee2e2; border: 1px solid #fecaca; }
.g-recaptcha { margin: .25rem 0 1.25rem; }

/* ---------- Header ---------- */
.a-header {
  position: relative;
  z-index: 1030;
  background: #fff;
  border-bottom: 1px solid var(--a-line);
}
.a-header .navbar { padding: .85rem 0; }
.a-header .navbar-brand { padding: 0; margin-right: 2rem; }
.a-header .navbar-brand img { width: 13.5rem; max-width: 56vw; height: auto; }
.a-nav .nav-link {
  position: relative;
  padding: .5rem .8rem !important;
  color: var(--a-ink) !important;
  font-size: .95rem;
  font-weight: 500;
}
.a-nav .nav-link:hover,
.a-nav .nav-link.is-active { color: var(--a-red-text) !important; }
.a-nav .nav-link.is-active::after {
  content: '';
  position: absolute;
  left: .8rem;
  right: .8rem;
  bottom: .1rem;
  height: 2px;
  border-radius: 2px;
  background: var(--a-red);
}
.a-nav .dropdown-menu {
  min-width: 13rem;
  margin-top: .5rem;
  padding: .5rem;
  border: 1px solid var(--a-line);
  border-radius: 14px;
  box-shadow: var(--a-shadow);
}
.a-nav .dropdown-item {
  padding: .6rem .8rem;
  border-radius: 8px;
  color: var(--a-ink);
  font-weight: 500;
}
.a-nav .dropdown-item:hover,
.a-nav .dropdown-item.is-active { color: var(--a-red-text); background: var(--a-red-soft); }
.a-header-cta { white-space: nowrap; padding: .6rem 1.1rem; font-size: .92rem; }
.a-toggler {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  padding: 0;
  border: 1px solid var(--a-line-strong);
  border-radius: 12px;
  background: #fff;
  color: var(--a-ink);
  font-size: 1.35rem;
}
.a-toggler:focus { box-shadow: 0 0 0 4px var(--a-red-soft); }
.a-toggler .bi-x-lg { display: none; }
.a-toggler[aria-expanded='true'] .bi-list { display: none; }
.a-toggler[aria-expanded='true'] .bi-x-lg { display: inline; }
@media (max-width: 991.98px) {
  .a-header .navbar-collapse { padding: .75rem 0 .5rem; }
  .a-nav .nav-link { padding: .7rem 0 !important; border-bottom: 1px solid var(--a-line); }
  .a-nav .nav-link.is-active::after { display: none; }
  .a-nav .dropdown-menu { margin: 0 0 .5rem; box-shadow: none; border: 0; padding: 0 0 0 .75rem; }
  .a-header-cta { width: 100%; margin-top: 1rem; padding: .8rem 1rem; }
}

/* ---------- Page hero (photo + card, like the 3D landing) ---------- */
.a-hero {
  position: relative;
  min-height: clamp(22rem, 52vh, 34rem);
  display: flex;
  align-items: flex-end;
  padding: 3rem 0;
  overflow: hidden;
  background: var(--a-bg);
}
.a-hero__media {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.a-hero--plain { min-height: 0; padding: clamp(3rem, 7vw, 5rem) 0 1rem; background: linear-gradient(180deg, var(--a-bg), #fff); }
.a-hero-card {
  position: relative;
  max-width: 34rem;
  padding: 1.75rem 1.9rem 1.6rem;
  border: 1px solid rgba(255, 255, 255, .8);
  border-radius: var(--a-radius);
  background: rgba(255, 255, 255, .95);
  box-shadow: var(--a-shadow);
}
.a-hero--plain .a-hero-card { max-width: 46rem; padding: 0; border: 0; background: none; box-shadow: none; }
.a-hero-card .a-eyebrow { margin-bottom: 1rem; }
.a-hero-card .a-lead { margin-bottom: 0; }
.a-hero-card .a-actions { margin-top: 1.25rem; }
.a-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
  margin: 0 0 .9rem;
  padding: 0;
  list-style: none;
  font-size: .82rem;
  color: var(--a-muted);
}
.a-breadcrumb li + li::before { content: '/'; margin-right: .35rem; color: var(--a-faint); }
.a-breadcrumb a { color: var(--a-muted); }
.a-breadcrumb a:hover { color: var(--a-red-text); }
@media (max-width: 767.98px) {
  .a-hero { display: block; min-height: 0; padding: 0 0 1.5rem; }
  .a-hero__media { position: relative; height: 15rem; }
  .a-hero .container { margin-top: -3.5rem; }
  .a-hero-card { padding: 1.35rem 1.35rem 1.25rem; }
  .a-hero--plain .container { margin-top: 0; }
}

/* ---------- Stats ---------- */
.a-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr));
  gap: 1px;
  overflow: hidden;
  border: 1px solid var(--a-line);
  border-radius: var(--a-radius);
  background: var(--a-line);
}
.a-stat { padding: 1.4rem 1.5rem; background: #fff; }
.a-stat__value { display: block; color: var(--a-ink); font-size: clamp(1.35rem, 2.4vw, 1.75rem); font-weight: 700; letter-spacing: -.02em; line-height: 1.2; }
.a-stat__value--red { color: var(--a-red-strong); }
.a-stat__label { display: block; margin-top: .25rem; color: var(--a-muted); font-size: .88rem; }

/* ---------- Lists ---------- */
.a-check-list { display: grid; gap: .75rem; margin: 0; padding: 0; list-style: none; }
.a-check-list li { display: flex; gap: .75rem; align-items: flex-start; color: var(--a-ink); font-weight: 500; }
.a-check-list li::before {
  content: '';
  flex: none;
  width: 1.5rem;
  height: 1.5rem;
  margin-top: -.05rem;
  border-radius: 50%;
  background: var(--a-red-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23d42b2b'%3E%3Cpath d='M13.485 3.929a1 1 0 0 1 .086 1.412l-6 7a1 1 0 0 1-1.465.056l-3-3a1 1 0 1 1 1.414-1.414l2.236 2.236 5.317-6.204a1 1 0 0 1 1.412-.086z'/%3E%3C/svg%3E") center / .8rem no-repeat;
}

/* ---------- Site (warehouse) cards ---------- */
.a-site-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
  border: 1px solid var(--a-line);
  border-radius: var(--a-radius);
  background: #fff;
  box-shadow: var(--a-shadow-sm);
  color: var(--a-body);
  transition: transform .3s var(--a-ease), box-shadow .3s ease;
}
.a-site-card:hover { color: var(--a-body); transform: translateY(-4px); box-shadow: var(--a-shadow); }
.a-site-card__media { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: var(--a-bg); }
.a-site-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--a-ease); }
.a-site-card:hover .a-site-card__media img { transform: scale(1.04); }
.a-site-card__tag {
  position: absolute;
  top: .85rem;
  left: .85rem;
  padding: .3rem .65rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, .95);
  color: var(--a-ink);
  font-size: .75rem;
  font-weight: 700;
}
.a-site-card__body { display: flex; flex: 1; flex-direction: column; padding: 1.25rem 1.35rem 1.35rem; }
.a-site-card__title { margin: 0 0 .35rem; font-size: 1.15rem; }
.a-site-card__addr { display: flex; gap: .4rem; margin: 0 0 1rem; color: var(--a-muted); font-size: .92rem; }
.a-site-card__addr i { color: var(--a-red); }
.a-site-card .a-link { margin-top: auto; }

/* ---------- Gallery & map ---------- */
.a-gallery { display: grid; grid-template-columns: repeat(2, 1fr); gap: .75rem; }
.a-gallery a { display: block; overflow: hidden; border-radius: 12px; background: var(--a-bg); }
.a-gallery img { width: 100%; height: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .6s var(--a-ease); }
.a-gallery a:hover img { transform: scale(1.04); }
@media (min-width: 768px) {
  .a-gallery { grid-template-columns: repeat(3, 1fr); gap: 1rem; }
  .a-gallery a:first-child { grid-column: span 2; grid-row: span 2; }
  .a-gallery a:first-child img { aspect-ratio: auto; }
}
.a-map { overflow: hidden; border: 1px solid var(--a-line); border-radius: var(--a-radius); box-shadow: var(--a-shadow-sm); }
.a-map iframe { display: block; width: 100%; height: 26rem; border: 0; }

/* ---------- Prose (legal / long text) ---------- */
.a-prose { max-width: 48rem; color: var(--a-body); font-size: 1.02rem; line-height: 1.75; }
.a-prose h2, .a-prose h3 { margin: 2.25rem 0 .75rem; font-size: 1.25rem; }
.a-prose p { margin-bottom: 1rem; }
.a-prose ol { margin: 0 0 1.25rem; padding-left: 1.35rem; }
.a-prose ol ol { margin-top: .5rem; }
.a-prose li { margin-bottom: .6rem; padding-left: .25rem; }
.a-prose li::marker { color: var(--a-red-deep); font-weight: 700; }
.a-prose strong { color: var(--a-ink); }

/* ---------- Pricing ---------- */
.a-price-card { display: flex; flex-direction: column; height: 100%; }
.a-price-card__label { color: var(--a-muted); font-weight: 500; }
.a-price { display: flex; align-items: flex-start; gap: .2rem; margin: .5rem 0 .25rem; color: var(--a-ink); line-height: 1; }
.a-price__from { align-self: flex-end; margin-right: .35rem; color: var(--a-muted); font-size: .95rem; font-weight: 500; }
.a-price__value { font-size: clamp(2.6rem, 5vw, 3.4rem); font-weight: 700; letter-spacing: -.03em; }
.a-price__cur { margin-top: .35rem; font-size: 1.4rem; font-weight: 700; }
.a-price__unit { color: var(--a-muted); font-size: .92rem; }
.a-price-card--featured { border-color: rgba(245, 55, 55, .35); box-shadow: 0 24px 60px rgba(245, 55, 55, .12); }
.a-price-card .a-check-list { margin: 1.5rem 0; }
.a-price-card .btn { margin-top: auto; }

/* ---------- Contact ---------- */
.a-contact-item { display: flex; gap: .9rem; align-items: center; padding: .9rem 0; border-bottom: 1px solid var(--a-line); }
.a-contact-item:last-child { border-bottom: 0; }
.a-contact-item small { display: block; color: var(--a-muted); font-size: .8rem; }
.a-contact-item a, .a-contact-item span { color: var(--a-ink); font-weight: 500; }
.a-contact-item a:hover { color: var(--a-red-text); }

/* ---------- CTA band ---------- */
.a-cta {
  position: relative;
  overflow: hidden;
  padding: clamp(2rem, 5vw, 3.25rem);
  border-radius: calc(var(--a-radius) + 4px);
  background: var(--a-ink);
  color: rgba(255, 255, 255, .72);
}
.a-cta::after {
  content: '';
  position: absolute;
  right: -6rem;
  top: -6rem;
  width: 20rem;
  height: 20rem;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(245, 55, 55, .45), transparent 70%);
  pointer-events: none;
}
.a-cta h2 { color: #fff; }
.a-cta h2 span { color: #ff6b6b; }
.a-cta .a-actions { position: relative; z-index: 1; }

/* ---------- Status pages (thanks / errors) ---------- */
.a-status { padding: clamp(4rem, 10vw, 7rem) 0; text-align: center; }
.a-status__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 4.5rem;
  height: 4.5rem;
  margin-bottom: 1.5rem;
  border-radius: 50%;
  background: var(--a-red-soft);
  color: var(--a-red-deep);
  font-size: 2rem;
}
.a-status__icon--ok { background: #dcfce7; color: #15803d; }
.a-status__code { display: block; color: var(--a-red); font-size: clamp(3.5rem, 10vw, 6rem); font-weight: 700; letter-spacing: -.04em; line-height: 1; }
.a-status .a-actions { justify-content: center; margin-top: 1.75rem; }

/* ---------- Footer ---------- */
.a-footer { padding: clamp(3rem, 6vw, 4.5rem) 0 0; background: var(--a-ink); color: rgba(255, 255, 255, .62); font-size: .95rem; }
.a-footer__logo { width: 13rem; max-width: 70%; height: auto; margin-bottom: 1.25rem; }
.a-footer__title { display: block; margin-bottom: 1rem; color: #fff; font-size: .78rem; font-weight: 700; letter-spacing: .12em; }
.a-footer ul { margin: 0; padding: 0; list-style: none; }
.a-footer li { margin-bottom: .6rem; }
.a-footer a { color: rgba(255, 255, 255, .72); }
.a-footer a:hover { color: #fff; }
.a-footer__contact li { display: flex; gap: .6rem; }
.a-footer__contact i { color: var(--a-red); }
.a-footer__bottom {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem 1.5rem;
  align-items: center;
  justify-content: space-between;
  margin-top: 3rem;
  padding: 1.5rem 0;
  border-top: 1px solid rgba(255, 255, 255, .1);
  font-size: .85rem;
}
.a-footer .parity { color: #1db954; font-weight: 700; }
.a-footer .parity:hover { color: #34d06b; }
.a-social {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.4rem;
  height: 2.4rem;
  border-radius: 50%;
  background: rgba(255, 255, 255, .08);
  color: #fff !important;
}
.a-social:hover { background: var(--a-red); }

/* ---------- Renewal flow (Alpi S.A. group: keeps its orange accent, shares the system) ---------- */
.a-renewal { background: var(--a-bg); }
.a-renewal main#content { min-height: 70vh; }
.a-renewal-footer { padding: 2rem 0 2.5rem; color: var(--a-faint); font-size: .85rem; text-align: center; }
.a-renewal .renewal-card,
.a-renewal .renewal-done__card { border: 1px solid var(--a-line); border-radius: var(--a-radius) !important; box-shadow: var(--a-shadow) !important; }
.a-renewal .renewal-title,
.a-renewal .renewal-done__title { color: var(--a-ink); letter-spacing: -.02em; }

/* ---------- Back to top ---------- */
.a-top {
  position: fixed;
  right: 1.25rem;
  bottom: 1.25rem;
  z-index: 1020;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.9rem;
  height: 2.9rem;
  border: 0;
  border-radius: 12px;
  background: var(--a-ink);
  color: #fff;
  box-shadow: var(--a-shadow-sm);
  opacity: 0;
  transform: translateY(12px);
  pointer-events: none;
  transition: opacity .3s ease, transform .3s var(--a-ease), background-color .2s ease;
}
.a-top.is-visible { opacity: 1; transform: none; pointer-events: auto; }
.a-top:hover { background: var(--a-red); }

/* ---------- Scroll reveal ---------- */
.a-reveal { opacity: 0; transform: translateY(18px); transition: opacity .7s var(--a-ease), transform .7s var(--a-ease); }
.a-reveal.is-in { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .a-reveal { opacity: 1; transform: none; transition: none; }
  .a-card--lift, .a-site-card, .btn, .a-gallery img, .a-site-card__media img { transition: none; }
}

/* ---------- Testimonials ---------- */
.a-quote { display: flex; flex-direction: column; margin: 0; }
.a-quote blockquote { flex: 1; margin: 0 0 1.25rem; color: var(--a-ink); font-size: 1.05rem; line-height: 1.6; }
.a-quote blockquote::before { content: '“'; display: block; height: 2rem; color: var(--a-red); font-size: 3rem; font-weight: 700; line-height: 1; }
.a-quote figcaption { display: flex; gap: .75rem; align-items: center; color: var(--a-ink); font-weight: 700; }
.a-quote figcaption img { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; }
