/* Estructura de tienda con la identidad crema y vino de Reina del Cisne. */
:root { --ink:#302e2b; --muted:#65615c; --line:#e8dfd2; --surface:#fffaf1; --soft:#f4eddf; --brand-red:#b51c36; --brand-dark:#8b142b; --brand-soft:#faeae5; --footer-bg:#681e2a; --footer-muted:#f0dcd2; --serif:'Fraunces',Georgia,serif; }
body { background:#f4eddf; }
.site-shell { width:100%; max-width:none; margin:0; background:var(--surface); }
h1,h2,h3 { color:var(--ink); font-family:var(--sans); letter-spacing:-.045em; }
.section-wrap { width:calc(100% - 64px); }
.button { border-radius:9px; box-shadow:none; min-height:48px; font-size:14px; }
.button:hover { transform:none; }
.button-primary { color:white; background:var(--brand-red); border:1px solid var(--brand-red); box-shadow:none; }
.button-primary:hover { background:var(--brand-dark); box-shadow:none; }
.button-outline { border:1px solid var(--brand-red); background:var(--surface); color:var(--brand-red); }
.button:disabled { opacity:.55; cursor:not-allowed; }
.text-link { color:var(--brand-red); font-weight:700; font-size:14px; background:none; border:0; padding:8px 0; display:inline-block; }
.text-link:hover { text-decoration:underline; text-underline-offset:4px; }
:is(a,button,input,select,textarea,summary):focus-visible { outline:3px solid #bf6b13; outline-offset:4px; }
[hidden] { display:none !important; }
.shop-header { background:var(--surface); border-bottom:1px solid var(--line); }
.shop-header .header-inner { display:flex; flex-wrap:wrap; justify-content:initial; gap:24px; width:calc(100% - 64px); min-height:88px; }
.shop-header .brand img { width:190px; max-height:64px; object-fit:contain; }
.shop-nav { display:flex; gap:24px; font-size:14px; font-weight:700; }
.shop-nav a[aria-current],.shop-actions a[aria-current]:not(.shop-cart) { color:var(--brand-red); }
.header-search { display:flex; align-items:center; flex:1; min-width:170px; max-width:330px; padding:0 12px; border:1px solid var(--line); background:var(--soft); border-radius:24px; }
.header-search span { font-size:25px; }
.header-search input { width:100%; min-width:0; border:0; background:transparent; min-height:42px; padding:8px; color:var(--ink); font:inherit; font-size:12px; }
.header-search button { border:0; background:none; color:var(--brand-red); min-height:42px; font-size:18px; }
.header-search:focus-within { outline:2px solid var(--brand-red); }
.header-search input:focus-visible { outline:none; }
.shop-actions { display:flex; align-items:center; margin-left:auto; gap:20px; font-size:14px; font-weight:700; }
.shop-actions > a { white-space:nowrap; }
.shop-actions > a > span:not([data-shop-count]) { font-size:19px; }
.shop-cart { display:flex; align-items:center; justify-content:center; gap:8px; min-height:44px; padding:10px 18px; border-radius:9px; color:white; background:var(--brand-red); }
.shop-cart svg { width:20px; height:20px; }
.shop-cart [data-shop-count] { display:grid; place-items:center; min-width:22px; height:22px; padding:0 5px; border-radius:50%; color:var(--ink); background:#ffcc7b; font-size:11px; }
.shop-header .menu-button { display:none; }
.shop-header .mobile-nav { display:block; }
.shop-main { padding-block:36px 80px; min-height:65vh; }
.shop-main > h1 { margin:8px 0 16px; font-size:clamp(32px,4vw,48px); line-height:1.15; font-weight:800; }
.shop-lead { color:var(--muted); font-size:16px; line-height:1.7; max-width:720px; }
.muted { color:var(--muted); font-size:13px; line-height:1.7; }
.breadcrumbs { display:flex; flex-wrap:wrap; gap:12px; color:var(--muted); font-size:13px; margin-bottom:28px; }
.breadcrumbs a { color:var(--ink); }
.eyebrow { font-size:11px; letter-spacing:.12em; }
.shop-panel { border:1px solid var(--line); border-radius:14px; padding:28px; background:white; }
.shop-panel h2 { margin:0 0 18px; font-size:26px; line-height:1.2; }
.demo-note { padding:14px 18px; border:1px solid #f0dec2; border-radius:10px; color:#6d4b1c; background:#fff9ef; font-size:13px; line-height:1.6; }
.shop-form { display:grid; gap:20px; margin-top:24px; }
.form-two { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.wide { grid-column:1/-1; }
.shop-field { min-width:0; display:flex; flex-direction:column; gap:7px; }
.shop-field label { font-size:14px; font-weight:700; }
.shop-field :is(input,select,textarea) { width:100%; min-height:48px; border:1px solid #acb7c2; border-radius:8px; padding:12px; color:var(--ink); font:inherit; font-size:16px; background:white; }
.shop-field textarea { resize:vertical; }
.shop-field small { color:var(--muted); font-size:12px; }
.shop-field [aria-invalid="true"] { border-color:var(--brand-red); background:#fff9fa; }
.check-label { display:flex; align-items:flex-start; flex-wrap:wrap; gap:6px; font-size:13px; line-height:1.6; }
.check-label input { width:18px; height:18px; margin:2px 4px 0 0; accent-color:var(--brand-red); }
.check-label a { color:var(--brand-red); text-decoration:underline; }
.form-alert { margin:0; color:var(--brand-dark); font-size:13px; }
.form-alert:not(:empty) { padding:14px; border-left:3px solid var(--brand-red); background:var(--brand-soft); }
.form-alert a { display:block; text-decoration:underline; margin:6px 0; }
.password-toggle { justify-self:start; padding:6px 0; background:none; border:0; color:var(--brand-red); font:inherit; font-size:13px; }
.account-card { max-width:720px; margin:10px auto 50px; padding:38px; border:1px solid var(--line); border-radius:16px; background:white; }
.account-card:has(#login-panel:not([hidden])) { max-width:560px; }
.account-card h1 { font-size:40px; margin:10px 0; line-height:1.15; }
.account-card > p,.account-card :is(#login-panel,#register-panel) > p:not(.eyebrow):not(.demo-note) { color:var(--muted); }
.account-switch { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:26px 0 8px; padding-top:22px; border-top:1px solid var(--line); font-size:14px; }
.account-links { display:grid; gap:14px; margin-top:25px; }
.featured-section { padding-block:55px 15px; }
.shop-section-title { display:flex; justify-content:space-between; align-items:end; gap:20px; margin-bottom:26px; }
.shop-section-title h2 { font-size:34px; margin:8px 0 0; line-height:1.2; }
.featured-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; }
.featured-card { min-width:0; }
.featured-image { position:relative; display:grid; place-items:center; height:245px; border-radius:12px; background:var(--soft); overflow:hidden; }
.featured-image img { width:100%; height:100%; object-fit:contain; padding:22px; mix-blend-mode:multiply; transition:transform .25s; }
.featured-image:hover img { transform:scale(1.04); }
.featured-image span { position:absolute; top:12px; left:12px; padding:4px 8px; border-radius:5px; background:var(--brand-red); color:white; font-size:10px; font-weight:700; }
.featured-card > small { display:block; color:var(--muted); font-size:11px; margin-top:15px; }
.featured-card h3 { font-size:16px; line-height:1.4; margin:6px 0; letter-spacing:-.015em; }
.featured-card > p { color:var(--muted); font-size:12px; min-height:36px; }
.featured-bottom { display:flex; justify-content:space-between; align-items:center; gap:8px; }
.featured-bottom > strong { font-size:23px; }
.featured-bottom .text-link { font-size:12px; }
.pharmacy-hero { position:relative; display:grid; grid-template-columns:1fr 1fr; align-items:center; min-height:530px; background:var(--soft); color:var(--ink); padding:55px max(32px,calc((100% - 1280px)/2)); overflow:hidden; gap:45px; }
.pharmacy-hero h1 { color:var(--ink); font-family:var(--serif); font-size:clamp(42px,5.5vw,76px); line-height:1.08; font-weight:600; margin:22px 0; letter-spacing:-.05em; }
.pharmacy-hero h1 span { color:var(--brand-red); font-style:italic; }
.hero-kicker { display:inline-block; padding:8px 12px; border:1px solid #d7c3a8; border-radius:30px; color:var(--brand-dark); background:var(--surface); text-transform:uppercase; font-size:11px; font-weight:800; letter-spacing:.07em; }
.pharmacy-hero p { max-width:510px; color:var(--muted); line-height:1.7; font-size:16px; }
.pharmacy-hero .button-primary { padding:15px 26px; }
.pharmacy-hero .button-outline { background:transparent; }
.business-photo { margin:0; border:8px solid var(--surface); border-radius:22px; overflow:hidden; box-shadow:0 15px 40px #61432d1a; transform:rotate(1deg); }
.business-photo > img { display:block; width:100%; height:360px; object-fit:cover; object-position:center; }
.business-photo figcaption { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:20px 16px 12px; background:var(--surface); }
.business-photo strong { display:block; font-family:var(--serif); font-size:22px; }
.business-photo span { display:block; color:var(--muted); font-size:12px; margin-top:5px; }
.business-photo a { font-size:12px; font-weight:700; color:var(--brand-red); }
.hero-product { position:relative; display:grid; place-items:center; width:min(100%,475px); aspect-ratio:1; justify-self:center; border-radius:50%; background:#fff; overflow:hidden; }
.hero-product::before { content:'✚'; position:absolute; top:12%; right:18%; display:grid; place-items:center; width:88px; height:88px; border-radius:50%; font-size:46px; font-weight:700; color:white; background:var(--brand-red); z-index:1; }
.hero-product img { width:75%; height:78%; object-fit:contain; }
.hero-product-note { position:absolute; bottom:9%; max-width:65%; text-align:center; color:var(--brand-red); font-size:11px; font-weight:700; }
.benefit-strip { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; margin-block:36px 0; padding:24px 28px; border-radius:14px; background:var(--soft); }
.benefit-strip a { display:flex; align-items:center; gap:12px; }
.benefit-strip a > span { display:grid; place-items:center; width:43px; height:43px; flex-shrink:0; border-radius:50%; color:var(--brand-red); background:white; font-size:23px; }
.benefit-strip strong,.benefit-strip small { display:block; }
.benefit-strip strong { font-size:13px; }
.benefit-strip small { color:var(--muted); font-size:11px; margin-top:4px; }
.services { padding-top:64px; padding-bottom:54px; }
.section-heading h2,.process h2 { font-size:38px; line-height:1.15; letter-spacing:-.04em; }
.category-grid { margin-top:30px; }
.category-card { border:0; border-radius:14px; background:var(--soft); box-shadow:none; padding:22px; }
.category-card:hover { box-shadow:none; transform:translateY(-2px); }
.category-card h3 { font-size:25px; letter-spacing:-.035em; }
.category-card .service-photo { height:190px; object-fit:cover; border-radius:8px; }
.category-link { color:var(--brand-red); }
.promos { background:var(--soft); }
.promo-copy h2 { color:var(--ink); }
.promo-copy > p { color:var(--muted); }
.promo-card,.promise-card,.contact,.location-map { border-radius:14px; }
.process,.promise { padding-block:45px; }
.contact-form-section { padding-bottom:50px; }
.contact-form-section h2 { font-size:36px; }
.contact-form { border-radius:14px; }
.faq { padding-block:40px 65px; }
.faq h2 { font-size:34px; line-height:1.15; }
.site-footer { background:var(--footer-bg); }
.site-footer h3 { color:white; font-size:14px; letter-spacing:0; }
.site-footer p,.site-footer a { font-size:13px; }
.footer-brand img { max-width:195px; }
.footer-inner { padding-block:45px; }
.footer-bottom { font-size:11px; }
.catalog-main { padding-block:35px 65px; }
.catalog-banner { display:block; background:transparent; border:0; padding:0; margin:0 0 30px; }
.catalog-banner h1 { color:var(--ink); margin:10px 0; font-size:44px; }
.catalog-banner h1 em { color:var(--ink) !important; font-style:normal; }
.catalog-banner-mark,.purchase-steps { display:none; }
.catalog-results { display:grid; grid-template-columns:240px minmax(0,1fr); gap:0 34px; align-items:start; }
.catalog-section-heading { grid-column:1/-1; margin-bottom:24px; }
.catalog-section-heading h2 { color:var(--ink); font-size:25px; }
.catalog-sidebar { grid-column:1; grid-row:2/7; padding-right:20px; border-right:1px solid var(--line); }
.catalog-toolbar { padding:0; margin:0 0 24px; display:block; }
.catalog-toolbar .product-tabs { display:flex; flex-direction:column; align-items:stretch; gap:5px; }
.catalog-tab-button { text-align:left; border:0; border-radius:6px; padding:10px 12px; color:var(--ink); }
.catalog-tab-button[aria-selected="true"] { background:var(--brand-soft); color:var(--brand-red); }
.catalog-filters { grid-template-columns:1fr; padding:20px 0; border:0; border-top:1px solid var(--line); border-radius:0; }
.catalog-filters label { color:var(--ink); font-size:12px; }
.catalog-clear-filters { display:block; font-size:12px; padding:8px 0; }
.catalog-search-wide { min-height:42px; border-radius:7px; }
.catalog-search-wide input { font-size:13px; }
.catalog-meta,.catalog-feedback,#catalog-loading,#catalog-grid,#storage-warning { grid-column:2; }
.catalog-meta { margin-top:0; }
.catalog-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:26px 20px; }
.catalog-page .catalog-card { padding:0; border:0; box-shadow:none; border-radius:0; background:var(--surface); }
.catalog-card:hover { border:0; box-shadow:none; }
.catalog-photo-wrap { border-radius:12px; background:var(--soft); }
.catalog-photo { object-fit:contain; height:240px; padding:20px; mix-blend-mode:multiply; }
.catalog-page .catalog-card h3 { font-size:16px; color:var(--ink); letter-spacing:-.015em; line-height:1.4; }
.catalog-card h3 a:hover { text-decoration:underline; }
.catalog-card .catalog-tag { color:var(--muted) !important; }
.catalog-card .catalog-price { color:var(--ink); font-size:25px; }
.catalog-card .catalog-add { border-radius:7px; background:var(--brand-red); }
.catalog-card .price-label { font-size:10px; }
.catalog-card .product-cart-note { color:var(--brand-red); }
.catalog-detail-link { margin-top:5px; font-size:12px; }
.catalog-compare { display:flex; gap:8px; align-items:center; padding:8px 0; color:var(--muted); font-size:12px; }
.catalog-compare input { accent-color:var(--brand-red); width:16px; height:16px; }
.cart-dock { background:var(--ink); border-radius:12px; }
#cart-dock-summary { color:#e0e7ee; }
.promos .eyebrow.light { color:var(--brand-red); }
.product-detail-grid { display:grid; grid-template-columns:1fr 1fr; gap:60px; }
.product-main-image { position:relative; display:block; border:0; border-radius:15px; background:var(--soft); width:100%; aspect-ratio:1; }
.product-main-image img { width:100%; height:100%; object-fit:contain; padding:38px; mix-blend-mode:multiply; }
.product-main-image span { position:absolute; bottom:20px; right:20px; color:var(--muted); font:inherit; font-size:12px; }
.product-detail-copy h1 { font-size:clamp(30px,3.6vw,48px); line-height:1.12; margin:18px 0; }
.product-label { display:inline-block; border-radius:5px; padding:5px 9px; background:var(--soft); color:var(--brand-red); font-size:10px; letter-spacing:0; }
.detail-price { display:flex; gap:25px; align-items:center; margin:25px 0; padding-bottom:25px; border-bottom:1px solid var(--line); }
.detail-price strong { font-size:37px; letter-spacing:-.045em; }
.detail-price span { color:var(--muted); font-size:12px; }
#detail-add-form > label { display:block; font-size:14px; font-weight:700; margin-bottom:8px; }
.quantity-picker { display:flex; align-items:center; width:max-content; border:1px solid #bcc6ce; border-radius:8px; padding:3px; }
.quantity-picker button { display:grid; place-items:center; width:36px; height:38px; border:0; border-radius:5px; color:var(--ink); background:var(--soft); font-size:24px; }
.quantity-picker button:disabled { opacity:.4; }
.quantity-picker input { width:48px; height:38px; border:0; padding:4px; color:var(--ink); text-align:center; font:inherit; font-weight:700; appearance:textfield; }
.quantity-picker input::-webkit-inner-spin-button { appearance:none; }
#detail-quantity-help { display:block; margin:8px 0; color:var(--muted); font-size:12px; }
.detail-add { width:100%; margin-top:15px; }
.detail-benefits { list-style:none; padding:18px; margin-top:22px; border:1px solid var(--line); border-radius:10px; font-size:13px; }
.detail-benefits li + li { margin-top:10px; }
.related-section { padding-block:60px; }
.related-section .featured-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.info-tabs { display:flex; flex-wrap:wrap; gap:28px; margin-bottom:25px; padding:20px 0; border-bottom:1px solid var(--line); font-weight:700; font-size:14px; }
.product-info { display:grid; gap:24px; }
.spec-list { margin:20px 0; }
.spec-list > div { display:grid; grid-template-columns:140px 1fr; gap:15px; padding:14px 0; border-bottom:1px solid var(--line); font-size:13px; }
.spec-list dt { color:var(--muted); }
.spec-list dd { margin:0; overflow-wrap:anywhere; }
.review-item { border-bottom:1px solid var(--line); padding:16px 0; }
.review-item span { float:right; color:#a6570b; }
.review-item p { font-size:14px; white-space:pre-wrap; overflow-wrap:anywhere; }
.review-item small { color:var(--muted); font-size:11px; }
.compare-picks { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; margin:35px 0; }
.compare-pick { display:flex; align-items:center; gap:10px; padding:12px; border:1px solid var(--line); border-radius:10px; font-size:12px; cursor:pointer; }
.compare-pick:has(:checked) { border-color:var(--brand-red); background:var(--brand-soft); }
.compare-pick img { width:45px; height:55px; object-fit:contain; }
.compare-pick input { accent-color:var(--brand-red); }
.table-scroll { overflow:auto; }
.comparison-table { width:100%; border-collapse:collapse; table-layout:fixed; min-width:650px; font-size:13px; }
.comparison-table caption { text-align:left; color:var(--muted); padding-bottom:15px; }
.comparison-table th,.comparison-table td { padding:22px; border:1px solid var(--line); text-align:left; vertical-align:top; }
.comparison-table thead th { background:var(--soft); }
.comparison-table thead img { display:block; width:100%; height:150px; object-fit:contain; mix-blend-mode:multiply; margin-bottom:15px; }
.comparison-table tbody th { color:var(--muted); font-weight:500; width:150px; }
.comparison-table .button { font-size:12px; padding:10px; }
.checkout-heading { display:flex; justify-content:space-between; align-items:center; gap:25px; margin-bottom:26px; }
.checkout-heading h1 { font-size:40px; margin:0; line-height:1.2; }
.checkout-steps { display:flex; gap:25px; padding:0; list-style:none; font-size:12px; color:var(--muted); }
.checkout-steps li { display:flex; align-items:center; gap:8px; }
.checkout-steps b { display:grid; place-items:center; width:30px; height:30px; border:1px solid #c8d1da; border-radius:50%; background:var(--soft); color:var(--ink); }
.checkout-steps [aria-current] { font-weight:700; color:var(--ink); }
.checkout-steps [aria-current] b { color:white; border-color:var(--brand-red); background:var(--brand-red); }
.checkout-steps .complete b { background:#e8f2ed; color:#176345; }
.checkout-layout { display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:30px; margin-top:28px; align-items:start; }
.checkout-cart-item { display:grid; grid-template-columns:90px minmax(0,1fr) auto auto; gap:16px; align-items:center; border:1px solid var(--line); padding:18px; border-radius:12px; margin-bottom:16px; }
.checkout-cart-item img { width:90px; height:100px; object-fit:contain; background:var(--soft); border-radius:8px; padding:10px; }
.checkout-cart-item h2 { font-size:16px; line-height:1.4; margin:5px 0; letter-spacing:-.015em; }
.checkout-cart-item p,.checkout-cart-item small { color:var(--muted); font-size:12px; margin:5px 0; }
.checkout-cart-item .text-link { font-size:11px; }
.remove-order-item { display:block; margin-top:8px; text-decoration:underline; }
.guest-note { padding:10px 0 24px; font-size:13px; }
.guest-note p { margin:0; color:var(--muted); }
.order-summary { position:sticky; top:114px; background:var(--soft); border:0; }
.order-summary h2 { font-size:26px; }
.order-summary .button { width:100%; margin-top:12px; }
.summary-totals { margin:24px 0 20px; font-size:14px; }
.summary-totals > div { display:flex; justify-content:space-between; gap:15px; margin:18px 0; }
.summary-totals dd { margin:0; font-weight:700; }
.summary-totals .summary-total { border-top:1px solid #cbd4dc; padding-top:24px; margin-top:40px; font-size:20px; font-weight:800; }
.delivery-options { display:grid; gap:12px; }
.delivery-options label { position:relative; display:block; padding:18px 18px 18px 45px; border:1px solid var(--line); border-radius:9px; cursor:pointer; }
.delivery-options label:has(:checked) { border-color:var(--brand-red); background:#fff9fa; }
.delivery-options input { position:absolute; left:15px; top:20px; accent-color:var(--brand-red); width:17px; height:17px; }
.delivery-options strong,.delivery-options small { display:block; }
.delivery-options strong { font-size:14px; }
.delivery-options small { font-size:12px; color:var(--muted); margin-top:5px; }
.confirmation-check { display:grid; place-items:center; width:54px; height:54px; border-radius:50%; color:white; background:#22724f; font-size:30px; margin-bottom:22px; }
.order-id { display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; align-items:center; margin:30px 0; }
.order-id p:not(.eyebrow) { font-size:12px; color:var(--muted); }
.order-timeline { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; list-style:none; padding:0; margin:25px 0; }
.order-timeline li { display:flex; flex-direction:column; gap:7px; color:var(--muted); padding-top:15px; border-top:2px solid #d3dce3; font-size:12px; }
.order-timeline .current { color:#216446; border-top-color:#216446; }
.order-timeline b { font-size:18px; }
.order-timeline small { font-size:10px; }
.order-lines { list-style:none; margin:25px 0; padding:0; }
.order-lines li { display:flex; justify-content:space-between; gap:15px; padding:12px 0; border-bottom:1px solid var(--line); font-size:13px; }
.order-card { margin-bottom:24px; }
.order-card > .button { margin:5px 10px 5px 0; }
.empty-panel { padding:50px 25px; text-align:center; }
.empty-panel p { color:var(--muted); }
.empty-panel .button { margin:6px; }
.empty-icon { display:block; font-size:48px; color:var(--brand-red); }
.shop-dialog { width:min(540px,calc(100% - 32px)); max-height:85vh; overflow:auto; padding:34px; border:1px solid var(--line); border-radius:16px; color:var(--ink); box-shadow:0 20px 80px #10284035; }
.shop-dialog::backdrop { background:#10284085; }
.shop-dialog h2 { font-size:28px; line-height:1.2; margin:12px 0; }
.dialog-actions { display:flex; flex-wrap:wrap; gap:14px; margin-top:25px; }
.dialog-actions .button { flex:1; }
.image-dialog { width:min(850px,calc(100% - 32px)); }
.image-dialog img { display:block; max-width:100%; width:100%; height:65vh; object-fit:contain; }
.image-dialog .cart-close { margin-left:auto; }
.help-grid { display:grid; grid-template-columns:1.5fr 1fr; gap:30px; margin-top:35px; align-items:start; }
.help-grid details { padding:20px 0; border-bottom:1px solid var(--line); }
.help-grid summary { font-weight:700; font-size:15px; }
.help-grid details p { color:var(--muted); line-height:1.8; font-size:14px; }
.help-contact { background:var(--soft); }
.help-contact .button { width:100%; margin:10px 0; }
.help-cross { color:var(--brand-red); font-size:45px; }
.privacy-panel { margin-top:35px; }
.privacy-panel p { font-size:14px; color:var(--muted); line-height:1.8; }
@media(min-width:901px) and (max-width:1150px) { .shop-header .header-inner { gap:14px; } .shop-header .brand img { width:155px; } .shop-actions { gap:13px; } .shop-nav { gap:15px; } .header-search { max-width:250px; } }
@media(max-width:1100px) { .checkout-cart-item { grid-template-columns:70px 1fr; } .checkout-cart-item img { width:70px; height:85px; } .checkout-cart-item .quantity-picker { grid-column:2; } .checkout-cart-item > div:last-child { grid-column:2; display:flex; justify-content:space-between; align-items:center; } .checkout-heading { align-items:start; flex-direction:column; } }
@media(max-width:900px) {
  .section-wrap,.shop-header .header-inner { width:calc(100% - 40px); }
  .shop-header .header-inner { gap:12px; padding-block:12px; }
  .shop-header .brand img { width:160px; height:45px; }
  .shop-nav { display:none; }
  .shop-actions { gap:12px; font-size:12px; }
  .shop-actions > a:first-child { display:none; }
  .shop-header .menu-button { display:grid; width:38px; height:38px; border-radius:7px; }
  .header-search { order:4; flex-basis:100%; max-width:none; }
  .shop-header .mobile-nav { order:5; }
  .shop-cart { padding:8px 11px; }
  .pharmacy-hero { min-height:430px; gap:30px; padding:38px 25px; }
  .pharmacy-hero h1 { font-size:46px; }
  .pharmacy-hero p { font-size:14px; }
  .hero-product::before { width:65px; height:65px; font-size:35px; }
  .benefit-strip { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .featured-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .catalog-results { grid-template-columns:190px minmax(0,1fr); gap:0 20px; }
  .catalog-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .catalog-photo { height:190px; }
  .product-detail-grid { gap:30px; }
  .product-detail-copy h1 { font-size:30px; }
  .detail-price { flex-direction:column; gap:8px; align-items:start; }
  .checkout-layout { grid-template-columns:minmax(0,1fr) 280px; gap:20px; }
  .shop-panel { padding:22px; }
  .form-two { gap:16px; }
  .compare-picks { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .help-grid { grid-template-columns:1fr; }
}
@media(max-width:680px) {
  .section-wrap,.shop-header .header-inner { width:calc(100% - 32px); }
  .shop-header .header-inner { gap:8px; }
  .shop-header .brand img { width:130px; }
  .shop-actions { gap:10px; }
  .shop-actions > a[data-account-link] { font-size:11px; max-width:75px; overflow:hidden; text-overflow:ellipsis; }
  .shop-cart { font-size:12px; padding:8px; gap:4px; }
  .shop-cart svg { width:17px; }
  .shop-header .menu-button { width:34px; height:38px; }
  .pharmacy-hero { grid-template-columns:1fr; padding:35px 24px; gap:30px; }
  .pharmacy-hero h1 { font-size:44px; margin-block:20px; }
  .pharmacy-hero p { font-size:14px; }
  .pharmacy-hero .button-row { margin-top:24px; }
  .hero-product { width:280px; }
  .hero-product-note { font-size:9px; }
  .benefit-strip { padding:18px; gap:22px 12px; margin-top:24px; }
  .benefit-strip a { align-items:start; gap:8px; }
  .benefit-strip a > span { width:30px; height:30px; font-size:18px; }
  .benefit-strip strong { font-size:11px; }
  .benefit-strip small { font-size:10px; }
  .featured-section,.services { padding-top:35px; }
  .shop-section-title { align-items:start; }
  .shop-section-title h2,.section-heading h2,.process h2 { font-size:29px; }
  .shop-section-title .text-link { white-space:nowrap; font-size:11px; }
  .featured-grid { gap:25px 14px; }
  .featured-image { height:175px; }
  .featured-image img { padding:16px; }
  .featured-card h3 { font-size:13px; }
  .featured-bottom { align-items:start; flex-direction:column; }
  .featured-bottom > strong { font-size:21px; }
  .featured-card > p { font-size:11px; }
  .shop-main { padding-block:25px 50px; }
  .catalog-results { display:block; }
  .catalog-sidebar { border:0; padding:0; }
  .catalog-toolbar .product-tabs { flex-direction:row; flex-wrap:wrap; }
  .catalog-toolbar .catalog-tab-button { font-size:11px; padding:9px 10px; }
  .catalog-filters { grid-template-columns:1fr 1fr; gap:16px; padding-bottom:8px; }
  .catalog-search-field { grid-column:1/-1; }
  .catalog-section-heading { gap:12px; }
  .catalog-section-heading h2 { font-size:22px; }
  .catalog-section-heading p { font-size:11px; }
  .catalog-main .catalog-banner h1 { font-size:34px; }
  .catalog-meta { flex-wrap:wrap; gap:8px; }
  .catalog-grid { gap:24px 14px; }
  .catalog-photo { height:165px; padding:12px; }
  .catalog-page .catalog-card h3 { font-size:13px; }
  .catalog-badge { font-size:9px; padding:4px 7px; }
  .catalog-card p { font-size:11px; }
  .catalog-card .catalog-price { font-size:22px; }
  .catalog-card .catalog-add { padding:10px 7px; font-size:11px; }
  .catalog-page { padding-bottom:100px; }
  .catalog-feedback { font-size:12px; }
  .product-detail-grid { grid-template-columns:1fr; gap:25px; }
  .product-main-image { max-height:390px; }
  .product-detail-copy h1 { font-size:36px; }
  .detail-price { flex-direction:row; align-items:center; gap:20px; }
  .related-section .featured-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .related-section { padding-block:40px; }
  .info-tabs { gap:15px; font-size:12px; }
  .account-card { padding:25px 20px; }
  .account-card h1 { font-size:33px; }
  .account-switch { flex-direction:column; align-items:stretch; }
  .form-two { grid-template-columns:1fr; }
  .checkout-layout { grid-template-columns:1fr; }
  .order-summary { position:static; }
  .checkout-heading h1 { font-size:32px; }
  .checkout-steps { gap:10px; width:100%; font-size:10px; justify-content:space-between; }
  .checkout-steps li { flex-direction:column; gap:7px; text-align:center; }
  .checkout-cart-item { gap:12px; }
  .shop-panel { padding:22px 18px; }
  .spec-list > div { grid-template-columns:100px 1fr; }
  .order-timeline { gap:10px; font-size:11px; }
  .shop-dialog { padding:25px; }
  .shop-dialog h2 { font-size:24px; }
  .compare-picks { gap:10px; }
  .compare-pick { flex-wrap:wrap; padding:10px; gap:6px; }
  .compare-pick span { flex-basis:100%; font-size:11px; }
  .comparison-table th,.comparison-table td { padding:14px; }
  .comparison-table .button { font-size:11px; }
}
@media(max-width:360px) { .shop-header .brand img { width:100px; } .shop-actions > a[data-account-link] { width:24px; min-height:38px; display:grid; place-items:center; font-size:0; } .shop-actions > a[data-account-link]::before { content:'♙'; font-size:18px; } .shop-header .header-inner { gap:6px; } .shop-actions { gap:6px; } .shop-cart [data-shop-count] { min-width:18px; height:18px; } .pharmacy-hero h1 { font-size:38px; } .hero-product { width:250px; } }
@media(prefers-reduced-motion:reduce) { .featured-image img { transition:none; } }
@media(max-width:360px) { .shop-cart { font-size:0; gap:7px; padding:8px 10px; } }

.promotions-section { padding:55px 0; border-block:1px solid var(--line); background:#efe3cd; }
.promotions-note { max-width:820px; color:var(--muted); line-height:1.7; font-size:13px; margin:-6px 0 26px; }
.promotions-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.promotion-card { display:grid; grid-template-columns:40% 1fr; align-items:center; border:1px solid #e0cdb5; border-radius:18px; overflow:hidden; background:var(--surface); min-width:0; }
.promotion-card > img { width:100%; height:250px; padding:20px; object-fit:contain; mix-blend-mode:multiply; }
.promotion-copy { padding:26px 24px 26px 0; }
.promotion-label { display:inline-block; color:var(--brand-dark); background:var(--brand-soft); border-radius:20px; padding:6px 10px; font-size:10px; font-weight:700; }
.promotion-copy h3 { font-family:var(--serif); font-size:26px; line-height:1.2; margin:16px 0 12px; }
.promotion-copy p { font-size:13px; line-height:1.6; color:var(--muted); margin-bottom:8px; }
.promotions-empty { grid-column:1/-1; padding:30px; border:1px dashed #c9ae89; border-radius:14px; background:var(--surface); line-height:1.7; }
.shop-panel,.account-card,.contact-form { background:var(--surface); }
.cart-dock { background:var(--footer-bg); }
#cart-dock-total { color:var(--surface); }
.business-photo figcaption a:hover { text-decoration:underline; }
@media(max-width:1000px) { .shop-nav { gap:15px; font-size:13px; } .business-photo > img { height:310px; } .promotion-card { grid-template-columns:1fr; } .promotion-card > img { height:200px; } .promotion-copy { padding:0 24px 26px; } }
@media(max-width:600px) { .business-photo { width:100%; transform:none; } .business-photo > img { height:265px; } .business-photo figcaption { padding:16px 8px 10px; gap:10px; } .business-photo strong { font-size:19px; } .business-photo span { font-size:10px; } .business-photo a { max-width:90px; } .promotions-grid { grid-template-columns:1fr; gap:16px; } .promotion-card { grid-template-columns:35% 1fr; } .promotion-card > img { height:220px; padding:10px; } .promotion-copy { padding:24px 18px 24px 0; } .promotion-copy h3 { font-size:23px; } .promotions-section { padding:38px 0; } }
/* Fiscal and pharmaceutical information */
.tax-note { display:block; font-size:.82rem; color:#48634f; margin:.5rem 0; }
.prescription-note { padding:.75rem; border-radius:.5rem; background:#fff5d9; color:#4a3913; font-size:.9rem; }
.prescription-note a { text-decoration:underline; font-weight:600; }
.pharmaceutical-sheet { margin:1.5rem 0; }
.pharmaceutical-sheet h2 { font-size:1.1rem; }
.pharmaceutical-sheet dl { margin:0; }
.pharmaceutical-sheet dl>div { display:grid; grid-template-columns:minmax(100px,1fr) 2fr; gap:1rem; padding:.5rem 0; border-bottom:1px solid #e0ded6; }
.pharmaceutical-sheet dt { font-weight:600; }
.pharmaceutical-sheet dd { margin:0; overflow-wrap:anywhere; }
.order-invoice { margin:1rem 0; }
.order-invoice [role=status] { overflow-wrap:anywhere; }
.order-state-label { display:inline-flex; align-items:center; gap:7px; }
.order-state-label svg { width:20px; height:20px; flex-shrink:0; }
.order-state-label.is-cancelled { background:#fae6e0; color:#8b142b; }
.order-tracking { padding:24px; margin:22px 0; border:1px solid #e1d4bf; border-radius:16px; background:linear-gradient(135deg,#f8f1e4,#fffbf3); }
.promotion-preview { display:block; grid-column:1/-1; padding:9px 13px; border-bottom:1px solid #dacbb4; background:#fff9ec; color:#584632; font-size:12px; font-weight:700; line-height:1.5; text-align:center; }
.order-tracking h3 { font-size:18px; letter-spacing:-.025em; margin:0 0 8px; }
.order-tracking-note { color:#625c51; font-size:13px; line-height:1.65; margin:0 0 24px; }
.order-tracking-steps { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; list-style:none; padding:0; margin:0; }
.order-tracking-step { min-width:0; position:relative; padding:0 8px; text-align:center; color:#716657; }
.order-tracking-step:not(:last-child)::after { content:''; position:absolute; left:calc(50% + 32px); top:25px; width:calc(100% - 64px); height:2px; border-radius:2px; background:#d7c9b4; }
.order-tracking-step.is-complete::after { background:#2d6b4a; }
.order-tracking-icon { position:relative; z-index:1; display:grid; place-items:center; margin:0 auto 12px; width:52px; height:52px; border:1px solid #d8cdbb; border-radius:50%; background:#f2eadc; }
.order-tracking-icon svg { width:26px; height:26px; }
.order-tracking-copy strong,.order-tracking-copy small,.order-tracking-copy time { display:block; overflow-wrap:anywhere; }
.order-tracking-copy strong { font-size:14px; line-height:1.4; }
.order-tracking-copy small { margin-top:5px; font-size:11px; line-height:1.5; }
.order-tracking-copy time { margin-top:5px; font-size:10px; line-height:1.5; color:#625c51; }
.order-tracking-step.is-complete,.order-tracking-step.is-finished { color:#225a3d; }
.order-tracking-step.is-complete .order-tracking-icon,.order-tracking-step.is-finished .order-tracking-icon { color:white; border-color:#2d6b4a; background:#2d6b4a; }
.order-tracking-step.is-current:not(.is-finished) { color:var(--brand-dark); }
.order-tracking-step.is-current:not(.is-finished) .order-tracking-icon { color:white; border-color:var(--brand-red); background:var(--brand-red); box-shadow:0 0 0 5px #f2dbd5; }
.order-tracking-step.is-current small { font-weight:700; }
.order-tracking-step.is-stopped .order-tracking-icon { border-style:dashed; }
.order-tracking-cancelled { display:flex; gap:12px; align-items:flex-start; padding:16px; margin:16px 0 24px; color:#8b142b; border:1px solid #ebc8bd; border-radius:12px; background:#fbece5; }
.order-tracking-cancel-icon { display:grid; place-items:center; flex-shrink:0; width:36px; height:36px; border-radius:50%; background:#f4d5ca; }
.order-tracking-cancel-icon svg { width:24px; height:24px; }
.order-tracking-cancelled strong { font-size:14px; }
.order-tracking-cancelled p { font-size:12px; line-height:1.6; margin:5px 0 0; }
.order-history { margin:18px 0; border:1px solid var(--line); border-radius:12px; background:#fffaf1; }
.order-history summary { padding:15px 16px; font-size:14px; font-weight:700; color:var(--brand-dark); cursor:pointer; }
.order-history[open] summary { border-bottom:1px solid var(--line); }
.order-history ol { padding:8px 20px 14px 38px; margin:0; }
.order-history li { font-size:12px; line-height:1.75; padding:5px 0; }
@media(max-width:600px) {
  .order-tracking { padding:20px 16px; }
  .order-tracking-steps { grid-template-columns:1fr; }
  .order-tracking-step { display:grid; grid-template-columns:44px minmax(0,1fr); gap:14px; padding:0 0 20px; min-height:82px; text-align:left; align-items:start; }
  .order-tracking-step:last-child { padding-bottom:0; min-height:44px; }
  .order-tracking-step:not(:last-child)::after { left:21px; top:50px; width:2px; height:calc(100% - 56px); }
  .order-tracking-icon { margin:0; width:44px; height:44px; }
  .order-tracking-icon svg { width:24px; height:24px; }
  .order-tracking-copy { padding-top:2px; }
  .order-tracking-copy time { font-size:11px; }
  .order-tracking-cancelled { padding:13px; gap:10px; }
}
