/* WooCommerce ships rules at equal or higher specificity than the theme: selectors below mirror theirs and load after them. */
:root{--ac-grad:linear-gradient(110deg,#3658f7,#0fc5b2) border-box;--ac-error:#ff7b7b;--ac-warning:#f6a51b}
body.light{--ac-error:#c0392b;--ac-warning:#9a6200}
.woocommerce,.woocommerce-page{--wc-form-border-color:var(--line);--wc-form-color-background:var(--panel);--wc-form-color-text:var(--text);--wc-form-border-radius:9px;--wc-separator-color:var(--line)}
.woocommerce form{display:block}
.woocommerce form .form-row{margin-bottom:14px}
.woocommerce :is(input[type=checkbox],input[type=radio]){width:auto;padding:0;accent-color:#12baa9}
.woocommerce form.login .form-row:has(.woocommerce-form-login__submit){display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px}
.woocommerce form.login .woocommerce-form-login__submit{order:-1;float:none;margin:0}
.woocommerce form.login .woocommerce-form-login__rememberme{display:inline-flex;align-items:center;gap:8px;margin:0}
.woocommerce form.login .woocommerce-LostPassword{margin:16px 0 0;font-size:14px}
/* Notices are focused by script so screen readers announce them; they are not keyboard targets. */
.woocommerce-message:focus,.woocommerce-info:focus,.woocommerce-error:focus{outline:none}

/* Product visual: stands in for a missing product photo, in the style of the home category icons. */
.ac-product-visual{display:grid;place-items:center;width:100%;aspect-ratio:4/3;color:var(--cyan);background:radial-gradient(circle at 50% 50%,color-mix(in srgb,var(--cyan) 16%,transparent),transparent 60%),linear-gradient(130deg,var(--panel),var(--bg))}
.ac-product-visual svg{width:44px;height:44px;filter:drop-shadow(0 0 10px currentColor)}
.ac-product-visual.is-large{aspect-ratio:1;border:1px solid var(--line);border-radius:20px}
.ac-product-visual.is-large svg{width:96px;height:96px;stroke-width:1.2;filter:drop-shadow(0 0 22px currentColor)}
.ac-product-card .ac-product-image .ac-product-visual{height:190px;aspect-ratio:auto;border-radius:16px 16px 0 0}

/* Buttons */
.woocommerce :is(a.button,button.button,input.button,a.button.alt,button.button.alt,input.button.alt),.woocommerce #respond input#submit{display:inline-flex;align-items:center;justify-content:center;gap:10px;width:auto;min-height:42px;padding:11px 20px;border:1px solid transparent;border-radius:12px;background:var(--ac-grad);color:#fff;font-size:12px;font-weight:600;line-height:1.3;letter-spacing:.35px;text-transform:uppercase;text-decoration:none;transition:transform .2s,filter .2s}
.woocommerce :is(a.button,button.button,input.button,a.button.alt,button.button.alt,input.button.alt):hover,.woocommerce #respond input#submit:hover{background:var(--ac-grad);color:#fff;filter:brightness(1.15);transform:translateY(-2px)}
.woocommerce button.button:disabled[disabled],.woocommerce button.button.alt:disabled[disabled],.woocommerce button.button.alt.disabled{padding:11px 20px;background:var(--ac-grad);color:#fff;opacity:.45}

/* Prices, badges, ratings */
.woocommerce div.product p.price,.woocommerce div.product span.price,.woocommerce ul.products li.product .price{color:var(--text)}
.woocommerce span.onsale,.woocommerce ul.products li.product .onsale{top:12px;left:12px;right:auto;margin:0;min-width:0;min-height:0;padding:5px 12px;border-radius:999px;background:var(--ac-grad);color:#fff;font-size:11px;font-weight:700;line-height:1.4;letter-spacing:.6px;text-transform:uppercase}
.woocommerce .star-rating::before{color:var(--line)}
.woocommerce .star-rating span::before,.woocommerce p.stars a{color:var(--cyan)}

/* Shop header and toolbar */
.ac-shop-heading{margin-bottom:24px}
.woocommerce .ac-shop-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 20px;margin-bottom:24px}
.woocommerce .ac-shop-toolbar .woocommerce-result-count,.woocommerce .ac-shop-toolbar .woocommerce-ordering{float:none;margin:0}
.woocommerce .ac-shop-toolbar .woocommerce-result-count{color:var(--muted);font-size:14px}
.woocommerce .ac-shop-toolbar .woocommerce-ordering select{width:auto;min-width:220px;padding:10px 12px}
.woocommerce .term-description{color:var(--muted)}

/* Product grid: same card as the home Shop section */
.woocommerce ul.products{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:0 0 32px;padding:0}
.woocommerce ul.products::before,.woocommerce ul.products::after{display:none}
.woocommerce ul.products li.product,.woocommerce ul.products[class*=columns-] li.product{display:flex;flex-direction:column;float:none;clear:none;width:auto;min-width:0;margin:0;padding:23px;background:var(--panel);border:1px solid var(--line);border-radius:16px;transition:transform .25s ease,border-color .25s ease}
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link{display:flex;flex-direction:column;flex:1;color:inherit}
.woocommerce ul.products li.product a img,.woocommerce ul.products li.product .ac-product-visual{width:calc(100% + 46px);max-width:none;height:190px;margin:-23px -23px 18px;object-fit:cover;border-radius:15px 15px 0 0;box-shadow:none}
.woocommerce ul.products li.product a img{display:block}
.woocommerce ul.products li.product .tag{color:var(--cyan);font-size:11px;text-transform:uppercase;letter-spacing:1.1px}
.woocommerce ul.products li.product .woocommerce-loop-product__title{margin:8px 0;padding:0;color:var(--text);font-size:20px;line-height:1.3;overflow-wrap:break-word}
.woocommerce ul.products li.product .ac-product-excerpt{margin:0;color:var(--muted);font-size:14px}
.woocommerce ul.products li.product .ac-product-actions{flex-wrap:wrap}
.woocommerce ul.products li.product .price{margin:0;font-size:16px;font-weight:700}
.woocommerce ul.products li.product .price del{color:var(--muted);font-weight:400;opacity:1}
.woocommerce ul.products li.product .price ins{text-decoration:none}
.woocommerce ul.products li.product .button{margin:0}
.woocommerce ul.products li.product .added_to_cart{flex-basis:100%;padding:0;color:var(--cyan);font-size:14px;font-weight:600}
@media(hover:hover) and (pointer:fine){
  .woocommerce ul.products li.product:hover{transform:translateY(-4px);border-color:var(--cyan)}
  .woocommerce ul.products li.product a:hover .woocommerce-loop-product__title{color:var(--cyan)}
}

/* Pagination: the theme's .page-numbers styles the links, WooCommerce boxes the list */
.woocommerce nav.woocommerce-pagination ul,.woocommerce nav.woocommerce-pagination ul li{border:0;margin:0;padding:0}
.woocommerce nav.woocommerce-pagination ul li :is(a,span){min-width:40px;margin:4px;padding:8px 13px;line-height:1.5}
.woocommerce nav.woocommerce-pagination ul li span.current,.woocommerce nav.woocommerce-pagination ul li a:hover,.woocommerce nav.woocommerce-pagination ul li a:focus{background:transparent;border-color:var(--cyan);color:var(--cyan)}

/* Single product */
.woocommerce .ac-back-link{margin-bottom:20px}
.woocommerce .ac-back-link:hover{color:var(--text)}
.woocommerce div.product .ac-product-hero{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:center;margin-bottom:48px;padding:44px;background:linear-gradient(130deg,#13223688,#0a121c);border:1px solid var(--line);border-radius:24px}
body.light.woocommerce div.product .ac-product-hero{background:#fff}
.woocommerce div.product .ac-product-hero div.images,.woocommerce div.product .ac-product-hero div.summary{float:none;width:auto;margin:0}
.woocommerce div.product .ac-product-hero>span.onsale{top:60px;left:60px}
.woocommerce div.product div.images img{border-radius:20px}
.woocommerce div.product div.images .woocommerce-product-gallery__image--placeholder{border:0}
.woocommerce div.product .product_title{margin:16px 0 12px;font-size:clamp(30px,3vw,44px);line-height:1.1;letter-spacing:-1px}
.woocommerce div.product .summary p.price{margin:0 0 16px;font-size:28px;font-weight:700;background:linear-gradient(110deg,#21a4e7,#13c9a6);-webkit-background-clip:text;background-clip:text;color:transparent}
body.light.woocommerce div.product .summary p.price{background:none;color:var(--cyan)}
.woocommerce div.product .summary .eyebrow{background:color-mix(in srgb,var(--cyan) 10%,transparent);border-color:color-mix(in srgb,var(--cyan) 25%,transparent);color:var(--cyan)}
.woocommerce div.product .woocommerce-product-details__short-description{color:var(--muted);font-size:17px;line-height:1.55}
.woocommerce div.product .woocommerce-product-details__short-description p{margin:0}
.woocommerce div.product form.cart{display:flex;flex-wrap:wrap;align-items:stretch;gap:12px;margin:24px 0 0}
.woocommerce div.product form.cart div.quantity{float:none;margin:0}
.woocommerce div.product form.cart .quantity .qty{width:76px;height:100%;min-height:48px;padding:10px;background:var(--bg);border-radius:12px;text-align:center}
.woocommerce div.product form.cart .button{float:none;min-height:48px;padding:12px 28px;border-radius:19px;font-size:13px}
.woocommerce div.product .summary .check-list{margin:24px 0 0}
.woocommerce div.product .product_meta{margin-top:20px;padding-top:16px;border-top:1px solid var(--line);color:var(--muted);font-size:14px}
.woocommerce div.product .product_meta>span{display:block}
.woocommerce div.product .product_meta a{color:var(--cyan)}

/* Tabs: pills like the Home Assistant tags, content in a panel */
.woocommerce div.product .woocommerce-tabs ul.tabs{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 20px;padding:0;overflow:visible}
.woocommerce div.product .woocommerce-tabs ul.tabs::before,.woocommerce div.product .woocommerce-tabs ul.tabs li::before,.woocommerce div.product .woocommerce-tabs ul.tabs li::after{display:none}
.woocommerce div.product .woocommerce-tabs ul.tabs li{margin:0;padding:0;background:transparent;border:1px solid var(--line);border-radius:18px}
.woocommerce div.product .woocommerce-tabs ul.tabs li a{padding:8px 16px;color:var(--muted);font-size:13px;font-weight:600}
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover{color:var(--text)}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active{background:color-mix(in srgb,var(--cyan) 10%,transparent);border-color:var(--cyan)}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a{color:var(--cyan)}
.woocommerce div.product .woocommerce-tabs .panel{margin:0 0 48px;padding:32px;background:var(--panel);border:1px solid var(--line);border-radius:20px}
.woocommerce div.product .woocommerce-tabs .panel h2{margin:0 0 12px;font-size:22px}
.woocommerce #reviews :is(.woocommerce-noreviews,.comment-notes){color:var(--muted)}
.woocommerce #review_form #respond .comment-reply-title{display:block;margin:20px 0 8px;font-size:18px;font-weight:700}
.woocommerce #review_form #respond :is(input:not([type=checkbox]):not([type=submit]),textarea){background:var(--bg)}
.woocommerce #review_form #respond .comment-form-cookies-consent{display:flex;align-items:center;gap:10px}
.woocommerce #review_form #respond .comment-form-cookies-consent label{margin:0}
.woocommerce #review_form #respond input[type=checkbox]{width:18px;height:18px;margin:0;accent-color:#12baa9}
.woocommerce #review_form #respond .form-submit{margin:16px 0 0}
.woocommerce div.product :is(.related,.upsells)>h2{margin:0 0 24px;font-size:30px;letter-spacing:-.8px}

/* Classic notices */
.woocommerce-message,.woocommerce-info,.woocommerce-error{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;margin:0 0 24px;padding:16px 20px 16px 52px;background:var(--panel);color:var(--text);border:1px solid var(--line);border-left:3px solid var(--cyan);border-radius:14px}
.woocommerce-message::after,.woocommerce-info::after,.woocommerce-error::after{display:none}
.woocommerce-message::before,.woocommerce-info::before,.woocommerce-error::before{top:50%;left:20px;transform:translateY(-50%);color:var(--cyan)}
.woocommerce-error{flex-direction:column;align-items:flex-start;border-left-color:var(--ac-error)}
.woocommerce-error::before{color:var(--ac-error)}
.woocommerce :is(.woocommerce-message,.woocommerce-info) a.button,.woocommerce :is(.woocommerce-message,.woocommerce-info) a.button:hover{order:2;float:none;margin-left:auto;background:transparent;border-color:var(--line);color:var(--text)}
.woocommerce :is(.woocommerce-message,.woocommerce-info) a.button:hover{border-color:var(--cyan);color:var(--cyan)}

/* Cart and checkout (WooCommerce blocks) */
.woocommerce-cart .reading-panel,.woocommerce-checkout .reading-panel,.woocommerce-account .reading-panel{max-width:none}
.woocommerce-cart .entry-body,.woocommerce-checkout .entry-body{font-size:16px;line-height:1.55}
.site-content .wc-block-components-form{display:block}
.site-content .wc-block-components-form label{margin-top:0}
.site-content .wc-block-cart .wc-block-cart-items__header,.site-content .wc-block-cart__totals-title{color:var(--cyan);font-size:12px;font-weight:700;letter-spacing:1.7px;text-transform:uppercase}
.site-content .wp-block-woocommerce-cart-totals-block{padding:24px;background:var(--panel);border:1px solid var(--line);border-radius:20px}
.site-content .wp-block-woocommerce-checkout-order-summary-block{background:var(--panel);border-color:var(--line);border-radius:20px}
.site-content .entry-body a.wc-block-components-product-name{color:var(--text);font-size:17px;font-weight:700;text-decoration:none}
.site-content .entry-body a.wc-block-components-product-name:hover{color:var(--cyan)}
.site-content .wc-block-components-product-metadata,.site-content .wc-block-components-checkout-step__description,.site-content .wc-block-checkout__guest-checkout-notice{color:var(--muted)}
.site-content :is(.wc-block-cart-item__image,.wc-block-components-order-summary-item__image) img{background:linear-gradient(130deg,var(--panel),var(--bg));border:1px solid var(--line);border-radius:12px}
.site-content .wc-block-components-order-summary .wc-block-components-order-summary-item__quantity{background:var(--panel);border-color:var(--line);color:var(--text);box-shadow:none}
.site-content .wc-block-components-quantity-selector{border-color:var(--line);border-radius:10px}
.site-content .wc-block-components-checkout-step__title{font-size:22px;font-weight:700;letter-spacing:-.3px}
.site-content .wc-block-components-address-card{border-radius:12px}
.site-content .wc-block-components-button:not(.is-link):not(.outlined){min-height:48px;padding:12px 28px;border:1px solid transparent;border-radius:19px;background:var(--ac-grad);color:#fff;font-size:13px;font-weight:600;letter-spacing:.35px;text-transform:uppercase;text-decoration:none;box-shadow:none;transition:transform .2s,filter .2s}
.site-content .wc-block-components-button:not(.is-link):not(.outlined):hover{color:#fff;filter:brightness(1.15);transform:translateY(-2px)}
.site-content .wc-block-components-button:not(.is-link):focus-visible{outline:2px solid var(--cyan);outline-offset:4px;box-shadow:none}
.site-content .wc-block-components-text-input input:is([type=email],[type=number],[type=password],[type=tel],[type=text],[type=url]),.site-content .wc-block-components-textarea{background:var(--panel);border:1px solid var(--line);border-radius:9px;color:var(--text)}
.site-content .wc-block-components-text-input input:is([type=email],[type=number],[type=password],[type=tel],[type=text],[type=url]):focus,.site-content .wc-block-components-textarea:focus{background:var(--panel);border:1px solid var(--cyan);box-shadow:none;color:var(--text)}
.site-content .wc-block-components-text-input label,.site-content .wc-blocks-components-select .wc-blocks-components-select__label{color:var(--muted)}
.site-content .wc-blocks-components-select .wc-blocks-components-select__container{background:var(--panel);border-radius:9px}
.site-content .wc-blocks-components-select .wc-blocks-components-select__select{border:1px solid var(--line);border-radius:9px;color:var(--text)}
.site-content .wc-blocks-components-select .wc-blocks-components-select__select:focus{border-color:var(--cyan);box-shadow:none}
.site-content .wc-blocks-components-select .wc-blocks-components-select__expand{fill:var(--muted)}
.site-content .wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox],.site-content .wc-block-components-radio-control .wc-block-components-radio-control__input{padding:0;background:var(--panel);border-color:var(--line)}
.site-content .wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox]:checked,.site-content .wc-block-components-radio-control .wc-block-components-radio-control__input:checked{border-color:var(--cyan)}
.site-content .wc-block-components-checkbox .wc-block-components-checkbox__mark{fill:var(--cyan)}
.site-content .wc-block-components-radio-control .wc-block-components-radio-control__input:checked::before{background:var(--cyan)}
.site-content .wc-block-components-notice-banner{background:var(--panel);color:var(--text);border:1px solid var(--line);border-left:3px solid var(--cyan);border-radius:14px}
.site-content .wc-block-components-notice-banner>svg{background-color:var(--cyan);fill:var(--bg)}
.site-content .wc-block-components-notice-banner.is-error{background:var(--panel);border-color:var(--line);border-left-color:var(--ac-error)}
.site-content .wc-block-components-notice-banner.is-error>svg{background-color:var(--ac-error)}
.site-content .wc-block-components-notice-banner.is-warning{background:var(--panel);border-color:var(--line);border-left-color:var(--ac-warning)}
.site-content .wc-block-components-notice-banner.is-warning>svg{background-color:var(--ac-warning)}
.site-content .wc-block-components-notice-banner:is(.is-success,.is-info){background:var(--panel);border-color:var(--line);border-left-color:var(--cyan)}
.site-content .wc-block-cart__empty-cart__title.with-empty-cart-icon::before{background-color:var(--muted)}
.site-content .wc-block-grid .wc-block-grid__products{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:0}
.site-content .wc-block-grid__products .wc-block-grid__product{display:flex;flex-direction:column;max-width:none;margin:0;padding:23px;background:var(--panel);border:1px solid var(--line);border-radius:16px;text-align:left}
.site-content .entry-body a.wc-block-grid__product-link{display:block;flex:1;color:inherit;text-decoration:none}
.site-content .wc-block-grid__product .wc-block-grid__product-image{display:block;width:auto;margin:-23px -23px 18px}
.site-content .wc-block-grid__product .ac-product-visual{width:100%;height:150px;aspect-ratio:auto;border-radius:15px 15px 0 0}
.site-content .wc-block-grid__product .wc-block-grid__product-add-to-cart{text-align:left}
.site-content .wc-block-grid__product .wc-block-grid__product-title{color:var(--text);font-size:17px;font-weight:700;line-height:1.3;word-break:normal;overflow-wrap:break-word}
.site-content .wc-block-grid__product .wc-block-grid__product-price{margin:8px 0 16px;color:var(--text);font-weight:700}
.site-content .entry-body .wc-block-grid__product-add-to-cart a.wp-block-button__link{min-height:42px;padding:11px 20px;border-radius:12px;background:var(--ac-grad);color:#fff;font-size:12px;font-weight:600;letter-spacing:.35px;text-transform:uppercase;text-decoration:none}
.site-content .entry-body .wc-block-grid__product-add-to-cart a.added_to_cart{display:block;margin-top:8px;font-size:14px;font-weight:600}

/* My account */
.woocommerce :is(form.login,form.register,form.lost_reset_password){--wc-form-color-background:var(--bg);padding:32px;background:var(--panel);border:1px solid var(--line);border-radius:20px}
.woocommerce-account .woocommerce-MyAccount-navigation ul{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.woocommerce-account .woocommerce-MyAccount-navigation li a{display:block;padding:10px 14px;border:1px solid var(--line);border-radius:12px;color:var(--text)}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a,.woocommerce-account .woocommerce-MyAccount-navigation li a:hover{border-color:var(--cyan);color:var(--cyan)}

@media(max-width:1200px){
  .woocommerce :is(a.button,button.button,input.button,a.button.alt,button.button.alt,input.button.alt),.woocommerce #respond input#submit{font-size:10px;min-height:36px}
}
@media(max-width:1100px){
  .woocommerce ul.products{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:960px){
  .woocommerce ul.products,.site-content .wc-block-grid .wc-block-grid__products{grid-template-columns:repeat(2,minmax(0,1fr))}
  .woocommerce div.product .ac-product-hero{grid-template-columns:minmax(0,1fr);gap:30px;padding:30px}
  .woocommerce div.product .ac-product-hero>span.onsale{top:46px;left:46px}
}
@media(max-width:680px){
  .woocommerce :is(a.button,button.button,input.button,a.button.alt,button.button.alt,input.button.alt),.woocommerce #respond input#submit{font-size:11px;min-height:42px}
  .woocommerce ul.products{gap:12px}
  .woocommerce ul.products li.product,.woocommerce ul.products[class*=columns-] li.product{padding:17px}
  .woocommerce ul.products li.product a img,.woocommerce ul.products li.product .ac-product-visual{width:calc(100% + 34px);height:150px;margin:-17px -17px 16px}
  .woocommerce ul.products li.product .woocommerce-loop-product__title,.site-content .wc-block-grid__product .wc-block-grid__product-title{font-size:17px;hyphens:auto}
  .site-content .wc-block-grid .wc-block-grid__products .wc-block-grid__product{padding:17px}
  .site-content .wc-block-grid__product .wc-block-grid__product-image{margin:-17px -17px 16px}
  .woocommerce ul.products li.product .button{width:100%}
  .woocommerce .ac-shop-toolbar .woocommerce-ordering,.woocommerce .ac-shop-toolbar .woocommerce-ordering select{width:100%}
  .woocommerce div.product .ac-product-hero{padding:22px;border-radius:20px}
  .woocommerce div.product .ac-product-hero>span.onsale{top:34px;left:34px}
  .woocommerce div.product .woocommerce-tabs .panel{padding:22px}
  .woocommerce :is(form.login,form.register,form.lost_reset_password){padding:22px}
  .ac-product-card .ac-product-image .ac-product-visual{height:150px}
}
