/**
 * Scavenger Hunt Platform — WooCommerce My Account Styles
 * Uses --shp-* CSS variables from the plugin's dynamic <head> style tag.
 * Mobile-first / fully responsive.
 *
 * Layout strategy: WooCommerce core and most themes use float-based layout
 * for My Account. We override those floats explicitly and apply our own
 * side-by-side layout using margin-left on the content area. This is more
 * compatible than grid/flex which can be defeated by theme float rules.
 */

/* ================================================================
   Box-sizing reset
================================================================ */
.woocommerce-account .woocommerce,
.woocommerce-account .woocommerce *,
.woocommerce-account .woocommerce *::before,
.woocommerce-account .woocommerce *::after {
  box-sizing: border-box;
}

/* ================================================================
   Outer container
================================================================ */
.woocommerce-account .woocommerce {
  font-family: var(--shp-font, "Montserrat", sans-serif) !important;
  font-weight: var(--shp-body-weight, 400);
  color: var(--shp-dark-text, #1f2933);
  max-width: var(--shp-max-width, 1200px);
  margin-left: auto !important;
  margin-right: auto !important;
  padding: 1.5rem 1.25rem 3rem !important;
  /* clearfix so floated children expand the container */
  overflow: hidden;
}

/* Clearfix — belt-and-suspenders for float children */
.woocommerce-account .woocommerce::after {
  content: "";
  display: table;
  clear: both;
}

/* ================================================================
   MOBILE (< 768px): stack nav on top, content below
================================================================ */
.woocommerce-account .woocommerce-MyAccount-navigation {
  float: none !important;
  width: 100% !important;
  margin: 0 0 1.5rem !important;
}

.woocommerce-account .woocommerce-MyAccount-content {
  float: none !important;
  width: 100% !important;
  margin-left: 0 !important;
  padding: 0 !important;
}

/* ================================================================
   TABLET (768px+): nav floated left, content fills the rest
================================================================ */
@media (min-width: 768px) {
  .woocommerce-account .woocommerce-MyAccount-navigation {
    float: left !important;
    width: 220px !important;
    margin: 0 !important;
  }

  .woocommerce-account .woocommerce-MyAccount-content {
    float: none !important;
    width: auto !important;
    margin-left: 252px !important; /* nav width + 32px gap */
    padding: 0 !important;
  }
}

/* ================================================================
   DESKTOP (1024px+): wider sidebar
================================================================ */
@media (min-width: 1024px) {
  .woocommerce-account .woocommerce {
    padding: 2rem 1.5rem 4rem !important;
  }

  .woocommerce-account .woocommerce-MyAccount-navigation {
    width: 250px !important;
  }

  .woocommerce-account .woocommerce-MyAccount-content {
    margin-left: 290px !important; /* 250px nav + 40px gap */
  }
}

@media (min-width: 1280px) {
  .woocommerce-account .woocommerce-MyAccount-navigation {
    width: 270px !important;
  }

  .woocommerce-account .woocommerce-MyAccount-content {
    margin-left: 314px !important; /* 270px nav + 44px gap */
  }
}

/* ================================================================
   Navigation Sidebar — card style
================================================================ */
.woocommerce-account .woocommerce-MyAccount-navigation {
  background: var(--shp-card-bg, #ffffff);
  border-radius: var(--shp-card-radius, 12px) !important;
  border: 1px solid var(--shp-border, #e5e7eb) !important;
  box-shadow: 0 1px 6px rgba(0,0,0,.07);
  overflow: hidden;
  /* keep it at the top when content scrolls past */
  position: -webkit-sticky;
  position: sticky;
  top: 1.5rem;
}

/* "MY ACCOUNT" label above nav items */
.woocommerce-account .woocommerce-MyAccount-navigation::before {
  content: "MY ACCOUNT";
  display: block;
  padding: 0.9rem 1.1rem 0.65rem;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--shp-muted-text, #6b7280);
  border-bottom: 1px solid var(--shp-border, #e5e7eb);
  font-family: var(--shp-font, "Montserrat", sans-serif);
}

.woocommerce-account .woocommerce-MyAccount-navigation ul {
  list-style: none !important;
  margin: 0 !important;
  padding: 0.5rem 0 !important;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li {
  margin: 0 !important;
  padding: 0 0.5rem !important;
  border: none !important;
}

/* Mobile: horizontal scrolling pill row */
@media (max-width: 767px) {
  .woocommerce-account .woocommerce-MyAccount-navigation ul {
    display: flex !important;
    flex-wrap: wrap;
    gap: 0.4rem;
    padding: 0.75rem !important;
  }
  .woocommerce-account .woocommerce-MyAccount-navigation ul li {
    padding: 0 !important;
  }
}

/* ---- Nav links as app buttons ---- */
.woocommerce-account .woocommerce-MyAccount-navigation ul li a {
  display: flex !important;
  align-items: center;
  width: 100%;
  padding: 0.6rem 0.85rem !important;
  margin: 0.15rem 0;
  border-radius: var(--shp-btn-radius, 8px) !important;
  font-family: var(--shp-font, "Montserrat", sans-serif) !important;
  font-weight: 600 !important;
  font-size: 0.875rem !important;
  color: var(--shp-dark-text, #1f2933) !important;
  text-decoration: none !important;
  transition: background 0.15s, color 0.15s;
  line-height: 1.3;
  min-height: 42px;
  border: none !important;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover {
  background: var(--shp-bg, #f9fafb) !important;
  color: var(--shp-primary, #1866a8) !important;
  text-decoration: none !important;
}

/* Active nav item */
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active > a,
.woocommerce-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--active > a {
  background: var(--shp-primary, #1866a8) !important;
  color: var(--shp-light-text, #ffffff) !important;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active > a:hover {
  background: var(--shp-primary, #1866a8) !important;
  color: var(--shp-light-text, #ffffff) !important;
  opacity: 0.9;
}

/* Log out — muted, turns red on hover */
.woocommerce-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout > a {
  color: var(--shp-muted-text, #6b7280) !important;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout > a:hover {
  color: var(--shp-error, #dc2626) !important;
  background: rgba(220,38,38,.07) !important;
}

/* Mobile pill style */
@media (max-width: 767px) {
  .woocommerce-account .woocommerce-MyAccount-navigation ul li a {
    width: auto !important;
    min-height: 36px;
    padding: 0.45rem 0.85rem !important;
    font-size: 0.83rem !important;
    border: 1.5px solid var(--shp-border, #e5e7eb) !important;
    background: var(--shp-card-bg, #ffffff) !important;
    color: var(--shp-dark-text, #1f2933) !important;
  }
  .woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active > a {
    border-color: var(--shp-primary, #1866a8) !important;
    background: var(--shp-primary, #1866a8) !important;
    color: var(--shp-light-text, #ffffff) !important;
  }
}

/* ================================================================
   Main Content Area — card style
================================================================ */
.woocommerce-account .woocommerce-MyAccount-content {
  background: var(--shp-card-bg, #ffffff) !important;
  border-radius: var(--shp-card-radius, 12px) !important;
  border: 1px solid var(--shp-border, #e5e7eb) !important;
  box-shadow: 0 1px 6px rgba(0,0,0,.07);
  padding: 2rem 1.75rem !important;
  min-width: 0;
}

@media (max-width: 480px) {
  .woocommerce-account .woocommerce-MyAccount-content {
    padding: 1.25rem 1rem !important;
  }
}

/* ================================================================
   Content typography
================================================================ */
.woocommerce-MyAccount-content h2,
.woocommerce-MyAccount-content h3 {
  font-family: var(--shp-font, "Montserrat", sans-serif);
  font-weight: var(--shp-heading-weight, 700);
  color: var(--shp-dark-text, #1f2933);
  margin-top: 0;
}

.woocommerce-MyAccount-content h2 {
  font-size: 1.3rem;
  margin-bottom: 1.25rem;
  padding-bottom: 0.75rem;
  border-bottom: 2px solid var(--shp-border, #e5e7eb);
}

.woocommerce-MyAccount-content h3 {
  font-size: 1rem;
  margin-bottom: 0.75rem;
}

.woocommerce-account .woocommerce-MyAccount-content > p:first-child {
  margin-top: 0;
  font-size: 0.975rem;
  line-height: 1.75;
  color: var(--shp-dark-text, #1f2933);
}

/* Highlighted name */
.woocommerce-account .woocommerce-MyAccount-content > p:first-child strong {
  color: var(--shp-primary, #1866a8);
}

/* Links inside content */
.woocommerce-MyAccount-content a {
  color: var(--shp-primary, #1866a8);
  font-weight: 600;
  text-decoration: none;
  transition: color .15s;
}

.woocommerce-MyAccount-content a:hover {
  color: var(--shp-primary-dark, #12517f);
  text-decoration: underline;
}

/* ================================================================
   Buttons
================================================================ */
.woocommerce-account .woocommerce .button,
.woocommerce-account .woocommerce button[type="submit"],
.woocommerce-account .woocommerce input[type="submit"],
.woocommerce-account .woocommerce .woocommerce-Button {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  padding: 0.65rem 1.4rem !important;
  background: var(--shp-primary, #1866a8) !important;
  color: var(--shp-light-text, #ffffff) !important;
  border: 2px solid transparent !important;
  border-radius: var(--shp-btn-radius, 8px) !important;
  font-family: var(--shp-font, "Montserrat", sans-serif) !important;
  font-weight: 600 !important;
  font-size: 0.9rem !important;
  cursor: pointer;
  text-decoration: none !important;
  transition: background .15s, color .15s;
  min-height: 44px;
  line-height: 1;
  box-shadow: none !important;
}

.woocommerce-account .woocommerce .button:hover,
.woocommerce-account .woocommerce button[type="submit"]:hover,
.woocommerce-account .woocommerce input[type="submit"]:hover {
  background: var(--shp-primary-dark, #12517f) !important;
  color: var(--shp-light-text, #ffffff) !important;
  opacity: 1 !important;
}

/* Small button (e.g. "View" in orders table) */
.woocommerce-account .woocommerce table .button,
.woocommerce-account .woocommerce .woocommerce-orders-table .button {
  padding: 0.4rem 0.9rem !important;
  font-size: 0.8rem !important;
  min-height: 36px;
}

/* ================================================================
   Form Inputs
================================================================ */
.woocommerce-account .woocommerce .woocommerce-Input,
.woocommerce-account .woocommerce .input-text,
.woocommerce-account .woocommerce input[type="text"],
.woocommerce-account .woocommerce input[type="email"],
.woocommerce-account .woocommerce input[type="password"],
.woocommerce-account .woocommerce input[type="tel"],
.woocommerce-account .woocommerce select,
.woocommerce-account .woocommerce textarea {
  width: 100%;
  padding: 0.65rem 0.9rem !important;
  border: 1.5px solid var(--shp-border, #e5e7eb) !important;
  border-radius: var(--shp-input-radius, 6px) !important;
  font-family: var(--shp-font, "Montserrat", sans-serif) !important;
  font-size: 0.95rem !important;
  color: var(--shp-dark-text, #1f2933) !important;
  background: var(--shp-bg, #f9fafb) !important;
  transition: border-color .15s, box-shadow .15s;
  min-height: 44px;
  box-shadow: none !important;
}

.woocommerce-account .woocommerce .woocommerce-Input:focus,
.woocommerce-account .woocommerce .input-text:focus,
.woocommerce-account .woocommerce input[type="text"]:focus,
.woocommerce-account .woocommerce input[type="email"]:focus,
.woocommerce-account .woocommerce input[type="password"]:focus {
  border-color: var(--shp-primary, #1866a8) !important;
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(24,102,168,.12) !important;
}

.woocommerce-account .woocommerce-form-row label,
.woocommerce-account .woocommerce-form__label {
  display: block;
  font-weight: 600;
  font-size: 0.84rem;
  color: var(--shp-dark-text, #1f2933);
  margin-bottom: 0.35rem;
}

.woocommerce-account .woocommerce-form-row {
  margin-bottom: 1.25rem;
}

/* ================================================================
   Orders / Tables
================================================================ */
.woocommerce-account table.shop_table {
  width: 100%;
  border-collapse: collapse !important;
  font-size: 0.9rem;
  border: 1px solid var(--shp-border, #e5e7eb) !important;
  border-radius: var(--shp-card-radius, 12px);
  overflow: hidden;
  background: var(--shp-card-bg, #fff);
}

.woocommerce-account table.shop_table th {
  background: var(--shp-bg, #f9fafb) !important;
  color: var(--shp-muted-text, #6b7280);
  font-weight: 700;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: .07em;
  padding: 0.8rem 1rem !important;
  text-align: left;
  border-bottom: 1px solid var(--shp-border, #e5e7eb) !important;
}

.woocommerce-account table.shop_table td {
  padding: 0.9rem 1rem !important;
  border-bottom: 1px solid var(--shp-border, #e5e7eb) !important;
  vertical-align: middle;
  color: var(--shp-dark-text, #1f2933);
}

.woocommerce-account table.shop_table tbody tr:last-child td {
  border-bottom: none !important;
}

.woocommerce-account table.shop_table tbody tr:hover td {
  background: rgba(24,102,168,.025);
}

/* Order status badges */
.woocommerce-account .order-status,
.woocommerce-account .woocommerce-orders-table__cell-order-status mark {
  display: inline-block;
  padding: 0.25rem 0.65rem;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 700;
  background: var(--shp-bg, #f0f0f0);
  color: var(--shp-muted-text, #6b7280);
  box-shadow: none;
}

.woocommerce-account .order-status.status-completed { background: rgba(22,163,74,.12); color: var(--shp-success, #16a34a); }
.woocommerce-account .order-status.status-processing { background: rgba(24,102,168,.12); color: var(--shp-primary, #1866a8); }
.woocommerce-account .order-status.status-on-hold,
.woocommerce-account .order-status.status-pending { background: rgba(217,119,6,.12); color: var(--shp-warning, #d97706); }
.woocommerce-account .order-status.status-cancelled,
.woocommerce-account .order-status.status-refunded,
.woocommerce-account .order-status.status-failed { background: rgba(220,38,38,.12); color: var(--shp-error, #dc2626); }

/* Responsive: slim down table on mobile */
@media (max-width: 560px) {
  .woocommerce-account table.shop_table th,
  .woocommerce-account table.shop_table td {
    padding: 0.65rem 0.6rem !important;
    font-size: 0.82rem;
  }
}

/* ================================================================
   Address Boxes (edit-address/ overview page)
   WooCommerce floats .col-1 left and .col-2 right inside .col2-set,
   relying on overflow:hidden for the clearfix. We KEEP that clearfix
   and explicitly force our own float widths with !important — the
   same approach used for the nav/content layout.
================================================================ */

/* Mobile: stacked */
.woocommerce-account .woocommerce-Addresses .col-1,
.woocommerce-account .woocommerce-Addresses .col-2 {
  float: none !important;
  width: 100% !important;
  margin-bottom: 1.5rem !important;
}

/* Tablet+ (560px): side by side floats */
@media (min-width: 560px) {
  .woocommerce-account .woocommerce-Addresses {
    overflow: hidden !important; /* clearfix for the floated children */
  }

  .woocommerce-account .woocommerce-Addresses .col-1 {
    float: left !important;
    width: 48% !important;
    margin-bottom: 0 !important;
  }

  .woocommerce-account .woocommerce-Addresses .col-2 {
    float: right !important;
    width: 48% !important;
    margin-bottom: 0 !important;
  }
}

.woocommerce-account .woocommerce-Address {
  background: var(--shp-bg, #f9fafb);
  border: 1px solid var(--shp-border, #e5e7eb);
  border-radius: var(--shp-card-radius, 12px);
  padding: 1.25rem 1.5rem;
  box-sizing: border-box;
}

.woocommerce-account .woocommerce-Address-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 0.9rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid var(--shp-border, #e5e7eb);
}

.woocommerce-account .woocommerce-Address-title h3 {
  font-weight: 700;
  font-size: 0.95rem;
  margin: 0;
}

/* ================================================================
   Edit Account form — fix gap after first/last name float pair
   WooCommerce floats .form-row-first/.form-row-last at 47% each and
   inserts <div class="clear"> after them. That float + margin combo
   creates a large gap before "Display name" on desktop. Fix: convert
   the form to a 2-column CSS grid so floats are irrelevant and the
   .clear div can be suppressed.
================================================================ */
@media (min-width: 768px) {
  .woocommerce-account .woocommerce-EditAccountForm {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    column-gap: 1.5rem;
    align-items: start;
  }

  /* Wide rows and structural elements span both columns */
  .woocommerce-account .woocommerce-EditAccountForm .form-row-wide,
  .woocommerce-account .woocommerce-EditAccountForm .woocommerce-form-row--wide,
  .woocommerce-account .woocommerce-EditAccountForm fieldset,
  .woocommerce-account .woocommerce-EditAccountForm .woocommerce-privacy-policy-text,
  .woocommerce-account .woocommerce-EditAccountForm p.form-row:not(.form-row-first):not(.form-row-last),
  .woocommerce-account .woocommerce-EditAccountForm > p:last-of-type {
    grid-column: 1 / -1;
  }

  /* Kill WC floats — grid takes over positioning */
  .woocommerce-account .woocommerce-EditAccountForm .form-row-first,
  .woocommerce-account .woocommerce-EditAccountForm .form-row-last {
    float: none !important;
    width: auto !important;
  }

  /* Hide the float-clearfix div — not needed with grid */
  .woocommerce-account .woocommerce-EditAccountForm .clear {
    display: none !important;
  }
}

/* ================================================================
   Address edit forms (edit-address/billing/ and edit-address/shipping/)
   Same float-pair issue in the field wrapper.
================================================================ */
@media (min-width: 768px) {
  .woocommerce-account .woocommerce-address-fields__field-wrapper {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    column-gap: 1.5rem;
    align-items: start;
  }

  /* Wide rows span full width */
  .woocommerce-account .woocommerce-address-fields__field-wrapper .form-row-wide,
  .woocommerce-account .woocommerce-address-fields__field-wrapper .woocommerce-form-row--wide {
    grid-column: 1 / -1;
  }

  /* Kill WC floats inside address field wrapper */
  .woocommerce-account .woocommerce-address-fields__field-wrapper .form-row-first,
  .woocommerce-account .woocommerce-address-fields__field-wrapper .form-row-last {
    float: none !important;
    width: auto !important;
  }

  /* Suppress the WC clearfix div */
  .woocommerce-account .woocommerce-address-fields__field-wrapper .clear {
    display: none !important;
  }
}

/* ================================================================
   Notices
================================================================ */
.woocommerce-account .woocommerce-message,
.woocommerce-account .woocommerce-error,
.woocommerce-account .woocommerce-info {
  padding: 1rem 1.25rem !important;
  border-radius: var(--shp-card-radius, 12px) !important;
  border: none !important;
  border-left: 4px solid var(--shp-primary, #1866a8) !important;
  background: rgba(24,102,168,.06) !important;
  color: var(--shp-dark-text, #1f2933) !important;
  font-size: 0.95rem;
  margin-bottom: 1.5rem !important;
  list-style: none !important;
}

.woocommerce-account .woocommerce-error {
  border-left-color: var(--shp-error, #dc2626) !important;
  background: rgba(220,38,38,.06) !important;
}

.woocommerce-account .woocommerce-message {
  border-left-color: var(--shp-success, #16a34a) !important;
  background: rgba(22,163,74,.06) !important;
}

/* ================================================================
   Fieldsets (Edit Account password section)
================================================================ */
.woocommerce-account .woocommerce fieldset {
  border: 1px solid var(--shp-border, #e5e7eb) !important;
  border-radius: var(--shp-card-radius, 12px);
  padding: 1.25rem 1.5rem !important;
  margin-bottom: 1.5rem !important;
}

.woocommerce-account .woocommerce fieldset legend {
  font-weight: 700;
  font-size: 0.82rem;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--shp-muted-text, #6b7280);
  padding: 0 0.5rem;
  font-family: var(--shp-font, "Montserrat", sans-serif);
}

/* ================================================================
   Pagination
================================================================ */
.woocommerce-account .woocommerce-pagination {
  display: flex;
  justify-content: center;
  gap: 0.4rem;
  margin-top: 1.5rem;
  flex-wrap: wrap;
}

.woocommerce-account .woocommerce-pagination a,
.woocommerce-account .woocommerce-pagination span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: var(--shp-btn-radius, 8px);
  font-size: 0.88rem;
  font-weight: 600;
  text-decoration: none;
  color: var(--shp-dark-text, #1f2933);
  border: 1.5px solid var(--shp-border, #e5e7eb);
  background: var(--shp-card-bg, #fff);
  transition: background .15s, color .15s;
}

.woocommerce-account .woocommerce-pagination a:hover {
  background: var(--shp-primary, #1866a8);
  color: var(--shp-light-text, #ffffff);
  border-color: var(--shp-primary, #1866a8);
}

.woocommerce-account .woocommerce-pagination span.current {
  background: var(--shp-primary, #1866a8);
  color: var(--shp-light-text, #ffffff);
  border-color: var(--shp-primary, #1866a8);
}
