/* WordPress and WooCommerce integration layer. */

body.admin-bar .site-header { top: 0; }
.logo-link .custom-logo, .footer-brand .custom-logo { height: auto; object-fit: contain; }
.header-cart-link, .header-favourites-link { position: relative; }
.header-actions .header-action-icon { position: relative; display: grid; place-items: center; font-size: 1.45rem; line-height: 1; }
.header-actions .jojo-cart-count, .header-actions .jojo-favourites-count { position: absolute; top: -7px; right: -10px; min-width: 18px; height: 18px; display: grid; place-items: center; padding: 0 4px; border: 2px solid #fff; border-radius: 999px; background: var(--blue); color: #fff; font-size: .55rem !important; font-weight: 900; line-height: 1 !important; box-sizing: border-box; }
.header-actions .jojo-favourites-count { background: var(--red); }
.header-actions .jojo-favourites-count[hidden] { display: none; }

.static-navbar .menu-item { position: relative; list-style: none; }
.static-navbar .sub-menu { position: absolute; z-index: 80; top: 100%; left: 0; min-width: 210px; display: none; margin: 0; padding: 10px; border: 1px solid var(--line); border-radius: 12px; background: #fff; box-shadow: var(--shadow); list-style: none; }
.static-navbar .menu-item:hover > .sub-menu, .static-navbar .menu-item:focus-within > .sub-menu { display: block; }
.static-navbar .sub-menu a { display: block; padding: 9px 10px; border-radius: 7px; color: var(--navy); font-size: .72rem; font-weight: 700; }
.static-navbar .sub-menu a:hover { background: #edf5ff; color: var(--blue); }

.service-strip-v2 > div > span:not(.fact-icon), .product-service-strip > div > span { font-size: 1.05rem; font-weight: 900; }
.filter-summary { justify-content: space-between; border-top: 1px solid var(--line); }
.filter-summary > span { color: var(--navy); font-size: .76rem; }
.filter-summary .view-switcher { display: inline-flex; margin-left: auto; overflow: hidden; border: 1px solid var(--line); border-radius: 9px; }
.filter-summary .view-switcher button { width: 36px; height: 34px; border: 0; border-right: 1px solid var(--line); background: #fff; color: var(--muted); }
.filter-summary .view-switcher button:last-child { border-right: 0; }
.filter-summary .view-switcher button.active { background: var(--blue); color: #fff; }
.filter-submit { min-height: 38px; padding: 8px 16px; }
.clear-filters { color: var(--blue); font-size: .68rem; font-weight: 800; }
.jojo-product-filters select { max-width: 155px; cursor: pointer; }

/* The Jojo theme owns WooCommerce controls; WooCommerce keeps layout only. */
body.jojo-woocommerce-page {
  --wc-form-border-color: #d7e0eb;
  --wc-form-border-radius: 8px;
  --wc-form-border-width: 1px;
  --wc-form-color-background: #fff;
  --wc-form-color-text: var(--navy-deep);
}
body.jojo-woocommerce-page #contenu a.button,
body.jojo-woocommerce-page #contenu button.button,
body.jojo-woocommerce-page #contenu input.button,
body.jojo-woocommerce-page #contenu #respond input#submit,
body.jojo-woocommerce-page #contenu .wc-block-components-button:not(.is-link) {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 10px 18px;
  border: 1px solid transparent;
  border-radius: 8px;
  appearance: none;
  background: var(--blue);
  background-image: none;
  color: #fff;
  font: inherit;
  font-size: .75rem;
  font-weight: 850;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  text-shadow: none;
  box-shadow: none;
  vertical-align: middle;
}
body.jojo-woocommerce-page #contenu .button.button--outline {
  border-color: var(--blue);
  background: #fff;
  color: var(--blue);
}
body.jojo-woocommerce-page #contenu .button.button--yellow {
  border-color: var(--yellow);
  background: var(--yellow);
  color: var(--navy);
}
body.jojo-woocommerce-page #contenu a.button:hover,
body.jojo-woocommerce-page #contenu button.button:hover,
body.jojo-woocommerce-page #contenu input.button:hover,
body.jojo-woocommerce-page #contenu #respond input#submit:hover,
body.jojo-woocommerce-page #contenu .wc-block-components-button:not(.is-link):hover {
  border-color: transparent;
  background: var(--navy);
  color: #fff;
  text-decoration: none;
  box-shadow: 0 9px 20px rgba(2, 34, 102, .15);
}
body.jojo-woocommerce-page #contenu .button.button--outline:hover { border-color: var(--blue); background: var(--blue); color: #fff; }
body.jojo-woocommerce-page #contenu .button.button--yellow:hover { border-color: var(--yellow); background: #ffd75e; color: var(--navy); }
body.jojo-woocommerce-page #contenu a.button:focus-visible,
body.jojo-woocommerce-page #contenu button.button:focus-visible,
body.jojo-woocommerce-page #contenu input.button:focus-visible,
body.jojo-woocommerce-page #contenu .wc-block-components-button:not(.is-link):focus-visible {
  outline: 3px solid rgba(10, 75, 216, .35);
  outline-offset: 3px;
  box-shadow: none;
}
body.jojo-woocommerce-page #contenu .button.disabled,
body.jojo-woocommerce-page #contenu .button:disabled,
body.jojo-woocommerce-page #contenu .button:disabled[disabled] {
  padding: 10px 18px;
  opacity: .5;
  cursor: not-allowed;
}
body.jojo-woocommerce-page #contenu .button.loading {
  padding-right: 18px;
  opacity: .65;
  cursor: progress;
  pointer-events: none;
}
body.jojo-woocommerce-page #contenu form .form-row { padding: 0; margin: 0 0 12px; }
body.jojo-woocommerce-page #contenu form .form-row label { line-height: 1.35; }
body.jojo-woocommerce-page #contenu input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]):not([type="file"]):not(.button):not(.qty),
body.jojo-woocommerce-page #contenu textarea,
body.jojo-woocommerce-page #contenu select {
  width: 100%;
  min-height: 43px;
  margin: 0;
  padding: 9px 11px;
  border: 1px solid #d7e0eb;
  border-radius: 8px;
  appearance: auto;
  outline: 0;
  background: #fff;
  background-image: none;
  color: var(--navy-deep);
  font: inherit;
  font-size: .8rem;
  font-weight: 500;
  line-height: 1.4;
  text-indent: 0;
  text-shadow: none;
  box-shadow: none;
  transition: border-color .2s, box-shadow .2s;
}
body.jojo-woocommerce-page #contenu textarea { min-height: 110px; resize: vertical; }
body.jojo-woocommerce-page #contenu input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]):not([type="file"]):not(.button):not(.qty):focus,
body.jojo-woocommerce-page #contenu textarea:focus,
body.jojo-woocommerce-page #contenu select:focus {
  border-color: var(--blue);
  box-shadow: 0 0 0 3px rgba(10, 75, 216, .11);
}
body.jojo-woocommerce-page #contenu .jojo-product-filters select {
  width: auto;
  max-width: 155px;
  min-height: 37px;
  height: 37px;
  padding: 0 4px;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--navy);
  font-size: .68rem;
  font-weight: 700;
  box-shadow: none;
}
body.jojo-woocommerce-page #contenu .jojo-product-filters .filter-submit { min-height: 38px; padding: 8px 16px; }
body.jojo-woocommerce-page #contenu .woocommerce-message .button,
body.jojo-woocommerce-page #contenu .woocommerce-info .button { min-height: 32px; padding: 6px 12px; }
body.jojo-woocommerce-page #contenu .select2-container .select2-selection--single {
  min-height: 43px;
  padding: 9px 34px 9px 11px;
  border: 1px solid #d7e0eb;
  border-radius: 8px;
  background: #fff;
  color: var(--navy-deep);
  box-shadow: none;
}
body.jojo-woocommerce-page #contenu .select2-container .select2-selection--single .select2-selection__rendered {
  padding: 0;
  color: inherit;
  font: inherit;
  line-height: 23px;
}

.woocommerce .woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-message, .woocommerce-info, .woocommerce-error { margin: 0 0 20px !important; padding: 15px 18px 15px 48px !important; border: 1px solid #d8e6f8 !important; border-top: 0 !important; border-radius: 11px; background: #f0f6ff !important; color: var(--navy) !important; font-size: .78rem; line-height: 1.5; }
.woocommerce-message::before, .woocommerce-info::before { color: var(--blue) !important; top: 15px !important; }
.woocommerce-error { border-color: #f2d0d4 !important; background: #fff4f5 !important; }
.woocommerce-error::before { color: #c81d36 !important; top: 15px !important; }
.woocommerce-message .button, .woocommerce-info .button { min-height: 32px; padding: 6px 12px; }

.woocommerce nav.woocommerce-pagination { margin: 34px 0 12px; }
.woocommerce nav.woocommerce-pagination ul { display: flex; justify-content: center; gap: 8px; margin: 0; border: 0; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; }
.woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span { min-width: 38px; height: 38px; display: grid; place-items: center; padding: 0; border: 1px solid var(--line); border-radius: 9px; background: #fff; color: var(--navy); font-weight: 800; }
.woocommerce nav.woocommerce-pagination ul li span.current { border-color: var(--blue); background: var(--blue); color: #fff; }

.product-card .price .woocommerce-Price-amount { color: inherit; }
.product-card .price ins { text-decoration: none; }
.product-card .price del { opacity: .55; }
.product-card .onsale { display: none; }

/* Single product native WooCommerce forms */
.purchase-info .woocommerce-product-details__short-description { margin: 16px 0; color: #65758b; font-size: .76rem; line-height: 1.6; }
.purchase-info .woocommerce-product-details__short-description p { margin: 0; }
.jojo-add-to-cart { margin-top: 18px; }
.jojo-add-to-cart form.cart { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 !important; }
.jojo-add-to-cart form.cart .quantity { flex: 0 0 92px; margin: 0 !important; }
.jojo-add-to-cart .quantity .qty { width: 100%; height: 46px; padding: 8px; border: 1px solid #d7e0eb; border-radius: 9px; color: var(--navy); font-weight: 850; text-align: center; }
.jojo-add-to-cart .single_add_to_cart_button { flex: 1 1 230px; min-height: 46px; border: 0 !important; border-radius: 9px !important; background: var(--blue) !important; color: #fff !important; font-size: .78rem !important; font-weight: 850 !important; }
.jojo-add-to-cart .single_add_to_cart_button:hover { background: var(--navy) !important; }
.jojo-add-to-cart .variations { flex: 1 0 100%; margin: 0 0 10px !important; }
.jojo-add-to-cart .variations th, .jojo-add-to-cart .variations td { display: block; padding: 5px 0 !important; border: 0; text-align: left; }
.jojo-add-to-cart .variations label { color: var(--navy); font-size: .75rem; }
.jojo-add-to-cart .variations select { width: 100%; min-height: 43px; padding: 8px 12px; border: 1px solid #d7e0eb; border-radius: 9px; background: #fff; color: var(--navy); }
.jojo-add-to-cart .reset_variations { display: inline-block; margin-top: 6px; color: var(--blue); font-size: .67rem; }
.jojo-add-to-cart .woocommerce-variation { flex: 1 0 100%; }
.jojo-add-to-cart .woocommerce-variation-price { margin-bottom: 10px; color: var(--blue); font-weight: 900; }
.jojo-whatsapp-order { min-height: 46px !important; margin-top: 8px !important; }
.jojo-whatsapp-order .button-icon { width: 18px; height: 18px; display: inline-grid; place-items: center; color: var(--blue); }
.jojo-whatsapp-order .button-icon svg { width: 100%; height: 100%; fill: currentColor; }
.jojo-whatsapp-order:hover .button-icon, .jojo-whatsapp-order:focus-visible .button-icon { color: #fff; }
.product-description-content, .product-delivery-note, .product-reviews { margin-top: 18px; padding: 28px; border: 1px solid #e3e9f1; border-radius: 14px; background: #fff; }
.product-description-content h2, .product-delivery-note h2, .product-reviews h2 { margin: 0 0 13px; color: var(--navy-deep); font-size: 1.25rem; }
.product-description-content, .product-delivery-note { color: #63748a; font-size: .78rem; line-height: 1.7; }
.product-delivery-note .button { margin-top: 8px; }
.product-reviews .commentlist { padding: 0 !important; }
.product-reviews .comment_container { display: grid; grid-template-columns: 54px 1fr; gap: 13px; }
.product-reviews .avatar { position: static !important; width: 48px !important; border-radius: 50%; }
.product-reviews .comment-text { margin: 0 !important; border-color: var(--line) !important; border-radius: 10px !important; }
.product-reviews .comment-respond label { display: block; color: var(--navy); font-size: .72rem; font-weight: 800; }
.product-reviews .comment-respond input:not([type="checkbox"]), .product-reviews .comment-respond textarea { width: 100%; padding: 11px; border: 1px solid var(--line); border-radius: 9px; }

/* Cart, checkout and account */
.woocommerce-page-content { min-height: 260px; }
.woocommerce-system-page .woocommerce { color: var(--navy); }
.woocommerce-system-page .woocommerce a { color: var(--blue); }
.woocommerce-system-page .woocommerce button.button, .woocommerce-system-page .woocommerce a.button, .woocommerce-system-page .woocommerce input.button, .woocommerce-system-page .woocommerce #respond input#submit { min-height: 42px; display: inline-flex !important; align-items: center; justify-content: center; padding: 10px 18px !important; border-radius: 8px !important; background: var(--blue) !important; color: #fff !important; font-size: .75rem !important; font-weight: 850 !important; line-height: 1.2 !important; text-align: center; vertical-align: middle; }
.woocommerce-system-page .woocommerce .wc-backward, .woocommerce-system-page .woocommerce .wc-forward { display: inline-flex !important; align-items: center; justify-content: center; line-height: 1.2 !important; text-align: center; }
.woocommerce-system-page .woocommerce button.button.alt, .woocommerce-system-page .woocommerce a.button.alt { background: var(--blue) !important; }
.woocommerce-system-page .woocommerce button.button:hover, .woocommerce-system-page .woocommerce a.button:hover { background: var(--navy) !important; }
.woocommerce table.shop_table { overflow: hidden; border: 1px solid #e1e8f1 !important; border-collapse: separate !important; border-radius: 15px !important; background: #fff; box-shadow: 0 10px 30px rgba(2, 34, 102, .045); }
.woocommerce table.shop_table th { padding: 15px 13px !important; background: #f3f7fc; color: var(--navy-deep); font-size: .72rem; }
.woocommerce table.shop_table td { padding: 14px 13px !important; border-top-color: #e8edf4 !important; color: #627187; font-size: .75rem; }
.woocommerce table.shop_table .product-thumbnail img { width: 90px !important; height: 76px; border-radius: 9px; object-fit: contain; }
.woocommerce table.shop_table .product-name a { color: var(--navy-deep); font-weight: 800; }
.woocommerce table.shop_table .quantity .qty { width: 65px; padding: 8px 4px; border: 1px solid var(--line); border-radius: 7px; }
.woocommerce a.remove { display: grid; place-items: center; color: #c53243 !important; }
.woocommerce a.remove:hover { background: #c53243 !important; color: #fff !important; }
.woocommerce-cart table.cart td.actions .coupon .input-text { width: 180px !important; min-height: 42px; padding: 9px 12px !important; border: 1px solid var(--line) !important; border-radius: 8px; }
.woocommerce .cart-collaterals { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, .42fr); gap: 24px; }
.woocommerce .cart-collaterals::before, .woocommerce .cart-collaterals::after { display: none; }
.woocommerce .cart-collaterals .cross-sells { width: auto; }
.woocommerce .cart-collaterals .cart_totals { width: auto; padding: 24px; border: 1px solid #e1e8f1; border-radius: 15px; background: #fff; box-shadow: 0 10px 30px rgba(2, 34, 102, .045); }
.woocommerce .cart-collaterals .cart_totals h2 { margin-bottom: 16px; color: var(--navy-deep); font-size: 1.25rem; }

.woocommerce form.checkout { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(340px, .8fr); gap: 26px; }
.woocommerce form.checkout .col2-set { grid-column: 1; }
.woocommerce form.checkout .col2-set .col-1, .woocommerce form.checkout .col2-set .col-2 { float: none; width: 100%; padding: 24px; border: 1px solid #e1e8f1; border-radius: 15px; background: #fff; box-shadow: 0 10px 30px rgba(2, 34, 102, .045); }
.woocommerce form.checkout .col2-set .col-2 { margin-top: 20px; }
.woocommerce form.checkout #order_review_heading { grid-column: 2; grid-row: 1; margin: 0 0 -65px; padding: 24px; color: var(--navy-deep); font-size: 1.25rem; }
.woocommerce form.checkout #order_review { grid-column: 2; grid-row: 1 / span 2; padding: 65px 24px 24px; border: 1px solid #e1e8f1; border-radius: 15px; background: #fff; box-shadow: 0 10px 30px rgba(2, 34, 102, .045); }
.woocommerce form .form-row { margin-bottom: 12px; }
.woocommerce form .form-row label { color: var(--navy); font-size: .72rem; font-weight: 800; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select, .woocommerce .select2-container .select2-selection--single { min-height: 43px; padding: 9px 11px; border: 1px solid #d7e0eb; border-radius: 8px; background: #fff; color: var(--navy-deep); font-size: .8rem; }
.woocommerce form .form-row textarea#order_comments { width: 100%; min-height: 110px; height: 110px; padding: 11px; border: 1px solid #d7e0eb; border-radius: 8px; outline: 0; background: #fff; color: var(--navy-deep); font: inherit; font-size: .8rem; line-height: 1.5; resize: vertical; box-shadow: none; }
.woocommerce form .form-row textarea#order_comments:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(10, 75, 216, .11); }
.woocommerce .select2-container .select2-selection--single .select2-selection__rendered { line-height: 23px; }
.woocommerce-checkout #payment { background: #f1f6fd !important; }
.woocommerce-checkout #payment div.payment_box { background: #fff !important; color: #64748a !important; }

.woocommerce-account .woocommerce { display: grid; grid-template-columns: 250px 1fr; gap: 24px; }
.woocommerce-account .woocommerce::before, .woocommerce-account .woocommerce::after { display: none; }
.woocommerce-account .woocommerce-MyAccount-navigation { float: none; width: auto; }
.woocommerce-account .woocommerce-MyAccount-navigation ul { margin: 0; padding: 10px; border: 1px solid #e1e8f1; border-radius: 14px; background: #fff; list-style: none; }
.woocommerce-account .woocommerce-MyAccount-navigation a { display: block; padding: 11px 12px; border-radius: 8px; color: var(--navy) !important; font-size: .75rem; font-weight: 800; }
.woocommerce-account .woocommerce-MyAccount-navigation .is-active a, .woocommerce-account .woocommerce-MyAccount-navigation a:hover { background: #eaf3ff; color: var(--blue) !important; }
.woocommerce-account .woocommerce-MyAccount-content { float: none; width: auto; min-width: 0; padding: 25px; border: 1px solid #e1e8f1; border-radius: 14px; background: #fff; }
.woocommerce-account .u-columns { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.woocommerce-account .u-column1, .woocommerce-account .u-column2 { float: none !important; width: auto !important; padding: 25px; border: 1px solid #e1e8f1; border-radius: 14px; background: #fff; }

.jojo-form-notice { margin: -8px 0 22px; padding: 13px 16px; border-radius: 10px; font-size: .76rem; }
.jojo-form-notice.is-success { background: #ecf9f0; color: #14783a; }
.jojo-form-notice.is-error { background: #fff0f2; color: #a92336; }
.page-custom-content { max-width: none; margin-top: 24px; }
.jojo-empty-favourites { padding: 34px; border: 1px solid #dce6f3; border-radius: 14px; background: #f6f9fd; text-align: center; }
.jojo-empty-favourites p { margin-bottom: 18px; color: var(--muted); }

/* Editorial content */
.post-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.post-card { overflow: hidden; }
.post-card > a img { width: 100%; height: 260px; object-fit: cover; }
.post-card > div { padding: 25px; }
.post-card time { color: var(--blue); font-size: .65rem; font-weight: 850; text-transform: uppercase; }
.post-card h2 { margin: 9px 0; font-size: 1.25rem; }
.post-card h2 a { color: var(--navy-deep); }
.post-card p { color: #64748a; font-size: .76rem; line-height: 1.6; }
.article-content { font-size: .9rem; }
.article-content .article-hero { width: calc(100% + 96px); max-width: none; margin: -42px -48px 35px; }
.comments-area { max-width: 880px; margin: 24px auto 0; padding: 30px; }

@media (max-width: 991.98px) {
  .static-navbar .sub-menu { position: static; display: block; padding: 0 0 0 12px; border: 0; box-shadow: none; }
  .woocommerce form.checkout { grid-template-columns: 1fr; }
  .woocommerce form.checkout #order_review_heading, .woocommerce form.checkout #order_review { grid-column: 1; grid-row: auto; }
  .woocommerce form.checkout #order_review_heading { margin: 0 0 -65px; }
  .woocommerce .cart-collaterals { grid-template-columns: 1fr; }
  .woocommerce-account .woocommerce { grid-template-columns: 1fr; }
}

@media (max-width: 767.98px) {
  body.admin-bar .static-navbar { top: 100%; }
  .jojo-product-filters select { max-width: none; width: 100%; }
  .filter-submit, .clear-filters { width: 100%; text-align: center; }
  .filter-summary { display: grid; grid-template-columns: 1fr auto; }
  .filter-summary .sort-control { grid-column: 1 / -1; }
  .woocommerce table.shop_table_responsive tr td { padding: 11px 13px !important; }
  .woocommerce-cart table.cart td.actions .coupon { display: grid; grid-template-columns: 1fr; gap: 8px; }
  .woocommerce-cart table.cart td.actions .coupon .input-text { width: 100% !important; }
  .woocommerce-account .u-columns { grid-template-columns: 1fr; }
  .post-grid { grid-template-columns: 1fr; }
  .article-content .article-hero { width: calc(100% + 44px); margin: -28px -22px 25px; }
}

@media (max-width: 479.98px) {
  .filter-summary { grid-template-columns: 1fr; }
  .filter-summary .view-switcher { margin-left: 0; }
  .checkout-product { grid-template-columns: 58px 1fr; }
  .jojo-add-to-cart form.cart { display: grid; grid-template-columns: 92px 1fr; }
}
