/* ==========================================================================
   imsi.css — the join between the brand layer (imsi-base.css + printshop.css / encore.css, generated from
   the landing design) and Hummingbird 2.0's own pages: listings, product, cart, checkout, account.

   Hummingbird puts Bootstrap in @layer, so these unlayered rules win without !important
   (mem:hummingbird-layer-important). Brand colours come from the brand layer's tokens (--accent…); the
   Bootstrap variables that need an rgb triple are set per brand from the body class the imsistore module adds.
   ========================================================================== */

/* ---------- Bootstrap in the brand's colours ---------- */
body.imsi-broderbund { --imsi-rgb: 0, 95, 173; }
body.imsi-printshop  { --imsi-rgb: 0, 74, 143; }
body.imsi-encore     { --imsi-rgb: 14, 65, 107; }
body.imsi-printmaster { --imsi-rgb: 102, 45, 145; }
body[class*="imsi-"] {
  --bs-primary: var(--accent);
  --bs-primary-rgb: var(--imsi-rgb);
  --bs-link-color: var(--accent-text);
  --bs-link-color-rgb: var(--imsi-rgb);
  --bs-link-hover-color: var(--ink);
  --bs-body-font-family: var(--font-body);
  --bs-body-color: var(--ink);
  --bs-body-bg: var(--paper);
  --bs-border-color: var(--rule);
  --bs-border-radius: var(--radius);
  --bs-focus-ring-color: rgba(var(--imsi-rgb), 0.3);
  font-family: var(--font-body);
}
body[class*="imsi-"] :is(h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6) { font-family: var(--font-display); letter-spacing: -0.01em; }
.btn-primary {
  --bs-btn-bg: var(--accent); --bs-btn-border-color: var(--accent); --bs-btn-color: var(--accent-ink);
  --bs-btn-hover-bg: var(--ink); --bs-btn-hover-border-color: var(--ink); --bs-btn-hover-color: #fff;
  --bs-btn-active-bg: var(--ink); --bs-btn-active-border-color: var(--ink);
  --bs-btn-disabled-bg: var(--accent); --bs-btn-disabled-border-color: var(--accent);
  font-weight: 700;
}
.btn-outline-primary {
  --bs-btn-color: var(--accent-text); --bs-btn-border-color: var(--accent);
  --bs-btn-hover-bg: var(--accent); --bs-btn-hover-border-color: var(--accent); --bs-btn-hover-color: var(--accent-ink);
  --bs-btn-active-bg: var(--accent); --bs-btn-active-border-color: var(--accent);
}
/* imsi-base.css's plain a{color} is unlayered, Hummingbird's Bootstrap .btn color is layered, so the link colour won on
   every <a class="btn"> (cart modal "Proceed to checkout" and the cart page button were purple-on-purple on PrintMaster,
   blue-on-blue elsewhere; mem:hummingbird-layer-important). A class selector, unlayered, puts the button colour back. */
a.btn { color: var(--bs-btn-color); }
a.btn:hover, a.btn:focus-visible { color: var(--bs-btn-hover-color); }
a.btn:active, a.btn.active { color: var(--bs-btn-active-color, var(--bs-btn-hover-color)); }
.bb-news .bb-news__status.is-error { color: #ffd6d6; }
.bb-news .bb-news__gdpr { flex: 1 1 100%; font-size: var(--step--1); opacity: 0.9; }
.form-check-input:checked { background-color: var(--accent); border-color: var(--accent); }
.form-control:focus, .form-select:focus { border-color: var(--accent); box-shadow: 0 0 0 0.2rem rgba(var(--imsi-rgb), 0.2); }
.page-link { --bs-pagination-active-bg: var(--accent); --bs-pagination-active-border-color: var(--accent); --bs-pagination-color: var(--accent-text); }
.badge.bg-primary, .bg-primary { background-color: var(--accent) !important; }
.text-primary { color: var(--accent-text) !important; }

/* ---------- the designed header inside Hummingbird's <header id="header"> ---------- */
#header.header { background: var(--paper); padding: 0; border: 0; box-shadow: none; }
.bb-chrome { background: transparent; }
.bb-actions { display: flex; align-items: center; gap: 0.25rem; }
.bb-actions #_desktop_ps_customersignin,
.bb-actions #_desktop_ps_shoppingcart,
.bb-actions .ps-customersignin,
.bb-actions .ps-shoppingcart,
.bb-actions .blockcart { display: contents; }
.bb-actions .dropdown { position: relative; }
.bb-actions .dropdown-toggle::after { display: none; }
.bb-actions .dropdown-menu { font-size: 0.92rem; }
.bb-search { margin: 0; }
.bb-search label { display: flex; align-items: center; gap: 0.5rem; width: 100%; margin: 0; }
.bb-nav a[aria-current="page"] { color: var(--accent-text); box-shadow: inset 0 -3px 0 var(--accent); }

/* ---------- designed pages run edge to edge; their sections carry their own .bb-wrap ---------- */
#wrapper:has(> .imsi-designed), #wrapper:has(.imsi-designed) { padding-top: 0; padding-bottom: 0; }
.imsi-designed { width: 100%; }
body#index .breadcrumb__wrapper, body.imsi-designed-page .breadcrumb__wrapper { display: none; }

/* ---------- legal / help pages: Hummingbird layout, brand type ---------- */
.imsi-prose-page { padding-bottom: 3rem; }
.imsi-prose-page .page-content { max-width: 74ch; font-size: var(--step-0); line-height: 1.7; }
.imsi-prose-page .page-content :is(h2, h3) { margin-top: 1.8em; margin-bottom: 0.5em; }
.imsi-prose-page .page-content p { margin-bottom: 1em; }
.imsi-prose-page .page-content ul, .imsi-prose-page .page-content ol { margin-bottom: 1em; }

/* ---------- newsletter block (ps_emailsubscription) inside the designed band ---------- */
.bb-news .email-subscription, .bb-news .block_newsletter { margin: 0; padding: 0; background: none; }
.bb-news .email-subscription__content > p:first-child,
.bb-news .email-subscription__title, .bb-news .block_newsletter h2 { display: none; }
.bb-news form { display: flex; flex-wrap: wrap; gap: 0.6rem; align-items: stretch; }
.bb-news input[type="email"] { flex: 1 1 16rem; min-height: 2.9rem; border-radius: var(--radius); border: 1px solid var(--rule-strong); padding: 0 0.9rem; font: inherit; }
.bb-news .btn, .bb-news button[type="submit"], .bb-news input[type="submit"] {
  background: var(--accent-ink); color: var(--accent); border: 0; font-weight: 700; padding: 0 1.3rem; min-height: 2.9rem; border-radius: var(--radius);
}
.bb-news .email-subscription__legal, .bb-news .psgdpr_consent_message, .bb-news small { font-size: var(--step--1); opacity: 0.9; }

/* ---------- product page: the family's editions ---------- */
.imsi-editions { border: 0; margin: 0 0 1.25rem; padding: 0; }
.imsi-editions__legend { font-size: var(--step--1); font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); margin-bottom: 0.5rem; }
.imsi-editions__list { display: grid; grid-template-columns: repeat(auto-fill, minmax(12.5rem, 1fr)); gap: 0.5rem; }
.imsi-edition {
  display: flex; flex-direction: column; gap: 0.15rem; padding: 0.7rem 0.85rem; border: 1px solid var(--rule-strong);
  border-radius: var(--radius); background: var(--surface); color: var(--ink); text-decoration: none; line-height: 1.3;
}
.imsi-edition b { font-weight: 600; font-size: 0.93rem; }
.imsi-edition span { font-variant-numeric: tabular-nums; color: var(--muted); font-size: 0.9rem; }
.imsi-edition:hover { border-color: var(--accent); color: var(--ink); }
.imsi-edition.is-current { border: 2px solid var(--accent); padding: calc(0.7rem - 1px) calc(0.85rem - 1px); background: var(--accent-soft); }
.imsi-edition.is-current span { color: var(--accent-text); }
.imsi-edition-one { font-weight: 600; color: var(--muted); margin: 0 0 1rem; }
.imsi-assure { list-style: none; margin: 1rem 0 0; padding: 0; display: grid; gap: 0.3rem; font-size: 0.92rem; color: var(--ink-soft); }
.imsi-assure li::before { content: "✓"; color: var(--accent); font-weight: 800; margin-right: 0.5rem; }
.product__description h2 { font-size: var(--step-1); margin: 1.5em 0 0.5em; }
.product__description img { max-width: 100%; height: auto; }

/* ---------- listings ---------- */
.product-miniature .product-miniature__title a, .product-miniature__title { color: var(--ink); }
.product-miniature .price, .product-miniature__price { color: var(--ink); font-weight: 700; }
.category-header, .block-category { border-radius: var(--radius); }

/* ---------- the ETS cookie notice: brand type, a quiet frame, never wider than the phone ---------- */
.imsi-cb-declined .ets_cookie_banber_block { display: none !important; }
body[class*="imsi-"] .ets_cookie_banber_block { font-family: var(--font-body) !important; font-size: 0.9rem !important; line-height: 1.5; box-shadow: 0 24px 50px -28px rgba(18, 26, 51, 0.5); max-width: calc(100vw - 24px); }
body[class*="imsi-"] .ets_cookie_banner_content a { color: var(--accent-text); font-weight: 600; }
body[class*="imsi-"] .ets_cookie_banber_block .btn { border-radius: var(--radius); font-weight: 700; }

/* ---------- checkout ---------- */
body#checkout { background: var(--ground); }
body#checkout .step, body#checkout .checkout-step { border-radius: var(--radius); }

/* ---------- checkout: two defects found by the printmaster.com audit (2026-10-03, 375px) ---------- */
/* 1. Braintree's card form lays out expiry + CVC in .bt__form-row with -15px side margins and expects Bootstrap-3 column padding;
      Hummingbird (Bootstrap 5) has none, so both fields sat 15px off the left edge and the labels were clipped. */
body#checkout .braintree-card .bt__form-row { margin-left: 0; margin-right: 0; display: flex; flex-wrap: wrap; gap: 0 1rem; }
body#checkout .braintree-card .bt__form-row > .form-group { flex: 1 1 11rem; max-width: 100%; width: auto; padding-left: 0; padding-right: 0; }
/* 2. The cookie notice floated over the card fields and Place Order on phones. On the checkout it becomes a slim bar at the foot
      of the screen, and the page keeps room beneath it so nothing is ever hidden behind it. */
@media (max-width: 767.98px) {
  body#checkout .ets_cookie_banber_block { left: 0 !important; right: 0 !important; bottom: 0 !important; width: 100% !important; max-width: none !important;
    border-radius: 0 !important; padding: 0.5rem 0.75rem !important; display: flex !important; flex-wrap: wrap; align-items: center; gap: 0.35rem 0.75rem; }
  body#checkout .ets_cookie_banber_block .ets_cookie_banner_content { flex: 1 1 100%; font-size: 0.78rem !important; line-height: 1.3 !important; margin: 0 !important; padding-right: 1.5rem; }
  body#checkout .ets_cookie_banber_block .ets_cookie_banner_footer { display: flex; gap: 0.5rem; margin: 0 !important; width: 100%; }
  body#checkout .ets_cookie_banber_block .ets_cookie_banner_footer .btn { flex: 1; padding: 0.3rem 0.5rem !important; font-size: 0.85rem !important; float: none !important; }
  html:not(.imsi-cb-declined) body#checkout { padding-bottom: 7rem; }
}

/* ---------- product page: reassurance row (replaces the share buttons) and the add-on box ---------- */
.imsi-trust { list-style: none; margin: 1.25rem 0 0; padding: 1rem 0 0; border-top: 1px solid var(--rule, #ddd6e8); display: grid; gap: 0.9rem; }
.imsi-trust li { display: grid; grid-template-columns: 1.75rem 1fr; column-gap: 0.75rem; row-gap: 0.1rem; align-items: start; font-size: 0.9rem; line-height: 1.4; color: var(--ink-soft, #4a4560); }
.imsi-trust svg { grid-row: 1 / span 2; width: 1.6rem; height: 1.6rem; color: var(--accent, var(--bs-primary)); }
.imsi-trust b { color: var(--ink, inherit); font-weight: 700; }
.imsi-trust__cards { display: block !important; }
.imsi-trust__cards img { display: block; width: 100%; max-width: 17rem; height: auto; opacity: 0.9; }
body[class*="imsi-"] .imsi-addons { border: 1px solid var(--rule, #ddd6e8); border-radius: var(--radius, 0.5rem); background: var(--surface, #fff); padding: 0.9rem 1rem; }
body[class*="imsi-"] .imsi-addons__h { font-family: var(--font-ui, inherit) !important; color: var(--ink-soft, #4a4560) !important; }
body[class*="imsi-"] .imsi-addon input { accent-color: var(--accent, var(--bs-primary)); }
body[class*="imsi-"] .imsi-addon__t { font-family: var(--font-body, inherit); color: var(--ink, inherit); }
body[class*="imsi-"] .imsi-addon small { color: var(--ink-soft, #4a4560); }

/* ---------- header search suggestions (imsi.js) ---------- */
.imsi-suggest { position: absolute; z-index: 1050; left: 0; right: 0; top: calc(100% + 6px); background: var(--surface, #fff); border: 1px solid var(--rule, #ddd6e8);
  border-radius: var(--radius, 0.5rem); box-shadow: 0 22px 44px -24px rgba(18, 26, 51, 0.5); overflow: hidden; text-align: left; }
.imsi-suggest__item { display: flex; align-items: center; gap: 0.75rem; padding: 0.55rem 0.9rem; color: var(--ink, inherit); text-decoration: none; }
.imsi-suggest__item img { width: 40px; height: 40px; object-fit: contain; flex: none; border-radius: 4px; background: #fff; }
.imsi-suggest__item.is-current, .imsi-suggest__item:hover { background: var(--accent-soft, #f1ecf7); color: var(--ink, inherit); }
.imsi-suggest__name { flex: 1 1 auto; min-width: 0; font-size: 0.95rem; line-height: 1.3; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.imsi-suggest__price { flex: none; font-weight: 700; font-size: 0.9rem; color: var(--accent-text, var(--accent, inherit)); }
.imsi-suggest__all { display: block; width: 100%; padding: 0.7rem 0.9rem; border: 0; border-top: 1px solid var(--rule, #ddd6e8); background: transparent; color: var(--accent-text, var(--accent, inherit));
  font: 700 0.9rem var(--font-ui, inherit); text-align: left; cursor: pointer; }
.imsi-suggest__none { margin: 0; padding: 0.85rem 0.9rem; font-size: 0.9rem; color: var(--ink-soft, #4a4560); }

/* ---------- cart and checkout polish (2026-10-03) ---------- */
/* the desktop stepper rendered as an empty bar: draw it */
body#checkout .checkout-steps { background: var(--surface, #fff); border-bottom: 1px solid var(--rule, #ddd6e8); }
@media (min-width: 992px) { body#checkout .checkout-steps__desktop { display: block !important; } }
body#checkout .checkout-steps__desktop { max-width: 1180px; margin: 0 auto; padding: 0.85rem 1rem; }
body#checkout .checkout-steps__list { display: flex; flex-wrap: wrap; gap: 0.5rem 2rem; list-style: none; margin: 0; padding: 0; }
body#checkout .checkout-steps__step { display: flex; align-items: center; gap: 0.6rem; color: var(--ink-soft, #4a4560); }
body#checkout .checkout-steps__number { display: grid; place-items: center; width: 1.9rem; height: 1.9rem; border-radius: 50%; border: 2px solid var(--rule, #ddd6e8);
  background: #fff; color: var(--ink, inherit); font: 700 0.9rem var(--font-ui, inherit); }
body#checkout .checkout-steps__btn { padding: 0; color: inherit !important; font-weight: 600; text-decoration: none; border: 0; background: none; }
body#checkout .checkout-steps__step--current { color: var(--ink, inherit); }
body#checkout .checkout-steps__step--current .checkout-steps__number { background: var(--accent, var(--bs-primary)); border-color: var(--accent, var(--bs-primary)); color: var(--accent-ink, #fff); }
body#checkout .checkout-steps__step--success .checkout-steps__number { background: var(--accent-soft, #efe8f5); border-color: var(--accent, var(--bs-primary)); color: var(--accent-text, inherit); }
/* summary panels: a real card, with air */
body#cart .cart-summary__totals, body#checkout .checkout__summary-accordion-wrapper { background: var(--surface, #fff); border: 1px solid var(--rule, #ddd6e8);
  border-radius: var(--radius, 0.5rem); padding: 1.25rem 1.5rem; }
body#checkout .checkout__summary-accordion-wrapper { position: sticky; top: 1rem; }
body#cart .cart-summary__line, body#checkout .cart-summary__line { padding: 0.45rem 0; }
body#cart .cart-summary__line--grand, body#checkout .cart-summary__line--grand { font-size: 1.2rem; padding-top: 0.75rem; }
body#checkout .cart-summary__top::before { content: "Order summary"; display: block; margin-bottom: 0.4rem; font: 700 1.15rem var(--font-display, inherit); color: var(--ink, inherit); }
.imsi-assure-checkout { list-style: none; margin: 1rem 0 0; padding: 1rem 0 0; border-top: 1px solid var(--rule, #ddd6e8); display: grid; gap: 0.7rem; font-size: 0.85rem; line-height: 1.4; color: var(--ink-soft, #4a4560); }
.imsi-assure-checkout li { display: grid; grid-template-columns: 1.4rem 1fr; gap: 0.6rem; align-items: start; }
.imsi-assure-checkout svg { width: 1.3rem; height: 1.3rem; color: var(--accent, var(--bs-primary)); }
.imsi-assure-checkout__cards { display: block !important; }
.imsi-assure-checkout__cards img { display: block; width: 100%; max-width: 15rem; height: auto; opacity: 0.9; }
/* guest form: fields a download store never needs, and hints that only add noise */
#customer-form .mb-3:has(input[name="id_gender"]) { display: none; }
#customer-form input[name="firstname"] ~ .form-text, #customer-form input[name="lastname"] ~ .form-text,
#checkout-addresses-step input[name="firstname"] ~ .form-text, #checkout-addresses-step input[name="lastname"] ~ .form-text { display: none; }
/* product flags: every product here is "online only" and, for 20 days, "new"; neither tells the buyer anything */
.product-flag.online-only, .product-flags .online-only, li.product-flag.online-only { display: none !important; }
/* stepper: the parent theme draws connector lines with pseudo-elements that run through the labels once the labels are visible */
body#checkout .checkout-steps__step::before, body#checkout .checkout-steps__step::after { display: none !important; content: none !important; }
body#checkout .checkout-steps__list { flex-wrap: nowrap; gap: 0.25rem 0.5rem; overflow-x: auto; align-items: center; }
body#checkout .checkout-steps__step { flex: 0 0 auto; white-space: nowrap; font-size: 0.92rem; }
body#checkout .checkout-steps__step + .checkout-steps__step { margin-left: 0.5rem; padding-left: 1.1rem; border-left: 1px solid var(--rule, #ddd6e8); }
body#checkout .checkout-steps__btn { font-size: inherit; }

/* ---------- imported guides, tutorials, blog (cms/_guide.tpl) ---------- */
.imsi-guide { display: grid; grid-template-columns: minmax(0, 19rem) minmax(0, 1fr); gap: clamp(1.25rem, 3vw, 2.5rem); max-width: 1240px; margin: 0 auto; padding: 1.5rem 1rem 3rem; align-items: start; }
.imsi-guide__nav { position: sticky; top: 1rem; max-height: calc(100vh - 2rem); overflow: auto; padding-right: 0.5rem; font-size: 0.92rem; line-height: 1.35; }
.imsi-guide__search input { width: 100%; padding: 0.55rem 0.8rem; border: 1px solid var(--rule, #d6dbe6); border-radius: var(--radius, 0.5rem); background: var(--surface, #fff); font: inherit; }
.imsi-guide__results { margin-top: 0.4rem; border: 1px solid var(--rule, #d6dbe6); border-radius: var(--radius, 0.5rem); background: var(--surface, #fff); overflow: hidden; }
.imsi-guide__results a { display: block; padding: 0.55rem 0.8rem; text-decoration: none; color: var(--ink, inherit); border-bottom: 1px solid var(--rule, #eceff5); }
.imsi-guide__results a:last-child { border-bottom: 0; }
.imsi-guide__results a:hover { background: var(--accent-soft, #eef3fb); }
.imsi-guide__results small { display: block; color: var(--ink-soft, #5b6270); }
.imsi-guide__root { display: block; margin: 1rem 0 0.4rem; font: 800 1rem var(--font-ui, inherit); color: var(--ink, inherit); text-decoration: none; }
.imsi-guide__toc > summary { cursor: pointer; font-weight: 700; margin-bottom: 0.4rem; }
.imsi-guide__list { list-style: none; margin: 0; padding: 0; }
.imsi-guide__list .imsi-guide__list { margin-left: 0.85rem; border-left: 1px solid var(--rule, #d6dbe6); padding-left: 0.6rem; }
.imsi-guide__list li { margin: 0.1rem 0; }
.imsi-guide__list a { color: var(--ink-soft, #44506a); text-decoration: none; display: block; padding: 0.2rem 0.3rem; border-radius: 4px; }
.imsi-guide__list a:hover { color: var(--accent-text, var(--accent)); background: var(--accent-soft, #eef3fb); }
.imsi-guide__list li.is-current > a, .imsi-guide__list li.is-current > details > summary > a { color: var(--accent-text, var(--accent)); font-weight: 700; background: var(--accent-soft, #eef3fb); }
.imsi-guide__list summary { cursor: pointer; }
.imsi-guide__list summary > a { display: inline; }
.imsi-guide__play { font-size: 0.7em; opacity: 0.7; }
.imsi-guide__crumbs { font-size: 0.85rem; color: var(--ink-soft, #5b6270); margin-bottom: 0.6rem; }
.imsi-guide__crumbs a { color: inherit; }
.imsi-guide__title { font: 800 clamp(1.6rem, 3vw, 2.3rem)/1.15 var(--font-display, inherit); margin: 0 0 1.25rem; }
.imsi-guide__body { max-width: 52rem; font-size: 1.02rem; line-height: 1.65; }
.imsi-guide__body h2 { font-size: 1.4rem; margin: 2rem 0 0.6rem; }
.imsi-guide__body h3 { font-size: 1.15rem; margin: 1.5rem 0 0.5rem; }
.imsi-guide__body img { max-width: 100%; height: auto; margin: 0.5rem 0; border: 1px solid var(--rule, #e1e5ee); border-radius: 6px; background: #fff; }
.imsi-guide__body video { display: block; width: 100%; max-width: 52rem; height: auto; aspect-ratio: 16 / 9; background: #0b1022; border-radius: var(--radius, 0.5rem); margin: 0.5rem 0 1rem; }
.imsi-guide__body iframe { display: block; width: 100%; max-width: 52rem; aspect-ratio: 16 / 9; height: auto; border: 0; border-radius: var(--radius, 0.5rem); }
.imsi-guide__body table { display: block; max-width: 100%; overflow-x: auto; border-collapse: collapse; }
.imsi-guide__body th, .imsi-guide__body td { border: 1px solid var(--rule, #d6dbe6); padding: 0.4rem 0.6rem; vertical-align: top; }
.imsi-guide__body figure { margin: 1rem 0; }
.imsi-guide__body figcaption { font-size: 0.88rem; color: var(--ink-soft, #5b6270); }
.imsi-guide__cards { list-style: none; margin: 1.25rem 0 0; padding: 0; display: grid; gap: 0.75rem; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); }
.imsi-guide__cards a { display: flex; align-items: center; gap: 0.6rem; height: 100%; padding: 0.85rem 1rem; border: 1px solid var(--rule, #d6dbe6); border-radius: var(--radius, 0.5rem); background: var(--surface, #fff); color: var(--ink, inherit); text-decoration: none; font-weight: 600; }
.imsi-guide__cards a:hover { border-color: var(--accent, currentColor); }
.imsi-guide__folder { width: 1.1rem; height: 0.85rem; flex: none; border-radius: 2px 4px 2px 2px; background: var(--accent, #4c6ef5); opacity: 0.75; }
.imsi-guide__pager { display: flex; justify-content: space-between; gap: 1rem; margin-top: 2.5rem; padding-top: 1.25rem; border-top: 1px solid var(--rule, #d6dbe6); }
.imsi-guide__pager a { max-width: 48%; padding: 0.7rem 1rem; border: 1px solid var(--rule, #d6dbe6); border-radius: var(--radius, 0.5rem); text-decoration: none; color: var(--ink, inherit); font-weight: 600; }
.imsi-guide__pager small { display: block; font-weight: 400; color: var(--ink-soft, #5b6270); }
.imsi-guide__next { margin-left: auto; text-align: right; }
@media (max-width: 860px) {
  .imsi-guide { grid-template-columns: minmax(0, 1fr); }
  .imsi-guide__nav { position: static; max-height: none; overflow: visible; padding: 0; }
  .imsi-guide__toc:not([open]) > .imsi-guide__list { display: none; }
}
/* main#wrapper is a flex column/row in Hummingbird: without an explicit width the guide block shrinks to its content */
.imsi-guide-page { width: 100%; flex: 1 1 100%; }
.imsi-guide { width: 100%; box-sizing: border-box; }
.imsi-guide__main { min-width: 0; }

/* ---------- blog posts: hero image, LDS template galleries, listing thumbnails (2026-10-05) ---------- */
.imsi-guide__body figure.imsi-post-hero { margin: 0 0 1.5rem; }
.imsi-guide__body figure.imsi-post-hero img { display: block; width: 100%; max-height: 420px; object-fit: cover; margin: 0; }
.imsi-guide__body figure.imsi-post-gallery { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.75rem; margin: 1.25rem 0 1.5rem; }
.imsi-guide__body figure.imsi-post-gallery img { width: 100%; height: auto; aspect-ratio: 1; object-fit: contain; margin: 0; background: #fff; }
.imsi-guide__body figure.imsi-post-gallery figcaption { grid-column: 1 / -1; }
@media (max-width: 640px) { .imsi-guide__body figure.imsi-post-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.imsi-guide__cards a.has-thumb { flex-direction: column; align-items: stretch; padding: 0; overflow: hidden; }
.imsi-guide__cards a.has-thumb > span { padding: 0.75rem 1rem 0.9rem; }
.imsi-guide__thumb { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: contain; padding: 0.5rem; background: #fff; border-bottom: 1px solid var(--rule, #d6dbe6); }   /* contain: thumbnails are mostly logos, never crop them */
