/* =============================================================================
   CF My Account Customizer  ·  v1.0
   Brand palette: rgb(121,82,40) · #000 · #fff
   Design: clean, minimal, generous whitespace
   ============================================================================= */

/* ── Variables ──────────────────────────────────────────────────────────────── */
:root {
  --cf-brown:        #000;
  --cf-brown-rgb:    121, 82, 40;
  --cf-brown-dark:   rgb(93, 62, 28);
  --cf-brown-soft:   rgba(121, 82, 40, 0.08);
  --cf-brown-border: rgba(121, 82, 40, 0.20);
  --cf-black:        #111111;
  --cf-white:        #ffffff;
  --cf-ink:          #222222;
  --cf-muted:        #888888;
  --cf-line:         #e6e6e6;
  --cf-bg:           #f8f7f6;
  --cf-bg-hover:     #f3f0ed;
  --r-sm:  5px;
  --r:     9px;
  --r-lg:  14px;
  --sh-xs: 0 1px 3px rgba(0,0,0,.06);
  --sh-sm: 0 2px 8px rgba(0,0,0,.07);
  --sh-md: 0 4px 18px rgba(0,0,0,.09);
  --t:     all .2s ease;
  --nav-w: 234px;
}

/* =============================================================================
   LAYOUT  –  two-column flex (nav | content)
   Uses .woocommerce-account which WC always adds, so it's guaranteed.
   ============================================================================= */

.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content {
  float: none !important;
  width: auto !important;
}

.woocommerce-account .woocommerce-MyAccount-navigation {
  flex: 0 0 var(--nav-w) !important;
  width: var(--nav-w) !important;
  min-width: var(--nav-w) !important;
  max-width: var(--nav-w) !important;
  position: sticky;
  top: 28px;
  margin-right: 5%;
}

.woocommerce-account .woocommerce-MyAccount-content {
  flex: 1 1 0 !important;
  min-width: 0 !important;
}

/* =============================================================================
   NAVIGATION
   ============================================================================= */

.woocommerce-account .wd-page-title {
  display: none;
}

.wd-my-account-sidebar .woocommerce-MyAccount-title {
  padding: 0 0 5px;
}

.cf-myaccount-nav ul {
  list-style: none !important;
  margin: 0 !important;
  padding: 25px 5px !important;
  background: var(--cf-white);
  border: 1px solid var(--cf-line);
  border-radius: var(--r-lg);
  box-shadow: var(--sh-xs);
}

.cf-myaccount-nav ul li {
  margin: 1px 0;
  padding: 0;
}

.cf-myaccount-nav ul li a {
  display: flex !important;
  align-items: center !important;
  gap: 10px;
  padding: 10px 14px !important;
  border-radius: var(--r-sm);
  font-size: 13.5px;
  font-weight: 500;
  text-decoration: none !important;
  transition: var(--t);
  line-height: 1.3;
  border: 1px solid transparent;
}

.cf-myaccount-nav ul li a:hover {
  background: var(--cf-bg-hover);
  color: var(--cf-brown) !important;
}

.cf-myaccount-nav ul li.is-active > a,
.cf-myaccount-nav ul li.woocommerce-MyAccount-navigation-link--is-active > a {
  background: var(--cf-brown-soft) !important;
  color: #000;
  font-weight: 700;
  border-color: var(--cf-brown-border);
}

/* Nav icons */
.cf-nav-item__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  opacity: .5;
  transition: opacity .2s;
}
.cf-myaccount-nav ul li a:hover .cf-nav-item__icon,
.cf-myaccount-nav ul li.is-active .cf-nav-item__icon { opacity: 1; }
.cf-nav-item__icon svg {
  display: block !important;
  width: 18px !important; height: 18px !important;
  min-width: 18px; max-width: 18px;
  min-height: 18px; max-height: 18px;
}

.cf-nav-item__label { flex: 1; }

/* Logout – muted */
.cf-nav-item--customer-logout { margin-top: 6px; padding-top: 6px; border-top: 1px solid var(--cf-line); }
.cf-nav-item--customer-logout > a { color: var(--cf-muted) !important; font-size: 13px; }
.cf-nav-item--customer-logout > a:hover { color: #b03a2e !important; background: rgba(176,58,46,.05) !important; }

/* =============================================================================
   DASHBOARD
   ============================================================================= */

.cf-dashboard { width: 100%; }

.cf-dashboard__greeting {
  font-size: 22px;
  font-weight: 400;
  color: var(--cf-ink);
  margin: 0 0 28px;
  letter-spacing: -.01em;
}
.cf-dashboard__greeting strong {
  font-weight: 700;
  color: var(--cf-black);
}

/* Tile grid */
.cf-dashboard__grid {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 14px;
}

.woocommerce-account .entry-content .elementor-widget-container .woocommerce {
    display: flex;
    /* gap: 50px; */
    margin-top: 70px;
}

.cf-dashboard__grid br {
    display: none;
}

.cf-dashboard__tile {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 13px;
  padding: 32px 16px 26px;
  background: var(--cf-white);
  border: 1px solid var(--cf-line);
  border-radius: var(--r-lg);
  color: var(--cf-ink) !important;
  text-decoration: none !important;
  font-size: 13px; font-weight: 600;
  text-align: center;
  transition: var(--t);
  box-shadow: var(--sh-xs);
  position: relative; overflow: hidden;
  box-sizing: border-box;
}
.cf-dashboard__tile:hover {
  border-color: var(--cf-brown-border);
  box-shadow: var(--sh-md);
  transform: translateY(-2px);
  color: var(--cf-brown) !important;
}
.cf-dashboard__tile:hover .cf-dashboard__tile-icon { color: var(--cf-brown); }

.cf-dashboard__tile-icon {
  display: flex !important; align-items: center !important; justify-content: center !important;
  color: #bbb;
  transition: color .2s;
  width: 32px !important; height: 32px !important;
  min-width: 32px; max-width: 32px; overflow: hidden;
}
.cf-dashboard__tile-icon svg {
  display: block !important;
  width: 32px !important; height: 32px !important;
  min-width: 32px !important; max-width: 32px !important;
  min-height: 32px !important; max-height: 32px !important;
}

.cf-dashboard__tile-label { line-height: 1.3; display: block; }

/* Ripple */
.cf-ripple {
  position: absolute; border-radius: 50%;
  background: rgba(var(--cf-brown-rgb), .08);
  width: 120px; height: 120px; margin: -60px 0 0 -60px;
  animation: cf-ripple .5s ease-out forwards;
  pointer-events: none;
}
@keyframes cf-ripple { from { transform: scale(0); opacity: 1; } to { transform: scale(4); opacity: 0; } }

/* =============================================================================
   SHARED UTILITIES
   ============================================================================= */

.cf-section-title {
  font-size: 15px; font-weight: 700; color: var(--cf-black);
  margin: 0 0 16px; letter-spacing: -.01em;
}
.cf-empty-note { color: var(--cf-muted); font-size: 13.5px; font-style: italic; }

/* Buttons */
.cf-btn {
    display: inline-flex !important;
    align-items: center;
    gap: 6px;
    padding: 15px;
    border-radius: 5px;
    cursor: pointer;
    text-decoration: none !important;
    border: 1px solid transparent;
    transition: var(--t);
    white-space: nowrap;
    box-sizing: border-box;
    line-height: 1.4;
    text-transform: uppercase;
    font-size: 14px;
}
.cf-btn--primary {
  background: var(--cf-brown) !important;
  color: var(--cf-white) !important;
  border-color: var(--cf-brown) !important;
}
.cf-btn--primary:hover {
  background: var(--cf-brown-dark) !important;
  border-color: var(--cf-brown-dark) !important;
}
.cf-btn--outline {
  background: var(--cf-white);
  color: var(--cf-brown);
  border-color: var(--cf-brown-border);
}
.cf-btn--outline:hover { background: var(--cf-brown-soft); border-color: var(--cf-brown-border); }
.cf-btn--sm { padding: 5px 11px; font-size: 12px; }
.cf-btn--docs {
  background: var(--cf-bg);
  color: var(--cf-brown);
  border-color: var(--cf-brown-border);
  font-size: 12px; padding: 5px 10px;
}
.cf-btn--docs:hover,
.cf-btn--docs[aria-expanded="true"] {
  background: var(--cf-brown) !important;
  color: var(--cf-white) !important;
  border-color: var(--cf-brown) !important;
}
.cf-btn--docs svg { display: block !important; width: 14px !important; height: 14px !important; }

/* Status badges */
.cf-status-badge {
  display: inline-block; padding: 3px 9px;
  border-radius: 20px; font-size: 11px; font-weight: 700;
  text-transform: uppercase; letter-spacing: .04em; white-space: nowrap;
}
.cf-status-badge--processing,
.cf-status-badge--on-hold   { background: #fef9e7; color: #856404; }
.cf-status-badge--completed { background: #eafaf1; color: #1a7a42; }
.cf-status-badge--cancelled,
.cf-status-badge--failed,
.cf-status-badge--refunded  { background: #fdedec; color: #b03a2e; }
.cf-status-badge--pending   { background: #f4f4f4; color: var(--cf-muted); }

/* =============================================================================
   ORDERS TABLE
   ============================================================================= */

.cf-orders-wrap { width: 100%; }

.cf-orders-table {
  width: 100%; border-collapse: collapse; font-size: 14px;
}
.cf-orders-table__th {
  text-align: left; padding: 10px 14px;
  font-size: 11px; font-weight: 700; text-transform: uppercase;
  letter-spacing: .06em; color: var(--cf-muted);
  background: var(--cf-bg); border-bottom: 2px solid var(--cf-line);
}
.cf-orders-table__cell {
  padding: 14px 14px; border-bottom: 1px solid var(--cf-line);
  vertical-align: middle; color: var(--cf-ink);
}
.cf-orders-table__row:hover .cf-orders-table__cell { background: var(--cf-bg); }

.cf-order-number {
  font-weight: 700; color: var(--cf-brown) !important; text-decoration: none !important;
}
.cf-order-number:hover { text-decoration: underline !important; }

.cf-order-actions {display: block;width: 100%;}

.woocommerce table.shop_table tr {
    background: #fff;
}

.cf-order-actions a {
    display: inline-block !important;
    width: 100%;
    text-align: center;
    margin-bottom: 7px;
}
/* Document expand row */
.cf-orders-table__docs-row td {
  padding: 0;
  background: var(--cf-bg);
  border-bottom: 2px solid var(--cf-brown-border);
}

/* Pagination */
.cf-pagination {
  display: flex; align-items: center; justify-content: center; gap: 12px; margin-top: 24px;
}
.cf-pagination__info { font-size: 13px; color: var(--cf-muted); }

/* Empty state */
.cf-empty-state {
  display: flex; flex-direction: column; align-items: center;
  justify-content: center; gap: 14px; padding: 60px 20px; text-align: center;
}
.cf-empty-state__icon { color: var(--cf-line); }
.cf-empty-state__icon svg { display: block !important; width: 52px !important; height: 52px !important; }
.cf-empty-state__text { font-size: 15px; color: var(--cf-muted); margin: 0; }

/* WC notices */
.woocommerce-MyAccount-content .woocommerce-message { border-top-color: var(--cf-brown); }
.woocommerce-MyAccount-content .woocommerce-message::before { color: var(--cf-brown); }

/* Spinner */
@keyframes cf-spin { to { transform: rotate(360deg); } }
.cf-spin { animation: cf-spin .7s linear infinite; }

/* =============================================================================
   ACCOUNT SETTINGS  –  Accordion
   ============================================================================= */

.cf-accordion {
  border: 1px solid var(--cf-line);
  border-radius: var(--r);
  margin-bottom: 8px;
  background: var(--cf-white);
  overflow: hidden;
}

.cf-accordion__header {
  width: 100%; display: flex; align-items: center; gap: 12px;
  padding: 15px 18px; background: none; border: none;
  cursor: pointer; text-align: left; transition: var(--t);
}
.cf-accordion__header:hover { background: var(--cf-bg); }
.cf-accordion.is-open > .cf-accordion__header {
  background: var(--cf-brown-soft);
  border-bottom: 1px solid var(--cf-brown-border);
}

.cf-accordion__icon { display: flex; align-items: center; color: var(--cf-brown); flex-shrink: 0; }
.cf-accordion__icon svg { display: block !important; width: 18px !important; height: 18px !important; }

.cf-accordion__title { flex: 1; font-size: 14px; font-weight: 600; color: var(--cf-black); }
.cf-accordion.is-open > .cf-accordion__header .cf-accordion__title { color: var(--cf-brown); }

.cf-accordion__badge {
  background: var(--cf-brown); color: var(--cf-white);
  font-size: 10.5px; font-weight: 700; padding: 2px 7px; border-radius: 20px; flex-shrink: 0;
}
.cf-accordion__chevron { display: flex; align-items: center; color: var(--cf-muted); flex-shrink: 0; transition: transform .2s; }
.cf-accordion.is-open > .cf-accordion__header .cf-accordion__chevron { transform: rotate(180deg); }
.cf-accordion__chevron svg { display: block !important; width: 16px !important; height: 16px !important; }

.cf-accordion__body { display: none; padding: 20px 20px 16px; }
.cf-accordion.is-open > .cf-accordion__body { display: block; }

.cf-accordion__actions {
  margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--cf-line);
  display: flex; gap: 10px; align-items: center;
}

.cf-accordion > p {
    margin-bottom: 0;
}

.cf-btn > br {
    display: none;
}

/* Address cards */
.cf-addresses-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.cf-addresses-grid > p {
    display: none;
}
.cf-account-settings .cf-page-title {
    margin: 0;
    color: #000;
    letter-spacing: 0;
    text-transform: uppercase;
    font-size: 22px;
}

.cf-address-card {
  background: var(--cf-bg); border: 1px solid var(--cf-line);
  border-radius: var(--r-sm); padding: 14px 16px;
}
.cf-address-card__header {
  display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px;
}
.cf-address-card__header h4 {
  margin: 0;
  /* font-size: 10.5px; */
  font-weight: 700;
  text-transform: uppercase;
  /* letter-spacing: .07em; */
  color: #000;
}
.cf-address-card__body {
  font-size: 13.5px;
  font-style: normal;
  line-height: 1.7;
  color: #444;
}
.cf-address-card__meta { margin: 4px 0 0; font-size: 12.5px; color: var(--cf-muted); }

/* Payment methods */
.cf-payment-methods-list { list-style: none !important; margin: 0 0 4px !important; padding: 0 !important; display: flex; flex-direction: column; gap: 7px; }
.cf-payment-method {
  display: flex; align-items: center; gap: 10px;
  background: var(--cf-bg); border: 1px solid var(--cf-line);
  border-radius: var(--r-sm); padding: 10px 14px; font-size: 13.5px;
}
.cf-payment-method--default { border-color: var(--cf-brown-border); background: var(--cf-brown-soft); }
.cf-payment-method__icon { color: var(--cf-brown); flex-shrink: 0; display: flex; }
.cf-payment-method__icon svg { display: block !important; width: 18px !important; height: 18px !important; }
.cf-payment-method__name { flex: 1; font-weight: 500; }
.cf-badge { font-size: 10px; font-weight: 700; padding: 2px 7px; border-radius: 20px; }
.cf-badge--primary { background: var(--cf-brown); color: var(--cf-white); }

/* Edit-account form */
.cf-edit-account-form .cf-form-row { display: flex; gap: 14px; }
.cf-form-row--half > .cf-field { flex: 1; }
.cf-field { display: flex; flex-direction: column; gap: 5px; margin-bottom: 14px; }
.cf-field label { font-size: 12.5px; font-weight: 700; color: #444; }
.cf-field input[type="text"],
.cf-field input[type="email"],
.cf-field input[type="password"] {
  width: 100%; padding: 9px 12px;
  border: 1px solid var(--cf-line); border-radius: var(--r-sm);
  font-size: 14px; color: var(--cf-black); background: var(--cf-white);
  transition: border-color .2s, box-shadow .2s; box-sizing: border-box;
}
.cf-field input:focus {
  outline: none; border-color: var(--cf-brown);
  box-shadow: 0 0 0 3px var(--cf-brown-soft);
}
.cf-field__hint { font-size: 11.5px; color: var(--cf-muted); }

/* ── Password show/hide toggle ───────────────────────────────────────────── */

/* Wrapper must be relative so the toggle button can be absolutely placed */
.cf-field .password-input {
  display: block;
  position: relative;
  width: 100%;
}

/* Extra right padding so text doesn't slide under the eye button */
.cf-field .password-input input {
  width: 100%;
  padding-right: 44px !important;
  box-sizing: border-box;
}

/* The toggle button itself */
.cf-field .cf-pw-toggle {
  position: absolute !important;
  right: 0 !important;
  top: 0 !important;
  bottom: 0 !important;
  width: 40px;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer;
  color: var(--cf-muted);
  transition: color .18s;
  /* Suppress WC's own font-icon ::after (we use SVG instead) */
}
.cf-field .cf-pw-toggle::after,
.cf-field .cf-pw-toggle::before { content: none !important; }

.cf-field .cf-pw-toggle:hover { color: var(--cf-brown); }

/* SVG eye icons – only one visible at a time */
.cf-eye { display: block !important; pointer-events: none; flex-shrink: 0; }
.cf-eye svg { display: block !important; }

/* Default: show open eye (password is hidden) */
.cf-eye--open { display: block !important; }
.cf-eye--off  { display: none  !important; }

/* When WC adds .display-password: show closed eye (password is visible) */
.cf-pw-toggle.display-password .cf-eye--open { display: none  !important; }
.cf-pw-toggle.display-password .cf-eye--off  { display: block !important; }
.cf-form-section-title {
  font-size: 13px; font-weight: 700; color: var(--cf-black);
  margin: 18px 0 4px; padding-top: 14px; border-top: 1px solid var(--cf-line);
}
.cf-form-hint { font-size: 12.5px; color: var(--cf-muted); margin: 0 0 12px; }
form.woocommerce-EditAccountForm.edit-account.cf-edit-account-form > p {
    display: none;
}

.cf-field br {
    display: none;
}

/* =============================================================================
   RESPONSIVE
   ============================================================================= */

@media (max-width: 860px) {
  .cf-points-notice {
    margin-top: 20px;
  }
  .woocommerce-account .woocommerce {flex-direction: column !important;gap: 16px;margin: 0 !important;}
  .woocommerce-account .woocommerce-MyAccount-navigation {
    flex: none !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    position: static;
    margin-bottom: 20px;
  }
  .cf-myaccount-nav ul li { margin: 2px; }
  .cf-myaccount-nav ul li a { padding: 8px 12px !important; font-size: 12.5px; }
  .cf-nav-item--customer-logout { margin-top: 2px; padding-top: 0; border-top: none; }
  .cf-dashboard__grid { grid-template-columns: repeat(2, 1fr) !important; }
  .cf-addresses-grid { grid-template-columns: 1fr; }
}

@media (max-width: 580px) {
  .cf-dashboard__grid { grid-template-columns: repeat(2, 1fr) !important; gap: 10px; }
  .cf-dashboard__tile { padding: 22px 12px 18px; gap: 10px; }

  /* ── Orders table → card grid on mobile ─────────────────────────────────── */

  /* Hide desktop thead */
  .cf-orders-table thead { display: none !important; }

  /* Make table/tbody/row block-level */
  .cf-orders-table        { display: block !important; }
  .cf-orders-table tbody  { display: block !important; }

  /* Each order row = card with 2-column grid */
  .cf-orders-table__row {
    display: grid !important;
    grid-template-columns: 1fr auto;
    grid-template-rows: auto auto auto;
    border: 1px solid var(--cf-line);
    border-radius: var(--r);
    margin-bottom: 10px;
    overflow: hidden;
    background: var(--cf-white);
  }
  .cf-orders-table__row:hover { background: var(--cf-bg); }

  /* Remove default cell styles */
  .cf-orders-table__cell {
    display: block !important;
    padding: 0;
    border-bottom: none;
    background: transparent !important;
  }
  /* No data-label pseudo on mobile cards */
  .cf-orders-table__cell::before { display: none !important; }

  /* ── Cell 1: Order number – top left ─── */
  .cf-orders-table__cell:nth-child(1) {
    grid-column: 1;
    grid-row: 1;
    padding: 14px 14px 4px;
  }
  .cf-orders-table__cell:nth-child(1) .cf-order-number {
    font-size: 15px;
    font-weight: 800;
  }

  /* ── Cell 2: Date – top right ─── */
  .cf-orders-table__cell:nth-child(2) {
    grid-column: 2;
    grid-row: 1;
    padding: 14px 14px 4px;
    text-align: right;
    font-size: 12px;
    color: var(--cf-muted);
    white-space: nowrap;
  }

  .shop_table tr :is(td,th):first-child {
    padding-inline-start: 10px !important;
}
  
  /* ── Cell 3: Status – middle left ─── */
  .cf-orders-table__cell:nth-child(3) {
    grid-column: 1;
    grid-row: 2;
    padding: 4px 10px 12px;
  }

  /* ── Cell 4: Total – middle right ─── */
  .cf-orders-table__cell:nth-child(4) {
    grid-column: 2;
    grid-row: 2;
    padding: 4px 14px 12px;
    text-align: right;
    font-size: 13px;
    font-weight: 700;
    color: var(--cf-ink);
    white-space: nowrap;
  }

  /* ── Cell 5: Actions – full-width bottom bar ─── */
  .cf-orders-table__cell:nth-child(5),
  .cf-orders-table__cell--actions {
    grid-column: 1 / -1;
    grid-row: 3;
    display: flex !important;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
    padding: 10px!important;
    border-top: 1px solid var(--cf-line);
    background: var(--cf-bg) !important;
  }

  /* Documents expand row */
  .cf-orders-table__docs-row {
    display: block !important;
    border: 1px solid var(--cf-line);
    border-top: none;
    border-radius: 0 0 var(--r) var(--r);
    margin-top: -10px;
    margin-bottom: 10px;
  }
  .cf-orders-table__docs-row td { display: block !important; }

  /* Other form fixes */
  .cf-form-row--half   { flex-direction: column; }
  .cf-docs-grid        { grid-template-columns: 1fr; }
  .cf-addresses-grid   { grid-template-columns: 1fr; }
}
