/*
Theme Name: Velorza Luxe
Theme URI: https://velorza.store
Author: Velorza
Description: A premium, editorial WooCommerce theme for Velorza.
Version: 1.0.2
Text Domain: velorza-luxe
*/

:root {
  --ink: #0b0d0f;
  --muted: #6c6e70;
  --paper: #f7f7f5;
  --white: #ffffff;
  --line: rgba(11, 13, 15, .12);
  --accent: #c7a273;
  --accent-dark: #9b7446;
  --serif: Georgia, 'Times New Roman', serif;
  --sans: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --radius: 22px;
  --shadow: 0 20px 60px rgba(11, 13, 15, .08);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--sans); font-size: 16px; line-height: 1.6; }
body, button, input, select, textarea { font-family: var(--sans); }
a { color: inherit; text-decoration: none; }
a:hover { color: var(--accent-dark); }
img { display: block; max-width: 100%; height: auto; }
.container { width: min(1240px, calc(100% - 48px)); margin: 0 auto; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
.screen-reader-text:focus, .skip-link:focus { width: auto; height: auto; clip: auto; z-index: 1000; top: 12px; left: 12px; padding: 10px 14px; color: var(--white); background: var(--ink); border-radius: 8px; }
:focus-visible { outline: 2px solid var(--accent-dark); outline-offset: 4px; }

.site-header { position: sticky; top: 0; z-index: 50; background: rgba(247,247,245,.82); border-bottom: 1px solid rgba(11,13,15,.06); backdrop-filter: blur(20px); }
.nav-wrap { min-height: 78px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.brand { display: inline-flex; align-items: center; gap: 10px; font-size: 18px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.brand-mark { width: 30px; height: 30px; border: 1px solid var(--ink); border-radius: 50%; display: grid; place-items: center; font-family: var(--serif); font-size: 17px; }
.nav-links { display: flex; align-items: center; gap: 30px; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; }
.nav-links a { position: relative; padding: 8px 0; }
.nav-links a::after { content: ''; position: absolute; left: 0; right: 100%; bottom: 0; height: 1px; background: var(--ink); transition: right .3s ease; }
.nav-links a:hover::after { right: 0; }
.header-actions { display: flex; align-items: center; gap: 12px; }
.icon-link, .menu-toggle { width: 40px; height: 40px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; background: transparent; cursor: pointer; }
.icon-link svg, .menu-toggle svg { width: 17px; height: 17px; }
.menu-toggle { display: none; }

.hero { min-height: 720px; display: grid; align-items: center; position: relative; overflow: hidden; background: radial-gradient(circle at 75% 40%, rgba(199,162,115,.28), transparent 35%), linear-gradient(120deg, #eeeae3 0%, #f7f7f5 54%, #e5e0d8 100%); }
.hero::before { content: ''; position: absolute; width: 620px; height: 620px; right: -120px; top: 40px; border: 1px solid rgba(11,13,15,.12); border-radius: 50%; }
.hero::after { content: ''; position: absolute; width: 420px; height: 420px; right: -20px; top: 140px; border: 1px solid rgba(11,13,15,.1); border-radius: 50%; }
.hero-inner { position: relative; z-index: 1; display: grid; grid-template-columns: 1.05fr .95fr; gap: 60px; align-items: center; padding: 84px 0; }
.eyebrow { display: inline-flex; align-items: center; gap: 10px; margin-bottom: 24px; color: var(--muted); font-size: 11px; letter-spacing: .18em; text-transform: uppercase; }
.eyebrow::before { content: ''; width: 34px; height: 1px; background: var(--accent-dark); }
.hero h1 { max-width: 680px; margin: 0; font-size: clamp(52px, 7vw, 104px); line-height: .96; letter-spacing: -.07em; font-weight: 500; }
.hero h1 em { font-family: var(--serif); font-weight: 400; }
.hero-copy { max-width: 470px; margin: 28px 0 0; color: var(--muted); font-size: 18px; }
.hero-actions { display: flex; align-items: center; gap: 14px; margin-top: 36px; }
.btn { display: inline-flex; align-items: center; justify-content: center; min-height: 50px; padding: 0 25px; border: 1px solid var(--ink); border-radius: 99px; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; transition: transform .25s ease, background .25s ease, color .25s ease; }
.btn:hover { color: var(--white); background: var(--ink); transform: translateY(-2px); }
.btn-dark { color: var(--white); background: var(--ink); }
.btn-dark:hover { color: var(--ink); background: transparent; }
.hero-visual { min-height: 530px; position: relative; display: grid; place-items: center; }
.hero-card { position: relative; z-index: 1; width: min(390px, 75%); aspect-ratio: .72; overflow: hidden; background: #ddd; border-radius: 220px 220px 24px 24px; box-shadow: var(--shadow); transform: rotate(4deg); }
.hero-card img { width: 100%; height: 100%; object-fit: cover; }
.hero-card::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 55%, rgba(0,0,0,.2)); }
.hero-note { position: absolute; z-index: 2; bottom: 24px; left: 0; padding: 15px 18px; color: var(--white); background: rgba(11,13,15,.88); border-radius: 12px; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; }

.section { padding: 120px 0; }
.section-head { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 44px; }
.section-kicker { color: var(--accent-dark); font-size: 11px; letter-spacing: .18em; text-transform: uppercase; }
.section h2 { margin: 10px 0 0; font-size: clamp(36px, 5vw, 68px); line-height: 1; letter-spacing: -.06em; font-weight: 500; }
.section-intro { max-width: 360px; color: var(--muted); }
.product-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.product-card { position: relative; }
.product-image { position: relative; overflow: hidden; aspect-ratio: .8; background: #eae7e2; border-radius: 18px; }
.product-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s cubic-bezier(.2,.75,.25,1); }
.product-card:hover .product-image img { transform: scale(1.06); }
.product-badge { position: absolute; z-index: 1; top: 14px; left: 14px; padding: 6px 10px; color: var(--white); background: var(--ink); border-radius: 99px; font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.product-meta { padding: 16px 2px 0; }
.product-meta h3 { margin: 0 0 5px; font-size: 16px; font-weight: 500; letter-spacing: -.02em; }
.product-category { color: var(--muted); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; }
.product-price { margin-top: 8px; font-size: 14px; }
.product-price del { color: var(--muted); }
.product-link { display: inline-flex; align-items: center; gap: 8px; margin-top: 12px; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; }
.product-link::after { content: '↗'; font-size: 16px; transition: transform .2s ease; }
.product-link:hover::after { transform: translate(3px,-3px); }

.statement { background: var(--ink); color: var(--white); }
.statement-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.statement h2 { max-width: 650px; font-size: clamp(40px, 6vw, 84px); }
.statement p { max-width: 420px; color: rgba(255,255,255,.65); font-size: 17px; }
.statement .eyebrow { color: var(--accent); }
.statement .eyebrow::before { background: var(--accent); }

.collection-grid { display: grid; grid-template-columns: 1.35fr .65fr; gap: 18px; }
.collection-card { position: relative; min-height: 420px; overflow: hidden; display: flex; align-items: end; padding: 30px; color: var(--white); border-radius: 20px; background: #262626; }
.collection-card.small { min-height: 420px; }
.collection-card::before { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(0,0,0,.7), transparent 70%); z-index: 1; }
.collection-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .7s ease; }
.collection-card:hover img { transform: scale(1.05); }
.collection-content { position: relative; z-index: 2; }
.collection-content h3 { margin: 8px 0 12px; font-size: 30px; letter-spacing: -.04em; font-weight: 500; }
.collection-content .text-link { color: var(--white); }

.newsletter { padding: 100px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.newsletter-inner { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 50px; }
.newsletter h2 { max-width: 520px; margin: 0; font-size: clamp(36px, 5vw, 64px); line-height: 1; letter-spacing: -.06em; font-weight: 500; }
.newsletter p { color: var(--muted); }
.newsletter-form { display: flex; gap: 8px; padding-bottom: 10px; border-bottom: 1px solid var(--ink); }
.newsletter-form input { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; font-size: 15px; }
.newsletter-form button { border: 0; background: transparent; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; cursor: pointer; }

.site-footer { padding: 70px 0 30px; color: rgba(255,255,255,.68); background: var(--ink); }
.footer-top { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 40px; padding-bottom: 60px; }
.footer-brand { color: var(--white); }
.footer-brand p { max-width: 280px; margin-top: 20px; font-size: 14px; }
.footer-col h3 { margin: 0 0 16px; color: var(--white); font-size: 11px; letter-spacing: .15em; text-transform: uppercase; }
.footer-col a, .footer-col p { display: block; margin: 8px 0; font-size: 13px; }
.footer-bottom { display: flex; justify-content: space-between; gap: 20px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.14); font-size: 11px; }

.page-shell { padding: 90px 0 120px; }
.page-header { margin-bottom: 50px; }
.page-header h1 { margin: 10px 0 0; font-size: clamp(44px, 7vw, 90px); line-height: .95; letter-spacing: -.07em; font-weight: 500; }
.content-wrap { max-width: 820px; }
.woocommerce .site-main, .woocommerce-page .site-main { padding-bottom: 100px; }
.woocommerce .woocommerce-breadcrumb { margin: 30px auto; width: min(1240px, calc(100% - 48px)); color: var(--muted); font-size: 12px; }
.woocommerce ul.products { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; width: min(1240px, calc(100% - 48px)); margin: 0 auto 80px; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none; }
.woocommerce ul.products li.product { width: auto; float: none; margin: 0; }
.woocommerce ul.products li.product a img { border-radius: 18px; }
.woocommerce ul.products li.product .button, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button { border-radius: 99px; color: var(--white); background: var(--ink); font-weight: 500; letter-spacing: .06em; }
.woocommerce span.onsale { min-width: 48px; min-height: 48px; line-height: 48px; padding: 0; border-radius: 50%; color: var(--white); background: var(--ink); font-size: 10px; font-weight: 500; }
.woocommerce div.product { width: min(1240px, calc(100% - 48px)); margin: 70px auto; }
.woocommerce div.product div.images img { border-radius: 22px; }
.woocommerce div.product .product_title { font-size: clamp(36px, 5vw, 68px); font-weight: 500; line-height: 1; letter-spacing: -.06em; }
.woocommerce div.product p.price, .woocommerce div.product span.price { color: var(--ink); font-size: 20px; }
.woocommerce div.product form.cart .button { min-height: 48px; }
.woocommerce .quantity .qty { min-height: 48px; border: 1px solid var(--line); border-radius: 99px; background: transparent; }
.product-single { display: grid; grid-template-columns: 1.05fr .95fr; gap: 80px; align-items: center; }
.product-single-media img { width: 100%; max-height: 760px; object-fit: cover; border-radius: 24px; background: #eae7e2; }
.product-single-info h1 { max-width: 600px; margin: 10px 0 18px; font-size: clamp(42px, 6vw, 82px); line-height: .95; letter-spacing: -.07em; font-weight: 500; }
.product-single-price { margin-bottom: 26px; font-size: 22px; }
.product-single-description { max-width: 480px; color: var(--muted); }
.product-single-cart { margin: 34px 0; }
.product-single-cart .cart { display: flex; align-items: center; gap: 12px; }
.product-single-cart .single_add_to_cart_button { min-height: 50px; padding: 0 28px; border-radius: 99px; color: var(--white); background: var(--ink); }
.product-single-cart .variations select { min-height: 42px; padding: 0 12px; border: 1px solid var(--line); border-radius: 10px; background: transparent; }
.product-single-meta { display: grid; gap: 10px; padding-top: 24px; border-top: 1px solid var(--line); color: var(--muted); font-size: 12px; }
.woocommerce-cart .cart-collaterals, .woocommerce-checkout .col2-set, .woocommerce-checkout #order_review { width: min(1240px, calc(100% - 48px)); margin-left: auto; margin-right: auto; }

.reveal { opacity: 0; transform: translateY(18px); transition: opacity .7s ease, transform .7s ease; }
.reveal.is-visible { opacity: 1; transform: translateY(0); }
.delay-1 { transition-delay: .08s; } .delay-2 { transition-delay: .16s; } .delay-3 { transition-delay: .24s; }

@media (max-width: 980px) {
  .hero-inner, .statement-inner, .newsletter-inner, .product-single { grid-template-columns: 1fr; gap: 40px; }
  .hero { min-height: auto; }
  .hero-visual { min-height: 430px; }
  .product-grid, .woocommerce ul.products { grid-template-columns: repeat(2, 1fr); }
  .footer-top { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 700px) {
  .container { width: min(100% - 32px, 1240px); }
  .nav-wrap { min-height: 68px; }
  .nav-links { position: absolute; top: 68px; left: 16px; right: 16px; display: none; flex-direction: column; align-items: stretch; gap: 0; padding: 14px 18px; background: var(--white); border: 1px solid var(--line); border-radius: 16px; box-shadow: var(--shadow); }
  .nav-links.is-open { display: flex; }
  .nav-links a { padding: 12px 0; border-bottom: 1px solid var(--line); }
  .nav-links a:last-child { border-bottom: 0; }
  .menu-toggle { display: grid; }
  .header-actions .icon-link { display: grid; }
  .hero-inner { padding: 70px 0 50px; }
  .hero h1 { font-size: clamp(48px, 15vw, 76px); }
  .hero-visual { min-height: 380px; }
  .hero-card { width: 72%; }
  .section { padding: 80px 0; }
  .section-head { display: block; }
  .section-intro { margin-top: 20px; }
  .collection-grid { grid-template-columns: 1fr; }
  .collection-card, .collection-card.small { min-height: 360px; }
  .newsletter { padding: 70px 0; }
  .footer-top { grid-template-columns: 1fr 1fr; gap: 30px 20px; }
  .footer-bottom { display: block; }
  .footer-bottom span { display: block; margin-top: 8px; }
  .product-grid, .woocommerce ul.products { gap: 14px; }
  .woocommerce ul.products { width: calc(100% - 32px); }
  .woocommerce .woocommerce-breadcrumb, .woocommerce div.product { width: calc(100% - 32px); }
}
/* Homepage featured grid spacing refinement. */
#featured { padding-bottom: 64px; }
#featured .product-grid { margin-bottom: 0; }
#featured .product-card { align-self: stretch; }
@media (max-width: 700px) {
  #featured { padding-bottom: 48px; }
}

/* Prevent blank-page flashes while reveal JavaScript initializes. */
.reveal { opacity: 1; transform: none; }
.velorza-js-ready .reveal,
.velorza-js-ready .reveal.is-visible { opacity: 1; transform: none; }

/* Responsive product-card normalization pass */
.product-card { display: flex; flex-direction: column; min-width: 0; height: 100%; }
.product-image { display: block; width: 100%; aspect-ratio: 4 / 5; overflow: hidden; }
.product-image picture { display: block; width: 100%; height: 100%; }
.product-image picture img,
.product-image > img { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: center center; }
.product-meta { display: flex; flex: 1 1 auto; flex-direction: column; min-width: 0; padding-top: 16px; }
.product-meta h3 { min-height: 2.55em; line-height: 1.28; }
.product-category { min-height: 1.5em; line-height: 1.4; }
.product-price { min-height: 1.5em; line-height: 1.4; }
.product-link { margin-top: auto; align-self: flex-start; padding-top: 14px; }
.product-grid { align-items: stretch; row-gap: 48px; padding-bottom: 28px; }
.woocommerce ul.products { align-items: stretch; row-gap: 48px; padding-bottom: 28px; }
.woocommerce ul.products li.product { display: flex; flex-direction: column; min-width: 0; }
.woocommerce ul.products li.product a:first-child { display: block; }
.site-footer { clear: both; margin-top: 24px; }

@media (max-width: 700px) {
  .product-grid, .woocommerce ul.products { row-gap: 32px; padding-bottom: 20px; }
  .product-image { aspect-ratio: 4 / 5; border-radius: 14px; }
  .product-meta { padding-top: 12px; }
  .product-meta h3 { min-height: 0; font-size: 15px; }
  .product-category, .product-price { font-size: 11px; }
  .product-link { padding-top: 12px; font-size: 10px; }
}

@media (max-width: 480px) {
  .product-grid, .woocommerce ul.products { grid-template-columns: 1fr; gap: 28px; }
  .product-image { aspect-ratio: 5 / 6; }
  .product-meta h3 { font-size: 16px; }
  .product-category, .product-price { font-size: 12px; }
}

/* Weekend Edit structural ratio: match the portrait source image instead of forcing a wide banner. */
.collection-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
.collection-card,
.collection-card.small { min-height: 0; aspect-ratio: 4 / 5; }
.collection-card img,
.collection-card.small img { object-fit: cover; object-position: center center; }

/* Editorial collection-card framing: show the complete source image, never crop it. */
.collection-card { background: #d8cbbb; }
.collection-card img,
.collection-card.small img { object-fit: contain; object-position: center center; background: #d8cbbb; }
.collection-card::before { background: linear-gradient(0deg, rgba(0,0,0,.72), rgba(0,0,0,0) 72%); }

/* Weekend Edit: isolated layout that is not affected by generic collection-card rules. */
.weekend-edit-section { scroll-margin-top: 110px; padding-top: 140px; }
.weekend-edit-section .section-head { margin-bottom: 44px; }
.weekend-edit-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; align-items: stretch; }
.weekend-edit-grid .collection-card,
.weekend-edit-grid .collection-card.small { min-height: 620px; aspect-ratio: auto; }
.weekend-edit-grid .collection-card img,
.weekend-edit-grid .collection-card.small img { object-fit: contain; object-position: center center; background: #d8cbbb; }
@media (max-width: 700px) {
  .weekend-edit-section { scroll-margin-top: 82px; padding-top: 96px; }
  .weekend-edit-grid { grid-template-columns: 1fr; gap: 20px; }
  .weekend-edit-grid .collection-card,
  .weekend-edit-grid .collection-card.small { min-height: 560px; }
}

/* Contact, Cart, and Checkout visual system. */
.velorza-contact-page .contact-hero { max-width: 760px; padding-bottom: 64px; }
.velorza-contact-page .contact-hero p { max-width: 560px; margin-top: 22px; color: var(--muted); font-size: 17px; line-height: 1.7; }
.contact-layout { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(280px, .85fr); gap: 72px; align-items: start; padding: 24px 0 120px; }
.contact-form-panel, .contact-details { border-top: 1px solid var(--line); padding-top: 24px; }
.contact-form-panel h2, .contact-details h2 { margin: 14px 0 28px; font-size: clamp(28px, 3vw, 46px); letter-spacing: -.04em; }
.velorza-contact-form label { display: grid; gap: 9px; margin-bottom: 20px; color: var(--muted); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; }
.velorza-contact-form input, .velorza-contact-form textarea { width: 100%; border: 1px solid var(--line); border-radius: 0; background: transparent; padding: 15px 14px; color: var(--ink); font: inherit; font-size: 16px; letter-spacing: normal; text-transform: none; outline: none; }
.velorza-contact-form input:focus, .velorza-contact-form textarea:focus { border-color: var(--ink); box-shadow: 0 0 0 2px rgba(20,20,20,.08); }
.form-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.velorza-contact-form .btn { margin-top: 6px; }
.contact-details { color: var(--muted); }
.contact-details p { max-width: 360px; line-height: 1.75; margin-bottom: 30px; }
.contact-details > a { color: var(--ink); font-size: 20px; text-decoration: underline; text-underline-offset: 5px; }
.contact-detail-line { display: flex; justify-content: space-between; gap: 18px; border-top: 1px solid var(--line); margin-top: 28px; padding-top: 14px; font-size: 13px; }
.contact-detail-line strong { color: var(--ink); font-weight: 500; text-align: right; }
.velorza-form-notice { margin: 0 0 24px; padding: 14px 16px; border: 1px solid var(--line); font-size: 14px; }
.velorza-form-notice.is-success { border-color: #8caa72; }
.velorza-form-notice.is-error { border-color: #b66b63; }

body.woocommerce-cart .woocommerce, body.woocommerce-checkout .woocommerce { width: 100%; }
body.woocommerce-cart .woocommerce-notices-wrapper { display: none; }
body.woocommerce-cart .shop_table { border-collapse: collapse; width: 100%; border: 0; }
body.woocommerce-cart .shop_table th { color: var(--muted); font-size: 11px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; padding: 0 16px 14px; border-bottom: 1px solid var(--ink); }
body.woocommerce-cart .shop_table td { padding: 22px 16px; border-bottom: 1px solid var(--line); vertical-align: middle; }
body.woocommerce-cart .shop_table .product-thumbnail img { width: 84px; height: 104px; object-fit: cover; }
body.woocommerce-cart .product-name a { color: var(--ink); font-size: 17px; }
body.woocommerce-cart .product-price, body.woocommerce-cart .product-subtotal { color: var(--ink); white-space: nowrap; }
body.woocommerce-cart .quantity .qty { width: 62px; border: 1px solid var(--line); padding: 10px 6px; background: transparent; text-align: center; }
body.woocommerce-cart .product-remove a { color: var(--muted); font-size: 22px; }
body.woocommerce-cart .actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; padding: 18px 0 48px; }
body.woocommerce-cart .coupon { display: flex; gap: 8px; margin-right: auto; }
body.woocommerce-cart .coupon input { min-width: 170px; border: 1px solid var(--line); padding: 12px; background: transparent; }
body.woocommerce-cart .button, body.woocommerce-checkout #place_order { border: 1px solid var(--ink); border-radius: 999px; background: var(--ink); color: #fff; padding: 13px 20px; font: inherit; cursor: pointer; }
body.woocommerce-cart .cart-collaterals { display: flex; justify-content: flex-end; }
body.woocommerce-cart .cart_totals { width: min(100%, 420px); border-top: 1px solid var(--ink); padding-top: 20px; }
body.woocommerce-cart .cart_totals h2 { font-size: 24px; letter-spacing: -.03em; }
body.woocommerce-cart .cart_totals table { width: 100%; border-collapse: collapse; }
body.woocommerce-cart .cart_totals td, body.woocommerce-cart .cart_totals th { padding: 12px 0; border-bottom: 1px solid var(--line); text-align: left; }
body.woocommerce-cart .wc-proceed-to-checkout { padding-top: 22px; }
body.woocommerce-cart .wc-proceed-to-checkout a { display: block; border-radius: 999px; background: var(--ink); color: #fff; padding: 15px 20px; text-align: center; }

body.woocommerce-checkout form.checkout { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr); grid-template-rows: auto auto; gap: 24px 64px; align-items: start; }
body.woocommerce-checkout form.checkout #customer_details { grid-column: 1; grid-row: 1 / span 2; }
body.woocommerce-checkout form.checkout #order_review_heading { grid-column: 2; grid-row: 1; margin: 0; }
body.woocommerce-checkout form.checkout #order_review { grid-column: 2; grid-row: 2; width: 100%; }
body.woocommerce-checkout .form-row-first,
body.woocommerce-checkout .form-row-last { float: none; width: 100%; }
body.woocommerce-checkout .col2-set { display: grid; grid-template-columns: 1fr; }
body.woocommerce-checkout .col2-set .col-1,
body.woocommerce-checkout .col2-set .col-2 { float: none; width: 100%; }
body.woocommerce-checkout .woocommerce-billing-fields, body.woocommerce-checkout .woocommerce-additional-fields, body.woocommerce-checkout #order_review { border-top: 1px solid var(--ink); padding-top: 20px; }
body.woocommerce-checkout #order_review { position: sticky; top: 110px; }
body.woocommerce-checkout h3 { margin: 0 0 24px; font-size: 25px; letter-spacing: -.03em; }
body.woocommerce-checkout #customer_details { width: 100%; }
body.woocommerce-checkout .form-row { display: block; width: 100%; margin: 0 0 18px; padding: 0; }
body.woocommerce-checkout .form-row label { display: block; width: 100%; }
body.woocommerce-checkout .form-row .input-text,
body.woocommerce-checkout .form-row select,
body.woocommerce-checkout .form-row .select2-container { display: block; width: 100% !important; }
body.woocommerce-checkout label { color: var(--muted); font-size: 12px; letter-spacing: .04em; }
body.woocommerce-checkout input.input-text, body.woocommerce-checkout textarea, body.woocommerce-checkout select { width: 100%; min-height: 48px; border: 1px solid var(--line); border-radius: 0; background: transparent; padding: 12px 13px; font: inherit; }
body.woocommerce-checkout textarea { min-height: 120px; }
body.woocommerce-checkout .select2-container .select2-selection--single { height: 48px; border: 1px solid var(--line); border-radius: 0; background: transparent; }
body.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 46px; }
body.woocommerce-checkout .woocommerce-checkout-review-order-table { width: 100%; border-collapse: collapse; }
body.woocommerce-checkout .woocommerce-checkout-review-order-table th, body.woocommerce-checkout .woocommerce-checkout-review-order-table td { padding: 13px 0; border-bottom: 1px solid var(--line); text-align: left; }
body.woocommerce-checkout .woocommerce-NoticeGroup, body.woocommerce-checkout .woocommerce-info, body.woocommerce-checkout .woocommerce-error { grid-column: 1 / -1; }
body.woocommerce-checkout .woocommerce-checkout-payment { background: transparent; border-top: 1px solid var(--line); margin-top: 20px; padding-top: 18px; }
body.woocommerce-checkout .payment_box { background: #f1eee9; padding: 14px; }

@media (max-width: 760px) {
  .contact-layout, body.woocommerce-checkout form.checkout { grid-template-columns: 1fr; grid-template-rows: auto; gap: 44px; }
  body.woocommerce-checkout form.checkout #customer_details,
  body.woocommerce-checkout form.checkout #order_review_heading,
  body.woocommerce-checkout form.checkout #order_review { grid-column: 1; grid-row: auto; }
  .velorza-contact-page .contact-hero { padding-bottom: 34px; }
  .contact-layout { padding-bottom: 72px; }
  .form-row { grid-template-columns: 1fr; gap: 0; }
  body.woocommerce-checkout #order_review { position: static; }
  body.woocommerce-cart .shop_table thead { display: none; }
  body.woocommerce-cart .shop_table, body.woocommerce-cart .shop_table tbody, body.woocommerce-cart .shop_table tr, body.woocommerce-cart .shop_table td { display: block; width: 100%; }
  body.woocommerce-cart .shop_table tr.cart_item { position: relative; display: grid; grid-template-columns: 84px 1fr auto; gap: 14px; padding: 20px 0; }
  body.woocommerce-cart .shop_table td { border: 0; padding: 0; }
  body.woocommerce-cart .shop_table td.product-remove { position: absolute; top: 14px; right: 0; }
  body.woocommerce-cart .shop_table td.product-thumbnail { grid-row: span 3; }
  body.woocommerce-cart .shop_table td.product-name { padding-right: 24px; }
  body.woocommerce-cart .shop_table td.product-price { grid-column: 2; font-size: 14px; }
  body.woocommerce-cart .shop_table td.product-quantity { grid-column: 3; grid-row: 2; }
  body.woocommerce-cart .shop_table td.product-subtotal { grid-column: 2 / -1; padding-top: 8px; font-weight: 600; }
  body.woocommerce-cart .actions, body.woocommerce-cart .coupon { flex-direction: column; align-items: stretch; }
  body.woocommerce-cart .coupon { width: 100%; }
  body.woocommerce-cart .coupon input, body.woocommerce-cart .coupon button, body.woocommerce-cart .actions > button { width: 100%; margin: 0; }
  body.woocommerce-cart .cart-collaterals { display: block; }
  body.woocommerce-cart .cart_totals { width: 100%; }
}

/* Structural product-grid correction: keep card content intrinsic and fully visible. */
.product-card { height: auto; align-self: start; }
.product-meta { display: block; min-height: 145px; }
.product-link { margin-top: 14px; }
.product-image picture img,
.product-image > img { object-fit: contain; background: #eae7e2; }

@media (min-width: 981px) and (max-width: 1360px) {
  .product-grid, .woocommerce ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 980px) {
  .product-grid, .woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 480px) {
  .product-grid, .woocommerce ul.products { grid-template-columns: 1fr; }
  .product-meta { min-height: 0; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
}

/* UI/UX refinement pass */
.woocommerce-cart .woocommerce-info {
  width: min(760px, calc(100% - 48px));
  margin: 28px auto 18px;
  padding: 30px 34px;
  border: 1px solid var(--line);
  border-top: 2px solid var(--accent-dark);
  border-radius: 18px;
  color: var(--muted);
  background: var(--white);
  text-align: center;
  box-shadow: 0 12px 36px rgba(11, 13, 15, .05);
}
.woocommerce-cart .return-to-shop {
  width: min(760px, calc(100% - 48px));
  margin: 0 auto 80px;
  text-align: center;
}
.woocommerce-cart .return-to-shop .button { min-height: 48px; padding: 0 26px; }
.product-single-cart .cart { flex-wrap: wrap; }
.product-single-cart .quantity .qty { width: 76px; min-height: 50px; padding: 0 12px; text-align: center; }
.product-single-cart .single_add_to_cart_button { min-width: 150px; }
.newsletter-form input:focus-visible, .newsletter-form button:focus-visible,
.woocommerce input:focus-visible, .woocommerce select:focus-visible,
.woocommerce textarea:focus-visible { outline: 2px solid var(--accent-dark); outline-offset: 4px; }
.product-card .product-link, .collection-card, .btn, .woocommerce a.button, .woocommerce button.button { -webkit-tap-highlight-color: transparent; }
@media (max-width: 700px) {
  .hero-actions { flex-wrap: wrap; }
  .hero-actions .btn { flex: 1 1 150px; padding-inline: 16px; }
  .product-single { gap: 28px; }
  .product-single-info h1 { font-size: clamp(40px, 12vw, 62px); }
  .product-single-cart .cart { align-items: stretch; }
  .product-single-cart .quantity, .product-single-cart .single_add_to_cart_button { flex: 1 1 100%; }
  .product-single-cart .quantity .qty, .product-single-cart .single_add_to_cart_button { width: 100%; }
  .woocommerce-cart .woocommerce-info, .woocommerce-cart .return-to-shop { width: calc(100% - 32px); }
  .woocommerce-cart .woocommerce-info { padding: 24px 18px; }
  .newsletter-form { align-items: stretch; }
  .newsletter-form button { padding: 12px 0; }
}


/* Final cart layout: explicit columns prevent the thumbnail from collapsing. */
@media (min-width: 761px) {
  body.woocommerce-cart .shop_table { table-layout: fixed; }
  body.woocommerce-cart .shop_table .product-remove { width: 52px !important; padding-left: 0; padding-right: 0; text-align: center; }
  body.woocommerce-cart .shop_table .product-thumbnail { width: 116px !important; padding-left: 0; padding-right: 14px; }
  body.woocommerce-cart .shop_table .product-name { width: auto; padding-left: 14px; }
  body.woocommerce-cart .shop_table .product-price { width: 142px; }
  body.woocommerce-cart .shop_table .product-quantity { width: 126px; }
  body.woocommerce-cart .shop_table .product-subtotal { width: 156px; padding-right: 0; }
  body.woocommerce-cart .shop_table .product-thumbnail img { display: block; width: 88px !important; height: 112px !important; object-fit: cover; }
  body.woocommerce-cart .actions { display: grid; grid-template-columns: minmax(280px, 1fr) auto; gap: 14px; align-items: center; }
  body.woocommerce-cart .coupon { margin: 0; justify-content: flex-start; }
  body.woocommerce-cart .coupon input { width: 190px; min-width: 0; height: 48px; }
  body.woocommerce-cart .coupon button,
  body.woocommerce-cart .actions > .button { min-width: 142px; height: 48px; padding: 11px 18px; }
  body.woocommerce-cart .actions > .button { margin: 0; }
  body.woocommerce-cart .cart-collaterals { margin-top: 20px; }
  body.woocommerce-cart .cart_totals { width: min(100%, 420px); }
  body.woocommerce-cart .wc-proceed-to-checkout a { height: auto; padding: 14px 20px; }
}

@media (max-width: 760px) {
  body.woocommerce-cart .shop_table td.product-thumbnail img { display: block; width: 84px !important; height: 112px !important; object-fit: cover; }
  body.woocommerce-cart .shop_table tr.cart_item { grid-template-columns: 84px minmax(0, 1fr) auto; align-items: start; }
  body.woocommerce-cart .actions > .button { min-height: 48px; }
  body.woocommerce-cart .coupon input, body.woocommerce-cart .coupon button { height: 48px; }
  body.woocommerce-cart .wc-proceed-to-checkout a { height: auto; padding: 14px 18px; }
}


/* Coupon controls: prevent flex shrink and neutralize WooCommerce disabled gray styling. */
@media (min-width: 761px) {
  body.woocommerce-cart .actions { grid-template-columns: minmax(340px, 1fr) auto; }
  body.woocommerce-cart .coupon { width: auto; min-width: 340px; gap: 10px; }
  body.woocommerce-cart .coupon input { flex: 0 0 190px; width: 190px !important; min-width: 190px; color: var(--ink); background: #fff; }
  body.woocommerce-cart .coupon button { flex: 0 0 142px; width: 142px; }
}
body.woocommerce-cart .actions .button,
body.woocommerce-cart .actions .button:disabled,
body.woocommerce-cart .actions .button[disabled] {
  opacity: 1 !important;
  background: #f7f5f2 !important;
  color: var(--ink) !important;
  border: 1px solid #a8a3a0 !important;
  box-shadow: none !important;
}
body.woocommerce-cart .coupon button {
  background: var(--ink) !important;
  color: #fff !important;
  border: 1px solid var(--ink) !important;
  opacity: 1 !important;
  border-radius: 999px;
  line-height: 1.1;
}
@media (max-width: 760px) {
  body.woocommerce-cart .coupon { min-width: 0; width: 100%; gap: 10px; }
  body.woocommerce-cart .coupon input { flex: 1 1 auto; width: auto !important; min-width: 0; }
  body.woocommerce-cart .coupon button { flex: 0 0 auto; width: auto; }
}


/* Highest-specificity coupon action styling. */
body.woocommerce-cart .actions .coupon button,
body.woocommerce-cart .actions .coupon button:hover,
body.woocommerce-cart .actions .coupon button:focus {
  background: #0b0d0f !important;
  color: #fff !important;
  border-color: #0b0d0f !important;
  opacity: 1 !important;
}


/* Apply coupon: keep the label readable on one line. */
body.woocommerce-cart .actions .coupon button,
body.woocommerce-cart .actions .coupon button:hover,
body.woocommerce-cart .actions .coupon button:focus {
  flex: 0 0 158px !important;
  width: 158px !important;
  min-width: 158px !important;
  height: 48px !important;
  min-height: 48px !important;
  padding: 10px 14px !important;
  white-space: nowrap !important;
  word-break: keep-all !important;
  line-height: 1 !important;
  text-align: center;
}
@media (max-width: 760px) {
  body.woocommerce-cart .actions .coupon button,
  body.woocommerce-cart .actions .coupon button:hover,
  body.woocommerce-cart .actions .coupon button:focus {
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: 158px !important;
  }
}


/* Final balanced coupon row: exact internal width prevents button collision. */
@media (min-width: 761px) {
  body.woocommerce-cart .actions { grid-template-columns: minmax(340px, 1fr) auto; column-gap: 14px; }
  body.woocommerce-cart .coupon { width: 340px; min-width: 340px; gap: 10px; }
  body.woocommerce-cart .actions .coupon input { flex: 0 0 180px !important; width: 180px !important; min-width: 180px !important; }
  body.woocommerce-cart .actions .coupon button,
  body.woocommerce-cart .actions .coupon button:hover,
  body.woocommerce-cart .actions .coupon button:focus { flex: 0 0 150px !important; width: 150px !important; min-width: 150px !important; }
  body.woocommerce-cart .actions > .button { width: 150px; min-width: 150px; }
}
@media (max-width: 760px) {
  body.woocommerce-cart .actions .coupon button,
  body.woocommerce-cart .actions .coupon button:hover,
  body.woocommerce-cart .actions .coupon button:focus { min-width: 150px !important; }
}


/* Automatic cart quantity updates: keep WooCommerce's submit control functional but invisible. */
body.woocommerce-cart .actions > button[name="update_cart"],
body.woocommerce-cart .actions > input[name="update_cart"] { display: none !important; }
body.woocommerce-cart .woocommerce-cart-form.is-auto-updating { opacity: .72; pointer-events: none; }


/* Premium commerce finish: clear contrast, calm surfaces, and a confident checkout hierarchy. */
:root { --velorza-paper: #fbfaf8; --velorza-warm: #f3f0eb; --velorza-line: #d8d3cc; --velorza-muted-ink: #4d4a46; }

/* Contact contrast and feedback. */
.velorza-contact-page .contact-details h2,
.velorza-contact-page .contact-form-panel h2 { color: var(--ink); }
.velorza-contact-page .contact-details p,
.velorza-contact-page .contact-hero p { color: var(--velorza-muted-ink); }
.velorza-contact-page .contact-detail-line span { color: var(--velorza-muted-ink); }
.velorza-contact-page .velorza-form-notice { background: var(--velorza-paper); color: var(--ink); }

/* Checkout header and coupon entry. */
body.woocommerce-checkout .page-header { max-width: 760px; margin-bottom: 8px; }
body.woocommerce-checkout .woocommerce-form-coupon-toggle { grid-column: 1 / -1; }
body.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info,
body.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-message { margin: 0 0 8px; border: 1px solid var(--velorza-line); border-left: 0; border-right: 0; border-radius: 0; background: var(--velorza-paper); color: var(--ink); padding: 16px 0; }
body.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info::before,
body.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-message::before { color: var(--ink); }
body.woocommerce-checkout .woocommerce-form-coupon-toggle a { color: var(--ink); text-decoration: underline; text-underline-offset: 4px; font-weight: 600; }
body.woocommerce-checkout form.checkout_coupon { display: flex; align-items: center; gap: 10px; max-width: 560px; margin: 12px 0 28px; padding: 0; border: 0; }
body.woocommerce-checkout form.checkout_coupon input.input-text { flex: 1 1 auto; width: auto; min-height: 48px; border: 1px solid var(--velorza-line); background: #fff; }
body.woocommerce-checkout form.checkout_coupon button { flex: 0 0 auto; min-height: 48px; border-radius: 999px; background: var(--ink); color: #fff; border: 1px solid var(--ink); padding: 12px 22px; }

/* Checkout columns: visible sections rather than a flat WooCommerce form. */
body.woocommerce-checkout form.checkout { gap: 24px 72px; }
body.woocommerce-checkout #customer_details,
body.woocommerce-checkout #order_review_heading,
body.woocommerce-checkout #order_review { background: transparent; }
body.woocommerce-checkout #customer_details { border-top: 1px solid var(--ink); padding-top: 20px; }
body.woocommerce-checkout #order_review_heading { border-top: 1px solid var(--ink); padding-top: 20px; color: var(--ink); }
body.woocommerce-checkout #order_review { position: sticky; top: 106px; align-self: start; }
body.woocommerce-checkout .woocommerce-billing-fields h3,
body.woocommerce-checkout .woocommerce-additional-fields h3,
body.woocommerce-checkout #order_review_heading { color: var(--ink); font-size: clamp(24px, 2.4vw, 32px); letter-spacing: -.04em; }
body.woocommerce-checkout .form-row label { color: var(--velorza-muted-ink); font-weight: 500; }
body.woocommerce-checkout input.input-text,
body.woocommerce-checkout textarea,
body.woocommerce-checkout select,
body.woocommerce-checkout .select2-container .select2-selection--single { border-color: var(--velorza-line); background: #fff; color: var(--ink); }
body.woocommerce-checkout input.input-text:focus,
body.woocommerce-checkout textarea:focus,
body.woocommerce-checkout select:focus,
body.woocommerce-checkout .select2-container--focus .select2-selection--single { border-color: var(--ink); box-shadow: 0 0 0 2px rgba(11,13,15,.08); outline: none; }
body.woocommerce-checkout .woocommerce-checkout-review-order-table { background: var(--velorza-paper); border-top: 1px solid var(--velorza-line); }
body.woocommerce-checkout .woocommerce-checkout-review-order-table th,
body.woocommerce-checkout .woocommerce-checkout-review-order-table td { padding: 16px 14px; border-bottom: 1px solid var(--velorza-line); color: var(--ink); }
body.woocommerce-checkout .woocommerce-checkout-review-order-table th { font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--velorza-muted-ink); }
body.woocommerce-checkout .woocommerce-checkout-payment { background: var(--velorza-paper); border-top: 1px solid var(--velorza-line); padding: 18px 14px 14px; }
body.woocommerce-checkout .woocommerce-checkout-payment ul.payment_methods { border: 0; padding: 0 0 12px; }
body.woocommerce-checkout .woocommerce-checkout-payment .woocommerce-info,
body.woocommerce-checkout .woocommerce-checkout-payment .woocommerce-error { background: var(--velorza-warm); color: var(--ink); border: 1px solid var(--velorza-line); padding: 14px; }
body.woocommerce-checkout #place_order { width: 100%; min-height: 54px; margin-top: 16px; border-radius: 999px; background: var(--ink) !important; color: #fff !important; border: 1px solid var(--ink) !important; font-size: 15px; letter-spacing: .02em; }
body.woocommerce-checkout #place_order:hover,
body.woocommerce-checkout #place_order:focus { background: #272a2c !important; color: #fff !important; }
body.woocommerce-checkout .woocommerce-privacy-policy-text { color: var(--velorza-muted-ink); font-size: 12px; line-height: 1.6; }
body.woocommerce-checkout .woocommerce-privacy-policy-text a { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }
body.woocommerce-checkout .woocommerce-error,
body.woocommerce-checkout .woocommerce-message { border-top: 1px solid var(--velorza-line); border-bottom: 1px solid var(--velorza-line); border-left: 0; border-right: 0; border-radius: 0; background: var(--velorza-paper); color: var(--ink); }

/* Remove unintended dark-gray presentation from cart and shared notices. */
body.woocommerce-cart .coupon input,
body.woocommerce-cart .coupon input:focus { background: #fff; color: var(--ink); border-color: var(--velorza-line); }
body.woocommerce-cart .actions > .button,
body.woocommerce-cart .actions > .button:disabled { background: var(--velorza-paper) !important; color: var(--ink) !important; border-color: #9f9992 !important; }

@media (max-width: 760px) {
  body.woocommerce-checkout form.checkout_coupon { display: grid; grid-template-columns: 1fr; max-width: none; }
  body.woocommerce-checkout form.checkout_coupon input.input-text,
  body.woocommerce-checkout form.checkout_coupon button { width: 100%; }
  body.woocommerce-checkout #order_review { position: static; }
  body.woocommerce-checkout #order_review_heading { margin-top: 8px; }
  body.woocommerce-checkout .woocommerce-checkout-review-order-table th,
  body.woocommerce-checkout .woocommerce-checkout-review-order-table td { padding-left: 0; padding-right: 0; }
}


/* Final checkout contrast and CTA normalization. */
body.woocommerce-checkout #payment.woocommerce-checkout-payment,
body.woocommerce-checkout .woocommerce-checkout-payment {
  background: var(--velorza-paper) !important;
  color: var(--ink) !important;
  border: 0 !important;
  box-shadow: none !important;
}
body.woocommerce-checkout #payment #place_order,
body.woocommerce-checkout #place_order {
  display: block !important;
  float: none !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  margin: 16px 0 0 !important;
  box-sizing: border-box !important;
}


/* Place-order row: remove WooCommerce's inner width constraint so the CTA fills the payment panel. */
body.woocommerce-checkout #payment .form-row.place-order {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  float: none !important;
  box-sizing: border-box !important;
  margin: 0 !important;
  padding: 16px 0 0 !important;
}
body.woocommerce-checkout #payment .form-row.place-order #place_order {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
}
