/* Shared public chrome plus homepage-only refinements. */
.site-header { display: grid; grid-template-columns: auto minmax(240px, 1fr) auto auto; align-items: center; gap: 14px 20px; padding-top: 11px; padding-bottom: 11px; }
.main-nav { display: contents; }
.main-nav__links { display: flex; grid-column: 3; gap: 4px; white-space: nowrap; }
.main-nav__country, .mobile-nav-toggle { display: none; }
.main-nav a, .main-nav__pending { padding: 8px 11px; font-weight: 550; }
.main-nav a[aria-current=page] { background: #e8f3f1; color: var(--color-primary); }
.main-nav__pending { border-radius: 8px; color: var(--color-muted); font-size: 15px; }
.header-search { min-width: 0; }
.header-search input { min-height: 42px; background: #f7f9fa; }
.country-switcher { justify-self: end; }
.country-switcher summary { min-height: 40px; gap: 6px; padding: 8px 10px; font-size: 14px; white-space: nowrap; }
.country-switcher__label { margin-right: 3px; color: var(--color-muted); font-weight: 550; }
.country-switcher__arrow { color: var(--color-muted); font-size: 16px; line-height: .8; }
.country-flag { font-size: 17px; line-height: 1; }
.country-menu { width: 190px; }
.country-menu a { align-items: center; }
.country-menu a small { margin-left: auto; text-align: right; }
.site-footer { display: block; padding-top: 32px; padding-bottom: 22px; }
.site-footer__top { display: flex; align-items: flex-start; justify-content: space-between; gap: 28px 48px; }
.footer-brand { display: grid; gap: 10px; }
.site-footer nav { max-width: 620px; justify-content: flex-end; gap: 14px 26px; }
.footer-cookie-settings { margin: 0; padding: 0; border: 0; background: transparent; color: #b7c4c9; font: inherit; font-size: 14px; cursor: pointer; }
.footer-cookie-settings:hover { color: #fff; }
.site-footer nav span { color: #b7c4c9; font-size: 14px; }
.site-footer__bottom { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 28px; padding-top: 18px; border-top: 1px solid rgba(183,196,201,.16); }
.site-footer__bottom > small { color: #7e8f96; }
.country-switcher--footer { margin-left: auto; }
.country-switcher--footer summary { border-color: rgba(183,196,201,.35); background: rgba(255,255,255,.06); color: #fff; }
.country-switcher--footer .country-switcher__label, .country-switcher--footer .country-switcher__arrow { color: #b7c4c9; }
.country-switcher--footer .country-menu { top: auto; bottom: calc(100% + 8px); color: var(--color-text); }

.home-page-layout, .home-main-content { min-width: 0; }
.home-ad-rail { display: none; }
.home-hero { padding: clamp(24px, 3.5vw, 42px) 0 4px; }
.home-hero h1 { max-width: 760px; margin-inline: auto; font-size: clamp(30px, 4.4vw, 42px); font-weight: 600; text-wrap: balance; }
.home-hero p { max-width: 590px; margin-top: 12px; text-wrap: pretty; }
.home-section { margin-top: 26px; }
.home-section .section-title { margin-bottom: 15px; }
.home-section .section-title > h2 { color: var(--color-muted); }
.section-title--stack { align-items: flex-end; }
.section-link { color: var(--color-primary); font-size: 14px; font-weight: 750; }
.home-shop-actions { display: flex; align-items: center; gap: 7px; }
.rail-button { display: grid; width: 34px; height: 34px; place-items: center; border: 1px solid var(--color-border); border-radius: 9px; background: #fff; color: #3b4a51; font: inherit; cursor: pointer; }
.rail-button:hover { border-color: #bdcbd0; background: #f8fafb; }
.shop-carousel { display: flex; gap: 12px; overflow-x: auto; padding: 4px 0 11px; scroll-behavior: smooth; scroll-snap-type: x proximity; scrollbar-width: none; }
.shop-carousel::-webkit-scrollbar { display: none; }
.shop-carousel .shop-chip { flex: 0 0 auto; scroll-snap-align: start; }
.shop-carousel .shop-logo { background: #fff; border: 1px solid #edf1f3; }
.shop-carousel .shop-logo img { mix-blend-mode: normal; }
.home-ad-slot { display: grid; min-height: 92px; place-items: center; border: 1px dashed #d6dee1; border-radius: 12px; background: #fcfdfd; color: #94a3ab; font: 600 11px ui-monospace, SFMono-Regular, Menlo, monospace; }
.home-ad-slot span { letter-spacing: .1em; text-transform: uppercase; }
.home-ad-slot--horizontal-top { min-height: 120px; margin-top: 20px; }
.home-ad-slot--horizontal-middle { min-height: 120px; margin-top: 42px; }
.home-ad-slot--horizontal-bottom { min-height: 120px; margin-top: 42px; }
.home-ad-slot--vertical { height: 600px; min-height: 600px; }
.home-leaflet-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.home-leaflet-card { min-width: 0; overflow: hidden; border: 1px solid var(--color-border); border-radius: 15px; background: #fff; box-shadow: 0 1px 2px rgba(16,40,50,.04); transition: transform .18s, box-shadow .18s, border-color .18s; }
.home-leaflet-card:hover { transform: translateY(-3px); border-color: #d2dcdf; box-shadow: 0 16px 34px -18px rgba(16,40,50,.3); }
.home-leaflet-card > a { display: flex; height: 100%; flex-direction: column; color: var(--color-text); }
.home-leaflet-card__cover { position: relative; display: grid; aspect-ratio: 2 / 3; place-items: center; overflow: hidden; border-bottom: 1px solid #edf1f2; background: #f4f7f7; }
.home-leaflet-card__cover::after { position: absolute; right: 0; bottom: 0; left: 0; height: 34%; background: linear-gradient(to bottom, transparent, rgba(0,0,0,.5)); content: ''; pointer-events: none; }
.home-leaflet-card__cover img { width: 100%; height: 100%; min-width: 0; min-height: 0; object-fit: cover; object-position: center top; transition: transform .2s ease; }
.home-leaflet-card__cta { position: absolute; bottom: 10px; left: 10px; z-index: 2; padding: 6px 9px; border: 1px solid rgba(15,23,42,.12); border-radius: 7px; background: rgba(255,255,255,.96); color: #17242a; font-size: 11.5px; font-weight: 800; line-height: 1.15; white-space: nowrap; }
.home-leaflet-card:hover .home-leaflet-card__cover img { transform: scale(1.015); }
.home-leaflet-card:hover .home-leaflet-card__cta { border-color: rgba(15,118,110,.34); background: #fff; }
.home-leaflet-card__body { display: flex; min-height: 132px; flex: 1; flex-direction: column; gap: 7px; padding: 12px 13px 14px; }
.home-card-shop { display: flex; align-items: center; gap: 7px; min-width: 0; color: #415158; }
.home-card-shop > span { display: grid; width: 19px; height: 19px; flex: 0 0 auto; place-items: center; overflow: hidden; border: 1px solid #edf1f2; border-radius: 5px; background: #fff; }
.home-card-shop img { width: 100%; height: 100%; object-fit: contain; }
.home-card-shop small { overflow: hidden; font-size: 12px; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
.home-leaflet-card h3 { display: -webkit-box; overflow: hidden; margin: 0; -webkit-box-orient: vertical; -webkit-line-clamp: 2; font-size: 14px; line-height: 1.35; }
.home-leaflet-card p { margin: auto 0 0; color: #63747b; font-size: 12.5px; font-weight: 650; }
.home-card-badge { position: absolute; top: 9px; left: 9px; z-index: 1; max-width: calc(100% - 18px); overflow: hidden; padding: 5px 9px; border: 1px solid rgba(255,255,255,.45); border-radius: 999px; background: var(--color-primary); box-shadow: 0 3px 10px rgba(15,118,110,.32); color: #fff; font-size: 11px; font-weight: 800; line-height: 1.15; text-overflow: ellipsis; white-space: nowrap; }
@media (prefers-reduced-motion: reduce) { .home-leaflet-card, .home-leaflet-card__cover img { transition: none; } .home-leaflet-card:hover .home-leaflet-card__cover img { transform: none; } }
.home-section-cta { margin-top: 22px; text-align: center; }
.home-section-cta .button { padding: 10px 15px; font-size: 14px; }
.home-calculators { margin-top: 64px; }
.home-section-intro { max-width: 690px; }
.home-section-intro h2 { margin: 0; font-size: clamp(23px, 3vw, 28px); letter-spacing: -.025em; }
.home-section-intro p { margin: 6px 0 0; color: #4a5b63; font-size: 16px; line-height: 1.6; }
.home-calculators__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; margin-top: 22px; }
.home-calculator-card { display: flex; min-width: 0; min-height: 176px; flex-direction: column; gap: 10px; padding: 20px; border: 1px solid #e3e9ee; border-radius: 14px; background: #fff; color: var(--color-text); box-shadow: 0 1px 2px rgba(16,40,50,.04); transition: border-color .18s, box-shadow .18s, transform .18s; }
.home-calculator-card:hover { border-color: #bcd8ce; box-shadow: 0 10px 24px rgba(16,40,50,.08); transform: translateY(-2px); }
.home-calculator-card:focus-visible { outline: 3px solid rgba(15,118,110,.32); outline-offset: 2px; }
.home-calculator-card__badge { display: grid; width: 38px; height: 38px; flex: 0 0 auto; place-items: center; border-radius: 11px; background: #e6f2ed; color: var(--color-primary); font-size: 13px; font-weight: 600; line-height: 1; }
.home-calculator-card h3 { margin: 2px 0 0; font-size: 17px; letter-spacing: -.01em; }
.home-calculator-card p { margin: 0; color: #53656d; font-size: 14px; line-height: 1.55; }
.home-calculator-card > span:last-child { margin-top: auto; padding-top: 8px; color: var(--color-primary); font-size: 13.5px; font-weight: 600; }
.home-product-value { margin-top: 56px; margin-bottom: 80px; }
.home-product-value__panel { padding: 30px 24px; border: 1px solid #e3e9ee; border-radius: 18px; background: #fff; }
.home-product-value__header { display: grid; gap: 16px; }
.home-product-value__header h2 { margin: 0; font-size: clamp(25px, 3.1vw, 34px); letter-spacing: -.025em; text-wrap: pretty; }
.home-product-value__header > p { max-width: 510px; margin: 0; color: #5b6b78; font-size: 16px; line-height: 1.65; text-wrap: pretty; }
.home-product-value__divider { height: 1px; margin: 28px 0; background: #eaeff3; }
.home-product-value__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 26px; }
.home-product-value__grid article { display: flex; min-width: 0; gap: 14px; }
.home-product-value__number { flex: 0 0 auto; padding-top: 3px; color: var(--color-primary); font-size: 13px; font-weight: 600; font-variant-numeric: tabular-nums; letter-spacing: .06em; line-height: 1.2; }
.home-product-value h3 { margin: 0 0 7px; font-size: 17px; line-height: 1.35; }
.home-product-value__grid p { max-width: none; margin: 0; color: #5b6b78; font-size: 15px; line-height: 1.6; text-wrap: pretty; }
.home-product-value__cta { display: grid; gap: 8px 32px; margin-top: 28px; padding: 30px 24px; border-radius: 18px; background: #0f2e26; color: #fff; }
.home-product-value__cta h3 { margin: 0; font-size: 22px; line-height: 1.25; letter-spacing: -.015em; }
.home-product-value__cta p { max-width: 650px; margin: 0; color: #c8dbd4; font-size: 15.5px; line-height: 1.6; text-wrap: pretty; }
.home-product-value__cta .button { width: fit-content; margin-top: 10px; border-color: #fff; border-radius: 999px; background: #fff; color: #0f2e26; font-size: 14px; font-weight: 600; }
.home-product-value__cta .button:hover { border-color: #d7ebe3; background: #d7ebe3; color: #0f2e26; }

@media (max-width: 1050px) { .country-switcher__label { display: none; } }
@media (min-width: 620px) { .home-leaflet-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; } .home-leaflet-card__cover { aspect-ratio: 3 / 4; } .home-leaflet-card__body { min-height: 137px; } .home-calculators__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; } .home-product-value__panel { padding: 38px; } .home-product-value__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px 40px; } }
@media (min-width: 840px) { .home-product-value__header { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 48px; } .home-product-value__header > p { margin-top: 6px; } .home-product-value__cta { grid-template-columns: minmax(0, 1fr) auto; align-items: center; padding: 36px 44px; } .home-product-value__cta .button { grid-column: 2; grid-row: 1 / span 2; margin-top: 0; } }
@media (min-width: 1040px) { .home-leaflet-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } .home-calculators__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } .home-product-value__panel { padding: 44px 48px; } .home-product-value__grid { gap: 32px 56px; } }
@media (min-width: 1500px) { .ads-enabled .home-page-layout { display: grid; grid-template-columns: minmax(120px, 170px) minmax(0, 1120px) minmax(120px, 170px); gap: 24px; justify-content: center; padding: 20px 24px 0; } .ads-enabled .home-main-content .content-width { width: 100%; } .ads-enabled .home-ad-rail { display: block; min-width: 0; } .ads-enabled .home-ad-rail .home-ad-slot { position: sticky; top: 88px; } }
@media (min-width: 651px) and (max-width: 1050px) { .site-header { grid-template-columns: auto minmax(0, 1fr) auto; } .main-nav__links { grid-column: 1 / -1; grid-row: 2; justify-self: center; } .header-search { min-width: 0; } }
@media (max-width: 650px) { .site-header { grid-template-columns: minmax(0, 1fr) auto; gap: 10px 12px; align-items: center; } .site-header__country { display: none; } .mobile-nav-toggle { display: grid; width: 44px; height: 44px; place-content: center; gap: 5px; padding: 0; border: 1px solid var(--color-border); border-radius: 10px; background: #fff; cursor: pointer; } .mobile-nav-toggle span { display: block; width: 20px; height: 2px; border-radius: 2px; background: var(--color-text); } .main-nav { display: none; grid-column: 1 / -1; grid-row: 2; width: 100%; padding: 6px; border: 1px solid var(--color-border); border-radius: 13px; background: #fff; box-shadow: 0 12px 28px -24px rgba(16,40,50,.5); white-space: normal; } [data-site-navigation][data-menu-open] .main-nav { display: flex; flex-direction: column; } .main-nav__links { display: flex; flex-direction: column; width: 100%; gap: 0; } .main-nav a { display: flex; min-height: 44px; align-items: center; padding: 10px 12px; border-radius: 8px; font-size: 15px; } .main-nav__country { display: block; margin: 5px 0 0; padding: 10px 6px 4px; border-top: 1px solid var(--color-border); } .main-nav__country .country-switcher { display: block; width: 100%; } .main-nav__country .country-switcher summary { min-height: 44px; border: 1px solid var(--color-border); border-radius: 9px; } .main-nav__country .country-switcher__label { display: inline; } .main-nav__country .country-menu { position: static; width: auto; margin-top: 8px; } .header-search { width: 100%; margin: 2px 0 6px; } .site-footer { padding-top: 30px; padding-bottom: 28px; } .site-footer__top, .site-footer__bottom { align-items: flex-start; flex-direction: column; } .site-footer__top { gap: 24px; } .site-footer__bottom { gap: 18px; margin-top: 28px; padding-top: 22px; } .country-switcher--footer { margin-left: 0; } .site-footer nav { justify-content: flex-start; gap: 13px 18px; } .home-hero { padding-top: 24px; } .home-shop-actions .section-link { margin-right: 2px; } .rail-button { display: none; } .section-title--stack { align-items: flex-start; } .home-calculators { margin-top: 56px; } .home-product-value { margin-top: 54px; margin-bottom: 66px; } .home-product-value__panel { padding: 26px 20px; } .home-product-value__divider { margin: 24px 0; } .home-product-value__cta { padding: 28px 22px; } }
@media (max-width: 390px) { .country-switcher summary { padding: 8px; } .country-switcher summary strong { display: none; } .home-leaflet-card__cta { max-width: calc(100% - 20px); white-space: normal; } .home-leaflet-card__page-count { display: block; margin-top: 2px; } }

/* Leaflet listing: shares the homepage card and ad-slot language. */
.leaflets-page-layout, .leaflets-main-content { min-width: 0; }
.leaflets-ad-rail { display: none; }
.leaflets-page { --leaflets-listing-row-gap: 12px; padding-top: 30px; padding-bottom: 72px; }
.leaflets-page-header { max-width: 650px; }
.leaflets-page-header h1 { margin: 0; font-size: clamp(30px, 4vw, 38px); letter-spacing: -.03em; }
.leaflets-page-header p { margin: 11px 0 0; color: var(--color-muted); font-size: 16px; line-height: 1.55; }
.leaflets-filter-bar { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 28px; padding: 18px 20px; border: 1px solid #e4e8e3; border-radius: 20px; background: #fffefc; box-shadow: 0 14px 28px -28px rgba(31,55,48,.46); }
.leaflets-filter-status { display: flex; min-width: 0; padding: 4px; border-radius: 14px; background: #f1f4f0; }
.leaflets-filter-status__item { display: inline-flex; min-width: 0; min-height: 40px; align-items: center; justify-content: center; gap: 7px; padding: 7px 14px; border-radius: 10px; color: #607078; font-size: 14px; font-weight: 500; line-height: 1.15; text-align: center; white-space: nowrap; }
.leaflets-filter-status__item:hover { color: var(--color-primary); background: rgba(255,255,255,.66); }
.leaflets-filter-status__item--active { background: #fff; color: var(--color-primary); box-shadow: 0 3px 9px -7px rgba(22,48,41,.65); }
.leaflets-filter-status__item small { display: inline-grid; min-width: 21px; min-height: 20px; place-items: center; padding: 1px 5px; border-radius: 999px; background: #e5eae5; color: #68756f; font-size: 11px; font-weight: 500; line-height: 1; }
.leaflets-filter-status__item--active small { background: #e8f2ee; color: #397064; }
.leaflets-shop-menu { position: relative; flex: 0 1 310px; min-width: 210px; }
.leaflets-shop-menu summary { display: flex; min-height: 48px; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 15px; border: 1px solid #dfe5de; border-radius: 14px; background: #fff; color: #334641; cursor: pointer; font-size: 14px; font-weight: 500; list-style: none; }
.leaflets-shop-menu summary::-webkit-details-marker { display: none; }
.leaflets-shop-menu summary::after { width: 8px; height: 8px; flex: none; border-right: 1.5px solid #64756e; border-bottom: 1.5px solid #64756e; content: ''; transform: rotate(45deg) translateY(-2px); transition: transform .15s ease; }
.leaflets-shop-menu[open] summary { border-color: #c8d8d0; box-shadow: 0 0 0 3px rgba(15,118,110,.09); }
.leaflets-shop-menu[open] summary::after { transform: rotate(225deg) translate(-2px,-1px); }
.leaflets-shop-menu__options { position: absolute; z-index: 20; top: calc(100% + 8px); right: 0; width: max(100%, 265px); max-height: min(390px, 54vh); overflow: auto; padding: 6px; border: 1px solid #dfe5de; border-radius: 16px; background: #fff; box-shadow: 0 22px 46px -22px rgba(20,42,36,.38); }
.leaflets-shop-menu__options a { display: flex; min-height: 44px; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 10px; border-radius: 10px; color: #3c4d48; font-size: 14px; font-weight: 400; }
.leaflets-shop-menu__options a:hover, .leaflets-shop-menu__options a[aria-current=page] { background: #edf5f1; color: var(--color-primary); }
.leaflets-shop-menu__options span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.leaflets-shop-menu__options small { flex: none; color: #74827c; font-size: 12px; font-weight: 500; }
.home-ad-slot--listing-top { min-height: 120px; margin-top: 22px; }
.categories-page { padding-top: 30px; padding-bottom: 72px; }
.categories-page__header { max-width: 680px; }
.categories-page__header h1 { margin: 0; font-size: clamp(30px, 4vw, 38px); letter-spacing: -.03em; }
.categories-page__header p { margin: 11px 0 0; color: var(--color-muted); font-size: 16px; line-height: 1.55; }
.category-group { margin-top: 48px; }
.category-group h2 { margin: 0 0 16px; font-size: clamp(22px, 3vw, 28px); letter-spacing: -.02em; }
@media (max-width: 650px) { .categories-page { padding-top: 24px; padding-bottom: 58px; } .category-group { margin-top: 38px; } }
.listing-leaflet-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.leaflets-page > .listing-leaflet-grid { margin-top: var(--leaflets-listing-row-gap); gap: var(--leaflets-listing-row-gap); }
.listing-incontent-ad { display: none; grid-column: 1 / -1; }
.listing-incontent-ad .home-ad-slot { min-height: 112px; margin: 8px 0 5px; }
.listing-incontent-ad--mobile { display: block; }
.listing-pagination-area { margin-top: 36px; }
.pagination--listing { align-items: center; justify-content: center; gap: 8px; margin: 0; }
.pagination--listing .pagination__nav { display: inline-flex; width: auto; min-width: 0; padding: 0 12px; font-size: 14px; }
.pagination--listing .pagination__nav--disabled { min-height: 36px; border: 1px solid transparent; color: #a5b0b5; font-size: 14px; font-weight: 700; line-height: 36px; }
.pagination__pages { display: flex; gap: 6px; }
.pagination__pages a { display: grid; place-items: center; min-width: 36px; height: 36px; border: 1px solid var(--color-border); border-radius: 8px; background: #fff; color: var(--color-text); font-size: 14px; font-weight: 750; }
.pagination__pages a[aria-current=page] { border-color: var(--color-primary); background: var(--color-primary); color: #fff; }
.pagination__ellipsis { display: grid; width: 22px; place-items: center; color: var(--color-muted); }
.pagination__mobile-page { display: none; min-width: 54px; color: #607178; font-size: 14px; font-weight: 750; text-align: center; }
.home-ad-slot--listing-bottom { min-height: 120px; margin-top: 28px; }
.leaflets-info { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(30px, 6vw, 76px); margin-top: 64px; padding-top: 8px; }
.leaflets-info article { max-width: 520px; }
.leaflets-info h2 { margin: 0; font-size: clamp(20px, 2.6vw, 25px); letter-spacing: -.02em; }
.leaflets-info p { margin: 13px 0 0; color: #53656d; font-size: 15px; line-height: 1.65; }
.leaflets-info nav { display: flex; gap: 8px 15px; flex-wrap: wrap; margin-top: 18px; }
.leaflets-info nav a, .leaflets-info nav span { color: var(--color-primary); font-size: 14px; font-weight: 750; }
.leaflets-info nav span { color: #789096; }
.leaflets-info--single { grid-template-columns: minmax(0, 1fr); }
.leaflets-info--single article { max-width: 760px; }
.leaflets-info__cta { max-width: 680px; margin-top: 30px; }
.leaflets-info__cta h3 { margin: 0; font-size: 18px; letter-spacing: -.01em; }
.leaflets-info__cta .button { margin-top: 16px; }

@media (min-width: 620px) { .leaflets-page { --leaflets-listing-row-gap: 16px; } .listing-leaflet-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; } .listing-incontent-ad--mobile { display: none; } .listing-incontent-ad--tablet { display: block; } }
@media (min-width: 1040px) { .listing-leaflet-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } .listing-incontent-ad--tablet { display: none; } .listing-incontent-ad--desktop { display: block; } }
@media (min-width: 1500px) { .ads-enabled .leaflets-page-layout { display: grid; grid-template-columns: minmax(120px, 170px) minmax(0, 1120px) minmax(120px, 170px); gap: 24px; justify-content: center; padding: 20px 24px 0; } .ads-enabled .leaflets-main-content .content-width { width: 100%; } .ads-enabled .leaflets-ad-rail { display: block; min-width: 0; } .ads-enabled .leaflets-ad-rail .home-ad-slot { position: sticky; top: 88px; } }
@media (max-width: 650px) { .leaflets-page { padding-top: 24px; padding-bottom: 58px; } .leaflets-filter-bar { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; padding: 14px; border-radius: 17px; } .leaflets-filter-status { width: 100%; } .leaflets-filter-status__item { flex: 1 1 0; gap: 4px; padding: 7px 5px; font-size: 12px; white-space: normal; } .leaflets-filter-status__item small { min-width: 18px; min-height: 18px; padding: 1px 4px; font-size: 10px; } .leaflets-shop-menu { width: 100%; min-width: 0; max-width: none; } .leaflets-shop-menu__options { left: 0; right: auto; width: 100%; } .leaflets-info { grid-template-columns: 1fr; gap: 34px; margin-top: 52px; } .pagination--listing { justify-content: space-between; gap: 5px; } .pagination--listing .pagination__nav { padding: 0 8px; font-size: 13px; } .pagination__pages { display: none; } .pagination__mobile-page { display: block; } }

/* Shop listing: a lighter public directory with the same ad and card language. */
.shops-page-layout, .shops-main-content { min-width: 0; }
.shops-ad-rail { display: none; }
.shops-page { padding-top: 30px; padding-bottom: 72px; }
.shops-page-header { max-width: 650px; }
.shops-page-header h1 { margin: 0; font-size: clamp(30px, 4vw, 38px); letter-spacing: -.03em; }
.shops-page-header p { margin: 11px 0 0; color: var(--color-muted); font-size: 16px; line-height: 1.55; }
.home-ad-slot--shops-top { min-height: 120px; margin-top: 26px; margin-bottom: 28px; }
.home-ad-slot--shops-bottom { min-height: 120px; margin-top: 30px; }
.shops-grid--public { grid-template-columns: 1fr; gap: 13px; }
.shop-card--public { overflow: hidden; border-radius: 15px; box-shadow: 0 1px 2px rgba(16,40,50,.035); transition: border-color .18s, background .18s, transform .18s; }
.shop-card--public a { min-height: 102px; padding: 18px; gap: 15px; }
.shop-card--public:hover { border-color: #c8d5d9; background: #fcfdfd; transform: translateY(-1px); }
.shop-card--public .shop-logo { width: 62px; height: 62px; border: 1px solid #edf1f3; border-radius: 13px; background: #fff; color: #607178; }
.shop-card--public .shop-logo img { mix-blend-mode: normal; object-fit: contain; }
.shop-card--public h2 { font-size: 17px; letter-spacing: -.01em; }
.shop-card--public p { margin-top: 6px; color: #68797f; font-size: 13.5px; font-weight: 600; line-height: 1.4; }
.shops-pagination-area { margin-top: 36px; }
.shops-info { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(30px, 6vw, 76px); margin-top: 64px; padding-top: 8px; }
.shops-info article { max-width: 520px; }
.shops-info h2 { margin: 0; font-size: clamp(20px, 2.6vw, 25px); letter-spacing: -.02em; }
.shops-info p { margin: 13px 0 0; color: #53656d; font-size: 15px; line-height: 1.65; }
.shops-info nav { display: flex; gap: 8px 15px; flex-wrap: wrap; margin-top: 18px; }
.shops-info nav a, .shops-info nav span { color: var(--color-primary); font-size: 14px; font-weight: 750; }
.shops-info nav span { color: #789096; }
.shops-info--single { grid-template-columns: minmax(0, 1fr); }
.shops-info--single article { max-width: 760px; }

@media (min-width: 620px) { .shops-grid--public { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; } }
@media (min-width: 900px) { .shops-grid--public { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1040px) { .shops-grid--public { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (min-width: 1500px) { .ads-enabled .shops-page-layout { display: grid; grid-template-columns: minmax(120px, 170px) minmax(0, 1120px) minmax(120px, 170px); gap: 24px; justify-content: center; padding: 20px 24px 0; } .ads-enabled .shops-main-content .content-width { width: 100%; } .ads-enabled .shops-ad-rail { display: block; min-width: 0; } .ads-enabled .shops-ad-rail .home-ad-slot { position: sticky; top: 88px; } }
@media (max-width: 650px) { .shops-page { padding-top: 24px; padding-bottom: 58px; } .shop-card--public a { min-height: 94px; padding: 16px; } .shop-card--public .shop-logo { width: 56px; height: 56px; } .shops-info { grid-template-columns: 1fr; gap: 34px; margin-top: 52px; } }

/* Shop detail: wide leaflet content, deliberately narrow published text. */
.shop-detail-layout, .shop-detail-main { min-width: 0; }
.shop-detail-ad-rail { display: none; }
.shop-detail-page { padding-top: 30px; padding-bottom: 76px; }
.shop-detail-header { display: flex; align-items: flex-start; gap: 18px; max-width: 840px; }
.shop-detail-header .shop-logo { width: 76px; height: 76px; border: 1px solid #edf1f3; border-radius: 16px; background: #fff; color: #607178; }
.shop-detail-header .shop-logo img { mix-blend-mode: normal; object-fit: contain; }
.shop-detail-header h1 { margin: 2px 0 0; font-size: clamp(30px, 4vw, 38px); letter-spacing: -.03em; }
.shop-detail-header__intro { max-width: 700px; margin: 10px 0 0; color: #53656d; font-size: 16px; line-height: 1.58; }
.shop-detail-header__status { margin: 9px 0 0; color: #718188; font-size: 13.5px; font-weight: 700; }
.home-ad-slot--shop-detail-top { min-height: 120px; margin-top: 28px; }
.shop-detail-leaflets { margin-top: 30px; }
.shop-detail-section-heading { margin-bottom: 16px; }
.shop-detail-section-heading h2, .shop-detail-content h2, .shop-detail-faq h2 { margin: 0; font-size: clamp(22px, 3vw, 27px); letter-spacing: -.02em; }
.shop-detail-empty { margin-top: 28px; }
.home-ad-slot--shop-detail-middle { min-height: 120px; margin-top: 42px; }
.shop-detail-practical { max-width: 900px; margin-top: 58px; }
.shop-detail-practical > h2 { margin: 0; font-size: clamp(22px, 3vw, 27px); letter-spacing: -.02em; }
.shop-detail-practical__panel { margin-top: 22px; padding: 26px; border: 1px solid #dfe6e3; border-radius: 17px; background: #fff; box-shadow: 0 12px 28px -28px rgba(30, 54, 49, .35); }
.shop-detail-practical__panel--single { max-width: 520px; }
.shop-detail-practical__groups { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 28px 34px; }
.shop-detail-practical__groups--single { grid-template-columns: minmax(0, 1fr); }
.shop-detail-practical__group { min-width: 0; }
.shop-detail-practical__group h3 { margin: 0 0 11px; color: #72817f; font-size: 11px; font-weight: 600; letter-spacing: .075em; line-height: 1.35; text-transform: uppercase; }
.shop-detail-practical__items { display: grid; gap: 8px; }
.shop-detail-practical__item { display: flex; min-width: 0; min-height: 50px; align-items: center; gap: 11px; padding: 10px 12px; border: 1px solid #e0e7e3; border-radius: 11px; background: #fcfdfc; color: #40534f; font-size: 14px; font-weight: 500; line-height: 1.35; }
a.shop-detail-practical__item { color: #34514a; }
a.shop-detail-practical__item:hover { border-color: #9dcec2; background: #f7fbf9; }
a.shop-detail-practical__item:focus-visible { outline: 3px solid rgba(13, 97, 89, .35); outline-offset: 3px; }
.shop-detail-practical__icon { width: 18px; height: 18px; flex: none; background: center / contain no-repeat; }
.shop-detail-practical__icon--store_hours, .shop-detail-practical__icon--store_locator, .shop-detail-practical__icon--opening_hours { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230d6159' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 10h16v10H4zM3 10l2-5h14l2 5M8 20v-6h4v6M14.5 14H17'/%3E%3C/svg%3E"); }
.shop-detail-practical__icon--official_website { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230d6159' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='8.5'/%3E%3Cpath d='M3.8 12h16.4M12 3.5c2.3 2.4 3.4 5.2 3.4 8.5S14.3 18.1 12 20.5c-2.3-2.4-3.4-5.2-3.4-8.5S9.7 5.9 12 3.5z'/%3E%3C/svg%3E"); }
.shop-detail-practical__icon--loyalty { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230d6159' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3.5' y='6.5' width='17' height='11' rx='1.8'/%3E%3Cpath d='M3.5 10h17M7 14h3'/%3E%3C/svg%3E"); }
.shop-detail-practical__icon--mobile_app { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230d6159' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='7.5' y='3' width='9' height='18' rx='1.8'/%3E%3Cpath d='M10.5 6h3M11.5 18h1'/%3E%3C/svg%3E"); }
.shop-detail-practical__icon--online_shopping { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230d6159' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5h2l1.4 9h9.8l1.5-6.5H7M10 18.5h.01M16 18.5h.01' stroke-width='1.9'/%3E%3C/svg%3E"); }
.shop-detail-practical__icon--delivery { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230d6159' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 6.5h10v10h-10zM13.5 10h3l3 3v3.5h-6zM7 18h.01M17 18h.01' stroke-width='1.9'/%3E%3C/svg%3E"); }
.shop-detail-practical__icon--click_collect { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230d6159' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 8h14l-1 12H6zM9 8a3 3 0 0 1 6 0'/%3E%3Cpath d='M12 12v5M9.5 14.5 12 17l2.5-2.5'/%3E%3C/svg%3E"); }
.shop-detail-practical__icon--gift_cards { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230d6159' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 10h16v10H4zM12 10v10M4 14h16M12 10c-2.4 0-4-1-4-2.6 0-1 1.2-1.5 2.2-.8L12 10zm0 0c2.4 0 4-1 4-2.6 0-1-1.2-1.5-2.2-.8L12 10z'/%3E%3C/svg%3E"); }
.shop-detail-practical__icon--returns { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230d6159' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 7h10v10H7zM10 11 7 14l3 3M7 14h8'/%3E%3C/svg%3E"); }
.shop-detail-practical__icon--support_website { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230d6159' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='8.5'/%3E%3Cpath d='M9.8 9.5a2.4 2.4 0 0 1 4.6.9c0 1.8-2.4 2-2.4 3.6M12 17h.01'/%3E%3C/svg%3E"); }
.shop-detail-practical__icon--support_phone { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230d6159' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 4.5 9.5 8l-1.7 1.8c1.2 2.4 2.8 4 5.2 5.2l1.8-1.7 3.5 2.5-1.4 3c-5.9-.5-10.1-4.7-10.6-10.6z'/%3E%3C/svg%3E"); }
.shop-detail-practical__icon--support_email { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230d6159' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3.5' y='6' width='17' height='12' rx='1.5'/%3E%3Cpath d='m4 7 8 6 8-6'/%3E%3C/svg%3E"); }
.shop-detail-practical__item-copy { min-width: 0; flex: 1; }
.shop-detail-practical__item-label { display: block; overflow-wrap: anywhere; }
.shop-detail-practical__item-copy small { display: block; margin-top: 2px; color: #687774; font-size: 12.5px; font-weight: 400; line-height: 1.35; overflow-wrap: anywhere; }
.shop-detail-practical__external { flex: none; color: var(--color-primary); font-size: 15px; line-height: 1; }
.shop-detail-leaflets + .shop-detail-content, .shop-detail-content { margin-top: 58px; }
.shop-content-block { max-width: 820px; margin-top: 44px; }
.shop-content-block:first-child { margin-top: 0; }
.shop-content-block__body { color: #3f5057; font-size: 16px; line-height: 1.72; }
.shop-content-block__body > :first-child { margin-top: 15px; }
.shop-content-block__body p { margin: 0 0 18px; }
.shop-content-block__body h3 { margin: 30px 0 10px; color: var(--color-text); font-size: 19px; }
.shop-content-block__body ul, .shop-content-block__body ol { margin: 0 0 20px; padding-left: 23px; }
.shop-content-block__body li + li { margin-top: 6px; }
.shop-content-block__body a { text-decoration: underline; text-underline-offset: 2px; }
.home-ad-slot--shop-detail-content { max-width: 820px; min-height: 112px; margin-top: 44px; }
.home-ad-slot--shop-detail-faq { max-width: 820px; min-height: 120px; margin-top: 58px; }
.shop-detail-faq { max-width: 820px; margin-top: 34px; }
.shop-detail-faq details { border-top: 1px solid var(--color-border); }
.shop-detail-faq details:last-child { border-bottom: 1px solid var(--color-border); }
.shop-detail-faq summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 2px; color: var(--color-text); cursor: pointer; font-size: 16px; font-weight: 750; list-style: none; }
.shop-detail-faq summary::-webkit-details-marker { display: none; }
.shop-detail-faq__chevron { flex: none; color: #74858b; font-size: 20px; transition: transform .18s ease; }
.shop-detail-faq details[open] .shop-detail-faq__chevron { transform: rotate(180deg); }
.shop-detail-faq details > div { padding: 0 2px 21px; color: #53656d; font-size: 15.5px; line-height: 1.68; }
.shop-detail-faq details > div p:first-child { margin-top: 0; }
.shop-detail-faq details > div p:last-child { margin-bottom: 0; }

@media (min-width: 1500px) { .ads-enabled .shop-detail-layout { display: grid; grid-template-columns: minmax(120px, 170px) minmax(0, 1120px) minmax(120px, 170px); gap: 24px; justify-content: center; padding: 20px 24px 0; } .ads-enabled .shop-detail-main .content-width { width: 100%; } .ads-enabled .shop-detail-ad-rail { display: block; min-width: 0; } .ads-enabled .shop-detail-ad-rail .home-ad-slot { position: sticky; top: 88px; } }
@media (max-width: 700px) { .shop-detail-practical__panel { padding: 20px; } .shop-detail-practical__panel--single { max-width: none; } .shop-detail-practical__groups { grid-template-columns: 1fr; gap: 22px; } }
@media (max-width: 650px) { .shop-detail-page { padding-top: 24px; padding-bottom: 60px; } .shop-detail-header { gap: 14px; } .shop-detail-header .shop-logo { width: 62px; height: 62px; border-radius: 14px; } .shop-detail-header h1 { margin-top: 0; } .shop-detail-header__intro { font-size: 15px; } .shop-detail-leaflets { margin-top: 26px; } .shop-detail-practical { margin-top: 48px; } .shop-detail-practical__panel { margin-top: 18px; padding: 18px; } .shop-detail-practical__items { grid-template-columns: 1fr; } .shop-detail-leaflets + .shop-detail-content, .shop-detail-content { margin-top: 48px; } .shop-content-block { margin-top: 38px; } .shop-content-block__body { font-size: 15.5px; } .home-ad-slot--shop-detail-content, .home-ad-slot--shop-detail-faq { margin-top: 38px; } .shop-detail-faq { margin-top: 28px; } .shop-detail-faq summary { padding-block: 16px; font-size: 15.5px; } }

/* Leaflet viewer: the page remains readable at fit-width while navigation stays close to it. */
.viewer { padding-bottom: 0; background: #eef2f6; }
.viewer-heading { width: min(var(--content), 100% - 32px); margin-inline: auto; padding: 18px 0; border: 0; background: transparent; }
.viewer-heading__copy { min-width: 0; }
.viewer-heading h1 { display: -webkit-box; overflow: hidden; margin-bottom: 0; -webkit-box-orient: vertical; -webkit-line-clamp: 2; font-size: clamp(16px, 2vw, 19px); line-height: 1.32; }
.viewer-heading p { font-size: 13px; }
.viewer-logo { border-color: #e3eaec; background: #fff; }
.viewer-page-select { display: inline-flex; min-height: 34px; align-items: center; gap: 7px; color: #d9e3e5; font: 700 12px ui-monospace, SFMono-Regular, Menlo, monospace; white-space: nowrap; }
.viewer-page-select select { min-height: 32px; min-width: 62px; padding: 5px 26px 5px 10px; border: 1px solid rgba(217, 227, 229, .28); border-radius: 9px; background: #202b31; color: #fff; font: inherit; }
.viewer-dark { background: #151d22; color: #fff; }
.viewer-dark__layout { display: grid; grid-template-columns: minmax(0, 1fr); align-items: start; margin-inline: auto; }
.viewer-promo { width: min(1080px, calc(100% - 64px)); margin: 20px auto; overflow: hidden; border-radius: 18px; box-shadow: 0 18px 42px -34px rgba(16, 73, 61, .35); }
.viewer-promo__link, .viewer-promo__button { display: block; width: 100%; margin: 0; padding: 0; border: 0; background: transparent; cursor: pointer; }
.viewer-promo__link:focus-visible, .viewer-promo__button:focus-visible { outline: 3px solid var(--color-primary); outline-offset: -3px; }
.viewer-promo img { display: block; width: 100%; height: auto; }
.viewer-center { min-width: 0; }
.viewer-page-indicator { margin: 0; padding: 14px 16px 0; color: #b9c6c9; font: 700 12px ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: .02em; text-align: center; }
.viewer-stage { display: block; padding: 12px 16px 30px; overflow: visible; background: transparent; }
.viewer-page { width: min(1080px, 100%); border-radius: 8px; box-shadow: 0 30px 70px -30px rgba(0,0,0,.65); }
.viewer-side-ad, .viewer-other-ad { display: none; }
.viewer-mobile-controls { display: none; }
.viewer-bottom-pagination { display: flex; align-items: center; justify-content: center; gap: clamp(12px, 2.5vw, 30px); padding: 15px 16px; border-bottom: 1px solid var(--color-border); background: #f5f7f8; }
.viewer-bottom-pagination a, .viewer-bottom-pagination > span { display: inline-flex; min-height: 36px; align-items: center; gap: 7px; color: #405159; font-size: 14px; font-weight: 750; }
.viewer-bottom-pagination a:hover { color: var(--color-primary); }
.viewer-bottom-pagination .viewer-page-select { color: #405159; }
.viewer-bottom-pagination .viewer-page-select select { border-color: #dce4e6; background: #fff; color: #405159; }
.viewer-bottom-pagination__disabled { opacity: .36; }
.viewer-pagination { padding: 22px 16px; border-bottom: 1px solid var(--color-border); background: #f5f7f8; }
.viewer-pagination .viewer-pagination__controls { display: flex; align-items: center; justify-content: center; gap: clamp(10px, 1.8vw, 22px); }
.viewer-pagination .viewer-pagination__pages { display: flex; align-items: center; justify-content: center; gap: clamp(7px, 1vw, 12px); margin: 0; padding: 0; list-style: none; }
.viewer-pagination .viewer-pagination__edge, .viewer-pagination .viewer-pagination__page { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; border: 1px solid #c9ded9; border-radius: 12px; background: #fff; color: var(--color-primary); font-size: 15px; font-weight: 700; line-height: 1; transition: border-color .16s ease, background-color .16s ease, color .16s ease; }
.viewer-pagination .viewer-pagination__edge { gap: 10px; min-width: 126px; padding: 10px 16px; }
.viewer-pagination .viewer-pagination__edge > span[aria-hidden] { font-size: 27px; font-weight: 400; line-height: .7; }
.viewer-pagination .viewer-pagination__page { min-width: 46px; padding: 10px; color: #344b46; }
.viewer-pagination .viewer-pagination__edge:hover, .viewer-pagination .viewer-pagination__page:hover { border-color: var(--color-primary); background: #f4fbf9; color: var(--color-primary); }
.viewer-pagination .viewer-pagination__page--current { border-color: var(--color-primary); background: var(--color-primary); color: #fff; }
.viewer-pagination .viewer-pagination__edge--disabled { border-color: #e1e8e6; color: #98aaa5; }
.viewer-pagination .viewer-pagination__ellipsis { min-width: 24px; color: #71817d; font-size: 22px; font-weight: 700; letter-spacing: .12em; line-height: 1; text-align: center; }
.viewer-pagination .viewer-pagination__progress { display: none; }
.viewer-followup { padding-top: 28px; padding-bottom: 72px; }
.home-ad-slot--viewer-bottom { min-height: 120px; }
.viewer-offers, .viewer-other-leaflets { margin-top: 48px; }
.viewer-offers h2, .viewer-other-leaflets h2 { margin: 0 0 17px; font-size: clamp(21px, 3vw, 27px); letter-spacing: -.02em; }
.viewer-offers__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.viewer-offer-card { display: flex; min-width: 0; overflow: hidden; border: 1px solid var(--color-border); border-radius: 14px; background: #fff; }
.viewer-offer-card__image { display: grid; width: 35%; min-width: 92px; aspect-ratio: 1; place-items: center; border-right: 1px solid #edf1f2; background: #f8fafb; }
.viewer-offer-card__image img { width: 100%; height: 100%; object-fit: contain; }
.viewer-offer-card__body { display: flex; min-width: 0; flex: 1; flex-direction: column; padding: 13px; }
.viewer-offer-card h3 { display: -webkit-box; overflow: hidden; margin: 0; -webkit-box-orient: vertical; -webkit-line-clamp: 2; font-size: 14px; line-height: 1.35; }
.viewer-offer-card__price { margin: auto 0 0; color: var(--color-text); font-size: 17px; font-weight: 800; }
.viewer-offer-card__meta { display: flex; gap: 8px; margin: 5px 0 0; color: #7b8a90; font-size: 12px; font-weight: 650; }
.viewer-offer-card__meta strong { color: var(--color-primary); }
.home-ad-slot--viewer-bottom { margin-top: 42px; }
.viewer-other-layout { width: min(var(--content), 100% - 32px); margin: 0 auto; }
.viewer-other-layout .viewer-other-leaflets { min-width: 0; }
.viewer-followup--bottom { padding-top: 0; }
.viewer-information-panels { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 20px; margin-top: 48px; }
.viewer-information-panels--facts-only { grid-template-columns: minmax(0, 1fr); }
.viewer-facts, .viewer-practical { min-width: 0; padding: 25px; border: 1px solid #dfe6e3; border-radius: 17px; background: #fff; box-shadow: 0 12px 28px -28px rgba(30, 54, 49, .35); }
.viewer-facts h2, .viewer-practical h2, .viewer-guide-cta h2 { margin: 0 0 18px; font-size: clamp(21px, 3vw, 27px); font-weight: 600; letter-spacing: -.02em; }
.viewer-facts__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; margin: 0; padding: 1px; border-radius: 12px; background: #e4ebe7; overflow: hidden; }
.viewer-facts__grid--with-categories { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.viewer-facts__grid > div { min-width: 0; padding: 14px 15px; background: #fff; }
.viewer-facts__categories { grid-column: span 2; }
.viewer-facts dt { color: #71817d; font-size: 11px; font-weight: 600; letter-spacing: .075em; text-transform: uppercase; }
.viewer-facts dd { margin: 6px 0 0; color: #344b46; font-size: 15px; font-weight: 500; line-height: 1.45; overflow-wrap: anywhere; }
.viewer-facts dd a, .viewer-guide-cta a { color: var(--color-primary); }
.viewer-facts__status dd { display: flex; align-items: flex-start; gap: 7px; }
.viewer-facts__status-dot { width: 7px; height: 7px; flex: none; margin-top: .48em; border-radius: 50%; background: #16816f; }
.viewer-facts__status-dot--upcoming { background: #c98418; }
.viewer-practical { display: flex; flex-direction: column; }
.viewer-practical__items { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.viewer-practical__item { display: flex; min-width: 0; min-height: 54px; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px; border: 1px solid #e0e7e3; border-radius: 11px; background: #fff; color: #40534f; font-size: 13px; font-weight: 500; line-height: 1.35; }
a.viewer-practical__item { color: #34514a; }
a.viewer-practical__item:hover { border-color: #9dcec2; background: #f7fbf9; }
.viewer-practical__item:focus-visible, .viewer-practical__more:focus-visible { outline: 3px solid rgba(13, 97, 89, .35); outline-offset: 3px; }
.viewer-practical__item-copy { min-width: 0; overflow-wrap: anywhere; }
.viewer-practical__item strong { display: block; margin-top: 3px; color: #536761; font-size: 12px; font-weight: 500; overflow-wrap: anywhere; }
.viewer-practical__arrow { flex: none; color: var(--color-primary); font-size: 15px; font-weight: 600; }
.viewer-practical__more { display: inline-flex; min-height: 40px; align-items: center; justify-content: center; margin-top: 14px; padding: 8px 15px; border-radius: 10px; background: var(--color-primary); color: #fff; font-size: 13px; font-weight: 500; line-height: 1.2; }
.viewer-practical__more:hover { background: var(--color-primary-hover); color: #fff; }
.viewer-related-group + .viewer-related-group { margin-top: 34px; }
.viewer-related-group h3 { margin: 0 0 13px; color: #52646b; font-size: 15px; letter-spacing: -.01em; }
.viewer-guide-cta { margin-top: 52px; margin-bottom: 76px; padding: 22px 24px; border: 1px solid #cce7e2; border-radius: 16px; background: #f4fbf9; }
.viewer-guide-cta h2 { margin-bottom: 8px; font-size: clamp(19px, 2.7vw, 24px); }
.viewer-guide-cta p { max-width: 720px; margin: 0; color: #456066; font-size: 15px; line-height: 1.6; }
.viewer-guide-cta a { display: inline-flex; min-height: 44px; align-items: center; margin-top: 10px; font-size: 14px; font-weight: 800; }

@media (min-width: 651px) {
    .viewer-dark__layout { grid-template-columns: minmax(0, min(1080px, calc(100vw - 64px))); justify-content: center; padding: 0 18px; }
}

@media (min-width: 1500px) {
    .ads-enabled .viewer-dark__layout { grid-template-columns: minmax(120px, 170px) minmax(0, 1080px) minmax(120px, 170px); align-items: stretch; gap: 34px; max-width: 1620px; padding: 0 24px; }
    .ads-enabled .viewer-side-ad { display: flex; min-width: 0; padding: 44px 0 30px; }
    .ads-enabled .viewer-side-ad .home-ad-slot--vertical { width: 100%; height: 100%; min-height: 600px; }
    .ads-enabled .viewer-other-layout { display: grid; grid-template-columns: minmax(120px, 170px) minmax(0, 1120px) minmax(120px, 170px); align-items: stretch; gap: 24px; width: min(100% - 48px, 1620px); }
    .ads-enabled .viewer-other-ad { display: flex; min-width: 0; padding-top: 48px; }
    .ads-enabled .viewer-other-ad .home-ad-slot--vertical { width: 100%; height: 100%; min-height: 600px; }
}

@media (min-width: 651px) and (max-width: 950px) {
    .viewer-information-panels { grid-template-columns: 1fr; }
}

@media (max-width: 650px) {
    .viewer-heading { width: min(100% - 28px, var(--content)); gap: 11px; padding: 13px 0; }
    .back-link { padding: 8px 10px; }
    .viewer-logo { width: 40px; height: 40px; }
    .viewer-heading__copy { flex-basis: calc(100% - 66px); }
    .viewer-heading h1 { font-size: 15px; }
    .viewer-promo { width: min(100% - 28px, 620px); margin: 14px auto; border-radius: 17px; }
    .viewer-stage { padding: 10px 8px 16px; }
    .viewer-page-indicator { padding-top: 11px; }
    .viewer-bottom-pagination { display: none; }
    .viewer-pagination { padding: 14px; }
    .viewer-pagination .viewer-pagination__controls { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 8px; max-width: 430px; margin-inline: auto; }
    .viewer-pagination .viewer-pagination__pages { display: none; }
    .viewer-pagination .viewer-pagination__progress { display: inline-flex; min-width: 72px; min-height: 44px; padding: 9px 11px; font-size: 14px; }
    .viewer-pagination .viewer-pagination__edge { min-width: 0; min-height: 44px; padding: 9px 10px; font-size: 14px; }
    .viewer-pagination .viewer-pagination__edge > span[aria-hidden] { font-size: 23px; }
    .viewer-mobile-controls { position: sticky; bottom: 0; z-index: 4; display: grid; grid-template-columns: 42px 1fr 42px; align-items: center; max-width: 430px; margin-inline: auto; border: 1px solid rgba(255,255,255,.18); border-bottom: 0; border-radius: 12px 12px 0 0; background: rgba(21,29,34,.96); box-shadow: 0 -8px 22px rgba(0,0,0,.2); backdrop-filter: blur(8px); }
    .viewer-mobile-controls a, .viewer-mobile-controls > span { display: grid; min-height: 42px; place-items: center; color: #fff; font-size: 21px; font-weight: 700; }
    .viewer-mobile-controls > span { opacity: .3; }
    .viewer-mobile-controls .viewer-page-select { justify-content: center; min-height: 42px; color: #edf3f4; font-size: 12px; text-align: center; }
    .viewer-mobile-controls .viewer-page-select select { min-height: 30px; min-width: 58px; padding-block: 4px; border-color: rgba(255,255,255,.22); background: rgba(255,255,255,.1); color: #fff; }
    .viewer-followup { width: min(var(--content), 100% - 28px); padding-top: 22px; padding-bottom: 54px; }
    .viewer-offers, .viewer-other-leaflets { margin-top: 38px; }
    .viewer-offers__grid { grid-template-columns: 1fr; gap: 10px; }
.viewer-offer-card__image { width: 32%; min-width: 88px; }
    .viewer-information-panels { width: min(var(--content), 100% - 28px); grid-template-columns: 1fr; gap: 16px; margin-top: 38px; }
    .viewer-facts, .viewer-practical { padding: 20px 18px; }
    .viewer-facts__grid, .viewer-facts__grid--with-categories { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .viewer-facts__categories { grid-column: span 2; }
    .viewer-practical__items { grid-template-columns: 1fr; }
    .viewer-guide-cta { width: min(var(--content), 100% - 28px); margin-top: 42px; margin-bottom: 58px; padding: 19px 18px; }
}

@media (max-width: 419px) {
    .viewer-pagination .viewer-pagination__controls { grid-template-columns: 44px auto 44px; justify-content: space-between; }
    .viewer-pagination .viewer-pagination__edge { width: 44px; padding-inline: 0; }
    .viewer-pagination .viewer-pagination__edge > span:not([aria-hidden]) { display: none; }
}

.static-page { max-width: 860px; padding-top: 42px; padding-bottom: 78px; }
.static-page h1 { margin: 0; font-size: clamp(30px, 4vw, 40px); letter-spacing: -.03em; }
.static-page__body { max-width: 800px; margin-top: 24px; color: #3f5057; font-size: 16px; line-height: 1.72; }
.static-page__body h2 { margin: 42px 0 12px; color: var(--color-text); font-size: 25px; letter-spacing: -.02em; }
.static-page__body h3 { margin: 28px 0 8px; color: var(--color-text); font-size: 18px; }
.static-page__body p { margin: 0 0 18px; }
.static-page__body ul { margin: 0 0 20px; padding-left: 24px; }
.static-page__body li + li { margin-top: 5px; }
.static-page__body a { text-decoration: underline; text-underline-offset: 2px; }
.savings-guide__body { margin-top: 48px; }
@media (max-width: 650px) { .static-page { width: min(100% - 28px, 860px); padding-top: 30px; padding-bottom: 58px; } .static-page__body { font-size: 15.5px; } }

/* Approved legal-document presentation. Kept independent from About and guide. */
.legal-page { max-width: min(1120px, var(--content)); padding-top: 54px; }
.legal-page__intro { max-width: 770px; }
.legal-page__intro h1 { margin: 0; }
.legal-page__intro-copy { margin-top: 18px; color: #46565c; font-size: clamp(17px, 2vw, 20px); line-height: 1.58; }
.legal-page__intro-copy p { margin: 0; }
.legal-page__intro-divider { height: 1px; margin: 34px 0 40px; background: #dfe5e1; }
.legal-page__layout { display: grid; grid-template-columns: 220px minmax(0, 760px); justify-content: center; gap: 54px; }
.legal-toc { align-self: start; position: sticky; top: 92px; max-height: calc(100vh - 116px); overflow-y: auto; padding: 3px 2px 6px 0; }
.legal-toc__label { display: block; margin-bottom: 13px; color: #73817f; font-size: 11px; font-weight: 600; letter-spacing: .08em; line-height: 1.35; text-transform: uppercase; }
.legal-toc ol { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; counter-reset: legal-toc; }
.legal-toc li { min-width: 0; counter-increment: legal-toc; }
.legal-toc a { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 8px; color: #586967; font-size: 13.5px; line-height: 1.38; text-decoration: none; }
.legal-toc a > span:first-child { color: #98a7a4; font-variant-numeric: tabular-nums; }
.legal-toc a:hover, .legal-toc a:focus-visible { color: var(--color-primary); }
.legal-toc a:focus-visible { outline: 3px solid rgba(13, 97, 89, .35); outline-offset: 3px; border-radius: 3px; }
.legal-document { overflow: hidden; border: 1px solid #e0e7e3; border-radius: 17px; background: #fff; }
.legal-document__section { padding: 35px 40px 37px; }
.legal-document__section + .legal-document__section { border-top: 1px solid #e6ece8; }
.legal-document__heading { display: flex; align-items: baseline; gap: 12px; margin: 0 0 18px; color: var(--color-text); font-size: clamp(22px, 2.7vw, 27px); font-weight: 600; letter-spacing: -.02em; line-height: 1.25; scroll-margin-top: 94px; }
.legal-document__number { flex: none; color: var(--color-primary); font-size: 14px; font-weight: 600; letter-spacing: 0; }
.legal-document__heading-text { min-width: 0; }
.legal-document p, .legal-document li { color: #40514f; font-size: 16px; line-height: 1.72; }
.legal-document p { margin: 0 0 16px; }
.legal-document h3 { margin: 29px 0 8px; color: var(--color-text); font-size: 18px; font-weight: 500; line-height: 1.4; }
.legal-document ul, .legal-document ol { margin: 0 0 18px; padding-left: 23px; }
.legal-document li + li { margin-top: 5px; }
.legal-document a { color: var(--color-primary); font-weight: 500; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 2px; overflow-wrap: anywhere; }
.legal-document a:hover { color: var(--color-primary-hover); }
.legal-document__operator-details { margin-top: 2px; padding: 20px 22px 5px; border: 1px solid #e4e9e5; border-radius: 12px; background: #fcfdfc; }
.legal-document__operator-details p { margin-bottom: 15px; }
.legal-document__last-updated { margin: 23px 0 0 !important; padding-top: 17px; border-top: 1px solid #e2e9e4; color: #687774 !important; font-size: 14px !important; }

@media (max-width: 1000px) {
    .legal-page__layout { grid-template-columns: 1fr; gap: 24px; }
    .legal-toc { position: static; max-height: none; overflow: visible; padding: 0; }
    .legal-toc ol { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px 28px; }
}
@media (max-width: 650px) {
    .legal-page { width: min(var(--content), 100% - 28px); padding-top: 34px; padding-bottom: 60px; }
    .legal-page__intro-copy { margin-top: 14px; font-size: 17px; }
    .legal-page__intro-divider { margin: 28px 0 26px; }
    .legal-page__layout { gap: 22px; }
    .legal-toc ol { grid-template-columns: 1fr; gap: 8px; }
    .legal-toc a { font-size: 14px; }
    .legal-document__section { padding: 27px 20px 29px; }
    .legal-document__heading { gap: 9px; margin-bottom: 15px; font-size: 23px; }
    .legal-document p, .legal-document li { font-size: 15.5px; line-height: 1.67; }
    .legal-document h3 { margin-top: 25px; font-size: 17px; }
    .legal-document ul, .legal-document ol { padding-left: 20px; }
    .legal-document__operator-details { padding: 17px 17px 2px; }
}

/* Approved About-page presentation. Kept separate from the generic static/legal page. */
.about-page { max-width: min(1120px, var(--content)); padding-top: 54px; }
.about-page__body { max-width: none; margin-top: 20px; }
.about-page__body > * { min-width: 0; }
.about-page__body h2 { margin: 0; color: var(--color-text); font-size: clamp(24px, 3vw, 30px); font-weight: 600; line-height: 1.2; letter-spacing: -.02em; }
.about-page__body h3 { margin: 0; color: var(--color-text); font-size: 17px; font-weight: 500; line-height: 1.35; }
.about-page__body p { margin: 0; }
.about-intro { max-width: 760px; color: #46565c; font-size: clamp(17px, 2vw, 20px); line-height: 1.58; }
.about-overview { margin-top: 30px; }
.about-overview > h2, .about-operator > h2 { margin-bottom: 18px; }
.about-overview__panel, .about-why, .about-operator__card { overflow: hidden; border: 1px solid #e0e7e3; border-radius: 17px; background: #fff; }
.about-overview__features { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.about-overview__feature { display: flex; min-width: 0; flex-direction: column; gap: 10px; padding: 27px; }
.about-overview__feature + .about-overview__feature { border-left: 1px solid #e8eeeb; }
.about-overview__feature p { color: #586967; font-size: 15.5px; line-height: 1.58; }
.about-icon { display: inline-grid; width: 32px; height: 32px; flex: none; place-items: center; border: 1px solid #deebe4; border-radius: 9px; background: #f3f8f5; color: var(--color-primary); line-height: 1; }
.about-icon::before { display: block; width: 17px; height: 17px; background: center / contain no-repeat; content: ''; }
.about-icon--leaflets::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230d6159' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 3.5h8l4 4v13H6z'/%3E%3Cpath d='M14 3.5v4h4M9 12h6M9 15h6M9 18h4'/%3E%3C/svg%3E"); }
.about-icon--shops::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230d6159' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 10h16v10H4zM3 10l2-5h14l2 5M8 20v-6h4v6M14.5 14H17'/%3E%3C/svg%3E"); }
.about-icon--calculator::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230d6159' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='6' y='3.5' width='12' height='17' rx='1.5'/%3E%3Cpath d='M9 7.5h6M9 11.5h2M13 11.5h2M9 15.5h2M13 15.5h2'/%3E%3C/svg%3E"); }
.about-icon--sources::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230d6159' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 3.5h8l3 3V20.5H7z'/%3E%3Cpath d='M15 3.5v3h3M10 10h5M10 13.5h5M10 17h3'/%3E%3C/svg%3E"); }
.about-icon--package::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230d6159' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 8 7-4 7 4v8l-7 4-7-4zM5 8l7 4 7-4M12 12v8'/%3E%3C/svg%3E"); }
.about-icon--price::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230d6159' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6h10l6 6-8 8-8-8z'/%3E%3Cpath d='M9.5 9.5h.01' stroke-width='2.6'/%3E%3C/svg%3E"); }
.about-icon--compare::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230d6159' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 8h12M14 5l3 3-3 3M19 16H7M10 13l-3 3 3 3'/%3E%3C/svg%3E"); }
.about-icon--travel::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230d6159' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s6-5.2 6-11a6 6 0 1 0-12 0c0 5.8 6 11 6 11z'/%3E%3Ccircle cx='12' cy='10' r='2'/%3E%3C/svg%3E"); }
.about-icon--mail::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230d6159' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3.5' y='6' width='17' height='12' rx='1.5'/%3E%3Cpath d='m4 7 8 6 8-6'/%3E%3C/svg%3E"); }
.about-summary { padding: 16px 27px 18px; border-top: 1px solid #e8eeeb; background: #fcfdfc; }
.about-summary__label, .about-operator dt, .about-why__grid strong { display: block; color: #72817f; font-size: 11px; font-weight: 600; letter-spacing: .075em; line-height: 1.35; text-transform: uppercase; }
.about-summary ul { display: flex; flex-wrap: wrap; gap: 7px 22px; margin: 8px 0 0; padding: 0; list-style: none; }
.about-summary li { display: flex; align-items: baseline; gap: 7px; color: #4b5d59; font-size: 14.5px; line-height: 1.45; }
.about-summary li::before { width: 4px; height: 4px; flex: none; border-radius: 50%; background: #78ad91; content: ''; }
.about-trust { display: grid; grid-template-columns: minmax(230px, .82fr) minmax(0, 1fr); gap: 40px; margin-top: 64px; padding: 34px 36px; border: 1px solid #dce9e1; border-radius: 17px; background: #eff6f1; }
.about-trust__heading { display: flex; flex-direction: column; align-items: flex-start; gap: 13px; }
.about-trust__heading .about-icon { background: #fff; }
.about-trust__heading h2 { max-width: 15ch; }
.about-trust__copy { max-width: 620px; color: #3d504c; font-size: 17px; line-height: 1.62; }
.about-trust__copy p + p { margin-top: 14px; padding-top: 14px; border-top: 1px solid #dfece4; }
.about-why { display: grid; grid-template-columns: minmax(0, 1fr) minmax(340px, .92fr); align-items: center; gap: 44px; margin-top: 64px; padding: 36px; }
.about-why__copy { max-width: 560px; }
.about-why__copy h2 { margin-bottom: 14px; }
.about-why__copy p { color: #3f504e; font-size: 17px; line-height: 1.6; }
.about-why__copy p + p { margin-top: 14px; color: #596965; font-size: 16px; }
.about-why__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 0; padding: 0; list-style: none; }
.about-why__grid li { display: flex; min-width: 0; flex-direction: column; gap: 8px; padding: 14px; border: 1px solid #e1e8e3; border-radius: 12px; background: #fbfcfb; }
.about-why__grid .about-icon { width: auto; height: auto; place-items: start; border: 0; border-radius: 0; background: transparent; }
.about-why__grid li > span:last-child > span { display: block; margin-top: 6px; color: #4b5d59; font-size: 14.5px; line-height: 1.4; }
.about-operator { margin-top: 64px; }
.about-operator__card { padding: 29px; }
.about-operator dl { display: grid; grid-template-columns: minmax(0, .88fr) minmax(0, 1fr); gap: 52px; margin: 0; }
.about-operator dl > div { min-width: 0; }
.about-operator dd { margin: 6px 0 0; color: #344743; font-size: 15px; line-height: 1.55; overflow-wrap: anywhere; }
.about-operator dd + dt { margin-top: 14px; }
.about-operator dd strong { display: block; color: var(--color-text); font-size: 17px; font-weight: 600; letter-spacing: -.01em; }
.about-operator address { margin-top: 8px; color: #596965; font-style: normal; }
.about-operator__email { display: inline-flex; min-height: 38px; align-items: center; gap: 7px; padding: 7px 11px; border: 1px solid #dbe9e1; border-radius: 9px; background: #f4f9f6; color: var(--color-primary); font-weight: 500; text-decoration: none; }
.about-operator__email:hover { border-color: #bed7ca; background: #edf6f0; color: var(--color-primary-hover); }
.about-operator__email:focus-visible { outline: 3px solid rgba(13, 97, 89, .35); outline-offset: 3px; }
.about-operator__email .about-icon { width: auto; height: auto; border: 0; border-radius: 0; background: transparent; font-size: 14px; }

@media (max-width: 900px) {
    .about-overview__features { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .about-overview__feature:nth-child(odd) { border-left: 0; }
    .about-overview__feature:nth-child(n+3) { border-top: 1px solid #e8eeeb; }
    .about-overview__feature { padding: 22px; }
    .about-trust, .about-why { grid-template-columns: 1fr; gap: 25px; }
    .about-trust__heading h2 { max-width: none; }
    .about-why { gap: 28px; }
    .about-operator dl { gap: 32px; }
}
@media (max-width: 700px) {
    .about-page { width: min(var(--content), 100% - 28px); padding-top: 34px; padding-bottom: 60px; }
    .about-page__body { margin-top: 16px; }
    .about-intro { font-size: 17px; }
    .about-overview { margin-top: 28px; }
    .about-overview__features { grid-template-columns: 1fr; }
    .about-overview__feature { padding: 21px 20px; }
    .about-overview__feature + .about-overview__feature { border-top: 1px solid #e8eeeb; border-left: 0; }
    .about-summary { padding: 17px 20px; }
    .about-summary ul { display: grid; gap: 8px; }
    .about-trust, .about-why { margin-top: 42px; padding: 23px 20px; }
    .about-trust__copy, .about-why__copy p { font-size: 15.5px; }
    .about-why__copy p + p { font-size: 15px; }
    .about-why__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .about-why__grid li { padding: 13px; }
    .about-operator { margin-top: 42px; }
    .about-operator__card { padding: 21px 20px; }
    .about-operator dl { grid-template-columns: 1fr; gap: 24px; }
}

/* Public-content heading hierarchy: scoped to page content so calculator UI keeps its approved typography. */
.leaflets-page-header h1,
.categories-page__header h1,
.shops-page-header h1,
.shop-detail-header h1,
.viewer-heading h1,
.static-page h1,
.listing-page h1,
.shop-heading h1 { font-weight: 600; }

.home-section .section-title h2,
.home-section-intro h2,
.leaflets-info h2,
.category-group h2,
.shop-card--public h2,
.shops-info h2,
.shop-detail-section-heading h2,
.shop-detail-content h2,
.shop-detail-faq h2,
.shop-detail-practical > h2,
.viewer-offers h2,
.viewer-facts h2,
.viewer-practical h2,
.viewer-other-leaflets h2,
.viewer-guide-cta h2,
.static-page__body h2,
.search-section h2 { font-weight: 600; }

.home-leaflet-card h3,
.leaflet-card h3,
.home-calculator-card h3,
.home-product-value h3,
.leaflets-info__cta h3,
.shop-detail-practical__group h3,
.shop-content-block__body h3,
.viewer-offer-card h3,
.viewer-related-group h3,
.static-page__body h3,
.search-section h3,
.product-offer-row h3 { font-weight: 500; }
.shop-card h3 { font-weight: 500; }

/* AI product-offer projection: compact source-linked rows, shared by viewer, shop and search. */
.product-offer-section { margin-top: 46px; }
.product-offer-section__heading { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-bottom: 15px; }
.product-offer-section__heading h2 { margin: 0; color: var(--color-text); font-size: clamp(22px, 3vw, 28px); letter-spacing: -.02em; }
.product-offer-section__count { display: inline-grid; min-width: 28px; min-height: 25px; place-items: center; padding: 2px 8px; border-radius: 999px; background: #ecf5f0; color: #397064; font-size: 12px; font-weight: 700; font-variant-numeric: tabular-nums; }
.product-offer-list { overflow: hidden; border: 1px solid #e1e8e5; border-radius: 15px; background: #fff; box-shadow: 0 1px 2px rgba(16,40,50,.03); }
.product-offer-row { display: grid; grid-template-columns: minmax(0,1fr) auto auto; align-items: center; gap: 12px 22px; padding: 15px 17px; }
.product-offer-row + .product-offer-row { border-top: 1px solid #edf1ef; }
.product-offer-row__main { min-width: 0; }
.product-offer-row h3 { margin: 0; color: #1e302e; font-size: 15.5px; line-height: 1.35; }
.product-offer-row__description, .product-offer-row__facts { margin: 4px 0 0; color: #61716f; font-size: 13px; line-height: 1.45; }
.product-offer-row__facts { display: flex; flex-wrap: wrap; gap: 3px 11px; color: #6d7e7a; }
.product-offer-row__facts span + span::before { margin-right: 11px; color: #c3ceca; content: '·'; }
.product-offer-row__loyalty { padding: 2px 6px; border-radius: 999px; background: #fdf2d6; color: #866112; font-size: 11px; font-weight: 700; }
.product-offer-row__facts .product-offer-row__loyalty::before { display: none; }
.product-offer-row__price { display: grid; justify-items: end; gap: 3px; white-space: nowrap; }
.product-offer-row__price strong { color: #0b6f60; font-size: 16px; font-variant-numeric: tabular-nums; line-height: 1.2; }
.product-offer-row__price span { display: flex; align-items: center; justify-content: flex-end; gap: 7px; color: #86928e; font-size: 12px; }
.product-offer-row__price b { color: #b63b42; font-weight: 700; }
.product-offer-row__link { display: inline-flex; min-height: 34px; align-items: center; justify-content: center; gap: 5px; padding: 7px 10px; border: 1px solid #cce0d8; border-radius: 8px; background: #f4faf7; color: var(--color-primary); font-size: 12.5px; font-weight: 700; line-height: 1.2; text-align: center; text-decoration: none; }
.product-offer-row__link:hover { border-color: #9cc7b7; background: #ebf6f1; color: var(--color-primary-hover); }
.product-offer-row__link:focus-visible { outline: 3px solid rgba(15,118,110,.28); outline-offset: 2px; }
.product-offer-row__shopping { display: flex; align-items: center; gap: 8px; }
.product-offer-row__add, .shopping-list-item__controls button, .shopping-list-page__actions button { min-height: 34px; border: 1px solid #cce0d8; border-radius: 8px; background: #f4faf7; color: var(--color-primary); font: inherit; font-size: 12px; font-weight: 700; cursor: pointer; }
.product-offer-row__add { padding: 7px 10px; white-space: nowrap; }
.product-offer-row__quantity { display: inline-flex; align-items: center; overflow: hidden; border: 1px solid #cce0d8; border-radius: 8px; background: #fff; }
.product-offer-row__quantity button { width: 29px; min-height: 32px; border: 0; background: #f4faf7; color: var(--color-primary); font-size: 17px; cursor: pointer; }
.product-offer-row__quantity span { min-width: 25px; text-align: center; font-size: 13px; font-weight: 700; }
.product-offer-row--grid .product-offer-row__shopping { margin-top: auto; padding-top: 2px; }
.shopping-list-nav { display:inline-flex; align-items:center; gap:6px; }
.shopping-list-nav span { display:grid; min-width:18px; min-height:18px; place-items:center; border-radius:999px; background:var(--color-primary); color:#fff; font-size:11px; }
.shopping-list-drawer { position:fixed; z-index:30; top:0; right:0; width:min(410px,100vw); height:100dvh; padding:20px; border-left:1px solid #dce6e2; background:#fff; box-shadow:-18px 0 45px rgba(20,40,36,.18); overflow:auto; }
.shopping-list-drawer__header { display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; font-size:18px; }.shopping-list-drawer__header button{border:0;background:transparent;font-size:28px;cursor:pointer}.shopping-list-drawer__all{display:flex;min-height:44px;align-items:center;justify-content:center;margin-top:16px;border-radius:10px;background:var(--color-primary);color:#fff;font-weight:700;text-decoration:none}
.shopping-list-page { padding-top:42px; padding-bottom:72px; }.shopping-list-page__header { display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:24px}.shopping-list-page h1{margin:0;font-size:clamp(30px,4vw,40px)}.shopping-list-page__header p{margin:8px 0 0;color:var(--color-muted)}.shopping-list-page__actions{display:flex;gap:8px}.shopping-list-page__actions button{padding:8px 12px}.shopping-list-items{display:grid;gap:10px}.shopping-list-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 20px;padding:16px;border:1px solid #e0e9e4;border-radius:14px;background:#fff}.shopping-list-item h2{margin:0;font-size:16px}.shopping-list-item p{margin:4px 0 0;color:#687975;font-size:13px}.shopping-list-item strong{color:var(--color-primary);font-size:18px}.shopping-list-item a{grid-column:1;color:var(--color-primary);font-size:13px;font-weight:700}.shopping-list-item__controls{display:flex;align-items:center;gap:7px}.shopping-list-item__controls button{padding:5px 8px}.shopping-list-item__expired{display:inline-block;margin-top:7px;padding:3px 7px;border-radius:999px;background:#fff0e2;color:#9a5918;font-size:11px;font-weight:700}.shopping-list-empty{padding:46px 24px;border:1px dashed #c9ddd6;border-radius:16px;background:#f7fbf9;text-align:center}.shopping-list-empty h2{margin:0}.shopping-list-empty p{max-width:460px;margin:10px auto 18px;color:var(--color-muted)}.shopping-list-empty a{font-weight:700;color:var(--color-primary)}
@media print { .site-header,.site-footer,.shopping-list-page__actions,.shopping-list-drawer{display:none!important}.site-main{background:#fff}.shopping-list-page{padding:0}.shopping-list-item{break-inside:avoid;box-shadow:none} }
.product-offer-list--grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; overflow: visible; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.product-offer-row--grid { display: flex; min-width: 0; min-height: 0; flex-direction: column; align-items: stretch; gap: 9px; padding: 14px; border: 1px solid #e0e9e4; border-radius: 14px; background: linear-gradient(155deg, #fff 0%, #fbfdfb 100%); box-shadow: 0 1px 2px rgba(16,40,50,.03); }
.product-offer-row--grid + .product-offer-row--grid { border-top: 1px solid #e0e9e4; }
.product-offer-row--grid h3 { font-size: 15px; line-height: 1.32; }
.product-offer-row--grid .product-offer-row__price { order: -1; justify-items: start; gap: 4px; }
.product-offer-row--grid .product-offer-row__price strong { font-size: 19px; letter-spacing: -.015em; }
.product-offer-row--grid .product-offer-row__price span { justify-content: flex-start; font-size: 12px; }
.product-offer-row--grid .product-offer-row__description { margin-top: 3px; }
.product-offer-row--grid .product-offer-row__facts { margin-top: 7px; }
@media (min-width: 1050px) { .product-offer-list--grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.product-offer-page-groups { display: grid; gap: 10px; }
.product-offer-page-group { overflow: hidden; border: 1px solid #e1e8e5; border-radius: 14px; background: #fff; }
.product-offer-page-group summary { display: flex; min-height: 50px; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px; color: #253a36; cursor: pointer; font-size: 14px; font-weight: 700; list-style: none; }
.product-offer-page-group summary::-webkit-details-marker { display: none; }
.product-offer-page-group summary::after { width: 8px; height: 8px; margin-left: auto; border-right: 1.5px solid #55706a; border-bottom: 1.5px solid #55706a; content: ''; transform: rotate(45deg) translateY(-2px); transition: transform .15s ease; }
.product-offer-page-group[open] summary { border-bottom: 1px solid #e8efeb; }
.product-offer-page-group[open] summary::after { transform: rotate(225deg) translate(-2px,-1px); }
.product-offer-page-group summary span { display: inline-grid; min-width: 24px; min-height: 22px; place-items: center; padding: 1px 6px; border-radius: 999px; background: #ecf5f0; color: #397064; font-size: 11px; font-weight: 700; }
.product-offer-page-group .product-offer-list { border: 0; border-radius: 0; box-shadow: none; }
.product-offer-pagination { display: flex; align-items: center; justify-content: center; gap: 14px; margin-top: 17px; color: #65746f; font-size: 14px; }
.product-offer-pagination a { color: var(--color-primary); font-weight: 700; text-decoration: none; }
.product-offer-pagination a:hover { color: var(--color-primary-hover); text-decoration: underline; }
.product-offer-section--shop .product-offer-row--grid .product-offer-row__facts { color: #5f6e69; }
.product-offer-section--shop .product-offer-row--grid .product-offer-row__price > span { color: #66736f; }
.product-offer-section--shop .product-offer-row--grid .product-offer-row__link { order: 5; align-self: flex-start; min-height: 36px; padding: 8px 2px; border: 0; background: transparent; color: #547067; font-size: 13px; font-weight: 600; text-decoration: underline; }
.product-offer-section--shop .product-offer-row--grid .product-offer-row__link:hover { background: transparent; color: #075f41; }
.home-featured-products .product-offer-list--grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.home-featured-products .product-offer-row__shop-identity { min-height: 32px; gap: 7px; }
.home-featured-products .product-offer-row__shop-identity img { width: 30px; height: 30px; border-radius: 7px; }
.home-featured-products .product-offer-row--grid .product-offer-row__main { flex: 1 0 auto; }
.home-featured-products .product-offer-row__facts { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 5px 10px; }
.home-featured-products .product-offer-row__facts > span + span::before { content: none; }
.home-featured-products .product-offer-row__shop-identity { grid-column: 1; grid-row: 1; }
.home-featured-products .product-offer-row__validity { grid-column: 2; grid-row: 1; min-width: 0; text-align: right; }
.home-featured-products .product-offer-row__unit-price,
.home-featured-products .product-offer-row__loyalty { grid-column: 1 / -1; justify-self: start; }
.home-featured-products .product-offer-row--grid .product-offer-row__facts { color: #5f6e69; }
.home-featured-products .product-offer-row--grid .product-offer-row__price > span { color: #66736f; }
.home-featured-products .product-offer-row--grid .product-offer-row__link { order: 5; align-self: flex-start; min-height: 36px; padding: 8px 2px; border: 0; background: transparent; color: #547067; font-size: 13px; font-weight: 600; text-decoration: underline; }
.home-featured-products .product-offer-row--grid .product-offer-row__link:hover { background: transparent; color: #075f41; }
@media (min-width: 1050px) { .home-featured-products .product-offer-list--grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 650px) { .home-featured-products .product-offer-list--grid { grid-template-columns: 1fr; } }

@media (max-width: 650px) {
    .product-offer-section { margin-top: 38px; }
    .product-offer-section__heading { margin-bottom: 12px; }
    .product-offer-row { grid-template-columns: minmax(0, 1fr) auto; gap: 8px 12px; padding: 14px; }
    .product-offer-row__main { grid-column: 1 / -1; }
    .product-offer-row__price { grid-column: 1; grid-row: 2; justify-items: start; }
    .product-offer-row__price span { justify-content: flex-start; }
    .product-offer-row__link { grid-column: 2; grid-row: 2; min-height: 38px; padding-inline: 9px; }
    .product-offer-row__facts { gap: 2px 8px; }
    .product-offer-row__facts span + span::before { margin-right: 8px; }
    .product-offer-page-group summary { min-height: 48px; padding-inline: 14px; }
    .product-offer-list--grid { grid-template-columns: 1fr; gap: 9px; }
    .product-offer-row--grid { gap: 8px; padding: 13px; }
    .product-offer-row--grid .product-offer-row__price strong { font-size: 18px; }
    .product-offer-row__shopping { grid-column: 1 / -1; }
    .product-offer-row--grid .product-offer-row__shopping { grid-column:auto; }
    .shopping-list-page { padding-top:28px; }.shopping-list-page__header{display:block}.shopping-list-page__actions{margin-top:15px}.shopping-list-item{grid-template-columns:minmax(0,1fr) auto}.shopping-list-item__controls{grid-column:1 / -1;flex-wrap:wrap}.shopping-list-drawer{top:auto;bottom:0;width:100%;height:auto;max-height:76dvh;border:1px solid #dce6e2;border-radius:18px 18px 0 0;}
}

/* Final cascade for the CDE shopping-list layer. This comes after legacy
   product-offer rules so the new component never inherits their table layout. */
.product-offer-list--grid { gap: 14px; }
.product-offer-row--grid { gap: 10px; padding: 17px; border: 1px solid #dbe5e1; border-radius: 16px; background: #fff; box-shadow: 0 7px 20px rgba(22,49,43,.045); }
.product-offer-row--grid:hover { border-color: #bbd9cc; box-shadow: 0 10px 26px rgba(22,49,43,.075); transform: translateY(-1px); }
.product-offer-row--grid .product-offer-row__main { order: 1; }
.product-offer-row--grid h3 { color: #173932; font-size: 16px; font-weight: 700; line-height: 1.3; }
.product-offer-row--grid .product-offer-row__description { margin-top: 5px; color: #687a75; font-size: 13px; }
.product-offer-row--grid .product-offer-row__facts { order: 2; margin-top: -2px; }
.product-offer-row--grid .product-offer-row__price { order: 3; display: flex; align-items: baseline; gap: 8px; }
.product-offer-row--grid .product-offer-row__price strong { color: #0b754f; font-size: 21px; font-weight: 750; letter-spacing: -.025em; }
.product-offer-row--grid .product-offer-row__price span { justify-content: flex-start; gap: 7px; font-size: 12px; }
.product-offer-row--grid .product-offer-row__price b { padding: 3px 7px; border-radius: 999px; background: #fff0f0; color: #c93a3f; font-size: 11px; }
.product-offer-row--grid .product-offer-row__shopping { order: 4; margin-top: auto; padding-top: 3px; }
.product-offer-row__add { min-height: 37px; padding: 8px 12px; border: 1px solid #18a875; border-radius: 9px; background: #fff; color: #087d54; font-size: 12.5px; }
.product-offer-row__add:hover { border-color: #08734f; background: #edf9f3; }
.product-offer-row__quantity { min-height: 37px; border-color: #b9d9ca; border-radius: 9px; background: #f4fbf7; }
.product-offer-row__quantity[hidden] { display: none; }
.product-offer-row__quantity button { width: 33px; min-height: 35px; background: transparent; color: #087850; font-weight: 700; }
.product-offer-row__quantity span { min-width: 30px; color: #155b43; }
.product-offer-row__quantity-label { min-width: auto !important; padding-right: 3px; color: #247257 !important; font-size: 11.5px; font-weight: 700; white-space: nowrap; }
.shopping-list-nav { order: -1; margin-right: 2px; padding-inline: 10px !important; border-radius: 8px; background: #edf8f3; color: #0a7b53 !important; font-weight: 750; }
.shopping-list-nav:hover { background: #def3e9; }
.shopping-list-nav span,.shopping-list-fab b { display: grid; min-width: 19px; min-height: 19px; place-items: center; padding: 0 5px; border-radius: 999px; background: #0b9565; color: #fff; font-size: 11px; font-variant-numeric: tabular-nums; }
.shopping-list-fab { position: fixed; z-index: 56; right: max(18px,env(safe-area-inset-right)); bottom: max(82px,calc(env(safe-area-inset-bottom) + 66px)); display: inline-flex; min-height: 48px; align-items: center; gap: 8px; padding: 8px 13px; border: 1px solid #0a895d; border-radius: 13px; background: #0c8e61; color: #fff; box-shadow: 0 15px 29px -15px rgba(10,91,63,.76); font: 700 13px/1.2 inherit; cursor: pointer; }
.shopping-list-fab > span:first-child { display: grid; width: 26px; height: 26px; place-items: center; border-radius: 7px; background: rgba(255,255,255,.17); font-size: 15px; }
.shopping-list-fab b { background: #fff; color: #087851; }
.shopping-list-drawer { z-index: 80; box-sizing: border-box; display: flex; width: min(430px,100vw); height: 100dvh; flex-direction: column; padding: 0; border: 0; border-left: 1px solid #d7e5df; border-radius: 0; background: #fbfdfc; box-shadow: -22px 0 56px rgba(19,50,41,.22); }
.shopping-list-drawer[hidden] { display: none; }
.shopping-list-drawer-open .shopping-list-fab,.shopping-list-drawer-open .shopping-calculator--floating { display: none; }
.shopping-list-drawer__header { min-height: 89px; box-sizing: border-box; margin: 0; padding: 20px 22px 16px; border-bottom: 1px solid #e4ece8; }
.shopping-list-drawer__header>div p,.shopping-list-page__eyebrow,.shopping-list-group header p { margin: 0 0 3px; color: #159365; font-size: 11px; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.shopping-list-drawer__header strong { color: #173932; font-size: 21px; line-height: 1.1; }
.shopping-list-drawer__header button { display: grid; width: 36px; height: 36px; place-items: center; border: 1px solid #dae5e0; border-radius: 10px; background: #fff; color: #406058; font-size: 24px; line-height: 1; cursor: pointer; }
.shopping-list-drawer__body { min-height: 0; flex: 1; overflow: auto; padding: 16px 18px 22px; }
.shopping-list-drawer__footer { padding: 15px 18px max(18px,env(safe-area-inset-bottom)); border-top: 1px solid #e4ece8; background: #fff; }
.shopping-list-drawer__total { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 12px; color: #667a73; font-size: 13px; }.shopping-list-drawer__total strong { color: #173932; font-size: 20px; font-variant-numeric: tabular-nums; }
.shopping-list-drawer__all { display: flex; min-height: 46px; align-items: center; justify-content: center; gap: 8px; margin: 0; border-radius: 10px; background: #0b9565; box-shadow: 0 7px 15px rgba(5,122,79,.16); color: #fff; font-size: 13px; font-weight: 750; text-decoration: none; }
.shopping-list-groups { display: grid; gap: 18px; }.shopping-list-group { overflow: hidden; border: 1px solid #dae6e1; border-radius: 15px; background: #fff; box-shadow: 0 5px 16px rgba(19,50,41,.035); }
.shopping-list-group>header { display: grid; grid-template-columns: 35px minmax(0,1fr) auto; align-items: center; gap: 10px; padding: 13px 14px; border-bottom: 1px solid #e9f0ed; background: #f8fcfa; }.shopping-list-group__mark { display: grid; width: 35px; height: 35px; place-items: center; border-radius: 10px; background: #e1f4ea; color: #0d875d; font-size: 15px; font-weight: 800; }.shopping-list-group header h2 { margin: 0; color: #26443c; font-size: 14px; }.shopping-list-group header>strong { color: #1c4235; font-size: 13px; font-variant-numeric: tabular-nums; }
.shopping-list-items { display: grid; gap: 0; }.shopping-list-item { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px 14px; padding: 14px; border: 0; border-radius: 0; background: #fff; }.shopping-list-item+.shopping-list-item { border-top: 1px solid #edf2f0; }.shopping-list-item h2 { margin: 0; color: #1d3b33; font-size: 14.5px; font-weight: 700; line-height: 1.3; }.shopping-list-item p { margin: 4px 0 0; color: #758780; font-size: 12.5px; line-height: 1.35; }.shopping-list-item__unit-price { color: #60766d !important; }
.shopping-list-item__price { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; white-space: nowrap; }.shopping-list-item__price strong { color: #0b7e56; font-size: 16px; line-height: 1.2; }.shopping-list-item__price s { color: #94a39e; font-size: 11px; }.shopping-list-item__price b { padding: 2px 5px; border-radius: 999px; background: #fff0f0; color: #c53b41; font-size: 10px; }
.shopping-list-item__controls { display: inline-flex; align-items: center; gap: 2px; width: max-content; padding: 2px; border: 1px solid #cde2d7; border-radius: 9px; background: #f4faf7; }.shopping-list-item__controls button { display: grid; width: 28px; min-height: 28px; place-items: center; padding: 0; border: 0; border-radius: 7px; background: transparent; color: #087e55; font-size: 16px; font-weight: 700; cursor: pointer; }.shopping-list-item__controls span { min-width: 26px; color: #245247; font-size: 12px; font-weight: 750; text-align: center; }.shopping-list-item__controls .shopping-list-item__remove { margin-left: 3px; border-left: 1px solid #d7e6df; color: #81968d; font-size: 18px; }
.shopping-list-item__source { grid-column: 1/-1; display: inline-flex; width: max-content; align-items: center; gap: 5px; color: #087b53; font-size: 12px; font-weight: 750; text-decoration: none; }.shopping-list-item__source:hover { color: #075f41; text-decoration: underline; }.shopping-list-item__expired { display: inline-flex; margin-top: 7px; padding: 3px 7px; border-radius: 999px; background: #fff1df; color: #9b5a18; font-size: 10.5px; font-weight: 750; }.shopping-list-item--expired { background: #fffdfa; }
.shopping-list-page { padding-top: 46px; padding-bottom: 90px; }.shopping-list-page__header { display: flex; align-items: flex-start; justify-content: space-between; gap: 28px; margin-bottom: 28px; }.shopping-list-page h1 { margin: 0; color: #183a32; font-size: clamp(31px,4vw,45px); letter-spacing: -.035em; }.shopping-list-page__header>div>p:last-child { max-width: 590px; margin: 9px 0 0; color: #63766f; font-size: 15px; line-height: 1.5; }.shopping-list-page__actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }.shopping-list-page__action { min-height: 39px; padding: 8px 11px; border: 1px solid #d4e1dc; border-radius: 9px; background: #fff; color: #356056; font: 700 12.5px/1.2 inherit; cursor: pointer; }.shopping-list-page__action:hover:not(:disabled) { border-color: #9fcab8; background: #f4faf7; color: #087a53; }.shopping-list-page__action:disabled { color: #9baca5; cursor: not-allowed; }
.shopping-list-page__action--clear { border-color: transparent; background: transparent; color: #8f5d58; }.shopping-list-page__action--clear:hover:not(:disabled) { border-color: #ecd5d2; background: #fff7f6; color: #a33e38; }
.shopping-list-dialog { width: min(510px,calc(100vw - 32px)); box-sizing: border-box; padding: 0; border: 0; border-radius: 16px; background: #fff; box-shadow: 0 24px 70px rgba(16,48,39,.28); color: #24443a; }.shopping-list-dialog::backdrop { background: rgba(15,38,32,.46); }.shopping-list-dialog section { padding: 24px; }.shopping-list-dialog h2 { margin: 0; color: #183a32; font-size: 21px; letter-spacing: -.015em; }.shopping-list-dialog p { margin: 10px 0 0; color: #5f736b; font-size: 14px; line-height: 1.5; }.shopping-list-dialog footer { display: flex; justify-content: flex-end; gap: 9px; margin-top: 22px; }.shopping-list-dialog button { min-height: 40px; padding: 8px 13px; border: 1px solid #d3e0db; border-radius: 9px; background: #fff; color: #356056; font: 750 13px/1.2 inherit; cursor: pointer; }.shopping-list-dialog button:hover { border-color: #9fcab8; background: #f4faf7; color: #087a53; }.shopping-list-dialog__confirm { border-color: #a94a43 !important; background: #b14b43 !important; color: #fff !important; }.shopping-list-dialog__confirm:hover { border-color: #963e38 !important; background: #993f39 !important; }.shopping-list-dialog__url { display: grid; gap: 6px; margin-top: 18px; color: #49675d; font-size: 12px; font-weight: 750; }.shopping-list-dialog__url input { width: 100%; min-height: 43px; box-sizing: border-box; padding: 9px 11px; border: 1px solid #cfe0d9; border-radius: 9px; background: #f9fcfb; color: #26453c; font: 13px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace; }.shopping-list-dialog__url input:focus-visible,.shopping-list-dialog button:focus-visible { outline: 3px solid rgba(11,149,101,.27); outline-offset: 2px; }.shopping-list-dialog__copy { margin-top: 10px; border-color: #0b9565 !important; background: #0b9565 !important; color: #fff !important; }.shopping-list-dialog__copy:hover { border-color: #087d54 !important; background: #087d54 !important; }.shopping-list-dialog__expiry { color: #2d5d4f !important; font-weight: 700; }.shopping-list-dialog__notice { padding: 10px 11px; border-radius: 9px; background: #f4faf7; color: #49685e !important; font-size: 12.5px !important; }.shopping-list-dialog__snapshot { color: #82948d !important; font-size: 12px !important; }
.shopping-list-empty { padding: clamp(36px,7vw,74px) 24px; border: 1px solid #d8e8e0; border-radius: 19px; background: linear-gradient(135deg,#f5fcf8,#fff); box-shadow: 0 8px 24px rgba(22,61,48,.04); text-align: center; }.shopping-list-empty__icon { display: grid; width: 52px; height: 52px; place-items: center; margin: 0 auto 16px; border-radius: 16px; background: #dff5e9; color: #078359; font-size: 30px; }.shopping-list-empty h2 { margin: 0; color: #1b3d34; font-size: clamp(21px,3vw,28px); }.shopping-list-empty>p:not(.shopping-list-page__eyebrow) { max-width: 560px; margin: 10px auto 22px; color: #61756d; line-height: 1.55; }.shopping-list-empty__steps { display: flex; justify-content: center; gap: 8px; margin: 0 auto 23px; color: #49685e; font-size: 12px; font-weight: 700; }.shopping-list-empty__steps span { padding: 7px 9px; border-radius: 999px; background: #fff; box-shadow: 0 2px 7px rgba(16,63,47,.07); }.shopping-list-empty__actions { display: flex; align-items: center; justify-content: center; gap: 15px; font-size: 13px; font-weight: 750; }.shopping-list-empty__actions a { color: #087d54; text-decoration: none; }.shopping-list-empty__primary { min-height: 43px; display: inline-flex; align-items: center; padding: 0 15px; border-radius: 10px; background: #0b9565; color: #fff !important; box-shadow: 0 7px 15px rgba(5,122,79,.17); }
.shopping-list-overall { display: grid; grid-template-columns: 1fr auto; gap: 2px 18px; margin-top: 18px; padding: 17px 19px; border-radius: 15px; background: #113f34; color: #d8f4e7; box-shadow: 0 10px 24px rgba(14,65,47,.16); }.shopping-list-overall span { font-size: 13px; font-weight: 700; }.shopping-list-overall strong { grid-row: span 2; grid-column: 2; align-self: center; color: #fff; font-size: 25px; letter-spacing: -.025em; }.shopping-list-overall small { color: #a9d4be; font-size: 12px; }

/* The viewer's new offer cards sit behind fixed utility controls; keep the
   existing utilities compact there so they do not cover row actions. */
body:has(.product-offer-section--viewer[data-extraction-state="succeeded_with_offers"]) .shopping-list-fab { box-sizing: border-box; width: 52px; min-width: 52px; justify-content: center; gap: 0; padding: 7px; }
body:has(.product-offer-section--viewer[data-extraction-state="succeeded_with_offers"]) .shopping-list-fab > span:nth-child(2) { display: none; }
body:has(.product-offer-section--viewer[data-extraction-state="succeeded_with_offers"]) .shopping-list-fab b { position: absolute; top: -5px; right: -5px; }
body:has(.product-offer-section--viewer[data-extraction-state="succeeded_with_offers"]) .shopping-calculator--floating .shopping-calculator__trigger { box-sizing: border-box; width: 48px; min-width: 48px; justify-content: center; gap: 0; padding: 7px; }
body:has(.product-offer-section--viewer[data-extraction-state="succeeded_with_offers"]) .shopping-calculator--floating .shopping-calculator__trigger > span:nth-child(2) { display: none; }
@media print { .shopping-list-fab,.shopping-list-page__actions,.shopping-list-drawer,.shopping-list-dialog { display:none!important; }.shopping-list-group { box-shadow:none; break-inside:avoid; } }
@media (max-width:760px) { .shopping-list-nav { order:initial; }.shopping-list-fab { right:12px; bottom:max(72px,calc(env(safe-area-inset-bottom) + 58px)); min-height:45px; padding-inline:10px; }.shopping-list-drawer { top:auto; right:0; bottom:0; width:100%; height:auto; max-height:min(78dvh,700px); border:1px solid #d6e3de; border-bottom:0; border-radius:22px 22px 0 0; }.shopping-list-drawer__header { min-height:78px; padding:15px 17px 13px; }.shopping-list-drawer__body { padding:13px 14px 18px; }.shopping-list-drawer__footer { padding:13px 14px max(15px,env(safe-area-inset-bottom)); }.shopping-list-page { padding-top:31px; padding-bottom:82px; }.shopping-list-page__header { display:block; margin-bottom:22px; }.shopping-list-page__actions { justify-content:flex-start; margin-top:17px; }.shopping-list-empty__steps,.shopping-list-empty__actions { flex-direction:column; }.shopping-list-empty__actions { gap:13px; }.product-offer-row--grid { padding:15px; } }
@media (max-width: 500px) { .shopping-list-dialog section { padding: 20px; }.shopping-list-dialog footer { flex-direction: column-reverse; }.shopping-list-dialog footer button,.shopping-list-dialog__copy { width: 100%; }.shopping-list-dialog__url input { font-size: 12px; } }

/* Second CDE polish: shop identity, clear destructive action and dense source
   contexts.  These rules intentionally target only the new offer/list layer. */
.shopping-list-group__mark { overflow: hidden; background: #fff; border: 1px solid #e1ebe6; }
.shopping-list-group__mark img { display: block; width: 100%; height: 100%; object-fit: contain; padding: 3px; }
.shopping-list-group__mark span { display: grid; width: 100%; height: 100%; place-items: center; background: #e1f4ea; color: #0d875d; }
.shopping-list-group__count { display: inline; }
.shopping-list-item__actions { display: inline-flex; grid-column: 1 / -1; align-items: center; gap: 8px; }
.shopping-list-item__controls .shopping-list-item__remove { margin-left: 0; border-left: 0; }
.shopping-list-item__remove { display: grid; width: 31px; min-height: 31px; place-items: center; padding: 0; border: 1px solid #e5d7d4; border-radius: 8px; background: #fff; color: #8494a6; font-size: 18px; font-weight: 600; line-height: 1; cursor: pointer; }
.shopping-list-item__remove:hover { border-color: #d5a9a4; background: #fff6f5; color: #a8443e; }
.shopping-list-overall span { color: #d8f4e7; }
.shopping-list-overall small { max-width: 280px; }

/* Shop and search are scan-heavy source contexts, so use a compact two-line
   card rather than the old broad three-column row. */
.product-offer-list--rows { display: grid; gap: 10px; overflow: visible; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.product-offer-row--rows { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "main price" "shopping source"; align-items: center; gap: 10px 16px; padding: 14px 16px; border: 1px solid #dbe5e1; border-radius: 14px; background: #fff; box-shadow: 0 4px 14px rgba(22,49,43,.035); }
.product-offer-row--rows + .product-offer-row--rows { border-top: 1px solid #dbe5e1; }
.product-offer-row--rows .product-offer-row__main { grid-area: main; }
.product-offer-row--rows .product-offer-row__price { grid-area: price; }
.product-offer-row--rows .product-offer-row__shopping { grid-area: shopping; }
.product-offer-row--rows .product-offer-row__link { grid-area: source; min-height: 32px; padding: 5px 0; border: 0; border-radius: 0; background: transparent; color: #087b53; text-align: right; }
.product-offer-row--rows .product-offer-row__link:hover { background: transparent; color: #075f41; text-decoration: underline; }
.product-offer-row--rows .product-offer-row__price strong { color: #0b754f; font-size: 18px; }
.product-offer-row--rows .product-offer-row__facts { margin-top: 5px; }
.product-offer-row__shop-identity { display: inline-flex; align-items: center; gap: 5px; }
.product-offer-row__shop-identity img { display: block; width: 18px; height: 18px; box-sizing: border-box; padding: 1px; border: 1px solid #dbe7e1; border-radius: 5px; background: #fff; object-fit: contain; }

@media (max-width: 650px) {
    .product-offer-row--rows { grid-template-columns: minmax(0,1fr) auto; gap: 9px 11px; padding: 13px; }
    .product-offer-row--rows .product-offer-row__link { min-height: 31px; font-size: 12px; }
    .shopping-list-item__actions { grid-column: 1 / -1; }
}

/* CDE shopping mode: isolated polish for the additive shopping-list layer. */
.shopping-list-guide { display: grid; gap: 16px; margin: 0 0 18px; padding: 18px 20px; border: 1px solid #dfe8e4; border-radius: 15px; background: #fff; box-shadow: 0 5px 18px rgba(19,50,41,.035); }
.shopping-list-guide__header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.shopping-list-guide h2 { margin: 0; color: #173932; font-size: 18px; letter-spacing: -.01em; }
.shopping-list-guide__header p { max-width: 600px; margin: 5px 0 0; color: #5d716a; font-size: 13.5px; line-height: 1.48; }
.shopping-list-guide__header button,.shopping-list-guide-collapsed { min-height: 36px; flex: 0 0 auto; padding: 7px 11px; border: 1px solid #d7e3de; border-radius: 9px; background: #fff; color: #42645a; font: 700 12.5px/1.2 inherit; cursor: pointer; }
.shopping-list-guide__header button:hover,.shopping-list-guide-collapsed:hover { border-color: #a9cdbd; background: #f4faf7; color: #087b53; }
.shopping-list-guide__steps { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 11px; }
.shopping-list-guide__steps article { min-width: 0; padding: 13px; border: 1px solid #edf2f0; border-radius: 12px; background: #fbfdfc; }
.shopping-list-guide__steps article>span { display: grid; width: 29px; height: 29px; place-items: center; margin-bottom: 8px; border-radius: 8px; background: #e2f5ea; color: #087e55; font-weight: 800; }
.shopping-list-guide__steps small,.shopping-list-guide__tips>small { display: block; color: #819890; font-size: 10.5px; font-weight: 800; letter-spacing: .08em; }
.shopping-list-guide__steps h3 { margin: 5px 0 3px; color: #24443a; font-size: 13.5px; }
.shopping-list-guide__steps p { margin: 0; color: #687b74; font-size: 12.5px; line-height: 1.42; }
.shopping-list-guide__tips { padding-top: 14px; border-top: 1px solid #edf2f0; }
.shopping-list-guide__tips>div { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px 18px; margin-top: 8px; }
.shopping-list-guide__tips p { margin: 0; color: #6a7c75; font-size: 12.5px; line-height: 1.4; }
.shopping-list-guide__tips b { color: #294a40; }
.shopping-list-guide__note { margin: 10px 0 0 !important; color: #84968f !important; font-size: 11.5px !important; }
.shopping-list-guide-collapsed { display: inline-flex; align-items: center; gap: 7px; margin: 0 0 16px; }
.shopping-list-guide-collapsed span { color: #087b53; font-size: 16px; }

.shopping-list-item { grid-template-columns: 40px minmax(0,1fr) auto; grid-template-areas: "check copy price" ". actions actions" ". source-actions source-actions"; gap: 8px 13px; padding: 13px 14px; }
.shopping-list-item__check { position: relative; display: grid; grid-area: check; width: 40px; height: 40px; place-items: center; margin: -4px 0 0 -7px; cursor: pointer; }
.shopping-list-item__check input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.shopping-list-item__check span { display: grid; width: 22px; height: 22px; box-sizing: border-box; place-items: center; border: 2px solid #b8cac2; border-radius: 7px; background: #fff; transition: background .15s ease, border-color .15s ease; }
.shopping-list-item__check input:checked + span,.shopping-list-item__check--readonly.is-checked { border-color: #0b9565; background: #0b9565; }
.shopping-list-item__check input:checked + span::after,.shopping-list-item__check--readonly.is-checked::after { color: #fff; content: '✓'; font-size: 14px; font-weight: 800; }
.shopping-list-item__check input:focus-visible + span { outline: 3px solid rgba(11,149,101,.28); outline-offset: 3px; }
.shopping-list-item__copy { grid-area: copy; min-width: 0; }
.shopping-list-item__copy h2 { overflow-wrap: anywhere; }
.shopping-list-item__meta { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 7px; }
.shopping-list-item__validity,.shopping-list-item__loyalty { display: inline-flex; min-height: 21px; align-items: center; box-sizing: border-box; padding: 2px 7px; border: 1px solid #e0e7e4; border-radius: 7px; color: #60756d; font-size: 11px; font-weight: 700; line-height: 1.2; }
.shopping-list-item__validity--future { border-color: #f0dfb8; background: #fff8ea; color: #886218; }
.shopping-list-item__validity--expired { border-color: #efd2d0; background: #fff4f3; color: #a34b43; }
.shopping-list-item__loyalty { border: 0; background: #fff4d9; color: #876117; }
.shopping-list-item__price { grid-area: price; }
.shopping-list-item__price small { color: #82948d; font-size: 11px; }
.shopping-list-item__actions { grid-area: actions; grid-column: auto; }
.shopping-list-item__source-actions { grid-area: source-actions; display: inline-flex; align-items: center; gap: 10px; min-width: 0; }
.shopping-list-item__remove { flex: 0 0 auto; }
.shopping-list-item__source { display: inline-flex; grid-column: auto; min-height: 31px; align-items: center; padding: 6px 0; }
.shopping-list-item--checked { background: #fbfdfc; }
.shopping-list-item--checked .shopping-list-item__copy h2 { color: #8a9994; text-decoration: line-through; text-decoration-thickness: 1px; }
.shopping-list-item--checked .shopping-list-item__copy p,.shopping-list-item--checked .shopping-list-item__meta,.shopping-list-item--checked .shopping-list-item__price { opacity: .64; }
.shopping-list-item--expired { background: #fffdfb; }
.shopping-list-item--expired .shopping-list-item__price strong { color: #84938e; text-decoration: line-through; }
.shopping-list-group header small { display: block; margin-top: 2px; color: #71847d; font-size: 11.5px; font-weight: 600; }
.shopping-list-drawer__note { min-height: 16px; margin: 0 0 10px; color: #788b84; font-size: 11.5px; line-height: 1.35; }
.shopping-list-drawer .shopping-list-group { margin-bottom: 12px; }
.shopping-list-drawer .shopping-list-item { grid-template-columns: 35px minmax(0,1fr) auto; gap: 7px 9px; padding: 12px 10px; }
.shopping-list-drawer .shopping-list-item__check { width: 35px; height: 36px; margin-left: -4px; }
.shopping-list-drawer .shopping-list-item__check span { width: 20px; height: 20px; border-radius: 6px; }
.shopping-list-drawer .shopping-list-item__source { font-size: 11px; }
.shopping-list-drawer .shopping-list-item__controls button { width: 27px; }
.shopping-list-drawer .shopping-list-item__meta { margin-top: 5px; }
.shopping-list-overall { grid-template-columns: minmax(0,1fr) auto; align-items: center; }
.shopping-list-overall>div:first-child { min-width: 0; }
.shopping-list-overall span { display: inline-block; }
.shopping-list-overall button { display: inline-grid; width: 20px; height: 20px; place-items: center; margin-left: 6px; padding: 0; border: 1px solid #44675a; border-radius: 50%; background: #173f35; color: #d8f4e7; font: 800 11px/1 inherit; cursor: pointer; vertical-align: text-bottom; }
.shopping-list-overall button:focus-visible { outline: 3px solid rgba(197,244,219,.45); outline-offset: 2px; }
.shopping-list-overall p { max-width: 450px; margin: 4px 0 0; color: #b8d7c6; font-size: 11.5px; line-height: 1.35; }
.shopping-list-overall__info { max-width: 450px; margin-top: 9px; padding: 10px 11px; border: 1px solid #2e6050; border-radius: 9px; background: #173f35; color: #e1f7eb; font-size: 12px; line-height: 1.45; }
.shopping-list-overall>small { grid-column: 1 / -1; color: #f0b9b9; }
.shopping-list-empty__search { display: flex; max-width: 590px; gap: 8px; margin: 19px auto 12px; }
.shopping-list-empty__search label { display: flex; min-width: 0; flex: 1; align-items: center; gap: 9px; padding: 0 13px; border: 1px solid #d9e5df; border-radius: 10px; background: #fff; color: #73877f; }
.shopping-list-empty__search input { width: 100%; min-height: 42px; border: 0; outline: 0; background: transparent; color: #1d3b33; font: inherit; }
.shopping-list-empty__search button { min-height: 43px; padding: 0 16px; border: 0; border-radius: 10px; background: #0b9565; color: #fff; font: 750 13px/1 inherit; cursor: pointer; }

/* CDE desktop checklist: only the full owned list uses this single horizontal
   product row.  Drawer, shared snapshot and mobile retain their compact modes. */
@media (min-width: 860px) {
    .shopping-list-page[data-shopping-list-shared="false"] .shopping-list-group>header { grid-template-columns: 40px minmax(0,1fr) auto auto; gap: 12px; padding: 13px 16px; }
    .shopping-list-page[data-shopping-list-shared="false"] .shopping-list-group__mark { width: 40px; height: 40px; border-radius: 11px; }
    .shopping-list-page[data-shopping-list-shared="false"] .shopping-list-group__mark img { padding: 4px; }
    .shopping-list-page[data-shopping-list-shared="false"] .shopping-list-group__progress { padding: 4px 9px; border-radius: 7px; background: #e9f8f2; color: #0b7a57; font-size: 12px; font-weight: 700; white-space: nowrap; }
    .shopping-list-page[data-shopping-list-shared="false"] .shopping-list-item { grid-template-columns: 40px minmax(190px,1fr) auto minmax(104px,auto) auto; grid-template-areas: "check copy actions price source-actions"; align-items: center; gap: 13px; min-height: 82px; padding: 13px 16px; }
    .shopping-list-page[data-shopping-list-shared="false"] .shopping-list-item__check { align-self: start; margin-top: -2px; }
    .shopping-list-page[data-shopping-list-shared="false"] .shopping-list-item__actions { align-self: center; }
    .shopping-list-page[data-shopping-list-shared="false"] .shopping-list-item__price { min-width: 104px; align-self: center; }
    .shopping-list-page[data-shopping-list-shared="false"] .shopping-list-item__source-actions { display: inline-flex; align-items: center; justify-content: flex-end; gap: 6px; white-space: nowrap; }
    .shopping-list-page[data-shopping-list-shared="false"] .shopping-list-item__source { min-height: 36px; padding: 0 11px; border: 1px solid #d5dde8; border-radius: 9px; background: #fff; color: #334155; font-size: 12.5px; font-weight: 650; }
    .shopping-list-page[data-shopping-list-shared="false"] .shopping-list-item__source:hover { border-color: #b8c8d8; background: #f8fafc; color: #0b7a57; text-decoration: none; }
    .shopping-list-page[data-shopping-list-shared="false"] .shopping-list-item__remove { width: 36px; min-height: 36px; border-color: #e5e9f0; border-radius: 9px; color: #8494a6; }
}

@media (max-width: 650px) {
    .shopping-list-guide { padding: 15px; }
    .shopping-list-guide__header { display: block; }
    .shopping-list-guide__header button { margin-top: 12px; }
    .shopping-list-guide__steps,.shopping-list-guide__tips>div { grid-template-columns: 1fr; }
    .shopping-list-item { grid-template-columns: 38px minmax(0,1fr) auto; grid-template-areas: "check copy price" "check actions actions" "check source-actions source-actions"; gap: 7px 8px; padding: 12px 10px; }
    .shopping-list-item__check { width: 38px; height: 42px; margin-left: -3px; }
    .shopping-list-item__price strong { font-size: 15px; }
    .shopping-list-item__price small { font-size: 10.5px; }
    .shopping-list-item__actions { min-width: 0; gap: 5px; }
    .shopping-list-item__source { max-width: 100%; font-size: 11px; white-space: nowrap; }
    .shopping-list-overall { gap: 4px 10px; padding: 15px; }
    .shopping-list-overall strong { font-size: 22px; }
    .shopping-list-empty__search { flex-direction: column; }
    .shopping-list-empty__search button { width: 100%; }
}

@media print {
    @page { size: A4; margin: 8mm; }
    .site-header,.site-footer,.shopping-list-fab,.shopping-list-drawer,.shopping-list-page__actions,.shopping-list-guide,.shopping-list-guide-collapsed,.shopping-list-empty,.shopping-list-item__actions,.shopping-list-item__source-actions,.shopping-list-item__source,.shopping-list-overall button,.shopping-list-overall p,.shopping-list-overall__info { display: none !important; }
    body,.site-shell,.site-main { display: block !important; background: #fff !important; color: #111 !important; }
    .shopping-list-page { max-width: none; padding: 0; }
    .shopping-list-page__header { margin: 0 0 4mm; }
    .shopping-list-page__header h1 { font-size: 17pt; }
    .shopping-list-page__header p { margin-top: 2px; color: #444; font-size: 9pt; }
    .shopping-list-groups { display: block; columns: 2; column-gap: 7mm; }
    .shopping-list-group { display: inline-block; width: 100%; margin: 0 0 4mm; border: 0; border-radius: 0; box-shadow: none; break-inside: avoid; }
    .shopping-list-group>header { grid-template-columns: minmax(0,1fr) auto; padding: 0 0 2mm; border: 0; border-bottom: .35mm solid #333; background: transparent; break-after: avoid; }
    .shopping-list-group__mark,.shopping-list-group header p,.shopping-list-group__progress { display: none; }
    .shopping-list-group__count { display: inline; }
    .shopping-list-group header h2 { font-size: 10.5pt; text-transform: uppercase; }
    .shopping-list-group header small { font-size: 8pt; }
    .shopping-list-group header>strong { font-size: 9pt; }
    .shopping-list-item { grid-template-columns: 6mm minmax(0,1fr) auto; grid-template-areas: "check copy price"; gap: 1.5mm; min-height: 0; padding: 1.35mm 0; border: 0; border-bottom: .2mm solid #ddd; background: transparent !important; break-inside: avoid; }
    .shopping-list-item__check { width: 5mm; height: 5mm; margin: 0; pointer-events: none; }
    .shopping-list-item__check input { display: none; }
    .shopping-list-item__check span,.shopping-list-item__check--readonly { width: 3.5mm; height: 3.5mm; border: .35mm solid #222 !important; border-radius: .35mm; background: #fff !important; }
    .shopping-list-item__check span::after,.shopping-list-item__check--readonly::after { display: none !important; content: none !important; }
    .shopping-list-item__copy h2 { color: #111 !important; font-size: 9.5pt; font-weight: 700; line-height: 1.2; text-decoration: none !important; }
    .shopping-list-item__copy p { display: inline; margin: 0; color: #555 !important; font-size: 8.5pt; }
    .shopping-list-item__copy p::before { content: ' · '; }
    .shopping-list-item__unit-price,.shopping-list-item__loyalty,.shopping-list-item__price s,.shopping-list-item__price b { display: none !important; }
    .shopping-list-item__meta { display: inline-flex; margin: 0 0 0 2mm; }
    .shopping-list-item__validity { min-height: 0; padding: 0; border: 0; border-radius: 0; background: transparent !important; color: #444 !important; font-size: 8pt; font-weight: 600; }
    .shopping-list-item__price { display: block; align-self: center; }
    .shopping-list-item__price strong { color: #111 !important; font-size: 9pt; text-decoration: none !important; }
    .shopping-list-item__price small { display: none; }
    .shopping-list-overall { display: grid; margin-top: 5mm; padding: 2.5mm 0 0; border-radius: 0; border-top: .45mm solid #111; background: transparent; box-shadow: none; color: #111; break-inside: avoid; }
    .shopping-list-overall span,.shopping-list-overall strong { color: #111; }
    .shopping-list-overall span { font-size: 10pt; }
    .shopping-list-overall strong { font-size: 13pt; }
    .shopping-list-overall>small { color: #555; font-size: 8pt; }
}
/* Semantic product-offer and shopping-list containers. */
.product-offer-list { list-style: none; margin: 0; padding: 0; }
.product-offer-list__item { min-width: 0; }
.product-offer-list--grid .product-offer-list__item { display: flex; min-width: 0; }
.product-offer-list--grid .product-offer-row { width: 100%; }
.product-offer-section--viewer { margin-top: 24px; margin-bottom: 26px; }
.product-offer-state { margin: 0 0 14px; color: #40564f; line-height: 1.55; }
.viewer-page { margin: 0; }
.shopping-list-items { list-style: none; margin: 0; padding: 0; }
.shopping-list-items__entry + .shopping-list-items__entry .shopping-list-item { border-top: 1px solid #edf2f0; }
.shopping-list-drawer:not([open]) { display: none; }
.shopping-list-drawer::backdrop { background: rgba(14,31,26,.45); }
.shopping-list-drawer__header h2 { margin: 0; color: #173932; font-size: 21px; line-height: 1.1; }
.shopping-list-page [data-shopping-list-content] h2[tabindex="-1"]:focus { outline: 3px solid #075e4f; outline-offset: 4px; }
.shopping-list-item__check:focus-within { outline: 3px solid #075e4f !important; outline-offset: 3px; box-shadow: 0 0 0 2px #fff; }
.product-offer-row__link:focus-visible,.product-offer-row__add:focus-visible,.product-offer-row__quantity button:focus-visible { outline: 3px solid #075e4f; outline-offset: 3px; box-shadow: 0 0 0 2px #fff; }

/* Search results use direct server-rendered sort links instead of a submit form. */
.search-results-page > h1 { margin-bottom: 0; }
.search-results-page .search-section { margin-top: 22px; }
.product-search-sort { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 7px; margin: 0; }
.product-search-sort a { display: inline-flex; min-height: 38px; align-items: center; justify-content: center; padding: 7px 12px; border: 1px solid #d6e2dd; border-radius: 999px; background: #fff; color: #36534a; font-size: 13.5px; font-weight: 650; line-height: 1.2; white-space: nowrap; }
.product-search-sort a:hover { border-color: #8db6a5; background: #f4faf7; color: #075e4f; }
.product-search-sort a[aria-current="page"] { border-color: #0f766e; background: #0f766e; color: #fff; }
.product-offer-section--search .product-offer-row__shop-identity { min-height: 32px; gap: 7px; }
.product-offer-section--search .product-offer-row__shop-identity img { width: 30px; height: 30px; border-radius: 7px; }
@media (max-width: 650px) {
    .product-offer-section--search .product-offer-section__heading { align-items: flex-start; flex-direction: column; gap: 11px; }
    .product-offer-section--search .product-search-sort { width: 100%; justify-content: flex-start; gap: 6px; }
    .product-offer-section--search .product-search-sort a { min-height: 42px; padding: 8px 11px; }
    .product-offer-section--search .product-offer-row__shop-identity img { width: 28px; height: 28px; }
}
@media (max-width: 390px) {
    .product-offer-section--viewer { margin-inline: 12px; }
    .shopping-list-drawer { padding-bottom: env(safe-area-inset-bottom); }
}
