/* ROYI Bag & Luggage — selected concept 03: Assembly Path Narrative */

.bag-assembly-path {
  --bag-navy: #11395f;
  --bag-navy-deep: #0a2b4b;
  --bag-copper: #a85e34;
  --bag-copy: #435161;
  --bag-muted: #6a7480;
  --bag-border: #d9dee2;
  --bag-ivory: #f8f6f1;
  --bag-soft: #f1f3f4;
  background: #ffffff;
  color: #435161;
}

.bag-assembly-path .bag-story-page {
  inline-size: 100%;
  padding-block-start: 72px;
  overflow: clip;
  background: #fff;
  font-family: var(--ds-font-body, Inter, "Helvetica Neue", Arial, sans-serif);
}

.bag-story-page *,
.bag-story-page *::before,
.bag-story-page *::after { box-sizing: border-box; }

.bag-story-page h1,
.bag-story-page h2,
.bag-story-page h3,
.bag-story-page p,
.bag-story-page figure { margin: 0; }

.bag-story-page h1,
.bag-story-page h2,
.bag-story-page h3 {
  color: var(--bag-navy-deep);
  font-family: var(--ds-font-display, "Arial Narrow", "Avenir Next Condensed", "Roboto Condensed", Arial, sans-serif);
}

.bag-story-page img { display: block; inline-size: 100%; }

.bag-o3-hero,
.bag-o3-section {
  inline-size: min(100%, 1440px);
  margin-inline: auto;
}

.bag-o3-eyebrow {
  color: var(--bag-copper);
  font-size: 11px;
  font-weight: 820;
  letter-spacing: .12em;
  line-height: 1.2;
  text-transform: uppercase;
}

.bag-o3-hero {
  display: grid;
  grid-template-columns: 42% 58%;
  min-block-size: 620px;
  background: var(--bag-ivory);
  border-block-end: 1px solid var(--bag-border);
}

.bag-o3-hero-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 72px 48px 70px 56px;
}

.bag-o3-hero h1 {
  max-inline-size: 600px;
  margin-block-start: 18px;
  font-size: clamp(52px, 4.55vw, 70px);
  font-weight: 850;
  letter-spacing: -.045em;
  line-height: .98;
}

.bag-o3-hero-lead {
  max-inline-size: 540px;
  margin-block-start: 17px !important;
  color: var(--bag-navy-deep);
  font-size: 21px;
  font-weight: 760;
  line-height: 1.22;
}

.bag-o3-hero-body {
  max-inline-size: 530px;
  margin-block-start: 17px !important;
  color: var(--bag-copy);
  font-size: 15px;
  line-height: 1.55;
}

.bag-o3-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-block-start: 28px;
}

.bag-o3-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-block-size: 48px;
  padding: 12px 22px;
  border: 1px solid transparent;
  border-radius: 4px;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.1;
  text-align: center;
  text-decoration: none;
  transition: transform 160ms ease, background-color 160ms ease, border-color 160ms ease;
}

.bag-o3-button:hover { transform: translateY(-1px); }
.bag-o3-button:focus-visible { outline: 3px solid #d88b56; outline-offset: 3px; }
.bag-o3-button-primary { color: #fff; background: var(--bag-navy-deep); }
.bag-o3-button-primary:hover { color: #fff; background: #154b7d; }
.bag-o3-button-secondary { color: var(--bag-navy-deep); background: #fff; border-color: #8fa0ae; }
.bag-o3-button-secondary:hover { border-color: var(--bag-navy-deep); }

.bag-o3-hero-media {
  position: relative;
  min-block-size: 620px;
  overflow: hidden;
  background: #eee9e1;
}

.bag-o3-hero-media img {
  block-size: 100%;
  object-fit: cover;
  object-position: 52% 50%;
}

.bag-o3-hero-media figcaption,
.bag-o3-exploded figcaption,
.bag-o3-process-figure figcaption,
.bag-o3-review-figure figcaption {
  position: absolute;
  inset-inline-end: 16px;
  inset-block-end: 12px;
  padding: 5px 8px;
  color: #fff;
  background: rgb(10 43 75 / 84%);
  font-size: 9px;
  line-height: 1.2;
}

.bag-o3-section {
  display: grid;
  grid-template-columns: 270px minmax(0, 1fr);
  gap: 38px;
  padding: 52px 48px;
  border-block-start: 1px solid var(--bag-border);
  background: #fff;
}

.bag-o3-section:nth-of-type(even) { background: #fdfcf9; }

.bag-o3-section-intro {
  display: grid;
  grid-template-columns: 62px minmax(0, 1fr);
  gap: 18px;
  align-content: start;
}

.bag-o3-number {
  color: var(--bag-copper);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 54px;
  font-weight: 400;
  letter-spacing: -.055em;
  line-height: .88;
}

.bag-o3-section-intro h2 {
  margin-block-start: 11px;
  font-size: 27px;
  font-weight: 820;
  letter-spacing: -.035em;
  line-height: 1.08;
}

.bag-o3-section-intro > div > p:not(.bag-o3-eyebrow) {
  margin-block-start: 15px;
  color: var(--bag-copy);
  font-size: 13px;
  line-height: 1.55;
}

/* 01 — finished product */

.bag-o3-products { min-block-size: 300px; align-items: center; }
.bag-o3-product-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.bag-o3-product-grid article { min-inline-size: 0; text-align: center; }
.bag-o3-product-grid img {
  block-size: 168px;
  object-fit: contain;
  object-position: center;
  background: #f8f7f4;
  border: 1px solid #ece9e3;
}
.bag-o3-product-grid h3 { margin-block-start: 12px; font-size: 14px; font-weight: 800; }
.bag-o3-product-grid p { margin-block-start: 4px; color: var(--bag-muted); font-size: 11px; line-height: 1.3; }

/* 02 — exploded component atlas */

.bag-o3-components { min-block-size: 650px; }
.bag-o3-component-layout { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(250px, .7fr); gap: 26px; align-items: center; }
.bag-o3-exploded { position: relative; min-inline-size: 0; }
.bag-o3-exploded img { block-size: 530px; object-fit: contain; background: #fbfaf7; }
.bag-o3-callouts { display: grid; gap: 0; border-block-start: 1px solid var(--bag-border); }
.bag-o3-callouts article {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr);
  gap: 14px;
  padding-block: 15px;
  border-block-end: 1px solid var(--bag-border);
}
.bag-o3-callouts span { color: var(--bag-copper); font-size: 10px; font-weight: 850; letter-spacing: .08em; }
.bag-o3-callouts h3 { font-size: 15px; font-weight: 820; }
.bag-o3-callouts p { margin-block-start: 3px; color: var(--bag-copy); font-size: 11px; line-height: 1.4; }

/* 03 — material construction */

.bag-o3-materials {
  grid-template-columns: 250px 250px minmax(0, 1fr);
  min-block-size: 510px;
  gap: 30px;
  padding-inline-start: 0;
  background: #f8f6f1 !important;
}
.bag-o3-material-feature { align-self: stretch; min-block-size: 400px; overflow: hidden; }
.bag-o3-material-feature img { block-size: 100%; object-fit: cover; object-position: 58% 50%; }
.bag-o3-materials .bag-o3-section-intro { align-self: center; }
.bag-o3-material-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; align-items: stretch; }
.bag-o3-material-grid article {
  display: flex;
  flex-direction: column;
  min-inline-size: 0;
  padding: 16px 12px 14px;
  border: 1px solid #e2e1dc;
  background: #fff;
}
.bag-o3-material-grid h3 { min-block-size: 36px; font-size: 13px; font-weight: 820; line-height: 1.15; }
.bag-o3-material-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; }
.bag-o3-material-pair figure { min-inline-size: 0; }
.bag-o3-material-pair span { display: block; margin-block-end: 5px; color: var(--bag-muted); font-size: 8px; font-weight: 800; text-transform: uppercase; }
.bag-o3-material-pair img { block-size: 118px; object-fit: cover; background: #ece9e2; }
.bag-o3-material-grid article > p { margin-block-start: 13px; color: var(--bag-navy-deep); font-size: 10px; font-weight: 720; line-height: 1.4; }
.bag-o3-material-grid small { display: block; margin-block-start: auto; padding-block-start: 11px; color: var(--bag-muted); font-size: 8.5px; line-height: 1.35; }

/* 04 — movement map */

.bag-o3-movement { min-block-size: 380px; align-items: center; }
.bag-o3-movement-layout { display: grid; grid-template-columns: minmax(160px, .7fr) minmax(360px, 1.45fr) minmax(160px, .7fr); gap: 20px; align-items: center; }
.bag-o3-movement-layout figure img { block-size: 285px; object-fit: contain; }
.bag-o3-movement-list { display: grid; gap: 16px; }
.bag-o3-movement-list article { padding-block: 10px 12px; border-block-end: 1px solid #d9cec3; }
.bag-o3-movement-list h3 { color: var(--bag-navy-deep); font-size: 13px; font-weight: 820; }
.bag-o3-movement-list p { margin-block-start: 4px; color: var(--bag-copy); font-size: 10px; line-height: 1.35; }
.bag-o3-movement-left { text-align: end; }

/* 05 — assembly sequence */

.bag-o3-assembly { display: block; padding-block-end: 42px; }
.bag-o3-assembly .bag-o3-section-intro { max-inline-size: 520px; margin-block-end: 28px; }
.bag-o3-process-figure { position: relative; overflow: hidden; border: 1px solid var(--bag-border); }
.bag-o3-process-figure img { block-size: 255px; object-fit: cover; }
.bag-o3-process-labels {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
  border-inline: 1px solid var(--bag-border);
  border-block-end: 1px solid var(--bag-border);
}
.bag-o3-process-labels li { min-inline-size: 0; padding: 14px 12px 16px; border-inline-end: 1px solid var(--bag-border); }
.bag-o3-process-labels li:last-child { border-inline-end: 0; }
.bag-o3-process-labels span { display: block; color: var(--bag-copper); font-size: 9px; font-weight: 850; }
.bag-o3-process-labels strong { display: block; margin-block-start: 4px; color: var(--bag-navy-deep); font-size: 11px; line-height: 1.2; }
.bag-o3-process-labels small { display: block; margin-block-start: 5px; color: var(--bag-muted); font-size: 8px; line-height: 1.35; }

/* 06 — buyer-defined validation */

.bag-o3-validation { min-block-size: 420px; background: #f8f6f1 !important; }
.bag-o3-validation-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 24px; align-items: stretch; }
.bag-o3-validation-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); border-block-start: 1px solid var(--bag-border); border-inline-start: 1px solid var(--bag-border); }
.bag-o3-validation-grid article { min-inline-size: 0; padding: 18px 14px; border-inline-end: 1px solid var(--bag-border); border-block-end: 1px solid var(--bag-border); background: rgb(255 255 255 / 70%); }
.bag-o3-validation-grid img { inline-size: 30px; block-size: 30px; object-fit: contain; filter: sepia(.25) saturate(.8); }
.bag-o3-validation-grid h3 { margin-block-start: 10px; font-size: 11px; font-weight: 820; }
.bag-o3-validation-grid p { margin-block-start: 4px; color: var(--bag-muted); font-size: 8.5px; line-height: 1.35; }
.bag-o3-validation-layout > figure { overflow: hidden; }
.bag-o3-validation-layout > figure img { block-size: 100%; min-block-size: 300px; object-fit: cover; object-position: 45% 50%; }
.bag-o3-disclaimer { grid-column: 2; margin-block-start: -18px !important; color: var(--bag-muted); font-size: 10px; line-height: 1.45; }

/* 07 — supplier evidence */

.bag-o3-supplier { min-block-size: 390px; }
.bag-o3-evidence-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); border-block-start: 1px solid var(--bag-border); border-inline-start: 1px solid var(--bag-border); }
.bag-o3-evidence-grid article { min-inline-size: 0; padding: 22px 14px; border-inline-end: 1px solid var(--bag-border); border-block-end: 1px solid var(--bag-border); }
.bag-o3-evidence-grid img { inline-size: 38px; block-size: 38px; object-fit: contain; }
.bag-o3-evidence-grid h3 { margin-block-start: 15px; font-size: 12px; font-weight: 820; line-height: 1.22; }
.bag-o3-evidence-grid p { margin-block-start: 8px; color: var(--bag-muted); font-size: 8.7px; line-height: 1.45; }

/* 08 — review pack */

.bag-o3-review { display: block; min-block-size: 420px; background: #f8f6f1 !important; }
.bag-o3-review .bag-o3-section-intro { max-inline-size: 600px; margin-block-end: 24px; }
.bag-o3-review-figure { position: relative; overflow: hidden; border: 1px solid var(--bag-border); background: #fff; }
.bag-o3-review-figure img { block-size: 230px; object-fit: cover; }
.bag-o3-review-labels {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  margin: 0;
  padding: 0;
  list-style: none;
  border-inline: 1px solid var(--bag-border);
  border-block-end: 1px solid var(--bag-border);
  background: #fff;
}
.bag-o3-review-labels li { min-inline-size: 0; display: grid; grid-template-columns: 22px 1fr; gap: 7px; padding: 14px 12px; border-inline-end: 1px solid var(--bag-border); }
.bag-o3-review-labels li:last-child { border-inline-end: 0; }
.bag-o3-review-labels span { color: var(--bag-copper); font-family: Georgia, serif; font-size: 19px; line-height: 1; }
.bag-o3-review-labels strong { color: var(--bag-navy-deep); font-size: 9.5px; line-height: 1.25; }

/* 09 — FAQ */

.bag-o3-faq { min-block-size: 300px; }
.bag-o3-faq-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; border-block-start: 1px solid var(--bag-border); border-inline-start: 1px solid var(--bag-border); }
.bag-o3-faq details { padding: 19px 18px; border-inline-end: 1px solid var(--bag-border); border-block-end: 1px solid var(--bag-border); }
.bag-o3-faq summary { color: var(--bag-navy-deep); font-size: 12px; font-weight: 820; line-height: 1.35; cursor: pointer; }
.bag-o3-faq details p { margin-block-start: 11px; color: var(--bag-copy); font-size: 10px; line-height: 1.55; }

/* 10 — direct inquiry */

.bag-o3-contact { min-block-size: 320px; align-items: center; background: #f8f6f1 !important; }
.bag-o3-contact-grid { display: grid; grid-template-columns: 1fr 1fr 1.25fr; gap: 16px; align-items: stretch; }
.bag-o3-contact-card {
  display: grid;
  align-content: center;
  min-block-size: 190px;
  padding: 24px;
  border: 1px solid var(--bag-border);
  color: var(--bag-navy-deep);
  background: #fff;
  text-decoration: none;
}
.bag-o3-contact-card img { inline-size: 30px; block-size: 30px; object-fit: contain; }
.bag-o3-contact-card span { margin-block-start: 16px; color: var(--bag-copper); font-size: 10px; font-weight: 820; text-transform: uppercase; }
.bag-o3-contact-card strong { margin-block-start: 6px; font-size: 12px; overflow-wrap: anywhere; }
.bag-o3-contact-card b { align-self: end; display: inline-flex; justify-content: center; margin-block-start: 18px; padding: 11px 13px; color: #fff; background: var(--bag-navy-deep); font-size: 10px; }
.bag-o3-contact-grid figure { min-block-size: 190px; overflow: hidden; }
.bag-o3-contact-grid figure img { block-size: 100%; object-fit: cover; }

.bag-o3-footer { margin: 0; color: #dce6ee; background: var(--bag-navy-deep); }
.bag-o3-footer .footer-grid { padding-block: 44px; }
.bag-o3-footer .footer-brand img { filter: brightness(0) invert(1); opacity: .95; }
.bag-o3-footer p,
.bag-o3-footer a,
.bag-o3-footer .footer-label { color: #dce6ee; }

@media (max-width: 1180px) {
  .bag-o3-section { grid-template-columns: 230px minmax(0, 1fr); gap: 28px; padding-inline: 34px; }
  .bag-o3-hero-copy { padding-inline: 40px; }
  .bag-o3-materials { grid-template-columns: 210px 210px minmax(0, 1fr); padding-inline-start: 0; }
  .bag-o3-material-grid { gap: 7px; }
  .bag-o3-material-grid article { padding-inline: 8px; }
  .bag-o3-material-pair img { block-size: 96px; }
  .bag-o3-evidence-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .bag-o3-validation-layout { grid-template-columns: minmax(0, 1fr) 240px; }
}

@media (max-width: 900px) {
  .bag-assembly-path .bag-story-page { padding-block-start: 60px; }

  .bag-o3-hero { grid-template-columns: 1fr; min-block-size: 0; }
  .bag-o3-hero-copy { padding: 50px 28px 42px; }
  .bag-o3-hero h1 { max-inline-size: 720px; font-size: clamp(44px, 8.5vw, 64px); }
  .bag-o3-hero-media { min-block-size: 420px; }

  .bag-o3-section,
  .bag-o3-materials { grid-template-columns: 1fr; gap: 28px; padding: 40px 28px; }
  .bag-o3-section-intro { max-inline-size: 620px; }
  .bag-o3-product-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
  .bag-o3-product-grid img { block-size: 130px; }
  .bag-o3-product-grid p { display: none; }

  .bag-o3-component-layout { grid-template-columns: 1fr; }
  .bag-o3-exploded img { block-size: auto; max-block-size: 540px; }
  .bag-o3-callouts { grid-template-columns: 1fr 1fr; }
  .bag-o3-callouts article:nth-child(odd) { border-inline-end: 1px solid var(--bag-border); padding-inline-end: 18px; }
  .bag-o3-callouts article:nth-child(even) { padding-inline-start: 18px; }

  .bag-o3-material-feature { display: none; }
  .bag-o3-material-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .bag-o3-material-pair img { block-size: 112px; }

  .bag-o3-movement-layout { grid-template-columns: 1fr 2fr 1fr; }
  .bag-o3-validation-layout { grid-template-columns: 1fr; }
  .bag-o3-validation-layout > figure { display: none; }
  .bag-o3-disclaimer { grid-column: 1; margin-block-start: 0 !important; }

  .bag-o3-process-figure img { block-size: 190px; }
  .bag-o3-process-labels small { display: none; }
  .bag-o3-evidence-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .bag-o3-review-figure img { block-size: 190px; }
}

@media (max-width: 620px) {
  .bag-o3-hero-copy { padding: 38px 20px 32px; }
  .bag-o3-eyebrow { font-size: 9px; }
  .bag-o3-hero h1 { margin-block-start: 12px; font-size: 41px; line-height: 1; }
  .bag-o3-hero-lead { margin-block-start: 13px !important; font-size: 17px; }
  .bag-o3-hero-body { margin-block-start: 13px !important; font-size: 12px; line-height: 1.5; }
  .bag-o3-actions { display: grid; grid-template-columns: 1fr; margin-block-start: 21px; }
  .bag-o3-button { inline-size: 100%; min-block-size: 45px; padding-inline: 14px; }
  .bag-o3-hero-media { min-block-size: 300px; }
  .bag-o3-hero-media img { object-position: 62% 50%; }
  .bag-o3-hero-media figcaption { inset-inline: 10px; inset-block-end: 8px; font-size: 7px; }

  .bag-o3-section,
  .bag-o3-materials { gap: 22px; padding: 30px 20px; }
  .bag-o3-section-intro { grid-template-columns: 48px minmax(0, 1fr); gap: 12px; }
  .bag-o3-number { font-size: 43px; }
  .bag-o3-section-intro h2 { margin-block-start: 7px; font-size: 22px; line-height: 1.08; }
  .bag-o3-section-intro > div > p:not(.bag-o3-eyebrow) { margin-block-start: 11px; font-size: 11px; }

  .bag-o3-product-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
  .bag-o3-product-grid img { block-size: 76px; }
  .bag-o3-product-grid h3 { margin-block-start: 7px; font-size: 9px; line-height: 1.1; }

  .bag-o3-exploded img { block-size: 300px; }
  .bag-o3-exploded figcaption { font-size: 6.5px; }
  .bag-o3-callouts { grid-template-columns: 1fr 1fr; }
  .bag-o3-callouts article { grid-template-columns: 22px minmax(0, 1fr); gap: 8px; padding-block: 11px; }
  .bag-o3-callouts article:nth-child(odd) { padding-inline-end: 10px; }
  .bag-o3-callouts article:nth-child(even) { padding-inline-start: 10px; }
  .bag-o3-callouts h3 { font-size: 11px; }
  .bag-o3-callouts p { font-size: 8px; }

  .bag-o3-material-grid { grid-template-columns: 1fr; gap: 8px; }
  .bag-o3-material-grid article { display: grid; grid-template-columns: 94px 120px minmax(0, 1fr); gap: 10px; align-items: center; padding: 10px; }
  .bag-o3-material-grid h3 { min-block-size: 0; font-size: 11px; }
  .bag-o3-material-pair { grid-template-columns: 1fr 1fr; }
  .bag-o3-material-pair span { display: none; }
  .bag-o3-material-pair img { block-size: 50px; }
  .bag-o3-material-grid article > p { margin: 0; font-size: 8px; }
  .bag-o3-material-grid small { display: none; }

  .bag-o3-movement-layout { grid-template-columns: 1fr 1.45fr 1fr; gap: 8px; }
  .bag-o3-movement-layout figure img { block-size: 170px; }
  .bag-o3-movement-list { gap: 5px; }
  .bag-o3-movement-list article { padding-block: 5px; }
  .bag-o3-movement-list h3 { font-size: 9px; }
  .bag-o3-movement-list p { font-size: 7px; }

  .bag-o3-assembly .bag-o3-section-intro,
  .bag-o3-review .bag-o3-section-intro { margin-block-end: 18px; }
  .bag-o3-process-figure img { block-size: 125px; }
  .bag-o3-process-figure figcaption { position: static; color: var(--bag-muted); background: #fff; font-size: 7px; }
  .bag-o3-process-labels { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .bag-o3-process-labels li { padding: 9px 7px; border-block-end: 1px solid var(--bag-border); }
  .bag-o3-process-labels strong { font-size: 8px; }

  .bag-o3-validation-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .bag-o3-validation-grid article { padding: 13px 9px; }
  .bag-o3-validation-grid img { inline-size: 24px; block-size: 24px; }
  .bag-o3-validation-grid h3 { font-size: 9px; }
  .bag-o3-validation-grid p { font-size: 7px; }
  .bag-o3-disclaimer { font-size: 8px; }

  .bag-o3-evidence-grid { grid-template-columns: 1fr 1fr; }
  .bag-o3-evidence-grid article { padding: 15px 12px; }
  .bag-o3-evidence-grid img { inline-size: 28px; block-size: 28px; }
  .bag-o3-evidence-grid h3 { margin-block-start: 10px; font-size: 10px; }
  .bag-o3-evidence-grid p { font-size: 7.5px; }

  .bag-o3-review-figure img { block-size: 112px; }
  .bag-o3-review-figure figcaption { position: static; color: var(--bag-muted); background: #fff; font-size: 7px; }
  .bag-o3-review-labels { grid-template-columns: 1fr 1fr; }
  .bag-o3-review-labels li { padding: 9px 8px; }
  .bag-o3-review-labels strong { font-size: 8px; }

  .bag-o3-faq-grid { grid-template-columns: 1fr; }
  .bag-o3-faq details { padding: 15px 14px; }
  .bag-o3-faq summary { font-size: 11px; }
  .bag-o3-faq details p { font-size: 9px; }

  .bag-o3-contact-grid { grid-template-columns: 1fr; }
  .bag-o3-contact-card { min-block-size: 150px; padding: 18px; }
  .bag-o3-contact-grid figure { min-block-size: 180px; }
  .bag-o3-footer .footer-grid { padding-block: 34px; }
}

@media (prefers-reduced-motion: reduce) {
  .bag-o3-button { transition: none; }
}
