/* ==========================================================================
   Pashers — WordPress / Elementor / WooCommerce layer
   Loaded after pashers.css. Maps the design system onto real WordPress markup.
   ========================================================================== */

/* ---------- Minimal base (replaces Hello Elementor's reset.css) ---------- */
img { max-width: 100%; height: auto; border-style: none; }
button, input, optgroup, select, textarea { font-family: inherit; font-size: 1rem; line-height: 1.5; margin: 0; }
button { cursor: pointer; }
table { border-collapse: collapse; border-spacing: 0; width: 100%; }
details { display: block; } summary { display: list-item; }
[hidden] { display: none !important; }

/* ---------- Site wrapper ---------- */
.p-site-content { outline: none; }
.p-site-content > main > .p-section:last-child,
.p-elementor-page .elementor > .e-con:last-child { padding-bottom: 0; }
.p-header__left { display: flex; align-items: center; gap: .5rem; }
.p-nav--secondary { margin-right: 1rem; }
.p-drawer__head { display: flex; justify-content: space-between; align-items: center; }
.p-drawer nav ul { list-style: none; margin: 0; padding: 0; }
.p-drawer__dog { width: 72px; margin-top: auto; }
.p-hide-sm { }
.p-search { border-top: 1px solid var(--p-line); padding-block: var(--p-s4); }
.p-search__form { display: flex; gap: .5rem; max-width: 640px; margin-inline: auto; }
.p-search__form .input-text { flex: 1; }
.p-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
body.admin-bar .p-header { top: 32px; }
@media (max-width: 782px) { body.admin-bar .p-header { top: 46px; } }
@media (max-width: 600px) { body.admin-bar .p-header { top: 0; } }

/* ---------- Elementor: let the theme classes drive layout ---------- */
.elementor .e-con { --padding-top: 0px; --padding-bottom: 0px; --padding-left: 0px; --padding-right: 0px; --gap: 0px; --row-gap: 0px; --column-gap: 0px; }
.elementor .e-con.e-flex { --align-items: stretch; }
.elementor :where(.e-con) > :where(.elementor-widget) { width: 100%; max-width: 100%; }
.elementor-widget .elementor-widget-container { height: 100%; }
/* Headings keep the Pashers type scale rather than Elementor's line-height:1 reset */
.elementor-widget-heading .elementor-heading-title { line-height: 1.05; color: inherit; font-weight: 500; }
.elementor-widget-heading h1.elementor-heading-title { font-size: var(--p-text-hero); margin: 0 0 .5em; }
.elementor-widget-heading h2.elementor-heading-title { font-size: var(--p-text-2xl); margin: 0 0 .5em; }
.elementor-widget-heading h3.elementor-heading-title { font-size: var(--p-text-xl); margin: 0 0 .5em; }
.elementor-widget-heading:last-child .elementor-heading-title { margin-bottom: 0; }
.elementor-widget-heading h1, .elementor-widget-heading h2, .elementor-widget-heading h3 { color: var(--p-coal); }
.elementor-widget-heading div.elementor-heading-title, .elementor-widget-heading span.elementor-heading-title, .elementor-widget-heading p.elementor-heading-title { font-family: inherit; font-size: inherit; letter-spacing: inherit; text-transform: inherit; font-weight: inherit; line-height: inherit; }
.elementor-widget-heading .elementor-heading-title a { color: inherit; }
.elementor-widget-heading .elementor-heading-title em { font-style: normal; color: var(--p-moor); }
.elementor-widget-text-editor { color: inherit; }
.elementor-widget-text-editor > :last-child, .elementor-widget-text-editor .elementor-widget-container > :last-child { margin-bottom: 0; }
.e-con > .elementor-widget-text-editor:not(:last-child) { margin-bottom: 1.25rem; }
.elementor-widget-image { text-align: inherit; }
.elementor-widget-image img { display: block; }
.elementor-widget-image a { display: block; }
.elementor-widget-html > .elementor-widget-container, .elementor-widget-shortcode .elementor-shortcode { width: 100%; }

/* Eyebrow as a heading widget */
.elementor-widget-heading.p-eyebrow { width: auto; display: flex; }
.p-eyebrow a { text-decoration: none; }

/* Buttons (Elementor button widget) */
.elementor-widget-button { width: auto !important; }
.elementor-widget-button .elementor-button { border-radius: var(--p-radius); padding: .85rem 1.6rem; font-size: var(--p-text-sm); font-weight: 700; letter-spacing: .1em; text-transform: uppercase; line-height: 1.1; fill: currentColor; }
.elementor-widget-button .elementor-button { background: var(--p-navy); border: 1.5px solid var(--p-navy); color: var(--p-oat); }
.elementor-widget-button .elementor-button:hover, .elementor-widget-button .elementor-button:focus-visible { background: var(--p-moor); border-color: var(--p-moor); color: var(--p-oat); }
.elementor-widget-button.p-btn-w--ghost .elementor-button { background: transparent; color: var(--p-coal); border-color: var(--p-coal); }
.elementor-widget-button.p-btn-w--ghost .elementor-button:hover, .elementor-widget-button.p-btn-w--ghost .elementor-button:focus-visible { background: var(--p-coal); border-color: var(--p-coal); color: var(--p-oat); }
.elementor-widget-button.p-btn-w--light .elementor-button { background: var(--p-oat); border-color: var(--p-oat); color: var(--p-navy); }
.elementor-widget-button.p-btn-w--light .elementor-button:hover, .elementor-widget-button.p-btn-w--light .elementor-button:focus-visible { background: var(--p-mustard); border-color: var(--p-mustard); color: var(--p-coal); }
.p-card--navy :focus-visible, .p-band :focus-visible { outline-color: var(--p-mustard); }

/* Text link (heading widget with link) */
.p-link-w { width: auto !important; }
.p-link-w a { font-size: var(--p-text-sm); font-weight: 700; letter-spacing: .1em; text-transform: uppercase; text-decoration: none; border-bottom: 1.5px solid currentColor; padding-bottom: .2em; font-family: var(--p-font-body); }
.p-link-w a:hover { color: var(--p-moor); }

/* ---------- Elementor sections ---------- */
.e-con.p-wrap { width: 100%; max-width: var(--p-max); margin-inline: auto; padding-inline: var(--p-gutter); }
.e-con.p-section { padding-block: var(--p-section); }
.e-con.p-section--flush { padding-top: 0; }
.e-con.p-page-head { padding-block: clamp(2.5rem, 1.5rem + 3vw, 4.5rem) clamp(1.5rem, 1rem + 2vw, 3rem); }
.p-page-head .elementor-widget-heading h1.elementor-heading-title { font-size: clamp(2.4rem, 1.6rem + 3vw, 4rem); margin-bottom: .3em; }
.p-page-head .elementor-widget-text-editor { color: var(--p-ink-soft); max-width: 56ch; font-size: var(--p-text-lg); }
.e-con.p-page-head__row { display: flex; flex-direction: row; justify-content: space-between; align-items: flex-end; gap: 2rem; flex-wrap: wrap; }
.p-page-head__row > .e-con, .p-page-head__row > .elementor-widget { width: auto; }
.p-page-head__desc p { color: var(--p-ink-soft); max-width: 56ch; font-size: var(--p-text-lg); }
.p-page-head__icon { width: 72px; margin: 0 auto 1rem; }

/* Hero */
.e-con.p-hero__grid { display: grid; }
.p-hero .elementor-widget-heading h1.elementor-heading-title { margin-bottom: var(--p-s6); }
.p-hero .p-lede { font-size: var(--p-text-lg); color: var(--p-ink-soft); max-width: 38ch; }
.e-con.p-hero__actions { flex-direction: row; flex-wrap: wrap; gap: var(--p-s3); margin-top: var(--p-s8); }
.p-hero__actions > .elementor-widget { width: auto; }
.e-con > .elementor-widget-text-editor.p-lede { margin-bottom: 0; }

/* Ribbon */
.e-con.p-ribbon-wrap { display: block; }

/* Section heads */
.e-con.p-head { flex-direction: row; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: var(--p-s6); margin-bottom: var(--p-s10); }
.p-head > .e-con { width: auto; }
.p-head .elementor-widget-heading h2.elementor-heading-title { margin: 0; }
.p-head .elementor-widget-text-editor { margin: .6rem 0 0 !important; color: var(--p-ink-soft); max-width: 52ch; }
.p-head > .p-link-w { margin-bottom: .4rem; }

/* Collections */
.e-con.p-collections { display: grid; }
.e-con.p-collection { display: flex; flex-direction: column; justify-content: space-between; gap: var(--p-s10); padding: var(--p-s8); }
.e-con.p-collection--navy { background: var(--p-navy); color: var(--p-oat); }
.e-con.p-collection--moor { background: var(--p-moor); color: var(--p-oat); }
.e-con.p-collection--paper { background: var(--p-paper); color: var(--p-coal); }
.e-con.p-collection--navy:hover { background: #18304A; color: var(--p-oat); }
.e-con.p-collection--moor:hover { background: #43594A; color: var(--p-oat); }
.e-con.p-collection--paper:hover { background: var(--p-paper-deep); color: var(--p-coal); }
.p-collection .elementor-widget-heading h3.elementor-heading-title { color: inherit; margin: 0 0 .4rem; font-size: clamp(1.6rem, 1.2rem + 1.2vw, 2.2rem); }
.p-collection .elementor-widget-text-editor { margin-bottom: 0 !important; }
.p-collection .elementor-widget-text-editor p { margin: 0; font-size: var(--p-text-sm); max-width: 30ch; }
.p-collection > .p-collection__num { position: absolute; top: var(--p-s8); right: var(--p-s8); width: auto; font-family: var(--p-font-display); font-size: .9rem; letter-spacing: .14em; }
.p-collection__icon { width: 88px !important; }
.p-collection__icon img { width: 88px; height: 88px; }
.p-collection__cta { width: auto; }
.p-collection__cta .elementor-heading-title { display: inline-flex; align-items: center; gap: .5rem; margin-top: var(--p-s5); font-family: var(--p-font-body) !important; font-size: var(--p-text-xs) !important; font-weight: 700 !important; letter-spacing: .16em !important; text-transform: uppercase !important; }
.p-collection__cta .elementor-heading-title::after { content: "→"; transition: transform .3s var(--p-ease); }
.p-collection:hover .p-collection__cta .elementor-heading-title::after { transform: translateX(4px); }
.p-collection.e-con:focus-visible { outline: 3px solid var(--p-navy); outline-offset: 4px; }

/* Product grids from shortcodes */
.p-products-sc .woocommerce { width: 100%; }
.p-products-sc ul.products.columns-4 { --p-cols: 4; }
@media (max-width: 1024px) { .p-products-sc ul.products.columns-4 { --p-cols: 3; } .p-products-sc ul.products.columns-4 li.product:nth-child(4) { display: none; } }
@media (max-width: 720px) { .p-products-sc ul.products.columns-4 li.product:nth-child(4) { display: flex; } }

/* Story */
.e-con.p-story { display: grid; }
.e-con.p-story__mark { display: grid; place-items: center; position: relative; }
.p-story__mark > .p-story__stamp { width: 62%; }
.p-story__mark > .p-story__stamp img { width: 100%; }
.p-story__mark > .p-story__whip { position: absolute; width: 26%; right: -2%; bottom: 4%; }
.p-story__mark > .p-story__whip img { width: 100%; }
.p-story__mark .elementor-widget img { width: 100%; }
.e-con.p-story__mark { aspect-ratio: 1; background: var(--p-paper); border-radius: 50%; }
.p-quote .elementor-heading-title { margin: 0 0 var(--p-s6); font-family: var(--p-font-display) !important; font-size: var(--p-text-xl) !important; line-height: 1.2 !important; text-wrap: balance; color: var(--p-coal); }
.p-story .p-muted { color: var(--p-ink-soft); }
.p-story__copy > .elementor-widget-button { margin-top: var(--p-s2); }
.p-story .p-tone { margin: var(--p-s2) 0 var(--p-s4); }

/* Features */
.e-con.p-features { display: grid; }
.e-con.p-feature { display: block; }
.p-feature .elementor-widget-image img { width: 52px; height: 52px; margin-bottom: var(--p-s5); }
.p-feature .elementor-widget-heading h3.elementor-heading-title { font-size: 1.2rem; margin-bottom: .4rem; }
.p-feature .elementor-widget-text-editor p { font-size: var(--p-text-sm); color: var(--p-ink-soft); margin: 0; }

/* Gift band */
.e-con.p-band { display: grid; }
.e-con.p-band__copy { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; }
.p-band .elementor-widget-heading h2.elementor-heading-title { color: var(--p-oat); }
.p-band .elementor-widget-text-editor p { color: rgba(242, 235, 221, .78); max-width: 40ch; }
.p-band .p-eyebrow { color: var(--p-mustard); }
.e-con.p-band__media { display: grid; }
.p-band__media .elementor-widget-image, .p-band__media .elementor-widget-image .elementor-widget-container { height: 100%; }
.p-band__media img { width: 100%; height: 100% !important; object-fit: cover; aspect-ratio: 4/5; }

/* Newsletter */
.e-con.p-signup { display: block; text-align: center; max-width: none; }
.e-con.p-signup__inner { max-width: 620px; margin-inline: auto; align-items: center; }
.p-signup__icon img { width: 64px; margin: 0 auto var(--p-s5); }
.p-signup .elementor-widget-text-editor p { color: var(--p-ink-soft); }
.p-signup .p-small { display: block; margin-top: var(--p-s3); color: var(--p-ink-faint); font-size: var(--p-text-xs); }
.p-nl-form { display: flex; gap: .5rem; margin-top: var(--p-s2); }
.p-nl-form .input-text { flex: 1; }
.p-nl-msg { font-size: var(--p-text-sm); margin: var(--p-s4) 0 0; color: var(--p-moor); }
.p-nl-msg--error { color: var(--p-brick-text); }
@media (max-width: 520px) { .p-nl-form { flex-direction: column; } }

/* About */
.e-con.p-split { display: grid; }
.p-split > .e-con, .p-split > .elementor-widget { width: 100%; }
.p-prose h2 { font-size: var(--p-text-xl); margin-top: 1.6em; }
.p-prose h2:first-child { margin-top: 0; }
.e-con.p-card { padding: clamp(1.5rem, 3vw, 2.5rem); }
.e-con.p-card--navy { background: var(--p-navy); color: var(--p-oat); }
.p-card--navy .elementor-widget-heading .elementor-heading-title { color: var(--p-oat); }
.p-card--navy .elementor-widget-text-editor p { color: rgba(242, 235, 221, .82); }
.p-card__icon img { width: 64px; margin-bottom: 1.25rem; }
.p-card__title h2.elementor-heading-title { font-size: 1.3rem !important; }
.p-card--navy > .elementor-widget-button { margin-top: .5rem; }
.e-con.p-sticky { position: sticky; top: 110px; }
.e-con.p-roland { display: grid; }
.e-con.p-roland__art { display: grid; place-items: center; }
.p-roland__art > .elementor-widget-image { width: 68%; }
.p-roland__art img { width: 100%; }
.p-roland .elementor-widget-heading h2.elementor-heading-title { font-size: var(--p-text-xl); }
.p-roland .elementor-widget-text-editor strong { color: var(--p-coal); }
.p-roland .p-roland__facts strong { color: var(--p-moor); }
.e-con.p-values { display: grid; }
.p-value__num { width: auto; }
.p-value__num .elementor-heading-title { font-family: var(--p-font-display) !important; font-size: .95rem !important; letter-spacing: .12em !important; color: var(--p-moor); }
.p-value .elementor-widget-heading h3.elementor-heading-title { font-size: 1.35rem; margin: .5rem 0; }
.p-value .elementor-widget-text-editor p { font-size: var(--p-text-sm); color: var(--p-ink-soft); margin: 0; }

/* Contact */
.p-contact .p-card { scroll-margin-top: 110px; }
.e-con.p-contact__side { gap: 2rem; }
.p-form .p-optional { color: var(--p-ink-soft); text-transform: none; letter-spacing: 0; font-weight: 400; }
.p-form .form-row { margin: 0 0 var(--p-s5); }
.p-form-error { margin-bottom: var(--p-s6) !important; }

/* FAQ + size guide */
.e-con.p-faq-layout { display: grid; padding-bottom: 0; }
.p-faq-aside { position: sticky; top: 110px; }
.p-faq-aside .p-faq-nav { position: static; }
.e-con.p-sizeguide { display: block; }
.e-con.p-measure { display: grid; margin-bottom: 3rem; }
.p-measure__img img { width: 200px; }
.p-measure .elementor-widget-text-editor h2 { font-size: 1.35rem; }
.p-size-block { margin-bottom: 3rem; }
.p-size-block h2 { font-size: var(--p-text-xl); }
@media (max-width: 860px) { .p-faq-aside { position: static; } }

/* ---------- WooCommerce: real markup ---------- */
.p-woo { padding-bottom: 0; }
.p-page-head .woocommerce-breadcrumb { margin-bottom: var(--p-s5); }
.p-single { padding-top: clamp(1.5rem, 3vw, 3rem); }
.p-single > .woocommerce-breadcrumb { margin-bottom: var(--p-s5); }
.p-single .woocommerce-notices-wrapper:empty { display: none; }
.woocommerce .p-single div.product { margin-top: 1.25rem; }
.woocommerce div.product div.images, .woocommerce div.product div.images.woocommerce-product-gallery { position: sticky; top: 100px; }
.woocommerce div.product div.images .woocommerce-product-gallery__wrapper { border-radius: var(--p-radius-lg); overflow: hidden; background: var(--p-paper); }
.woocommerce div.product div.images .flex-control-thumbs { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--p-s3); margin-top: var(--p-s3); }
.woocommerce div.product div.images .flex-control-thumbs li { width: auto !important; float: none !important; margin: 0 !important; }
.woocommerce div.product div.images .flex-control-thumbs li img { aspect-ratio: 4/5; object-fit: cover; }
.woocommerce div.product div.images .woocommerce-product-gallery__trigger { background: var(--p-oat); border: 1px solid var(--p-line); width: 40px; height: 40px; top: 1rem; right: 1rem; }
@media (max-width: 900px) { .woocommerce div.product div.images, .woocommerce div.product div.images.woocommerce-product-gallery { position: relative; top: auto; } }
.woocommerce div.product .summary .p-eyebrow { display: inline-flex; }
.woocommerce div.product .summary .woocommerce-product-rating { margin-bottom: var(--p-s4); }
.woocommerce div.product .summary .price .woocommerce-price-suffix { font-family: var(--p-font-body); font-size: var(--p-text-xs); color: var(--p-ink-soft); letter-spacing: .06em; margin-left: .5rem; }
.woocommerce div.product p.price del { opacity: .55; font-size: .8em; }
.woocommerce div.product p.price ins { text-decoration: none; color: var(--p-brick-text); }
.woocommerce div.product form.cart table.variations tr { display: block; }
.woocommerce div.product form.cart table.variations th.label { display: flex; justify-content: space-between; align-items: baseline; }
.woocommerce div.product form.cart table.variations th.label label { font-size: var(--p-text-xs); letter-spacing: .12em; }
.p-var-row th.label { position: relative; }
.p-var-current { font-weight: 400; letter-spacing: .04em; text-transform: none; color: var(--p-ink-soft); font-size: var(--p-text-sm); }
.p-var-guide { font-size: var(--p-text-sm); font-weight: 500; letter-spacing: .06em; }
.p-swatch { background: var(--sw, #ccc); }
.p-swatch[aria-pressed="true"] { box-shadow: 0 0 0 2px var(--p-coal); }
.p-size[aria-pressed="true"] { background: var(--p-coal); border-color: var(--p-coal); color: var(--p-oat); }
.p-swatch.is-unavailable, .p-size.is-unavailable { opacity: .35; cursor: not-allowed; text-decoration: line-through; }
.woocommerce div.product form.cart .reset_variations { display: inline-block; margin-top: .6rem; }
.woocommerce div.product form.cart .single_variation_wrap .woocommerce-variation-price { margin-bottom: var(--p-s4); }
.woocommerce div.product form.cart .single_variation_wrap .woocommerce-variation-price .price { font-size: var(--p-text-lg) !important; }
.woocommerce div.product form.cart .woocommerce-variation-add-to-cart { margin-top: var(--p-s4); }
.woocommerce div.product form.cart .button.disabled { opacity: .55; }
.woocommerce div.product .summary .p-accordion { margin-top: var(--p-s4); }
.woocommerce div.product .summary .product_meta { margin-top: 1.25rem; }
.woocommerce div.product .summary .product_meta a { color: var(--p-ink-soft); }
.woocommerce .quantity .qty { width: 3.2rem; }
.p-qty-ready { flex: none; }
.p-reviews { grid-column: 1 / -1; padding-top: var(--p-section); }
.woocommerce div.product section.related, .woocommerce div.product section.upsells { grid-column: 1 / -1; padding-top: var(--p-section); }
.woocommerce div.product section.related > h2, .woocommerce div.product section.upsells > h2 { margin-bottom: var(--p-s8); }
.woocommerce div.product section.related > h2::before { content: "You might also like"; display: flex; align-items: center; gap: .6em; font-family: var(--p-font-body); font-size: var(--p-text-xs); font-weight: 500; letter-spacing: .18em; text-transform: uppercase; color: var(--p-moor); margin-bottom: var(--p-s4); }
.woocommerce div.product section.related ul.products { --p-cols: 4; }
@media (max-width: 1024px) { .woocommerce div.product section.related ul.products { --p-cols: 2; } }

/* Shop layout (real WooCommerce) */
.woocommerce .p-shop-main .woocommerce-notices-wrapper:empty { display: none; }
.p-shop-main ul.products { --p-cols: 3; }
@media (max-width: 720px) { .p-shop-main ul.products { --p-cols: 2; } }
.woocommerce ul.products li.product .woocommerce-loop-product__link { position: relative; }
.woocommerce ul.products li.product .p-thumb-wrap img { margin: 0 !important; }
.woocommerce ul.products li.product .star-rating { margin: 0 0 .4rem; font-size: .8em; }
.woocommerce ul.products li.product .button.loading { opacity: .6; }
.woocommerce ul.products li.product .button.added::after { margin-left: .4em; }
.p-filter-form .p-shop-sidebar__foot { display: none; }
.p-filter-form:not(.is-enhanced) .p-shop-sidebar__foot { display: flex; }
@media (max-width: 960px) { .p-filter-form .p-shop-sidebar__foot { display: flex; } }
.p-filter-form .p-shop-sidebar__foot .p-btn { flex: 1; }
.p-shop-sidebar[aria-busy="true"] { opacity: .6; pointer-events: none; }
.p-active-filters a { text-decoration: none; }
.p-filters-toggle__n:empty { display: none; }
.woocommerce-result-count { flex: 1; }
.woocommerce .woocommerce-ordering select { width: auto; }

/* Basket (classic [woocommerce_cart]) */
.p-page__body--wc { padding-bottom: 0; }
.woocommerce-cart .p-page__body .woocommerce { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(300px, 1fr); gap: 0 clamp(2rem, 4vw, 4rem); align-items: start; }
.woocommerce-cart .p-page__body .woocommerce > .woocommerce-notices-wrapper, .woocommerce-cart .p-page__body .woocommerce > .p-empty, .woocommerce-cart .p-page__body .woocommerce > .return-to-shop, .woocommerce-cart .p-page__body .woocommerce > .cart-empty { grid-column: 1 / -1; }
.woocommerce-cart .p-page__body .woocommerce > .woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-cart .cart-collaterals { width: 100%; position: sticky; top: 100px; }
.woocommerce-cart .cart-collaterals .cart_totals { float: none; width: 100%; }
.woocommerce table.shop_table td.product-name dl.variation { margin: .3rem 0 0; font-size: var(--p-text-xs); color: var(--p-ink-soft); }
.woocommerce table.shop_table td.product-name dl.variation dt, .woocommerce table.shop_table td.product-name dl.variation dd { display: inline; margin: 0; }
.woocommerce table.shop_table td.product-name dl.variation dd p { display: inline; margin: 0; }
.woocommerce table.shop_table td.product-name dl.variation dd::after { content: ""; display: block; }
.woocommerce table.cart td.actions .coupon label { display: none; }
.woocommerce table.cart td.actions .button[name="update_cart"] { min-height: 3rem; }
.woocommerce .cart_totals table.shop_table { margin-bottom: 0; }
.woocommerce .cart_totals table.shop_table th { width: 40%; border-bottom: 1px solid var(--p-line); }
.woocommerce .cart_totals .woocommerce-shipping-methods { list-style: none; margin: 0; padding: 0; }
.woocommerce .cart_totals .woocommerce-shipping-methods li { margin: 0 0 .4rem; }
.woocommerce .cart_totals .woocommerce-shipping-methods label { display: inline; text-transform: none; letter-spacing: 0; font-weight: 400; font-size: var(--p-text-sm); }
.woocommerce .cart_totals .woocommerce-shipping-destination, .woocommerce .cart_totals .shipping-calculator-button { font-size: var(--p-text-xs); color: var(--p-ink-soft); }
.p-secure-note { color: var(--p-ink-soft); font-size: .8rem; margin: 1rem 0 0; text-align: center; }
.p-empty { text-align: center; padding: var(--p-s12) 0; }
.p-empty img { margin: 0 auto var(--p-s4); }
.return-to-shop { text-align: center; }
@media (max-width: 900px) { .woocommerce-cart .p-page__body .woocommerce { grid-template-columns: minmax(0, 1fr); } .woocommerce-cart .cart-collaterals { position: static; } }

/* Checkout (classic [woocommerce_checkout]) */
.woocommerce-checkout .p-page__body form.checkout { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(320px, 1fr); gap: 0 clamp(2rem, 4vw, 4rem); align-items: start; }
.woocommerce-checkout .p-page__body form.checkout > .woocommerce-NoticeGroup, .woocommerce-checkout .p-page__body form.checkout > .wc-block-components-notice-banner { grid-column: 1 / -1; }
.woocommerce-checkout form.checkout #customer_details { grid-column: 1; grid-row: 1 / span 3; }
.woocommerce-checkout form.checkout #order_review_heading { grid-column: 2; grid-row: 1; margin: 0; padding: clamp(1.25rem, 3vw, 2rem) clamp(1.25rem, 3vw, 2rem) 0; background: var(--p-paper); border-radius: var(--p-radius-lg) var(--p-radius-lg) 0 0; }
.woocommerce-checkout form.checkout #order_review { grid-column: 2; grid-row: 2; border-radius: 0 0 var(--p-radius-lg) var(--p-radius-lg); padding-top: var(--p-s4); }
.woocommerce-checkout form.checkout .col2-set { display: block; }
.woocommerce-checkout form.checkout .col2-set .col-2 { margin-top: var(--p-s8); }
.woocommerce-checkout .woocommerce-billing-fields h3, .woocommerce-checkout .woocommerce-shipping-fields h3, .woocommerce-checkout .woocommerce-additional-fields h3 { font-size: var(--p-text-lg); }
.woocommerce form .form-row-first, .woocommerce form .form-row-last { width: 48.5%; }
.woocommerce form .form-row .woocommerce-input-wrapper { display: block; }
.woocommerce form .form-row label.checkbox, .woocommerce-form__label-for-checkbox { display: flex !important; align-items: flex-start; gap: .6rem; text-transform: none !important; letter-spacing: 0 !important; font-weight: 400 !important; font-size: var(--p-text-sm) !important; }
.woocommerce-form__label-for-checkbox input { width: 18px; height: 18px; accent-color: var(--p-navy); margin-top: .15rem !important; }
.woocommerce-checkout-review-order-table th, .woocommerce-checkout-review-order-table td { font-size: var(--p-text-sm); }
.woocommerce-checkout-review-order-table .product-name { text-transform: none; letter-spacing: 0; }
.woocommerce-checkout #payment ul.payment_methods li { list-style: none; margin-bottom: .5rem; }
.woocommerce-checkout #payment ul.payment_methods li label { display: inline; text-transform: none; letter-spacing: 0; font-size: var(--p-text-sm); }
.woocommerce-checkout #payment .woocommerce-privacy-policy-text p { font-size: .8rem; color: var(--p-ink-soft); }
.select2-container .select2-selection--single { height: 3rem; }
.select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 1.4; padding: 0; color: var(--p-coal); }
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 3rem; right: .5rem; }
.woocommerce-form-coupon-toggle .woocommerce-info, .woocommerce-form-login-toggle .woocommerce-info { margin-bottom: var(--p-s5) !important; }
.woocommerce form.checkout_coupon, .woocommerce form.woocommerce-form-login { border: 1px solid var(--p-line) !important; border-radius: var(--p-radius-lg) !important; padding: var(--p-s6) !important; margin: 0 0 var(--p-s8) !important; }
@media (max-width: 900px) {
  .woocommerce-checkout .p-page__body form.checkout { grid-template-columns: minmax(0, 1fr); }
  .woocommerce-checkout form.checkout #customer_details, .woocommerce-checkout form.checkout #order_review_heading, .woocommerce-checkout form.checkout #order_review { grid-column: 1; grid-row: auto; }
  .woocommerce-checkout form.checkout #order_review_heading { margin-top: var(--p-s8); }
  .woocommerce form .form-row-first, .woocommerce form .form-row-last { width: 100%; float: none; }
}
.woocommerce-order-received .woocommerce-order { max-width: 860px; }
.woocommerce ul.order_details { padding: var(--p-s6); background: var(--p-paper); border-radius: var(--p-radius-lg); list-style: none; display: flex; flex-wrap: wrap; gap: var(--p-s6); }
.woocommerce ul.order_details li { border: 0; margin: 0; padding: 0; font-size: var(--p-text-xs); letter-spacing: .1em; text-transform: uppercase; }

/* My account */
.woocommerce-account .p-page__body .woocommerce { display: block; }
.woocommerce-account.logged-in .p-page__body .woocommerce { display: grid; grid-template-columns: 240px 1fr; gap: clamp(2rem, 5vw, 4rem); }
.woocommerce-account .woocommerce-MyAccount-navigation, .woocommerce-account .woocommerce-MyAccount-content { width: auto; float: none; }
.woocommerce-account #customer_login { max-width: 1040px; margin-inline: auto; }
.woocommerce-account #customer_login h2 { font-size: var(--p-text-xl); }
.woocommerce-account #customer_login .u-column2 { background: var(--p-navy); color: var(--p-oat); border-radius: var(--p-radius-lg); padding: clamp(1.5rem, 3vw, 2.5rem); }
.woocommerce-account #customer_login .u-column2 h2, .woocommerce-account #customer_login .u-column2 label, .woocommerce-account #customer_login .u-column2 p { color: var(--p-oat); }
.woocommerce-account #customer_login .u-column2 form.register { background: transparent; padding: 0 !important; }
.woocommerce-account #customer_login .u-column2 a { color: var(--p-oat); }
.woocommerce-account #customer_login .u-column2 a:hover { color: var(--p-mustard); }
.woocommerce-account #customer_login .u-column2 .button { background: var(--p-oat); border-color: var(--p-oat); color: var(--p-navy); }
.woocommerce-account #customer_login .u-column2 .button:hover { background: var(--p-mustard); border-color: var(--p-mustard); color: var(--p-coal); }
.woocommerce-account #customer_login .u-column2 :focus-visible { outline-color: var(--p-mustard); }
.woocommerce-account #customer_login .u-column1 { padding: 0; }
.woocommerce-account #customer_login .u-column1 form.login { margin: 0 !important; }
.woocommerce-account #customer_login .u-column2 { display: flex; flex-direction: column; }
.woocommerce form.login .form-row:last-of-type, .woocommerce form.register .form-row:last-of-type { margin-bottom: 0; }
.woocommerce form .woocommerce-form-login__rememberme { margin: 0 0 1rem !important; }
.woocommerce form.login .button, .woocommerce form.register .button { width: 100%; }
.woocommerce-account:not(.logged-in) .p-page-head { text-align: center; }
.woocommerce-account:not(.logged-in) .p-page-head p { margin-inline: auto; }
@media (max-width: 760px) { .woocommerce-account.logged-in .p-page__body .woocommerce { grid-template-columns: 1fr; } }
.woocommerce-account .woocommerce-MyAccount-content table.shop_table { font-size: var(--p-text-sm); }
.woocommerce-password-strength { font-size: var(--p-text-xs); }

/* Generic page content (non-Elementor pages: privacy policy, terms etc.) */
.p-page__body.p-prose { max-width: 72ch; padding-bottom: 0; }
.p-page__body.p-prose ul, .p-page__body.p-prose ol { color: var(--p-ink-soft); }

/* WooCommerce block notices (if a block slips in) */
.wc-block-components-notice-banner { border-radius: var(--p-radius) !important; }

/* Hello Elementor resets we don't want */
.site-main, .page-content { max-width: none; }

/* Widget wrappers share class names with preview elements: neutralise wrapper-level decoration */
.elementor-widget.p-collection__cta { display: block; margin-top: 0; }
.elementor-widget.p-collection__cta::after { content: none; }
.woocommerce div.product form.cart .variations select.p-visually-hidden { width: 1px !important; min-width: 0 !important; height: 1px; padding: 0; border: 0; }
.woocommerce div.product form.cart table.variations, .woocommerce div.product form.cart table.variations tr, .woocommerce div.product form.cart table.variations td, .woocommerce div.product form.cart table.variations th { background: transparent !important; }
.woocommerce div.product form.cart .button.alt, .woocommerce div.product form.cart .single_add_to_cart_button, .woocommerce #respond input#submit.alt, .woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt { background: var(--p-navy) !important; border-color: var(--p-navy) !important; color: var(--p-oat) !important; }
.woocommerce div.product form.cart .single_add_to_cart_button:hover, .woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover { background: var(--p-moor) !important; border-color: var(--p-moor) !important; }
.woocommerce div.product form.cart .single_add_to_cart_button.disabled, .woocommerce button.button.alt.disabled { opacity: .6; cursor: not-allowed; }

/* Kill Hello Elementor's zebra striping on tables */
table tbody > tr:nth-child(odd) > td, table tbody > tr:nth-child(odd) > th, table tbody tr:hover > td, table tbody tr:hover > th { background-color: transparent; }
.p-table tbody tr:hover > td, .p-table tbody tr:hover > th { background-color: rgba(212, 165, 45, .08); }
table td, table th { border: 0; }
.woocommerce-form-coupon-toggle .woocommerce-info, .woocommerce-form-login-toggle .woocommerce-info { justify-content: flex-start; }
.woocommerce-checkout-review-order-table tfoot th { text-align: left; }
.woocommerce-checkout-review-order-table td.product-total, .woocommerce-checkout-review-order-table th.product-total, .woocommerce-checkout-review-order-table tfoot td { text-align: right; }
.woocommerce-checkout-review-order-table tfoot th, .woocommerce-checkout-review-order-table tfoot td { padding: .75rem 0 !important; font-size: var(--p-text-sm) !important; letter-spacing: 0 !important; text-transform: none !important; color: var(--p-coal) !important; font-weight: 400 !important; }
.woocommerce-checkout-review-order-table td.product-name, .woocommerce-checkout-review-order-table td.product-total, .woocommerce-checkout-review-order-table thead th { padding-inline: 0 !important; }
.woocommerce .cart_totals table.shop_table td { text-align: right; }
.woocommerce-shipping-totals td ul#shipping_method { text-align: left; }
.woocommerce ul#shipping_method li { display: flex; align-items: center; gap: .5rem; margin-bottom: .4rem; }
.woocommerce ul#shipping_method li input { margin: 0; accent-color: var(--p-navy); }
@media (max-width: 720px) {
  .woocommerce table.cart td.actions .coupon { display: flex; }
  .woocommerce table.cart td.actions .coupon .input-text { min-width: 0; flex: 1 1 auto; width: 100% !important; }
  .woocommerce table.cart td.actions .coupon .button { flex: none; white-space: nowrap; padding-inline: 1rem; }
}

/* Neutralise Hello Elementor's generic button reset (pink hover, padding) */
[type=button], [type=submit], button { border-radius: var(--p-radius); }
[type=button]:focus:not(:focus-visible), [type=submit]:focus:not(:focus-visible), button:focus:not(:focus-visible) { outline: none; }
.p-icon-btn, .p-icon-btn:hover, .p-icon-btn:focus { padding: 0; border: 0; border-radius: 50%; }
.p-icon-btn:hover, .p-icon-btn:focus { color: var(--p-coal); }
.p-icon-btn:not(:hover):focus { background: transparent; }
.p-swatch, .p-swatch:hover, .p-swatch:focus { padding: 0; }
.p-swatch:hover, .p-swatch:focus { background: var(--sw, #ccc); }
.p-size:hover, .p-size:focus { background: transparent; color: var(--p-coal); }
.p-size[aria-pressed="true"]:hover, .p-size[aria-pressed="true"]:focus { background: var(--p-coal); color: var(--p-oat); }
.p-qty button, .p-qty button:hover, .p-qty button:focus { border: 0; border-radius: 0; padding: 0; color: var(--p-coal); }
.p-qty button:focus:not(:hover) { background: transparent; }
.p-unit-toggle button:hover, .p-unit-toggle button:focus { background: transparent; color: var(--p-coal); }
.p-unit-toggle button.is-active, .p-unit-toggle button.is-active:hover, .p-unit-toggle button.is-active:focus { background: var(--p-coal); color: var(--p-oat); }
.p-ribbon__toggle, .p-ribbon__toggle:hover, .p-ribbon__toggle:focus { padding: 0; }
/* WooCommerce clearfix pseudo-elements would become grid items */
.woocommerce .col2-set::before, .woocommerce .col2-set::after, .woocommerce-page .col2-set::before, .woocommerce-page .col2-set::after,
.woocommerce form.checkout::before, .woocommerce form.checkout::after, .woocommerce-cart .p-page__body .woocommerce::before, .woocommerce-cart .p-page__body .woocommerce::after,
.woocommerce div.product::before, .woocommerce div.product::after, .woocommerce .cart-collaterals::before, .woocommerce .cart-collaterals::after { content: none !important; display: none !important; }
.woocommerce-account #customer_login h2 { margin-top: 0; }
.woocommerce-account #customer_login .u-column1 { background: var(--p-paper); border-radius: var(--p-radius-lg); padding: clamp(1.5rem, 3vw, 2.5rem); }
.woocommerce-account #customer_login .u-column1 form.login { background: transparent; padding: 0 !important; }
.woocommerce-account #customer_login form.login, .woocommerce-account #customer_login form.register { border: 0 !important; }
