/*
Theme Name: Superior VZ Store
Theme URI: https://superiorvzstore.com/
Author: David Hayes / Superior Brand Solutions
Author URI: https://superiorbrandsolutions.com/
Description: Storefront theme for the Verizon Webstore (superiorvzstore.com), replacing Thesis. Follows the Verizon "Phoenix" toolkit (11-02-2026): Neue Haas Grotesk Display + Text, red and white with yellow flash accents, red buttons on white and yellow on red, Customizer-driven homepage (slider, category tiles, brand cards, free-shipping card, help card), quick add on product cards and a cart drawer.
Version: 0.2.42
Requires at least: 6.4
Requires PHP: 8.1
WC requires at least: 9.0
Text Domain: superior-vz-store
License: GPL-2.0-or-later
*/

/* ---------- Tokens ---------- */
:root {
	--ink: #000;
	--ink-2: #3b3b3b;
	--muted: #6f7171;
	--line: #d8dada;
	--well: #f6f6f6;
	--cream: #f3eadd;
	--red: #ee0000;
	--red-hover: #c00;
	--yellow: #f5ff1e;
	--yellow-hover: #e6f000;
	--white: #fff;
	--radius: 20px;
	--radius-sm: 12px;
	--wrap: 1320px;
	--font: "neue-haas-grotesk-text", "Helvetica Neue", Helvetica, Arial, sans-serif;
	--display: "neue-haas-grotesk-display", "neue-haas-grotesk-text", "Helvetica Neue", Helvetica, Arial, sans-serif; /* 400 = 45 Light, 700 = 75 Bold, 900 = 95 Black */
}

*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; padding: 0; }
html { -webkit-text-size-adjust: 100%; }
body { font-family: var(--font); color: var(--ink); background: var(--white); font-size: 16px; line-height: 1.5; -webkit-font-smoothing: antialiased; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; }
ul, ol { list-style: none; }
:focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; border-radius: 4px; }
::selection { background: var(--yellow); color: var(--red); }
.screen-reader-text { border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; word-wrap: normal !important; }
.skip-link:focus { clip: auto; clip-path: none; height: auto; width: auto; left: 12px; top: 12px; z-index: 100; background: var(--white); padding: 10px 16px; border-radius: 8px; }
.wrap { max-width: var(--wrap); margin: 0 auto; padding: 0 32px; }
@media (max-width: 700px) { .wrap { padding: 0 16px; } }
.svz-icon { display: block; }

/* ---------- Buttons (verizon.com: pills) ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 44px; padding: 0 24px; border-radius: 999px; font-weight: 700; font-size: 16px; border: 1.5px solid var(--red); transition: background .15s, color .15s, border-color .15s; }
/* Verizon toolkit: red buttons (white text) on white, yellow buttons (black text) on red. No black buttons. */
.btn--solid { background: var(--red); color: var(--white); }
.btn--solid:hover { background: var(--red-hover); border-color: var(--red-hover); }
.btn--ghost { background: transparent; color: var(--red); }
.btn--ghost:hover { background: var(--red); color: var(--white); }
.btn--light { border-color: var(--white); color: var(--white); }
.btn--light:hover { background: var(--white); color: var(--red); }
.btn--yellow { background: var(--yellow); border-color: var(--yellow); color: var(--ink); }
.btn--yellow:hover { background: var(--yellow-hover); border-color: var(--yellow-hover); }
.btn--red-ghost { border-color: var(--red); color: var(--red); }
.btn--red-ghost:hover { background: var(--red); color: var(--white); }

/* ---------- Top bar ---------- */
.utility { background: var(--white); color: var(--ink); font-size: 13px; border-bottom: 1px solid var(--line); }
.utility .wrap { display: flex; justify-content: space-between; align-items: center; min-height: 36px; gap: 16px; }
.utility__links { display: flex; gap: 24px; }
.utility a:hover { text-decoration: underline; }
@media (max-width: 700px) { .utility__text { display: none; } .utility .wrap { justify-content: center; } }

/* ---------- Header ---------- */
.site-header { position: sticky; top: 0; z-index: 50; background: var(--white); border-bottom: 1px solid var(--line); }
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 0; } }
.head-row { display: flex; align-items: center; gap: 32px; height: 76px; }
.logo img, .svz-logo { height: 34px; width: auto; }
.search { flex: 1; max-width: 520px; position: relative; }
.search input[type="search"] { width: 100%; height: 44px; border: 1px solid var(--line); border-radius: 999px; padding: 0 20px 0 46px; font: inherit; font-size: 15px; background: var(--well); color: var(--ink); -webkit-appearance: none; appearance: none; }
.search input[type="search"]:focus { outline: none; border-color: var(--ink); background: var(--white); }
.search .svz-icon { position: absolute; left: 16px; top: 50%; transform: translateY(-50%); pointer-events: none; }
.head-icons { margin-left: auto; display: flex; align-items: center; gap: 8px; }
.icon-btn { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 50%; position: relative; }
.icon-btn:hover { background: var(--well); }
.cart-count { position: absolute; top: 4px; right: 2px; min-width: 19px; height: 19px; padding: 0 5px; border-radius: 999px; background: var(--red); color: var(--white); font-size: 11px; font-weight: 700; display: grid; place-items: center; transition: transform .2s; }
.cart-count.is-empty { background: var(--ink); }
.cart-count.bump { transform: scale(1.35); }
.menu-btn { display: none; }

.main-nav__list { display: flex; gap: 4px; height: 52px; align-items: stretch; }
.main-nav__list > li { display: flex; }
.main-nav__list a { display: flex; align-items: center; padding: 0 14px; font-weight: 700; font-size: 15px; position: relative; }
.main-nav__list a::after { content: ""; position: absolute; left: 14px; right: 14px; bottom: 0; height: 4px; background: var(--red); transform: scaleX(0); transition: transform .2s; }
.main-nav__list a:hover::after, .main-nav__list .current-menu-item > a::after, .main-nav__list .current-product_cat-ancestor > a::after { transform: scaleX(1); }
.main-nav__list .sale > a { color: var(--red); }

@media (max-width: 960px) {
	.head-row { gap: 12px; height: 64px; }
	.logo img, .head-row .svz-logo { height: 26px; }
	.head-row .search { display: none; }
	.menu-btn { display: grid; }
	.main-nav { display: none; }
}

/* ---------- Program row ---------- */
.programs { position: relative; border-bottom: 1px solid var(--line); }
.programs .wrap { display: flex; gap: 10px; overflow-x: auto; padding-top: 14px; padding-bottom: 14px; scrollbar-width: none; }
.programs .wrap::-webkit-scrollbar { display: none; }
.chip { flex: none; height: 36px; padding: 0 16px; border-radius: 999px; border: 1px solid var(--line); display: flex; align-items: center; font-size: 14px; font-weight: 700; white-space: nowrap; transition: border-color .15s, background .15s; }
.chip:hover, .chip[aria-current] { border-color: var(--ink); }
.chip--label { border: 0; padding-left: 0; color: var(--muted); font-weight: 400; }
.chip--red { background: var(--red); border-color: var(--red); color: var(--white); }
.chip--red:hover { background: var(--red-hover); border-color: var(--red-hover); }
.chip--red[aria-current] { border-color: var(--red); } /* the current page's chip keeps its red edge, no black ring */
.chip--red[aria-current]:hover { border-color: var(--red-hover); }
.programs-hint { display: none; }
@media (max-width: 960px) {
	.programs::after { content: ""; position: absolute; top: 0; right: 0; width: 48px; height: 64px; background: linear-gradient(90deg, rgba(255,255,255,0), #fff); pointer-events: none; }
	.programs-hint { display: flex; align-items: center; gap: 6px; font-size: 12px; line-height: 16px; color: var(--muted); padding: 0 16px 10px; margin-top: -4px; max-height: 30px; overflow: hidden; transition: opacity .2s ease, max-height .35s ease, padding .35s ease, margin .35s ease; }
	.programs.scrolled .programs-hint { opacity: 0; max-height: 0; padding-bottom: 0; margin-top: 0; }
	.programs.scrolled::after { opacity: .6; }
}

/* ---------- Phone menu ---------- */
.menu-scrim, .scrim { position: fixed; inset: 0; background: rgba(0,0,0,.4); opacity: 0; pointer-events: none; transition: opacity .25s; z-index: 60; }
.phone-menu { position: fixed; top: 0; left: 0; bottom: 0; width: min(400px, 100%); background: var(--white); z-index: 61; transform: translateX(-100%); transition: transform .3s ease; display: flex; flex-direction: column; overflow-y: auto; }
body.menu-open .menu-scrim { opacity: 1; pointer-events: auto; }
body.menu-open .phone-menu { transform: none; }
body.menu-open, body.cart-open { overflow: hidden; }
.menu-head { display: flex; justify-content: space-between; align-items: center; padding: 14px 16px; border-bottom: 1px solid var(--line); position: sticky; top: 0; background: var(--white); z-index: 1; }
.menu-head .svz-logo { height: 26px; }
.phone-menu .search { display: block; flex: none; max-width: none; margin: 16px; }
.menu-list { border-top: 1px solid var(--line); margin: 0 16px; }
.menu-list a { display: flex; justify-content: space-between; align-items: center; padding: 16px 0; border-bottom: 1px solid var(--line); font-size: 20px; font-weight: 700; letter-spacing: -.01em; }
.menu-list a:active, .menu-list .current-menu-item > a { color: var(--red); }
.menu-list .sale > a { color: var(--red); }
.menu-section { padding: 24px 16px 8px; }
.menu-section h3 { font-size: 22px; color: var(--red); letter-spacing: -.02em; margin-bottom: 12px; }
.menu-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.menu-util { padding: 16px; margin-top: auto; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; font-size: 14px; border-top: 1px solid var(--line); }
.menu-util a:hover { color: var(--red); }

/* ---------- Hero slider ---------- */
.hero { padding: 24px 0 0; }
.slider { position: relative; }
.viewport { border-radius: var(--radius); overflow: hidden; }
.slides { display: flex; transition: transform .6s cubic-bezier(.65, 0, .35, 1); }
.hero-card { position: relative; flex: 0 0 100%; min-width: 0; border-radius: var(--radius); background: var(--cream); display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); overflow: hidden; min-height: 480px; }
.hero-card--outline { background: var(--white); border: 2px solid var(--red); color: var(--red); }
.hero-card--red { background: var(--red); color: var(--white); }
.hero-copy { padding: 56px; display: flex; flex-direction: column; justify-content: center; gap: 20px; }
.eyebrow { font-size: 14px; font-weight: 700; letter-spacing: .02em; }
.eyebrow .dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--red); margin-right: 8px; vertical-align: 1px; }
.hero-card--red .eyebrow .dot { background: var(--yellow); }
.hero h1, .hero .h1 { font-family: var(--display); font-size: clamp(40px, 4.6vw, 72px); line-height: .95; letter-spacing: -.032em; font-weight: 700; }
.hero-card--cream .h1 { color: var(--red); }
.hero h1 em, .hero .h1 em { font-style: normal; color: var(--red); }
.hero-card--red h1 em, .hero-card--red .h1 em { color: var(--yellow); }
.hero-copy p { font-size: 20px; line-height: 1.35; max-width: 26ch; }
.hero-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 8px; }
.hero-art { background: var(--cream) right center / cover no-repeat; }
.hero-art--inset { background-color: var(--white); background-position: right center; margin: 14px 14px 14px 0; border-radius: 8px; } /* nested corners: 20 outer - 12 padding ≈ 8 */
.hero-gifts { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; padding: 32px 32px 32px 0; align-content: center; }
.hero-gifts img { width: 100%; aspect-ratio: 3 / 2 !important; height: auto !important; object-fit: contain; padding: 10px; border-radius: 8px; background: var(--white); }
.slider-ui { display: flex; align-items: center; justify-content: center; gap: 10px; margin-top: 16px; color: var(--red); }
.dots { display: flex; gap: 8px; align-items: center; }
.dots button { width: 10px; height: 10px; border-radius: 999px; background: currentColor; opacity: .3; transition: width .3s, opacity .3s; }
.dots button[aria-current="true"] { width: 32px; opacity: 1; }
.ctrl { width: 36px; height: 36px; border-radius: 50%; border: 1px solid currentColor; display: grid; place-items: center; transition: background .15s, color .15s; }
.ctrl:hover { background: var(--red); border-color: var(--red); color: var(--white); }
@media (max-width: 860px) {
	.hero-card { grid-template-columns: minmax(0, 1fr); min-height: 0; }
	.hero-copy { padding: 32px 24px; order: 2; }
	/* Explicit width so the 4:3 box is sized from the card's width (iOS Safari could size it from its height and overflow). */
	.hero-art { aspect-ratio: 4 / 3; order: 1; width: 100%; align-self: start; }
	.hero-art--inset { margin: 10px 10px 0; width: calc(100% - 20px); }
	.hero-gifts { padding: 16px 16px 0; }
	.hero-copy p { font-size: 18px; }
}

/* ---------- Hero type game + yellow flash (Verizon "Phoenix" toolkit) ---------- */
/* Big/small: one huge word with the rest of the headline small beside it, or turned 90°. */
.hero-card--lockup { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.hero .hero-lockup { display: flex; align-items: flex-end; gap: 6px 16px; flex-wrap: wrap; }
.hero-big { display: block; font-size: clamp(72px, 7.6vw, 112px); line-height: .82; letter-spacing: -.045em; }
.hero-small { display: block; font-size: clamp(18px, 1.6vw, 24px); line-height: 1.02; letter-spacing: -.02em; max-width: 10ch; padding-bottom: .35em; }
.hero-card--lockup .hero-copy { padding-right: 32px; }
.hero-lockup--sideways { flex-wrap: nowrap; align-items: stretch; }
.hero-lockup--sideways .hero-small { writing-mode: vertical-rl; text-orientation: sideways; transform: rotate(180deg); max-width: none; font-size: 15px; line-height: 1.1; letter-spacing: -.01em; padding: 0 0 0 10px; border-left: 1.5px solid currentColor; white-space: nowrap; }
.flash { position: absolute; z-index: 3; display: grid; place-content: center; text-align: center; border-radius: 50%; background: var(--yellow); color: var(--ink); transform: rotate(-15deg); line-height: 1; pointer-events: none; }
.flash b { display: block; font-family: var(--display); font-weight: 700; letter-spacing: -.03em; }
.flash span { display: block; font-weight: 400; letter-spacing: -.01em; margin-top: 4px; }
.hero-flash { width: 124px; height: 124px; top: 28px; left: calc(50% + 28px); } /* top-left of the picture: clear of the buttons and of the products */
.hero-card:not(.hero-card--lockup) .hero-flash { left: calc(41.67% + 28px); }
.hero-flash b { font-size: 34px; }
.hero-flash span { font-size: 14px; }
@media (max-width: 860px) {
	.hero-card--lockup { grid-template-columns: minmax(0, 1fr); }
	.hero-big { font-size: clamp(64px, 21vw, 112px); }
	.hero-flash, .hero-card:not(.hero-card--lockup) .hero-flash { width: 92px; height: 92px; top: 16px; left: 18px; }
	.hero-flash b { font-size: 26px; }
	.hero-flash span { font-size: 11.5px; margin-top: 2px; }
}

/* ---------- Section intros (verizon.com: big red headline, one red sentence) ---------- */
.section { padding: 72px 0 0; }
.section-head { text-align: center; margin: 0 auto 36px; max-width: 820px; color: var(--red); }
.section-head h1, .section-head h2 { font-family: var(--display); font-size: clamp(40px, 5.4vw, 76px); line-height: .95; letter-spacing: -.032em; font-weight: 700; }
.section-head p { font-size: clamp(16px, 1.6vw, 20px); margin-top: 10px; }
.link-arrow { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; border-bottom: 1px solid currentColor; padding-bottom: 1px; font-weight: 700; margin-top: 14px; color: var(--ink); font-size: 15px; }
.link-arrow:hover { color: var(--red); }

/* ---------- Category tiles ---------- */
.tiles { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.tile { background: var(--white); border: 2px solid var(--red); color: var(--red); border-radius: var(--radius); padding: 24px; display: flex; flex-direction: column; gap: 12px; min-height: 380px; position: relative; overflow: hidden; transition: transform .2s; }
.tile:hover { transform: translateY(-3px); }
.tile h3, .tile span { position: relative; z-index: 1; }
.tile h3 { font-family: var(--display); font-size: 26px; line-height: 1; font-weight: 700; letter-spacing: -.025em; padding-right: 44px; }
.tile span { font-size: 14px; color: var(--ink-2); }
/* The photo fills only the space left under the text (so it can never cover the title at any tile shape),
   runs wider than the tile and past its bottom edge, and grows a little on hover. */
.tile img { flex: 1 1 0; min-height: 0; width: 118%; max-width: none; align-self: center; margin: 8px 0 -56px; object-fit: cover; object-position: center top; mix-blend-mode: multiply; transform-origin: center bottom; transition: transform .4s ease; }
.tile:hover img { transform: scale(1.05); }
.tile .go { position: absolute; top: 20px; right: 20px; width: 36px; height: 36px; border-radius: 50%; border: 1.5px solid var(--red); display: grid; place-items: center; transition: background .15s, color .15s; }
.tile:hover .go { background: var(--red); color: var(--white); }
/* Red tile (Gift Codes): the glow V may not sit on red, so its picture gets a white box. */
.tile--red { background: var(--red); color: var(--white); }
.tile--red span { color: var(--white); }
.tile--red .go { border-color: var(--white); }
.tile--red:hover .go { background: var(--white); color: var(--red); }
.tile--red img { mix-blend-mode: normal; flex: 1 1 0; width: 100%; max-width: none; margin: 6px 0 0; padding: 14%; box-sizing: border-box; object-fit: contain; object-position: center; background: var(--white); border-radius: 8px; transform: none !important; }
.tile--red { padding-bottom: 14px; }
/* Tablet two-column: tiles are wide but short, so show the whole product instead of cropping to its top. */
@media (min-width: 520px) and (max-width: 960px) { .tile img { object-fit: contain; object-position: center bottom; margin-bottom: -24px; } }
@media (max-width: 960px) {
	.tiles { grid-template-columns: repeat(2, 1fr); }
	.tile { min-height: 260px; padding: 18px; }
	.tile h3 { font-size: 20px; padding-right: 0; }
	.tile span { font-size: 13px; }
	.tile .go { display: none; }
}

/* ---------- Brand cards: Customizer entries, no text baked into images ---------- */
.brand-row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
/* Each card stacks: photo on top, logo + line + button underneath. */
.brand-card { display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: auto 1fr; border-radius: var(--radius); overflow: hidden; background: var(--panel); color: var(--on); }
.brand-card[data-outline] { border: 2px solid var(--red); } /* white card: red border, like the tiles */
.bc-panel { padding: 24px 26px 26px; display: flex; flex-direction: column; gap: 14px; }
.bc-logo { height: 52px; width: auto; max-width: 70%; object-fit: contain; object-position: left; }
.brand-card[data-logo="light"] .bc-logo { filter: grayscale(1) invert(1); mix-blend-mode: screen; }
.brand-card[data-logo="dark"] .bc-logo { mix-blend-mode: multiply; }
.bc-name { font-size: 28px; letter-spacing: -.02em; }
.bc-panel p { font-size: 15px; line-height: 1.35; font-weight: 700; letter-spacing: -.005em; }
.bc-panel .btn { margin-top: auto; align-self: flex-start; height: 36px; padding: 0 18px; font-size: 14px; }
/* yellow is a pinch, not a frame: the panel color frames the photo. The photo is placed absolutely inside a box with an
 * explicit width: iOS Safari otherwise sized the aspect-ratio grid item from its height, pushing the photo past the card. */
.bc-photo { --pad: 12px; order: -1; position: relative; width: 100%; min-width: 0; align-self: start; aspect-ratio: 4 / 3; }
.bc-photo img { position: absolute; top: var(--pad); left: var(--pad); width: calc(100% - 2 * var(--pad)); height: calc(100% - var(--pad)); object-fit: cover; border-radius: 8px; background: var(--white); transition: transform .4s; }
.brand-card:hover .bc-photo img { transform: scale(1.02); }
/* Smush lazy load forces width + aspect-ratio (!important) on images until they load; keep them in the box. */
.bc-photo img.lazyload, .bc-photo img.lazyloading { width: calc(100% - 2 * var(--pad)) !important; aspect-ratio: auto !important; }
/* Phones + tablets: two across like the tiles and product grid (6 cards = 3 full rows). */
@media (max-width: 960px) {
	.brand-row { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
	.bc-photo { --pad: 8px; aspect-ratio: 1; }
	.bc-photo img { border-radius: 6px; }
	.bc-panel { padding: 18px; gap: 10px; }
	.bc-logo { height: 44px; max-width: 80%; }
	.bc-panel p { font-size: 14px; }
	.bc-panel .btn { height: auto; min-height: 36px; padding: 8px 16px; line-height: 1.15; text-align: center; }
}
@media (max-width: 480px) {
	.bc-panel { padding: 14px; }
	.bc-logo { height: 34px; }
	.bc-panel p { font-size: 12.5px; line-height: 1.3; }
	.bc-panel .btn { font-size: 13px; padding: 7px 12px; }
}

/* ---------- Product grid (shop, categories, homepage, related) ---------- */
.woocommerce ul.products, .woocommerce-page ul.products { display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px 20px; margin: 0; }
.woocommerce ul.products::before, .woocommerce ul.products::after { content: none; display: none; }
.woocommerce ul.products li.product, .woocommerce-page ul.products li.product, .woocommerce ul.products[class*="columns-"] li.product, .woocommerce-page ul.products[class*="columns-"] li.product { position: relative; width: auto; float: none; clear: none; margin: 0; padding: 0; text-align: left; }
@media (max-width: 960px) { .woocommerce ul.products, .woocommerce-page ul.products { grid-template-columns: repeat(2, 1fr); gap: 28px 12px; } }
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link { display: flex; flex-direction: column; gap: 8px; }
.card-media { position: relative; display: block; background: var(--well); border-radius: var(--radius-sm); aspect-ratio: 1; overflow: hidden; margin-bottom: 4px; }
.woocommerce ul.products li.product .card-media img { width: 100%; height: 100%; margin: 0; object-fit: contain; mix-blend-mode: multiply; transition: transform .35s; }
.woocommerce ul.products li.product:hover .card-media img { transform: scale(1.03); }
/* Yellow flash (Verizon toolkit): a circle tilted -15°, black type, a few words. */
.badge { position: absolute; top: 10px; left: 10px; z-index: 2; width: 62px; height: 62px; border-radius: 50%; display: grid; place-items: center; text-align: center; background: var(--yellow); color: var(--ink); font-family: var(--display); font-size: 16px; font-weight: 700; letter-spacing: -.03em; line-height: 1; padding: 4px; transform: rotate(-15deg); }
@media (max-width: 700px) { .badge { width: 52px; height: 52px; font-size: 14px; top: 8px; left: 8px; } }
.card-brand { font-size: 13px; color: var(--muted); }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 16px; font-weight: 700; line-height: 1.25; padding: 0; margin: 0; }
.woocommerce ul.products li.product a:hover .woocommerce-loop-product__title { text-decoration: underline; }
.woocommerce ul.products li.product .price { color: var(--ink); font-size: 16px; margin: 0; }
.woocommerce ul.products li.product .price del { color: var(--muted); opacity: 1; }
.woocommerce ul.products li.product .price ins { text-decoration: none; color: var(--red); font-weight: 700; }
.card-note { font-size: 13px; color: var(--muted); }
.woocommerce ul.products li.product .button { margin-top: 10px; height: 36px; padding: 0 16px; border-radius: 999px; background: var(--white); color: var(--red); border: 1.5px solid var(--red); font-size: 14px; font-weight: 700; display: inline-flex; align-items: center; }
.woocommerce ul.products li.product .button:hover { background: var(--red); color: var(--white); }
.woocommerce ul.products li.product .added_to_cart { display: none; }

/* ---------- Quick add: verizon.com outline card — white, thin red border, red type, yellow pills ---------- */
.vz-quick { position: absolute; top: 0; left: 0; right: 0; aspect-ratio: 1; z-index: 3; display: flex; align-items: flex-end; pointer-events: none; }
.vz-quick > * { pointer-events: auto; }
.vz-quick__toggle { position: absolute; right: 12px; bottom: 12px; width: 44px; height: 44px; border-radius: 50%; background: var(--red); border: 1.5px solid var(--red); color: var(--white); display: grid; place-items: center; transition: background .15s, transform .2s, opacity .2s; }
.vz-quick__toggle:hover { background: var(--red-hover); border-color: var(--red-hover); }
.vz-quick.is-open .vz-quick__toggle { transform: rotate(45deg); background: var(--red-hover); }
.vz-quick__panel { width: calc(100% - 20px); margin: 10px; padding: 14px; border-radius: 14px; background: var(--white); border: 1.5px solid var(--red); color: var(--red); transform: translateY(calc(100% + 12px)); opacity: 0; transition: transform .25s ease, opacity .2s; pointer-events: none; }
li.product:hover .vz-quick__panel, .vz-quick:focus-within .vz-quick__panel, .vz-quick.is-open .vz-quick__panel { transform: none; opacity: 1; pointer-events: auto; }
li.product:hover .vz-quick__toggle, .vz-quick:focus-within .vz-quick__toggle, .vz-quick.is-open .vz-quick__toggle { opacity: 0; pointer-events: none; }
.vz-quick__label { font-size: 15px; font-weight: 700; letter-spacing: -.01em; margin-bottom: 10px; }
.vz-quick__sizes { display: flex; flex-wrap: wrap; gap: 8px; }
.vz-quick__sizes button, .vz-quick__add { height: 36px; min-width: 44px; padding: 0 10px; border-radius: 999px; border: 1.5px solid var(--red); color: var(--red); font-size: 13px; font-weight: 700; background: var(--white); transition: background .15s, border-color .15s; }
.vz-quick__sizes button:hover, .vz-quick__sizes button:focus-visible { background: var(--red); border-color: var(--red); color: var(--white); }
.vz-quick__sizes button[disabled] { color: #f0a3a3; border-color: #f6c6c6; text-decoration: line-through; cursor: not-allowed; background: var(--white); }
/* Sold-out size: crossed out like the product page; links there so shoppers can sign up for a restock alert. */
.vz-quick__sizes a.is-soldout { display: inline-flex; align-items: center; justify-content: center; height: 36px; min-width: 44px; padding: 0 10px; border-radius: 999px; border: 1.5px dashed #f6c6c6; color: #f0a3a3; font-size: 13px; font-weight: 700; text-decoration: line-through; background: var(--white); transition: border-color .15s, color .15s; }
.vz-quick__sizes a.is-soldout:hover, .vz-quick__sizes a.is-soldout:focus-visible { border-color: var(--red); color: var(--red); }
.vz-quick__add { width: 100%; height: 40px; background: var(--red); border-color: var(--red); color: var(--white); font-size: 14px; }
.vz-quick__add:hover { background: var(--red-hover); border-color: var(--red-hover); }
.vz-quick.is-busy { opacity: .6; pointer-events: none; }
@media (hover: none) {
	li.product:hover .vz-quick__panel { transform: translateY(calc(100% + 12px)); opacity: 0; pointer-events: none; }
	li.product:hover .vz-quick__toggle { opacity: 1; pointer-events: auto; }
	.vz-quick.is-open .vz-quick__panel { transform: none; opacity: 1; pointer-events: auto; }
	.vz-quick.is-open .vz-quick__toggle { opacity: 0; pointer-events: none; }
}
@media (max-width: 700px) { .vz-quick__panel { margin: 6px; width: calc(100% - 12px); padding: 10px; } .vz-quick__sizes { gap: 6px; } .vz-quick__sizes button, .vz-quick__sizes a.is-soldout { min-width: 38px; height: 34px; padding: 0 6px; } }

/* ---------- Free-shipping card (verizon.com plan promo) ---------- */
.band { margin-top: 72px; padding-bottom: 24px; overflow-x: clip; } /* the turning circle's corners must not widen the page */
.band-card { position: relative; background: var(--red); color: var(--white); border-radius: 28px; padding: 56px 56px 64px; }
.band h2 { font-family: var(--display); font-size: clamp(52px, 8.4vw, 128px); line-height: .9; letter-spacing: -.035em; font-weight: 700; max-width: 9ch; }
.band .btn { margin-top: 28px; }
.band p { font-size: 14px; line-height: 1.4; margin-top: 28px; max-width: 34ch; }
.burst { position: absolute; right: 8%; bottom: -14px; width: 250px; height: 250px; border-radius: 50%; background: var(--yellow); color: var(--ink); display: flex; flex-direction: column; align-items: center; justify-content: center; transform: rotate(calc(-8deg + var(--spin, 0deg))); will-change: transform; }
.burst .amt { display: flex; align-items: flex-start; font-weight: 700; line-height: .85; letter-spacing: -.04em; font-size: 100px; }
.burst .amt sup { font-size: 36px; margin-top: 6px; margin-right: 2px; }
.burst .per { font-size: 23px; letter-spacing: -.01em; margin-top: 6px; }
@media (max-width: 860px) {
	.band-card { padding: 36px 24px 204px; }
	.burst { width: 170px; height: 170px; right: 16px; bottom: -12px; }
	.burst .amt { font-size: 66px; }
	.burst .amt sup { font-size: 24px; margin-top: 4px; }
	.burst .per { font-size: 16px; }
}

/* ---------- Help card (verizon.com outline promo) ---------- */
.help { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; border: 2px solid var(--red); border-radius: 28px; padding: 56px; }
.help-card { color: var(--red); }
.help-card h2 { font-family: var(--display); font-size: clamp(44px, 5.6vw, 84px); line-height: .95; letter-spacing: -.032em; font-weight: 700; margin-bottom: 20px; }
.help-card p { font-size: 20px; line-height: 1.35; max-width: 32ch; }
.form-note { font-size: 13px; color: var(--muted); }
@media (max-width: 860px) { .help { grid-template-columns: 1fr; gap: 28px; padding: 32px 22px; } }

/* Forminator help form. Prefixed hard enough to beat Forminator's per-form #forminator-module-N CSS (the :not(#svz) adds ID weight),
   so the form needs no custom CSS in the plugin. */
.help-form .forminator-ui.forminator-custom-form:not(#svz) { font-family: var(--font); color: var(--ink); margin: 0; }
.help-form .forminator-ui.forminator-custom-form:not(#svz) .forminator-row { display: flex; flex-wrap: wrap; gap: 0 16px; margin: 0 0 18px; }
.help-form .forminator-ui.forminator-custom-form:not(#svz) .forminator-row-last { margin-bottom: 0; }
.help-form .forminator-ui.forminator-custom-form:not(#svz) .forminator-col { flex: 1 1 0; min-width: 0; padding: 0; }
.help-form .forminator-ui.forminator-custom-form:not(#svz) .forminator-col-12 { flex-basis: 100%; }
.help-form .forminator-ui.forminator-custom-form:not(#svz) .forminator-field { margin: 0; }
.help-form .forminator-ui.forminator-custom-form:not(#svz) .forminator-label { display: block; font-family: var(--font); font-size: 14px; line-height: 1.3; font-weight: 700; margin: 0 0 8px; padding: 0; color: var(--ink); }
.help-form .forminator-ui.forminator-custom-form:not(#svz) .forminator-required { color: var(--red); }
.help-form .forminator-ui.forminator-custom-form:not(#svz) input.forminator-input, .help-form .forminator-ui.forminator-custom-form:not(#svz) textarea.forminator-textarea { width: 100%; margin: 0; font-family: var(--font); font-size: 16px; line-height: 1.4; color: var(--ink); background: var(--white); border: 1.5px solid var(--line); border-radius: var(--radius-sm); padding: 12px 16px; box-shadow: none; transition: border-color .15s, box-shadow .15s; }
.help-form .forminator-ui.forminator-custom-form:not(#svz) input.forminator-input { height: 50px; }
.help-form .forminator-ui.forminator-custom-form:not(#svz) input.forminator-input:hover, .help-form .forminator-ui.forminator-custom-form:not(#svz) textarea.forminator-textarea:hover { border-color: var(--muted); }
.help-form .forminator-ui.forminator-custom-form:not(#svz) input.forminator-input:focus, .help-form .forminator-ui.forminator-custom-form:not(#svz) textarea.forminator-textarea:focus { outline: none; border-color: var(--red); box-shadow: 0 0 0 1px var(--red); background: var(--white); }
.help-form .forminator-ui.forminator-custom-form:not(#svz) input.forminator-input::placeholder, .help-form .forminator-ui.forminator-custom-form:not(#svz) textarea.forminator-textarea::placeholder { color: var(--muted); opacity: 1; }
.help-form .forminator-ui.forminator-custom-form:not(#svz) textarea.forminator-textarea { min-height: 140px; resize: vertical; }
.help-form .forminator-ui.forminator-custom-form:not(#svz) .forminator-description { display: flex; justify-content: flex-end; margin: 6px 0 0; font-size: 12px; color: var(--muted); }
.help-form .forminator-ui.forminator-custom-form:not(#svz) .forminator-input-with-icon label, .help-form .forminator-ui.forminator-custom-form:not(#svz) .forminator-input-with-icon [class*="forminator-icon"] { display: none; }
.help-form .forminator-ui.forminator-custom-form:not(#svz) .forminator-input-with-icon input.forminator-input { padding-left: 16px; }
/* Radios: pill chips that turn red when picked. */
.help-form .forminator-ui.forminator-custom-form:not(#svz) .forminator-field-radio .forminator-field { display: flex; flex-wrap: wrap; gap: 8px; }
.help-form .forminator-ui.forminator-custom-form:not(#svz) .forminator-field-radio .forminator-label { flex-basis: 100%; margin-bottom: 2px; }
.help-form .forminator-ui.forminator-custom-form:not(#svz) label.forminator-radio { position: relative; display: inline-flex; align-items: center; gap: 8px; margin: 0; padding: 9px 16px 9px 12px; border: 1.5px solid var(--line); border-radius: 999px; background: var(--white); font-size: 14px; line-height: 1.2; font-weight: 700; color: var(--ink); cursor: pointer; transition: border-color .15s, background .15s, color .15s; }
.help-form .forminator-ui.forminator-custom-form:not(#svz) label.forminator-radio:hover { border-color: var(--red); }
.help-form .forminator-ui.forminator-custom-form:not(#svz) label.forminator-radio input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; }
.help-form .forminator-ui.forminator-custom-form:not(#svz) label.forminator-radio .forminator-radio-bullet { position: relative; flex: 0 0 18px; width: 18px; height: 18px; margin: 0; border: 1.5px solid var(--muted); border-radius: 50%; background: var(--white); }
.help-form .forminator-ui.forminator-custom-form:not(#svz) label.forminator-radio .forminator-radio-bullet::before { display: none; }
.help-form .forminator-ui.forminator-custom-form:not(#svz) label.forminator-radio .forminator-radio-label { margin: 0; padding: 0; font: inherit; color: inherit; }
.help-form .forminator-ui.forminator-custom-form:not(#svz) label.forminator-radio:has(input:checked) { background: var(--red); border-color: var(--red); color: var(--white); }
.help-form .forminator-ui.forminator-custom-form:not(#svz) label.forminator-radio input:checked + .forminator-radio-bullet { border-color: var(--white); background: var(--red); box-shadow: inset 0 0 0 3px var(--red), inset 0 0 0 9px var(--white); }
.help-form .forminator-ui.forminator-custom-form:not(#svz) label.forminator-radio input:focus-visible + .forminator-radio-bullet { outline: 2px solid var(--red); outline-offset: 2px; }
.help-form .forminator-ui.forminator-custom-form:not(#svz) .forminator-field-captcha { margin: 0; }
.help-form .forminator-ui.forminator-custom-form:not(#svz) .forminator-button-submit { display: inline-flex; align-items: center; height: 48px; padding: 0 28px; margin: 0; border-radius: 999px; border: 0; background: var(--red); color: var(--white); font-family: var(--font); font-size: 16px; font-weight: 700; line-height: 1; box-shadow: none; cursor: pointer; transition: background .15s; }
.help-form .forminator-ui.forminator-custom-form:not(#svz) .forminator-button-submit:hover, .help-form .forminator-ui.forminator-custom-form:not(#svz) .forminator-button-submit:focus { background: var(--red-hover); color: var(--white); box-shadow: none; }
.help-form .forminator-ui.forminator-custom-form:not(#svz) .forminator-error-message { display: block; margin: 6px 0 0; padding: 0; background: none; color: var(--red); font-size: 13px; font-weight: 700; }
.help-form .forminator-ui.forminator-custom-form:not(#svz) .forminator-has_error input.forminator-input, .help-form .forminator-ui.forminator-custom-form:not(#svz) .forminator-has_error textarea.forminator-textarea { border-color: var(--red); }
.help-form .forminator-ui.forminator-custom-form:not(#svz) .forminator-response-message { border-radius: var(--radius-sm); font-size: 15px; font-weight: 700; }
.help-form .forminator-ui.forminator-custom-form:not(#svz) .forminator-response-message.forminator-success { background: var(--cream); color: var(--ink); border: 0; }
.help-form .forminator-ui.forminator-custom-form:not(#svz) .forminator-response-message.forminator-error { background: var(--white); color: var(--red); border: 1.5px solid var(--red); }
.help-form .forminator-edit-module { display: inline-block; margin-top: 14px; font-size: 13px; color: var(--muted); }
@media (max-width: 600px) { .help-form .forminator-ui.forminator-custom-form:not(#svz) .forminator-col { flex-basis: 100%; } .help-form .forminator-ui.forminator-custom-form:not(#svz) .forminator-row { gap: 18px 0; } }

/* Fields everywhere (checkout, account, product options) */
input[type="text"], input[type="email"], input[type="tel"], input[type="password"], input[type="number"], input[type="search"], select, textarea { font: inherit; color: var(--ink); }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select, .woocommerce .quantity .qty, .woocommerce div.product form.cart .variations select, .select2-container--default .select2-selection--single { border: 1px solid var(--muted); border-radius: 8px; padding: 10px 12px; font-size: 15px; background: var(--white); min-height: 44px; }
.select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 22px; padding: 0; }
.select2-container--default .select2-selection--single .select2-selection__arrow { top: 9px; }
.woocommerce form .form-row label { font-size: 13px; font-weight: 700; }

/* ---------- Footer ---------- */
.site-footer { margin-top: 72px; background: var(--white); color: var(--ink); border-top: 1px solid var(--line); padding: 56px 0 28px; font-size: 14px; }
.foot-grid { display: grid; grid-template-columns: 2fr repeat(3, 1fr); gap: 32px; }
.foot-grid h4 { font-size: 15px; margin-bottom: 14px; color: var(--red); }
.foot-grid li { margin-bottom: 10px; color: var(--ink-2); }
.foot-grid a:hover { color: var(--red); text-decoration: underline; }
.foot-brand .svz-logo { height: 30px; margin-bottom: 14px; }
.foot-brand p { color: var(--ink-2); max-width: 34ch; }
.foot-legal { border-top: 1px solid var(--line); margin-top: 40px; padding-top: 20px; color: var(--muted); display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
@media (max-width: 860px) { .foot-grid { grid-template-columns: 1fr 1fr; } .foot-brand { grid-column: 1 / -1; } }

/* ---------- Cart drawer (replaces the Side Cart plugin) ---------- */
.drawer { position: fixed; top: 0; right: 0; bottom: 0; width: min(420px, 100%); background: var(--white); z-index: 61; transform: translateX(100%); transition: transform .3s ease; display: flex; flex-direction: column; }
body.cart-open .scrim { opacity: 1; pointer-events: auto; }
body.cart-open .drawer { transform: none; }
.drawer-head { display: flex; justify-content: space-between; align-items: center; padding: 20px 24px; border-bottom: 1px solid var(--line); }
.drawer-head h2 { font-size: 22px; }
.ship-meter { font-size: 13px; padding: 14px 24px; border-bottom: 1px solid var(--line); }
.ship-meter[hidden] { display: none; }
.ship-meter .bar { height: 6px; border-radius: 999px; background: var(--well); margin-top: 8px; overflow: hidden; }
.ship-meter .bar i { display: block; height: 100%; background: var(--red); transition: width .3s; }
.drawer:not(#svz) .widget_shopping_cart_content { flex: 1; display: flex; flex-direction: column; min-height: 0; }
.drawer:not(#svz) .woocommerce-mini-cart { flex: 1; overflow: auto; padding: 8px 24px; }
.drawer:not(#svz) .woocommerce-mini-cart-item { position: relative; display: grid; grid-template-columns: 72px 1fr; gap: 4px 14px; padding: 16px 28px 16px 0; border-bottom: 1px solid var(--line); font-size: 14px; }
.drawer:not(#svz) .woocommerce-mini-cart-item a:not(.remove) { display: contents; font-weight: 700; line-height: 1.25; }
.drawer:not(#svz) .woocommerce-mini-cart-item img { grid-row: 1 / span 3; width: 72px; height: 72px; object-fit: contain; background: var(--well); border-radius: 8px; mix-blend-mode: multiply; }
.drawer:not(#svz) .woocommerce-mini-cart-item .variation, .drawer:not(#svz) .woocommerce-mini-cart-item .quantity { color: var(--muted); font-size: 13px; }
.drawer:not(#svz) .woocommerce-mini-cart-item .variation dt, .drawer:not(#svz) .woocommerce-mini-cart-item .variation dd { display: inline; }
.drawer:not(#svz) .woocommerce-mini-cart-item .variation dd p { display: inline; }
.drawer:not(#svz) .woocommerce-mini-cart-item .remove { position: absolute; right: 0; top: 16px; width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; color: var(--muted); font-size: 18px; }
.drawer:not(#svz) .woocommerce-mini-cart-item .remove:hover { background: var(--well); color: var(--red); }
.drawer:not(#svz) .woocommerce-mini-cart__empty-message { padding: 32px 24px; color: var(--muted); }
.drawer:not(#svz) .woocommerce-mini-cart__total { display: flex; justify-content: space-between; font-weight: 700; font-size: 18px; padding: 18px 24px 0; border-top: 1px solid var(--line); }
.drawer:not(#svz) .vzmq-note { margin: 14px 24px 0; padding: 10px 12px; border-left: 3px solid var(--red); background: #fff4f4; font-size: 14px; line-height: 1.4; }
.drawer:not(#svz) .woocommerce-mini-cart__buttons { display: grid; gap: 10px; padding: 14px 24px 24px; }
.drawer:not(#svz) .woocommerce-mini-cart__buttons .button { display: flex; align-items: center; justify-content: center; height: 44px; border-radius: 999px; font-weight: 700; border: 1.5px solid var(--red); }
.drawer:not(#svz) .woocommerce-mini-cart__buttons .checkout { order: -1; background: var(--red); color: var(--white); }
.drawer:not(#svz) .woocommerce-mini-cart__buttons .button:not(.checkout) { background: var(--white); color: var(--red); }
.drawer:not(#svz) .woocommerce-mini-cart__buttons .button:not(.checkout):hover { background: var(--red); color: var(--white); }
/* Category, shop and product pages put .woocommerce on <body>, which turns on Woo's own mini-cart styles
   (floated 32px images, display:block links, a left-pinned red remove, left padding, a grey line on the
   variation list, clearfix pseudo-elements that become grid items). :not(#svz) above outranks them; these undo the rest. */
.drawer:not(#svz) .woocommerce-mini-cart { margin: 0; list-style: none; }
.drawer:not(#svz) .woocommerce-mini-cart-item { margin: 0; padding-left: 0; list-style: none; }
.drawer:not(#svz) .woocommerce-mini-cart-item::before, .drawer:not(#svz) .woocommerce-mini-cart-item::after, .drawer:not(#svz) .woocommerce-mini-cart__buttons::before, .drawer:not(#svz) .woocommerce-mini-cart__buttons::after { display: none; content: none; }
.drawer:not(#svz) .woocommerce-mini-cart-item img { float: none; margin: 0; box-shadow: none; }
.drawer:not(#svz) .woocommerce-mini-cart-item dl.variation { margin: 0; padding: 0; border: 0; }
.drawer:not(#svz) .woocommerce-mini-cart-item dl.variation::before, .drawer:not(#svz) .woocommerce-mini-cart-item dl.variation::after { display: none; content: none; }
.drawer:not(#svz) .woocommerce-mini-cart-item dl.variation dt, .drawer:not(#svz) .woocommerce-mini-cart-item dl.variation dd { float: none; margin: 0; padding: 0; }
.drawer:not(#svz) .woocommerce-mini-cart-item dl.variation dd p { margin: 0; }
.drawer:not(#svz) .woocommerce-mini-cart-item .remove { left: auto; font-size: 18px; line-height: 1; text-align: center; color: var(--muted) !important; background: none; }
.drawer:not(#svz) .woocommerce-mini-cart-item .remove:hover { background: var(--well); color: var(--red) !important; }
.drawer:not(#svz) .woocommerce-mini-cart__total { margin: 0; }
/* Hidden products (promo items, the donation) have no link, so their name is bare text in the row: bold the row, not just links. */
.drawer:not(#svz) .woocommerce-mini-cart-item { font-weight: 700; line-height: 1.25; }
.drawer:not(#svz) .woocommerce-mini-cart-item .quantity, .drawer:not(#svz) .woocommerce-mini-cart-item dl.variation dd { font-weight: 400; }
.drawer:not(#svz) .woocommerce-mini-cart-item dl.variation dt { font-weight: 700; }

/* ---------- Woo pages ---------- */
.woo-main, .page-main { padding-top: 32px; padding-bottom: 24px; min-height: 40vh; }
.page-title, .woocommerce-products-header__title, .woocommerce div.product .product_title { font-family: var(--display); font-size: clamp(32px, 4vw, 52px); line-height: .98; letter-spacing: -.032em; font-weight: 700; margin-bottom: 20px; }
.woocommerce-products-header { color: var(--red); margin-bottom: 8px; text-align: center; }
/* Shop / category header matches the homepage section heads: big red headline, one red sentence under it. */
.woocommerce-products-header__title { color: var(--red); font-size: clamp(40px, 5.4vw, 76px); line-height: .95; margin-bottom: 0; }
.woocommerce-products-header .term-description, .woocommerce-products-header .page-description { color: var(--red); font-size: clamp(16px, 1.6vw, 20px); line-height: 1.35; max-width: 60ch; margin: 10px auto 0; }
.woocommerce-products-header .term-description p, .woocommerce-products-header .page-description p { margin: 0; }
.woo-main > .page-title { color: var(--red); text-align: center; font-size: clamp(40px, 5.4vw, 76px); line-height: .95; margin-bottom: 0; }
.woo-main > .term-description, .woo-main > .page-description { color: var(--red); font-size: clamp(16px, 1.6vw, 20px); line-height: 1.35; max-width: 60ch; margin: 10px auto 0; text-align: center; }
.woo-main > .term-description p, .woo-main > .page-description p { margin: 0; }
.woocommerce .woocommerce-breadcrumb { font-size: 13px; color: var(--muted); margin-bottom: 18px; }
.woocommerce .woocommerce-breadcrumb a { color: var(--ink-2); }
.crumb-sep { margin: 0 8px; color: var(--line); }
.woocommerce .woocommerce-ordering { float: none; display: flex; justify-content: center; margin: 24px 0 32px; }
.woocommerce .woocommerce-ordering select { height: 44px; min-width: 220px; border: 1px solid var(--muted); border-radius: 999px; padding: 0 52px 0 22px; font: inherit; font-size: 15px; color: var(--ink); cursor: pointer; -webkit-appearance: none; appearance: none; background: var(--white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 22px center; }
.woocommerce .woocommerce-ordering select:hover { border-color: var(--ink); }
.woocommerce .woocommerce-ordering select:focus { outline: none; border-color: var(--red); box-shadow: 0 0 0 1px var(--red); }
/* Load more (vz.js); the numbered pages stay in the HTML for search engines and no-JS visits */
.svz-more { display: flex; flex-direction: column; align-items: center; gap: 14px; margin: 48px auto 0; max-width: 320px; text-align: center; }
.svz-more__count { margin: 0; font-size: 15px; color: var(--ink-2); }
.svz-more__bar { display: block; width: 100%; height: 4px; border-radius: 2px; background: var(--line); overflow: hidden; }
.svz-more__bar span { display: block; height: 100%; background: var(--red); transition: width .3s; }
.svz-more__btn { min-width: 200px; background: var(--white); color: var(--red); }
.svz-more__btn:hover { background: var(--red); color: var(--white); }
.svz-more.is-busy .svz-more__btn { opacity: .6; pointer-events: none; }
.svz-more-ready nav.woocommerce-pagination { display: none; }
.woocommerce nav.woocommerce-pagination { margin-top: 40px; }
.woocommerce nav.woocommerce-pagination ul { border: 0; display: flex; gap: 6px; justify-content: center; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; }
.woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; padding: 0; }
.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--red); color: var(--white); }

.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, .woocommerce #place_order { border-radius: 999px; background: var(--red); color: var(--white); font-weight: 700; padding: 0 24px; min-height: 44px; line-height: 44px; font-size: 16px; border: 0; }
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover, .woocommerce #place_order:hover { background: var(--ink-2); color: var(--white); }
.woocommerce button.button.alt.disabled, .woocommerce button.button.alt:disabled, .woocommerce button.button.alt:disabled[disabled],
.woocommerce button.button.alt.disabled:hover, .woocommerce button.button.alt:disabled:hover, .woocommerce button.button.alt:disabled[disabled]:hover,
.woocommerce button.button.disabled:hover, .woocommerce button.button:disabled:hover, .woocommerce button.button:disabled[disabled]:hover { background: var(--red); color: var(--white); opacity: .35; cursor: not-allowed; }

.woocommerce div.product { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 48px; align-items: start; }
.woocommerce div.product div.images, .woocommerce div.product div.summary { width: auto; float: none; margin: 0; }
.woocommerce div.product div.images .woocommerce-product-gallery__wrapper { border-radius: var(--radius); overflow: hidden; background: var(--well); }
.woocommerce div.product div.images img { mix-blend-mode: multiply; }
/* Hover zoom: the enlarged copy sits on top of the photo, so it must not blend (else both show through). */
.woocommerce div.product div.images img.zoomImg { mix-blend-mode: normal; background: var(--white); }
.woocommerce div.product div.images .flex-control-thumbs { display: flex; gap: 10px; margin-top: 10px; }
.woocommerce div.product div.images .flex-control-thumbs li { width: 72px; }
.woocommerce div.product div.images .flex-control-thumbs img { border-radius: 8px; background: var(--well); }
.woocommerce div.product p.price, .woocommerce div.product span.price { color: var(--ink); font-size: 24px; font-weight: 700; }
.woocommerce div.product .woocommerce-product-details__short-description { color: var(--ink-2); margin: 16px 0; }
.woocommerce div.product form.cart { margin: 24px 0; }
.woocommerce div.product form.cart .variations { margin-bottom: 12px; }
.woocommerce div.product form.cart .variations th, .woocommerce div.product form.cart .variations td { display: block; padding: 0; text-align: left; }
.woocommerce div.product form.cart .variations label { font-weight: 700; font-size: 14px; }
.woocommerce div.product form.cart .variations select { width: 100%; max-width: 320px; margin: 6px 0 12px; }
.woocommerce div.product form.cart .reset_variations { font-size: 13px; color: var(--muted); }
.woocommerce div.product form.cart .quantity .qty { width: 80px; text-align: center; }
.woocommerce div.product form.cart .button { min-width: 200px; }
.woocommerce div.product .stock { color: var(--ink-2); font-size: 14px; }
.woocommerce div.product .stock.out-of-stock { color: var(--red); }
.woocommerce div.product .product_meta { font-size: 13px; color: var(--muted); border-top: 1px solid var(--line); padding-top: 16px; }
.woocommerce div.product .woocommerce-tabs, .woocommerce div.product .related, .woocommerce div.product .upsells { grid-column: 1 / -1; }
.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0; margin: 0 0 20px; border-bottom: 1px solid var(--line); display: flex; gap: 24px; }
.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 { background: none; border: 0; margin: 0; padding: 0; border-radius: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { padding: 12px 0; font-weight: 700; color: var(--muted); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--ink); box-shadow: inset 0 -4px 0 var(--red); }
.woocommerce div.product .woocommerce-tabs .panel h2:first-child { display: none; }
.woocommerce div.product .related > h2, .woocommerce div.product .upsells > h2 { font-size: clamp(30px, 3.6vw, 48px); letter-spacing: -.03em; color: var(--red); text-align: center; margin: 48px 0 28px; }
@media (max-width: 860px) { .woocommerce div.product { grid-template-columns: 1fr; gap: 24px; } }

/* ---------- Product page (verizon.com product-page feel): gallery left, sticky buy column right ---------- */
.woocommerce div.product { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 56px; }
.woocommerce div.product div.summary { position: sticky; top: 148px; align-self: start; }
.admin-bar .woocommerce div.product div.summary { top: 180px; }
.woocommerce div.product div.images { position: relative; }
.woocommerce div.product div.images .woocommerce-product-gallery__image img { aspect-ratio: 1; object-fit: contain; }
.woocommerce div.product div.images .woocommerce-product-gallery__trigger { z-index: 3; top: 16px; right: 16px; width: 40px; height: 40px; border-radius: 50%; background: var(--white); box-shadow: 0 1px 4px rgba(0,0,0,.12); }
.woocommerce div.product div.images .flex-control-thumbs { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; margin-top: 12px; }
.woocommerce div.product div.images .flex-control-thumbs li { width: auto; float: none; margin: 0; }
.woocommerce div.product div.images .flex-control-thumbs img { aspect-ratio: 1; object-fit: contain; border-radius: 10px; border: 2px solid transparent; opacity: 1; mix-blend-mode: multiply; }
.woocommerce div.product div.images .flex-control-thumbs img.flex-active, .woocommerce div.product div.images .flex-control-thumbs img:hover { border-color: var(--ink); }
.woocommerce span.onsale { top: 16px; left: 16px; right: auto; min-height: 0; min-width: 0; line-height: 1.3; padding: 5px 12px; border-radius: 999px; background: var(--red); font-size: 13px; font-weight: 700; z-index: 2; }
.pdp-brand { display: inline-block; color: var(--ink-2); margin-bottom: 10px; }
a.pdp-brand:hover { color: var(--red); }
.woocommerce div.product .product_title { font-size: clamp(32px, 3.4vw, 48px); margin-bottom: 12px; color: var(--red); }
.woocommerce div.product .summary > .price { font-size: 26px; margin-bottom: 18px; }
.woocommerce div.product .woocommerce-product-details__short-description { font-size: 16px; line-height: 1.5; margin: 0 0 24px; }
.woocommerce div.product .woocommerce-product-details__short-description ul { list-style: disc; padding-left: 1.2em; margin-top: 8px; }
.pdp-note { background: var(--cream); border-radius: 12px; padding: 14px 18px; font-size: 14px; margin: 0 0 20px; }

/* Variations: label + size buttons; the real <select> stays in the form, hidden */
.woocommerce div.product form.cart { margin: 0 0 24px; }
.woocommerce div.product form.cart .variations { width: 100%; margin: 0 0 4px; border: 0; }
.woocommerce div.product form.cart .variations tr { display: block; margin-bottom: 18px; }
.woocommerce div.product form.cart .variations th, .woocommerce div.product form.cart .variations td { display: block; padding: 0; line-height: 1.4; }
.woocommerce div.product form.cart .variations th label { font-size: 15px; font-weight: 700; }
.pdp-picked { font-weight: 400; color: var(--ink-2); }
.pdp-select-hidden { position: absolute !important; width: 1px !important; height: 1px !important; opacity: 0; pointer-events: none; }
.pdp-sizes { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 10px; }
.pdp-sizes button { min-width: 60px; height: 46px; padding: 0 16px; border-radius: 999px; border: 1px solid var(--muted); background: var(--white); font-size: 15px; font-weight: 700; transition: border-color .15s, background .15s, color .15s, box-shadow .15s; }
.pdp-sizes button:hover:not(:disabled) { border-color: var(--ink); box-shadow: inset 0 0 0 1px var(--ink); }
.pdp-sizes button[aria-pressed="true"] { background: var(--red); border-color: var(--red); color: var(--white); }
.pdp-sizes button:disabled, .pdp-sizes button.is-soldout { color: #b5b5b5; border-color: var(--line); border-style: dashed; text-decoration: line-through; }
.pdp-sizes button:disabled { cursor: not-allowed; }
.pdp-sizes button.is-soldout[aria-pressed="true"] { background: var(--white); color: var(--red); border-color: var(--red); border-style: dashed; box-shadow: inset 0 0 0 1px var(--red); }

/* Back In Stock Notifications: "Notify me" form under a sold-out size (and on sold-out simple products). */
#wc_bis_product_form { width: 100%; margin: 4px 0 8px; padding: 20px; border: 2px solid var(--red); border-radius: var(--radius-sm); background: var(--white); display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
#wc_bis_product_form .wc_bis_form_title { flex-basis: 100%; margin: 0 0 2px; font-family: var(--display); font-size: 20px; line-height: 1.15; font-weight: 700; letter-spacing: -.015em; color: var(--red); }
#wc_bis_product_form #wc_bis_email { flex: 1 1 220px; min-width: 0; height: 46px; margin: 0; padding: 0 16px; font-size: 16px; border: 1.5px solid var(--line); border-radius: var(--radius-sm); background: var(--white); }
#wc_bis_product_form #wc_bis_email:focus { outline: none; border-color: var(--red); box-shadow: 0 0 0 1px var(--red); }
.woocommerce #wc_bis_product_form #wc_bis_send_form { height: 46px; margin: 0; padding: 0 24px; border-radius: 999px; border: 0; background: var(--red); color: var(--white); font-size: 15px; font-weight: 700; opacity: 1; cursor: pointer; }
.woocommerce #wc_bis_product_form #wc_bis_send_form:hover { background: var(--red-hover); color: var(--white); }
#wc_bis_product_form .wc_bis_registrations_count { flex-basis: 100%; font-size: 13px; color: var(--muted); }
#wc_bis_product_form .wc_bis_opt_in { flex-basis: 100%; display: flex; gap: 8px; align-items: flex-start; font-size: 13px; }
.woocommerce div.product form.cart .reset_variations { display: inline-block; margin-top: 10px; font-size: 13px; color: var(--ink-2); text-decoration: underline; }
.woocommerce div.product .woocommerce-variation-price .price { font-size: 22px; }
.woocommerce div.product .woocommerce-variation-availability .stock { margin: 4px 0 0; }
.woocommerce div.product .single_variation_wrap .woocommerce-variation { margin-bottom: 16px; }

/* Quantity stepper + add to cart on one row */
.woocommerce div.product form.cart:not(.variations_form), .woocommerce div.product .woocommerce-variation-add-to-cart { display: flex; gap: 12px; align-items: stretch; flex-wrap: wrap; }
.woocommerce div.product form.cart div.quantity { float: none; margin: 0; display: inline-flex; align-items: center; }
.woocommerce div.product form.cart .quantity.has-stepper { border: 1px solid var(--muted); border-radius: 999px; height: 52px; padding: 0 4px; }
.woocommerce div.product form.cart .quantity.has-stepper .qty { width: 46px; height: 44px; min-height: 0; border: 0; padding: 0; text-align: center; font-size: 17px; font-weight: 700; background: transparent; -moz-appearance: textfield; }
.woocommerce div.product form.cart .quantity.has-stepper .qty::-webkit-outer-spin-button, .woocommerce div.product form.cart .quantity.has-stepper .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.qty-step { width: 40px; height: 40px; border-radius: 50%; font-size: 22px; line-height: 1; display: grid; place-items: center; }
.qty-step:hover { background: var(--well); }
.woocommerce div.product form.cart .button.single_add_to_cart_button { flex: 1 1 140px; min-height: 52px; line-height: 52px; font-size: 17px; float: none; }

/* Gift codes (Smart Coupons): "Purchase Gift Code worth" amount box, and the "Send Coupons to..." recipient card inside form.cart. */
.woocommerce div.product .summary > br { display: none; } /* the plugin's template wraps its box in <br>s */
.woocommerce div.product #call_for_credit { margin: 24px 0 20px; }
.woocommerce div.product #call_for_credit .wc-sc-row { margin: 0; }
.woocommerce div.product #call_for_credit .wc-sc-label, .woocommerce div.product #call_for_credit .wc-sc-input { float: none; width: auto; }
.woocommerce div.product #call_for_credit label { display: block; margin: 0 0 8px; font-size: 15px; font-weight: 700; }
.woocommerce div.product #call_for_credit input#credit_called { position: static; transform: none; width: 100%; max-width: 240px; height: 52px; padding: 0 16px; border: 1px solid var(--muted); border-radius: 8px; background: var(--white); font-size: 20px; font-weight: 700; -moz-appearance: textfield; }
.woocommerce div.product #call_for_credit input#credit_called::-webkit-outer-spin-button, .woocommerce div.product #call_for_credit input#credit_called::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.woocommerce div.product #call_for_credit input#credit_called:focus { outline: none; border-color: var(--red); box-shadow: 0 0 0 1px var(--red); }
.woocommerce div.product #call_for_credit .wc-sc-error { margin: 6px 0 0; font-size: 14px; color: var(--red) !important; }
.woocommerce div.product #call_for_credit .wc-sc-error:empty { display: none; }
.woocommerce div.product form.cart .wc-sc-gift-card-receiver-detail-container { flex: 1 1 100%; margin: 0 0 8px; padding: 22px; border: 2px solid var(--red); border-radius: var(--radius); background: var(--white); }
.woocommerce div.product form.cart .wc-sc-gift-card-receiver-detail-container > label { margin: 0 0 4px; font-family: var(--display); font-size: 22px; line-height: 1.1; letter-spacing: -.015em; font-weight: 700; color: var(--red); }
.woocommerce div.product form.cart .wc-sc-product-page-gift-form .gift-certificate-receiver-detail-form { margin-top: 14px; }
.wc-sc-product-page-gift-form .wc-sc-gift-accordion { margin-bottom: 10px; border: 1px solid var(--line); border-radius: var(--radius-sm); }
.wc-sc-product-page-gift-form .wc-sc-gift-accordion-header, .wc-sc-product-page-gift-form .wc-sc-gift-accordion-header:hover, .wc-sc-product-page-gift-form .wc-sc-gift-accordion.expanded .wc-sc-gift-accordion-header { padding: 14px 16px 0; background: var(--white); border-bottom: 0; }
.wc-sc-product-page-gift-form .wc-sc-accordion-coupon-info { margin-bottom: 8px; font-size: 14px; font-weight: 700; color: var(--ink); }
.wc-sc-product-page-gift-form .wc-sc-gift-accordion-header { position: relative; }
.wc-sc-product-page-gift-form .wc-sc-accordion-title-wrap { padding-right: 0; }
.wc-sc-product-page-gift-form .accordion-toggle { position: absolute; top: 14px; right: 16px; margin: 0; color: var(--red); }
.wc-sc-product-page-gift-form .wc-sc-gift-accordion:not(.expanded) .wc-sc-gift-accordion-header { padding-bottom: 14px; }
.wc-sc-product-page-gift-form .wc-sc-gift-accordion-content { padding: 10px 16px 16px; }
.wc-sc-product-page-gift-form .wc-sc-gift-item:not(:last-child) { border-bottom-color: var(--line); }
.wc-sc-product-page-gift-form .wc-sc-accordion-email-wrap input.gift_receiver_email, .wc-sc-product-page-gift-form .email_sending_date_time_wrapper input, .wc-sc-product-page-gift-form .message_row textarea { min-height: 44px; padding: 10px 12px; border: 1px solid var(--muted); border-radius: 8px; font-size: 15px; color: var(--ink); }
.wc-sc-product-page-gift-form .message_row textarea { min-height: 96px; }
.wc-sc-product-page-gift-form .wc-sc-accordion-email-wrap input.gift_receiver_email:focus, .wc-sc-product-page-gift-form .email_sending_date_time_wrapper input:focus, .wc-sc-product-page-gift-form .message_row textarea:focus { border-color: var(--red); box-shadow: 0 0 0 1px var(--red); }
@media (max-width: 700px) { .woocommerce div.product form.cart .wc-sc-gift-card-receiver-detail-container { padding: 18px 16px; } }

/* Shipping / help strip */
.pdp-assure { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 14px 0; margin: 0 0 8px; display: grid; gap: 12px; font-size: 14px; }
.pdp-assure li { display: flex; align-items: center; gap: 12px; }
.pdp-assure svg { flex: none; color: var(--red); }
.pdp-assure a { text-decoration: underline; }
.pdp-assure a:hover { color: var(--red); }
.woocommerce div.product .product_meta { border: 0; padding: 8px 0 0; }
.woocommerce div.product .product_meta > span { display: block; margin-top: 4px; }

/* Accordions (were tabs) */
.pdp-acc { margin-top: 20px; border-bottom: 1px solid var(--line); }
.pdp-acc__item { border-top: 1px solid var(--line); }
.pdp-acc__item summary { list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 18px 0; font-size: 18px; font-weight: 700; cursor: pointer; }
.pdp-acc__item summary::-webkit-details-marker { display: none; }
.pdp-acc__item summary .svz-icon { transition: transform .2s; }
.pdp-acc__item[open] summary .svz-icon { transform: rotate(45deg); }
.pdp-acc__body { padding: 0 0 20px; font-size: 15px; color: var(--ink-2); }
.pdp-acc__body > * + * { margin-top: .8em; }
.pdp-acc__body img { border-radius: 10px; }
.pdp-acc__body table { width: 100%; border-collapse: collapse; font-size: 13px; }
.pdp-acc__body th, .pdp-acc__body td { border: 1px solid var(--line); padding: 6px 8px; text-align: center; }
.pdp-acc__body ul { list-style: disc; padding-left: 1.2em; }

.woocommerce .related > h2, .woocommerce .upsells > h2 { font-size: clamp(40px, 5.4vw, 76px); line-height: 1; letter-spacing: -.035em; font-weight: 700; color: var(--red); text-align: center; margin: 72px 0 36px; }
@media (max-width: 860px) {
	.woocommerce div.product { grid-template-columns: minmax(0, 1fr); gap: 24px; }
	.woocommerce div.product div.summary { position: static; }
	.woocommerce div.product div.images .flex-control-thumbs { grid-template-columns: repeat(5, 1fr); gap: 8px; }
	.pdp-sizes button { min-width: 54px; height: 44px; }
}

/* All store notices (errors, "added to cart", info): red border, white background, red icon, black text. */
.woocommerce-message, .woocommerce-info, .woocommerce-error { border: 2px solid var(--red); background: var(--white); border-radius: var(--radius-sm); color: var(--ink); }
.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before { color: var(--red); }
.page-main--woo .entry ul.woocommerce-error { padding-left: 3.5em; } /* the list reset above would put Woo's icon over the text */
/* Minimum quantities (VZ Minimum Quantities plugin): note under a short product's row, the disabled checkout button, and the checkout "needs a change" card. */
.vzmq-row-note { margin: 6px 0 0; padding: 6px 10px; border-left: 3px solid var(--red); background: #fff4f4; color: var(--ink); font-size: 13px; font-weight: 700; line-height: 1.35; }
.wc-proceed-to-checkout .vzmq-blocked { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 56px; padding: 0 20px; border: 1.5px solid var(--line); border-radius: 999px; background: var(--well); color: #6f7171; font-size: 16px; font-weight: 700; text-align: center; cursor: not-allowed; }
.svz-cart-errors { max-width: 720px; margin: 8px auto 0; padding: 28px 32px; border: 2px solid var(--red); border-radius: var(--radius); background: var(--white); }
.svz-cart-errors h2 { margin: 0 0 12px; color: var(--red); font-family: var(--display, inherit); font-size: clamp(22px, 2.2vw, 28px); line-height: 1.15; letter-spacing: -.01em; }
.page-main--woo .entry .svz-cart-errors ul { margin: 0 0 20px; padding: 0; list-style: none; display: grid; gap: 10px; }
.svz-cart-errors li, .svz-cart-errors p { margin: 0; font-size: 16px; line-height: 1.45; }
.svz-cart-errors li { padding: 12px 14px; border-left: 3px solid var(--red); background: #fff4f4; border-radius: 0 8px 8px 0; }
.svz-cart-errors p + p, .svz-cart-errors p:last-child { margin-top: 20px; }
@media (max-width: 600px) { .svz-cart-errors { padding: 22px 18px; } }
.woocommerce-message .button, .woocommerce-info .button { min-height: 36px; line-height: 36px; font-size: 14px; }
/* Notice with a button: text first, button after it (wraps under the text on phones instead of covering it). */
.woocommerce-message:has(.button), .woocommerce-info:has(.button) { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.woocommerce-message:has(.button)::after, .woocommerce-info:has(.button)::after { display: none; }
.woocommerce-message:has(.button)::before, .woocommerce-info:has(.button)::before { top: 50%; transform: translateY(-50%); } /* the button makes the box taller: keep the icon level with the text */
.woocommerce-message .button, .woocommerce-info .button { order: 2; float: none; margin: 0; }
.woocommerce table.shop_table { border-radius: var(--radius-sm); border-color: var(--line); }
.woocommerce table.shop_table th { font-weight: 700; }
.woocommerce .cart_totals h2, .woocommerce-checkout h3 { font-size: 24px; letter-spacing: -.02em; margin-bottom: 12px; }
.nf .section-head { margin-top: 40px; }
.nf-actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.entry > * + * { margin-top: 1em; }
.entry h2 { font-size: 30px; letter-spacing: -.02em; margin-top: 1.4em; }
.entry ul { list-style: disc; padding-left: 1.4em; }
.entry a { text-decoration: underline; }
/* Store pages (cart, checkout, account) style their own links and headings. */
.page-main--woo .entry a { text-decoration: none; }
.page-main--woo .entry h2 { margin-top: 0; }
.page-main--woo .entry > * + * { margin-top: 0; }
.page-main--woo .entry ul { list-style: none; padding-left: 0; }

/* ---------- Page headlines on cart / checkout / account: red and centered like the section intros ---------- */
.page-main--woo .page-title { color: var(--red); text-align: center; font-size: clamp(40px, 5.4vw, 76px); line-height: 1; letter-spacing: -.035em; margin: 8px 0 32px; }
/* Sub text under a page headline (checkout's coupon reminder), same as category descriptions. */
.page-main--woo .page-title:has(+ .page-sub) { margin-bottom: 0; }
/* Product-grid pages with an excerpt (Last Chance Items): same header as a category page. */
.page-title--shop { color: var(--red); text-align: center; font-size: clamp(40px, 5.4vw, 76px); line-height: .95; margin-bottom: 36px; }
.page-title--shop:has(+ .page-sub) { margin-bottom: 0; }
.page-sub { color: var(--red); text-align: center; font-size: clamp(16px, 1.6vw, 20px); line-height: 1.35; max-width: 60ch; margin: 10px auto 36px; }

/* Smart Coupons: "Available Coupons" box (cart, checkout) and the My Account Coupons list. Its colors come from
   three :root variables set in its settings (black / cream / #d90429); redefined here to the Verizon palette, and
   its ticket chrome (inline border color, translate-on-hover, shadow) reset to the theme's cards. */
#coupons_list, .sc-coupons-list, .woocommerce-MyAccount-content { --sc-color1: var(--ink); --sc-color2: var(--white); --sc-color3: var(--red); }
#coupons_list { margin: 0 0 28px; padding: 0; border: 2px solid var(--red) !important; border-radius: var(--radius) !important; background: var(--white) !important; overflow: hidden; }
#coupons_list .sc-accordion-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 22px; margin: 0; background: none; border: 0; cursor: pointer; }
#coupons_list .sc-accordion-title { font-family: var(--display); font-size: 20px; line-height: 1.1; letter-spacing: -.015em; font-weight: 700; color: var(--red); }
#coupons_list .sc-available-coupons-count { display: inline; margin: 0; padding: 0; background: none; color: inherit; font: inherit; }
#coupons_list .sc-accordion-header svg { width: 20px; height: 20px; color: var(--red); flex: 0 0 auto; }
#coupons_list .sc-accordion-content { padding: 0 22px 20px; margin: 0; border: 0; background: var(--white) !important; }
#coupons_list .sc-accordion-content.open { max-height: none !important; overflow: visible !important; } /* Smart Coupons caps it at 144px and scrolls */
#coupons_list #sc-cc, #coupons_list .sc-coupons-list { width: auto !important; max-width: 100%; }
.sc-coupons-list { display: flex; flex-wrap: wrap; gap: 12px; }
.sc-coupon.sc-coupon { position: relative; flex: 1 1 260px; max-width: 380px; min-width: 0; min-height: 0 !important; margin: 0; background: var(--white) !important; color: var(--ink) !important; border: 1.5px solid var(--line) !important; border-radius: var(--radius-sm) !important; box-shadow: none !important; transform: none !important; cursor: pointer; transition: border-color .15s, box-shadow .15s; }
.sc-coupon.sc-coupon:hover, .sc-coupon.sc-coupon:focus-within { border-color: var(--red) !important; box-shadow: inset 0 0 0 1px var(--red) !important; }
.sc-coupon .flex.items-center.gap-3 { padding: 12px 14px 10px; gap: 12px; align-items: center; }
.sc-coupon .leading-none > .inline-flex { font-family: var(--display); font-size: 26px; line-height: 1; font-weight: 700; letter-spacing: -.02em; color: var(--red) !important; }
.sc-coupon .text-xs.uppercase { margin-top: 4px; font-size: 11px; font-weight: 700; letter-spacing: .03em; color: var(--muted); }
.sc-coupon .text-sm.leading-tight { font-size: 13px; line-height: 1.3; color: var(--ink-2); }
.sc-coupon .border-dotted { padding: 8px 14px 9px !important; border-top: 1px dashed var(--line) !important; filter: none !important; color: var(--ink) !important; font-size: 12px; }
.sc-coupon .border-dotted svg { width: 15px; height: 15px; margin-right: 5px; color: var(--red) !important; }
.sc-coupon .font-mono { font-family: var(--font) !important; font-weight: 700; letter-spacing: .04em; }
.sc-coupon .validity { color: var(--muted); }
@media (max-width: 600px) {
	#coupons_list .sc-accordion-header { padding: 14px 16px; }
	#coupons_list .sc-accordion-content { padding: 0 16px 16px; }
	.sc-coupon.sc-coupon { flex: 1 1 100%; }
}

/* VtoV donation (Donation for WooCommerce shortcode on the Checkout page). The plugin prints its own colors
   inline with an ID and !important; :not(#svz) gives these rules the ID weight to win. */
.widget_wc-donation-widget:not(#svz) { margin: 0 0 24px; } /* same gap as the coupons box to Billing details */
/* Leftovers in the Checkout page content once the coupon reminder box moves under the headline (wpautop line break, empty paragraph). */
.woocommerce-checkout .info-text-checkout > br, .woocommerce-checkout .info-text-checkout > p:empty { display: none; }
/* Smart Coupons' coupon message holder (top of the checkout form) keeps 10px padding top and bottom even with no
   message, when it only holds an empty .no_wc_coupon_message marker. */
.wc_coupon_message_wrap:has(> .no_wc_coupon_message) { display: none; }
.widget_wc-donation-widget:not(#svz) .wc-donation-in-action { display: block; padding: 24px 28px; border: 2px solid var(--red); border-radius: var(--radius); background: var(--white); }
.widget_wc-donation-widget:not(#svz) .campaign-title { margin: 0 0 6px; }
.widget_wc-donation-widget:not(#svz) .campaign-title h4 { margin: 0; font-family: var(--font); font-size: 13px; line-height: 1.2; font-weight: 700; letter-spacing: .02em; text-transform: uppercase; color: var(--red); }
.widget_wc-donation-widget:not(#svz) .block-campaign-thumbnail { display: none; }
/* One line: preset amounts, the custom amount (always open, so no "Other" button), then Donate. */
.widget_wc-donation-widget:not(#svz) .in-action-elements { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; height: auto; margin: 0; }
.widget_wc-donation-widget:not(#svz) .in-action-elements > * { height: auto; line-height: normal; margin: 0; }
.widget_wc-donation-widget:not(#svz) .in-action-elements > .row1 { display: contents; }
.widget_wc-donation-widget:not(#svz) .wc-donation-title { flex-basis: 100%; margin: 0 0 8px !important; font-family: var(--display); font-size: clamp(18px, 1.7vw, 22px); line-height: 1.2; letter-spacing: -.015em; font-weight: 700; color: var(--ink); }
.widget_wc-donation-widget:not(#svz) .in-action-elements .row1 .row1 { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 0; height: auto; }
.widget_wc-donation-widget:not(#svz) label.wc-label-button { position: relative; display: inline-flex; align-items: center; justify-content: center; width: auto; min-width: 72px; height: 44px; margin: 0; padding: 0 18px; border: 1.5px solid var(--line) !important; border-radius: 999px; background: var(--white) !important; color: var(--ink) !important; font-size: 15px; font-weight: 700; line-height: 1; cursor: pointer; transition: border-color .15s, background .15s, color .15s; }
.widget_wc-donation-widget:not(#svz) label.wc-label-button:hover { border-color: var(--red) !important; }
.widget_wc-donation-widget:not(#svz) label.wc-label-button.wc-active { background: var(--red) !important; border-color: var(--red) !important; color: var(--white) !important; }
.widget_wc-donation-widget:not(#svz) label.wc-label-button input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; }
.widget_wc-donation-widget:not(#svz) label.wc-label-button:has(input[id^="wc-donation-other-amount"]) { display: none; }
.widget_wc-donation-widget:not(#svz) .price-wrapper { display: inline-flex !important; align-items: stretch; width: 184px; max-width: 100%; height: 44px; border: 1.5px solid var(--line); border-radius: 999px; overflow: hidden; background: var(--white); }
.widget_wc-donation-widget:not(#svz) .price-wrapper::before { display: flex; align-items: center; padding: 0 12px; background: var(--well) !important; color: var(--ink) !important; font-weight: 700; }
.widget_wc-donation-widget:not(#svz) .price-wrapper .wc-input-text { display: block !important; flex: 1 1 auto; width: 100%; min-width: 0; height: 100%; margin: 0; padding: 0 14px; border: 0 !important; border-radius: 0; font-size: 15px; background: var(--white); box-shadow: none; }
.widget_wc-donation-widget:not(#svz) .price-wrapper:focus-within { border-color: var(--red); }
.widget_wc-donation-widget:not(#svz) .price-wrapper .wc-input-text:focus { outline: none; }
.widget_wc-donation-widget:not(#svz) .row2 { margin: 0; }
.widget_wc-donation-widget:not(#svz) .wc-donation-f-submit-donation { display: inline-flex; align-items: center; height: 44px; margin: 0; padding: 0 26px; border: 0; border-radius: 999px; background: var(--red) !important; color: var(--white) !important; font-family: var(--font); font-size: 15px; font-weight: 700; line-height: 1; cursor: pointer; transition: background .15s; }
.widget_wc-donation-widget:not(#svz) .wc-donation-f-submit-donation:hover { background: var(--red-hover) !important; }
@media (max-width: 600px) {
	.widget_wc-donation-widget:not(#svz) .wc-donation-in-action { padding: 18px; }
	.widget_wc-donation-widget:not(#svz) .in-action-elements .row1 .row1 { flex-basis: 100%; }
	.widget_wc-donation-widget:not(#svz) label.wc-label-button { min-width: 0; flex: 1 1 0; padding: 0 8px; }
	.widget_wc-donation-widget:not(#svz) .price-wrapper { flex: 1 1 auto; width: auto; }
}

.acct-head { margin: 8px auto 32px; }
.acct-head h1 { margin: 0; }

/* ---------- My Account (verizon.com cards: red outline, red type, one solid red card) ---------- */
.woocommerce-account .woocommerce { max-width: 1040px; margin: 0 auto; }
.woocommerce-account .woocommerce::after { content: ""; display: table; clear: both; }
.woocommerce-account .woocommerce-MyAccount-navigation, .woocommerce-account .woocommerce-MyAccount-content { float: none; width: auto; }
.woocommerce-account .woocommerce-MyAccount-navigation { margin: 0 0 36px; }
.woocommerce-MyAccount-navigation ul { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; }
.woocommerce-MyAccount-navigation li a { display: flex; align-items: center; height: 40px; padding: 0 18px; border-radius: 999px; border: 1px solid var(--line); font-size: 14px; font-weight: 700; transition: border-color .15s, background .15s, color .15s; }
.woocommerce-MyAccount-navigation li a:hover { border-color: var(--ink); }
.woocommerce-MyAccount-navigation li.is-active a { background: var(--red); border-color: var(--red); color: var(--white); }
.woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout a { border-color: var(--red); color: var(--red); }
.woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout a:hover { background: var(--red); color: var(--white); }
.svz-account--dashboard .woocommerce-MyAccount-navigation { display: none; }

/* Dashboard cards */
.acct-cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.acct-card { position: relative; display: flex; flex-direction: column; gap: 8px; min-height: 230px; padding: 30px 30px 64px; border-radius: 24px; border: 2px solid var(--red); color: var(--red); background: var(--white); transition: transform .2s, background .2s; }
.acct-card:hover { transform: translateY(-3px); }
.acct-card h2 { font-size: clamp(34px, 3.6vw, 54px); line-height: .95; letter-spacing: -.035em; font-weight: 700; }
.acct-card p { font-size: 18px; line-height: 1.3; font-weight: 700; max-width: 26ch; }
.acct-card .svz-icon { position: absolute; right: 26px; bottom: 24px; transition: transform .2s; }
.acct-card:hover .svz-icon { transform: translateX(4px); }
.acct-card--red { background: var(--red); color: var(--white); }
.acct-logout { text-align: center; margin-top: 24px; color: var(--muted); font-size: 14px; }
.woocommerce-account .acct-logout a { color: var(--ink); font-weight: 700; text-decoration: underline; }
.woocommerce-account .acct-logout a:hover { color: var(--red); }
@media (max-width: 600px) { .acct-cards { grid-template-columns: 1fr; } .acct-card { min-height: 170px; padding: 24px 24px 56px; } }

/* Forms on red-outline cards (account details, addresses, sign in, password reset) */
.woocommerce-account .woocommerce-MyAccount-content > form, .woocommerce-account form.woocommerce-form-login, .woocommerce-account form.woocommerce-form-register, .woocommerce-account form.woocommerce-ResetPassword { border: 2px solid var(--red); border-radius: 24px; padding: 40px; margin: 0 auto; max-width: 760px; }
.woocommerce-account form.woocommerce-form-login, .woocommerce-account form.woocommerce-ResetPassword { max-width: 520px; }
.woocommerce-account .woocommerce-MyAccount-content > form > h2, .woocommerce-account .woocommerce-MyAccount-content > form > h3, .woocommerce-account #customer_login h2 { color: var(--red); font-size: clamp(28px, 3vw, 40px); letter-spacing: -.03em; line-height: 1; margin-bottom: 20px; }
.woocommerce-account .woocommerce-form-login > h2 { display: none; }
.svz-account--login .woocommerce > h2, .svz-account--lost-password .woocommerce > h2 { display: none; }
.woocommerce-account form .form-row { margin-bottom: 16px; padding: 0; }
.woocommerce-account form .form-row label { display: block; margin-bottom: 6px; }
.woocommerce-account form .form-row .required { color: var(--red); text-decoration: none; }
.woocommerce-account form .form-row input.input-text { width: 100%; }
.woocommerce-account form .form-row input.input-text:focus, .woocommerce-account form .form-row select:focus, .woocommerce-account .select2-container--focus .select2-selection, .woocommerce-account .select2-container--open .select2-selection { outline: none; border-color: var(--red); box-shadow: 0 0 0 1px var(--red); }
.woocommerce-account form .form-row em, .woocommerce-account #account_display_name_description em { display: block; font-style: normal; font-size: 13px; color: var(--muted); margin-top: 6px; }
.woocommerce-account form fieldset { border: 1px solid var(--line); border-radius: 16px; padding: 18px 22px 6px; margin: 24px 0; }
.woocommerce-account form fieldset legend { color: var(--red); font-weight: 700; font-size: 18px; padding: 0 8px; margin-left: -8px; }
.woocommerce-account form .button { min-width: 180px; }
.woocommerce-account .woocommerce-form-login .woocommerce-form-login__rememberme { display: inline-flex; align-items: center; gap: 8px; font-weight: 400; margin-right: 16px; }
.woocommerce-account .woocommerce-form-login .button { width: 100%; margin-top: 8px; }
.woocommerce-account .woocommerce-LostPassword { margin-top: 16px; font-size: 14px; text-align: center; }
.woocommerce-account .woocommerce-LostPassword a, .woocommerce-account .lost_password a { text-decoration: underline; }
.woocommerce-account #customer_login.col2-set { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; align-items: stretch; }
.woocommerce-account #customer_login.col2-set::before, .woocommerce-account #customer_login.col2-set::after { display: none; content: none; } /* Woo's clearfix would take the first grid cell */
.woocommerce .woocommerce-account #customer_login .col-1, .woocommerce .woocommerce-account #customer_login .col-2, .woocommerce-account #customer_login.col2-set .u-column1, .woocommerce-account #customer_login.col2-set .u-column2 { float: none; width: auto; max-width: none; display: flex; flex-direction: column; }
.woocommerce-account #customer_login .woocommerce-form-login > h2 { display: block; }
.woocommerce-account #customer_login form { max-width: none; flex: 1 1 auto; margin: 0; } /* both cards the same height under their headings */
.woocommerce-account #customer_login .woocommerce-form-register .button { width: 100%; margin-top: 8px; }
.woocommerce-account #customer_login .woocommerce-privacy-policy-text p { font-size: 14px; line-height: 1.45; color: var(--ink-2); }

/* Addresses: two red-outline cards */
.svz-account--edit-address .woocommerce-MyAccount-content > p { text-align: center; color: var(--ink-2); margin-bottom: 20px; }
.woocommerce-account .woocommerce-Addresses { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.woocommerce-account .woocommerce-Addresses::before, .woocommerce-account .woocommerce-Addresses::after { display: none; }
.woocommerce-account .woocommerce-Addresses .woocommerce-Address { float: none; width: auto; border: 2px solid var(--red); border-radius: 24px; padding: 30px; display: flex; flex-direction: column; gap: 16px; min-height: 240px; }
/* Title on top, address, then the edit link at the bottom of the card (verizon.com "Review details"). */
.woocommerce-account .woocommerce-Address-title { display: contents; }
.woocommerce-account .woocommerce-Address-title::before, .woocommerce-account .woocommerce-Address-title::after { display: none; }
.woocommerce-account .woocommerce-Address-title h2, .woocommerce-account .woocommerce-Address-title h3 { float: none; color: var(--red); font-size: clamp(28px, 3vw, 40px); letter-spacing: -.03em; line-height: 1; margin: 0; }
.woocommerce-account .woocommerce-Address-title .edit { order: 3; margin-top: auto; align-self: flex-start; float: none; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.woocommerce-account .woocommerce-Address-title .edit:hover { color: var(--red); }
.woocommerce-account .woocommerce-Address address { font-style: normal; line-height: 1.6; color: var(--ink-2); }
@media (max-width: 700px) { .woocommerce-account .woocommerce-Addresses, .woocommerce-account #customer_login.col2-set { grid-template-columns: 1fr; } .woocommerce-account .woocommerce-MyAccount-content > form, .woocommerce-account form.woocommerce-form-login, .woocommerce-account form.woocommerce-ResetPassword { padding: 26px 20px; } }

/* Orders table */
.woocommerce-account table.woocommerce-orders-table { border: 0; border-collapse: collapse; }
.woocommerce-account table.woocommerce-orders-table thead th { font-size: 13px; color: var(--muted); font-weight: 700; border: 0; padding: 0 12px 10px; }
.woocommerce-account table.woocommerce-orders-table td, .woocommerce-account table.woocommerce-orders-table tbody th { border-top: 1px solid var(--line); padding: 18px 12px; vertical-align: middle; }
.woocommerce-account table.woocommerce-orders-table tbody th a, .woocommerce-account .woocommerce-orders-table__cell-order-number a { font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.woocommerce-account .woocommerce-orders-table__cell-order-status { font-weight: 700; white-space: nowrap; }
.woocommerce-account .woocommerce-orders-table__cell-order-actions { text-align: right; }
.woocommerce-account .woocommerce-orders-table .button, .woocommerce-account .woocommerce-MyAccount-content .woocommerce-Button.button { min-height: 36px; line-height: 36px; font-size: 14px; padding: 0 16px; margin: 2px 0 2px 6px; }
.woocommerce-account .woocommerce-orders-table .button.view { background: var(--white); color: var(--red); border: 1.5px solid var(--red); line-height: 33px; }
.woocommerce-account .woocommerce-orders-table .button.view:hover { background: var(--red); color: var(--white); }
@media (min-width: 769px) {
	.woocommerce-orders-table__cell-order-status::before { content: ""; display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 8px; vertical-align: 1px; background: var(--muted); }
	.woocommerce-orders-table__row--status-processing .woocommerce-orders-table__cell-order-status::before, .woocommerce-orders-table__row--status-on-hold .woocommerce-orders-table__cell-order-status::before { background: var(--red); }
	.woocommerce-orders-table__row--status-completed .woocommerce-orders-table__cell-order-status::before { background: #008331; }
}
@media (max-width: 768px) {
	.woocommerce-account table.woocommerce-orders-table tbody tr { display: block; border: 1px solid var(--line); border-radius: 16px; padding: 6px 16px; margin-bottom: 12px; }
	.woocommerce-account table.woocommerce-orders-table tbody td, .woocommerce-account table.woocommerce-orders-table tbody th { border: 0; padding: 8px 0; }
	.woocommerce-account table.woocommerce-orders-table tbody th { display: block; text-align: right; }
	.woocommerce-account table.woocommerce-orders-table tbody th::before { content: attr(data-title) ": "; float: left; font-weight: 700; }
	.woocommerce-account .woocommerce-orders-table__cell-order-actions { text-align: left; }
	.woocommerce-account .woocommerce-orders-table .button { margin: 2px 6px 2px 0; }
}
.woocommerce-account .woocommerce-pagination { display: flex; justify-content: center; gap: 10px; margin-top: 20px; }

/* Single order */
.woocommerce-account .woocommerce-MyAccount-content > p mark { background: none; color: var(--ink); font-weight: 700; }
.woocommerce-account .woocommerce-MyAccount-content > p mark.order-status { color: var(--red); }
.page-main--woo .entry .woocommerce-order-details__title, .page-main--woo .entry .woocommerce-column__title, .page-main--woo .entry .woocommerce-order-downloads__title { color: var(--red); font-size: clamp(26px, 2.6vw, 36px); letter-spacing: -.03em; line-height: 1; margin: 32px 0 16px; }
.woocommerce-account table.shop_table.woocommerce-table--order-details { border: 2px solid var(--red); border-radius: 20px; border-collapse: separate; overflow: hidden; }
.woocommerce-account .woocommerce-table--order-details th, .woocommerce-account .woocommerce-table--order-details td { padding: 14px 18px; border-top: 1px solid var(--line); }
.woocommerce-account .woocommerce-table--order-details thead th { border-top: 0; }
.woocommerce-customer-details .woocommerce-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.woocommerce-customer-details .woocommerce-columns::before, .woocommerce-customer-details .woocommerce-columns::after { display: none; content: none; } /* Woo's clearfix would take the first grid cell */
.woocommerce .woocommerce-customer-details .col2-set .woocommerce-column { float: none; width: auto; max-width: none; display: flex; flex-direction: column; } /* the address card fills the column, both cards the same height */
.woocommerce .woocommerce-customer-details address { display: block; box-sizing: border-box; width: 100%; flex: 1 1 auto; margin: 0; border: 2px solid var(--red); border-radius: 20px; padding: 22px; font-style: normal; line-height: 1.6; }
.svz-account--view-order .woocommerce-MyAccount-content > p { text-align: center; color: var(--ink-2); }
@media (max-width: 700px) { .woocommerce-customer-details .woocommerce-columns { grid-template-columns: 1fr; } }

/* ---------- Quantity stepper (product page + cart) ---------- */
.quantity.has-stepper { display: inline-flex; align-items: center; border: 1px solid var(--muted); border-radius: 999px; padding: 0 4px; background: var(--white); }
.quantity.has-stepper .qty { width: 40px; height: 40px; min-height: 0; border: 0; padding: 0; text-align: center; font-size: 16px; font-weight: 700; background: transparent; -moz-appearance: textfield; }
.quantity.has-stepper .qty::-webkit-outer-spin-button, .quantity.has-stepper .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.woocommerce-cart-form .quantity.has-stepper { height: 44px; }
.woocommerce-cart-form .qty-step { width: 34px; height: 34px; font-size: 19px; }

/* ---------- Cart (classic [woocommerce_cart]): rows left, sticky red-outline totals card right ---------- */
.woocommerce-cart .entry > .woocommerce { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: 0 40px; align-items: start; }
.woocommerce-cart .entry > .woocommerce > * { grid-column: 1 / -1; }
.woocommerce-cart .entry > .woocommerce > .woocommerce-cart-form { grid-column: 1; }
.woocommerce-cart .entry > .woocommerce > .cart-collaterals { grid-column: 2; position: sticky; top: 148px; }
.admin-bar.woocommerce-cart .entry > .woocommerce > .cart-collaterals { top: 180px; }
.woocommerce-cart table.shop_table.cart { border: 0; border-collapse: collapse; margin: 0; }
.woocommerce-cart table.cart thead th { font-size: 13px; color: var(--muted); font-weight: 700; border: 0; padding: 0 10px 10px; text-align: left; }
.woocommerce-cart table.cart td { border-top: 1px solid var(--line); padding: 18px 10px; vertical-align: middle; }
.woocommerce-cart table.cart td.product-thumbnail { width: 108px; }
.woocommerce-cart table.cart td.product-thumbnail img { width: 88px; height: 88px; object-fit: contain; background: var(--well); border-radius: 12px; mix-blend-mode: multiply; }
.woocommerce-cart table.cart td.product-name a { font-weight: 700; font-size: 16px; }
.woocommerce-cart table.cart td.product-name a:hover { text-decoration: underline; }
.woocommerce-cart table.cart td.product-name dl.variation { margin-top: 4px; font-size: 13px; color: var(--muted); }
.woocommerce-cart table.cart td.product-name dl.variation dt, .woocommerce-cart table.cart td.product-name dl.variation dd, .woocommerce-cart table.cart td.product-name dl.variation p { display: inline; margin: 0; }
.woocommerce-cart table.cart td.product-subtotal { font-weight: 700; }
.woocommerce-cart table.cart td.product-remove { width: 44px; }
.woocommerce a.remove { width: 32px; height: 32px; line-height: 30px; font-size: 20px; border: 1px solid var(--line); color: var(--muted) !important; font-weight: 400; }
.woocommerce a.remove:hover { background: var(--red); border-color: var(--red); color: var(--white) !important; }
.woocommerce-cart table.cart td.actions { padding-top: 22px; }
.woocommerce-cart table.cart td.actions .coupon { display: flex; gap: 10px; align-items: center; float: left; }
.woocommerce-cart table.cart td.actions .coupon .input-text { width: 220px; height: 44px; border-radius: 999px; border: 1px solid var(--muted); padding: 0 18px; margin: 0; }
.woocommerce-cart table.cart td.actions .coupon .input-text:focus { outline: none; border-color: var(--red); box-shadow: 0 0 0 1px var(--red); }
.woocommerce-cart table.cart td.actions .coupon .button { background: var(--white); color: var(--red); border: 1.5px solid var(--red); line-height: 41px; }
.woocommerce-cart table.cart td.actions .coupon .button:hover { background: var(--red); color: var(--white); }
.woocommerce-cart table.cart td.actions > .button, .woocommerce-cart table.cart td.actions > .button:disabled[disabled] { float: right; min-height: 44px; padding: 0 24px; background: var(--white); color: var(--red); border: 1.5px solid var(--red); border-radius: 999px; line-height: 41px; font-size: 16px; opacity: 1; }
.woocommerce-cart table.cart td.actions > .button:not(:disabled):hover { background: var(--red); color: var(--white); }
.woocommerce-cart table.cart td.actions > .button:disabled[disabled] { color: var(--muted); border-color: var(--line); background: var(--white); cursor: default; }
body.woocommerce-cart:not(.logged-in) table.cart td.actions .coupon { display: none; }
.woocommerce-cart table.cart td.actions .svz-cart-coupon-note { float: left; margin: 0; line-height: 44px; font-size: 15px; color: var(--ink-2); }
.woocommerce-cart .cart-collaterals .cart_totals { float: none; width: auto; border: 2px solid var(--red); border-radius: 24px; padding: 28px; display: flex; flex-direction: column; }
.woocommerce-cart .cart_totals > h2 { order: -1; }
.woocommerce-cart .cart-collaterals .cross-sells { float: none; width: auto; margin-top: 32px; }
.woocommerce-cart .cart_totals > h2 { color: var(--red); font-size: 32px; letter-spacing: -.03em; line-height: 1; margin: 0 0 16px; }
.woocommerce-cart .cart_totals .ship-meter { border: 0; padding: 0 0 18px; margin: 0 0 4px; border-bottom: 1px solid var(--line); }
.woocommerce-cart .cart_totals table.shop_table { border: 0; margin: 0; }
.woocommerce-cart .cart_totals table.shop_table th, .woocommerce-cart .cart_totals table.shop_table td { border-top: 1px solid var(--line); padding: 14px 0; background: none; vertical-align: top; }
.woocommerce-cart .cart_totals table.shop_table tr:first-child th, .woocommerce-cart .cart_totals table.shop_table tr:first-child td { border-top: 0; }
.woocommerce-cart .cart_totals table.shop_table th { font-weight: 700; width: 38%; }
.woocommerce-cart .cart_totals .order-total th, .woocommerce-cart .cart_totals .order-total td { font-size: 20px; }
.woocommerce ul#shipping_method { margin: 0; }
.woocommerce ul#shipping_method li { margin: 0 0 8px; padding: 0; text-indent: 0; display: flex; align-items: flex-start; gap: 8px; }
.woocommerce ul#shipping_method li input { margin: 4px 0 0; accent-color: var(--ink); }
.woocommerce ul#shipping_method li label { font-weight: 400; }
.woocommerce .woocommerce-shipping-destination { font-size: 13px; color: var(--ink-2); margin: 6px 0 4px; }
.woocommerce .shipping-calculator-button { font-size: 13px; text-decoration: underline; color: var(--ink); }
.woocommerce .shipping-calculator-button::after { display: none; }
.woocommerce .shipping-calculator-form { margin-top: 12px; }
.woocommerce-cart .wc-proceed-to-checkout { padding: 18px 0 0; }
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button { display: flex; align-items: center; justify-content: center; min-height: 56px; font-size: 18px; margin: 0; }
/* Empty cart */
.woocommerce-cart .cart-empty.woocommerce-info { background: none; border: 0; text-align: center; color: var(--red); font-size: clamp(22px, 2.4vw, 30px); font-weight: 700; letter-spacing: -.02em; padding: 16px 0 0; }
.woocommerce-cart .cart-empty.woocommerce-info::before { display: none; }
.woocommerce-cart .return-to-shop { text-align: center; }
.woocommerce-cart .return-to-shop .button { min-height: 52px; line-height: 52px; padding: 0 32px; }
@media (max-width: 960px) {
	.woocommerce-cart .entry > .woocommerce { grid-template-columns: minmax(0, 1fr); }
	.woocommerce-cart .entry > .woocommerce > .cart-collaterals { grid-column: 1; position: static; margin-top: 28px; }
}
@media (max-width: 768px) {
	.woocommerce-cart table.shop_table.cart, .woocommerce-cart table.shop_table.cart tbody { display: block; width: 100%; }
	.woocommerce-cart table.cart thead { display: none; }
	.woocommerce-cart table.cart tbody tr.cart_item td { text-align: left !important; }
	.woocommerce-cart table.cart tbody tr.cart_item td.product-subtotal { text-align: right !important; }
	.woocommerce-cart table.cart tbody tr.cart_item { display: grid; grid-template-columns: 88px minmax(0, 1fr) auto; grid-template-areas: "thumb name remove" "thumb price price" "thumb qty sub"; gap: 4px 14px; padding: 16px 0; border-top: 1px solid var(--line); }
	.woocommerce-cart table.cart tbody tr.cart_item td { display: block; border: 0; padding: 0; text-align: left; }
	.woocommerce-cart table.cart tbody tr.cart_item td::before { display: none; }
	.woocommerce-cart table.cart td.product-thumbnail { grid-area: thumb; display: block !important; width: auto; }
	.woocommerce-cart table.cart td.product-thumbnail img { width: 88px; height: 88px; }
	.woocommerce-cart table.cart td.product-name { grid-area: name; }
	.woocommerce-cart table.cart td.product-remove { grid-area: remove; width: auto; }
	.woocommerce-cart table.cart td.product-price { grid-area: price; color: var(--ink-2); font-size: 14px; }
	.woocommerce-cart table.cart td.product-quantity { grid-area: qty; margin-top: 6px; }
	.woocommerce-cart table.cart td.product-subtotal { grid-area: sub; align-self: center; text-align: right; margin-top: 6px; }
	.woocommerce-cart table.cart td.actions { display: block; border-top: 1px solid var(--line); }
	.woocommerce-cart table.cart td.actions .coupon { float: none; width: 100%; }
	.woocommerce-cart table.cart td.actions .coupon .input-text { flex: 1 1 auto; width: auto; min-width: 0; }
	.woocommerce-cart table.cart td.actions .coupon .button { flex: none; padding: 0 18px; }
	.woocommerce-cart table.cart td.actions > .button, .woocommerce-cart table.cart td.actions > .button:disabled[disabled] { float: none; width: 100%; margin-top: 10px; }
	.woocommerce-cart table.cart td.actions .svz-cart-coupon-note { float: none; line-height: 1.4; text-align: center; margin-top: 12px; }
	.woocommerce-cart table.cart tr:last-child, .woocommerce-cart table.cart td.actions { display: block; }
	.woocommerce-cart table.cart td.actions .coupon .button { white-space: nowrap; }
	/* Totals keep label | value columns instead of Woo's stacked "Label:" rows */
	.woocommerce-cart .cart_totals table.shop_table_responsive, .woocommerce-cart .cart_totals table.shop_table_responsive tbody { display: table; width: 100%; }
	.woocommerce-cart .cart_totals table.shop_table_responsive tbody { display: table-row-group; }
	.woocommerce-cart .cart_totals table.shop_table_responsive tr { display: table-row; }
	.woocommerce-cart .cart_totals table.shop_table_responsive tbody th { display: table-cell; }
	.woocommerce-cart .cart_totals table.shop_table_responsive tr td { display: table-cell; text-align: left !important; }
	.woocommerce-cart .cart_totals table.shop_table_responsive tr td::before { display: none; }
}

/* ---------- Checkout (classic [woocommerce_checkout]): details cards left, sticky "Your order" card right ---------- */
.woocommerce-checkout .info-text-promo-code { background: var(--cream); border-radius: 12px; padding: 14px 18px; font-size: 14px; margin: 0 0 14px; }
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info, .woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info { margin-bottom: 14px; }
.woocommerce-checkout .woocommerce-info a { text-decoration: underline; font-weight: 700; }
.woocommerce-checkout form.checkout_coupon, .woocommerce-checkout form.woocommerce-form-login { border: 2px solid var(--red); border-radius: 20px; padding: 22px; margin: 0 0 20px; }
.woocommerce-checkout form.checkout_coupon .form-row-first { width: auto; flex: 1; }
.woocommerce-checkout form.checkout_coupon { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.woocommerce-checkout form.checkout_coupon > p:first-child { width: 100%; margin: 0; }
.woocommerce-checkout form.checkout_coupon .form-row { margin: 0; padding: 0; float: none; }
.woocommerce-checkout form.checkout_coupon .button { line-height: 44px; }
.woocommerce-checkout form.checkout { display: grid; grid-template-columns: minmax(0, 1fr) 440px; gap: 0 40px; align-items: start; margin-top: 8px; }
.woocommerce-checkout form.checkout > * { grid-column: 1 / -1; }
.woocommerce-checkout form.checkout > #customer_details { grid-column: 1; grid-row: span 3; }
.woocommerce-checkout form.checkout > #order_review_heading { display: none; }
.woocommerce-checkout form.checkout > #order_review { grid-column: 2; position: sticky; top: 148px; }
.admin-bar.woocommerce-checkout form.checkout > #order_review { top: 180px; }
.woocommerce-checkout #customer_details.col2-set { display: grid; gap: 20px; }
.woocommerce-checkout #customer_details.col2-set::before, .woocommerce-checkout #customer_details.col2-set::after { display: none; }
.woocommerce-checkout #customer_details .col-1, .woocommerce-checkout #customer_details .col-2 { float: none; width: auto; border: 2px solid var(--red); border-radius: 24px; padding: 28px; }
.woocommerce-checkout #customer_details h3 { color: var(--red); font-size: clamp(26px, 2.6vw, 34px); letter-spacing: -.03em; line-height: 1; margin: 0 0 18px; }
.woocommerce-checkout #customer_details h3#ship-to-different-address { font-size: clamp(20px, 2vw, 24px); color: var(--ink); margin-bottom: 16px; }
.woocommerce-checkout #ship-to-different-address label { display: inline-flex; align-items: center; gap: 10px; cursor: pointer; }
.woocommerce-checkout #ship-to-different-address input { width: 20px; height: 20px; accent-color: var(--red); }
.woocommerce-checkout #customer_details .woocommerce-additional-fields > h3 { font-size: 22px; margin-top: 8px; }
.woocommerce-checkout form .form-row { margin-bottom: 14px; padding: 0; }
.woocommerce-checkout form .form-row label { display: block; margin-bottom: 6px; }
.woocommerce-checkout form .form-row .required { color: var(--red); text-decoration: none; }
.woocommerce-checkout form .form-row input.input-text:focus, .woocommerce-checkout form .form-row textarea:focus, .woocommerce-checkout .select2-container--focus .select2-selection, .woocommerce-checkout .select2-container--open .select2-selection { outline: none; border-color: var(--red); box-shadow: 0 0 0 1px var(--red); }
.woocommerce-checkout form .form-row.woocommerce-invalid input.input-text, .woocommerce-checkout form .form-row.woocommerce-invalid .select2-selection { border-color: var(--red); }
.woocommerce-checkout form .form-row textarea { min-height: 96px; }
/* Order card */
.woocommerce-checkout #order_review { border: 2px solid var(--red); border-radius: 24px; padding: 28px; background: var(--white); }
.svz-review-title { color: var(--red); font-size: clamp(26px, 2.6vw, 34px); letter-spacing: -.03em; line-height: 1; margin: 0 0 16px; }
.woocommerce-checkout table.woocommerce-checkout-review-order-table { border: 0; margin: 0 0 18px; }
/* Coupon, moved into the order card by vz.js (hidden until then so it doesn't jump) */
.woocommerce-checkout .woocommerce-form-coupon-toggle { display: none; }
.woocommerce-checkout .svz-coupon { border-top: 1px solid var(--line); padding: 16px 0 18px; margin-bottom: 4px; }
.woocommerce-checkout .svz-coupon__label { margin: 0; font-size: 15px; font-weight: 700; }
.woocommerce-checkout .svz-coupon form.checkout_coupon { border: 0; border-radius: 0; padding: 0; margin: 10px 0 0; }
.woocommerce-checkout .svz-coupon form.checkout_coupon { flex-wrap: nowrap; align-items: flex-start; }
.woocommerce-checkout .svz-coupon form.checkout_coupon > .clear { display: none; }
.woocommerce-checkout .svz-coupon form.checkout_coupon .form-row-first { flex: 1 1 auto; min-width: 0; width: auto; }
.woocommerce-checkout .svz-coupon form.checkout_coupon .form-row-last { flex: none; width: auto; }
.woocommerce-checkout .svz-coupon form.checkout_coupon .input-text { width: 100%; height: 44px; border-radius: 999px; border: 1px solid var(--muted); padding: 0 18px; }
.woocommerce-checkout .svz-coupon form.checkout_coupon .form-row .input-text { border-color: var(--muted); }
.woocommerce-checkout .svz-coupon form.checkout_coupon .form-row .input-text:focus { outline: none; border-color: var(--red); box-shadow: 0 0 0 1px var(--red); }
.woocommerce-checkout .svz-coupon form.checkout_coupon .button { background: var(--white); color: var(--red); border: 1.5px solid var(--red); line-height: 41px; padding: 0 20px; white-space: nowrap; }
.woocommerce-checkout .svz-coupon form.checkout_coupon .button:hover { background: var(--red); color: var(--white); }
.woocommerce-checkout .svz-coupon .coupon-error-notice { display: block; width: 100%; color: var(--red); font-size: 14px; margin-top: 6px; }
.woocommerce-checkout .svz-coupon .woocommerce-message, .woocommerce-checkout .svz-coupon .woocommerce-error { margin: 0 0 12px; }
.woocommerce-checkout table.woocommerce-checkout-review-order-table th, .woocommerce-checkout table.woocommerce-checkout-review-order-table td { border-top: 1px solid var(--line); padding: 12px 0; background: none; vertical-align: top; }
.woocommerce-checkout table.woocommerce-checkout-review-order-table thead th { border-top: 0; font-size: 13px; color: var(--muted); padding-top: 0; }
.woocommerce-checkout table.woocommerce-checkout-review-order-table td.product-total, .woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot td { text-align: right; }
.woocommerce-checkout table.woocommerce-checkout-review-order-table .product-quantity { color: var(--muted); font-weight: 400; }
.woocommerce-checkout table.woocommerce-checkout-review-order-table dl.variation { font-size: 13px; color: var(--muted); margin: 2px 0 0; }
.woocommerce-checkout table.woocommerce-checkout-review-order-table dl.variation dt, .woocommerce-checkout table.woocommerce-checkout-review-order-table dl.variation dd, .woocommerce-checkout table.woocommerce-checkout-review-order-table dl.variation p { display: inline; margin: 0; }
.woocommerce-checkout table.woocommerce-checkout-review-order-table .order-total th, .woocommerce-checkout table.woocommerce-checkout-review-order-table .order-total td { font-size: 20px; }
.woocommerce-checkout table.woocommerce-checkout-review-order-table ul#shipping_method li { justify-content: flex-end; }
.woocommerce-checkout #payment { background: none; border-radius: 0; }
.woocommerce-checkout #payment ul.payment_methods { padding: 0 0 14px; border-bottom: 1px solid var(--line); }
.woocommerce-checkout #payment ul.payment_methods li { list-style: none; padding: 8px 0; }
.woocommerce-checkout #payment ul.payment_methods li > input { accent-color: var(--ink); margin-right: 8px; }
.woocommerce-checkout #payment ul.payment_methods li > label { font-weight: 700; }
.woocommerce-checkout #payment div.payment_box { background: var(--well); color: var(--ink-2); border-radius: 12px; font-size: 14px; margin: 10px 0 4px; padding: 12px 14px; }
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: var(--well); }
.woocommerce-checkout #payment div.form-row.place-order { padding: 16px 0 0; margin: 0; }
.woocommerce-checkout .woocommerce-privacy-policy-text, .woocommerce-checkout .woocommerce-terms-and-conditions-wrapper { font-size: 13px; color: var(--ink-2); }
.woocommerce-checkout .woocommerce-privacy-policy-text a { text-decoration: underline; }
.woocommerce-checkout #place_order { width: 100%; min-height: 56px; font-size: 18px; margin-top: 12px; float: none; }
.woocommerce-checkout .blockUI.blockOverlay { border-radius: 24px; }
/* Smart Coupons "Send Coupons to..." (a gift code in the cart): a card in the left column under the details cards.
   It is a direct child of form.checkout, so it takes column 1, and dense flow lets "Your order" stay at the top of column 2. */
.woocommerce-checkout form.checkout { grid-auto-flow: row dense; }
.woocommerce-checkout form.checkout > .gift-certificate.sc_info_box { grid-column: 1; overflow: visible; margin: 20px 0 0 !important; padding: 28px !important; border: 2px solid var(--red); border-radius: 24px; background: var(--white); }
.woocommerce-checkout .gift-certificate.sc_info_box > h3 { color: var(--red); font-size: clamp(26px, 2.6vw, 34px); letter-spacing: -.03em; line-height: 1; margin: 0 0 12px; }
.woocommerce-checkout .gift-certificate.sc_info_box > p, .woocommerce-checkout .gift-certificate-show-form > p { margin: 0 0 12px; color: var(--ink-2); font-size: 15px; }
.woocommerce-checkout .gift-certificate .show_hide_list { display: grid; gap: 8px; margin: 0; padding: 0; }
.woocommerce-checkout .gift-certificate .show_hide_list ul.single_multi_list { gap: 8px; margin: 10px 0 0 30px; padding: 0; }
.woocommerce-checkout .gift-certificate .show_hide_list ul.single_multi_list[style*="block"] { display: grid !important; }
.woocommerce-checkout .gift-certificate .show_hide_list li { margin: 0; }
.woocommerce-checkout .gift-certificate .show_hide_list input[type="radio"] { width: 20px; height: 20px; margin: 0 10px 0 0; vertical-align: -4px; accent-color: var(--red); cursor: pointer; }
.woocommerce-checkout .gift-certificate .show_hide_list label { display: inline; font-size: 15px; font-weight: 700; cursor: pointer; }
.woocommerce-checkout .gift-certificate .single_multi_list label { font-weight: 400; }
.woocommerce-checkout .gift-certificate-receiver-detail-form { margin-top: 18px; }
.woocommerce-checkout .gift-certificate .form_table { width: 100%; padding: 18px 0 0; margin: 18px 0 0; border-top: 1px solid var(--line); }
.woocommerce-checkout .gift-certificate-receiver-detail-form > div > .form_table:first-child { margin-top: 0; }
.woocommerce-checkout .gift-certificate .form_table .amount { margin: 0 0 8px; font-size: 15px; font-weight: 700; }
.woocommerce-checkout .gift-certificate .form_table .amount:empty { display: none; }
.woocommerce-checkout .gift-certificate input.gift_receiver_email, .woocommerce-checkout .gift-certificate input.gift_sending_date_time, .woocommerce-checkout .gift-certificate textarea.gift_receiver_message { display: block; width: 100%; min-width: 0; margin: 0 0 10px; border: 1px solid var(--muted); border-radius: 8px; padding: 10px 12px; font-size: 15px; background: var(--white); min-height: 44px; }
.woocommerce-checkout .gift-certificate textarea.gift_receiver_message { min-height: 96px; margin: 0; resize: vertical; }
.woocommerce-checkout .gift-certificate input.gift_receiver_email:focus, .woocommerce-checkout .gift-certificate input.gift_sending_date_time:focus, .woocommerce-checkout .gift-certificate textarea.gift_receiver_message:focus { outline: none; border-color: var(--red); box-shadow: 0 0 0 1px var(--red); }
@media (max-width: 960px) {
	.woocommerce-checkout form.checkout { grid-template-columns: minmax(0, 1fr); }
	.woocommerce-checkout form.checkout > #customer_details { grid-row: auto; }
	.woocommerce-checkout form.checkout > #order_review { grid-column: 1; position: static; margin-top: 20px; }
}
@media (max-width: 700px) {
	.woocommerce-checkout #customer_details .col-1, .woocommerce-checkout #customer_details .col-2, .woocommerce-checkout #order_review, .woocommerce-cart .cart-collaterals .cart_totals { padding: 22px 18px; }
	.woocommerce-checkout form.checkout > .gift-certificate.sc_info_box { padding: 22px 18px !important; }
}

/* Order received (thank you) page */
.woocommerce-order-received .woocommerce-thankyou-order-received { text-align: center; color: var(--red); font-size: clamp(22px, 2.4vw, 30px); font-weight: 700; letter-spacing: -.02em; margin: 0 0 24px; }
.woocommerce-order-received ul.woocommerce-order-overview { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px; border: 2px solid var(--red); border-radius: 24px; padding: 22px; margin: 0 0 32px; }
.woocommerce-order-received ul.woocommerce-order-overview::before, .woocommerce-order-received ul.woocommerce-order-overview::after { display: none; }
.woocommerce-order-received .info-text-promo-code { display: none; }
.woocommerce-order-received ul.woocommerce-order-overview li { border: 0; margin: 0; padding: 0; font-size: 12px; text-transform: none; color: var(--muted); }
.woocommerce-order-received ul.woocommerce-order-overview li strong { display: block; font-size: 17px; color: var(--ink); margin-top: 4px; }
.woocommerce-order-received .woocommerce-order > p { text-align: center; }
.woocommerce-order-received table.shop_table.woocommerce-table--order-details { border: 2px solid var(--red); border-radius: 20px; border-collapse: separate; overflow: hidden; }
.woocommerce-order-received .woocommerce-table--order-details th, .woocommerce-order-received .woocommerce-table--order-details td { padding: 14px 18px; border-top: 1px solid var(--line); }
.woocommerce-order-received .woocommerce-table--order-details thead th { border-top: 0; }

/* ---------- Promos (VZ Promos plugin): promo page, promo product mode, reduced header/footer ---------- */
.promo-head .head-row { height: 72px; gap: 20px; }
.promo-tag { display: flex; align-items: center; gap: 8px; min-width: 0; font-weight: 700; font-size: 15px; padding-left: 20px; border-left: 1px solid var(--line); height: 30px; }
.promo-tag span:last-child { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.promo-tag .dot { flex: none; width: 8px; height: 8px; border-radius: 50%; background: var(--red); }
@media (max-width: 600px) { .promo-head .head-row { height: 60px; gap: 12px; } .promo-tag { font-size: 13px; padding-left: 12px; } }
.back-bar { border-bottom: 1px solid var(--line); background: var(--white); }
.back-bar a { display: inline-flex; align-items: center; gap: 8px; min-height: 48px; font-weight: 700; font-size: 15px; }
.back-bar a:hover { color: var(--red); }

.promo-hero { padding: 56px 0 0; text-align: center; color: var(--red); }
.promo-hero .eyebrow { color: var(--ink); font-size: 14px; font-weight: 700; letter-spacing: .02em; }
.promo-hero .eyebrow .dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--red); margin-right: 8px; vertical-align: 1px; }
.promo-hero h1 { font-size: clamp(44px, 6.6vw, 100px); line-height: .94; letter-spacing: -.04em; font-weight: 700; margin: 16px auto 0; max-width: 13ch; }
.promo-intro { font-size: clamp(17px, 1.7vw, 21px); max-width: 44ch; margin: 18px auto 0; line-height: 1.35; }
@media (max-width: 700px) { .promo-hero { padding-top: 36px; } }
.promo-banner { margin-top: 36px; border-radius: var(--radius); overflow: hidden; }
.promo-banner img { width: 100%; height: auto; }
.promo-content { max-width: 760px; margin: 32px auto 0; text-align: center; }

.steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 44px; }
.step { border: 2px solid var(--red); border-radius: var(--radius); padding: 26px; color: var(--red); display: grid; gap: 10px; align-content: start; }
.step-num { width: 40px; height: 40px; border-radius: 50%; background: var(--yellow); color: var(--red); font-weight: 700; font-size: 18px; display: grid; place-items: center; }
.step h3 { font-size: 24px; line-height: 1.08; letter-spacing: -.02em; margin: 0; }
.step p { font-size: 15px; line-height: 1.4; color: var(--ink-2); margin: 0; }
.code { display: inline-block; font-weight: 700; color: var(--ink); background: var(--well); border: 1px dashed var(--muted); border-radius: 8px; padding: 0 8px; letter-spacing: .02em; white-space: nowrap; }
@media (max-width: 860px) { .steps { grid-template-columns: 1fr; gap: 10px; margin-top: 32px; } .step { grid-template-columns: 40px 1fr; column-gap: 14px; padding: 18px; } .step-num { grid-row: span 2; } .step h3 { font-size: 20px; } }

.in-cart { display: none; margin-top: 28px; background: var(--red); color: var(--white); border-radius: var(--radius); padding: 18px 18px 18px 26px; align-items: center; justify-content: space-between; gap: 12px 20px; flex-wrap: wrap; }
.promo-main.has-item .in-cart { display: flex; }
.in-cart__title { display: block; font-size: 20px; letter-spacing: -.01em; }
.in-cart__text { font-size: 15px; }
.in-cart .btn { flex: none; }

.promo-grid-head { display: flex; justify-content: space-between; align-items: end; gap: 8px 16px; margin: 56px 0 20px; flex-wrap: wrap; }
.promo-grid-head h2 { font-size: clamp(28px, 3vw, 40px); letter-spacing: -.03em; line-height: 1; color: var(--red); margin: 0; }
.promo-grid-head p { color: var(--ink-2); font-size: 15px; margin: 0; }
.svz-promo-grid ul.products { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 960px) { .svz-promo-grid ul.products { grid-template-columns: repeat(2, 1fr); } }
.promo-empty { color: var(--muted); }
.vzp-price--free { color: var(--red); font-weight: 700; }
.vzp-price--first { font-weight: 400; }
.vzp-price--first b { color: var(--red); }
.card-lock { display: none; font-size: 13px; color: var(--muted); }
.card-lock .lock-mine { display: none; }
.promo-main.has-item .card-lock { display: block; }
.promo-main.is-free.has-item li.product .vz-quick { display: none; }
.promo-main.has-item li.product.is-picked .card-lock { color: var(--red); font-weight: 700; }
.promo-main.has-item li.product.is-picked .lock-other { display: none; }
.promo-main.has-item li.product.is-picked .lock-mine { display: inline; }
.promo-private { display: flex; gap: 14px; align-items: flex-start; background: var(--well); border-radius: var(--radius-sm); padding: 18px 22px; margin: 56px 0 0; font-size: 14px; line-height: 1.45; color: var(--ink-2); }
.promo-private svg { flex: none; margin-top: 1px; color: var(--ink); }

.promo-ended { margin: 40px auto 0; max-width: 780px; border: 2px solid var(--red); border-radius: 28px; padding: 52px 40px; text-align: center; color: var(--red); }
.promo-ended h2 { font-size: clamp(36px, 4.6vw, 60px); line-height: 1; letter-spacing: -.035em; margin: 0; color: var(--red); }
.promo-ended p { font-size: 18px; color: var(--ink-2); margin: 16px auto 0; max-width: 42ch; line-height: 1.4; }
.promo-ended .btns { display: flex; gap: 12px; justify-content: center; margin-top: 28px; flex-wrap: wrap; }
@media (max-width: 700px) { .promo-ended { padding: 36px 20px; } }
.single-product .promo-ended { margin: 24px 0; padding: 32px 24px; text-align: left; }
.single-product .promo-ended h2 { font-size: clamp(28px, 3vw, 38px); }
.single-product .promo-ended p { margin-left: 0; font-size: 16px; }
.single-product .promo-ended .btns { justify-content: flex-start; }

/* Promo product page */
.woocommerce div.product p.price .vzp-price--free { display: inline-flex; align-items: center; height: 38px; padding: 0 18px; border-radius: 999px; background: var(--yellow); color: var(--red); font-size: 16px; }
.woocommerce div.product p.price .vzp-price--first { display: block; font-size: 22px; font-weight: 700; letter-spacing: -.01em; }
.woocommerce div.product p.price .vzp-then { display: block; font-size: 14px; font-weight: 400; color: var(--ink-2); margin-top: 2px; }
.woocommerce div.product .woocommerce-variation-price .vzp-price--first b { display: none; }
.pdp-code { margin: 22px 0 0; border: 2px solid var(--red); border-radius: var(--radius-sm); padding: 16px 18px; color: var(--red); font-size: 15px; line-height: 1.4; display: flex; gap: 12px; align-items: flex-start; }
.pdp-code svg { flex: none; margin-top: 1px; }
.svz-promo-others h2 { color: var(--red); }

/* Reduced footer */
.site-footer.promo-foot { padding: 28px 0; font-size: 14px; color: var(--muted); }
.promo-foot .wrap { display: flex; justify-content: space-between; gap: 16px 24px; flex-wrap: wrap; align-items: center; }
.promo-foot .wrap > a img, .promo-foot .wrap > a svg { height: 24px; width: auto; }
.promo-foot .foot-menu { display: flex; gap: 20px; flex-wrap: wrap; list-style: none; margin: 0; padding: 0; color: var(--ink-2); }
.promo-foot .foot-menu li { margin: 0; }
.promo-foot a:hover { color: var(--red); text-decoration: underline; }

@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; } }
