/* ============================================================
   Batya's Jewelry: component classes for the Elementor build
   Source: DESIGN.md (approved 2026-09-21) and the D3 prototypes.
   Colours, type sizes and spacing come from the Elementor globals
   and from tokens.css. This file only holds what Elementor's
   controls cannot express. Classes go in Advanced > CSS Classes.
   Logical properties only: the site is RTL.
   ============================================================ */

/* ---------- 1. Base ---------- */
body{background:var(--color-surface);color:var(--color-ink);-webkit-font-smoothing:antialiased}
h1,h2,h3,.elementor-heading-title{text-wrap:balance;overflow-wrap:anywhere;letter-spacing:normal}
td,th,dd,li,blockquote{unicode-bidi:plaintext}
.ltr,code,kbd,samp{direction:ltr;unicode-bidi:isolate;text-align:start}
img{border-radius:0}
::selection{background:var(--color-brand-tint);color:var(--color-ink)}

:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}
.on-dark :where(a,button,summary,[tabindex]):focus-visible{outline-color:var(--color-brand)}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}
/* No entrance motion anywhere (DESIGN.md 8). Covers animations left on old widgets. */
.elementor-invisible{visibility:visible!important}
.elementor-element.animated{animation:none!important}

/* ---------- 2. Links (decision 2026-09-21) ----------
   In-copy and standalone text links carry a permanent underline.
   Hover changes colour only: no underline appears or disappears. */
a{color:var(--color-ink);text-decoration-thickness:1px;text-underline-offset:.2em;transition:color var(--duration-fast) var(--ease-standard)}
a:hover{color:var(--color-brand-deep)}
.elementor-widget-text-editor a,.elementor-widget-theme-post-content a,.woocommerce-product-details__short-description a,.term-description a,.textlink a,a.textlink{text-decoration:underline}
.textlink a,a.textlink{display:inline-flex;align-items:center;min-block-size:44px;font-weight:var(--weight-medium)}
.on-dark a{color:var(--color-ink-on-dark)}
.on-dark a:hover{color:var(--color-brand)}

/* ---------- 3. Text helpers ---------- */
.eyebrow .elementor-heading-title,.eyebrow{color:var(--color-brand-deep)}
.on-dark .eyebrow .elementor-heading-title,.on-dark .eyebrow{color:var(--color-brand)}
.lead,.lead p{max-inline-size:var(--measure)}
.prose p,.prose li,.elementor-widget-theme-post-content p,.elementor-widget-theme-post-content li{max-inline-size:var(--measure)}
.trust,.trust p{font-size:var(--text-sm);color:var(--color-ink-muted)}
.pull .elementor-heading-title,.pull p{font-family:var(--font-display);font-size:var(--text-2xl);line-height:1.35;text-wrap:balance}
.muted,.muted p{color:var(--color-ink-muted)}
.price-serif,.price-serif .elementor-heading-title{font-family:var(--font-display);font-weight:500;font-variant-numeric:lining-nums tabular-nums}

/* ---------- 4. Signature: rule and number ----------
   On collections, process steps, journal entries, month cards and contact ways.
   Product cards carry the rule only. Never on buttons, forms, header or footer. */
.sig-rule{border-block-start:1px solid var(--color-ink);padding-block-start:var(--space-4)}
.sig-num .elementor-heading-title,.sig-num{font-family:var(--font-display);font-size:var(--text-xl);line-height:1;color:var(--color-brand-deep);font-variant-numeric:lining-nums}
.on-dark .sig-rule{border-color:var(--color-brand)}
.on-dark .sig-num .elementor-heading-title,.on-dark .sig-num{color:var(--color-brand)}

/* ---------- 5. Buttons ----------
   Primary comes from Theme Style (ink, 2px radius). This adds the height, the states
   and the two variants. One primary per view. */
.elementor-button,.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,.woocommerce #respond input#submit{min-block-size:52px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:background-color var(--duration-fast) var(--ease-standard),color var(--duration-fast) var(--ease-standard)}
.elementor-button:active,.woocommerce a.button:active,.woocommerce button.button:active{transform:translateY(1px)}
.elementor-button:hover,.elementor-button:focus{transform:none}
.btn--secondary .elementor-button{background:transparent;color:var(--color-ink);border:1px solid var(--color-ink)}
.btn--secondary .elementor-button:hover,.btn--secondary .elementor-button:focus{background:var(--color-surface-subtle);color:var(--color-ink)}
.on-dark .elementor-button{background:var(--color-brand);color:var(--color-on-brand);border-color:transparent}
.on-dark .elementor-button:hover,.on-dark .elementor-button:focus{background:var(--color-brand-tint);color:var(--color-on-brand)}
@media (max-width:767px){.btn--block .elementor-button{inline-size:100%}}
.icon-directional svg,.icon-directional i{transform:scaleX(var(--dir,-1))}

/* ---------- 6. Cards ---------- */
/* Product card: loop item root container gets .pcard, the image container .pcard__mat */
.pcard{position:relative;block-size:100%}
.pcard__mat{background:var(--color-surface-raised);padding:var(--space-4)}
.pcard__mat img{aspect-ratio:1 / 1;object-fit:contain;inline-size:100%;block-size:auto}
.pcard__title .elementor-heading-title,.pcard__title a{font-family:var(--font-body);font-weight:var(--weight-body);font-size:var(--text-base);line-height:1.5;color:inherit;text-decoration:none;unicode-bidi:plaintext;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.pcard__title a::after,.ccard__link a::after,.jcard__link a::after{content:"";position:absolute;inset:0}
.pcard:hover .pcard__title a,.ccard:hover .ccard__link a,.jcard:hover .jcard__link a{color:var(--color-brand-deep)}
.pcard .price,.pcard .elementor-widget-woocommerce-product-price{margin-block-start:auto}
.ccard,.jcard,.bcard{position:relative}
.ccard__link a,.jcard__link a{color:inherit;text-decoration:none}
.ccard img{aspect-ratio:4 / 5;object-fit:cover;inline-size:100%}
.bcard{block-size:100%}
.bcard__links{margin-block-start:auto}

/* WooCommerce price, everywhere: serif, ink, no olive, no pink */
.woocommerce .price,.woocommerce div.product p.price,.woocommerce div.product span.price,.woocommerce ul.products li.product .price,.elementor-widget-woocommerce-product-price .price{font-family:var(--font-display);font-weight:500;color:var(--color-ink);font-variant-numeric:lining-nums tabular-nums}
.woocommerce .price del{color:var(--color-ink-muted);font-weight:400;opacity:1}
.woocommerce .price ins{text-decoration:none}
.woocommerce span.onsale{background:var(--color-surface-raised);color:var(--color-ink);border:1px solid var(--color-ink);border-radius:var(--radius-sm);min-block-size:0;min-inline-size:0;line-height:1.2;padding:var(--space-1) var(--space-2);font-weight:var(--weight-medium);font-size:var(--text-xs)}

/* Mobile snap row (collections 01 to 05, related products): a scroll row, not a slider */
@media (max-width:767px){
  .snap-row>.e-con-inner,.snap-row:not(:has(>.e-con-inner)){display:flex;flex-wrap:nowrap;overflow-x:auto;scroll-snap-type:inline mandatory;scrollbar-width:none;gap:var(--space-4)}
  .snap-row>.e-con-inner>*,.snap-row:not(:has(>.e-con-inner))>*{flex:0 0 42%;scroll-snap-align:start}
  .snap-row ::-webkit-scrollbar{display:none}
}

/* ---------- 7. Header ---------- */
.site-header{background:var(--color-surface)}
.site-header.elementor-sticky--effects{box-shadow:var(--shadow-1)}
.site-header .elementor-nav-menu--dropdown a{min-block-size:52px;border-block-start:1px solid var(--color-line)}
.site-header .elementor-menu-toggle{min-block-size:44px;min-inline-size:44px;background:none}
.site-header .elementor-widget-icon .elementor-icon{display:grid;place-items:center;min-block-size:44px;min-inline-size:44px}
.site-header .elementor-nav-menu a,.site-header .elementor-item{min-block-size:44px;min-inline-size:44px;text-decoration:none}
.site-header .elementor-nav-menu--main .elementor-item:hover,.site-header .elementor-nav-menu--main .elementor-item.elementor-item-active{color:var(--color-brand-deep)}
.site-header .elementor-nav-menu--main .elementor-item::before,.site-header .elementor-nav-menu--main .elementor-item::after{display:none}
.site-header .elementor-item.elementor-item-active{box-shadow:inset 0 -1px 0 currentColor}
.notice-bar,.notice-bar p{font-size:var(--text-sm);margin:0}
.wa-link a,.wa-link .elementor-button{display:inline-flex;align-items:center;gap:var(--space-2);min-block-size:44px;min-inline-size:44px;justify-content:center;background:none;color:var(--color-ink);text-decoration:none;font-size:var(--text-sm);font-weight:var(--weight-medium);padding-inline:var(--space-3);border:0}
.wa-link a:hover,.wa-link .elementor-button:hover{color:var(--color-brand-deep);background:none}
@media (max-width:1024px){.wa-link .elementor-button-text{position:absolute;inline-size:1px;block-size:1px;overflow:hidden;clip-path:inset(50%)}}
.site-header .elementor-menu-cart__toggle .elementor-button{min-block-size:44px;min-inline-size:44px;background:none;border:0;color:var(--color-ink);padding:0}
.site-header .elementor-menu-cart__toggle .elementor-button-icon-qty[data-counter]{background:var(--color-ink);color:var(--color-ink-on-dark);border-radius:var(--radius-pill)}
.site-header .elementor-search-form__toggle,.site-header .e-search-toggle{min-block-size:44px;min-inline-size:44px;display:grid;place-items:center}

/* ---------- 8. Footer ---------- */
.site-footer{border-block-start:1px solid var(--color-line)}
.site-footer .elementor-icon-list-item a,.site-footer .elementor-icon-list-item>span{display:flex;align-items:center;min-block-size:44px}
.site-footer .elementor-icon-list-text{color:var(--color-ink-muted);transition:color var(--duration-fast) var(--ease-standard)}
.site-footer a{text-decoration:none}
.site-footer a:hover .elementor-icon-list-text,.site-footer a:hover{color:var(--color-ink)}
.site-footer .elementor-icon-list-items{margin:0;padding:0}
.site-footer .tel,.site-footer .tel a{direction:ltr;unicode-bidi:isolate}
.footer__legal,.footer__legal p{color:var(--color-ink-muted);font-size:var(--text-sm);margin:0}

/* ---------- 9. FAQ accordion (Nested Accordion or classic Accordion): rules, no boxes ---------- */
.faq{max-inline-size:52rem}
.faq .e-n-accordion-item,.faq .elementor-accordion-item{border:0;border-block-start:1px solid var(--color-line-strong);background:none}
.faq .e-n-accordion-item:last-child,.faq .elementor-accordion-item:last-child{border-block-end:1px solid var(--color-line-strong)}
.faq .e-n-accordion-item-title,.faq .elementor-tab-title{min-block-size:64px;padding-block:var(--space-4);padding-inline:0;background:none;border:0;font-family:var(--font-body);font-weight:var(--weight-medium);color:var(--color-ink)}
.faq .e-n-accordion-item-title:hover,.faq .elementor-tab-title:hover{color:var(--color-brand-deep)}
.faq .elementor-tab-content,.faq .e-n-accordion-item>.e-con{border:0;padding-inline:0;padding-block:0 var(--space-5)}

/* ---------- 10. Forms (DESIGN.md 5) ---------- */
.elementor-field-group .elementor-field-textual,.woocommerce form .form-row input.input-text,.woocommerce form .form-row textarea,.woocommerce form .form-row select,.select2-container .select2-selection--single{min-block-size:52px;background:var(--color-surface-raised);border:1px solid var(--color-line-strong);border-radius:var(--radius-sm);color:var(--color-ink);font-size:max(17px,1rem)}
.elementor-field-group .elementor-field-textual:focus,.woocommerce form .form-row input.input-text:focus,.woocommerce form .form-row textarea:focus{border-color:var(--color-focus);outline:2px solid var(--color-focus);outline-offset:2px;box-shadow:none}
.elementor-field-group>label,.woocommerce form .form-row label{font-weight:var(--weight-medium);font-size:var(--text-sm);margin-block-end:var(--space-2)}
.elementor-field-type-email input,.elementor-field-type-tel input,.elementor-field-type-url input,.woocommerce form .form-row input[type=email],.woocommerce form .form-row input[type=tel],#coupon_code{direction:ltr;text-align:end}
.elementor-message.elementor-message-danger,.elementor-field-group .elementor-message,.woocommerce form .form-row.woocommerce-invalid label{color:var(--color-error)}
.woocommerce form .form-row.woocommerce-invalid input.input-text{border-color:var(--color-error)}
.elementor-message.elementor-message-success{font-family:var(--font-display);font-size:var(--text-xl);color:var(--color-ink)}

/* ---------- 11. WooCommerce defaults out: no purple, no blue (purchase pages inherit from here) ---------- */
.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,.woocommerce #respond input#submit,.woocommerce a.button.alt,.woocommerce button.button.alt,.woocommerce input.button.alt,.wc-block-components-button:not(.is-link){background:var(--color-secondary);color:var(--color-on-secondary);font-family:var(--font-body);font-weight:var(--weight-medium);font-size:1rem;padding:var(--space-4) var(--space-6);border:1px solid transparent}
.woocommerce a.button:hover,.woocommerce button.button:hover,.woocommerce input.button:hover,.woocommerce a.button.alt:hover,.woocommerce button.button.alt:hover,.woocommerce input.button.alt:hover,.wc-block-components-button:not(.is-link):hover{background:var(--color-secondary-hover);color:var(--color-on-secondary)}
.woocommerce button.button:disabled,.woocommerce button.button.disabled,.woocommerce button.button.alt.disabled{background:var(--color-disabled-bg);color:var(--color-disabled-ink);opacity:1}
.woocommerce .coupon button.button,.woocommerce a.button.wc-backward,.woocommerce button[name=update_cart]{background:transparent;color:var(--color-ink);border-color:var(--color-ink)}
.woocommerce .coupon button.button:hover,.woocommerce a.button.wc-backward:hover,.woocommerce button[name=update_cart]:hover{background:var(--color-surface-subtle);color:var(--color-ink)}
.woocommerce-message,.woocommerce-info,.woocommerce-error,.woocommerce-noreviews,p.no-comments{background:var(--color-brand-tint);color:var(--color-ink);border:0;border-block-start:1px solid var(--color-ink);border-radius:0}
.woocommerce-message::before,.woocommerce-info::before{color:var(--color-brand-deep)}
.woocommerce-error{border-block-start-color:var(--color-error)}
.woocommerce-error::before{color:var(--color-error)}
.woocommerce table.shop_table{border:0;border-radius:0;border-collapse:collapse}
.woocommerce table.shop_table th{font-weight:var(--weight-medium);font-size:var(--text-sm);border-block-end:1px solid var(--color-ink)}
.woocommerce table.shop_table td{border-block-start:1px solid var(--color-line)}
.woocommerce-checkout-review-order,.cart_totals,.woocommerce-checkout #payment{background:var(--color-surface-raised);border:1px solid var(--color-line);border-radius:0;padding:var(--space-5)}
.woocommerce-checkout #payment div.payment_box{background:var(--color-surface-subtle);color:var(--color-ink)}
.woocommerce-checkout #payment div.payment_box::before{border-block-end-color:var(--color-surface-subtle)}
.woocommerce-MyAccount-navigation ul{list-style:none;margin:0;padding:0}
.woocommerce-MyAccount-navigation a{display:flex;align-items:center;min-block-size:44px;text-decoration:none;border-block-start:1px solid var(--color-line)}
.woocommerce-MyAccount-navigation .is-active a{font-weight:var(--weight-medium);box-shadow:inset 0 -1px 0 currentColor}
.woocommerce .star-rating span::before,.woocommerce p.stars a{color:var(--color-brand-deep)}
.woocommerce .quantity .qty{min-block-size:52px;inline-size:6rem;border:1px solid var(--color-line-strong);border-radius:var(--radius-sm);background:var(--color-surface-raised)}

/* ---------- 12. Archive tools, loading ---------- */
.tools{border-block:1px solid var(--color-line)}
.tabs a{display:inline-flex;align-items:center;min-block-size:44px;white-space:nowrap;text-decoration:none}
.tabs a[aria-current=page],.tabs .current-cat>a{box-shadow:inset 0 -1px 0 currentColor;font-weight:var(--weight-medium)}
.woocommerce .woocommerce-ordering select{min-block-size:44px;padding-inline:var(--space-4);border:1px solid var(--color-line-strong);border-radius:var(--radius-sm);background:var(--color-surface-raised);font-size:var(--text-sm)}
.loadmore,.e-loop__load-more{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);margin-block-start:var(--space-7)}

/* ---------- 13. Breadcrumb, byline, article, in-page list ---------- */
.crumbs,.crumbs a,.woocommerce .woocommerce-breadcrumb,.woocommerce .woocommerce-breadcrumb a{font-size:var(--text-sm);color:var(--color-ink-muted)}
.crumbs a,.woocommerce .woocommerce-breadcrumb a{display:inline-flex;align-items:center;min-block-size:44px;min-inline-size:44px;text-decoration:underline}
.byline,.byline .elementor-post-info__item{font-size:var(--text-sm);color:var(--color-ink-muted)}
.byline a{display:inline-flex;align-items:center;min-block-size:44px;text-decoration:underline}
.byline img{inline-size:48px;block-size:48px;object-fit:cover;border-radius:var(--radius-sm)}
.elementor-widget-theme-post-content h2{font-family:var(--font-display);font-weight:var(--weight-display);font-size:var(--text-2xl);line-height:1.2;margin-block:var(--space-7) var(--space-4);scroll-margin-block-start:7rem}
.elementor-widget-theme-post-content figure{margin-block:var(--space-5)}
.elementor-widget-theme-post-content figcaption{font-size:var(--text-sm);color:var(--color-ink-muted);margin-block-start:var(--space-2);text-align:start}
.toc.elementor-widget-table-of-contents,.toc .elementor-toc__header,.toc .elementor-toc__body{background:none;border:0;padding-inline:0}
.toc{border-block-start:1px solid var(--color-ink);padding-block-start:var(--space-4)}
.toc .elementor-toc__header-title{font-family:var(--font-body);font-size:var(--text-sm);font-weight:var(--weight-medium)}
.toc .elementor-toc__list-item-text{display:flex;align-items:center;min-block-size:44px;text-decoration:none;color:var(--color-ink-muted)}
.toc .elementor-toc__list-item-text:hover,.toc .elementor-item-active{color:var(--color-brand-deep)}

/* ---------- 14. Product page ---------- */
.key-facts dl,.key-facts table{margin:0}
.key-facts .woocommerce-product-attributes th,.key-facts .woocommerce-product-attributes td{background:none;border:0;border-block-start:1px solid var(--color-line);padding-block:var(--space-3);font-style:normal;text-align:start}
.key-facts .woocommerce-product-attributes th{font-weight:var(--weight-medium);font-size:var(--text-sm);color:var(--color-ink-muted);inline-size:40%}
.gallery-mat .woocommerce-product-gallery__image,.gallery-mat img{background:var(--color-surface-raised)}
.sticky-cta{position:fixed;inset-inline:0;inset-block-end:0;z-index:20;background:var(--color-surface);box-shadow:var(--shadow-2)}
@media (min-width:768px){.sticky-cta{display:none!important}}
@media (max-width:767px){body.single-product{padding-block-end:64px}}

/* ---------- 15. Surfaces ---------- */
.on-dark,.on-dark .elementor-heading-title,.on-dark p{color:var(--color-ink-on-dark)}
.on-dark .muted,.on-dark .muted p{color:var(--color-ink-on-dark-muted)}

/* ---------- 16. Added in 1.0.2 (after the header went live, for the home template) ---------- */
/* Header bar: measured 100px on the build site (16px block padding, 54px WhatsApp button). Spec: 88 / 64. */
.site-header.e-con{--padding-top:0px;--padding-bottom:0px;padding-block:0}
.wa-link .elementor-button,.site-header .elementor-button{min-block-size:44px;padding-block:0}
.elementor-widget-text-editor p:last-child{margin-block-end:0}
/* Collection cards 01 to 05 */
.ccard{border-block-start:1px solid var(--color-ink);padding-block-start:var(--space-3)}
.ccard .elementor-heading-title a{color:inherit;text-decoration:none}
@media (max-width:767px){
  .snap-row.e-con,.snap-row>.e-con-inner{display:flex!important;flex-wrap:nowrap!important;overflow-x:auto;scroll-snap-type:inline mandatory;scrollbar-width:none;gap:var(--space-4)}
  .snap-row.e-con>.e-con,.snap-row>.e-con-inner>.e-con{flex:0 0 42%;scroll-snap-align:start}
}
/* Home hero and story images: 4:5, the hero never taller than 70vh on a phone */
.hero-home__img img,.story__img img{aspect-ratio:4 / 5;object-fit:cover;inline-size:100%;block-size:auto}
@media (max-width:767px){.hero-home__img img{max-block-size:70vh}}
.hero-home__cap,.hero-home__cap p{font-family:var(--font-display)}
.closing .elementor-heading-title{max-inline-size:32ch}

/* ---------- 17. Added in 1.0.3: product archive and single product ---------- */
/* Archive tools row */
.tools .elementor-nav-menu--main{overflow-x:auto;scrollbar-width:none}
.tools .elementor-nav-menu--main .elementor-item{min-block-size:44px;padding-inline:0;white-space:nowrap}
.tools .elementor-nav-menu--main .elementor-item-active{box-shadow:inset 0 -1px 0 currentColor;font-weight:var(--weight-medium)}
.tools .elementor-menu-toggle{display:none}
.tools .elementor-nav-menu--dropdown{display:none!important}
.tools .elementor-nav-menu--main{display:flex!important}
.tools .woocommerce-ordering{margin:0}
.woocommerce-result-count{margin:0;font-size:var(--text-sm);color:var(--color-ink-muted)}
/* Load more: the button is the archive's one primary action; keep it a real link when Elementor renders one */
.e-load-more-anchor+.elementor-button-wrapper .elementor-button,.elementor-widget-loop-grid .e-load-more-wrapper .elementor-button{min-inline-size:16rem}
@media (max-width:767px){.elementor-widget-loop-grid .e-load-more-wrapper .elementor-button{inline-size:100%}}
.elementor-widget-loop-grid .e-load-more-spinner{display:none}
/* Product gallery: white mats, 1:1, three across after the first */
.gallery__first img{aspect-ratio:1 / 1;object-fit:contain;inline-size:100%;block-size:auto}
.gallery__rest .gallery-item{background:var(--color-surface-raised);padding:var(--space-3);margin:0}
.gallery__rest .gallery-item img{aspect-ratio:1 / 1;object-fit:contain;inline-size:100%;block-size:auto;border:0}
.gallery__rest .gallery-item:first-child{display:none} /* the featured image repeats as item 1 of the gallery tag on some versions */
@media (max-width:767px){
  .gallery.e-con{display:flex;flex-direction:row;overflow-x:auto;scroll-snap-type:inline mandatory;scrollbar-width:none}
  .gallery.e-con>*{flex:0 0 88%;scroll-snap-align:start}
  .gallery__rest .gallery{display:flex;gap:var(--space-3)}
  .gallery__rest .gallery-item{flex:0 0 100%}
}
/* Summary */
.summary .elementor-widget-woocommerce-product-price .price{font-size:var(--text-xl)}
.summary .cart{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:flex-end}
.summary .quantity{inline-size:6rem}
.summary .single_add_to_cart_button{flex:1 1 12rem;min-block-size:52px}
.summary table.variations th{font-weight:var(--weight-medium);font-size:var(--text-sm);padding:0 0 var(--space-2);text-align:start;display:block}
.summary table.variations td{padding:0 0 var(--space-4);display:block}
.summary table.variations select{min-block-size:52px;inline-size:100%;background:var(--color-surface-raised);border:1px solid var(--color-line-strong);border-radius:var(--radius-sm);padding-inline:var(--space-4)}
.summary .reset_variations{font-size:var(--text-sm)}
.woocommerce div.product form.cart .variations td.label{padding-inline-end:0}
/* Key facts from attributes */
.key-facts .woocommerce-product-attributes{display:grid;grid-template-columns:1fr 1fr;column-gap:var(--space-6)}
@media (max-width:767px){.key-facts .woocommerce-product-attributes{grid-template-columns:1fr}}
.key-facts .woocommerce-product-attributes tbody{display:contents}
.key-facts .woocommerce-product-attributes-item{display:grid;grid-template-columns:40% 1fr;gap:var(--space-3);border-block-start:1px solid var(--color-line);padding-block:var(--space-3)}
.key-facts .woocommerce-product-attributes-item__value p{margin:0}
/* Product tags: at most a short plain list, never a cloud */
.product_meta{display:none}
/* Reviews: hide the whole block when there are none (the JS adds .is-empty) */
.proof.is-empty{display:none}
.reviews #reviews #comments .woocommerce-noreviews,.reviews .comment-form-rating{margin-block:var(--space-4)}
/* Sticky buy bar, mobile only, shown once the summary button leaves the screen */
.sticky-cta{position:fixed!important;inset-inline:0;inset-block-end:0;z-index:20;box-shadow:var(--shadow-2);transform:translateY(100%);transition:transform var(--duration-base) var(--ease-standard)}
.sticky-cta.is-shown{transform:none}
.sticky-cta .elementor-widget-button{flex:0 0 50%}
.sticky-cta .elementor-button{inline-size:100%;min-block-size:64px;border-radius:0}
.sticky-cta .price{font-size:var(--text-lg)}
@media (min-width:768px){.sticky-cta{display:none!important}}
@media (max-width:767px){body.single-product.has-sticky{padding-block-end:64px}}

/* ---------- 18. Added in 1.0.5: stage 4 pages ---------- */
.hero-photo__img img{aspect-ratio:4 / 3;object-fit:cover;inline-size:100%;block-size:auto}
@media (min-width:768px){.hero-photo__img img{aspect-ratio:21 / 9;max-block-size:520px}}
.side-img img{aspect-ratio:4 / 5;object-fit:cover;inline-size:100%}
.tile-img img{aspect-ratio:4 / 5;object-fit:cover;inline-size:100%}
.map-img img{aspect-ratio:16 / 9;object-fit:cover;inline-size:100%}
@media (min-width:768px){.map-img img{aspect-ratio:21 / 9;max-block-size:420px}}
.fact p{margin:0}
.bcard .textlink p{margin:0}
.bcard .textlink a{min-block-size:40px}
.byline__img img{inline-size:48px;block-size:48px;object-fit:cover;border-radius:var(--radius-sm)}
.byline .elementor-post-info__item{color:var(--color-ink-muted)}
.contact__form .elementor-field-group{margin-block-end:var(--space-4)}
.contact__form .elementor-form .elementor-button{min-inline-size:100%}
.quoteblock p{margin:0}
/* Table of contents: no box, rule on top, 44px rows */
.toc .elementor-toc__header{border:0;padding:0 0 var(--space-2);background:none}
.toc .elementor-toc__body{padding:0;background:none}
.toc .elementor-toc__list-item{padding:0}
.toc .elementor-toc__list-item-text-wrapper{min-block-size:44px;display:flex;align-items:center}

/* ---------- 19. Added in 1.0.6: category tabs shortcode, gifts page ---------- */
.tabs{display:flex;gap:var(--space-5);overflow-x:auto;scrollbar-width:none;flex-wrap:nowrap}
.tabs::-webkit-scrollbar{display:none}
.tabs a{display:inline-flex;align-items:center;min-block-size:44px;white-space:nowrap;text-decoration:none;color:var(--color-ink)}
.tabs a:hover{color:var(--color-brand-deep)}
.tabs a[aria-current=page]{box-shadow:inset 0 -1px 0 currentColor;font-weight:var(--weight-medium)}
.elementor-widget-shortcode .tabs{margin:0}

/* ---------- 20. Added in 1.0.7 ---------- */
/* No horizontal overflow from the fixed buy bar or the gallery row at desktop */
.sticky-cta{max-inline-size:100vw;inline-size:100%}
body.single-product{overflow-x:clip}
