/* A compact company introduction belongs to the product column, so filtering
   and search retain the familiar shop controls and never repeat the hero. */
.standalone-landing-intro{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:24px;align-items:center;margin:0 0 28px;color:inherit}
.standalone-landing-intro>img{display:block;width:100%;height:180px;object-fit:cover;border-radius:8px}
.standalone-landing-intro>div{min-width:0}.standalone-landing-intro h2{font-size:24px;line-height:1.2;margin:0 0 12px;overflow-wrap:anywhere}
.standalone-landing-eyebrow{font-size:12px;line-height:1.4;letter-spacing:.03em;margin:0 0 10px;opacity:.75}
.standalone-landing-text{font-size:15px;line-height:1.6;overflow-wrap:anywhere}.standalone-landing-text p{margin:0 0 8px}.standalone-landing-text p:last-child{margin-bottom:0}
.standalone-utility-links{display:flex;gap:20px;flex-wrap:wrap;justify-content:center;max-width:1440px;margin:28px auto 12px;padding:0 18px;font:13px/1.5 system-ui;color:#68726e}
.standalone-utility-links a{color:inherit;text-decoration:underline;text-underline-offset:3px;padding:4px 0}
.standalone-utility-links a:hover,.standalone-utility-links a:focus-visible{color:#1c493b}
.standalone-terms-dialog{box-sizing:border-box;width:min(900px,calc(100% - 32px));max-height:85vh;margin:auto;border:1px solid #dbe4df;border-radius:12px;padding:0;background:#fff;color:#203c33;font:16px/1.6 system-ui;box-shadow:0 20px 70px #0003}
.standalone-terms-dialog::backdrop{background:#102b2266}.standalone-terms-dialog[open]{display:flex;flex-direction:column}
.standalone-terms-dialog>header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 24px;border-bottom:1px solid #dbe4df;flex:none}
.standalone-terms-dialog h2{font-size:23px;margin:0}.standalone-terms-dialog button{font:inherit;min-height:40px;background:#f3f6f4;border:1px solid #dbe4df;border-radius:6px;padding:6px 12px;cursor:pointer}
.standalone-terms-.polargo-parity{min-height:90px;overflow:auto;padding:24px;overflow-wrap:anywhere}.standalone-terms-.polargo-parity table{max-width:100%;display:block;overflow:auto}.standalone-terms-.polargo-parity a{color:#164a39}
@media(max-width:700px){.standalone-landing-intro{grid-template-columns:1fr;gap:14px;margin-bottom:22px}.standalone-landing-intro>img{height:130px}.standalone-landing-intro h2{font-size:21px}.standalone-landing-text{font-size:14px}.standalone-terms-dialog>header{padding:14px 16px}.standalone-terms-.polargo-parity{padding:18px 16px}}

/* Article recommendations start after the return controls. The existing
 * product grid owns responsive columns and purchase-card alignment. */
/* Apply the normal shop typography/tokens to the cards, but keep this
 * section inside the article canvas instead of the shop's full-width breakout. */
.standalone-article-products.polargo-shop { margin: 2rem 0; padding: 0; background: transparent; min-width: 0; max-width: 100%; }
.standalone-article-products > h2 { margin: 0 0 1rem; }

/* Anchor navigation stays in the legal scroll area. Prevent wheel/touch scroll
   from chaining into the shop when the reader reaches either end of the terms. */
.standalone-terms-.polargo-parity{overscroll-behavior:contain}

/* Compact recommendations align with the shop's product column. Explicit
   min-width:0 prevents a long name/carousel from widening the entire page. */
/* The mobile layout uses a single 1fr track. Its grid item must be allowed
   to shrink below the carousel's combined intrinsic card width; scrolling
   belongs inside the track, never to the document. */
.standalone-shop-content .polargo-shop-main{min-width:0;max-width:100%}
.standalone-favorites{position:relative;min-width:0;max-width:100%;margin:24px 0 28px}
.standalone-favorites-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}
.standalone-favorites-heading h2{margin:0 0 6px;font-size:22px}.standalone-favorites-heading p{margin:0;color:#5d6864;font-size:14px}
/* Arrows follow the track in the DOM and sit below its left edge on all
   screen sizes, leaving the recommendation heading free of controls. */
.standalone-favorites-controls{display:flex;justify-content:flex-start;gap:6px;margin-top:8px;flex-shrink:0}.standalone-favorites-controls[hidden]{display:none}
.standalone-favorites-controls button{min-height:40px;min-width:40px;padding:6px 12px;background:#fff;color:#204c3f;border:1px solid #c6d5cf;border-radius:6px;font:inherit;cursor:pointer}
.standalone-favorites-track{display:flex;gap:12px;max-width:100%;margin:0;padding:4px 2px 10px;list-style:none;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin}
/* With JavaScript the arrows/swipe expose the loop and the scrollbar is
   unnecessary. No-script retains the ordinary native horizontal scrollbar. */
[data-favorites-ready] .standalone-favorites-track{scrollbar-width:none}
[data-favorites-ready] .standalone-favorites-track::-webkit-scrollbar{display:none}
.standalone-favorites-track>li{flex:0 0 260px;min-width:0}.standalone-favorite-card{display:grid;grid-template-columns:64px minmax(0,1fr);grid-template-rows:20px 80px;column-gap:12px;row-gap:12px;align-content:center;height:160px;padding:12px;border:1px solid #d4ddd9;border-radius:8px;background:#fff;color:#1d3029;text-decoration:none;box-sizing:border-box}
/* The single-line name spans both columns and starts directly above the image.
   Keep image and text in one 80px row: 36px slogan + 16px article number + 20px
   price + two 4px gaps. This aligns slogan top and price bottom to the image
   without any dependence on name length, slogan length or missing text. The
   carousel buffers inherit exactly the same fixed card dimensions. */
.standalone-favorite-name{grid-column:1/-1;grid-row:1;display:block;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:15px;line-height:20px}
.standalone-favorite-card img{grid-column:1;grid-row:2;width:64px;height:80px;object-fit:contain;object-position:left top}.standalone-favorite-info{grid-column:2;grid-row:2;display:grid;grid-template-rows:36px 16px 20px;row-gap:4px;min-width:0;height:80px}
.standalone-favorite-slogan{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;overflow-wrap:anywhere;font-size:13px;line-height:18px;color:#59685f}
.standalone-favorite-info small{display:block;font-size:12px;line-height:16px;color:#69766f;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.standalone-favorite-info b{display:block;font-size:15px;line-height:20px;white-space:nowrap}
.standalone-favorite-card:focus-visible,.standalone-favorites button:focus-visible{outline:3px solid #24795e;outline-offset:2px}
@media(max-width:600px){.standalone-favorites-heading{align-items:flex-start;flex-direction:column;gap:10px}.standalone-favorites-track>li{flex-basis:min(260px,85vw)}}

/* With the category sidebar disabled, the shared desktop rule otherwise
   keeps two columns on a phone. Match the usual one-card mobile layout. */
@media(max-width:720px){.standalone-shop-content .polargo-shop-no-categories .polargo-products{grid-template-columns:minmax(0,1fr)}}

/* A single speech bubble lives OUTSIDE the scroll-clipped carousel track.
   When any personal story exists, the list item owns the complete card outline:
   name/image/price link first, then a separate 3px-padded quotation footer. The
   same empty footer is reserved on cards without a story. Keeping the button
   outside the product anchor avoids nested controls and accidental navigation. */
.standalone-favorite-story-row{display:none}
.standalone-favorites.has-stories .standalone-favorites-track>li{height:160px;border:1px solid #d4ddd9;border-radius:8px;background:#fff;box-sizing:border-box}
.standalone-favorites.has-stories .standalone-favorite-card{height:127px;padding:12px 12px 3px;align-content:start;border:0;border-radius:7px 7px 0 0}
.standalone-favorites.has-stories .standalone-favorite-story-row{display:flex;align-items:center;height:31px;margin:0 12px;padding:3px 0;border-top:1px solid #e2e7e4;box-sizing:border-box}
.standalone-favorites .standalone-favorite-story-toggle{display:flex;align-items:center;justify-content:flex-start;gap:5px;min-width:0;min-height:24px;width:100%;padding:0;background:transparent;border:0;color:#245a43;font:inherit;font-size:12px;line-height:24px;white-space:nowrap;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.standalone-favorite-story-icon{flex:none;text-decoration:none}
/* The full-width footer button provides a 24px minimum target on every device.
   This keeps the requested compact 3px gaps and identical 160px card height
   on phones too, without extending its hit area across the product link. */
.standalone-favorite-bubble{position:absolute;z-index:30;width:400px;max-width:100%;max-height:min(420px,60vh);overflow:auto;padding:14px;border:1px solid #b7cec2;border-radius:12px;background:#fff;color:#243e31;box-shadow:0 8px 28px #1c3f3326;box-sizing:border-box}
.standalone-favorite-bubble[hidden]{display:none}
/* With no heading, the quotation begins immediately. Reserve 30px at its
   right edge plus the bubble's 14px padding for the existing 44px close target,
   keeping that target away from the text even on a narrow phone. The disclosure
   below still uses the full width. Quote marks belong to the design; the
   customer's stored plain text remains unmodified and safely escaped. */
.standalone-favorite-bubble blockquote{border:0;border-left:3px solid #ccd6d0;border-radius:7px;padding:12px 14px;margin:0 30px 0 0;background:#f3f5f4;font-size:14px;font-style:italic;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere}
.standalone-favorite-bubble q{font:inherit;quotes:"“" "”" "‘" "’"}
.standalone-favorite-bubble q::before,.standalone-favorite-bubble q::after{color:#657c6e}
/* Requested discreet author notice: its exact 9px italic type and 0.5
   line-height apply only to the disclosure paragraph, never to the quotation.
   Retain the notice text and separation from the customer's own words. */
.standalone-favorite-bubble p {
    font-size: 9px;
    line-height: 0.5;
    color: #5b6c63;
    font-style: italic;
    margin: 12px 0 0;
}
.standalone-favorite-bubble [data-favorite-bubble-close]{position:absolute;top:0;right:0;width:44px;height:44px;border:0;background:transparent;color:#245a43;font-size:24px;cursor:pointer}

/* Keep the circles visually small but give each native navigation button a
   separate 24px target. The transparent padding does not overlap adjacent
   products/controls. Names are provided by native title hover tooltips; keyboard
   users get the same full name through aria-label and a visible focus ring.
   Many recommendations wrap inside the column without page overflow. */
.standalone-favorites-position{display:flex;flex-wrap:wrap;gap:0;max-width:100%;margin-top:4px}
.standalone-favorites-position[hidden]{display:none}
.standalone-favorites .standalone-favorites-dot{display:flex;align-items:center;justify-content:center;flex:0 0 24px;width:24px;height:24px;min-width:24px;min-height:24px;margin:0;padding:0;border:0;border-radius:50%;box-sizing:border-box;background:transparent;box-shadow:none;color:inherit;font-size:0;line-height:1;cursor:pointer}
.standalone-favorites-dot::before{content:"";display:block;flex:none;width:10px;height:10px;border:1px solid #97a59e;border-radius:50%;box-sizing:border-box;background:#fff;transition:background-color 80ms linear,border-color 80ms linear;pointer-events:none}
.standalone-favorites-dot.is-current::before{background:#245a43;border-color:#245a43}
.standalone-favorites-dot:hover::before{border-color:#245a43}
/* The 0.3-second last-to-first sweep affects CSS only; aria-current continues to
   describe the actual product and the track does not move because of it. */
.standalone-favorites-position.is-rewinding .standalone-favorites-dot::before{transition:none}
@media(prefers-reduced-motion:reduce){.standalone-favorites-dot::before{transition:none}}

/* Reporting is its own readable row after the small quotation disclaimer.
   Do not inherit the deliberately compact disclaimer paragraph typography. */
.standalone-favorite-report-row{margin-top:10px;font-size:12px;line-height:1.5}
.standalone-favorite-report-row button{font:inherit;color:#315e4c;padding:3px 0;border:0;background:none;text-decoration:underline;cursor:pointer;text-align:left}
.standalone-favorite-report-row span{color:#5b6c63}
.standalone-favorite-report-dialog{box-sizing:border-box;width:calc(100% - 32px);max-width:560px;max-height:85dvh;margin:auto;padding:0;border:1px solid #dce5df;border-radius:16px;background:#fff;color:#263d33;box-shadow:0 20px 70px #0004;overflow:auto}
.standalone-favorite-report-dialog::backdrop{background:rgba(24,40,32,.35);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}
.favorite-report-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 24px;border-bottom:1px solid #e4ebe6}
.favorite-report-heading h2{margin:0;font-size:22px;line-height:1.3}
.favorite-report-heading button{border:0;background:#eef4f0;border-radius:8px;min-width:40px;min-height:40px;font-size:24px;color:#315e4c;cursor:pointer}
.favorite-report-.polargo-parity{padding:20px 24px;font-size:14px;line-height:1.55}
.favorite-report-.polargo-parity p{margin:0 0 14px}
.favorite-report-.polargo-parity blockquote{margin:12px 0 18px;padding:12px 16px;border-left:3px solid #bfd1c6;background:#f5f7f6;white-space:pre-wrap;overflow-wrap:anywhere;font-style:italic}
.favorite-report-.polargo-parity label{display:block;font-weight:600;margin:12px 0 6px}
.favorite-report-.polargo-parity textarea,.favorite-report-.polargo-parity input{box-sizing:border-box;width:100%;border:1px solid #b9cbc0;border-radius:8px;padding:10px;font-family:inherit;font-size:16px;line-height:1.5;color:#263d33;background:#fff}
.favorite-report-.polargo-parity textarea{font-size:16px;line-height:1.5;resize:vertical}
.favorite-report-.polargo-parity input[name=answer]{width:85px;display:block;font-size:16px}
.favorite-report-.polargo-parity small,[data-report-counter]{display:block;font-size:12px;color:#596d62;margin:5px 0 10px}
.favorite-report-.polargo-parity [data-report-counter]{text-align:right}
.favorite-report-.polargo-parity [data-report-error]{color:#9b352d;margin-top:12px}
.favorite-report-.polargo-parity button{background:#315e4c;color:#fff;border:0;border-radius:8px;padding:12px 18px;font-weight:600;cursor:pointer}
.favorite-report-.polargo-parity button:disabled{opacity:.65;cursor:wait}
.favorite-report-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
@media(max-width:400px){.favorite-report-heading,.favorite-report-.polargo-parity{padding:16px}.favorite-report-heading h2{font-size:20px}}
