/* =========================================================
   Altum Cardæ · store pages
   Shop, product, cart, checkout, order received, account, legal pages.
   Loaded after css/styles.css (shares its tokens: --green, --gold-*, --cream…).
   ========================================================= */

.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 46px; } }
.page { background: var(--cream); }

/* ---------- Page header band ---------- */
.page-hero {
  position: relative; overflow: hidden; color: var(--cream);
  background: radial-gradient(110% 120% at 80% 30%, #0b4a32 0%, var(--green) 45%, var(--green-ink) 100%);
  min-height: 62vh; display: flex; align-items: flex-end;
  padding: 190px 0 clamp(70px, 10vh, 110px);
}
.page-hero--compact { min-height: 0; padding: 170px 0 70px; }
.page-hero-emblem { position: absolute; right: -6vw; top: 50%; width: min(86vh, 780px); transform: translateY(-50%); opacity: .14; pointer-events: none; }
.page-hero--compact .page-hero-emblem { width: min(70vh, 560px); right: -4vw; }
.page-hero-inner { position: relative; }
.page-hero-title { font-size: clamp(56px, 8.4vw, 132px); font-weight: 300; line-height: .95; letter-spacing: -.02em; margin: 0 0 26px; }
.page-hero--compact .page-hero-title { font-size: clamp(48px, 6.4vw, 96px); margin-bottom: 0; }
.page-hero-title .line { display: block; overflow: hidden; padding-bottom: .08em; }
.page-hero-title .char { display: inline-block; }
.page-hero-sub { max-width: 580px; font-size: 18px; color: rgba(250, 247, 240, .74); margin: 0; }
.page-hero .chapter { margin-bottom: 30px; }

.crumbs { margin: 0 0 30px; font-size: 11px; letter-spacing: .24em; text-transform: uppercase; color: rgba(250, 247, 240, .55); }
.crumbs a { transition: color .3s; }
.crumbs a:hover { color: var(--gold-light); }
.crumb-sep { margin: 0 10px; color: var(--gold-light); }
.crumbs--dark { color: var(--gray); }
.crumbs--dark a:hover { color: var(--gold-dark); }
.crumbs--dark .crumb-sep { color: var(--gold-dark); }

/* ---------- Page body (cart, checkout, account, legal) ---------- */
.page-body { background: var(--cream); padding: clamp(70px, 10vh, 120px) 0 clamp(90px, 12vh, 150px); }
.page-content { max-width: 1240px; }
.page-content > h2, .page-content > h3 { color: var(--green); margin: 1.6em 0 .6em; }
.page-content > p, .page-content > ul, .page-content > ol { max-width: 760px; color: var(--gray); }

/* ---------- Shop grid ---------- */
.shop { background: var(--cream); padding: clamp(80px, 12vh, 140px) 0 30px; }
.shop--related { padding: clamp(80px, 12vh, 130px) 0 clamp(90px, 12vh, 140px); }
.shop-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(30px, 3.2vw, 56px); }
.product--grid { width: auto; height: auto; padding: 0; display: flex; flex-direction: column; gap: 26px; border: 0 !important; }
.product--grid .product-media { max-height: none; width: 100%; aspect-ratio: 3 / 4; }
.product--grid .product-num { top: 18px; right: 24px; left: auto; z-index: 3; font-size: clamp(54px, 5vw, 76px); -webkit-text-stroke-color: rgba(230, 201, 128, .65); pointer-events: none; }
.product--grid h3 { font-size: clamp(28px, 2.4vw, 40px); margin-bottom: 14px; }
.product--grid .product-desc { max-width: none; font-size: 15px; }
.product--grid .product-meta { margin: 20px 0 26px; }
.shop-empty { text-align: center; padding: 40px 0 80px; }
.shop-empty p { font-family: var(--serif); font-size: 30px; color: var(--green); }
.woocommerce-pagination { margin-top: 60px; text-align: center; }

/* ---------- Product page ---------- */
.pdp { background: var(--cream); padding: 150px 0 clamp(80px, 10vh, 120px); }
.pdp-grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(40px, 6vw, 110px); align-items: start; }
.pdp-media-col { position: sticky; top: 110px; }
.pdp-media { position: relative; margin: 0; aspect-ratio: 4 / 5; overflow: hidden; background: #1d1f1e; transform-style: preserve-3d; }
.pdp-media::after { content: ""; position: absolute; inset: 16px; border: 1px solid rgba(230, 201, 128, .4); pointer-events: none; z-index: 1; }
.pdp-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.pdp-media--tin { display: grid; place-items: center; background: radial-gradient(90% 70% at 50% 45%, #3a3d3b 0%, #1d1f1e 60%, #121413 100%); }
.pdp-media--tin img { position: static; width: auto; height: 82%; max-width: 86%; object-fit: contain; filter: drop-shadow(0 40px 50px rgba(0, 0, 0, .5)); }
.pdp-thumbs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-top: 12px; }
.pdp-thumbs img { width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; }
.pdp-info { padding-top: 20px; }
.pdp-info .product-kicker { margin-bottom: 14px; }
.pdp-title { font-size: clamp(46px, 5.2vw, 84px); font-weight: 300; line-height: .98; color: var(--green); margin: 0 0 28px; }
.pdp-price { display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap; font-family: var(--serif); font-size: 36px; color: var(--green); margin: 0 0 26px; padding-bottom: 26px; border-bottom: 1px solid var(--line); }
.pdp-price small { font-family: var(--sans); font-size: 11px; letter-spacing: .22em; text-transform: uppercase; color: var(--gray); }
.pdp-price del { opacity: .5; font-size: .7em; }
.pdp-price ins { text-decoration: none; }
.pdp-soon { font-style: italic; font-weight: 300; font-size: 30px; color: var(--gold-dark); }
.pdp-short p { color: var(--gray); font-size: 17px; max-width: 540px; }
.pdp-buy { margin: 34px 0 10px; }
.pdp-buy form.cart { display: flex; flex-wrap: wrap; gap: 14px; align-items: stretch; margin: 0; }
.pdp-buy .quantity .qty, .woocommerce .quantity .qty {
  height: 56px; width: 86px; border: 1px solid var(--green); border-radius: 0; background: transparent;
  text-align: center; font: inherit; font-size: 16px; color: var(--green);
}
.pdp-notify { color: var(--gray); font-size: 15px; max-width: 460px; margin-bottom: 22px; }
.pdp-specs { margin: 46px 0 0; border-top: 1px solid var(--line); }
.pdp-specs > div { display: grid; grid-template-columns: 150px 1fr; gap: 16px; padding: 15px 0; border-bottom: 1px solid var(--line); }
.pdp-specs dt { font-size: 11px; letter-spacing: .24em; text-transform: uppercase; color: var(--green); padding-top: 3px; }
.pdp-specs dd { margin: 0; color: var(--gray); font-size: 15px; }
.pdp-assurance { list-style: none; margin: 30px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px 26px; }
.pdp-assurance li { display: flex; align-items: center; gap: 10px; font-size: 11px; letter-spacing: .22em; text-transform: uppercase; color: var(--gray); }
.pdp-assurance li::before { content: ""; width: 6px; height: 6px; transform: rotate(45deg); border: 1px solid var(--gold-dark); }

.pdp-story { position: relative; overflow: hidden; background: var(--green-deep); color: var(--cream); padding: clamp(100px, 15vh, 170px) 0; }
.pdp-story-emblem { left: 78%; opacity: .1; }
.pdp-story-grid { position: relative; display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(50px, 7vw, 120px); align-items: center; }
.pdp-story h2 { font-size: clamp(42px, 4.8vw, 76px); font-weight: 300; margin-bottom: 30px; }
.pdp-story h2 em { color: var(--gold-light); }
.pdp-description p { color: rgba(250, 247, 240, .74); max-width: 560px; }
.radar--dark .radar-grid polygon, .radar--dark .radar-grid line { stroke: rgba(230, 201, 128, .25); }
.radar--dark .radar-shape { fill: rgba(230, 201, 128, .22); stroke: var(--gold-light); }
.radar--dark text { fill: var(--cream); }
.pdp-story-chart .radar { max-width: 380px; margin: 0 auto 30px; }
.notes--dark { justify-content: center; }
.notes--dark li { border-color: rgba(230, 201, 128, .35); color: var(--cream); }

/* ---------- WooCommerce buttons, notices, forms ---------- */
.woocommerce .button, .woocommerce button.button, .woocommerce a.button, .woocommerce input.button,
.woocommerce #respond input#submit, .woocommerce-page .button {
  display: inline-flex; align-items: center; justify-content: center; min-height: 54px; padding: 0 32px;
  border: 1px solid var(--green); border-radius: 0; background: var(--green); color: var(--cream);
  font-family: var(--sans); font-size: 12px; font-weight: 400; letter-spacing: .24em; text-transform: uppercase; line-height: 1;
  transition: background .4s var(--ease), color .4s var(--ease), border-color .4s var(--ease);
}
.woocommerce .button:hover, .woocommerce button.button:hover, .woocommerce a.button:hover { background: var(--green-deep); color: var(--gold-light); border-color: var(--green-deep); }
.woocommerce .button.alt, .woocommerce button.button.alt, .woocommerce a.button.alt,
.woocommerce .single_add_to_cart_button, .woocommerce #place_order, .woocommerce a.checkout-button {
  background: var(--gold-gradient); color: var(--green); border-color: transparent; min-height: 58px;
}
.woocommerce .button.alt:hover, .woocommerce button.button.alt:hover, .woocommerce a.button.alt:hover,
.woocommerce .single_add_to_cart_button:hover, .woocommerce #place_order:hover, .woocommerce a.checkout-button:hover { background: var(--green); color: var(--gold-light); }
.woocommerce .button:disabled, .woocommerce .button.disabled, .woocommerce button.button:disabled[disabled],
.woocommerce .button:disabled:hover, .woocommerce button.button:disabled[disabled]:hover { opacity: 1; padding: 0 32px; background: transparent; color: var(--gray); border-color: var(--line); cursor: default; }

.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-notice {
  list-style: none; margin: 0 0 40px; padding: 20px 26px 20px 56px; position: relative;
  border: 0; border-left: 2px solid var(--gold-dark); background: var(--cream-2); color: var(--ink); font-size: 15px;
}
.woocommerce-message::before, .woocommerce-info::before { color: var(--gold-dark); top: 20px; left: 22px; }
.woocommerce-error { border-left-color: #a3392b; }
.woocommerce-error::before { color: #a3392b; top: 20px; left: 22px; }
.woocommerce-message .button, .woocommerce-info .button { float: right; min-height: 0; padding: 10px 18px; margin-left: 20px; }

.woocommerce form .form-row { margin: 0 0 22px; padding: 0; }
.woocommerce form .form-row label { display: block; margin-bottom: 6px; font-size: 11px; letter-spacing: .22em; text-transform: uppercase; color: var(--green); line-height: 1.6; }
.woocommerce form .form-row .required { color: var(--gold-dark); text-decoration: none; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select,
.woocommerce-cart table.cart td.actions .coupon .input-text {
  width: 100%; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; background: transparent;
  padding: 12px 0; font: inherit; font-size: 16px; color: var(--ink); box-shadow: none;
}
.woocommerce form .form-row input.input-text:focus, .woocommerce form .form-row textarea:focus { outline: none; border-bottom-color: var(--gold-dark); }
.woocommerce form .form-row.woocommerce-invalid input.input-text { border-bottom-color: #a3392b; }
.select2-container--default .select2-selection--single { height: 48px; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; background: transparent; }
.select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 48px; padding-left: 0; color: var(--ink); }
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 46px; }
.select2-dropdown { border-color: var(--line); border-radius: 0; }
.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted[data-selected] { background: var(--green); }

/* ---------- Cart ---------- */
.woocommerce-cart .page-content { max-width: none; }
.woocommerce table.shop_table { border: 0; border-radius: 0; border-collapse: collapse; margin: 0 0 40px; }
.woocommerce table.shop_table th { padding: 0 12px 16px; border: 0; border-bottom: 1px solid var(--line); font-size: 11px; font-weight: 400; letter-spacing: .24em; text-transform: uppercase; color: var(--gray); }
.woocommerce table.shop_table td { padding: 22px 12px; border: 0; border-bottom: 1px solid var(--line); vertical-align: middle; }
.woocommerce table.cart img { width: 96px; height: 120px; object-fit: cover; background: #1d1f1e; }
.woocommerce table.cart .product-name a { font-family: var(--serif); font-size: 26px; color: var(--green); }
.woocommerce table.cart .product-name a:hover { color: var(--gold-dark); }
.woocommerce table.cart td.product-price, .woocommerce table.cart td.product-subtotal { font-family: var(--serif); font-size: 22px; color: var(--green); }
.woocommerce a.remove { width: 32px; height: 32px; line-height: 30px; border: 1px solid var(--line); border-radius: 50%; color: var(--gray) !important; font-size: 18px; font-weight: 300; }
.woocommerce a.remove:hover { background: var(--green); border-color: var(--green); color: var(--cream) !important; }
.woocommerce table.cart td.actions { padding-top: 28px; border-bottom: 0; }
.woocommerce table.cart td.actions .coupon { display: flex; gap: 14px; align-items: flex-end; }
.woocommerce table.cart td.actions .coupon .input-text { width: 220px; }
.woocommerce .cart-collaterals .cart_totals, .woocommerce-page .cart-collaterals .cart_totals { width: 100%; max-width: 480px; float: right; background: var(--cream-2); padding: 40px; }
.woocommerce .cart_totals h2 { font-size: 34px; font-weight: 300; color: var(--green); margin-bottom: 24px; }
.woocommerce .cart_totals table.shop_table { margin-bottom: 20px; }
.woocommerce .cart_totals table.shop_table th { padding: 16px 0; border-bottom: 1px solid var(--line); width: 40%; }
.woocommerce .cart_totals table.shop_table td { padding: 16px 0; text-align: right; }
.woocommerce .cart_totals .order-total td { font-family: var(--serif); font-size: 28px; color: var(--green); }
.woocommerce .wc-proceed-to-checkout { padding: 10px 0 0; }
.woocommerce .wc-proceed-to-checkout a.checkout-button { width: 100%; font-size: 12px; margin: 0; }
.woocommerce ul#shipping_method li { margin: 0; }
.cart-empty.woocommerce-info { background: none; border: 0; padding: 20px 0; text-align: center; font-family: var(--serif); font-size: clamp(28px, 3vw, 40px); color: var(--green); }
.cart-empty.woocommerce-info::before { display: none; }
.return-to-shop { text-align: center; }

/* ---------- Checkout ---------- */
.woocommerce-checkout .page-content { max-width: none; }
.woocommerce form.checkout { display: grid; grid-template-columns: 1.15fr .85fr; column-gap: clamp(40px, 6vw, 100px); align-items: start; }
.woocommerce form.checkout > .woocommerce-NoticeGroup { grid-column: 1 / -1; }
.woocommerce form.checkout #customer_details { grid-column: 1; grid-row: 1 / span 2; }
.woocommerce form.checkout #order_review_heading { grid-column: 2; grid-row: 1; margin: 0; padding: 40px 40px 0; background: var(--cream-2); font-size: 34px; font-weight: 300; color: var(--green); }
.woocommerce form.checkout #order_review { grid-column: 2; grid-row: 2; padding: 20px 40px 40px; background: var(--cream-2); }
.woocommerce .col2-set .col-1, .woocommerce .col2-set .col-2,
.woocommerce-page .col2-set .col-1, .woocommerce-page .col2-set .col-2 { float: none; width: 100%; }
.woocommerce-checkout h3 { font-size: 30px; font-weight: 300; color: var(--green); margin: 0 0 30px; }
.woocommerce-checkout #ship-to-different-address { font-size: 20px; margin-top: 40px; }
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper { display: grid; grid-template-columns: 1fr 1fr; column-gap: 30px; }
.woocommerce-checkout .form-row-wide, .woocommerce-checkout #billing_address_1_field,
.woocommerce-checkout #billing_address_2_field, .woocommerce-checkout #billing_email_field { grid-column: 1 / -1; }
.woocommerce-checkout .form-row-first, .woocommerce-checkout .form-row-last { float: none !important; width: 100% !important; }
.woocommerce-checkout-review-order-table td, .woocommerce-checkout-review-order-table th { padding: 16px 0 !important; }
.woocommerce-checkout-review-order-table .product-name { font-family: var(--serif); font-size: 20px; color: var(--green); }
.woocommerce-checkout-review-order-table .order-total td { font-family: var(--serif); font-size: 28px; color: var(--green); }
.woocommerce-checkout #payment { background: transparent; border-radius: 0; }
.woocommerce-checkout #payment ul.payment_methods { padding: 0 0 20px; border-bottom: 1px solid var(--line); }
.woocommerce-checkout #payment ul.payment_methods li { list-style: none; padding: 10px 0; }
.woocommerce-checkout #payment ul.payment_methods li label { font-size: 15px; color: var(--green); }
.woocommerce-checkout #payment div.payment_box { background: var(--cream); color: var(--gray); font-size: 14px; border-radius: 0; margin: 12px 0 0; }
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: var(--cream); }
.woocommerce-checkout #payment div.form-row { padding: 24px 0 0; }
.woocommerce-checkout #payment #place_order { width: 100%; float: none; }
.woocommerce-terms-and-conditions-wrapper, .woocommerce-privacy-policy-text { font-size: 13px; color: var(--gray); }

/* ---------- Order received ---------- */
.woocommerce-order .woocommerce-thankyou-order-received { font-family: var(--serif); font-size: clamp(26px, 3vw, 38px); color: var(--green); margin-bottom: 40px; padding: 0; background: none; border: 0; }
.woocommerce-order .woocommerce-thankyou-order-received::before { display: none; }
.woocommerce ul.order_details { display: flex; flex-wrap: wrap; margin: 0 0 50px; padding: 0; border: 1px solid var(--line); }
.woocommerce ul.order_details::before, .woocommerce ul.order_details::after { display: none; }
.woocommerce ul.order_details li { flex: 1 1 180px; margin: 0; padding: 22px 24px; border: 0; border-right: 1px solid var(--line); font-size: 11px; letter-spacing: .22em; text-transform: uppercase; color: var(--gray); }
.woocommerce ul.order_details li strong { display: block; margin-top: 8px; font-family: var(--serif); font-size: 22px; letter-spacing: 0; text-transform: none; color: var(--green); }
.woocommerce .woocommerce-order-details h2, .woocommerce .woocommerce-customer-details h2,
.woocommerce .wc-bacs-bank-details-heading { font-size: 32px; font-weight: 300; color: var(--green); margin: 40px 0 20px; }

/* ---------- My account ---------- */
.woocommerce-account .page-content { max-width: none; }
.woocommerce-account.logged-in .page-content > .woocommerce { display: grid; grid-template-columns: 260px 1fr; gap: 60px; }
.woocommerce-account .woocommerce > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.woocommerce-MyAccount-navigation li a { display: block; padding: 14px 0; border-bottom: 1px solid var(--line); font-size: 12px; letter-spacing: .22em; text-transform: uppercase; color: var(--green); }
.woocommerce-MyAccount-navigation li.is-active a, .woocommerce-MyAccount-navigation li a:hover { color: var(--gold-dark); }
.woocommerce-account .woocommerce-MyAccount-navigation, .woocommerce-account .woocommerce-MyAccount-content { float: none; width: auto; }
.woocommerce form.login, .woocommerce form.register { border: 0; border-radius: 0; padding: 40px; margin: 0; background: var(--cream-2); max-width: 520px; }
.woocommerce-account .u-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 50px; }
.woocommerce-account .u-columns .u-column1, .woocommerce-account .u-columns .u-column2 { float: none; width: auto; }
.woocommerce-account h2 { font-size: 34px; font-weight: 300; color: var(--green); margin-bottom: 24px; }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
  .shop-grid { grid-template-columns: repeat(2, 1fr); }
  .woocommerce form.checkout { grid-template-columns: 1fr; }
  .woocommerce form.checkout #customer_details, .woocommerce form.checkout #order_review_heading,
  .woocommerce form.checkout #order_review { grid-column: 1; grid-row: auto; }
  .woocommerce form.checkout #order_review_heading { margin-top: 50px; }
}
@media (max-width: 900px) {
  .page-hero { min-height: 0; padding: 150px 0 70px; }
  .page-hero-emblem { width: 130vw; right: -55vw; }
  .shop-grid { grid-template-columns: 1fr; max-width: 460px; margin: 0 auto; gap: 64px; }
  .pdp { padding-top: 120px; }
  .pdp-grid, .pdp-story-grid { grid-template-columns: 1fr; }
  .pdp-media-col { position: static; }
  .pdp-media { max-width: 520px; }
  .pdp-story-emblem { left: 50%; }
  .woocommerce .cart-collaterals .cart_totals { float: none; max-width: none; padding: 30px 24px; }
  .woocommerce table.cart td.actions .coupon { flex-direction: column; align-items: stretch; }
  .woocommerce table.cart td.actions .coupon .input-text { width: 100%; }
  .woocommerce-account.logged-in .page-content > .woocommerce, .woocommerce-account .u-columns { grid-template-columns: 1fr; gap: 36px; }
  .woocommerce form.checkout #order_review_heading { padding: 30px 24px 0; }
  .woocommerce form.checkout #order_review { padding: 16px 24px 30px; }
}
@media (max-width: 560px) {
  .woocommerce-checkout .woocommerce-billing-fields__field-wrapper { grid-template-columns: 1fr; }
  .pdp-specs > div { grid-template-columns: 1fr; gap: 4px; }
  .pdp-buy form.cart .button { flex: 1; }
  .woocommerce form.login, .woocommerce form.register { padding: 28px 20px; }
}

/* Balanced line breaks for product names (avoids "500 / ml" orphans) */
.pdp-title, .product h3, .page-hero-title { text-wrap: balance; }

/* Product page notices (e.g. "añadido a tu carrito") sit inside the page, under the fixed header */
.pdp-notices:empty { display: none; }
.pdp-notices .woocommerce-message, .pdp-notices .woocommerce-error, .pdp-notices .woocommerce-info { margin-bottom: 40px; }
.pdp-notices .woocommerce-message .button { min-height: 40px; }

/* Checkout: full-width fields incl. order notes */
.woocommerce form .form-row .woocommerce-input-wrapper { display: block; width: 100%; }
.woocommerce form .form-row textarea { min-height: 130px; padding: 14px; border: 1px solid var(--line); resize: vertical; }
.woocommerce form .form-row textarea:focus { border-color: var(--gold-dark); }

/* WooCommerce focuses notices for screen readers: keep the focus ring, in the brand gold */
.woocommerce-message:focus, .woocommerce-error:focus, .woocommerce-info:focus { outline: 1px solid var(--gold-dark); outline-offset: 2px; }
