/*
Theme Name: EVO BUSTER Shop
Theme URI: https://ecosystem-tech.com/magazin.html
Description: Payment pages for ecosystem-tech.com. Dresses the WooCommerce cart, checkout, order and account pages like the main website (ocean palette, Sofia type) and takes the cart over from the main Shop page.
Author: ЕКО СИСТЕМ ГРУП ООД
Template: twentytwentyfive
Version: 2.0.0
Requires at least: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: evo-buster-shop
*/

/* ------------------------------------------------------------------
   Tokens: the same values as ecosystem-tech.com (palette.css, theme-light.css)
   ------------------------------------------------------------------ */
:root {
	--evo-pearl: #F5F7F7;
	--evo-mist: #E8EEF2;
	--evo-white: #FFFFFF;
	--evo-ocean: #006BB3;
	--evo-ocean-h: #00528F;
	--evo-ocean-l: #2B9BE6;
	--evo-ocean-tint: #D6E9F7;
	--evo-ocean-rgb: 0, 107, 179;
	--evo-abyss: #0A1A2F;
	--evo-turq: #27F4D2;
	--evo-silver: #C8CCCE;
	--evo-line: #DAE2E8;
	--evo-ink-2: #3E4C5C;
	--evo-ink-3: #526070;
	--evo-shadow: 10, 26, 47;
	--evo-red: #B42318;

	--evo-f-d: "Sofia Sans Semi Condensed", system-ui, -apple-system, "Segoe UI", sans-serif;
	--evo-f-b: "Sofia Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
	--evo-f-num: "IBM Plex Mono", ui-monospace, monospace;

	--evo-max: 1320px;
	--evo-gut: clamp(18px, 4vw, 56px);
	--evo-ease: cubic-bezier(.23, 1, .32, 1);
	--evo-r: 20px;
}

html { -webkit-text-size-adjust: 100%; font-synthesis: none; }
body { background: var(--evo-pearl); color: var(--evo-ink-2); -webkit-font-smoothing: antialiased; }
::selection { background: var(--evo-ocean-tint); color: var(--evo-abyss); }
:focus-visible { outline: 2px solid var(--evo-ocean); outline-offset: 2px; }

.evo-wrap { width: 100%; max-width: var(--evo-max); margin: 0 auto; padding: 0 var(--evo-gut); box-sizing: border-box; }

/* The parent theme puts gaps between header, main and footer: remove them. */
.wp-site-blocks > * { margin-block-start: 0 !important; }
.evo-hdr-part, .evo-ftr-part { margin: 0 !important; }
.evo-hdr-part { position: sticky; top: 0; z-index: 50; }
.admin-bar .evo-hdr-part { top: var(--wp-admin--admin-bar--height, 32px); }

/* ------------------------------------------------------------------
   Logo lock-up (same as the main site)
   ------------------------------------------------------------------ */
.evo-logo { display: flex; align-items: center; gap: 11px; text-decoration: none; flex: none; color: inherit; }
.evo-logo img { width: 58px; height: auto; display: block; }
.evo-logo b { display: block; font: 700 19px/1 var(--evo-f-d); letter-spacing: .03em; color: var(--evo-ocean); }
.evo-logo small { display: block; font: 600 13px/1 var(--evo-f-d); letter-spacing: .2em; color: #006E68; margin-top: 5px; }

/* ------------------------------------------------------------------
   Header
   ------------------------------------------------------------------ */
.evo-hdr { background: rgba(245, 247, 247, .88);
	-webkit-backdrop-filter: saturate(1.6) blur(14px); backdrop-filter: saturate(1.6) blur(14px);
	box-shadow: 0 1px 0 var(--evo-line), 0 10px 30px -24px rgba(var(--evo-shadow), .35); }
.evo-hdr__in { display: flex; align-items: center; gap: 18px; height: 76px; }
.evo-back { margin-left: auto; display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 16px 0 12px;
	border-radius: 999px; border: 1.5px solid var(--evo-ocean); color: var(--evo-ocean); text-decoration: none;
	font: 600 15px/1 var(--evo-f-d); transition: background-color .2s var(--evo-ease), color .2s var(--evo-ease); white-space: nowrap; }
.evo-back svg { width: 16px; height: 16px; }
@media (hover: hover) { .evo-back:hover { background: var(--evo-ocean); color: #fff; } }
.evo-secure { margin: 0; display: inline-flex; align-items: center; gap: 7px; color: var(--evo-ink-3);
	font: 600 13px/1 var(--evo-f-d); letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; }
.evo-secure svg { width: 18px; height: 18px; color: var(--evo-ocean); }
.evo-acct { display: inline-grid; place-items: center; width: 44px; height: 44px; flex: none; border-radius: 999px;
	border: 1px solid var(--evo-silver); background: rgba(255, 255, 255, .6); color: var(--evo-abyss);
	transition: background-color .2s var(--evo-ease), border-color .2s var(--evo-ease); }
.evo-acct svg { width: 21px; height: 21px; }
@media (hover: hover) { .evo-acct:hover { background: #fff; border-color: var(--evo-ocean); } }

@media (max-width: 760px) {
	.evo-secure { display: none; }
	.evo-hdr__in { gap: 10px; height: 68px; }
}
@media (max-width: 560px) {
	.evo-logo img { width: 44px; }
	.evo-logo b { font-size: 15.5px; }
	.evo-logo small { font-size: 11.5px; }
	.evo-back { padding: 0 14px 0 8px; }
	.evo-back .evo-back__long { display: none; }
}
@media (min-width: 561px) { .evo-back .evo-back__short { display: none; } }
@media (max-width: 360px) { .evo-logo span { display: none; } }

/* ------------------------------------------------------------------
   Page body
   ------------------------------------------------------------------ */
.evo-main { --evo-side: max(var(--evo-gut), calc((100% - var(--evo-max)) / 2 + var(--evo-gut)));
	padding: clamp(36px, 6vw, 72px) var(--evo-side) clamp(64px, 9vw, 120px) !important; min-height: 60vh; margin: 0 !important; }
/* line the page up with the logo: one column the width of the header */
.evo-main > *, .evo-main .wp-block-post-content > * { max-width: none !important; margin-left: 0 !important; margin-right: 0 !important; }
.evo-title { margin: 0 0 clamp(22px, 3vw, 36px) !important; font: 500 clamp(2.2rem, 4vw, 3.4rem)/1.05 var(--evo-f-d) !important; letter-spacing: -.02em !important; color: var(--evo-abyss); }
.evo-main .wp-block-post-content > *:first-child { margin-top: 0; }
.evo-main h2, .evo-main h3 { color: var(--evo-abyss); }
a { text-underline-offset: 3px; }

/* ------------------------------------------------------------------
   WooCommerce blocks: cart and checkout
   ------------------------------------------------------------------ */
.wc-block-components-sidebar-layout { gap: clamp(20px, 3vw, 40px); }

/* white cards on pearl, like the cards on the main site */
.wc-block-checkout__main .wc-block-components-checkout-step,
.wp-block-woocommerce-cart-items-block,
.wp-block-woocommerce-cart-order-summary-block,
.wp-block-woocommerce-checkout-order-summary-block {
	background: var(--evo-white); border-radius: var(--evo-r);
	box-shadow: 0 0 0 1px var(--evo-line), 0 24px 50px -40px rgba(var(--evo-shadow), .5);
}
.wp-block-woocommerce-cart-order-summary-block,
.wp-block-woocommerce-checkout-order-summary-block { padding: 6px 2px; }
.wp-block-woocommerce-cart-order-summary-block { padding: 6px 18px 10px; }
.wp-block-woocommerce-cart-order-summary-block .wc-block-cart__totals-title { padding: 16px 0 8px !important; }
.wp-block-woocommerce-cart-order-summary-block .wc-block-components-totals-wrapper { padding-left: 0 !important; padding-right: 0 !important; }
.wp-block-woocommerce-cart-items-block { padding: 4px 22px 10px; }
.wc-block-cart .wc-block-cart-items { border: 0 !important; margin: 0 !important; }
.wc-block-cart .wc-block-cart-items th { font: 600 13px/1 var(--evo-f-d) !important; letter-spacing: .08em; text-transform: uppercase; color: var(--evo-ink-3); padding: 20px 0 16px !important; }
.wc-block-cart .wc-block-cart-items td { border-top: 1px solid var(--evo-line) !important; }
.wc-block-cart .wc-block-cart-items tr:first-child td { border-top: 0 !important; }
.wc-block-cart .wc-block-cart-items .wc-block-cart-items__header + * td { border-top: 0; }

.wc-block-checkout__main .wc-block-components-checkout-step { padding: clamp(18px, 2.4vw, 28px) !important; margin: 0 0 18px !important; }
.wc-block-checkout__main .wc-block-components-checkout-step::after { display: none !important; }
.wc-block-components-checkout-step__heading { margin: 0 0 12px !important; }
.wc-block-components-checkout-step__container, .wc-block-components-checkout-step__content { padding: 0 !important; }
.wc-block-components-checkout-step__title,
.wc-block-components-title.wc-block-components-title,
.wc-block-cart__totals-title { font: 600 1.35rem/1.2 var(--evo-f-d) !important; letter-spacing: 0 !important; color: var(--evo-abyss) !important; text-transform: none !important; }
.wc-block-cart__totals-title { padding: 18px 16px 8px !important; margin: 0 !important; }
.wc-block-components-checkout-step__description { color: var(--evo-ink-3); font-size: 16px; }

/* product names and prices */
.wc-block-components-product-name { font: 600 1.1rem/1.25 var(--evo-f-d) !important; color: var(--evo-abyss) !important; text-decoration: none !important; }
.wc-block-components-product-metadata, .wc-block-components-product-details { color: var(--evo-ink-3); font-size: 15px; }
.wc-block-components-product-price, .wc-block-components-formatted-money-amount,
.wc-block-components-totals-item__value { font-variant-numeric: tabular-nums; color: var(--evo-abyss); }
.wc-block-components-totals-item { color: var(--evo-ink-2); }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value { font: 700 1.3rem/1.2 var(--evo-f-d) !important; color: var(--evo-abyss); }
.wc-block-components-totals-wrapper { border-color: var(--evo-line) !important; }
.wc-block-components-sale-badge, .wc-block-components-product-badge { border-radius: 999px !important; border-color: var(--evo-ocean) !important; color: var(--evo-ocean) !important; background: #fff !important; font: 600 12px var(--evo-f-d) !important; letter-spacing: .04em; }
.wc-block-components-order-summary-item__quantity { background: var(--evo-abyss) !important; color: #fff !important; border: 0 !important; box-shadow: none !important; font-family: var(--evo-f-d) !important; }
.wc-block-components-order-summary .wc-block-components-panel__button { font: 600 1.05rem var(--evo-f-d); color: var(--evo-abyss); }
.wc-block-components-product-image img, .wc-block-cart-item__image img { border-radius: 12px; background: var(--evo-mist); }

/* quantity stepper */
.wc-block-components-quantity-selector { border-radius: 999px !important; border: 1px solid var(--evo-silver) !important; overflow: hidden; background: #fff; }
.wc-block-components-quantity-selector::after { display: none !important; }
.wc-block-components-quantity-selector input { font: 500 1rem var(--evo-f-num) !important; color: var(--evo-abyss) !important; }
.wc-block-components-quantity-selector button { color: var(--evo-abyss) !important; min-width: 40px; }
.wc-block-components-quantity-selector button:hover { background: var(--evo-ocean-tint) !important; }
.wc-block-cart-item__remove-link { color: var(--evo-ocean) !important; font: 600 .92rem var(--evo-f-d) !important; text-decoration: underline !important; }

/* buttons */
.wc-block-components-button:not(.is-link),
.woocommerce .button, .woocommerce button.button, .woocommerce a.button, .woocommerce input.button {
	background: var(--evo-ocean) !important; color: #fff !important; border: 0 !important; border-radius: 999px !important;
	min-height: 54px; padding: 0 28px !important; font: 600 16.5px/1 var(--evo-f-d) !important; letter-spacing: .005em !important;
	text-decoration: none !important; box-shadow: none; cursor: pointer;
	transition: background-color .2s var(--evo-ease), box-shadow .25s var(--evo-ease), transform .16s var(--evo-ease) !important;
}
.wc-block-components-button:not(.is-link):hover,
.woocommerce .button:hover, .woocommerce button.button:hover, .woocommerce a.button:hover {
	background: var(--evo-abyss) !important; box-shadow: 0 14px 30px -14px rgba(var(--evo-ocean-rgb), .55);
}
.wc-block-components-button:not(.is-link):active { transform: scale(.98); }
.wc-block-components-button:not(.is-link):focus-visible { outline: 2px solid var(--evo-ocean) !important; outline-offset: 3px; box-shadow: none !important; }
.wc-block-components-button.is-link, .wc-block-components-checkout-return-to-cart-button { color: var(--evo-ocean) !important; font: 600 15.5px var(--evo-f-d) !important; }
.wc-block-components-checkout-return-to-cart-button svg { fill: currentColor; }

/* form fields */
.wc-block-components-text-input input,
.wc-block-components-text-input input[type],
.wc-block-components-combobox .components-combobox-control input,
.wc-block-components-textarea,
.wc-blocks-components-select .wc-blocks-components-select__select,
.woocommerce form .input-text, .woocommerce form select {
	background: #fff !important; border: 1px solid var(--evo-silver) !important; border-radius: 12px !important;
	color: var(--evo-abyss) !important; font-family: var(--evo-f-b) !important; font-size: 17px !important;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.wc-block-components-text-input input:focus,
.wc-block-components-combobox .components-combobox-control input:focus,
.wc-block-components-textarea:focus,
.wc-blocks-components-select .wc-blocks-components-select__select:focus,
.woocommerce form .input-text:focus, .woocommerce form select:focus {
	border-color: var(--evo-ocean) !important; box-shadow: 0 0 0 3px rgba(var(--evo-ocean-rgb), .18) !important; outline: 0 !important;
}
.wc-block-components-text-input label, .wc-blocks-components-select__label, .wc-block-components-combobox label { color: var(--evo-ink-3) !important; font-family: var(--evo-f-b) !important; }
.wc-block-components-text-input.has-error input { border-color: var(--evo-red) !important; }
.wc-block-components-validation-error { color: var(--evo-red); }

/* radio and checkbox (delivery, payment) */
.wc-block-components-radio-control__option, .wc-block-components-radio-control-accordion-option {
	border-radius: 14px !important; box-shadow: 0 0 0 1px var(--evo-line) !important; }
.wc-block-components-radio-control--highlight-checked { border-radius: 14px; }
.wc-block-components-radio-control__option-checked, .wc-block-components-radio-control-accordion-option--checked-option-highlighted {
	box-shadow: 0 0 0 2px var(--evo-ocean) !important; background: rgba(var(--evo-ocean-rgb), .04); }
.wc-block-components-radio-control--highlight-checked::after,
.wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control__option-checked::after,
.wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option--checked-option-highlighted::after { display: none !important; }
.wc-block-components-radio-control__input:checked { border-color: var(--evo-ocean) !important; }
.wc-block-components-radio-control__input:checked::before { background: var(--evo-ocean) !important; }
.wc-block-components-radio-control__label { font: 600 1.02rem var(--evo-f-d); color: var(--evo-abyss); }
.wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox]:checked { background: var(--evo-ocean) !important; border-color: var(--evo-ocean) !important; }
.wc-block-components-checkbox .wc-block-components-checkbox__mark { fill: #fff !important; }

/* notices */
.wc-block-components-notice-banner { border-radius: 14px !important; font-size: 16px; }
.wc-block-components-notice-banner.is-info, .wc-block-components-notice-banner.is-notice { background: var(--evo-ocean-tint) !important; border-color: var(--evo-ocean) !important; color: var(--evo-abyss) !important; }
.wc-block-components-notice-banner.is-info > svg, .wc-block-components-notice-banner.is-notice > svg { background: var(--evo-ocean) !important; }

.wc-block-checkout__terms { color: var(--evo-ink-3); font-size: 15.5px; }

/* empty cart: keep the message and the way back; hide WooCommerce's "new products" grid */
.wc-block-cart__empty-cart__title { font: 500 clamp(1.6rem, 2.6vw, 2.2rem)/1.15 var(--evo-f-d) !important; color: var(--evo-abyss); }
.wp-block-woocommerce-empty-cart-block .wp-block-separator,
.wp-block-woocommerce-empty-cart-block .wp-block-heading:not(.wc-block-cart__empty-cart__title),
.wp-block-woocommerce-empty-cart-block .wp-block-woocommerce-product-new,
.wp-block-woocommerce-empty-cart-block .wp-block-woocommerce-product-collection { display: none !important; }
.wc-block-cart__empty-cart__title::before { background-color: var(--evo-ocean) !important; }

/* ------------------------------------------------------------------
   Order received and My account
   ------------------------------------------------------------------ */
.wc-block-order-confirmation-status h1, .wc-block-order-confirmation-status p:first-child { font-family: var(--evo-f-d); font-weight: 500; color: var(--evo-abyss); }
.wc-block-order-confirmation-summary { background: #fff; border-radius: var(--evo-r); box-shadow: 0 0 0 1px var(--evo-line); padding: 20px 24px !important; }
.wc-block-order-confirmation-summary-list-item__key { font: 600 13px/1.3 var(--evo-f-d); letter-spacing: .08em; text-transform: uppercase; color: var(--evo-ink-3); }
.wc-block-order-confirmation-summary-list-item__value { color: var(--evo-abyss); font-weight: 600; }
.wc-block-order-confirmation-totals table { border-color: var(--evo-line) !important; }

.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 8px; background: #fff; border-radius: var(--evo-r); box-shadow: 0 0 0 1px var(--evo-line); }
.woocommerce-MyAccount-navigation li a { display: block; padding: 12px 14px; border-radius: 12px; text-decoration: none; color: var(--evo-abyss); font: 600 15.5px var(--evo-f-d); }
.woocommerce-MyAccount-navigation li a:hover { background: var(--evo-ocean-tint); }
.woocommerce-MyAccount-navigation li.is-active a { background: var(--evo-ocean); color: #fff; }
.woocommerce table.shop_table { border-color: var(--evo-line); border-radius: 14px; background: #fff; }
.woocommerce form.login, .woocommerce form.register { border: 0 !important; border-radius: var(--evo-r) !important; background: #fff; box-shadow: 0 0 0 1px var(--evo-line); padding: clamp(18px, 3vw, 32px) !important; }

/* ------------------------------------------------------------------
   Footer (same as the main site)
   ------------------------------------------------------------------ */
.evo-ftr { position: relative; background: var(--evo-abyss); color: var(--evo-silver); padding: 70px 0 34px; font-size: 16.5px; line-height: 1.45; }
.evo-ftr::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px;
	background: linear-gradient(90deg, var(--evo-ocean), var(--evo-ocean-l) 55%, var(--evo-turq)); }
.evo-ftr__g { display: grid; grid-template-columns: .9fr 1.35fr 1fr .9fr 1.1fr; gap: 34px; }
.evo-ftr__h { margin: 0 0 16px; font: 600 13px/1.3 var(--evo-f-d) !important; letter-spacing: .12em !important; text-transform: uppercase; color: var(--evo-turq) !important; }
.evo-ftr ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 9px; }
.evo-ftr li, .evo-ftr a { overflow-wrap: anywhere; }
.evo-ftr a { color: inherit; text-decoration: none; transition: color .2s ease; }
.evo-ftr a:hover { color: var(--evo-turq); }
.evo-ftr :focus-visible { outline-color: var(--evo-turq); }
.evo-ftr .evo-logo b { white-space: nowrap; color: #fff; font-size: 16px; letter-spacing: .04em; }
.evo-ftr .evo-logo small { color: rgba(232, 238, 242, .72); font-size: 12px; margin-top: 4px; }
.evo-ftr .evo-logo img { width: 46px; }
.evo-ftr__b { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; border-top: 1px solid rgba(200, 204, 206, .14);
	margin-top: 54px; padding-top: 22px; font-size: 14px; }
@media (max-width: 980px) {
	.evo-ftr__g { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.evo-ftr__g > div:first-child { grid-column: 1 / -1; }
}
@media (max-width: 480px) { .evo-ftr__g { grid-template-columns: 1fr; } }

/* ------------------------------------------------------------------ */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* phones: WooCommerce shows the order summary twice (folded at the top, open above the button) */
.is-mobile .checkout-order-summary-block-fill-wrapper,
.is-small .checkout-order-summary-block-fill-wrapper { background: none !important; box-shadow: none !important; padding: 0 !important; }
.is-mobile .checkout-order-summary-block-fill-wrapper .wc-block-components-checkout-order-summary__content,
.is-small .checkout-order-summary-block-fill-wrapper .wc-block-components-checkout-order-summary__content { background: #fff; border-radius: 14px; border-color: var(--evo-line) !important; }
.is-mobile .wc-block-checkout__sidebar .wp-block-woocommerce-checkout-order-summary-block,
.is-small .wc-block-checkout__sidebar .wp-block-woocommerce-checkout-order-summary-block { padding: 0 18px; }
.is-mobile .wc-block-checkout__sidebar .wc-block-components-checkout-order-summary__title,
.is-small .wc-block-checkout__sidebar .wc-block-components-checkout-order-summary__title { border-top: 0 !important; }
.wp-block-woocommerce-cart-items-block { align-self: flex-start; height: auto !important; min-height: 0 !important; }
.wc-block-cart .wc-block-components-main { align-self: flex-start; }
.wc-block-store-notices, .woocommerce-notices-wrapper { margin: 0 0 22px !important; }
.wc-block-order-confirmation-totals table, .wc-block-order-confirmation-totals .wc-block-order-confirmation-totals__table { background: #fff; border-radius: 14px; overflow: hidden; border-collapse: separate; border-spacing: 0; box-shadow: 0 0 0 1px var(--evo-line); border: 0 !important; }
.wc-block-order-confirmation-totals th, .wc-block-order-confirmation-totals td { border-color: var(--evo-line) !important; }
.wc-block-order-confirmation-totals thead th { font: 600 13px/1 var(--evo-f-d); letter-spacing: .08em; text-transform: uppercase; color: var(--evo-ink-3); }
.wc-block-order-confirmation-shipping-address, .wc-block-order-confirmation-billing-address { background: #fff; border-radius: 14px; border: 0 !important; box-shadow: 0 0 0 1px var(--evo-line); }
.evo-main--order h1, .evo-main--order .wp-block-woocommerce-order-confirmation-status h1 { font: 500 clamp(2.2rem, 4vw, 3.4rem)/1.05 var(--evo-f-d); letter-spacing: -.02em; }
