/* ═══════════════════════════════════════════════════════════════
   CFR WooCommerce Overrides
   Cart, Checkout, My Account — on-brand styling
   Targets both WooCommerce Blocks AND classic shortcode layouts
   ═══════════════════════════════════════════════════════════════ */

:root {
  --navy-950: #0B1221;
  --navy-900: #0F1A2E;
  --teal-400: #2DD4A8;
  --teal-500: #10B981;
  --teal-600: #059669;
  --indigo-500: #6366F1;
  --slate-50: #F8FAFC;
  --slate-100: #F1F5F9;
  --slate-200: #E2E8F0;
  --slate-300: #CBD5E1;
  --slate-400: #94A3B8;
  --slate-500: #64748B;
  --slate-600: #475569;
  --white: #FFFFFF;
}

/* ═══ HIDE KADENCE DEFAULT HEADER/FOOTER ═══
   The remove_action() in PHP handles it, but this is a CSS
   fallback in case the hook runs too late or doesn't match. */
body.woocommerce-cart #masthead,
body.woocommerce-checkout #masthead,
body.woocommerce-account #masthead,
body.woocommerce-cart header.site-header,
body.woocommerce-checkout header.site-header,
body.woocommerce-account header.site-header {
  display: none !important;
}

body.woocommerce-cart .site-footer:not(.cfr-footer),
body.woocommerce-checkout .site-footer:not(.cfr-footer),
body.woocommerce-account .site-footer:not(.cfr-footer),
body.woocommerce-cart footer.site-footer,
body.woocommerce-checkout footer.site-footer,
body.woocommerce-account footer.site-footer {
  display: none !important;
}

/* ═══ HIDE KADENCE HERO TITLE BANNER ═══
   The kadence_post_layout filter handles this in PHP, but CSS
   fallback in case it still renders (giant logo as banner). */
body.woocommerce-cart .entry-hero,
body.woocommerce-cart .page-hero-section,
body.woocommerce-cart .wp-block-cover,
body.woocommerce-cart .entry-header.page-title,
body.woocommerce-cart .hero-section-overlay,
body.woocommerce-checkout .entry-hero,
body.woocommerce-checkout .page-hero-section,
body.woocommerce-checkout .wp-block-cover,
body.woocommerce-checkout .entry-header.page-title,
body.woocommerce-checkout .hero-section-overlay,
body.woocommerce-account .entry-hero,
body.woocommerce-account .page-hero-section,
body.woocommerce-account .wp-block-cover,
body.woocommerce-account .entry-header.page-title,
body.woocommerce-account .hero-section-overlay {
  display: none !important;
}

/* Extra specificity: hide any hero element on WooCommerce pages */
body.woocommerce-cart .entry-hero-container-inner,
body.woocommerce-cart section[class*="hero-section"],
body.woocommerce-checkout .entry-hero-container-inner,
body.woocommerce-checkout section[class*="hero-section"],
body.woocommerce-account .entry-hero-container-inner,
body.woocommerce-account section[class*="hero-section"] {
  display: none !important;
}

/* ═══ LOGO FALLBACK ═══
   In case Kadence header leaks through anywhere */
.site-branding img,
.custom-logo,
.site-branding .custom-logo-link img,
.site-header .custom-logo-link img,
header .custom-logo,
.logo-link img {
  max-height: 40px !important;
  width: auto !important;
  object-fit: contain !important;
}

/* ═══ GLOBAL PAGE STYLING ═══ */
body.woocommerce-cart .content-area,
body.woocommerce-checkout .content-area,
body.woocommerce-account .content-area,
body.woocommerce-cart .site-content,
body.woocommerce-checkout .site-content,
body.woocommerce-account .site-content {
  background: var(--slate-50);
}

body.woocommerce-cart .entry-content-wrap,
body.woocommerce-checkout .entry-content-wrap,
body.woocommerce-account .entry-content-wrap {
  max-width: 1100px;
  margin: 0 auto;
  padding: 40px 24px 80px;
}

body.woocommerce-cart .entry-title,
body.woocommerce-checkout .entry-title,
body.woocommerce-account .entry-title {
  font-family: 'Instrument Serif', serif;
  font-size: 36px;
  color: var(--navy-950);
  margin-bottom: 32px;
  text-align: left;
}

.woocommerce,
.woocommerce-page {
  font-family: 'DM Sans', sans-serif;
  color: var(--navy-950);
}

/* ═══ WOOCOMMERCE BLOCKS — CART ═══ */
.wp-block-woocommerce-cart,
.wc-block-cart {
  font-family: 'DM Sans', sans-serif;
}

.wc-block-cart .wc-block-cart-items {
  background: var(--white);
  border: 1px solid var(--slate-200);
  border-radius: 12px;
  overflow: hidden;
}

.wc-block-cart .wc-block-cart-items .wc-block-cart-items__row {
  border-bottom: 1px solid var(--slate-100);
  padding: 20px 16px;
}

.wc-block-cart .wc-block-cart-items .wc-block-cart-items__row:last-child {
  border-bottom: none;
}

.wc-block-cart .wc-block-components-product-name {
  font-weight: 600;
  font-size: 15px;
  color: var(--navy-950);
  text-decoration: none;
}

.wc-block-cart .wc-block-components-product-price,
.wc-block-cart .wc-block-formatted-money-amount {
  font-family: 'DM Mono', monospace;
  font-weight: 500;
  font-size: 15px;
  color: var(--navy-950);
}

.wc-block-cart .wc-block-components-product-metadata {
  font-size: 13px;
  color: var(--slate-500);
}

.wc-block-cart .wc-block-cart-item__image img {
  border-radius: 8px;
  border: 1px solid var(--slate-200);
}

/* Cart sidebar / totals */
.wc-block-cart .wp-block-woocommerce-cart-totals-block {
  background: var(--white);
  border: 1px solid var(--slate-200);
  border-radius: 12px;
  padding: 24px;
}

.wc-block-cart .wc-block-components-totals-wrapper {
  border-color: var(--slate-100);
}

.wc-block-cart .wc-block-components-totals-item__label {
  font-size: 13px;
  font-weight: 600;
  color: var(--slate-500);
}

.wc-block-cart .wc-block-components-totals-item__value {
  font-family: 'DM Mono', monospace;
  font-size: 15px;
  font-weight: 500;
}

.wc-block-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
  font-size: 15px;
  font-weight: 700;
  color: var(--navy-950);
}

.wc-block-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
  font-size: 20px;
  font-weight: 700;
  color: var(--navy-950);
}

.wc-block-cart .wc-block-components-order-summary .wc-block-components-order-summary__button-text {
  font-family: 'Instrument Serif', serif;
  font-size: 20px;
}

/* ═══ CLASSIC CART TABLE (fallback) ═══ */
.woocommerce-cart-form {
  background: var(--white);
  border: 1px solid var(--slate-200);
  border-radius: 12px;
  overflow: hidden;
}

.woocommerce-cart-form table.cart {
  border-collapse: collapse;
  width: 100%;
}

.woocommerce-cart-form table.cart th {
  background: var(--slate-50);
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--slate-500);
  padding: 12px 16px;
  border-bottom: 1px solid var(--slate-200);
}

.woocommerce-cart-form table.cart td {
  padding: 20px 16px;
  border-bottom: 1px solid var(--slate-100);
  vertical-align: middle;
  font-size: 14px;
  color: var(--navy-950);
}

.woocommerce-cart-form table.cart td.product-name {
  font-weight: 600;
  font-size: 15px;
}

.woocommerce-cart-form table.cart td.product-name .variation,
.woocommerce-cart-form table.cart td.product-name p {
  font-size: 13px;
  font-weight: 400;
  color: var(--slate-500);
  margin-top: 4px;
}

.woocommerce-cart-form table.cart td.product-price,
.woocommerce-cart-form table.cart td.product-subtotal {
  font-family: 'DM Mono', monospace;
  font-weight: 500;
  font-size: 15px;
}

.woocommerce-cart-form table.cart td.product-remove a {
  color: var(--slate-400) !important;
  font-size: 18px;
  text-decoration: none;
}
.woocommerce-cart-form table.cart td.product-remove a:hover {
  color: #F87171 !important;
}

.woocommerce-cart-form table.cart td.product-thumbnail img {
  border-radius: 8px;
  border: 1px solid var(--slate-200);
  width: 64px;
  height: 64px;
  object-fit: cover;
}

/* Classic cart totals */
.cart_totals {
  background: var(--white);
  border: 1px solid var(--slate-200);
  border-radius: 12px;
  padding: 24px;
}

.cart_totals h2 {
  font-family: 'Instrument Serif', serif;
  font-size: 20px;
  color: var(--navy-950);
  margin-bottom: 16px;
}

.cart_totals table {
  width: 100%;
}

.cart_totals table th {
  font-size: 13px;
  font-weight: 600;
  color: var(--slate-500);
  text-align: left;
  padding: 10px 0;
}

.cart_totals table td {
  font-family: 'DM Mono', monospace;
  font-size: 15px;
  font-weight: 500;
  text-align: right;
  padding: 10px 0;
}

.cart_totals .order-total th {
  font-size: 15px;
  font-weight: 700;
  color: var(--navy-950);
  padding-top: 16px;
  border-top: 1px solid var(--slate-200);
}

.cart_totals .order-total td {
  font-size: 20px;
  font-weight: 700;
  color: var(--navy-950);
  padding-top: 16px;
  border-top: 1px solid var(--slate-200);
}

.cart_totals .coupon-form,
.cart_totals .woocommerce-shipping-calculator {
  font-size: 13px;
}

/* ═══ PRIMARY BUTTONS — Blocks + Classic ═══ */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #respond input#submit.alt,
.wc-block-components-checkout-place-order-button,
.wc-block-components-button:not(.is-link),
.wc-block-cart__submit-button a,
.wc-block-cart__submit-button .wc-block-components-button,
.wp-block-woocommerce-proceed-to-checkout-block .wc-block-components-button,
.wp-element-button {
  background: var(--teal-400) !important;
  color: var(--navy-950) !important;
  font-family: 'DM Sans', sans-serif !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  border: none !important;
  border-radius: 8px !important;
  padding: 12px 24px !important;
  cursor: pointer;
  transition: background 0.15s !important;
  text-transform: none !important;
  letter-spacing: normal !important;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover,
.wc-block-components-checkout-place-order-button:hover,
.wc-block-components-button:not(.is-link):hover,
.wc-block-cart__submit-button a:hover,
.wc-block-cart__submit-button .wc-block-components-button:hover,
.wp-block-woocommerce-proceed-to-checkout-block .wc-block-components-button:hover,
.wp-element-button:hover {
  background: var(--teal-500) !important;
  color: var(--navy-950) !important;
}

/* Secondary / outline buttons (classic only) */
.woocommerce a.button:not(.alt):not(.checkout-button),
.woocommerce button.button:not(.alt):not(.checkout-button) {
  background: var(--white) !important;
  color: var(--navy-950) !important;
  border: 1px solid var(--slate-200) !important;
}

.woocommerce a.button:not(.alt):not(.checkout-button):hover,
.woocommerce button.button:not(.alt):not(.checkout-button):hover {
  background: var(--slate-50) !important;
  border-color: var(--slate-300) !important;
}

/* "Proceed to Checkout" — always teal */
.wc-proceed-to-checkout a.checkout-button,
.wc-block-cart__submit-button,
.wp-block-woocommerce-proceed-to-checkout-block {
  text-align: center;
}

.wc-proceed-to-checkout a.checkout-button {
  background: var(--teal-400) !important;
  color: var(--navy-950) !important;
  font-weight: 700 !important;
  width: 100%;
  display: block;
}

/* ═══ WOOCOMMERCE BLOCKS — CHECKOUT ═══ */
.wp-block-woocommerce-checkout,
.wc-block-checkout {
  font-family: 'DM Sans', sans-serif;
}

.wc-block-checkout .wc-block-components-checkout-step {
  border-color: var(--slate-200);
}

.wc-block-checkout .wc-block-components-checkout-step__heading {
  font-family: 'Instrument Serif', serif;
  font-size: 20px;
  color: var(--navy-950);
}

.wc-block-checkout .wc-block-components-checkout-step__description {
  color: var(--slate-500);
  font-size: 13px;
}

/* Block checkout inputs */
.wc-block-checkout .wc-block-components-text-input input,
.wc-block-checkout .wc-block-components-text-input textarea,
.wc-block-checkout .wc-block-components-combobox .components-form-token-field__input,
.wc-block-checkout select {
  font-family: 'DM Sans', sans-serif !important;
  font-size: 14px !important;
  color: var(--navy-950) !important;
  border: 1px solid var(--slate-200) !important;
  border-radius: 8px !important;
  background: var(--white) !important;
}

.wc-block-checkout .wc-block-components-text-input input:focus,
.wc-block-checkout .wc-block-components-text-input textarea:focus {
  border-color: var(--teal-400) !important;
  box-shadow: 0 0 0 3px rgba(45, 212, 168, 0.1) !important;
  outline: none !important;
}

.wc-block-checkout .wc-block-components-text-input label {
  font-size: 13px;
  font-weight: 500;
  color: var(--slate-500);
}

/* Checkout order summary */
.wc-block-checkout .wc-block-components-order-summary {
  background: var(--white);
  border: 1px solid var(--slate-200);
  border-radius: 12px;
  padding: 20px;
}

.wc-block-checkout .wc-block-components-totals-wrapper {
  border-color: var(--slate-100);
}

.wc-block-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
  font-weight: 700;
  color: var(--navy-950);
}

.wc-block-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
  font-family: 'DM Mono', monospace;
  font-weight: 700;
  font-size: 18px;
  color: var(--navy-950);
}

.wc-block-checkout .wc-block-formatted-money-amount {
  font-family: 'DM Mono', monospace;
  font-weight: 500;
}

/* Block checkout payment methods */
.wc-block-checkout .wc-block-components-payment-method-label {
  font-size: 14px;
  font-weight: 500;
}

.wc-block-checkout .wc-block-components-radio-control__option {
  border-color: var(--slate-200);
}

.wc-block-checkout .wc-block-components-radio-control__input:checked {
  border-color: var(--teal-400);
  background: var(--teal-400);
}

/* Place Order button */
.wc-block-components-checkout-place-order-button {
  width: 100%;
  text-align: center;
  margin-top: 16px;
}

/* ═══ CLASSIC CHECKOUT FORM (fallback) ═══ */
.woocommerce-checkout .woocommerce-form-row input,
.woocommerce-checkout .woocommerce-form-row select,
.woocommerce-checkout .woocommerce-form-row textarea {
  font-family: 'DM Sans', sans-serif;
  font-size: 14px;
  color: var(--navy-950);
  border: 1px solid var(--slate-200);
  border-radius: 8px;
  padding: 10px 14px;
  background: var(--white);
  transition: border-color 0.15s, box-shadow 0.15s;
}

.woocommerce-checkout .woocommerce-form-row input:focus {
  border-color: var(--teal-400);
  box-shadow: 0 0 0 3px rgba(45, 212, 168, 0.1);
  outline: none;
}

.woocommerce-checkout label {
  font-size: 13px;
  font-weight: 600;
  color: var(--navy-950);
}

.woocommerce-checkout-review-order-table,
#order_review {
  background: var(--white);
  border: 1px solid var(--slate-200);
  border-radius: 12px;
  padding: 24px;
}

.woocommerce-checkout h3 {
  font-family: 'Instrument Serif', serif;
  font-size: 20px;
  color: var(--navy-950);
  margin-bottom: 16px;
}

.woocommerce-checkout .wc_payment_methods {
  background: var(--white);
  border: 1px solid var(--slate-200);
  border-radius: 12px;
  padding: 20px;
}

/* ═══ TRUST BAR ═══ */
.cfr-trust-bar {
  display: flex;
  justify-content: center;
  gap: 32px;
  padding: 24px 0;
  margin-top: 24px;
  border-top: 1px solid var(--slate-200);
}

.cfr-trust-item {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 500;
  color: var(--slate-500);
}

.cfr-trust-item svg {
  color: var(--teal-500);
  flex-shrink: 0;
}

@media (max-width: 640px) {
  .cfr-trust-bar {
    flex-direction: column;
    gap: 12px;
    align-items: center;
  }
}

/* ═══ MY ACCOUNT ═══ */
.woocommerce-MyAccount-navigation ul {
  list-style: none;
  padding: 0;
  margin: 0;
  background: var(--white);
  border: 1px solid var(--slate-200);
  border-radius: 12px;
  overflow: hidden;
}

.woocommerce-MyAccount-navigation ul li {
  border-bottom: 1px solid var(--slate-100);
}

.woocommerce-MyAccount-navigation ul li:last-child {
  border-bottom: none;
}

.woocommerce-MyAccount-navigation ul li a {
  display: block;
  padding: 12px 16px;
  font-size: 14px;
  font-weight: 500;
  color: var(--slate-600);
  text-decoration: none;
  transition: background 0.15s, color 0.15s;
}

.woocommerce-MyAccount-navigation ul li a:hover {
  background: var(--slate-50);
  color: var(--navy-950);
}

.woocommerce-MyAccount-navigation ul li.is-active a {
  background: rgba(45, 212, 168, 0.06);
  color: var(--teal-600);
  font-weight: 600;
  border-left: 3px solid var(--teal-400);
}

.woocommerce-MyAccount-content {
  background: var(--white);
  border: 1px solid var(--slate-200);
  border-radius: 12px;
  padding: 24px;
}

/* ═══ NOTICES ═══ */
.woocommerce-message,
.wc-block-components-notice-banner.is-success {
  background: rgba(45, 212, 168, 0.06) !important;
  border-color: var(--teal-400) !important;
  color: var(--navy-950) !important;
  border-radius: 8px !important;
  font-size: 14px;
}

.woocommerce-error,
.wc-block-components-notice-banner.is-error {
  background: rgba(248, 113, 113, 0.06) !important;
  border-color: #F87171 !important;
  color: var(--navy-950) !important;
  border-radius: 8px !important;
  font-size: 14px;
}

.woocommerce-info,
.wc-block-components-notice-banner.is-info {
  background: rgba(99, 102, 241, 0.06) !important;
  border-color: var(--indigo-500) !important;
  color: var(--navy-950) !important;
  border-radius: 8px !important;
  font-size: 14px;
}

/* ═══ BLOCK COUPON FORM ═══ */
.wc-block-components-totals-coupon .wc-block-components-text-input input {
  font-family: 'DM Sans', sans-serif !important;
  border-radius: 8px !important;
}

.wc-block-components-totals-coupon .wc-block-components-button {
  border-radius: 8px !important;
}

/* ═══ REMOVE LINK IN BLOCKS CART ═══ */
.wc-block-cart .wc-block-cart-item__remove-link {
  color: var(--slate-400) !important;
  font-size: 12px;
}

.wc-block-cart .wc-block-cart-item__remove-link:hover {
  color: #F87171 !important;
}

/* ═══ THANK YOU PAGE ═══ */
.woocommerce-order-received .entry-content-wrap {
  max-width: 800px;
}
