/*
Theme Name:  Gilded Age Assets
Theme URI:   https://gildedageassets.com
Description: Child theme for Gilded Age Assets — Precious Metals & Collectibles Webinars. Requires the DPA Theme parent.
Version:     1.2.0
Author:      DPA
Author URI:  https://dpa.com
Template:    dpa-theme
License:     Proprietary
Text Domain: gildedage-assets
Tags:        child-theme, woocommerce
*/

/*
 * Child-theme CSS goes here. Most brand styling is handled by CSS custom
 * properties injected from brand-config.php at runtime. Add only site-specific
 * overrides below.
 */

/* ═══════════════════════════════════════════════════════════════════════════
   SHOP PAGE
   Styles for woocommerce/archive-product.php and woocommerce/content-product.php
   which live only in this child theme.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Shop Hero ───────────────────────────────────────────────────────────── */
.dpa-shop-hero { background: var(--dpa-bg); border-bottom: 1px solid var(--dpa-border); padding: 72px 0 56px; }
.dpa-shop-hero__title { font-family: var(--dpa-font-display); font-size: clamp(3rem,5vw,4.5rem); color: var(--dpa-text); font-weight: 600; margin: 0 0 16px; line-height: 1.1; }
.dpa-shop-hero__lead { font-family: var(--dpa-font-body); font-size: 1rem; color: var(--dpa-text-mid); max-width: 520px; margin: 0; line-height: 1.65; }

/* ── Shop Category Tabs ───────────────────────────────────────────────────── */
.dpa-shop-tabs { background: var(--dpa-bg-mid); border-bottom: 1px solid var(--dpa-border); }
.dpa-shop-tabs__nav { display: flex; gap: 0; overflow-x: auto; scrollbar-width: none; -ms-overflow-style: none; }
.dpa-shop-tabs__nav::-webkit-scrollbar { display: none; }
.dpa-shop-tabs__tab { display: inline-block; padding: 16px 0; margin-right: 32px; border: none; border-bottom: 2px solid transparent; background: none; font-family: var(--dpa-font-body); font-size: 0.8125rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.1em; color: var(--dpa-text-muted); cursor: pointer; white-space: nowrap; text-decoration: none; transition: color 0.2s, border-color 0.2s; }
.dpa-shop-tabs__tab:hover { color: var(--dpa-text); }
.dpa-shop-tabs__tab--active { border-bottom-color: var(--dpa-gold); color: var(--dpa-text); }

/* ── Shop Product Grid Loop Wrapper ──────────────────────────────────────── */
.dpa-shop-loop-wrap { background: var(--dpa-bg); padding: 64px 0; min-height: 60vh; }

/* ── Product grid — custom <div> wrapper to bypass WC + UA cascade ────────────
   Using div.dpa-products-grid instead of ul.products eliminates:
   • Browser UA stylesheet padding-inline-start:40px on <ul>
   • All WooCommerce ul.products / li.product CSS rules
   No !important needed because nothing else targets this class.
   ─────────────────────────────────────────────────────────────────────────── */
.dpa-products-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: stretch;
  gap: 20px;
  width: 100%;
  margin: 0;
  padding: 0;
}
.dpa-products-grid .product {
  flex: 0 0 calc(25% - 15px); /* 4 cols: (100% - 3×20px) / 4 */
  max-width: calc(25% - 15px);
  box-sizing: border-box;
  margin: 0;
}
@media (max-width: 1100px) {
  .dpa-products-grid .product {
    flex: 0 0 calc(33.333% - 14px); /* 3 cols */
    max-width: calc(33.333% - 14px);
  }
}
@media (max-width: 768px) {
  .dpa-products-grid .product {
    flex: 0 0 calc(50% - 10px); /* 2 cols */
    max-width: calc(50% - 10px);
  }
}
@media (max-width: 480px) {
  .dpa-products-grid .product {
    flex: 0 0 100%; /* 1 col */
    max-width: 100%;
  }
}

/* ── Shop Product Card ───────────────────────────────────────────────────── */
.dpa-shop-card {
  background: var(--dpa-parchment);
  border-radius: 12px;
  border: 1px solid var(--dpa-parchment-border);
  box-shadow: 0 2px 12px rgba(0,0,0,0.3);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: box-shadow 0.25s, transform 0.25s;
}
.dpa-shop-card:hover { box-shadow: 0 8px 32px rgba(212,175,55,0.2); transform: translateY(-4px); }

.dpa-shop-card__img-wrap { position: relative; height: 180px; overflow: hidden; background: var(--dpa-parchment-border); display: block; text-decoration: none; flex-shrink: 0; }
.dpa-shop-card__img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s; display: block; }
.dpa-shop-card__img-wrap:hover .dpa-shop-card__img { transform: scale(1.05); }
.dpa-shop-card__img-placeholder { width: 100%; height: 100%; background: var(--dpa-parchment-border); }

.dpa-shop-card__badge {
  position: absolute; top: 12px; left: 12px;
  background: var(--dpa-gold); color: var(--dpa-ink);
  font-family: var(--dpa-font-body); font-size: 0.6rem; font-weight: 800;
  text-transform: uppercase; letter-spacing: 0.15em;
  padding: 3px 10px; border-radius: 2px;
}
.dpa-shop-card__cat-chip {
  position: absolute; bottom: 12px; right: 12px;
  background: rgba(245,237,216,0.92); border-radius: 4px;
  padding: 2px 8px; font-family: var(--dpa-font-body);
  font-size: 0.65rem; font-weight: 600; color: var(--dpa-ink);
}

.dpa-shop-card__body { padding: 16px; display: flex; flex-direction: column; flex: 1; }
.dpa-shop-card__name { font-family: var(--dpa-font-display); font-size: 1.125rem; font-weight: 600; color: var(--dpa-ink); margin: 0 0 4px; line-height: 1.25; }
.dpa-shop-card__name a { color: inherit; text-decoration: none; }
.dpa-shop-card__name a:hover { color: var(--dpa-gold-dark); }
.dpa-shop-card__sub { font-family: var(--dpa-font-body); font-size: 0.75rem; color: var(--dpa-bg-footer); margin: 0 0 14px; line-height: 1.4; opacity: 0.8; }

.dpa-shop-card__price-row { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; margin-top: auto; }
.dpa-shop-card__price { font-family: var(--dpa-font-display); font-size: 1.375rem; font-weight: 600; color: var(--dpa-gold-dark); }
.dpa-shop-card__price ins { text-decoration: none; } /* WC sale price */
.dpa-shop-card__stock { font-family: var(--dpa-font-body); font-size: 0.7rem; color: var(--dpa-bg-footer); text-transform: uppercase; letter-spacing: 0.08em; opacity: 0.65; }
.dpa-shop-card__stock--out { color: #c0392b; opacity: 1; }

/* Add to Cart button — icon + text inline, matches prototype gold button */
.dpa-shop-card .button,
.dpa-shop-card .dpa-shop-card__btn {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  width: 100% !important;
  padding: 10px !important;
  border-radius: 6px !important;
  border: 2px solid var(--dpa-gold) !important;
  background: var(--dpa-gold) !important;
  color: var(--dpa-ink) !important;
  font-family: var(--dpa-font-body) !important;
  font-size: 0.75rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  text-decoration: none !important;
  cursor: pointer !important;
  transition: background 0.2s, color 0.2s, border-color 0.2s;
  box-sizing: border-box !important;
}
.dpa-shop-card .button:hover,
.dpa-shop-card .dpa-shop-card__btn:hover {
  background: var(--dpa-ink) !important;
  color: var(--dpa-gold) !important;
  border-color: var(--dpa-ink) !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   MY ACCOUNT — LOGIN / REGISTER PAGE
   Styles for woocommerce/myaccount/form-login.php (child theme override)
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── My Account page: suppress page.php chrome so our template is full-bleed ─
   Hide the banner title and strip the .dpa-section / .dpa-prose wrapper
   padding — our .dpa-login-wrap provides its own 72px padding (matching the
   prototype's section padding:72px 32px).                                    */
.woocommerce-account .dpa-page-header { display: none; }
.woocommerce-account .dpa-section { padding: 0; }
/* Restore the container's 1200px cap (dpa-prose overrides it to 780px). */
.woocommerce-account .dpa-prose  { max-width: 1200px; }
/* Remove the container's inner 32px horizontal padding for the authenticated
   dashboard so the content aligns flush with the outer bounds of the nav bar. */
.logged-in.woocommerce-account .dpa-container.dpa-prose {
  padding-left: 0;
  padding-right: 0;
}

/* ── Outer section ───────────────────────────────────────────────────────── */
.dpa-login-wrap {
  background: var(--dpa-bg);
  min-height: 80vh;
  padding: 72px 32px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.dpa-login-inner {
  width: 100%;
  max-width: 480px;
}

/* ── Header ──────────────────────────────────────────────────────────────── */
.dpa-login-header { text-align: center; margin-bottom: 40px; }
.dpa-login-avatar {
  width: 64px; height: 64px;
  border-radius: 50%;
  background: #231609;
  border: 2px solid var(--dpa-gold);
  display: flex; align-items: center; justify-content: center;
  margin: 0 auto 20px;
}
.dpa-login-avatar i { font-size: 1.5rem; color: var(--dpa-gold); }
.dpa-login-title {
  font-family: var(--dpa-font-display);
  font-size: 2.5rem; font-weight: 600;
  color: var(--dpa-text);
  margin: 0 0 8px; line-height: 1.2;
}
.dpa-login-sub {
  font-family: var(--dpa-font-body);
  font-size: 0.9rem; color: var(--dpa-text-muted);
  margin: 0;
}

/* ── Tab Toggle ──────────────────────────────────────────────────────────── */
.dpa-login-tabs {
  display: flex;
  border-bottom: 1px solid #3D2A14;
  margin-bottom: 32px;
}
.dpa-login-tab {
  flex: 1;
  padding: 14px 0;
  border: none; border-bottom: 2px solid transparent;
  background: none;
  font-family: var(--dpa-font-body); font-size: 0.8125rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.1em;
  color: var(--dpa-text-muted);
  cursor: pointer;
  transition: color 0.2s, border-color 0.2s;
}
.dpa-login-tab--active,
.dpa-login-tab:focus-visible {
  color: var(--dpa-gold);
  border-bottom-color: var(--dpa-gold);
  outline: none;
}

/* ── Strip WooCommerce's built-in form.login / form.register box ─────────────
   WC applies: border:1px solid #cfc8d8; padding:20px; margin:2em 0; border-radius:5px
   to .woocommerce form.login and form.register. Our .dpa-login-panel is the
   card — the form itself must be invisible.                                   */
.dpa-login-panel form.login,
.dpa-login-panel form.register {
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
  border-radius: 0 !important;
  background: none !important;
  box-shadow: none !important;
}

/* ── Form Panel (parchment card) ─────────────────────────────────────────── */
.dpa-login-panel {
  background: var(--dpa-parchment);
  border-radius: 16px;
  border: 1px solid var(--dpa-parchment-border);
  padding: 36px;
  box-shadow: 0 4px 24px rgba(0,0,0,0.35);
}

/* ── Field groups ────────────────────────────────────────────────────────── */
.dpa-field-group { margin-bottom: 20px; }
.dpa-field-row-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-bottom: 20px;
}
@media (max-width: 480px) { .dpa-field-row-2 { grid-template-columns: 1fr; } }
.dpa-field-label {
  display: block;
  font-size: 0.6875rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.1em;
  color: #8A7A6A;
  margin-bottom: 8px;
  font-family: var(--dpa-font-body);
}
.dpa-field,
.dpa-login-panel input.input-text {
  width: 100%;
  padding: 0 16px;
  min-height: 50px;
  line-height: 1.5;
  border: 1.5px solid var(--dpa-parchment-border) !important;
  border-radius: 8px !important;
  font-family: var(--dpa-font-body) !important;
  font-size: 0.9375rem !important;
  color: var(--dpa-ink) !important;
  background: var(--dpa-parchment) !important;
  box-sizing: border-box;
  outline: none;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.dpa-field:focus,
.dpa-login-panel input.input-text:focus {
  border-color: var(--dpa-gold) !important;
  box-shadow: 0 0 0 3px rgba(212,175,55,0.12) !important;
}

/* ── Phone field with icon ───────────────────────────────────────────────── */
.dpa-phone-input-wrap { position: relative; }
.dpa-phone-input-wrap i {
  position: absolute; left: 14px; top: 50%; transform: translateY(-50%);
  color: var(--dpa-gold-dark); font-size: 0.9rem; pointer-events: none;
}
.dpa-field--phone { padding-left: 40px !important; }
.dpa-phone-hint {
  font-family: var(--dpa-font-body); font-size: 0.72rem;
  color: #8A7A6A; margin: 6px 0 0;
}

/* ── SMS opt-in box ──────────────────────────────────────────────────────── */
.dpa-sms-optin-box {
  margin-bottom: 16px;
  padding: 14px 16px;
  border-radius: 8px;
  background: #FEF9D0;
  border: 1px solid #E8CF7A;
}
.dpa-sms-optin-label {
  display: flex; align-items: flex-start; gap: 12px;
  cursor: pointer; margin: 0;
}
.dpa-sms-optin-check {
  margin-top: 3px; width: 18px; height: 18px;
  accent-color: var(--dpa-gold);
  cursor: pointer; flex-shrink: 0;
}
.dpa-sms-optin-label span {
  font-family: var(--dpa-font-body); font-size: 0.8125rem;
  color: #5C4E3E; line-height: 1.55;
}
.dpa-sms-optin-label strong { color: var(--dpa-ink); }

/* ── Forgot password / note ──────────────────────────────────────────────── */
.dpa-login-forgot { text-align: right; margin-bottom: 28px; }
.dpa-login-forgot a {
  font-family: var(--dpa-font-body); font-size: 0.8rem;
  color: #8A7A6A; text-decoration: none; transition: color 0.2s;
}
.dpa-login-forgot a:hover { color: var(--dpa-gold); }
.dpa-login-note {
  font-family: var(--dpa-font-body); font-size: 0.85rem;
  color: #8A7A6A; margin-bottom: 20px; line-height: 1.5;
}

/* ── Submit button ───────────────────────────────────────────────────────── */
.dpa-login-btn {
  width: 100%;
  display: flex; align-items: center; justify-content: center; gap: 10px;
  padding: 14px 28px;
  border-radius: 6px;
  border: 2px solid var(--dpa-gold);
  background: var(--dpa-gold);
  color: var(--dpa-ink);
  font-family: var(--dpa-font-body); font-size: 0.875rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.1em;
  cursor: pointer;
  transition: background 0.2s, color 0.2s, border-color 0.2s;
}
.dpa-login-btn:hover {
  background: var(--dpa-ink);
  color: var(--dpa-gold);
  border-color: var(--dpa-ink);
}

/* ═══════════════════════════════════════════════════════════════════════════
   MY ACCOUNT DASHBOARD (logged-in)
   Targets .logged-in.woocommerce-account so it doesn't touch the login form.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Page padding (replaces the stripped .dpa-section padding) ───────────── */
.logged-in.woocommerce-account .woocommerce {
  display: flex;
  align-items: flex-start;
  gap: 32px;
  padding: 64px 0;
  min-height: 60vh;
  float: none; /* override WC's clearfix float model */
}

/* ── Sidebar navigation ──────────────────────────────────────────────────── */
.logged-in.woocommerce-account .woocommerce-MyAccount-navigation {
  float: none;
  flex: 0 0 220px;
  width: 220px;
  background: var(--dpa-bg-mid);
  border: 1px solid var(--dpa-border);
  border-radius: 12px;
  overflow: hidden;
}
.logged-in.woocommerce-account .woocommerce-MyAccount-navigation ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.logged-in.woocommerce-account .woocommerce-MyAccount-navigation ul li {
  border-bottom: 1px solid var(--dpa-border);
  border-left: 3px solid transparent;
  transition: border-color 0.2s;
}
.logged-in.woocommerce-account .woocommerce-MyAccount-navigation ul li:last-child {
  border-bottom: none;
}
.logged-in.woocommerce-account .woocommerce-MyAccount-navigation ul li a {
  display: block;
  padding: 13px 18px;
  font-family: var(--dpa-font-body);
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--dpa-text-muted);
  text-decoration: none;
  transition: color 0.2s, background 0.2s;
}
.logged-in.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover {
  color: var(--dpa-text);
  background: rgba(255,255,255,0.03);
}
.logged-in.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active {
  border-left-color: var(--dpa-gold);
  background: rgba(255,255,255,0.03);
}
.logged-in.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a {
  color: var(--dpa-gold);
  font-weight: 600;
}

/* ── Content panel ───────────────────────────────────────────────────────── */
.logged-in.woocommerce-account .woocommerce-MyAccount-content {
  float: none;
  flex: 1;
  min-width: 0;
  color: var(--dpa-text-mid);
  font-family: var(--dpa-font-body);
}
.logged-in.woocommerce-account .woocommerce-MyAccount-content p {
  font-size: 0.9375rem;
  line-height: 1.75;
  margin-bottom: 1em;
  color: var(--dpa-text-mid);
}
.logged-in.woocommerce-account .woocommerce-MyAccount-content p a,
.logged-in.woocommerce-account .woocommerce-MyAccount-content a {
  color: var(--dpa-gold);
  text-decoration: none;
  transition: color 0.2s;
}
.logged-in.woocommerce-account .woocommerce-MyAccount-content a:hover { color: var(--dpa-gold-dark); }
.logged-in.woocommerce-account .woocommerce-MyAccount-content h2 {
  font-family: var(--dpa-font-display);
  font-size: 1.75rem;
  font-weight: 600;
  color: var(--dpa-text);
  margin: 0 0 24px;
}
.logged-in.woocommerce-account .woocommerce-MyAccount-content h3 {
  font-family: var(--dpa-font-display);
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--dpa-text);
  margin: 0 0 16px;
}

/* ── Orders / data tables ────────────────────────────────────────────────── */
.logged-in.woocommerce-account table.shop_table {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--dpa-font-body);
  font-size: 0.875rem;
  border: 1px solid var(--dpa-border);
  border-radius: 10px;
  overflow: hidden;
}
.logged-in.woocommerce-account table.shop_table th {
  background: var(--dpa-bg-mid);
  color: var(--dpa-text-muted);
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  padding: 12px 16px;
  border-bottom: 1px solid var(--dpa-border);
  text-align: left;
}
.logged-in.woocommerce-account table.shop_table td {
  padding: 14px 16px;
  border-bottom: 1px solid var(--dpa-border);
  color: var(--dpa-text-mid);
  vertical-align: middle;
}
.logged-in.woocommerce-account table.shop_table tr:last-child td { border-bottom: none; }
.logged-in.woocommerce-account table.shop_table tfoot th,
.logged-in.woocommerce-account table.shop_table tfoot td {
  padding: 12px 16px;
  border-top: 1px solid var(--dpa-border);
  color: var(--dpa-text-mid);
}

/* ── Order status badges ─────────────────────────────────────────────────── */
.logged-in.woocommerce-account .order-status {
  display: inline-block;
  padding: 3px 10px;
  border-radius: 20px;
  font-family: var(--dpa-font-body);
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.logged-in.woocommerce-account .order-status.status-completed  { background: rgba(26,122,60,0.15);  color: #4caf76; }
.logged-in.woocommerce-account .order-status.status-processing { background: rgba(212,175,55,0.15); color: var(--dpa-gold); }
.logged-in.woocommerce-account .order-status.status-pending    { background: rgba(154,136,120,0.12);color: var(--dpa-text-muted); }
.logged-in.woocommerce-account .order-status.status-on-hold    { background: rgba(30,135,190,0.15); color: #4da6cc; }
.logged-in.woocommerce-account .order-status.status-cancelled,
.logged-in.woocommerce-account .order-status.status-failed     { background: rgba(176,0,0,0.12);    color: #e05555; }
.logged-in.woocommerce-account .order-status.status-refunded   { background: rgba(154,136,120,0.12);color: var(--dpa-text-muted); }

/* ── Table action buttons (View Order, etc.) ─────────────────────────────── */
.logged-in.woocommerce-account table.shop_table .button,
.logged-in.woocommerce-account .woocommerce-button.button {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  border-radius: 4px;
  border: 1.5px solid var(--dpa-gold);
  background: transparent;
  color: var(--dpa-gold) !important;
  font-family: var(--dpa-font-body);
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  text-decoration: none;
  cursor: pointer;
  transition: background 0.2s, color 0.2s;
}
.logged-in.woocommerce-account table.shop_table .button:hover,
.logged-in.woocommerce-account .woocommerce-button.button:hover {
  background: var(--dpa-gold);
  color: var(--dpa-ink) !important;
}

/* ── Form labels & inputs (edit account, addresses) ─────────────────────── */
.logged-in.woocommerce-account .form-row label {
  display: block;
  font-family: var(--dpa-font-body);
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--dpa-text-muted);
  margin-bottom: 6px;
}
.logged-in.woocommerce-account .form-row input.input-text,
.logged-in.woocommerce-account .form-row select,
.logged-in.woocommerce-account .form-row textarea {
  width: 100%;
  padding: 0 16px;
  min-height: 48px;
  font-family: var(--dpa-font-body) !important;
  font-size: 0.9375rem !important;
  color: var(--dpa-text) !important;
  background: var(--dpa-bg-mid) !important;
  border: 1.5px solid var(--dpa-border) !important;
  border-radius: 8px !important;
  box-sizing: border-box;
  outline: none;
  transition: border-color 0.2s, box-shadow 0.2s;
  line-height: 1.5;
}
.logged-in.woocommerce-account .form-row input.input-text:focus,
.logged-in.woocommerce-account .form-row select:focus {
  border-color: var(--dpa-gold) !important;
  box-shadow: 0 0 0 3px rgba(212,175,55,0.12) !important;
}

/* ── Select2 (WooCommerce state/country dropdowns) ───────────────────────── */
/* Outer container replaces the native <select> */
.logged-in.woocommerce-account .select2-container--default .select2-selection--single {
  background: var(--dpa-bg-mid) !important;
  border: 1.5px solid var(--dpa-border) !important;
  border-radius: 8px !important;
  height: 48px !important;
  display: flex;
  align-items: center;
}
/* The rendered value / placeholder text */
.logged-in.woocommerce-account .select2-container--default .select2-selection--single .select2-selection__rendered {
  color: var(--dpa-text) !important;
  font-family: var(--dpa-font-body) !important;
  font-size: 0.9375rem !important;
  line-height: 48px !important;
  padding: 0 40px 0 16px !important;
}
/* Placeholder muted */
.logged-in.woocommerce-account .select2-container--default .select2-selection--single .select2-selection__placeholder {
  color: var(--dpa-text-muted) !important;
}
/* Chevron arrow container — must be transparent so it doesn't bleed over the input */
.logged-in.woocommerce-account .select2-container--default .select2-selection--single .select2-selection__arrow {
  height: 46px !important;
  right: 12px !important;
  background: transparent !important;
  border: none !important;
}
/* The actual triangle — hide default border trick; use a text character instead */
.logged-in.woocommerce-account .select2-container--default .select2-selection--single .select2-selection__arrow b {
  border: none !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%, -50%);
  position: absolute;
}
.logged-in.woocommerce-account .select2-container--default .select2-selection--single .select2-selection__arrow b::after {
  content: "›";
  display: block;
  color: var(--dpa-text-muted);
  font-size: 1rem;
  line-height: 1;
  transform: rotate(90deg);
  font-style: normal;
}
/* Open state — gold ring */
.logged-in.woocommerce-account .select2-container--default.select2-container--open .select2-selection--single {
  border-color: var(--dpa-gold) !important;
  box-shadow: 0 0 0 3px rgba(212,175,55,0.12) !important;
}
/* Arrow flips when open */
.logged-in.woocommerce-account .select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b::after {
  transform: rotate(-90deg);
}
/* Dropdown panel */
.logged-in.woocommerce-account .select2-dropdown {
  background: var(--dpa-bg-mid) !important;
  border: 1.5px solid var(--dpa-gold) !important;
  border-radius: 8px !important;
  box-shadow: 0 8px 24px rgba(0,0,0,0.5) !important;
}
/* Search box inside dropdown */
.logged-in.woocommerce-account .select2-search--dropdown .select2-search__field {
  background: var(--dpa-bg) !important;
  border: 1.5px solid var(--dpa-border) !important;
  border-radius: 6px !important;
  color: var(--dpa-text) !important;
  font-family: var(--dpa-font-body) !important;
  padding: 6px 10px !important;
}
/* Option items */
.logged-in.woocommerce-account .select2-results__option {
  color: var(--dpa-text-mid) !important;
  font-family: var(--dpa-font-body) !important;
  font-size: 0.9375rem !important;
  padding: 9px 16px !important;
}
.logged-in.woocommerce-account .select2-results__option--highlighted,
.logged-in.woocommerce-account .select2-results__option[aria-selected="true"] {
  background: var(--dpa-gold) !important;
  color: var(--dpa-ink) !important;
}
.logged-in.woocommerce-account .form-row textarea {
  min-height: 100px;
  padding: 12px 16px;
  line-height: 1.6;
}
.logged-in.woocommerce-account fieldset {
  border: 1px solid var(--dpa-border);
  border-radius: 10px;
  padding: 24px;
  margin: 0 0 28px;
}
.logged-in.woocommerce-account fieldset legend {
  font-family: var(--dpa-font-display);
  font-size: 1rem;
  font-weight: 600;
  color: var(--dpa-text-muted);
  padding: 0 8px;
}

/* ── Form submit buttons ─────────────────────────────────────────────────── */
.logged-in.woocommerce-account .woocommerce-Button,
.logged-in.woocommerce-account .button[type="submit"],
.logged-in.woocommerce-account input[type="submit"] {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 28px;
  border-radius: 6px;
  border: 2px solid var(--dpa-gold) !important;
  background: var(--dpa-gold) !important;
  color: var(--dpa-ink) !important;
  font-family: var(--dpa-font-body);
  font-size: 0.875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  cursor: pointer;
  text-decoration: none;
  transition: background 0.2s, color 0.2s, border-color 0.2s;
}
.logged-in.woocommerce-account .woocommerce-Button:hover,
.logged-in.woocommerce-account .button[type="submit"]:hover,
.logged-in.woocommerce-account input[type="submit"]:hover {
  background: var(--dpa-ink) !important;
  color: var(--dpa-gold) !important;
  border-color: var(--dpa-ink) !important;
}

/* ── Notices (account page — delegated to global rule below) ──────────────── */
/* Kept as placeholder; global .woocommerce-notices-wrapper styles now apply. */

/* ── Addresses page ──────────────────────────────────────────────────────── */
/* Override WC's float-based col2-set grid with flexbox */
.logged-in.woocommerce-account .woocommerce-Addresses {
  display: flex;
  gap: 24px;
  align-items: stretch;
  margin-top: 24px;
}
/* Each address card */
.logged-in.woocommerce-account .woocommerce-Address {
  flex: 1;
  background: var(--dpa-bg-mid);
  border: 1px solid var(--dpa-border);
  border-radius: 12px;
  padding: 28px 32px;
  float: none; /* override WC float */
  width: auto; /* override WC width: 48% */
}
/* Card header row: title left, edit link right */
.logged-in.woocommerce-account .woocommerce-Address-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--dpa-border);
}
.logged-in.woocommerce-account .woocommerce-Address-title::after,
.logged-in.woocommerce-account .woocommerce-Address-title::before { display: none; } /* remove WC clearfix */
.logged-in.woocommerce-account .woocommerce-Address-title h2 {
  font-family: var(--dpa-font-display);
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--dpa-text);
  margin: 0;
}
/* Add / Edit link styled as a small gold outline button */
.logged-in.woocommerce-account .woocommerce-Address-title .edit {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 14px;
  border: 1.5px solid var(--dpa-gold);
  border-radius: 4px;
  background: transparent;
  color: var(--dpa-gold) !important;
  font-family: var(--dpa-font-body);
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  text-decoration: none !important;
  transition: background 0.2s, color 0.2s;
  float: none; /* override WC float */
}
.logged-in.woocommerce-account .woocommerce-Address-title .edit:hover {
  background: var(--dpa-gold);
  color: var(--dpa-ink) !important;
}
/* Address content */
.logged-in.woocommerce-account address {
  font-family: var(--dpa-font-body);
  font-size: 0.9375rem;
  line-height: 1.75;
  color: var(--dpa-text-mid);
  font-style: normal;
}
/* Empty-state italic message */
.logged-in.woocommerce-account .woocommerce-Address address em,
.logged-in.woocommerce-account .woocommerce-Address address {
  font-style: normal;
}

/* ── OtterText SMS banner (My Account dashboard) ─────────────────────────── */
.dpa-sms-banner {
  margin-top: 32px;
  padding: 28px 32px;
  background: var(--dpa-bg-mid);
  border: 1px solid var(--dpa-border);
  border-left: 4px solid var(--dpa-gold);
  border-radius: 10px;
}
.dpa-sms-banner__text strong {
  display: block;
  font-family: var(--dpa-font-display);
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--dpa-text);
  margin-bottom: 8px;
}
.dpa-sms-banner__text p {
  font-family: var(--dpa-font-body);
  font-size: 0.875rem;
  color: var(--dpa-text-muted);
  line-height: 1.65;
  margin: 0 0 20px;
}
.dpa-sms-banner__hint {
  font-family: var(--dpa-font-body);
  font-size: 0.8125rem;
  color: var(--dpa-text-muted);
  margin-bottom: 12px;
}
.dpa-sms-banner__phone-row {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}
.dpa-sms-banner__input {
  flex: 1;
  min-width: 200px;
  max-width: 300px;
  padding: 0 16px;
  min-height: 50px;
  font-family: var(--dpa-font-body) !important;
  font-size: 0.9375rem !important;
  color: var(--dpa-text) !important;
  background: var(--dpa-bg) !important;
  border: 1.5px solid var(--dpa-border) !important;
  border-radius: 8px !important;
  box-sizing: border-box;
  outline: none;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.dpa-sms-banner__input:focus {
  border-color: var(--dpa-gold) !important;
  box-shadow: 0 0 0 3px rgba(212,175,55,0.12) !important;
}
.dpa-sms-banner__input::placeholder { color: var(--dpa-text-muted); opacity: 0.7; }
.dpa-sms-banner__btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 0 24px;
  min-height: 50px;
  border-radius: 6px;
  border: 2px solid var(--dpa-gold);
  background: var(--dpa-gold);
  color: var(--dpa-ink);
  font-family: var(--dpa-font-body);
  font-size: 0.8125rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.2s, color 0.2s, border-color 0.2s;
}
.dpa-sms-banner__btn:hover {
  background: var(--dpa-ink);
  color: var(--dpa-gold);
  border-color: var(--dpa-ink);
}

/* ── Responsive ──────────────────────────────────────────────────────────── */
@media (max-width: 768px) {
  .logged-in.woocommerce-account .woocommerce {
    flex-direction: column;
    padding: 40px 0;
    gap: 24px;
  }
  .logged-in.woocommerce-account .woocommerce-MyAccount-navigation {
    flex: none;
    width: 100%;
  }
}

/* ── Shop Pagination ─────────────────────────────────────────────────────── */
/*
 * Specificity notes:
 * WooCommerce's woocommerce.css uses the full chain
 *   .woocommerce nav.woocommerce-pagination ul li a|span  (0,2,4)
 *   .woocommerce nav.woocommerce-pagination ul li span.current  (0,3,4)
 * We must match or exceed those chains so our theme CSS (loaded later) wins.
 * !important is used only for span.current because that rule's extra .current
 * class gives WC a specificity we cannot practically exceed with selectors alone
 * without introducing maintenance risk.
 */

/* UL layout — match WC's selector chain (0,2,2) to kill its border */
.woocommerce nav.woocommerce-pagination ul {
	border: none;
	background: transparent;
	padding: 0;
	white-space: normal;
	list-style: none;
	margin: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	flex-wrap: wrap;
}
.woocommerce nav.woocommerce-pagination ul li {
	margin: 0;
	padding: 0;
	list-style: none;
	border: none !important;   /* WC sets border-right + border-left on :first-child */
	overflow: visible !important;
}

/* Base style — matches WC's (0,2,4) so our file order wins */
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 14px;
	border-radius: 6px;
	border: 1px solid var(--dpa-border);
	background: var(--dpa-bg-mid);
	color: var(--dpa-text-muted);
	font-family: var(--dpa-font-body);
	font-size: 0.875rem;
	font-weight: 600;
	line-height: 40px;
	text-decoration: none;
	transition: background 0.2s, border-color 0.2s, color 0.2s;
	box-sizing: border-box;
}

/* Hover on links — matches WC's (0,2,4) + pseudo = same chain, loads after */
.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li a:focus {
	background: var(--dpa-gold);
	border-color: var(--dpa-gold);
	color: var(--dpa-ink);
}

/* Current page — WC's span.current rule is (0,3,4); use !important to override */
.woocommerce nav.woocommerce-pagination ul li span.current {
	background: var(--dpa-gold) !important;
	border-color: var(--dpa-gold) !important;
	color: var(--dpa-ink) !important;
	cursor: default;
}

/* Ellipsis dots */
.woocommerce nav.woocommerce-pagination ul li span.dots {
	border-color: transparent;
	background: transparent;
	color: var(--dpa-text-muted);
	min-width: 24px;
	padding: 0;
}

/* Prev / Next arrows */
.woocommerce nav.woocommerce-pagination ul li a.prev,
.woocommerce nav.woocommerce-pagination ul li a.next {
	padding: 0 20px;
	border-color: var(--dpa-gold);
	color: var(--dpa-gold);
}
.woocommerce nav.woocommerce-pagination ul li a.prev:hover,
.woocommerce nav.woocommerce-pagination ul li a.next:hover {
	background: var(--dpa-gold);
	color: var(--dpa-ink);
}

/* Wrapper spacing */
.woocommerce-pagination { padding: 40px 0 8px; }

/* ── Shop Authenticity Guarantee ─────────────────────────────────────────── */
.dpa-shop-auth { background: var(--dpa-bg-footer); padding: 72px 0; }
.dpa-shop-auth__inner { max-width: 900px; margin: 0 auto; padding: 0 32px; display: grid; grid-template-columns: auto 1fr; gap: 40px; align-items: center; }
@media (max-width: 600px) { .dpa-shop-auth__inner { grid-template-columns: 1fr; } }
.dpa-shop-auth__icon { width: 80px; height: 80px; border-radius: 50%; background: var(--dpa-bg-mid); border: 2px solid var(--dpa-gold); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.dpa-shop-auth__icon i { color: var(--dpa-gold); font-size: 1.75rem; }
.dpa-shop-auth__title { font-family: var(--dpa-font-display); font-size: 2rem; color: var(--dpa-parchment); font-weight: 600; margin: 0 0 12px; }
.dpa-shop-auth__body { font-family: var(--dpa-font-body); font-size: 0.9375rem; color: var(--dpa-text-muted); line-height: 1.7; margin: 0; }

/* ═══════════════════════════════════════════════════════════════════════════
   CART PAGE — Layout wrapper reset
   page.php wraps WooCommerce content in dpa-page-header + dpa-section +
   dpa-container + dpa-prose. The cart template owns its own layout, so we
   strip all of those constraints here and let cart-empty.php / cart.php
   control spacing directly.
   ═══════════════════════════════════════════════════════════════════════════ */
.woocommerce-cart .dpa-page-header                          { display: none; }
.woocommerce-cart .dpa-site-content .dpa-section            { padding: 0; }
.woocommerce-cart .dpa-site-content .dpa-container          { max-width: none; padding: 0; }
.woocommerce-cart .dpa-site-content .dpa-prose              { max-width: none; }

/* ── CHECKOUT PAGE — Layout wrapper reset (same logic as cart) ─────────────── */
.woocommerce-checkout .dpa-page-header                      { display: none; }
.woocommerce-checkout .dpa-site-content .dpa-section        { padding: 0; }
.woocommerce-checkout .dpa-site-content .dpa-container      { max-width: none; padding: 0; }
.woocommerce-checkout .dpa-site-content .dpa-prose          { max-width: none; }
/* Notices wrapper needs its own width constraint (container is unbound). */
.woocommerce-checkout .woocommerce-notices-wrapper          { max-width: 1200px; margin: 0 auto; padding: 32px 32px 0; box-sizing: border-box; }

/* ── Checkout inline validation errors (AJAX) ─────────────────────────────── */
/* When the Place Order button is clicked, WooCommerce's checkout.js injects a
   .woocommerce-NoticeGroup-checkout div directly inside <form.woocommerce-checkout>
   — outside the .dpa-checkout-layout wrapper that holds the 1200px max-width.
   Without an explicit constraint here, the error list spans the full form width
   (which is the unbound .dpa-container).
   We constrain + pad it to match the rest of the page content while preserving
   WooCommerce's default white/red styling as the user requested.               */
.woocommerce-checkout .woocommerce-NoticeGroup-checkout {
	max-width: 1200px;
	margin: 0 auto;
	padding: 32px 32px 0;
	box-sizing: border-box;
}

/* ── Breadcrumb strip ─────────────────────────────────────────────────────── */
.dpa-cart-breadcrumb {
	background: var(--dpa-bg-header);
	border-bottom: 1px solid var(--dpa-border);
}
.dpa-cart-breadcrumb__inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 14px 32px;
	display: flex;
	align-items: center;
	gap: 8px;
	font-family: var(--dpa-font-body);
	font-size: 0.8rem;
	color: var(--dpa-text-muted);
}
.dpa-cart-breadcrumb__inner a {
	color: var(--dpa-gold);
	text-decoration: none;
	transition: opacity 0.2s;
}
.dpa-cart-breadcrumb__inner a:hover { opacity: 0.8; }
.dpa-cart-breadcrumb__inner span[aria-hidden] { color: var(--dpa-border); }

/* ── Cart main content wrapper ────────────────────────────────────────────── */
.dpa-cart-main {
	max-width: 1100px;
	margin: 0 auto;
	padding: 56px 32px;
	min-height: 70vh;
}

/* ── "Your Cart" heading ──────────────────────────────────────────────────── */
.dpa-cart-heading {
	font-family: var(--dpa-font-display);
	font-size: clamp(2rem, 4vw, 3rem);
	font-weight: 600;
	color: var(--dpa-text);
	margin: 0 0 40px;
	line-height: 1.1;
}
.dpa-cart-heading span { color: var(--dpa-gold); }

/* ═══════════════════════════════════════════════════════════════════════════
   CART — Empty State
   Matches prototype cart.html empty branch in cart.js
   ═══════════════════════════════════════════════════════════════════════════ */

/* Hide the default WooCommerce notice injected by wc_empty_cart_message */
.woocommerce-cart .woocommerce-info { display: none !important; }

.dpa-cart-empty {
	text-align: center;
	padding: 80px 0;
	display: flex;
	flex-direction: column;
	align-items: center;
}

.dpa-cart-empty__icon {
	font-size: 3rem;
	color: var(--dpa-border);
	margin-bottom: 24px;
	display: block;
}

.dpa-cart-empty__heading {
	font-family: var(--dpa-font-display);
	font-size: 2rem;
	font-weight: 600;
	color: var(--dpa-text-mid);
	margin: 0 0 12px;
}

.dpa-cart-empty__sub {
	font-family: var(--dpa-font-body);
	font-size: 0.9375rem;
	color: var(--dpa-text-muted);
	margin: 0 0 32px;
}

.dpa-cart-empty__actions {
	display: flex;
	gap: 16px;
	justify-content: center;
	flex-wrap: wrap;
}

/* ── Prose element overrides inside cart empty state ─────────────────────
   .dpa-prose h2 { margin: 1.5em 0 0.5em } and .dpa-prose p { margin-bottom:1em }
   both have specificity 0,1,1 (class+element) which beats our 0,1,0 classes.
   Bump to 0,2,0 by chaining two classes.
   ─────────────────────────────────────────────────────────────────────────── */
.dpa-prose .dpa-cart-empty__heading { margin: 0 0 12px; }
.dpa-prose .dpa-cart-empty__sub     { margin: 0 0 32px; }

/* ── Button colour fix inside .dpa-prose ──────────────────────────────────
   .dpa-prose a { color: var(--dpa-gold) } in theme.css has specificity 0,1,1
   which beats .dpa-btn--gold (0,1,0), turning gold text invisible on a gold
   background. Bump specificity by combining the prose ancestor + element type.
   ─────────────────────────────────────────────────────────────────────────── */
.dpa-prose a.dpa-btn--gold,
.dpa-prose a.dpa-btn--gold:visited { color: var(--dpa-ink); }
.dpa-prose a.dpa-btn--gold:hover   { color: var(--dpa-gold); }
.dpa-prose a.dpa-btn--outline,
.dpa-prose a.dpa-btn--outline:visited { color: var(--dpa-gold); }
.dpa-prose a.dpa-btn--outline:hover   { color: var(--dpa-ink); }

/* ═══════════════════════════════════════════════════════════════════════════
   CART — Filled state (items in cart)
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── 2-column layout ─────────────────────────────────────────────────────── */
.dpa-cart-layout {
	display: grid;
	grid-template-columns: 3fr 2fr;
	gap: 40px;
	align-items: start;
}
.dpa-cart-layout__summary {
	position: sticky;
	top: 112px; /* below the fixed nav */
}
@media (max-width: 900px) {
	.dpa-cart-layout { grid-template-columns: 1fr; }
	.dpa-cart-layout__summary { position: static; }
}

/* ── Cart table — unified parchment card ─────────────────────────────────── */
/* One card wraps all rows; borders separate rows internally.                 */
/* border-collapse:collapse keeps column widths aligned between thead/tbody.  */
.woocommerce-cart table.shop_table.cart {
	width: 100%;
	border-collapse: collapse;
	background: var(--dpa-parchment);
	border: 1px solid var(--dpa-parchment-border);
	border-radius: 12px;
	overflow: hidden; /* clips corner radius onto child cells */
	list-style: none;
}

/* Kill any list-style that WC responsive table CSS might add to cells */
.woocommerce-cart table.shop_table.cart td,
.woocommerce-cart table.shop_table.cart th { list-style: none; }

/* ── Header row ──────────────────────────────────────────────────────────── */
.woocommerce-cart table.shop_table.cart thead th {
	font-family: var(--dpa-font-body);
	font-size: 0.75rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--dpa-ink);
	opacity: 0.5;
	padding: 16px 12px;
	border-bottom: 1px solid var(--dpa-parchment-border);
	background: transparent;
}
.woocommerce-cart table.shop_table.cart thead th.product-remove  { width: 40px; }
.woocommerce-cart table.shop_table.cart thead th.product-thumbnail { width: 88px; }
.woocommerce-cart table.shop_table.cart thead th.product-price   { width: 110px; text-align: center; }
.woocommerce-cart table.shop_table.cart thead th.product-quantity { width: 120px; text-align: center; }
.woocommerce-cart table.shop_table.cart thead th.product-subtotal { width: 110px; text-align: right; }

/* ── Item rows ───────────────────────────────────────────────────────────── */
.woocommerce-cart table.shop_table.cart tbody tr.cart_item { background: transparent; }
.woocommerce-cart table.shop_table.cart tbody tr.cart_item + tr.cart_item {
	border-top: 1px solid var(--dpa-parchment-border);
}
.woocommerce-cart table.shop_table.cart tbody tr.cart_item td {
	padding: 20px 12px;
	border: none;
	vertical-align: middle;
	color: var(--dpa-ink);
}
.woocommerce-cart table.shop_table.cart tbody tr.cart_item td:first-child { padding-left: 16px; }
.woocommerce-cart table.shop_table.cart tbody tr.cart_item td:last-child  { padding-right: 16px; }

/* Remove × */
.woocommerce-cart table.shop_table.cart td.product-remove { text-align: center; }
.woocommerce-cart table.shop_table.cart td.product-remove a.remove {
	color: var(--dpa-text-muted) !important;
	font-size: 1.25rem;
	font-weight: 400;
	text-decoration: none;
	line-height: 1;
	transition: color 0.2s;
}
.woocommerce-cart table.shop_table.cart td.product-remove a.remove:hover { color: #dc2626 !important; }

/* Thumbnail */
.woocommerce-cart table.shop_table.cart td.product-thumbnail { width: 88px; }
.woocommerce-cart table.shop_table.cart td.product-thumbnail a,
.woocommerce-cart table.shop_table.cart td.product-thumbnail img { display: block; }
.woocommerce-cart table.shop_table.cart td.product-thumbnail img {
	width: 64px;
	height: 64px;
	object-fit: cover;
	border-radius: 8px;
}

/* Product name */
.woocommerce-cart table.shop_table.cart td.product-name a {
	font-family: var(--dpa-font-display);
	font-size: 1.125rem;
	font-weight: 600;
	color: var(--dpa-ink);
	text-decoration: none;
}
.woocommerce-cart table.shop_table.cart td.product-name a:hover { color: var(--dpa-gold-dark); }
/* Item meta (webinar info, seat numbers, etc.) */
.woocommerce-cart table.shop_table.cart td.product-name .wc-item-meta,
.woocommerce-cart table.shop_table.cart td.product-name dl.variation {
	font-family: var(--dpa-font-body);
	font-size: 0.8125rem;
	color: #8A7A6A;
	margin: 4px 0 0;
}
.woocommerce-cart table.shop_table.cart td.product-name .wc-item-meta dt,
.woocommerce-cart table.shop_table.cart td.product-name dl.variation dt { font-weight: 600; display: inline; margin: 0; }
.woocommerce-cart table.shop_table.cart td.product-name .wc-item-meta dd,
.woocommerce-cart table.shop_table.cart td.product-name dl.variation dd { display: inline; margin: 0 0 0 4px; }

/* Price & subtotal */
.woocommerce-cart table.shop_table.cart td.product-price,
.woocommerce-cart table.shop_table.cart td.product-subtotal {
	font-family: var(--dpa-font-display);
	font-size: 1.125rem;
	font-weight: 600;
	color: var(--dpa-gold-dark);
	text-align: center;
}
.woocommerce-cart table.shop_table.cart td.product-subtotal { text-align: right; }

/* Quantity input */
.woocommerce-cart table.shop_table.cart td.product-quantity { text-align: center; }
.woocommerce-cart table.shop_table.cart td.product-quantity .quantity input {
	width: 64px;
	padding: 7px 8px;
	border: 1.5px solid var(--dpa-parchment-border);
	border-radius: 6px;
	background: #fff;
	color: var(--dpa-ink);
	font-family: var(--dpa-font-body);
	font-size: 0.9rem;
	text-align: center;
}

/* ── Actions row (coupon + update cart) — sits below the card ────────────── */
.woocommerce-cart table.shop_table.cart tbody tr:not(.cart_item) td.actions {
	background: transparent;
	border: none;
	padding: 20px 24px 28px;
}
/* Inner wrapper — flex row */
.woocommerce-cart table.shop_table.cart td.actions > .coupon { display: inline-flex; align-items: center; gap: 8px; }
.woocommerce-cart table.shop_table.cart td.actions > button[name="update_cart"] { float: right; }

.woocommerce-cart table.shop_table.cart td.actions .coupon input#coupon_code {
	padding: 10px 14px;
	border: 1.5px solid var(--dpa-border);
	border-radius: 6px;
	background: var(--dpa-bg-mid);
	color: var(--dpa-text);
	font-family: var(--dpa-font-body);
	font-size: 0.875rem;
	min-width: 180px;
}
.woocommerce-cart table.shop_table.cart td.actions .coupon input#coupon_code::placeholder { color: var(--dpa-text-muted); }
.woocommerce-cart table.shop_table.cart td.actions .coupon input#coupon_code:focus { outline: none; border-color: var(--dpa-gold); }
.woocommerce-cart table.shop_table.cart td.actions .button {
	padding: 10px 18px;
	border-radius: 6px;
	border: 1.5px solid var(--dpa-border);
	background: transparent;
	color: var(--dpa-text-muted);
	font-family: var(--dpa-font-body);
	font-size: 0.8125rem;
	font-weight: 600;
	cursor: pointer;
	transition: border-color 0.2s, color 0.2s;
}
.woocommerce-cart table.shop_table.cart td.actions .button:hover { border-color: var(--dpa-gold); color: var(--dpa-gold); }

/* ── Order summary card (cart_totals) ────────────────────────────────────── */
.woocommerce-cart .cart_totals {
	background: var(--dpa-parchment);
	border: 1px solid var(--dpa-parchment-border);
	border-radius: 16px;
	padding: 32px;
	box-shadow: 0 4px 24px rgba(0,0,0,0.3);
}
.woocommerce-cart .cart_totals h2 {
	font-family: var(--dpa-font-display);
	font-size: 1.5rem;
	font-weight: 600;
	color: var(--dpa-ink);
	margin: 0 0 24px;
	padding-bottom: 16px;
	border-bottom: 1px solid var(--dpa-parchment-border);
}
.woocommerce-cart .cart_totals table.shop_table {
	width: 100%;
	border: none;
	border-collapse: collapse;
}
.woocommerce-cart .cart_totals table.shop_table th,
.woocommerce-cart .cart_totals table.shop_table td {
	font-family: var(--dpa-font-body);
	font-size: 0.875rem;
	color: var(--dpa-ink);
	padding: 8px 0;
	border: none;
	background: transparent;
	vertical-align: middle;
}
.woocommerce-cart .cart_totals table.shop_table td { text-align: right; }
.woocommerce-cart .cart_totals table.shop_table .order-total th,
.woocommerce-cart .cart_totals table.shop_table .order-total td {
	font-weight: 700;
	padding-top: 16px;
	border-top: 1px solid var(--dpa-parchment-border);
}
.woocommerce-cart .cart_totals table.shop_table .order-total td {
	font-family: var(--dpa-font-display);
	font-size: 1.5rem;
	color: var(--dpa-gold-dark);
}

/* Proceed to Checkout button */
.woocommerce-cart .wc-proceed-to-checkout { margin-top: 24px; }
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	width: 100%;
	padding: 14px 28px;
	border-radius: 6px;
	border: 2px solid var(--dpa-gold);
	background: var(--dpa-gold);
	color: var(--dpa-ink);
	font-family: var(--dpa-font-body);
	font-size: 0.875rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	text-decoration: none;
	transition: background 0.2s, color 0.2s, border-color 0.2s;
	box-sizing: border-box;
}
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover {
	background: var(--dpa-ink);
	color: var(--dpa-gold);
	border-color: var(--dpa-ink);
}

/* Suppress PayPal / Venmo express-checkout buttons on the cart page.
   The plugin renders .ppc-button-wrapper (containing #ppc-button-ppcp-gateway)
   via the woocommerce_proceed_to_checkout hook. We want Proceed to Checkout
   only — customers pay through the standard checkout flow.                   */
.woocommerce-cart .ppc-button-wrapper,
.woocommerce-cart [data-pp-message] {
	display: none !important;
}

/* SSL / trust note below checkout button */
.woocommerce-cart .cart_totals .woocommerce-privacy-policy-text,
.woocommerce-cart .cart_totals p { font-family: var(--dpa-font-body); font-size: 0.75rem; color: #8A7A6A; text-align: center; margin: 12px 0 0; }

/* ── WooCommerce notices — global (cart, checkout, shop, account, …) ──────── */

/* Card shell: visible against the dark page background on every WC page.       */
/* ── Shared notice card shell ───────────────────────────────────────────────
   Covers message / info / error notices in .woocommerce-notices-wrapper.
   WC renders errors as <ul> with <li> items; message/info render as <div>.   */
.woocommerce-notices-wrapper .woocommerce-message,
.woocommerce-notices-wrapper .woocommerce-info,
.woocommerce-notices-wrapper .woocommerce-error {
	font-family: var(--dpa-font-body);
	font-size: 0.875rem;
	border-radius: 8px;
	margin-bottom: 24px;
	padding: 14px 20px;
	border: 1px solid var(--dpa-border);
	border-left-width: 4px;
	background: var(--dpa-bg-mid);
	color: var(--dpa-text);
	display: flex;
	align-items: center;
	gap: 16px;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.35);
	list-style: none; /* <ul> reset */
}
/* Suppress WooCommerce's ::before icon glyph — it renders in the browser's
   default colour and overlaps the text content inside display:flex          */
.woocommerce-notices-wrapper .woocommerce-message::before,
.woocommerce-notices-wrapper .woocommerce-info::before,
.woocommerce-notices-wrapper .woocommerce-error::before {
	display: none !important;
}

/* ── Per-type accent colours ────────────────────────────────────────────── */
.woocommerce-notices-wrapper .woocommerce-message { border-left-color: var(--dpa-gold); }
.woocommerce-notices-wrapper .woocommerce-info    { border-left-color: #3b82f6; }

/* Errors get a faint red tint + full red border so they clearly signal a
   problem — left-border-only is too subtle against the dark background.     */
.woocommerce-notices-wrapper .woocommerce-error {
	background: rgba(220, 38, 38, 0.1) !important;
	border-color: rgba(220, 38, 38, 0.4) !important;
	border-left-color: #dc2626 !important;
	/* Stack multiple <li> error items vertically, not horizontally */
	flex-direction: column;
	align-items: flex-start;
	gap: 6px;
}
/* Individual error items inside the <ul> */
.woocommerce-notices-wrapper .woocommerce-error li {
	list-style: none;
	padding: 0;
	margin: 0;
	color: var(--dpa-text);
}
/* Leading "✕ " marker on each error item */
.woocommerce-notices-wrapper .woocommerce-error li::before {
	content: '✕ ';
	color: #ef4444;
	font-weight: 700;
	margin-right: 4px;
}

/* ── Action buttons inside notices ──────────────────────────────────────── */
.woocommerce-notices-wrapper a.button {
	margin-left: auto;
	white-space: nowrap;
	padding: 8px 18px;
	border-radius: 6px;
	border: 1.5px solid var(--dpa-gold);
	background: transparent;
	color: var(--dpa-gold);
	font-family: var(--dpa-font-body);
	font-size: 0.8125rem;
	font-weight: 700;
	text-decoration: none;
	transition: background 0.2s, color 0.2s;
}
.woocommerce-notices-wrapper a.button:hover { background: var(--dpa-gold); color: var(--dpa-ink); }
/* Error notices: button uses red accent instead of gold */
.woocommerce-notices-wrapper .woocommerce-error a.button {
	border-color: #ef4444;
	color: #ef4444;
	margin-left: 0;
}
.woocommerce-notices-wrapper .woocommerce-error a.button:hover {
	background: #ef4444;
	color: #fff;
}

/* Cart page only: the .dpa-container is intentionally unbound (max-width:none;
   padding:0) so the cart template controls its own layout. The notices wrapper
   fires before the cart template and needs its own width constraint.            */
.woocommerce-cart .woocommerce-notices-wrapper {
	max-width: 1200px;
	margin-left: auto;
	margin-right: auto;
	padding: 32px 32px 0;
	box-sizing: border-box;
}


/* ═══════════════════════════════════════════════════════════════════════════
   CHECKOUT PAGE
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Coupon-toggle notice (fired by woocommerce_before_checkout_form) ─────── */
/* Style to match the dark card notices used on the cart page.                 */
.woocommerce-checkout .woocommerce-form-coupon-toggle {
	/* Constrain to nav width — container is reset to max-width:none so we re-apply here */
	max-width: 1200px;
	margin-left: auto;
	margin-right: auto;
	padding: 0 32px;
	box-sizing: border-box;
}
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info {
	/* Match .woocommerce-notices-wrapper notice card style */
	background: var(--dpa-bg-mid) !important;
	color: var(--dpa-text) !important;
	border: 1px solid var(--dpa-border) !important;
	border-left: 4px solid var(--dpa-gold) !important;
	border-radius: 8px !important;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.35);
	font-family: var(--dpa-font-body);
	font-size: 0.875rem;
	display: flex !important;
	align-items: center;
	gap: 16px;
	padding: 14px 20px !important;
	margin: 16px 0 !important;
}
/* Remove WooCommerce's built-in ::before icon — the gold left-border accent
   serves as the visual indicator; the icon renders in blue and overlaps text */
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info::before {
	display: none !important;
}
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info a,
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info a:visited {
	color: var(--dpa-gold) !important;
	font-weight: 600;
	text-decoration: none;
}
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info a:hover {
	text-decoration: underline;
}
/* ── Login-toggle notice ("Returning customer? Click here to login") ────────── */
/* WooCommerce renders this as:
   <div class="woocommerce-form-login-toggle">
       <div class="woocommerce-info">Returning customer? <a class="showlogin">…</a></div>
   </div>
   It is output by woocommerce_checkout_login_form() which fires on the
   woocommerce_before_checkout_form action (priority 10).
   Styled to match .woocommerce-form-coupon-toggle above.                       */
.woocommerce-checkout .woocommerce-form-login-toggle {
	max-width: 1200px;
	margin-left: auto;
	margin-right: auto;
	padding: 0 32px;
	box-sizing: border-box;
}
.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info {
	background: var(--dpa-bg-mid) !important;
	color: var(--dpa-text) !important;
	border: 1px solid var(--dpa-border) !important;
	border-left: 4px solid var(--dpa-gold) !important;
	border-radius: 8px !important;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.35);
	font-family: var(--dpa-font-body);
	font-size: 0.875rem;
	display: flex !important;
	align-items: center;
	gap: 16px;
	padding: 14px 20px !important;
	margin: 16px 0 !important;
}
/* Remove WooCommerce's default ::before icon — gold left-border serves as the
   visual indicator; the default icon renders in the browser's blue and clips
   the text content inside display:flex.                                        */
.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info::before {
	display: none !important;
}
.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info a,
.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info a:visited {
	color: var(--dpa-gold) !important;
	font-weight: 600;
	text-decoration: none;
}
.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info a:hover {
	text-decoration: underline;
}

/* ── Login form (slide-down panel when "Click here to login" is clicked) ─────── */
/* WooCommerce injects .woocommerce-form-login below the toggle when the link
   is clicked. Style it as a dark card matching the coupon form above.           */
.woocommerce-checkout .woocommerce-form-login {
	max-width: 1200px;
	margin-left: auto;
	margin-right: auto;
	margin-bottom: 16px;
	padding: 0 32px;
	box-sizing: border-box;
}
.woocommerce-checkout form.woocommerce-form-login {
	background: var(--dpa-bg-mid) !important;
	border: 1px solid var(--dpa-border) !important;
	border-radius: 8px !important;
	padding: 20px 24px !important;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.35);
	max-width: calc(1200px - 64px);
	margin-left: auto;
	margin-right: auto;
}
.woocommerce-checkout .woocommerce-form-login p {
	color: var(--dpa-text) !important;
	font-family: var(--dpa-font-body);
	font-size: 0.875rem;
	margin: 0 0 12px;
}
.woocommerce-checkout .woocommerce-form-login .form-row {
	margin: 0 0 12px;
}
.woocommerce-checkout .woocommerce-form-login .input-text {
	background: var(--dpa-bg) !important;
	border: 1px solid var(--dpa-border) !important;
	color: var(--dpa-text) !important;
	font-family: var(--dpa-font-body) !important;
	font-size: 0.9375rem !important;
	padding: 10px 14px !important;
	border-radius: 6px !important;
	min-height: 44px;
	width: 100%;
	box-sizing: border-box;
}
.woocommerce-checkout .woocommerce-form-login .input-text:focus {
	border-color: var(--dpa-gold) !important;
	box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.18) !important;
	outline: none !important;
}
.woocommerce-checkout .woocommerce-form-login label {
	color: var(--dpa-text-muted) !important;
	font-family: var(--dpa-font-body) !important;
	font-size: 0.6875rem !important;
	font-weight: 700 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.1em !important;
}
.woocommerce-checkout .woocommerce-form-login .button {
	padding: 10px 20px !important;
	border-radius: 6px !important;
	border: 2px solid var(--dpa-gold) !important;
	background: var(--dpa-gold) !important;
	color: var(--dpa-ink) !important;
	font-family: var(--dpa-font-body) !important;
	font-size: 0.875rem !important;
	font-weight: 700 !important;
	cursor: pointer;
	transition: background 0.2s, color 0.2s, border-color 0.2s;
}
.woocommerce-checkout .woocommerce-form-login .button:hover {
	background: var(--dpa-ink) !important;
	color: var(--dpa-gold) !important;
	border-color: var(--dpa-ink) !important;
}
.woocommerce-checkout .woocommerce-form-login .lost_password a {
	color: var(--dpa-gold) !important;
	font-family: var(--dpa-font-body);
	font-size: 0.8rem;
	text-decoration: none;
}
.woocommerce-checkout .woocommerce-form-login .lost_password a:hover { text-decoration: underline; }

/* Coupon input form (slide-down panel when toggle link is clicked) */
.woocommerce-checkout .woocommerce-form-coupon {
	max-width: 1200px;
	margin-left: auto;
	margin-right: auto;
	margin-bottom: 16px;
	/* Outer horizontal padding matches the toggle bar's 32px gutter;
	   inner card then has its own 24px padding on the content         */
	padding: 0 32px;
	box-sizing: border-box;
}

/* Wrap the whole form in a card — target the form element itself */
.woocommerce-checkout form.woocommerce-form-coupon {
	background: var(--dpa-bg-mid) !important;
	border: 1px solid var(--dpa-border) !important;
	border-radius: 8px !important;
	padding: 20px 24px !important;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.35);
	max-width: calc(1200px - 64px); /* 1200px minus 32px gutters each side */
	margin-left: auto;
	margin-right: auto;
}
.woocommerce-checkout .woocommerce-form-coupon p {
	color: var(--dpa-text) !important;
	font-family: var(--dpa-font-body);
	font-size: 0.875rem;
	margin: 0 0 12px;
}
.woocommerce-checkout .woocommerce-form-coupon .form-row {
	margin: 0;
	display: flex;
	gap: 12px;
	align-items: flex-end;
}
.woocommerce-checkout .woocommerce-form-coupon .input-text {
	background: var(--dpa-bg) !important;
	border: 1px solid var(--dpa-border) !important;
	color: var(--dpa-text) !important;
	font-family: var(--dpa-font-body) !important;
	font-size: 0.9375rem !important;
	padding: 10px 14px !important;
	border-radius: 6px !important;
	min-height: 44px;
	flex: 1;
	box-sizing: border-box;
}
.woocommerce-checkout .woocommerce-form-coupon .input-text:focus {
	border-color: var(--dpa-gold) !important;
	box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.18) !important;
	outline: none !important;
}
.woocommerce-checkout .woocommerce-form-coupon .input-text::placeholder {
	color: var(--dpa-text-mid);
	opacity: 1;
}
/* "Apply coupon" button inside the coupon form */
.woocommerce-checkout .woocommerce-form-coupon .button {
	padding: 10px 20px !important;
	border-radius: 6px !important;
	border: 1.5px solid var(--dpa-gold) !important;
	background: transparent !important;
	color: var(--dpa-gold) !important;
	font-family: var(--dpa-font-body) !important;
	font-size: 0.875rem !important;
	font-weight: 700 !important;
	cursor: pointer;
	white-space: nowrap;
	transition: background 0.2s, color 0.2s;
}
.woocommerce-checkout .woocommerce-form-coupon .button:hover {
	background: var(--dpa-gold) !important;
	color: var(--dpa-ink) !important;
}

/* ── Breadcrumb strip ─────────────────────────────────────────────────────── */
.dpa-checkout-breadcrumb {
	background: var(--dpa-bg-header);
	border-bottom: 1px solid var(--dpa-border);
}
.dpa-checkout-breadcrumb__inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 14px 32px;
	display: flex;
	align-items: center;
	gap: 8px;
	font-family: var(--dpa-font-body);
	font-size: 0.8rem;
	color: var(--dpa-text-mid);
}
.dpa-checkout-breadcrumb a { color: var(--dpa-gold); text-decoration: none; }
.dpa-checkout-breadcrumb a:hover { text-decoration: underline; }
.dpa-checkout-breadcrumb span:last-child { color: var(--dpa-text); font-weight: 600; }

/* ── Main wrapper ─────────────────────────────────────────────────────────── */
.dpa-checkout-main {
	background: var(--dpa-bg);
	min-height: 70vh;
	padding: 48px 32px 80px;
}

/* ── Page heading ─────────────────────────────────────────────────────────── */
.dpa-checkout-heading {
	max-width: 1200px;
	margin: 0 auto 36px;
	font-family: var(--dpa-font-display);
	font-size: clamp(2rem, 4vw, 3rem);
	font-weight: 600;
	color: var(--dpa-text);
	line-height: 1.1;
}
.dpa-checkout-heading span { color: var(--dpa-gold); }

/* ── Two-column layout ────────────────────────────────────────────────────── */
.dpa-checkout-layout {
	max-width: 1200px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 3fr 2fr;
	gap: 40px;
	align-items: start;
}

/* ── Left: contact information parchment card ─────────────────────────────── */
.dpa-checkout-card {
	background: var(--dpa-parchment);
	border-radius: 16px;
	border: 1px solid var(--dpa-parchment-border);
	padding: 40px;
	box-shadow: 0 4px 24px rgba(0, 0, 0, 0.3);
}

/* Section title (Contact Info / Payment Info)
   Uses !important on color because theme.css sets .dpa-prose h3 { color: var(--dpa-text) }
   (light color, for dark backgrounds) with higher specificity (class + element). */
.dpa-checkout-section-title {
	font-family: var(--dpa-font-display);
	font-size: 1.375rem;
	font-weight: 600;
	color: var(--dpa-ink) !important;
	margin-bottom: 20px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--dpa-parchment-border);
	display: flex;
	align-items: center;
	gap: 10px;
}
.dpa-checkout-section-title i { color: var(--dpa-gold) !important; font-size: 1rem; }

/* ── Billing form fields (inside the parchment card) ─────────────────────── */
/* Hide WooCommerce's own h3 — we use .dpa-checkout-section-title */
.dpa-checkout-card .woocommerce-billing-fields > h3,
.dpa-checkout-card .woocommerce-shipping-fields > h3 { display: none; }

/* Reset WC's default form-row padding (3px) and keep our margin */
.dpa-checkout-card .form-row { padding: 0 !important; margin-bottom: 16px; }

/* Labels: small-caps style in warm mid-tone */
.dpa-checkout-card .form-row label {
	display: block;
	font-size: 0.6875rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: #8A7A6A;
	margin-bottom: 6px;
	line-height: 1.4; /* override WC's line-height:2 */
}
.dpa-checkout-card .form-row .optional { display: none; }

/* The .woocommerce-input-wrapper div wraps every input — force it to block/full-width */
.dpa-checkout-card .woocommerce-input-wrapper { display: block; width: 100%; }

/* All native inputs + textarea + native select */
.dpa-checkout-card .form-row input[type="text"],
.dpa-checkout-card .form-row input[type="email"],
.dpa-checkout-card .form-row input[type="tel"],
.dpa-checkout-card .form-row input[type="password"],
.dpa-checkout-card .form-row select,
.dpa-checkout-card .form-row textarea {
	width: 100%;
	padding: 0 16px;
	min-height: 50px;
	line-height: 1.5;
	border: 1.5px solid var(--dpa-parchment-border);
	border-radius: 8px;
	font-family: var(--dpa-font-body);
	font-size: 0.9375rem;
	color: var(--dpa-ink);
	background: var(--dpa-parchment);
	box-sizing: border-box;
	outline: none;
	transition: border-color 0.2s, box-shadow 0.2s;
	appearance: auto;
}
.dpa-checkout-card .form-row input:focus,
.dpa-checkout-card .form-row select:focus {
	border-color: var(--dpa-gold);
	box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.12);
}

/* ── Select2 (WC replaces Country / State <select> with Select2) ──────────── */
.dpa-checkout-card .select2-container { width: 100% !important; }
.dpa-checkout-card .select2-container .select2-selection--single {
	background: var(--dpa-parchment) !important;
	border: 1.5px solid var(--dpa-parchment-border) !important;
	border-radius: 8px !important;
	min-height: 50px !important;
	display: flex !important;
	align-items: center;
	box-sizing: border-box;
}
.dpa-checkout-card .select2-container .select2-selection--single .select2-selection__rendered {
	color: var(--dpa-ink) !important;
	font-family: var(--dpa-font-body) !important;
	font-size: 0.9375rem;
	padding: 0 40px 0 16px !important;
	line-height: 50px !important;
	box-sizing: border-box;
	width: 100%;
}
.dpa-checkout-card .select2-container .select2-selection--single .select2-selection__placeholder {
	color: #9A8A7A !important;
}
.dpa-checkout-card .select2-container .select2-selection--single .select2-selection__arrow {
	height: 100% !important;
	right: 12px !important;
	top: 0 !important;
}
/* Select2 focus / open state */
.dpa-checkout-card .select2-container--open .select2-selection--single,
.dpa-checkout-card .select2-container--focus .select2-selection--single {
	border-color: var(--dpa-gold) !important;
	box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.12) !important;
	outline: none !important;
}
/* Dropdown panel — Select2 appends this to <body>, not inside .dpa-checkout-card */
/* Scope to body.woocommerce-checkout so it only applies on the checkout page.    */
body.woocommerce-checkout .select2-dropdown {
	background: var(--dpa-parchment) !important;
	border: 1.5px solid var(--dpa-gold) !important;
	border-radius: 8px !important;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
}
body.woocommerce-checkout .select2-search--dropdown .select2-search__field {
	background: var(--dpa-parchment);
	border: 1px solid var(--dpa-parchment-border);
	border-radius: 6px;
	color: var(--dpa-ink);
	font-family: var(--dpa-font-body);
	padding: 8px 12px;
}
body.woocommerce-checkout .select2-results__option {
	color: var(--dpa-ink) !important;
	font-family: var(--dpa-font-body);
	font-size: 0.9375rem;
	padding: 10px 16px;
}
body.woocommerce-checkout .select2-results__option--highlighted[aria-selected],
body.woocommerce-checkout .select2-results__option--selected {
	background: var(--dpa-gold) !important;
	color: var(--dpa-ink) !important;
}

/* ── country_to_state--single: shown as plain text when only 1 option ───── */
/* WC strips all borders/bg — re-apply a field-like shell so it doesn't look broken */
.dpa-checkout-card .form-row .country_to_state--single {
	display: block;
	width: 100%;
	min-height: 50px;
	padding: 0 16px;
	line-height: 50px;
	font-family: var(--dpa-font-body);
	font-size: 0.9375rem;
	font-weight: 600;
	color: var(--dpa-ink);
	background: var(--dpa-parchment);
	border: 1.5px solid var(--dpa-parchment-border);
	border-radius: 8px;
	box-sizing: border-box;
	pointer-events: none; /* keep WC's intent */
}

/* Two-column billing grid (WC uses form-row-first / form-row-last) */
.dpa-checkout-card .woocommerce-billing-fields__field-wrapper,
.dpa-checkout-card .woocommerce-shipping-fields__field-wrapper {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}
.dpa-checkout-card .form-row-wide,
.dpa-checkout-card .form-row-first,
.dpa-checkout-card .form-row-last { width: auto !important; float: none !important; clear: none !important; }
.dpa-checkout-card .form-row-wide { grid-column: 1 / -1; }
.dpa-checkout-card .form-row.validate-required .required { color: var(--dpa-gold); }
.dpa-checkout-card .woocommerce-form__input-checkbox { width: auto !important; min-height: auto !important; }

/* Validation error/success states */
.dpa-checkout-card .form-row.woocommerce-invalid input,
.dpa-checkout-card .form-row.woocommerce-invalid select { border-color: #dc2626 !important; }
.dpa-checkout-card .form-row.woocommerce-invalid .select2-selection--single { border-color: #dc2626 !important; }
.dpa-checkout-card .form-row.woocommerce-validated input,
.dpa-checkout-card .form-row.woocommerce-validated select { border-color: #16a34a !important; }
.dpa-checkout-card .form-row.woocommerce-validated .select2-selection--single { border-color: #16a34a !important; }

/* ── Neutralize WooCommerce layout.css floats on col2-set / col-1 / col-2 ── */
/* woocommerce-layout.css sets float:left/right + width:48% on these classes  */
/* inside any .woocommerce context.  We reset them so our CSS Grid drives the  */
/* layout instead.                                                              */
.dpa-checkout-card .col2-set { width: 100% !important; }
.dpa-checkout-card .col2-set::before,
.dpa-checkout-card .col2-set::after { display: none !important; }
.dpa-checkout-card .col-1,
.dpa-checkout-card .col-2 { float: none !important; width: 100% !important; }

/* ── Right: summary card wrapper ─────────────────────────────────────────── */
.dpa-checkout-summary-card {
	background: var(--dpa-parchment);
	border-radius: 16px;
	border: 1px solid var(--dpa-parchment-border);
	overflow: hidden;
	box-shadow: 0 4px 24px rgba(0, 0, 0, 0.4);
	position: sticky;
	top: 100px;
}

/* ── Order summary hero image ─────────────────────────────────────────────── */
.dpa-order-summary__hero {
	position: relative;
	height: 160px;
	overflow: hidden;
}
.dpa-order-summary__hero img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.dpa-order-summary__hero-fade {
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, var(--dpa-parchment) 0%, rgba(245,237,216,0.2) 60%, transparent 100%);
}

/* ── Order summary body ───────────────────────────────────────────────────── */
.dpa-order-summary__body { padding: 24px; }

/* Line item */
.dpa-order-summary__item {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding-bottom: 16px;
	margin-bottom: 16px;
	border-bottom: 1px solid var(--dpa-parchment-border);
}
.dpa-order-summary__item-info { flex: 1; }
.dpa-order-summary__item-name {
	font-family: var(--dpa-font-display);
	font-size: 1.125rem;
	font-weight: 600;
	color: var(--dpa-ink);
	margin-bottom: 4px;
}
.dpa-order-summary__item-meta { font-size: 0.75rem; color: #5C4E3E; margin-bottom: 4px; }
.dpa-order-summary__item-qty { font-size: 0.75rem; color: #5C4E3E; }
.dpa-order-summary__item-price {
	font-family: var(--dpa-font-display);
	font-size: 1.125rem;
	font-weight: 600;
	color: var(--dpa-gold);
	white-space: nowrap;
}

/* Pricing rows */
.dpa-order-summary__totals { border-top: 1px solid var(--dpa-parchment-border); padding-top: 16px; }
.dpa-order-summary__row {
	display: flex;
	justify-content: space-between;
	align-items: center;
	font-family: var(--dpa-font-body);
	font-size: 0.875rem;
	color: #3D2A14;
	margin-bottom: 8px;
}
.dpa-order-summary__row--discount { color: #16a34a; }
.dpa-order-summary__row--total {
	border-top: 1px solid var(--dpa-parchment-border);
	padding-top: 14px;
	margin-top: 8px;
	font-weight: 700;
	font-size: 0.9375rem;
	color: var(--dpa-ink);
}
.dpa-order-summary__total-amount {
	font-family: var(--dpa-font-display);
	font-size: 1.5rem;
	font-weight: 600;
	color: var(--dpa-gold);
}
/* WC wraps the total in a <strong> — style it uniformly */
.dpa-order-summary__total-amount strong { font-family: inherit; font-size: inherit; }

/* SSL security badge */
.dpa-order-summary__ssl {
	display: flex;
	align-items: center;
	gap: 6px;
	padding: 14px 24px;
	border-top: 1px solid var(--dpa-parchment-border);
	font-family: var(--dpa-font-body);
	font-size: 0.7rem;
	color: #9A8878;
}
.dpa-order-summary__ssl i { color: var(--dpa-gold); }
.dpa-order-summary__ssl-sep { color: var(--dpa-parchment-border); }

/* ── Payment section (inside #payment.woocommerce-checkout-payment) ──────── */

/* Reset WooCommerce's lavender background / border-radius on #payment itself */
.dpa-checkout-summary-card #payment,
.dpa-checkout-summary-card .woocommerce-checkout-payment {
	background: transparent !important;
	border-radius: 0 !important;
	border: none !important;
}

.dpa-payment-section {
	padding: 0 24px 24px;
}

/* Section title: the SSL badge above it already acts as the visual separator,
   so remove the redundant border-top from the h3 itself. */
.dpa-checkout-section-title--payment {
	border-top: none;
	padding-top: 16px;
	margin-top: 0;
}

/* Payment gateway list */
.dpa-checkout-summary-card .wc_payment_methods {
	list-style: none;
	margin: 0 0 16px;
	padding: 0;
}

/* Each gateway list item */
.dpa-checkout-summary-card .wc_payment_methods > li {
	padding: 10px 0;
	border-bottom: 1px solid var(--dpa-parchment-border);
}
.dpa-checkout-summary-card .wc_payment_methods > li:last-child {
	border-bottom: none;
}

/* Gateway label row */
.dpa-checkout-summary-card .wc_payment_methods li label {
	font-family: var(--dpa-font-body);
	font-size: 0.9375rem;
	font-weight: 600;
	color: var(--dpa-ink);
	cursor: pointer;
	display: flex;
	align-items: center;
	gap: 10px;
}
/* Payment method card images (Visa, MC, etc.) */
.dpa-checkout-summary-card .wc_payment_methods li label img {
	height: 24px;
	width: auto;
	margin-left: auto;
}

/* Radio button */
.dpa-checkout-summary-card .wc_payment_methods li input[type="radio"] {
	width: auto;
	min-height: auto;
	accent-color: var(--dpa-gold);
	flex-shrink: 0;
}

/* div.payment_box — WC sets background:#dcd7e2, color:#515151, position:relative,
   and a ::before triangle arrow. Override all of them for parchment theme.        */
.dpa-checkout-summary-card .wc_payment_methods .payment_box {
	background: rgba(212, 175, 55, 0.06) !important;
	border: 1px solid var(--dpa-parchment-border) !important;
	border-radius: 8px !important;
	padding: 14px 16px !important;
	margin: 8px 0 4px !important;
	font-family: var(--dpa-font-body) !important;
	font-size: 0.875rem !important;
	color: var(--dpa-ink) !important;
	position: static !important; /* cancel WC's position:relative used for ::before */
}
/* Hide WooCommerce's triangle arrow above each payment_box */
.dpa-checkout-summary-card .wc_payment_methods .payment_box::before {
	display: none !important;
}
/* Text / links inside the payment description box */
.dpa-checkout-summary-card .wc_payment_methods .payment_box p {
	margin: 0 0 12px;
	color: var(--dpa-ink);
}
.dpa-checkout-summary-card .wc_payment_methods .payment_box a {
	color: var(--dpa-gold);
	text-decoration: underline;
}

/* ── Authorize.net CIM credit-card form ──────────────────────────────────── */
/* The SkyVerge framework renders:
     fieldset#wc-authorize-net-cim-credit-card-form
       └─ div.wc-authorize-net-cim-credit-card-new-payment-method-form
            ├─ p.form-row.form-row-wide  (Card Number)
            ├─ p.form-row.form-row-first (Expiration)
            └─ p.form-row.form-row-last  (CSC)
   The inputs carry .js-sv-wc-payment-gateway-credit-card-form-input which
   gets font-size:1.5em; padding:8px; box-shadow:blue from the plugin CSS. */

/* 1 · Strip the browser-default fieldset box */
.dpa-checkout-summary-card .payment_box fieldset {
	border: none !important;
	padding: 0 !important;
	margin: 0 !important;
}

/* 2 · Two-column grid: wide field spans both, first/last sit side-by-side */
.dpa-checkout-summary-card .payment_box [class*="new-payment-method-form"] {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
}
.dpa-checkout-summary-card .payment_box .form-row-wide {
	grid-column: 1 / -1;
}
/* Cancel WC's float/width so the grid controls layout */
.dpa-checkout-summary-card .payment_box .form-row-first,
.dpa-checkout-summary-card .payment_box .form-row-last {
	float: none !important;
	width: 100% !important;
	clear: none !important;
}
/* Clear div not needed inside grid */
.dpa-checkout-summary-card .payment_box .clear {
	display: none !important;
}

/* 3 · Form-row padding/margin reset */
.dpa-checkout-summary-card .payment_box .form-row {
	padding: 0 !important;
	margin: 0 !important;
}

/* 4 · Labels — match the billing-form label style */
.dpa-checkout-summary-card .payment_box .form-row label {
	display: block;
	font-family: var(--dpa-font-body);
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--dpa-ink);
	line-height: 1.4;
	margin-bottom: 6px;
}
.dpa-checkout-summary-card .payment_box .form-row label .required {
	color: #c0392b;
	text-decoration: none;
	margin-left: 2px;
}

/* 5 · Inputs — override SkyVerge's 1.5em / blue-glow defaults */
.dpa-checkout-summary-card .payment_box .js-sv-wc-payment-gateway-credit-card-form-input {
	display: block !important;
	width: 100% !important;
	box-sizing: border-box !important;
	font-family: var(--dpa-font-body) !important;
	font-size: 0.9375rem !important;
	padding: 12px 14px !important;
	min-height: 50px !important;
	background-color: var(--dpa-parchment) !important;
	border: 1px solid var(--dpa-parchment-border) !important;
	border-radius: 8px !important;
	color: var(--dpa-ink) !important;
}
/* Card-number field: keep plugin's card-type SVG icon; add right padding for it */
.dpa-checkout-summary-card .payment_box .js-sv-wc-payment-gateway-credit-card-form-account-number {
	padding-right: 70px !important;
	background-position: right 10px center !important;
	background-repeat: no-repeat !important;
	background-size: 50px 31px !important;
}
/* Focus: gold ring instead of blue */
.dpa-checkout-summary-card .payment_box .js-sv-wc-payment-gateway-credit-card-form-input:focus {
	outline: none !important;
	border-color: var(--dpa-gold) !important;
	box-shadow: 0 0 0 3px rgba(212,175,55,0.22) !important;
}
/* "identified" state (card type detected) — swap plugin's green for gold */
.dpa-checkout-summary-card .payment_box .js-sv-wc-payment-gateway-credit-card-form-input.identified {
	border-color: var(--dpa-gold) !important;
}
.dpa-checkout-summary-card .payment_box .js-sv-wc-payment-gateway-credit-card-form-input.identified:focus {
	box-shadow: 0 0 0 3px rgba(212,175,55,0.3) !important;
}
/* Placeholder colour */
.dpa-checkout-summary-card .payment_box .js-sv-wc-payment-gateway-credit-card-form-input::placeholder {
	color: #9A8878;
	opacity: 1;
}

/* 6 · Ensure woocommerce-input-wrapper is block inside the payment box */
.dpa-checkout-summary-card .payment_box .woocommerce-input-wrapper {
	display: block;
	width: 100%;
}

/* ── PayPal Pay Later banner ─────────────────────────────────────────────── */
/* PayPal JS moves this element outside .dpa-order-summary__body after load,   */
/* so we cannot rely on the body's padding: 24px. Apply margin directly.        */
.dpa-checkout-summary-card [data-pp-message],
.dpa-checkout-summary-card .ppcp-messages,
.dpa-checkout-summary-card [id*="ppcp-message"] {
	display: block !important;
	margin: 0 24px 12px !important; /* 24px gutters + 12px bottom clears SSL border-top */
	padding: 10px 14px;
	background: rgba(212, 175, 55, 0.06);
	border: 1px solid var(--dpa-parchment-border);
	border-radius: 8px;
	font-family: var(--dpa-font-body);
	font-size: 0.8125rem;
	color: #5C4E3E;
	line-height: 1.5;
	box-sizing: border-box;
}
.dpa-checkout-summary-card [data-pp-message] a,
.dpa-checkout-summary-card .ppcp-messages a {
	color: var(--dpa-gold);
	font-weight: 600;
}

/* ── PayPal express checkout: CSS safety net for non-logged-in users ────────
   The ppcp-smart-button script is dequeued server-side for guests (see
   gaa_dequeue_ppcp_for_guest_checkout() in functions.php), so these selectors
   are a defense-in-depth fallback only — they should never be reached by a
   non-logged-in user under normal operation.                                  */
body.woocommerce-checkout:not(.logged-in) .ppc-button-wrapper,
body.woocommerce-checkout:not(.logged-in) #ppc-button-ppcp-gateway,
body.woocommerce-checkout:not(.logged-in) [data-pp-message],
body.woocommerce-checkout:not(.logged-in) .ppcp-messages,
body.woocommerce-checkout:not(.logged-in) [id*="ppcp-message"] {
	display: none !important;
}

/* ── PayPal / Venmo smart payment buttons ────────────────────────────────── */
/* Wrapper ID rendered by the PayPal Payments plugin: #ppc-button-ppcp-gateway */
/* PayPal JS may move this outside .dpa-payment-section after load, so we      */
/* apply 24px horizontal padding directly on the wrapper — PayPal buttons are  */
/* responsive and will shrink to fit their container width.                     */

/* Reset any WC form-row padding on the place-order row inside the summary card */
.dpa-checkout-summary-card .form-row.place-order { padding: 0 !important; }

#ppc-button-ppcp-gateway {
	padding: 0 24px 24px !important; /* 24px gutters + bottom padding since PayPal JS
	                                    moves this outside .dpa-payment-section */
	box-sizing: border-box;
	width: 100%;
	margin-top: 4px;
}
/* "— or pay with —" label */
#ppc-button-ppcp-gateway::before {
	content: '— or pay with —';
	display: block;
	text-align: center;
	font-family: var(--dpa-font-body);
	font-size: 0.75rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: #9A8878;
	margin-bottom: 10px;
}
/* Round the individual PayPal/Venmo iframe rows */
#ppc-button-ppcp-gateway iframe,
#ppc-button-ppcp-gateway div[class*="paypal-button"],
#ppc-button-ppcp-gateway > div {
	border-radius: 6px;
	overflow: hidden;
	margin-bottom: 6px;
}

/* Privacy policy / data use text */
.dpa-checkout-summary-card #payment .about_paypal,
.dpa-checkout-summary-card #payment p.privacy-policy {
	font-family: var(--dpa-font-body);
	font-size: 0.8rem;
	color: #8A7A6A;
	text-align: center;
	margin: 12px 0;
}
.dpa-checkout-summary-card #payment p.privacy-policy a { color: var(--dpa-gold); }

/* Non-refundable disclaimer box */
.dpa-checkout-disclaimer {
	background: var(--dpa-bg-mid);
	border: 1px solid var(--dpa-border);
	border-radius: 10px;
	padding: 16px;
	margin-bottom: 8px; /* reduced — button wrapper provides its own top margin */
	font-family: var(--dpa-font-body);
	font-size: 0.8125rem;
	color: var(--dpa-text-mid);
	line-height: 1.65;
}
.dpa-checkout-disclaimer strong { color: var(--dpa-text); }

/* Neutralize WC float on #place_order so our full-width button isn't shrunk */
.dpa-checkout-summary-card #place_order,
.woocommerce-checkout #place_order { float: none !important; width: 100% !important; }

/* Neutralize WC float on terms/conditions wrapper */
.dpa-checkout-summary-card #payment .terms,
.dpa-checkout-summary-card #payment .wc-terms-and-conditions { float: none !important; }

/* Place order / submit button */
.dpa-checkout-submit {
	width: 100%;
	display: flex !important;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 16px 28px !important;
	border-radius: 6px !important;
	border: 2px solid var(--dpa-gold) !important;
	background: var(--dpa-gold) !important;
	color: var(--dpa-ink) !important;
	font-family: var(--dpa-font-body) !important;
	font-size: 0.875rem !important;
	font-weight: 700 !important;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	cursor: pointer;
	transition: background 0.2s, color 0.2s, border-color 0.2s;
}
.dpa-checkout-submit:hover {
	background: var(--dpa-ink) !important;
	color: var(--dpa-gold) !important;
	border-color: var(--dpa-ink) !important;
}
/* WC terms & conditions checkbox */
.dpa-checkout-summary-card .woocommerce-terms-and-conditions-wrapper {
	margin-bottom: 16px;
	font-family: var(--dpa-font-body);
	font-size: 0.8125rem;
	color: var(--dpa-ink);
}

/* ── Coupon Code block (between order summary and SSL/payment) ───────────── */
/*    Sits inside .dpa-checkout-summary-card — parchment background.         */
.dpa-coupon {
	padding: 20px 24px;
	border-top: 1px solid var(--dpa-parchment-border);
}
.dpa-coupon__label {
	display: flex;
	align-items: center;
	gap: 7px;
	font-family: var(--dpa-font-body);
	font-size: 0.8125rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.07em;
	color: var(--dpa-ink);
	margin-bottom: 10px;
	cursor: default;
}
.dpa-coupon__label i { color: var(--dpa-gold); font-size: 0.875rem; }
.dpa-coupon__row {
	display: flex;
	gap: 10px;
}
.dpa-coupon__input {
	flex: 1;
	min-width: 0;            /* allows flex child to shrink below content-size */
	padding: 0 14px;
	height: 44px;
	line-height: 44px;
	font-family: var(--dpa-font-body);
	font-size: 0.9375rem;
	color: var(--dpa-ink);
	background: var(--dpa-parchment);
	border: 1.5px solid var(--dpa-parchment-border);
	border-radius: 8px;
	box-sizing: border-box;
	transition: border-color 0.15s, box-shadow 0.15s;
}
.dpa-coupon__input::placeholder { color: #9A8A7A; }
.dpa-coupon__input:focus {
	outline: none;
	border-color: var(--dpa-gold);
	box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.12);
}
.dpa-coupon__btn {
	flex-shrink: 0;
	height: 44px;
	padding: 0 20px;
	font-family: var(--dpa-font-body) !important;
	font-size: 0.875rem !important;
	font-weight: 700 !important;
	background: var(--dpa-gold) !important;
	color: var(--dpa-ink) !important;
	border: 1.5px solid var(--dpa-gold) !important;
	border-radius: 8px !important;
	cursor: pointer;
	transition: background 0.2s, color 0.2s !important;
}
.dpa-coupon__btn:hover {
	background: var(--dpa-ink) !important;
	color: var(--dpa-gold) !important;
	border-color: var(--dpa-ink) !important;
}
.dpa-coupon__btn:disabled {
	opacity: 0.6;
	cursor: wait;
}
/* Feedback line (error or spinner) */
.dpa-coupon__feedback { margin-top: 8px; font-family: var(--dpa-font-body); font-size: 0.8125rem; }
.dpa-coupon__msg { margin: 0; padding: 6px 10px; border-radius: 6px; }
.dpa-coupon__msg--error { color: #b91c1c; background: rgba(185,28,28,0.06); border: 1px solid rgba(185,28,28,0.18); }

/* ═══════════════════════════════════════════════════════════════════════════
   THANK-YOU / ORDER RECEIVED PAGE
   ═══════════════════════════════════════════════════════════════════════════ */

.dpa-thankyou {
	max-width: 640px;
	margin: 0 auto;
	padding: 80px 32px;
	text-align: center;
}

/* Gold checkmark circle */
.dpa-thankyou__check {
	width: 80px;
	height: 80px;
	border-radius: 50%;
	background: #3D2A14;
	border: 2px solid var(--dpa-gold);
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto 28px;
	font-size: 2rem;
	color: var(--dpa-gold);
}

/* "You're In!" heading */
.dpa-thankyou__heading {
	font-family: var(--dpa-font-display);
	font-size: clamp(2.25rem, 5vw, 3rem);
	font-weight: 600;
	color: var(--dpa-text);
	margin-bottom: 12px;
}

/* Confirmation sub-text */
.dpa-thankyou__sub {
	font-family: var(--dpa-font-body);
	font-size: 1rem;
	color: var(--dpa-text-mid);
	line-height: 1.7;
	margin-bottom: 8px;
}
.dpa-thankyou__sub strong { color: var(--dpa-text); }

.dpa-thankyou__order-num {
	font-family: var(--dpa-font-body);
	font-size: 0.8125rem;
	color: var(--dpa-text-muted);
	margin-bottom: 32px;
}
.dpa-thankyou__order-num-val {
	color: var(--dpa-gold);
	font-family: var(--dpa-font-body);
}

/* Order summary mini-card */
.dpa-thankyou__summary {
	background: var(--dpa-parchment);
	border: 1px solid var(--dpa-parchment-border);
	border-radius: 12px;
	padding: 24px;
	text-align: left;
	margin-bottom: 24px;
	box-shadow: 0 2px 16px rgba(0, 0, 0, 0.3);
}
.dpa-thankyou__item {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-bottom: 16px;
}
.dpa-thankyou__item-img {
	width: 52px;
	height: 52px;
	border-radius: 8px;
	object-fit: cover;
	flex-shrink: 0;
}
.dpa-thankyou__item-info { flex: 1; }
.dpa-thankyou__item-name {
	font-family: var(--dpa-font-display);
	font-size: 1.125rem;
	font-weight: 600;
	color: var(--dpa-ink);
	margin-bottom: 4px;
}
.dpa-thankyou__item-qty { font-family: var(--dpa-font-body); font-size: 0.75rem; color: #5C4E3E; }
.dpa-thankyou__item-total {
	font-family: var(--dpa-font-display);
	font-size: 1.375rem;
	font-weight: 600;
	color: var(--dpa-gold);
	white-space: nowrap;
}
.dpa-thankyou__summary-total {
	display: flex;
	justify-content: space-between;
	align-items: center;
	border-top: 1px solid var(--dpa-parchment-border);
	padding-top: 16px;
	font-family: var(--dpa-font-body);
	font-size: 0.875rem;
	font-weight: 700;
	color: var(--dpa-ink);
}
.dpa-thankyou__summary-total span:last-child {
	font-family: var(--dpa-font-display);
	font-size: 1.5rem;
	color: var(--dpa-gold);
}

/* "What Happens Next?" dark card */
.dpa-thankyou__next {
	background: var(--dpa-bg-mid);
	border: 1px solid var(--dpa-border);
	border-radius: 12px;
	padding: 24px;
	text-align: left;
	margin-bottom: 32px;
}
.dpa-thankyou__next-title {
	font-family: var(--dpa-font-display);
	font-size: 1.375rem;
	font-weight: 600;
	color: var(--dpa-text);
	margin-bottom: 16px;
}
.dpa-thankyou__next-list {
	list-style: none;
	padding: 0;
	margin: 0;
}
.dpa-thankyou__next-list li {
	font-family: var(--dpa-font-body);
	font-size: 0.875rem;
	color: var(--dpa-text-mid);
	line-height: 2;
	display: flex;
	align-items: center;
	gap: 12px;
}
.dpa-thankyou__next-list li i { color: var(--dpa-gold); width: 14px; flex-shrink: 0; }

/* CTA button row */
.dpa-thankyou__cta { display: flex; justify-content: center; }

/* ── Responsive: stack to single column below 768 px ─────────────────────── */
@media (max-width: 768px) {
	.dpa-checkout-layout { grid-template-columns: 1fr; }
	.dpa-checkout-main { padding: 32px 16px 60px; }
	.dpa-checkout-card { padding: 28px 20px; }
	.dpa-checkout-heading { margin-bottom: 24px; }
	.dpa-checkout-summary-card { position: static; }
	.dpa-checkout-breadcrumb__inner { padding: 12px 16px; }
	.dpa-thankyou { padding: 48px 16px; }
}


/* ═══════════════════════════════════════════════════════════════════════════
   CONTACT PAGE
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Hero subtitle ────────────────────────────────────────────────────────── */
.dpa-contact-hero {
	background: var(--dpa-bg) !important; /* prototype: #2A1F14, not the darker --dpa-bg-mid */
	border-bottom: 1px solid var(--dpa-border);
	padding: 72px 0 !important;            /* prototype: 72px; parent .dpa-page-header sets 48px */
}
.dpa-contact-hero__sub {
	font-family: var(--dpa-font-body);
	font-size: 1rem;
	color: var(--dpa-text-mid);
	max-width: 480px;
	margin-top: 16px;
	line-height: 1.65;
}

/* ── Layout grid: override parent 1fr 1.4fr → 1fr 2fr ────────────────────── */
.page-template-page-contact .dpa-contact__grid,
.dpa-contact__grid {
	grid-template-columns: 1fr 2fr !important;
	gap: 64px;
	max-width: 1100px;
	margin: 0 auto;
}

/* ── Info panel ───────────────────────────────────────────────────────────── */
.dpa-contact__info-heading {
	font-family: var(--dpa-font-display);
	font-size: 1.75rem;
	color: var(--dpa-text);
	font-weight: 600;
	margin-bottom: 12px;
}
.dpa-contact__info-lead {
	font-size: 0.9375rem;
	color: var(--dpa-text-mid);
	margin-bottom: 32px;
	line-height: 1.7;
}

/* ── Circular icon bubbles (override parent's plain icon style) ───────────── */
.dpa-contact__detail {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	margin-bottom: 28px;
}
.dpa-contact__detail-icon {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: #3D2A14;
	border: 1.5px solid var(--dpa-gold);
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
}
.dpa-contact__detail-icon i {
	/* Make <i> a flex container so its ::before glyph is centered, not the 0×0 <i> box */
	display: flex;
	align-items: center;
	justify-content: center;
	width: 1em;
	height: 1em;
	color: var(--dpa-gold);
	font-size: 0.9375rem;
	line-height: 1;
	margin: 0;
	padding: 0;
}
.dpa-contact__detail-body { display: flex; flex-direction: column; }
.dpa-contact__detail-label {
	font-family: var(--dpa-font-body);
	font-size: 0.7rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.15em;
	color: #9A8878;
	margin: 0 0 4px;
}
.dpa-contact__detail-body a {
	font-family: var(--dpa-font-body);
	font-size: 0.9375rem;
	color: var(--dpa-gold);
	text-decoration: none;
}
.dpa-contact__detail-body a:hover { color: var(--dpa-text); }

/* ── FAQ teaser ───────────────────────────────────────────────────────────── */
.dpa-contact__faq {
	margin-top: 40px;
	padding-top: 32px;
	border-top: 1px solid var(--dpa-border);
}
.dpa-contact__faq-heading {
	font-family: var(--dpa-font-display);
	font-size: 1.375rem;
	color: var(--dpa-text);
	font-weight: 600;
	margin-bottom: 16px;
}
.dpa-contact__faq-item { margin-bottom: 16px; }
.dpa-contact__faq-q {
	font-family: var(--dpa-font-body);
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--dpa-text);
	margin-bottom: 4px;
}
.dpa-contact__faq-a {
	font-family: var(--dpa-font-body);
	font-size: 0.8125rem;
	color: var(--dpa-text-mid);
	line-height: 1.6;
}

/* ── Parchment form card ──────────────────────────────────────────────────── */
.dpa-contact__form-card {
	background: var(--dpa-parchment);
	border: 1px solid var(--dpa-parchment-border);
	border-radius: 16px;
	box-shadow: 0 4px 32px rgba(0, 0, 0, 0.3);
	padding: 48px;
}
.dpa-contact__form-title {
	font-family: var(--dpa-font-display);
	font-size: 2rem;
	color: var(--dpa-ink);
	font-weight: 600;
	margin-bottom: 8px;
}
.dpa-contact__form-sub {
	font-family: var(--dpa-font-body);
	font-size: 0.875rem;
	color: #5C4E3E;
	margin-bottom: 32px;
}

/* ── Gravity Forms — parchment field styling ──────────────────────────────── */
/* Labels — outer gfield_label AND GF Name sub-field labels (.gform-field-label--type-sub) */
.dpa-contact__form .gfield_label,
.dpa-contact__form .gform-field-label--type-sub,
.dpa-contact__form .ginput_complex .ginput_full label,
.dpa-contact__form .ginput_complex .ginput_left label,
.dpa-contact__form .ginput_complex .ginput_right label {
	display: block !important;
	font-family: var(--dpa-font-body) !important;
	font-size: 0.6875rem !important;
	font-weight: 700 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.1em !important;
	color: #8A7A6A !important;
	margin-bottom: 10px !important;
}
/* Hide "(Required)" text — stars are clutter on a clean card */
.dpa-contact__form .gfield_required { display: none !important; }

/* Text / email / phone / tel inputs */
.dpa-contact__form .ginput_container input[type="text"],
.dpa-contact__form .ginput_container input[type="email"],
.dpa-contact__form .ginput_container input[type="tel"],
.dpa-contact__form .ginput_container input[type="number"] {
	width: 100% !important;
	box-sizing: border-box !important;
	padding: 0 0 0 20px !important;
	min-height: 52px !important;
	background: var(--dpa-parchment) !important;
	border: 1.5px solid var(--dpa-parchment-border) !important;
	border-radius: 8px !important;
	font-family: var(--dpa-font-body) !important;
	font-size: 0.9375rem !important;
	color: var(--dpa-ink) !important;
	outline: none !important;
	transition: border-color 0.2s !important;
	-webkit-appearance: none !important;
}
/* Textarea */
.dpa-contact__form .ginput_container textarea {
	width: 100% !important;
	box-sizing: border-box !important;
	padding: 16px 20px !important;
	min-height: 140px !important;
	height: 140px !important; /* override GF rows="10" intrinsic height */
	background: var(--dpa-parchment) !important;
	border: 1.5px solid var(--dpa-parchment-border) !important;
	border-radius: 8px !important;
	font-family: var(--dpa-font-body) !important;
	font-size: 0.9375rem !important;
	color: var(--dpa-ink) !important;
	outline: none !important;
	resize: vertical !important;
	transition: border-color 0.2s !important;
}
/* Select / dropdown */
.dpa-contact__form .ginput_container select {
	width: 100% !important;
	box-sizing: border-box !important;
	padding: 0 44px 0 20px !important;
	min-height: 52px !important;
	background-color: var(--dpa-parchment) !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23D4B87A' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 16px center !important;
	border: 1.5px solid var(--dpa-parchment-border) !important;
	border-radius: 8px !important;
	font-family: var(--dpa-font-body) !important;
	font-size: 0.9375rem !important;
	color: var(--dpa-ink) !important;
	outline: none !important;
	-webkit-appearance: none !important;
	appearance: none !important;
	cursor: pointer !important;
	transition: border-color 0.2s !important;
}
.dpa-contact__form .ginput_container select:focus {
	border-color: var(--dpa-gold) !important;
	box-shadow: none !important;
}

/* Focus state */
.dpa-contact__form .ginput_container input:focus,
.dpa-contact__form .ginput_container textarea:focus {
	border-color: var(--dpa-gold) !important;
	box-shadow: none !important;
}
/* Placeholder */
.dpa-contact__form .ginput_container input::placeholder,
.dpa-contact__form .ginput_container textarea::placeholder {
	color: #9A8878 !important;
	opacity: 1 !important;
}
/* Field spacing */
.dpa-contact__form .gfield { margin-bottom: 20px !important; }
.dpa-contact__form .gform_fields { display: flex; flex-direction: column; gap: 0; }

/* Consent checkboxes — keep them readable on parchment */
.dpa-contact__form .ginput_container_consent label {
	font-family: var(--dpa-font-body) !important;
	font-size: 0.8125rem !important;
	color: #5C4E3E !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	font-weight: 400 !important;
}
.dpa-contact__form .ginput_container_consent input[type="checkbox"] {
	accent-color: var(--dpa-gold);
}
.dpa-contact__form .ginput_container_consent a { color: var(--dpa-gold-dark); }

/* Submit button — match prototype .btn-gold */
.dpa-contact__form .gform_footer,
.dpa-contact__form .gform-footer {
	margin-top: 8px !important;
	padding: 0 !important;
}
.dpa-contact__form .gform_button {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	gap: 8px !important;
	padding: 14px 28px !important;
	border-radius: 6px !important;
	border: 2px solid var(--dpa-gold) !important;
	background: var(--dpa-gold) !important;
	color: var(--dpa-ink) !important;
	font-family: var(--dpa-font-body) !important;
	font-size: 0.9rem !important;
	font-weight: 700 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.08em !important;
	cursor: pointer !important;
	transition: background 0.2s, color 0.2s, border-color 0.2s !important;
}
.dpa-contact__form .gform_button:hover {
	background: var(--dpa-ink) !important;
	color: var(--dpa-gold) !important;
	border-color: var(--dpa-ink) !important;
}
/* Validation error highlight */
.dpa-contact__form .gfield_error .ginput_container input,
.dpa-contact__form .gfield_error .ginput_container textarea {
	border-color: #dc2626 !important;
}
.dpa-contact__form .validation_message {
	color: #dc2626 !important;
	font-family: var(--dpa-font-body) !important;
	font-size: 0.8125rem !important;
}

/* ── Responsive ───────────────────────────────────────────────────────────── */
@media (max-width: 768px) {
	.dpa-contact__grid { grid-template-columns: 1fr !important; gap: 40px !important; }
	.dpa-contact__form-card { padding: 28px 20px; }
}

/* ════════════════════════════════════════════════════════════════════════════
   WHAT IS A WEBINAR PAGE  (.wiw-*)
   ════════════════════════════════════════════════════════════════════════════ */

/* ── Hero ──────────────────────────────────────────────────────────────────── */
.wiw-hero__inner {
	text-align: center;
	max-width: 900px;
}
.wiw-hero__title {
	font-family: var(--dpa-font-display);
	font-size: clamp(3rem, 6vw, 5rem);
	line-height: 1.05;
	font-weight: 600;
	color: var(--dpa-text);
	margin: 0 0 24px;
}
.wiw-hero__title em {
	font-style: italic;
	color: var(--dpa-gold);
}
.wiw-hero__lead {
	font-size: 1.0625rem;
	line-height: 1.75;
	color: var(--dpa-text-mid);
	max-width: 640px;
	margin: 0 auto 36px;
}

/* ── Video + Registration grid ─────────────────────────────────────────────── */
.wiw-vr-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 56px;
	align-items: start;
}
.wiw-video-wrap {
	position: relative;
	width: 100%;
	border-radius: 12px;
	overflow: hidden;
	background: var(--dpa-bg-dark);
	border: 1px solid var(--dpa-border);
	margin: 16px 0 12px;
}
.wiw-video {
	display: block;
	width: 100%;
	height: auto;
}
.wiw-video-caption {
	font-size: 0.8125rem;
	color: var(--dpa-text-muted);
	line-height: 1.6;
}
.wiw-form-heading {
	font-family: var(--dpa-font-display);
	font-size: clamp(1.75rem, 3vw, 2.5rem);
	font-weight: 600;
	color: var(--dpa-text);
	margin: 8px 0 8px;
}
.wiw-form-lead {
	font-size: 0.875rem;
	color: var(--dpa-text-muted);
	margin: 0 0 28px;
	line-height: 1.65;
}
.wiw-parchment-card {
	background: var(--dpa-parchment);
	border-radius: 16px;
	border: 1px solid var(--dpa-parchment-border);
	padding: 32px;
	box-shadow: 0 8px 32px rgba(0,0,0,0.4);
}
.wiw-loggedin-msg {
	font-size: 0.9375rem;
	color: var(--dpa-ink);
	margin: 0 0 20px;
	line-height: 1.6;
}
/* Registration form inside parchment card */
.wiw-register-form { display: flex; flex-direction: column; gap: 16px; }
.wiw-field { display: flex; flex-direction: column; gap: 6px; }
.wiw-label {
	font-family: var(--dpa-font-body);
	font-size: 0.6875rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: #8A7A6A;
}
.wiw-label span { color: var(--dpa-gold-dark, #B8960C); }
.wiw-input {
	width: 100%;
	padding: 10px 14px;
	border: 1.5px solid var(--dpa-parchment-border);
	border-radius: 8px;
	font-family: var(--dpa-font-body);
	font-size: 0.9rem;
	color: var(--dpa-ink);
	background: #FFFDF8;
	box-sizing: border-box;
	transition: border-color 0.2s;
}
.wiw-input:focus { border-color: var(--dpa-gold); outline: none; }
.wiw-field-note {
	font-size: 0.8125rem;
	color: #8A7A6A;
	margin: 0;
	line-height: 1.5;
}
.wiw-submit-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	width: 100%;
	padding: 13px 24px;
	border-radius: 8px;
	border: 2px solid var(--dpa-gold);
	background: var(--dpa-gold);
	color: var(--dpa-ink);
	font-family: var(--dpa-font-body);
	font-size: 0.875rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	cursor: pointer;
	transition: background 0.2s, color 0.2s, border-color 0.2s;
	margin-top: 4px;
}
.wiw-submit-btn:hover { background: var(--dpa-ink); border-color: var(--dpa-ink); color: var(--dpa-gold); }
.wiw-name-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
}
.wiw-signin-link {
	text-align: center;
	font-size: 0.75rem;
	color: #B5A898;
	margin: 0;
}
.wiw-signin-link a { color: #8A7A6A; border-bottom: 1px solid #C4B08A; text-decoration: none; }

/* Ottertext-injected phone / SMS opt-in fields inside the parchment card */
.wiw-parchment-card .form-row { margin: 0; }
.wiw-parchment-card .form-row label:not(.woocommerce-form__label-for-checkbox) {
	display: block;
	font-family: var(--dpa-font-body);
	font-size: 0.6875rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: #8A7A6A;
	margin-bottom: 6px;
}
.wiw-parchment-card .form-row .input-text {
	width: 100%;
	padding: 10px 14px;
	border: 1.5px solid var(--dpa-parchment-border);
	border-radius: 8px;
	font-family: var(--dpa-font-body);
	font-size: 0.9rem;
	color: var(--dpa-ink);
	background: #FFFDF8;
	box-sizing: border-box;
	transition: border-color 0.2s;
}
.wiw-parchment-card .form-row .input-text:focus { border-color: var(--dpa-gold); outline: none; }
/* SMS opt-in checkbox row */
.wiw-parchment-card .form-row label.woocommerce-form__label-for-checkbox,
.wiw-parchment-card .form-row > label:has(input[type="checkbox"]) {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-size: 0.8125rem;
	font-weight: normal;
	text-transform: none;
	letter-spacing: 0;
	color: #5C4E3E;
	line-height: 1.55;
	cursor: pointer;
	padding: 12px 14px;
	background: #FEF9D0;
	border: 1px solid #E8CF7A;
	border-radius: 8px;
}
.wiw-parchment-card .form-row input[type="checkbox"] {
	margin-top: 2px;
	width: 18px;
	height: 18px;
	accent-color: var(--dpa-gold);
	flex-shrink: 0;
}
/* Privacy policy text */
.wiw-parchment-card .woocommerce-privacy-policy-text {
	font-size: 0.72rem;
	color: #B5A898;
	text-align: center;
	margin: 0;
}
.wiw-parchment-card .woocommerce-privacy-policy-text a { color: #8A7A6A; }

/* ── What It Is ────────────────────────────────────────────────────────────── */
.wiw-concept-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 64px;
	align-items: center;
}
.wiw-concept-heading {
	font-family: var(--dpa-font-display);
	font-size: clamp(2rem, 4vw, 3rem);
	font-weight: 600;
	color: var(--dpa-text);
	margin: 8px 0 20px;
}
.wiw-concept-body {
	font-size: 0.9375rem;
	line-height: 1.8;
	color: var(--dpa-text-mid);
	margin: 0 0 16px;
}
.wiw-concept-grid__cards {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}
.wiw-feature-card {
	background: var(--dpa-parchment);
	border-radius: 12px;
	border: 1px solid var(--dpa-parchment-border);
	padding: 24px;
	text-align: center;
}
.wiw-feature-card .fa-solid {
	font-size: 1.75rem;
	color: var(--dpa-gold);
	display: block;
	margin-bottom: 12px;
}
.wiw-feature-card__title {
	font-family: var(--dpa-font-display);
	font-size: 1.125rem;
	font-weight: 600;
	color: var(--dpa-ink);
	margin: 0 0 6px;
}
.wiw-feature-card__body {
	font-size: 0.78rem;
	color: #5C4E3E;
	margin: 0;
	line-height: 1.55;
}

/* ── How It Works steps ────────────────────────────────────────────────────── */
.wiw-steps-wrap { max-width: 900px; }
.wiw-step {
	display: flex;
	gap: 28px;
	align-items: flex-start;
	margin-bottom: 48px;
}
.wiw-step:last-child { margin-bottom: 0; }
.wiw-step__icon-col {
	flex-shrink: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
}
.wiw-step__circle {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: var(--dpa-gold);
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.wiw-step__circle .fa-solid {
	font-size: 1.25rem;
	color: var(--dpa-ink);
}
.wiw-step__connector {
	width: 2px;
	flex: 1;
	min-height: 48px;
	background: var(--dpa-border);
	margin-top: 8px;
}
.wiw-step__content { flex: 1; padding-top: 12px; }
.wiw-step__label {
	font-size: 0.65rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.2em;
	color: var(--dpa-gold);
	margin-bottom: 8px;
}
.wiw-step__title {
	font-family: var(--dpa-font-display);
	font-size: 1.5rem;
	font-weight: 600;
	color: var(--dpa-text);
	margin: 0 0 12px;
}
.wiw-step__body {
	font-size: 0.9375rem;
	line-height: 1.75;
	color: var(--dpa-text-mid);
	margin: 0;
}

/* ── FAQ ───────────────────────────────────────────────────────────────────── */
.wiw-faq-wrap { max-width: 800px; }
.wiw-faq-wrap .dpa-section-heading { margin-bottom: 48px; }
.wiw-faq-wrap .dpa-section-heading__title { font-size: clamp(2rem, 4vw, 3rem); }
.wiw-faq-wrap .dpa-eyebrow__line { display: none; }
.wiw-faq-item {
	padding: 24px 0;
	border-bottom: 1px solid var(--dpa-border);
}
.wiw-faq-item:last-child { border-bottom: none; }
.wiw-faq-item__q {
	font-family: var(--dpa-font-display);
	font-size: 1.25rem;
	font-weight: 600;
	color: var(--dpa-text);
	margin: 0 0 10px;
	display: flex;
	align-items: flex-start;
	gap: 12px;
}
.wiw-faq-item__q .fa-circle-question { color: var(--dpa-gold); font-size: 1rem; margin-top: 4px; flex-shrink: 0; }
.wiw-faq-item__a {
	font-size: 0.9375rem;
	line-height: 1.75;
	color: var(--dpa-text-mid);
	margin: 0;
	padding-left: 28px;
}

/* ── Gold CTA section ──────────────────────────────────────────────────────── */
.wiw-cta__inner { text-align: center; max-width: 640px; }
.wiw-cta__heading {
	font-family: var(--dpa-font-display);
	font-size: clamp(2.25rem, 4vw, 3.25rem);
	font-weight: 600;
	color: var(--dpa-ink);
	margin: 0 0 16px;
}
.wiw-cta__lead {
	font-size: 1rem;
	color: #3D2A14;
	margin: 0 0 32px;
	line-height: 1.7;
}

/* ── Responsive ────────────────────────────────────────────────────────────── */
@media (max-width: 900px) {
	.wiw-vr-grid,
	.wiw-concept-grid { grid-template-columns: 1fr; gap: 40px; }
	.wiw-concept-grid__cards { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
	.wiw-concept-grid__cards { grid-template-columns: 1fr; }
	.wiw-parchment-card { padding: 24px 16px; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   SINGLE PRODUCT PAGE  (.dpa-sp-*)
   Styles for woocommerce/single-product.php (child-theme override).
   Layout reuses the .dpa-single-hero / .dpa-single-wrap / .dpa-single-spec
   classes already in theme.css; only product-specific additions live here.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Page shell ───────────────────────────────────────────────────────────── */
.dpa-sp-page { background: var(--dpa-bg); min-height: 80vh; }

/* ── Breadcrumb strip ─────────────────────────────────────────────────────── */
.dpa-sp-breadcrumb {
	background: var(--dpa-bg-header);
	border-bottom: 1px solid var(--dpa-border);
	padding: 12px 0;
}

/* ── Wrapper — bump up padding vs the webinar for breathing room ──────────── */
.dpa-sp-wrap { padding-top: 48px; padding-bottom: 64px; }

/* ── Sale / Featured badge (inside the eyebrow row) ──────────────────────── */
.dpa-sp-badge {
	display: inline-flex;
	align-items: center;
	padding: 3px 10px;
	border-radius: 3px;
	background: var(--dpa-gold);
	color: var(--dpa-ink);
	font-family: var(--dpa-font-body);
	font-size: 0.65rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.15em;
}

/* ── Price + stock row ────────────────────────────────────────────────────── */
.dpa-sp-price-block {
	display: flex;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
	margin: 20px 0 24px;
}
.dpa-sp-price {
	font-family: var(--dpa-font-display);
	font-size: clamp(1.75rem, 3vw, 2.5rem);
	font-weight: 600;
	color: var(--dpa-gold-dark);
	line-height: 1;
}
.dpa-sp-price ins { text-decoration: none; } /* WC sale price */
.dpa-sp-price del {
	font-size: 0.65em;
	color: var(--dpa-text-muted);
	margin-right: 6px;
	opacity: 0.7;
}
.dpa-sp-stock {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-family: var(--dpa-font-body);
	font-size: 0.8125rem;
	font-weight: 600;
	padding: 4px 12px;
	border-radius: 20px;
}
.dpa-sp-stock--in  { background: rgba(22,163,74,0.12); color: #4caf76; }
.dpa-sp-stock--out { background: rgba(176,0,0,0.10);   color: #e05555; }

/* ── Add-to-cart form wrapper ─────────────────────────────────────────────── */
.dpa-sp-atc-wrap { margin-top: 28px; }

/* WooCommerce renders: form.cart > .quantity + button.single_add_to_cart_button */
.dpa-sp-atc-wrap form.cart {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
}

/* Quantity input */
.dpa-sp-atc-wrap .quantity { display: flex; align-items: center; }
.dpa-sp-atc-wrap .quantity input.qty {
	width: 72px;
	padding: 12px 10px;
	border: 1.5px solid var(--dpa-border);
	border-radius: 8px;
	background: var(--dpa-bg-mid);
	color: var(--dpa-text);
	font-family: var(--dpa-font-body);
	font-size: 1rem;
	text-align: center;
	outline: none;
	-moz-appearance: textfield;
	appearance: textfield;
}
.dpa-sp-atc-wrap .quantity input.qty::-webkit-inner-spin-button,
.dpa-sp-atc-wrap .quantity input.qty::-webkit-outer-spin-button { -webkit-appearance: none; }
.dpa-sp-atc-wrap .quantity input.qty:focus { border-color: var(--dpa-gold); }

/* Add to cart button — override WooCommerce defaults */
.dpa-sp-atc-wrap .single_add_to_cart_button.button {
	display: inline-flex !important;
	align-items: center !important;
	gap: 10px !important;
	padding: 13px 32px !important;
	border-radius: 6px !important;
	border: 2px solid var(--dpa-gold) !important;
	background: var(--dpa-gold) !important;
	color: var(--dpa-ink) !important;
	font-family: var(--dpa-font-body) !important;
	font-size: 0.875rem !important;
	font-weight: 700 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.1em !important;
	cursor: pointer !important;
	transition: background 0.2s, color 0.2s, border-color 0.2s;
}
.dpa-sp-atc-wrap .single_add_to_cart_button.button:hover {
	background: var(--dpa-ink) !important;
	color: var(--dpa-gold) !important;
	border-color: var(--dpa-ink) !important;
}
.dpa-sp-atc-wrap .single_add_to_cart_button.button::before {
	/* Cart icon via Font Awesome font-face — matches card button */
	font-family: 'Font Awesome 6 Free';
	font-weight: 900;
	content: '\f07a'; /* fa-cart-shopping */
	font-size: 0.875em;
}

/* Out-of-stock message */
.dpa-sp-oos-msg {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-top: 28px;
	padding: 16px 20px;
	border-radius: 8px;
	background: rgba(176,0,0,0.08);
	border: 1px solid rgba(220,38,38,0.25);
	font-family: var(--dpa-font-body);
	font-size: 0.9375rem;
	color: #e05555;
}

/* ── Long description ─────────────────────────────────────────────────────── */
.dpa-sp-desc {
	margin-top: 56px;
	padding-top: 48px;
	border-top: 1px solid var(--dpa-border);
}
.dpa-sp-desc__heading {
	font-family: var(--dpa-font-display);
	font-size: 1.75rem;
	font-weight: 600;
	color: var(--dpa-text);
	margin-bottom: 24px;
}
.dpa-sp-desc__body {
	font-family: var(--dpa-font-body);
	font-size: 0.9375rem;
	color: var(--dpa-text-mid);
	line-height: 1.8;
	max-width: 760px;
}
.dpa-sp-desc__body h2,
.dpa-sp-desc__body h3,
.dpa-sp-desc__body h4 { font-family: var(--dpa-font-display); color: var(--dpa-text); margin: 1.5em 0 0.5em; }
.dpa-sp-desc__body p  { margin-bottom: 1em; }
.dpa-sp-desc__body a  { color: var(--dpa-gold); }
.dpa-sp-desc__body ul,
.dpa-sp-desc__body ol { padding-left: 1.5em; margin-bottom: 1em; }
.dpa-sp-desc__body li { margin-bottom: 0.4em; }

/* ── Responsive ───────────────────────────────────────────────────────────── */
@media (max-width: 900px) {
	.dpa-sp-wrap { padding-top: 32px; }
	.dpa-sp-atc-wrap form.cart { flex-direction: column; align-items: flex-start; }
	.dpa-sp-atc-wrap .single_add_to_cart_button.button { width: 100% !important; justify-content: center !important; }
}
@media (max-width: 600px) {
	.dpa-sp-breadcrumb { padding: 10px 0; }
}
