/* Production layout: the weekly card remains an independent, movable module. */
.tools-and-weekly { display:grid; grid-template-columns:minmax(0,2fr) minmax(260px,1fr); gap:1.5rem; align-items:start; }
.tools-and-weekly .product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); margin:0; }
.weekly-slot { container-type:inline-size; container-name:weekly; min-width:0; --weekly-heading-font:var(--serif); }
.weekly-slot .weekly-module { border:1px solid #647164; border-radius:8px; font-family:inherit; }
.layout-seasonal-home .ecosystem-section { background:#f5f0fc; }
.weekly-module__destination { line-height:1.6; }
html[dir='rtl'] .weekly-module__link span { transform:scaleX(-1); }
html[dir='rtl'] .weekly-module__title { font-family:var(--serif); letter-spacing:normal; line-height:1.45; }
.product-actions { gap:.85rem; }
.product-action { min-height:44px; }
.image-credit { font-size:.75rem; color:var(--muted); }
.sukkot-copy,.shop-hero-copy,.shop-hero-media { min-width:0; }
.sukkot-copy h2,.sukkot-copy h3 { overflow-wrap:anywhere; }
.shop-hero { isolation:isolate; }
.shop-hero-copy { position:static; padding:0; }
.shop-hero-media { position:relative; }
.shop-hero-media img { position:static; }
.shop-selected-photo figcaption { position:static; background:var(--background); color:var(--ink); padding:.8rem; border-radius:0 0 8px 8px; font-size:.85rem; }
.shop-enquiry-panel { background:#fffdf6; border:2px solid #647164; color:#102f2b; grid-template-columns:minmax(0,1fr); padding:clamp(1.2rem,3vw,2rem); gap:1.25rem; }
.shop-enquiry-panel .eyebrow { color:#102f2b; font-size:1.55rem; line-height:1.3; text-transform:none; letter-spacing:normal; }
.shop-enquiry-panel .shop-enquiry-price,.shop-enquiry-panel>p { color:#43574e; font-size:.95rem; }
.shop-enquiry-panel .shop-message-review { background:white; color:#102f2b; border:1px solid #647164; border-radius:8px; padding:clamp(1rem,2vw,1.5rem); }
.shop-enquiry-panel .message-language-block { font-size:1rem; line-height:1.65; }
.shop-enquiry-panel .button.primary { background:#163d32; border:2px solid #163d32; color:white; box-shadow:0 2px 0 #102f2b; }
.shop-enquiry-panel .button.primary:hover { background:#235749; border-color:#235749; }
.shop-enquiry-panel .button.secondary { background:#fffdf6; color:#163d32; border:2px solid #647164; }
.shop-enquiry-panel .button.secondary:hover { color:#102f2b; background:#e2d5fc; }
.shop-enquiry-actions { justify-content:flex-start; grid-column:1/-1; }
.shop-enquiry-actions .button { min-height:52px; padding:.9rem 1.35rem; font-size:1.05rem; }
.shop-enquiry-panel :focus-visible { outline:3px solid #173c9a; outline-offset:4px; }
.shop-review-shortcut { background:#fffdf6; border:1px solid #647164; }
.tool-page { max-width:1120px; margin:auto; padding:2rem clamp(1.25rem,4vw,3rem) 4rem; }
.back-tools { display:inline-flex; min-height:44px; align-items:center; }
.tool-intro { max-width:850px; padding-block:1.5rem 2rem; }
.tool-intro h1 { font-family:var(--serif); font-size:clamp(2.5rem,6vw,4.75rem); line-height:1.1; font-weight:400; letter-spacing:-.03em; max-width:none; }
.tool-intro .lede { font-size:1.25rem; line-height:1.65; }
.tool-access { background:#e2d5fc; padding:clamp(1.25rem,3vw,2rem); border-radius:10px; }
.tool-access h2 { margin:0; }
.tool-buttons { display:flex; flex-wrap:wrap; gap:.8rem; margin-block-start:1.3rem; }
.tool-access .button { display:block; flex:none; }
.tool-access .destination-language { display:block; margin-block-start:.2rem; }
@media(max-width:600px){.tool-access .tool-buttons{flex-direction:column;align-items:stretch}.tool-access .button{width:100%;}}
.reader-features { padding-block:2rem; max-width:75ch; }
.reading-example { padding:clamp(1.25rem,3vw,2.5rem); background:#fff9e9; border:1px solid #647164; border-radius:10px; max-width:80ch; scroll-margin-block-start:2rem; }
.reading-example h2 { font:400 clamp(2rem,4vw,3rem)/1.15 var(--serif); }
.reading-example p { line-height:1.8; margin-block:1rem; }
.reading-example .text-action { display:block; padding-block:1rem; }
.sample-note { border-inline-start:3px solid #647164; padding-inline-start:1rem; line-height:1.65; }
.widget-showcase { display:grid; grid-template-columns:minmax(220px,.8fr) minmax(0,1fr); gap:clamp(1.5rem,5vw,4rem); align-items:start; padding-block:2rem; }
.widget-showcase figure { margin:0; max-width:350px; }
.widget-showcase img { display:block; width:100%; height:auto; border-radius:22px; }
.widget-showcase figcaption { font-size:.85rem; line-height:1.6; padding-block:1rem; color:var(--muted); }
.widget-showcase article { border-block-start:1px solid #b4beb2; padding-block:1.25rem; }
.widget-showcase article h3 { font:400 1.6rem/1.3 var(--serif); margin:0 0 .5rem; }
.widget-showcase p { line-height:1.75; }
html[dir='rtl'] .tool-intro h1,html[dir='rtl'] .reading-example h2 { letter-spacing:normal; line-height:1.45; }
@media(max-width:1050px){.tools-and-weekly{grid-template-columns:minmax(0,1.2fr) minmax(260px,1fr)}.tools-and-weekly .product-grid{grid-template-columns:1fr}}
@media(max-width:720px){.tools-and-weekly,.widget-showcase{grid-template-columns:minmax(0,1fr)}.tools-and-weekly .product-grid{grid-template-columns:1fr}.shop-enquiry-actions .button{width:100%}.widget-showcase figure{max-width:300px;margin-inline:auto}.tool-intro h1{font-size:2.6rem}}
@media(forced-colors:active){.weekly-slot .weekly-module,.shop-enquiry-panel,.shop-message-review,.tool-access{border:2px solid CanvasText}.shop-enquiry-panel .button{border-color:ButtonText}}
.shop-enquiry-actions .button { gap:.3em; }
.shop-enquiry-actions .button { display:block; }
@media(max-width:620px){.shop-guide{padding:1rem}.shop-enquiry-panel{padding:.85rem}.shop-enquiry-panel .shop-message-review{padding:.85rem}}
/* Calm section rhythm, independent of the seasonal or tool-card arrangement. */
.layout-seasonal-home .weekly-feature { padding:1.5rem clamp(1.25rem,4.4vw,4rem); background:var(--background); }
.weekly-feature .weekly-slot { max-width:1160px; margin-inline:auto; }
.weekly-feature .weekly-module { padding:clamp(1.25rem,2.5vw,2rem); }
.weekly-feature .weekly-module__title { font-size:clamp(1.75rem,3vw,2.5rem); max-width:none; line-height:1.15; }
.layout-seasonal-home .ecosystem-section { padding-block:2.5rem 3rem; }
.layout-seasonal-home .ecosystem-header h2 { font-size:clamp(2rem,4vw,3rem); line-height:1.15; }
.layout-seasonal-home .product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.layout-seasonal-home .product-card { min-height:0; padding:1.5rem; }
.layout-seasonal-home .product-card h3 { font-size:clamp(1.8rem,3vw,2.5rem); }
.layout-seasonal-home .approach-section { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(1.5rem,4vw,3rem); padding-block:3rem; }
.layout-seasonal-home .approach-heading h2,.layout-seasonal-home .open-copy h2 { max-width:24ch; font-size:clamp(2rem,3.5vw,2.7rem); line-height:1.16; letter-spacing:-.02em; margin-block:0 .85rem; }
.layout-seasonal-home .principle-list h3 { font-size:1.5rem; line-height:1.3; }
.layout-seasonal-home .principle-list article { padding-block:1.15rem; gap:.8rem; }
.layout-seasonal-home .open-section { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:2rem; padding-block:3rem; }
.layout-seasonal-home .partner-callout { padding:1.5rem; }
.layout-seasonal-home .partner-callout h3 { font-size:1.65rem; line-height:1.3; }
.layout-seasonal-home .partner-callout a { justify-content:flex-start; flex-wrap:wrap; gap:.4em; }
.layout-seasonal-home .trust-documents { padding-block:2rem; }
.layout-seasonal-home .docs-home h2 { font-size:1.8rem; line-height:1.3; }
.layout-seasonal-home .site-footer { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:1rem 2rem; padding-block:2rem; }
.layout-seasonal-home .site-footer nav { justify-content:flex-start; }
.layout-seasonal-home .site-footer .image-credit { grid-column:1/-1; margin:0; }
/* Compact shop: stable image bounds and readable, regular-sized controls. */
.layout-shop-page .shop-shell { max-width:1120px; }
.layout-shop-page .shop-hero { grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr); gap:2rem; padding-block:1.75rem; }
.layout-shop-page .shop-hero h1 { font:500 clamp(2rem,3.4vw,2.75rem)/1.13 var(--serif); letter-spacing:-.025em; max-width:24ch; margin:0; }
.layout-shop-page .shop-hero .lede { font-size:1rem; line-height:1.55; margin-top:.9rem; }
.layout-shop-page .shop-season-note { margin:.8rem 0; }
.layout-shop-page .shop-hero-media { min-height:0; height:240px; max-height:240px; align-self:center; }
.layout-shop-page .shop-guide { padding:clamp(1rem,2.5vw,1.75rem); }
.layout-shop-page .shop-guide-heading h2 { font-size:clamp(1.5rem,2.5vw,1.9rem); line-height:1.25; }
.layout-shop-page .shop-selection { margin-top:1.25rem; }
.layout-shop-page .shop-choice-layout { grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr); gap:1.5rem; }
.layout-shop-page .shop-selected-photo img { height:240px; max-height:240px; aspect-ratio:auto; }
.layout-shop-page .shop-selected-photo figcaption { min-height:0; padding:.6rem; }
.layout-shop-page .shop-photo-options { gap:.4rem; margin-top:.6rem; }
.layout-shop-page .shop-photo-options img { height:48px; max-height:48px; aspect-ratio:auto; }
.layout-shop-page .shop-selected-offer { padding-top:.85rem; }
.layout-shop-page .shop-selected-offer h3 { font-size:1.25rem; }
.layout-shop-page .shop-selected-offer .shop-selected-price { font-size:1.5rem; margin:.35rem 0; }
.layout-shop-page .shop-choice-fields .shop-tier-card { padding:.7rem .85rem; gap:.2rem; }
.layout-shop-page .shop-choice-fields .shop-tier-card strong { font-size:1.25rem; line-height:1.3; }
.layout-shop-page .shop-configurator { margin-top:1rem; gap:.8rem; }
.layout-shop-page .shop-preferences { margin-top:.8rem; }
.layout-shop-page .shop-enquiry-panel { padding:1rem; gap:1rem; }
.layout-shop-page .shop-enquiry-panel .eyebrow { font-size:1.3rem; }
.layout-shop-page .shop-message-review { padding:1rem; }
.layout-shop-page .shop-message-review h3 { font-size:1.05rem; margin-bottom:.6rem; }
.layout-shop-page .message-language-block { margin-bottom:1rem; line-height:1.5; }
.layout-shop-page .shop-enquiry-actions .button { min-height:48px; padding:.65rem 1rem; font-size:1rem; }
.layout-shop-page .shop-detail-copy { margin-top:2rem; padding-top:1.5rem; }
.layout-shop-page .shop-evidence-card img { max-height:300px; }
html[dir='rtl'] .layout-seasonal-home :is(.approach-heading h2,.open-copy h2),html[dir='rtl'] .shop-hero h1 { letter-spacing:normal; line-height:1.45; }
@media(max-width:760px){
 .layout-seasonal-home .approach-section,.layout-seasonal-home .open-section,.layout-seasonal-home .site-footer { grid-template-columns:minmax(0,1fr); }
 .layout-seasonal-home .product-grid { grid-template-columns:minmax(0,1fr); }
 .layout-seasonal-home .approach-section,.layout-seasonal-home .open-section { padding-block:2rem; gap:1.5rem; }
 .layout-shop-page .shop-hero { display:grid; grid-template-columns:minmax(0,1fr); gap:1rem; padding-block:1.25rem; }
 .layout-shop-page .shop-hero h1 { font-size:2rem; max-width:24ch; }
 .layout-shop-page .shop-hero-media { height:170px; max-height:170px; width:100%; }
 .layout-shop-page .shop-choice-layout { grid-template-columns:minmax(0,1fr); gap:1.25rem; }
 .layout-shop-page .shop-selected-photo img { height:180px; max-height:180px; }
 .layout-shop-page .shop-photo-options { max-width:none; }
 .layout-shop-page .shop-review-shortcut { position:static; box-shadow:none; }
 .layout-shop-page .shop-enquiry-panel { padding:.8rem; }
 .layout-shop-page .shop-message-review { padding:.75rem; }
}
@media(max-width:760px){
 .layout-shop-page .shop-photo-preview { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:.65rem; align-items:start; }
 .layout-shop-page .shop-selected-photo { grid-column:1; grid-row:1; }
 .layout-shop-page .shop-selected-photo img { height:130px; max-height:130px; }
 .layout-shop-page .shop-selected-offer { grid-column:2; grid-row:1; padding-top:0; }
 .layout-shop-page .shop-photo-options { grid-column:1/-1; grid-row:2; margin-top:0; }
 .layout-shop-page .shop-selected-offer h3 { font-size:1.1rem; }
}
/* Selection first; optional explanations use native, keyboard-accessible disclosures. */
.layout-shop-page .shop-hero-media { height:180px; max-height:180px; }
.layout-shop-page .shop-choice-fields > .shop-field { margin-block-end:1rem; }
.layout-shop-page .shop-tier-card { min-height:0; }
.layout-shop-page .shop-help { border:1px solid #647164; border-radius:8px; background:#fffdf6; color:#102f2b; margin-block:.75rem; min-width:0; }
.layout-shop-page .shop-help > summary { cursor:pointer; padding:.75rem 1rem; font-size:.95rem; font-weight:650; line-height:1.5; min-height:48px; overflow-wrap:anywhere; }
.layout-shop-page .shop-help > summary:focus-visible { outline:3px solid #173c9a; outline-offset:3px; border-radius:6px; }
.layout-shop-page .shop-help[open] > summary { border-bottom:1px solid #b4beb2; }
.layout-shop-page .shop-help > p,.layout-shop-page .shop-help-body { padding-inline:1rem; line-height:1.65; font-size:.95rem; }
.layout-shop-page .shop-help-body { padding-block:.25rem 1rem; }
.layout-shop-page .shop-help-body p { margin-block:.75rem; }
.layout-shop-page .shop-selected-offer .shop-help { margin-bottom:0; }
.layout-shop-page .shop-selected-offer .shop-help summary { font-weight:500; }
.layout-shop-page .shop-enquiry-notice { font-weight:650; }
.layout-shop-page #copyFeedback:empty { display:none; }
.layout-shop-page .shop-extras { margin-block:1.75rem; }
.layout-shop-page .shop-extras > h2 { font:500 1.4rem/1.4 var(--serif); margin:0 0 .75rem; }
.layout-shop-page .shop-extra-photos { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.75rem; }
.layout-shop-page .shop-extra-photos figure { margin:0; min-width:0; }
.layout-shop-page .shop-extra-photos img { display:block; width:100%; height:180px; object-fit:contain; background:#f0ebdf; border-radius:6px; }
.layout-shop-page .shop-candle { display:grid; grid-template-columns:120px minmax(0,1fr); gap:1.25rem; padding:1.25rem; border:1px solid #647164; border-radius:8px; background:#fffdf6; align-items:start; }
.layout-shop-page .shop-candle > img { display:block; width:120px; height:160px; object-fit:contain; border-radius:6px; }
.layout-shop-page .shop-candle-copy { min-width:0; }
.layout-shop-page .shop-candle h2 { font:500 1.5rem/1.3 var(--serif); letter-spacing:normal; max-width:none; margin:0 0 .5rem; }
.layout-shop-page .shop-candle-copy > p { margin-block:.25rem .65rem; line-height:1.6; }
.layout-shop-page .shop-candle .eyebrow { font-size:.75rem; }
.layout-shop-page .shop-candle .fallback-message { border-inline-start:2px solid #647164; padding-inline-start:.85rem; margin-block:1rem; }
.layout-shop-page .shop-candle-actions { display:flex; flex-wrap:wrap; gap:.75rem; }
.layout-shop-page .shop-candle-actions .button { min-height:48px; }
html[dir='rtl'] .layout-shop-page .shop-candle h2 { line-height:1.5; }
@media(max-width:760px){
 .layout-shop-page .shop-hero { grid-template-columns:minmax(0,1fr); }
 .layout-shop-page .shop-hero-media { display:none; }
 .layout-shop-page .shop-selected-offer .shop-help summary { padding:.5rem; font-size:.85rem; }
 .layout-shop-page .shop-candle { grid-template-columns:72px minmax(0,1fr); padding:1rem; gap:.8rem; }
 .layout-shop-page .shop-candle > img { width:72px; height:100px; }
 .layout-shop-page .shop-candle h2 { font-size:1.2rem; }
 .layout-shop-page .shop-candle-copy .shop-help { margin-inline-start:calc(-72px - .8rem); }
 .layout-shop-page .shop-candle-actions .button { width:100%; }
 .layout-shop-page .shop-extra-photos { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .layout-shop-page .shop-extra-photos img { height:150px; }
}
@media(forced-colors:active){.layout-shop-page .shop-help,.layout-shop-page .shop-candle{border:1px solid CanvasText}}
/* Product inspection: compact previews lead to a modal without changing the enquiry. */
.shop-photo-open,.shop-photo-link { display:block; position:relative; cursor:zoom-in; border-radius:6px; }
.shop-photo-open:focus-visible,.shop-photo-link:focus-visible { outline:3px solid #173c9a; outline-offset:3px; }
.shop-hero-media .shop-photo-open { height:100%; }
.shop-photo-enlarge { position:absolute; inset-inline-end:.4rem; inset-block-end:.4rem; padding:.3rem .5rem; border-radius:4px; background:#163d32; color:white; font-size:.75rem; line-height:1.4; }
.shop-photo-more { display:inline-flex; align-items:center; min-height:44px; font-size:.9rem; margin-top:.25rem; }
.layout-shop-page .shop-candle-photo { width:120px; }
.layout-shop-page .shop-candle-photo img { display:block; width:120px; height:160px; object-fit:contain; }
.photo-viewer-open { overflow:hidden; }
.shop-photo-dialog { padding:0; border:1px solid #647164; border-radius:12px; background:#fffdf6; color:#102f2b; width:calc(100% - 2rem); max-width:1000px; max-height:calc(100vh - 2rem); max-height:calc(100dvh - 2rem); overflow:auto; }
.shop-photo-dialog::backdrop { background:rgb(9 25 22 / 78%); }
.shop-photo-dialog-inner { padding:1rem; }
.shop-photo-dialog-header { display:flex; align-items:center; justify-content:space-between; gap:.75rem; position:sticky; top:-1rem; background:#fffdf6; z-index:1; padding-block:.25rem .75rem; }
.shop-photo-dialog-header h2 { font:600 1.15rem/1.4 var(--sans, sans-serif); margin:0; max-width:none; letter-spacing:normal; }
.shop-photo-dialog figure { margin:0; }
.shop-photo-stage { width:100%; height:min(52vh,520px); height:min(52dvh,520px); overflow:auto; direction:ltr; background:#eee9dd; border-radius:6px; overscroll-behavior:contain; }
.shop-photo-stage img { display:block; width:100%; height:100%; max-width:none; object-fit:contain; }
.shop-photo-stage.is-zoomed img { width:200%; height:200%; }
.shop-photo-dialog figcaption { padding-block:.7rem; font-size:.95rem; line-height:1.6; }
.shop-photo-dialog-controls { display:flex; align-items:center; justify-content:center; gap:.65rem; flex-wrap:wrap; }
.shop-photo-dialog .button { min-height:44px; padding:.5rem .8rem; border:1px solid #647164; background:#fffdf6; color:#102f2b; font-size:.95rem; }
.shop-photo-dialog .button:hover,.shop-photo-dialog .button[aria-pressed='true'] { background:#e2d5fc; }
.shop-photo-dialog .button:disabled { opacity:.6; cursor:default; }
.shop-photo-dialog :focus-visible { outline:3px solid #173c9a; outline-offset:3px; }
.shop-photo-dialog [hidden] { display:none !important; }
#shopPhotoPosition { margin:0; font-size:.85rem; }
#shopPhotoOriginal { display:inline-flex; align-items:center; min-height:44px; padding:.3rem; font-size:.9rem; text-decoration:underline; }
html[dir='rtl'] .shop-photo-dialog .directional-arrow { display:inline-block; transform:scaleX(-1); }
@media(max-width:760px){
 .layout-shop-page .shop-photo-more { grid-column:1/-1; grid-row:3; }
 .layout-shop-page .shop-candle-photo,.layout-shop-page .shop-candle-photo img { width:72px; }
 .layout-shop-page .shop-candle-photo img { height:100px; }
 .shop-candle-photo .shop-photo-enlarge { position:static; display:block; margin-top:.35rem; text-align:center; }
 .shop-photo-dialog { width:calc(100% - 1rem); max-height:calc(100vh - 1rem); max-height:calc(100dvh - 1rem); }
 .shop-photo-dialog-inner { padding:.75rem; }
 .shop-photo-dialog-header { top:-.75rem; }
 .shop-photo-dialog-header h2 { font-size:1rem; }
 .shop-photo-stage[data-shape='landscape'] { height:min(52vh,60vw); height:min(52dvh,60vw); }
 .shop-photo-dialog-controls { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:.45rem; }
 .shop-photo-dialog-controls .button { width:auto; min-width:0; margin:0; }
 #shopPhotoPosition { grid-column:1/-1; grid-row:1; text-align:center; }
 #shopPhotoPrevious { grid-column:1; grid-row:2; }
 #shopPhotoNext { grid-column:2; grid-row:2; }
 #shopPhotoZoom { grid-column:1; grid-row:3; }
 #shopPhotoOriginal { grid-column:2; grid-row:3; font-size:.8rem; }
 .shop-photo-dialog .button { font-size:.85rem; padding:.5rem .65rem; }
}
@media(forced-colors:active){.shop-photo-dialog,.shop-photo-dialog .button{border:1px solid CanvasText}.shop-photo-enlarge{background:Canvas;color:CanvasText;border:1px solid CanvasText}}
