/* ==========================================================================
   SmartOnes redesign 2026
   Loaded by functions.php (smartones_redesign_assets) after the other theme CSS.
   ========================================================================== */

:root {
  --so-blue: #1A75BA;
  --so-link: #135C94;
  --so-navy: #0C3454;
  --so-tint: #EAF3FA;
  --so-tint-line: #C9DCEC;
  --so-ink: #0E1116;
  --so-body: #3A424D;
  --so-muted: #5B6470;
  --so-line: #E3E6EA;
  --so-ground: #F4F6F8;
  --so-input: #8A96A3;
  --so-sale: #D32F2F;
  --so-sale-tint: #FDECEC;
  --so-ok: #14622D;
  --so-ok-tint: #E6F4EA;
  --so-font: 'Be Vietnam Pro', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
}

/* ---------- 1. Base ---------- */
body.so-redesign,
.so-redesign h1, .so-redesign h2, .so-redesign h3, .so-redesign h4, .so-redesign h5, .so-redesign h6,
.so-redesign .heading-font,
.so-redesign .alt-font,
.so-redesign .nav > li > a,
.so-redesign button, .so-redesign input, .so-redesign select, .so-redesign textarea,
.so-redesign .button {
  font-family: var(--so-font);
}
body.so-redesign { color: var(--so-body); line-height: 1.55; }
.so-redesign h1, .so-redesign h2, .so-redesign h3, .so-redesign h4, .so-redesign h5, .so-redesign h6 {
  color: var(--so-ink);
  font-weight: 800;
  letter-spacing: -0.01em;
}
.so-redesign a { color: var(--so-link); }
.so-redesign a:hover { color: var(--so-blue); }
.so-redesign #wrapper,
.so-redesign #main { background-color: var(--so-ground); }

.so-wrap { max-width: 1270px; margin: 0 auto; padding: 0 15px; box-sizing: border-box; }

/* ---------- 2. Header ---------- */
.so-redesign #header .header-wrapper { background: var(--so-blue); }

.so-util { background: var(--so-navy); color: #D6E4F0; font-size: 13px; line-height: 1.5; }
.so-util__inner { display: flex; flex-wrap: wrap; gap: 4px 24px; justify-content: space-between; align-items: center; padding-top: 8px; padding-bottom: 8px; }
.so-util__left { display: flex; flex-wrap: wrap; gap: 4px 20px; align-items: center; }
.so-redesign .so-util a { color: #D6E4F0; }
.so-redesign .so-util a:hover { color: #FFFFFF; }
.so-redesign .so-util .so-util__hotline { font-weight: 600; color: #FFFFFF; }
.so-util__menu { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 20px; }
.so-util__menu li { margin: 0; position: relative; }
.so-util__menu > .menu-item-home { display: none; }
.so-util__menu > .menu-item-has-children > a::after {
  content: ""; display: inline-block; width: 6px; height: 6px; margin-left: 6px; vertical-align: 2px;
  border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg);
}
.so-util__menu .sub-menu {
  display: none; position: absolute; right: 0; top: 100%; z-index: 60; min-width: 230px;
  list-style: none; margin: 0; padding: 6px;
  background: #FFFFFF; border: 1px solid var(--so-line); border-radius: 10px;
  box-shadow: 0 12px 28px rgba(12, 52, 84, .16);
}
.so-util__menu li:hover > .sub-menu,
.so-util__menu li:focus-within > .sub-menu { display: block; }
.so-redesign .so-util__menu .sub-menu a { display: block; padding: 8px 10px; border-radius: 8px; color: var(--so-ink); }
.so-redesign .so-util__menu .sub-menu a:hover { background: var(--so-tint); color: var(--so-link); }

.so-header { background: var(--so-blue); color: #FFFFFF; }
.so-header__inner { display: flex; flex-wrap: wrap; gap: 16px 32px; align-items: center; padding-top: 16px; padding-bottom: 16px; }
.so-redesign .so-header a { color: #FFFFFF; }
.so-header__menu { display: none; }

.so-logo { display: flex; align-items: center; gap: 12px; }
.so-logo__mark { flex: none; display: block; }
.so-logo__text { display: flex; flex-direction: column; gap: 3px; }
.so-logo__name { font-size: 24px; line-height: 1; font-weight: 800; letter-spacing: -0.03em; }
.so-logo__tag { font-size: 11px; line-height: 1; font-weight: 500; letter-spacing: 0.02em; }

.so-header__search { flex: 999 1 360px; min-width: 0; }
.so-header__search .searchform-wrapper { width: 100%; }
.so-header__search form.searchform { margin: 0; }
.so-redesign .so-header__search input.search-field {
  height: 48px; border: 0; border-radius: 10px 0 0 10px; padding: 0 16px; margin: 0;
  font-size: 15px; background: #FFFFFF; color: var(--so-ink); box-shadow: none;
}
.so-redesign .so-header__search .ux-search-submit {
  width: 56px; height: 48px; min-height: 48px; margin: 0; padding: 0; border: 0;
  border-radius: 0 10px 10px 0; background-color: var(--so-navy) !important; color: #FFFFFF;
}
.so-header__search .live-search-results { border-radius: 10px; overflow: hidden; color: var(--so-ink); }
.so-redesign .so-header__search .live-search-results a { color: var(--so-ink); }

.so-header__actions { display: flex; gap: 8px; align-items: center; }
.so-header__account,
.so-header__cart { display: flex; align-items: center; gap: 8px; min-height: 48px; box-sizing: border-box; }
.so-header__account { padding: 0 12px; font-weight: 500; }
.so-header__cart { padding: 0 16px; font-weight: 600; border: 1.5px solid #FFFFFF; border-radius: 10px; }
.so-redesign .so-header__account:hover,
.so-redesign .so-header__cart:hover { color: #FFFFFF; opacity: .88; }
.so-cart-count {
  min-width: 22px; height: 22px; padding: 0 6px; box-sizing: border-box; border-radius: 999px;
  background: #FFFFFF; color: var(--so-link); font-size: 12px; font-weight: 800; line-height: 22px; text-align: center;
}
.so-cart-count.is-empty { display: none; }

/* Category bar */
.so-catnav { background: #FFFFFF; border-bottom: 1px solid var(--so-line); }
.so-catnav__list { list-style: none; margin: 0; padding: 0; display: flex; gap: 0 4px; font-size: 13px; font-weight: 600; line-height: 1.3; text-align: center; }
.so-catnav__item { flex: 1 1 96px; min-width: 0; margin: 0; position: relative; }
.so-redesign .so-catnav__link { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 12px 4px; color: var(--so-ink); }
.so-redesign .so-catnav__link:hover { color: var(--so-link); }
.so-catnav__icon { width: 40px; height: 40px; border-radius: 999px; background: var(--so-tint); color: var(--so-blue); display: flex; align-items: center; justify-content: center; transition: background-color .15s; }
.so-catnav__item:hover .so-catnav__icon { background: #D9E9F5; }
.so-redesign .so-catnav__item.is-sale .so-catnav__link { color: var(--so-sale); }
.so-catnav__item.is-sale .so-catnav__icon { background: var(--so-sale-tint); color: var(--so-sale); }
.so-catnav__item.is-sale:hover .so-catnav__icon { background: #FAD9D9; }

.so-catnav__sub {
  display: none; position: absolute; top: 100%; left: 50%; transform: translateX(-50%); z-index: 50;
  width: max-content; min-width: 220px; max-width: 320px; max-height: 70vh; overflow-y: auto;
  list-style: none; margin: 0; padding: 8px; text-align: left;
  background: #FFFFFF; border: 1px solid var(--so-line); border-radius: 12px;
  box-shadow: 0 16px 32px rgba(12, 52, 84, .16);
}
.so-catnav__item:first-child .so-catnav__sub,
.so-catnav__item:nth-child(2) .so-catnav__sub { left: 0; transform: none; }
.so-catnav__item:nth-last-child(-n+2) .so-catnav__sub { left: auto; right: 0; transform: none; }
.so-catnav__item:hover > .so-catnav__sub,
.so-catnav__item:focus-within > .so-catnav__sub { display: block; }
.so-catnav__sub li { margin: 0; }
.so-redesign .so-catnav__sub a { display: block; padding: 8px 10px; border-radius: 8px; color: var(--so-ink); font-weight: 600; }
.so-redesign .so-catnav__sub a:hover { background: var(--so-tint); color: var(--so-link); }
.so-catnav__sub2 { list-style: none; margin: 0 0 4px; padding: 0 0 0 10px; }
.so-redesign .so-catnav__sub2 a { font-weight: 400; padding: 6px 10px; color: var(--so-body); }

/* Sticky state: keep only the blue bar */
.so-redesign .header-wrapper.stuck .so-util,
.so-redesign .header-wrapper.stuck .so-catnav { display: none; }
.so-redesign .header-wrapper.stuck { box-shadow: 0 4px 16px rgba(12, 52, 84, .18); }
.so-redesign .header-wrapper.stuck .so-header__inner { padding-top: 10px; padding-bottom: 10px; }

@media (max-width: 849px) {
  .so-util { display: none; }
  .so-header__inner { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; gap: 8px; padding: 8px 12px 12px; }
  .so-header__menu { display: flex; width: 44px; height: 44px; align-items: center; justify-content: center; }
  .so-logo { gap: 8px; min-height: 44px; }
  .so-logo__mark { width: 32px; height: 32px; }
  .so-logo__name { font-size: 20px; }
  .so-logo__tag { display: none; }
  .so-header__search { grid-column: 1 / -1; grid-row: 2; }
  .so-redesign .so-header__search input.search-field { height: 44px; }
  .so-redesign .so-header__search .ux-search-submit { height: 44px; min-height: 44px; width: 48px; }
  .so-header__actions { gap: 0; }
  .so-header__account { padding: 0; width: 44px; min-height: 44px; justify-content: center; }
  .so-header__account span,
  .so-header__cart-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .so-header__cart { border: 0; padding: 0 6px; min-height: 44px; min-width: 44px; justify-content: center; gap: 4px; }
  .so-catnav .so-wrap { padding: 0; }
  .so-catnav__list { overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; padding: 0 8px; font-size: 12px; }
  .so-catnav__list::-webkit-scrollbar { display: none; }
  .so-catnav__item { flex: 0 0 84px; }
  .so-redesign .so-catnav__link { padding: 10px 2px; }
  .so-catnav__sub { display: none !important; }
  .so-redesign .header-wrapper.stuck .so-header__search { display: none; }
}

/* ---------- 3. Buttons and forms ---------- */
.so-redesign .button,
.so-redesign button,
.so-redesign input[type="submit"],
.so-redesign input[type="button"] {
  border-radius: 10px; text-transform: none; letter-spacing: 0; font-weight: 700;
}
.so-redesign .button.primary,
.so-redesign .button.alt,
.so-redesign .button.checkout,
.so-redesign .checkout-button,
.so-redesign .single_add_to_cart_button,
.so-redesign input[type="submit"].primary { background-color: var(--so-blue); border-color: var(--so-blue); color: #FFFFFF; box-shadow: none; }
.so-redesign .button.is-outline { border-width: 1.5px; }
.so-redesign .button.primary.is-outline { background-color: transparent; color: var(--so-link); border-color: var(--so-blue); }
.so-redesign .button.primary.is-outline:hover { background-color: var(--so-blue); color: #FFFFFF; }

.so-redesign input[type="text"], .so-redesign input[type="email"], .so-redesign input[type="tel"],
.so-redesign input[type="password"], .so-redesign input[type="number"], .so-redesign input[type="search"],
.so-redesign input[type="url"], .so-redesign input[type="date"],
.so-redesign select, .so-redesign textarea {
  border: 1px solid var(--so-input); border-radius: 10px; box-shadow: none; color: var(--so-ink); font-size: 15px;
}
.so-redesign input[type="text"], .so-redesign input[type="email"], .so-redesign input[type="tel"],
.so-redesign input[type="password"], .so-redesign input[type="search"], .so-redesign input[type="url"],
.so-redesign select { height: 44px; }
.so-redesign input:focus, .so-redesign select:focus, .so-redesign textarea:focus {
  border-color: var(--so-blue); box-shadow: 0 0 0 3px rgba(26, 117, 186, .2); outline: 0;
}
.so-redesign label { color: var(--so-ink); font-weight: 600; }

/* ---------- 4. Section titles ---------- */
.so-redesign .section-title { margin-bottom: 16px; }
.so-redesign .section-title b { opacity: 0; }
.so-redesign .section-title-main { display: inline-block; border: 0; padding: 0; text-transform: none; font-size: 24px; font-weight: 800; letter-spacing: -0.02em; color: var(--so-ink); }
.so-redesign .section-title a { font-size: 14px; font-weight: 600; color: var(--so-link); }

/* ---------- 5. Product cards ---------- */
.so-redesign .product-small.col > .col-inner {
  height: 100%; background: #FFFFFF; border: 1px solid var(--so-line); border-radius: 14px; overflow: hidden;
  transition: border-color .15s, box-shadow .15s;
}
.so-redesign .product-small.col:hover > .col-inner { border-color: var(--so-tint-line); box-shadow: 0 8px 24px rgba(12, 52, 84, .1); }
.so-redesign .product-small .box-image { padding: 0; margin: 12px 12px 0; width: auto; border-radius: 8px; }
.so-redesign .has-equal-box-heights .product-small .box-image { padding-top: calc(100% - 24px); }
.so-redesign .product-small .box-image img { border-radius: 8px; }
.so-redesign .product-small .box-text { padding: 12px 14px 16px; text-align: left; }
.so-redesign .product-small .product-title { margin: 0 0 6px; }
.so-redesign .product-small .product-title a {
  color: var(--so-ink); font-size: 14px; font-weight: 600; line-height: 1.4;
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; min-height: 2.8em;
}
.so-redesign .product-small .product-title a:hover { color: var(--so-link); }
.so-redesign .product-small .category { color: var(--so-muted); font-size: 12px; text-transform: none; letter-spacing: 0; opacity: 1; }
.so-redesign .product-small .price-wrapper .price,
.so-redesign .product-small span.price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 8px; }
.so-redesign span.price ins { order: 1; text-decoration: none; }
.so-redesign span.price del { order: 2; opacity: 1; }
.so-redesign span.price .amount { color: var(--so-ink); font-weight: 800; }
.so-redesign .product-small span.price .amount { font-size: 17px; }
.so-redesign span.price ins .amount { color: var(--so-sale); }
.so-redesign span.price del .amount,
.so-redesign .product-small span.price del .amount { color: var(--so-muted); font-size: 13px; font-weight: 400; }

.so-redesign .badge-container { margin: 10px 0 0 10px; }
.so-redesign .badge-container .badge { height: auto; width: auto; display: block; }
.so-redesign .badge-container .badge-inner {
  display: block; padding: 3px 8px; border-radius: 999px; background-color: var(--so-sale-tint) !important;
  color: var(--so-sale); font-size: 12px; font-weight: 700; line-height: 1.4; box-shadow: none;
}

/* ---------- 6. Home page ---------- */
.so-redesign.home #content .row:has(> .col.large-9 .slider-wrapper) > .col.large-3 { display: none; }
.so-redesign.home #content .row:has(> .col.large-9 .slider-wrapper) > .col.large-9 { max-width: 100%; flex-basis: 100%; }
.so-redesign.home .slider-wrapper { border-radius: 16px; overflow: hidden; }
.so-redesign.home .slider-wrapper .slider { margin-bottom: 0; }

/* ---------- 7. Footer ---------- */
.so-redesign .footer-wrapper .footer-widgets.footer-2 { background-color: var(--so-navy) !important; color: #D6E4F0; padding-top: 48px; font-size: 14px; }
.so-redesign .footer-widgets .widget-title { display: block; color: #FFFFFF; font-size: 15px; font-weight: 700; text-transform: none; letter-spacing: 0; margin-bottom: 12px; }
.so-redesign .footer-widgets .is-divider { display: none; }
.so-redesign .footer-widgets a { color: #D6E4F0; }
.so-redesign .footer-widgets a:hover { color: #FFFFFF; }
.so-redesign .footer-widgets ul li { border: 0; }
.so-redesign .footer-widgets .button.primary { color: #FFFFFF; }
.so-redesign .absolute-footer { background-color: var(--so-navy) !important; color: #D6E4F0; border-top: 1px solid #1F4A6E; font-size: 13px; padding: 16px 0 8px; }
.so-redesign .absolute-footer a { color: #D6E4F0; }

.so-redesign .section-title-main::first-letter { text-transform: uppercase; }
.so-redesign .widget-title { font-family: var(--so-font); }
.so-redesign .price ins { order: 1; text-decoration: none; }
.so-redesign .price del { order: 2; opacity: 1; }
.so-redesign .price .amount { color: var(--so-ink); font-weight: 800; }
.so-redesign .price ins .amount { color: var(--so-sale); }
.so-redesign .price del .amount { color: var(--so-muted); font-weight: 400; }

/* ---------- 8. Shop and category ---------- */
.so-redesign .shop-page-title .page-title-inner { padding-top: 20px; padding-bottom: 12px; min-height: 0; }
.so-redesign .breadcrumbs { text-transform: none; font-size: 14px; font-weight: 400; letter-spacing: 0; color: var(--so-ink); }
.so-redesign .breadcrumbs a { color: var(--so-link); opacity: 1; font-weight: 400; }
.so-redesign .breadcrumbs .divider { opacity: 1; color: var(--so-muted); }
.so-redesign .woocommerce-result-count { color: var(--so-muted); font-size: 14px; }
.so-redesign .sidebar-inner .widget,
.so-redesign .widget-area .widget { background: #FFFFFF; border: 1px solid var(--so-line); border-radius: 14px; padding: 16px; margin-bottom: 16px; }
.so-redesign .sidebar-inner .widget-title,
.so-redesign .shop-sidebar .widget-title,
.so-redesign .widget-area .widget-title { display: block; font-size: 15px; font-weight: 800; color: var(--so-ink); text-transform: none; letter-spacing: 0; margin-bottom: 8px; }
.so-redesign .widget .is-divider { display: none; }
.so-redesign .widget ul li { border-color: var(--so-line); }
.so-redesign .widget .product-categories a { color: var(--so-ink); font-size: 14px; font-weight: 500; }
.so-redesign .widget .product-categories a:hover { color: var(--so-link); }
.so-redesign .widget .product-categories .current-cat > a { color: var(--so-link); font-weight: 700; }
.so-redesign .term-description { font-size: 14px; color: var(--so-body); }
.so-redesign .nav-pagination > li > a,
.so-redesign .nav-pagination > li > span { min-width: 40px; height: 40px; line-height: 38px; border: 1px solid var(--so-line); border-radius: 10px; background: #FFFFFF; color: var(--so-ink); font-size: 14px; font-weight: 600; }
.so-redesign .nav-pagination > li > .current,
.so-redesign .nav-pagination > li > a:hover { background: var(--so-blue); border-color: var(--so-blue); color: #FFFFFF; }

/* ---------- 9. Product page ---------- */
.so-redesign.single-product .product-main { background: #FFFFFF; border: 1px solid var(--so-line); border-radius: 16px; padding: 24px 24px 8px; }
.so-redesign .row-divided > .col + .col:not(.large-12) { border: 0; }
.so-redesign .product-info .product-title { font-size: 24px; line-height: 1.3; font-weight: 800; }
.so-redesign .product-info > .is-divider { display: none; }
.so-redesign .product-info .price-wrapper .price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; }
.so-redesign .product-info .price-wrapper .price .amount { font-size: 28px; }
.so-redesign .product-info .price-wrapper .price del .amount { font-size: 16px; }
.so-redesign .product-short-description { font-size: 14px; }
.so-redesign .single_add_to_cart_button { min-height: 48px; line-height: 46px; padding: 0 28px; font-size: 16px; }
.so-redesign form.cart .quantity .qty,
.so-redesign form.cart .quantity .button { height: 48px; min-height: 48px; }
.so-redesign .product_meta { font-size: 13px; color: var(--so-muted); }
.so-redesign .product-footer .woocommerce-tabs { background: #FFFFFF; border: 1px solid var(--so-line); border-radius: 16px; padding: 8px 24px 24px; margin-top: 24px; }
.so-redesign .product-tabs > li > a { text-transform: none; letter-spacing: 0; font-size: 16px; font-weight: 700; }
.so-redesign .product-section-title { text-transform: none; letter-spacing: 0; font-size: 22px; font-weight: 800; }
.so-redesign .product-section { border-top: 0; }

/* ---------- 10. Cart and checkout ---------- */
.so-redesign h1.entry-title,
.so-redesign .page-title h1,
.so-redesign .cart_totals thead th,
.so-redesign .shop_table thead th,
.so-redesign .checkout h3,
.so-redesign #order_review_heading { text-transform: none; letter-spacing: 0; }
.so-redesign .shop_table thead th { font-size: 13px; font-weight: 600; color: var(--so-muted); border-color: var(--so-line); }
.so-redesign .shop_table td,
.so-redesign .shop_table th { border-color: var(--so-line); }
.so-redesign .shop_table .amount { color: var(--so-ink); font-weight: 700; }
.so-redesign .shop_table .order-total .amount { color: var(--so-sale); font-size: 20px; font-weight: 800; }
.so-redesign .shop_table .product-name a { color: var(--so-ink); font-weight: 600; }
.so-redesign .woocommerce-cart-form,
.so-redesign .cart-sidebar,
.so-redesign .checkout-sidebar,
.so-redesign .woocommerce-checkout #customer_details { background: #FFFFFF; border: 1px solid var(--so-line); border-radius: 16px; padding: 20px; }
.so-redesign .cart_totals thead th { font-size: 18px; font-weight: 800; color: var(--so-ink); border: 0; }
.so-redesign .checkout-button,
.so-redesign #place_order { min-height: 52px; line-height: 50px; font-size: 16px; }
.so-redesign form.checkout .has-border { border: 0; padding: 0; }
.so-redesign .woocommerce-billing-fields { border-top: 0; padding-top: 0; }

/* ---------- 11. Pages and blog ---------- */
.so-redesign .page-right-sidebar .page-inner,
.so-redesign .page-left-sidebar .page-inner,
.so-redesign .blog-single .article-inner { background: #FFFFFF; border: 1px solid var(--so-line); border-radius: 16px; padding: 24px 28px; }
.so-redesign .col-divided { border: 0; }
.so-redesign .page-inner h1:not(.entry-title) { font-size: 20px; }
.so-redesign .post-item .col-inner { height: 100%; background: #FFFFFF; border: 1px solid var(--so-line); border-radius: 14px; overflow: hidden; }
.so-redesign .post-item .box-text { padding: 12px 14px 16px; }
.so-redesign .post-item .post-title { font-size: 15px; font-weight: 700; line-height: 1.4; color: var(--so-ink); }
.so-redesign .post-item .is-divider { display: none; }
.so-redesign .post-item .from_the_blog_excerpt { font-size: 13px; color: var(--so-muted); }

/* ---------- 12. Mobile menu ---------- */
.so-redesign .off-canvas .nav-vertical > li > a { text-transform: none; letter-spacing: 0; font-size: 15px; font-weight: 600; color: var(--so-ink); }

/* ---------- 13. Product: buy buttons, perks, description + specs ---------- */
.so-redesign form.cart:not(.variations_form):not(.grouped_form),
.so-redesign .woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; gap: 12px; align-items: stretch; }
.so-redesign form.cart .quantity { order: 1; margin: 0; }
.so-redesign form.cart .so-buy-now { order: 2; }
.so-redesign form.cart .single_add_to_cart_button { order: 3; }
.so-redesign form.cart .so-buy-now,
.so-redesign form.cart .single_add_to_cart_button { flex: 1 1 180px; margin: 0; min-height: 52px; line-height: 49px; padding: 0 20px; font-size: 16px; }
.so-redesign form.cart .so-buy-now { background-color: var(--so-blue); border: 1.5px solid var(--so-blue); color: #FFFFFF; }
.so-redesign form.cart .so-buy-now:hover { background-color: var(--so-link); border-color: var(--so-link); color: #FFFFFF; }
.so-redesign form.cart .single_add_to_cart_button { background-color: #FFFFFF; border: 1.5px solid var(--so-blue); color: var(--so-link); }
.so-redesign form.cart .single_add_to_cart_button:hover { background-color: var(--so-tint); color: var(--so-link); box-shadow: none; }
.so-redesign form.cart .quantity .qty,
.so-redesign form.cart .quantity .button { height: 52px; min-height: 52px; }

.so-perks { list-style: none; margin: 16px 0; padding: 16px 20px; background: var(--so-tint); border-radius: 12px; display: flex; flex-direction: column; gap: 10px; font-size: 14px; line-height: 1.45; color: var(--so-navy); }
.so-perks li { margin: 0; display: flex; gap: 10px; align-items: flex-start; }
.so-perks svg { flex: none; color: var(--so-blue); }
.so-redesign .so-perks a { color: var(--so-link); font-weight: 700; text-decoration: underline; }

.so-desc { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, 380px); gap: 32px; align-items: start; }
.so-desc__specs { background: #FFFFFF; border: 1px solid var(--so-line); border-radius: 14px; padding: 20px; }
.so-redesign .so-desc__specs-title { margin: 0 0 12px; font-size: 20px; font-weight: 800; }
.so-redesign .so-desc__specs table { width: 100% !important; margin: 0; border: 0; font-size: 14px; }
.so-redesign .so-desc__specs td,
.so-redesign .so-desc__specs th { border: 0; border-top: 1px solid var(--so-line); padding: 10px 0; vertical-align: top; text-align: left; text-transform: none; letter-spacing: 0; background: none; color: var(--so-ink); font-weight: 600; line-height: 1.45; }
.so-redesign .so-desc__specs tr > :first-child:not(:last-child) { width: 42%; padding-right: 12px; color: var(--so-muted); font-weight: 400; }
.so-redesign .so-desc__specs tr > :first-child:last-child { font-weight: 700; }
@media (max-width: 849px) {
  .so-desc { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .so-desc__specs { order: -1; }
}

/* ---------- 14. Checkout address fields ---------- */
.so-redesign #billing_country_field,
.so-redesign #shipping_country_field { display: none !important; }
.so-redesign .so-ward-select { width: 100%; margin: 0; }
.so-redesign .woocommerce-checkout .select2-container .select2-selection--single,
.so-redesign .woocommerce-address-fields .select2-container .select2-selection--single { height: 44px; border: 1px solid var(--so-input); border-radius: 10px; box-shadow: none; background-color: #FFFFFF; }
.so-redesign .woocommerce-checkout .select2-container .select2-selection__rendered,
.so-redesign .woocommerce-address-fields .select2-container .select2-selection__rendered { line-height: 42px; padding-left: 12px; color: var(--so-ink); font-size: 15px; }
.so-redesign .woocommerce-checkout .select2-container .select2-selection__arrow,
.so-redesign .woocommerce-address-fields .select2-container .select2-selection__arrow { height: 42px; }
.so-redesign .select2-dropdown { border-color: var(--so-input); border-radius: 10px; overflow: hidden; font-size: 14px; }
.so-redesign .select2-container--default .select2-results__option--highlighted[aria-selected],
.so-redesign .select2-container--default .select2-results__option--highlighted[data-selected] { background-color: var(--so-blue); color: #FFFFFF; }

/* ---------- 15. Product page without sidebar, sticky buy bar ---------- */
.so-redesign.single-product .product-main { background: transparent; border: 0; border-radius: 0; padding: 0; }
.so-redesign.single-product .product-main > .row { max-width: 1240px; background: #FFFFFF; border: 1px solid var(--so-line); border-radius: 16px; padding: 24px 9px 8px; }
.so-redesign .product-footer .woocommerce-tabs { max-width: 1240px; }
.so-redesign .product-footer .nav-tabs + .tab-panels { border: 0; border-top: 1px solid var(--so-line); padding: 24px 0 0; }
.so-redesign form.cart .single_add_to_cart_button { background-color: #FFFFFF !important; }
.so-redesign form.cart .single_add_to_cart_button:hover { background-color: var(--so-tint) !important; }
.so-redesign .so-perks li { margin: 0; }
.so-redesign .sticky-add-to-cart--active form.cart,
.so-redesign .sticky-add-to-cart--active .woocommerce-variation-add-to-cart { flex-wrap: nowrap; align-items: center; gap: 8px; margin: 0; }
.so-redesign .sticky-add-to-cart--active form.cart .so-buy-now,
.so-redesign .sticky-add-to-cart--active form.cart .single_add_to_cart_button { flex: 0 0 auto; min-height: 44px; line-height: 41px; padding: 0 18px; font-size: 15px; white-space: nowrap; }
.so-redesign .sticky-add-to-cart--active form.cart .quantity .qty,
.so-redesign .sticky-add-to-cart--active form.cart .quantity .button { height: 44px; min-height: 44px; }
@media (max-width: 849px) {
  .so-redesign.single-product .product-main > .row { width: auto; margin-left: 12px; margin-right: 12px; padding: 16px 0 8px; }
  .so-redesign .product-footer .woocommerce-tabs { width: auto; margin-left: 12px; margin-right: 12px; padding: 8px 16px 16px; }
  .so-desc__specs { padding: 16px; }
}
@media (max-width: 549px) {
  .so-redesign .sticky-add-to-cart--active form.cart { width: 100%; }
  .so-redesign .sticky-add-to-cart--active form.cart .quantity { display: none; }
  .so-redesign .sticky-add-to-cart--active form.cart .so-buy-now,
  .so-redesign .sticky-add-to-cart--active form.cart .single_add_to_cart_button { flex: 1 1 auto; padding: 0 10px; font-size: 14px; }
}
.so-redesign form.cart .single_add_to_cart_button.disabled ~ .so-buy-now { opacity: .5; pointer-events: none; }

/* ---------- 16. Coupons ---------- */
.so-coupons { margin: 0 0 16px; }
.so-coupons__label { display: block; margin: 0 0 8px; font-size: 13px; font-weight: 600; color: var(--so-muted); }
.so-coupons__list { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 8px; }
.so-coupons__list:empty { display: none; }
.so-coupon { display: flex; align-items: center; gap: 10px; min-width: 0; padding: 8px 8px 8px 12px; background: var(--so-tint); border: 1.5px dashed var(--so-blue); border-radius: 10px; }
.so-coupon__icon { flex: none; display: flex; color: var(--so-blue); }
.so-coupon__body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.so-coupon__code { font-size: 14px; font-weight: 800; line-height: 1.3; letter-spacing: .04em; color: var(--so-navy); overflow-wrap: anywhere; }
.so-coupon__desc { font-size: 12px; line-height: 1.4; color: var(--so-body); }
.so-coupon__exp { font-size: 12px; line-height: 1.4; color: var(--so-muted); }
.so-coupon__note { font-size: 12px; line-height: 1.4; font-weight: 600; color: var(--so-link); }
.so-redesign .so-coupon__btn { flex: none; min-height: 44px; margin: 0; padding: 0 12px; border: 1.5px solid var(--so-blue); border-radius: 8px; background: #FFFFFF; color: var(--so-link); font-size: 13px; font-weight: 700; line-height: 1.2; text-transform: none; box-shadow: none; cursor: pointer; }
.so-redesign .so-coupon__btn:hover { background: var(--so-blue); color: #FFFFFF; }
.so-redesign .so-coupon__btn.is-done { background: var(--so-ok-tint); border-color: var(--so-ok); color: var(--so-ok); }
.so-redesign .so-coupon__btn--fill { background: var(--so-blue); color: #FFFFFF; }
.so-redesign .so-coupon__btn--fill:hover { background: var(--so-link); border-color: var(--so-link); }
.so-redesign .so-coupon__btn--off,
.so-redesign .so-coupon__btn--off:hover { background: var(--so-line); border-color: var(--so-line); color: var(--so-muted); cursor: default; opacity: 1; }
.so-redesign .so-coupon__btn[data-so-apply][disabled] { opacity: .6; cursor: progress; }
.so-coupon__state { flex: none; padding: 4px 10px; border-radius: 999px; background: var(--so-ok-tint); color: var(--so-ok); font-size: 12px; font-weight: 700; white-space: nowrap; }
.so-coupon--applied { background: #FFFFFF; border-style: solid; border-color: var(--so-line); }
.so-coupon--locked { background: var(--so-ground); border-color: var(--so-input); }
.so-coupon--locked .so-coupon__icon { color: var(--so-muted); }
.so-coupon--locked .so-coupon__code { color: var(--so-body); }

/* Cart and checkout box */
.so-coupons--order { margin: 0 0 20px; }
.so-redesign .so-coupons--order .so-coupons__label { font-size: 14px; color: var(--so-ink); margin-bottom: 6px; }
.so-coupons__form { display: flex; gap: 8px; }
.so-redesign .so-coupons__input { flex: 1; min-width: 0; height: 48px; margin: 0; padding: 0 14px; }
.so-redesign .so-coupons__apply { flex: none; height: 48px; min-height: 48px; margin: 0; padding: 0 18px; border: 1.5px solid var(--so-blue); border-radius: 10px; background: #FFFFFF; color: var(--so-link); font-size: 15px; font-weight: 700; line-height: 1; text-transform: none; box-shadow: none; }
.so-redesign .so-coupons__apply:hover { background: var(--so-blue); color: #FFFFFF; }
.so-redesign .so-coupons__apply[disabled] { opacity: .6; cursor: progress; }
.so-coupons__msg { margin-top: 8px; font-size: 13px; line-height: 1.4; }
.so-coupons__msg:empty { display: none; }
.so-coupons__msg.is-error { color: var(--so-sale); }
.so-coupons__msg.is-ok { color: var(--so-ok); }
.so-coupons--order .so-coupons__list { grid-template-columns: minmax(0, 1fr); margin-top: 14px; }
.so-coupons__sub { font-size: 13px; font-weight: 600; color: var(--so-muted); }
.so-coupons--order .so-coupon { padding: 10px 10px 10px 14px; border-radius: 12px; }
.so-coupons--order .so-coupon__desc { font-size: 13px; }
.so-redesign .cart_totals { display: flex; flex-direction: column; }
.so-redesign .cart_totals > table:not(.shop_table) { order: -1; }

/* The theme's own coupon forms are replaced by the box above. */
.so-redesign .cart-sidebar form.ux-cart-coupon,
.so-redesign.woocommerce-checkout .woocommerce-form-coupon-toggle,
.so-redesign.woocommerce-checkout form.checkout_coupon { display: none !important; }

/* [smartones_coupons] section */
.so-coupons--home { max-width: 1240px; margin: 0 auto 32px; }
.so-redesign .so-coupons__title { margin: 0 0 16px; font-size: 24px; font-weight: 800; letter-spacing: -0.02em; }
.so-coupons--home .so-coupons__list { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 16px; }
.so-coupons--home .so-coupon { padding: 14px 14px 14px 16px; background: #FFFFFF; border-radius: 12px; }
.so-coupons--home .so-coupon__desc { font-size: 14px; }

/* ---------- 17. Order received (thank-you) ---------- */
.so-redesign.woocommerce-order-received .entry-header { display: none; }
.so-redesign .woocommerce-order.row { display: flex; flex-direction: column; flex-wrap: nowrap; gap: 16px; max-width: 1040px; margin-left: auto; margin-right: auto; }
.so-redesign .woocommerce-order.row > .col { width: 100%; max-width: 100%; flex-basis: auto; padding-bottom: 0; }
.so-redesign .woocommerce-order.row > .large-5 { order: -1; }

/* Confirmation card */
.so-redesign .woocommerce-order .is-well { display: flex; flex-wrap: wrap; gap: 16px 24px; align-items: center; padding: 24px 28px; background: #FFFFFF; border: 1px solid var(--so-line); border-radius: 16px; box-shadow: none; }
.so-redesign .woocommerce-thankyou-order-received { flex: 1 1 100%; display: flex; align-items: center; gap: 20px; margin: 0; font-size: 24px; line-height: 1.25; letter-spacing: -0.02em; color: var(--so-ink); }
.so-redesign .woocommerce-thankyou-order-received strong { font-weight: 800; }
.so-redesign .woocommerce-thankyou-order-received::before { content: ""; flex: none; width: 52px; height: 52px; margin: 8px; border-radius: 999px; box-shadow: 0 0 0 8px var(--so-tint); background: var(--so-blue) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 28px no-repeat; }
.so-redesign ul.woocommerce-order-overview { flex: 1 1 100%; display: flex; flex-wrap: wrap; gap: 8px 12px; list-style: none; margin: 0; padding: 0; }
.so-redesign ul.woocommerce-order-overview li { flex: 1 1 180px; display: flex; flex-direction: column; gap: 2px; margin: 0; padding: 10px 16px; border: 0; border-radius: 12px; background: var(--so-tint); color: var(--so-navy); font-size: 13px; line-height: 1.4; text-transform: none; }
.so-redesign ul.woocommerce-order-overview li strong { font-size: 16px; font-weight: 800; color: var(--so-navy); }
.so-redesign ul.woocommerce-order-overview li.total strong,
.so-redesign ul.woocommerce-order-overview li.total .amount { color: var(--so-sale); }

/* VietQR block: QR on the left, transfer details on the right, joined as one card */
.so-redesign .woocommerce-order.row > .large-7 { display: grid; grid-template-columns: 300px minmax(0, 1fr); align-items: stretch; }
.so-redesign .woocommerce-order.row > .large-7 > * { grid-column: 1 / -1; }
.so-redesign .woocommerce-order.row > .large-7 > .woocommerce-vietqr-qr-scan,
.so-redesign .woocommerce-order.row > .large-7 > .woocommerce-vietqr-bank-details { margin: 0; padding: 24px 28px; background: #FFFFFF; border: 1.5px solid var(--so-blue); text-align: left; }
.so-redesign .woocommerce-order.row > .large-7 > .woocommerce-vietqr-qr-scan { grid-column: 1; border-right: 0; border-radius: 16px 0 0 16px; text-align: center; padding-right: 12px; }
.so-redesign .woocommerce-order.row > .large-7 > .woocommerce-vietqr-bank-details { grid-column: 2; border-left: 0; border-radius: 0 16px 16px 0; }
.so-redesign .wc-vietqr-bank-details-heading { margin: 0 0 14px; font-size: 18px; line-height: 1.3; font-weight: 800; }
.so-redesign #qrcode img { display: block; width: 240px; max-width: 100%; height: auto; margin: 0 auto; border: 1px solid var(--so-line); border-radius: 12px; }
.so-redesign .woocommerce-vietqr-bank-details h4 { margin: 0 0 12px; padding: 10px 14px; border-radius: 10px; background: var(--so-sale-tint); font-size: 14px; line-height: 1.45; font-weight: 600; text-align: left; }
.so-redesign .woocommerce-vietqr-bank-details h4,
.so-redesign .woocommerce-vietqr-bank-details h4 * { color: #8E1B1B !important; }
.so-redesign .woocommerce-vietqr-bank-details table,
.so-redesign .woocommerce-vietqr-bank-details tbody { display: block; width: 100%; margin: 0; border: 0; }
.so-redesign .woocommerce-vietqr-bank-details tr { display: flex; align-items: center; gap: 12px; min-height: 52px; padding: 4px 0; box-sizing: border-box; border-top: 1px solid var(--so-line); background: none; }
.so-redesign .woocommerce-vietqr-bank-details tr:last-child { border-bottom: 1px solid var(--so-line); }
.so-redesign .woocommerce-vietqr-bank-details td { display: block; width: auto; padding: 0; border: 0; background: none; text-align: left !important; font-size: 15px; line-height: 1.4; }
.so-redesign .woocommerce-vietqr-bank-details td:first-child { flex: 0 0 34%; color: var(--so-muted); font-weight: 400; }
.so-redesign .woocommerce-vietqr-bank-details td.payment-instruction { flex: 1; min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 8px; color: var(--so-ink); font-weight: 700; }
.so-redesign .woocommerce-vietqr-bank-details td.payment-instruction span { color: inherit !important; }
.so-redesign .woocommerce-vietqr-bank-details tr.so-row-amount td.payment-instruction { font-size: 20px; font-weight: 800; color: var(--so-sale); }
.so-redesign .so-copy-inline { flex: none; min-height: 40px; margin: 0; padding: 0 12px; border: 0; border-radius: 8px; background: transparent; color: var(--so-link); font-size: 13px; font-weight: 700; line-height: 1.2; text-transform: none; box-shadow: none; cursor: pointer; }
.so-redesign .so-copy-inline:hover { background: var(--so-tint); }
.so-redesign .so-copy-inline.is-done { color: var(--so-ok); }
.so-qr-steps { margin: 16px 0 0; padding-left: 20px; font-size: 14px; line-height: 1.5; color: var(--so-body); }
.so-qr-steps li { margin: 0 0 4px; }
.so-qr-note { margin: 12px 0 0; padding: 12px 16px; border-radius: 12px; background: var(--so-tint); color: var(--so-navy); font-size: 14px; line-height: 1.45; }

/* Order details and actions */
.so-redesign .woocommerce-order .woocommerce-order-details,
.so-redesign .woocommerce-order .woocommerce-customer-details { margin: 16px 0 0; padding: 24px 28px; background: #FFFFFF; border: 1px solid var(--so-line); border-radius: 16px; }
.so-redesign .woocommerce-order-details__title,
.so-redesign .woocommerce-column__title { margin: 0 0 8px; font-size: 20px; font-weight: 800; text-transform: none; letter-spacing: 0; }
.so-redesign .woocommerce-order-details table { margin: 0; }
.so-thanks-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 16px 0 0; }
.so-redesign .so-thanks-actions a { flex: 1 1 200px; display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 0 20px; box-sizing: border-box; border: 1.5px solid var(--so-blue); border-radius: 10px; background: #FFFFFF; color: var(--so-link); font-size: 16px; font-weight: 700; }
.so-redesign .so-thanks-actions a.is-primary { background: var(--so-blue); color: #FFFFFF; }
.so-redesign .so-thanks-actions a:hover { opacity: .9; }

@media (max-width: 849px) {
  .so-redesign .woocommerce-order.row > .large-7 { grid-template-columns: minmax(0, 1fr); }
  .so-redesign .woocommerce-order.row > .large-7 > .woocommerce-vietqr-qr-scan,
  .so-redesign .woocommerce-order.row > .large-7 > .woocommerce-vietqr-bank-details { grid-column: 1; padding: 20px 16px; }
  .so-redesign .woocommerce-order.row > .large-7 > .woocommerce-vietqr-qr-scan { border: 1.5px solid var(--so-blue); border-bottom: 0; border-radius: 16px 16px 0 0; }
  .so-redesign .woocommerce-order.row > .large-7 > .woocommerce-vietqr-bank-details { border: 1.5px solid var(--so-blue); border-top: 0; border-radius: 0 0 16px 16px; }
  .so-redesign .woocommerce-order .is-well,
  .so-redesign .woocommerce-order .woocommerce-order-details,
  .so-redesign .woocommerce-order .woocommerce-customer-details { padding: 20px 16px; }
  .so-redesign .woocommerce-thankyou-order-received { font-size: 20px; gap: 14px; }
  .so-redesign .woocommerce-thankyou-order-received::before { width: 40px; height: 40px; background-size: 22px; box-shadow: 0 0 0 6px var(--so-tint); }
}

/* Notice shown after "Thêm vào giỏ hàng" */
.so-redesign .woocommerce-message.message-wrapper { margin: 0; padding: 12px 0; }
.so-redesign .woocommerce-message .message-container { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; padding: 12px 16px; border: 1px solid #BFE3C9; border-radius: 12px; background: var(--so-ok-tint); color: var(--so-ok); font-size: 15px; font-weight: 600; text-align: left; }
.so-redesign .woocommerce-message .message-container .button { order: 2; margin: 0 0 0 auto; min-height: 40px; padding: 0 14px; border: 1.5px solid var(--so-ok); border-radius: 8px; background: #FFFFFF; color: var(--so-ok); font-size: 14px; line-height: 37px; }
.so-redesign .woocommerce-vietqr-bank-details .wc-vietqr-bank-details-heading { text-align: left !important; }
.so-redesign .woocommerce-vietqr-bank-details tr { background: none !important; }
.so-redesign .woocommerce-vietqr-bank-details td:first-child * { color: var(--so-muted) !important; font-weight: 400; }
.so-redesign .woocommerce-message.message-wrapper { margin: 12px 0 !important; padding: 0 !important; }
.so-redesign .woocommerce-message .message-container { box-sizing: border-box; max-width: 1240px; margin-left: auto; margin-right: auto; }
.so-redesign .woocommerce-message .message-container a.button.wc-forward { display: inline-flex !important; align-items: center; line-height: 1.2; text-transform: none; font-weight: 700; box-shadow: none; }
.so-redesign .woocommerce-message .message-container a.button.wc-forward:hover { background: var(--so-ok); color: #FFFFFF; }
.so-redesign .woocommerce-order.row > .large-7 > p:not(:empty) { margin: 0; padding: 12px 16px; border-radius: 12px; background: var(--so-tint); color: var(--so-navy); font-size: 14px; line-height: 1.45; }
.so-redesign .woocommerce-order address { font-style: normal; line-height: 1.6; color: var(--so-body); }
