/*
Theme Name: GeneratePress Child
Template: generatepress
Description: Child theme for GeneratePress - OA custom header
Version: 1.0.0
*/
@import url('https://fonts.googleapis.com/css2?family=Catamaran:wght@400;500;600;700&family=Kalam:wght@400;700&display=swap');

/* =====================================================
   OA 3-ROW HEADER
   ===================================================== */
.site-header { padding: 0 !important; background: transparent !important; }
.site-header .inside-header, .site-header .site-logo, #site-navigation { display: none !important; }
.oa-header-container { max-width: 1200px; margin: 0 auto; padding: 0 20px; display: flex; align-items: center; }

/* ROW 1 - Blue */
.oa-header-row-1 { background: #2E89CE; padding: 20px 0; width: 100%; }
.oa-header-logo { flex-shrink: 0; margin-right: 10px; }
.oa-header-logo img { max-height: 100px; width: auto; }
.oa-header-search { flex: 1; max-width: 500px; margin: 0 10px; }
.oa-header-search form { display: flex; align-items: center; background: #fff; border-radius: 8px; overflow: hidden; border: 2px solid rgba(255,255,255,0.5); }
.oa-search-cat { border: none; border-right: 1px solid #ddd; padding: 8px 10px; background: #f5f5f5; font-size: 13px; height: 44px; outline: none; }
.oa-header-search input[type=search] { flex: 1; border: none; padding: 8px 12px; font-size: 14px; outline: none; height: 44px; background: #fff !important; }
.oa-header-search button { background: #2E89CE; border: none; color: #fff; padding: 0 16px; height: 44px; border-radius: 0 8px 8px 0; cursor: pointer; display: flex; align-items: center; }
.oa-header-icons { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.oa-icon { color: #333; position: relative; display: flex; align-items: center; text-decoration: none; }
.oa-cart-count { position: absolute; top: -8px; right: -8px; background: #f5a623; color: #fff; font-size: 10px; font-weight: 700; width: 18px; height: 18px; border-radius: 50%; display: flex; align-items: center; justify-content: center; }

/* ROW 2 - White Nav */
.oa-header-row-2 { background: #FFFFFF; border-bottom: none; width: 100%; }
.oa-header-row-2 .oa-header-container { justify-content: space-between; max-width: 960px; }
.oa-cta-button { display: flex; align-items: center; gap: 6px; background: #f5a623; color: #fff !important; padding: 8px 16px; border-radius: 4px; font-size: 13px; font-weight: 600; text-decoration: none; white-space: nowrap; flex-shrink: 0; margin-left: 8px; }
.oa-cta-button:hover { background: #e09000; }

/* ROW 3 - Light Blue */
.oa-header-row-3 { background: #d0e8f5; padding: 5px 0; width: 100%; }
.oa-header-row-3 .oa-header-container { justify-content: space-between; max-width: 1200px; }
.oa-newsletter-text { color: #333; font-size: 12px; }
.oa-header-utilities { display: flex; align-items: center; gap: 8px; font-size: 12px; }

/* Hide GP header elements that bleed through */
.main-navigation, .nav-container, #masthead .inside-header { display: none !important; }

/* Mobile */
.oa-hamburger { display: none; }

@media (max-width: 768px) {
  .oa-hamburger {
    display: flex; flex-direction: column; justify-content: center;
    align-items: center; gap: 5px; width: 40px; height: 40px;
    background: transparent; border: 2px solid rgba(255,255,255,0.7);
    border-radius: 6px; cursor: pointer; margin-left: 12px; padding: 0; flex-shrink: 0;
  }
  .oa-hamburger span {
    display: block; width: 20px; height: 2px; background: #fff;
    border-radius: 2px; transition: all 0.25s ease; transform-origin: center;
  }
  body.oa-menu-open .oa-hamburger span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  body.oa-menu-open .oa-hamburger span:nth-child(2) { opacity: 0; }
  body.oa-menu-open .oa-hamburger span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
  .oa-header-row-2, .oa-header-row-3 { display: none; }
  body.oa-menu-open .oa-header-row-2 {
    display: block; width: 100%;
    border-top: 1px solid rgba(255,255,255,0.2);
  }
  body.oa-menu-open .oa-header-row-2 .oa-header-container {
    flex-direction: column; align-items: flex-start; padding: 0;
  }
  body.oa-menu-open .oa-header-row-2 .main-nav { width: 100%; }
  body.oa-menu-open .oa-header-row-2 .main-nav > ul.sf-menu {
    flex-direction: column; width: 100%;
  }
  body.oa-menu-open .oa-header-row-2 .main-nav > ul.sf-menu > li {
    width: 100%; border-bottom: 1px solid rgba(255,255,255,0.15);
  }
  body.oa-menu-open .oa-header-row-2 .main-nav > ul.sf-menu > li > a {
    padding: 14px 20px; font-size: 15px;
  }
  body.oa-menu-open .oa-header-row-2 .main-nav ul ul {
    display: block !important; position: static !important;
    box-shadow: none !important; border: none !important;
    background: rgba(0,0,0,0.15) !important; padding: 0 !important; min-width: unset;
  }
  body.oa-menu-open .oa-header-row-2 .main-nav ul ul li a {
    padding: 10px 20px 10px 36px;
    color: rgba(255,255,255,0.9) !important; font-size: 13px;
  }
  body.oa-menu-open .oa-header-row-2 .main-nav ul ul li a:hover {
    background: rgba(255,255,255,0.1) !important; color: #fff !important;
  }
  body.oa-menu-open .oa-header-row-2 .oa-cta-button { display: none; }
  .oa-header-search { max-width: 200px; }
}

/* Hide page title on homepage */
.home .entry-header, .home .page-title, .home h1.entry-title { display: none !important; }

/* =====================================================
   OA FOOTER
   ===================================================== */
.oa-footer { background: #2E89CE; color: #fff; margin-top: 0; }
.oa-footer-container { max-width: 960px; margin: 0 auto; padding: 0 30px; display: flex; align-items: flex-start; }
.oa-footer-main { padding: 50px 0 40px; }
.oa-footer-main .oa-footer-container { gap: 40px; }
.oa-footer-col { flex: 1; min-width: 140px; }
.oa-footer-col h4 { color: #fff; font-size: 14px; font-weight: 700; margin-bottom: 16px; text-transform: uppercase; letter-spacing: 0.5px; }
.oa-footer-col ul { list-style: none; margin: 0; padding: 0; }
.oa-footer-col ul li { margin-bottom: 10px; }
.oa-footer-col ul li a { color: rgba(255,255,255,0.85); text-decoration: none; font-size: 13px; transition: color 0.2s; }
.oa-footer-col ul li a:hover { color: #fff; }
.oa-footer-brand { display: flex; flex-direction: column; align-items: flex-start; gap: 20px; }
.oa-footer-brand img { max-height: 60px; width: auto; }
.oa-footer-logo-text { color: #fff; font-size: 18px; font-weight: 700; text-decoration: none; }
.oa-footer-social { display: flex; gap: 16px; }
.oa-footer-social a { color: rgba(255,255,255,0.85); transition: color 0.2s; }
.oa-footer-social a:hover { color: #fff; }
.oa-footer-bar { background: rgba(0,0,0,0.2); padding: 14px 0; }
.oa-footer-bar .oa-footer-container { justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 10px; }
.oa-footer-bar-left { display: flex; align-items: center; gap: 12px; font-size: 12px; color: rgba(255,255,255,0.85); }
.oa-footer-bar-center { font-size: 12px; color: rgba(255,255,255,0.7); text-align: center; }
.oa-footer-bar-right { display: flex; gap: 6px; align-items: center; }
.oa-payment-icons svg { border-radius: 3px; }
/* old WPML CSS removed */
@media (max-width: 768px) {
    .oa-footer-main .oa-footer-container { flex-wrap: wrap; }
    .oa-footer-col { min-width: calc(50% - 20px); }
    .oa-footer-bar .oa-footer-container { flex-direction: column; text-align: center; }
}

/* =====================================================
   ROW 2 NAV STYLES
   ===================================================== */
.oa-header-row-2 #primary-menu { flex: 1; }
.oa-header-row-2 .main-nav { flex: 1; display: flex; align-items: center; }
.oa-header-row-2 .main-nav > ul.sf-menu {
    list-style: none; margin: 0; padding: 0;
    display: flex; align-items: center; flex-wrap: wrap;
}
.oa-header-row-2 .main-nav > ul.sf-menu > li { position: relative; }
.oa-header-row-2 .main-nav > ul.sf-menu > li > a {
    display: block; padding: 10px 10px; color: #333;
    text-decoration: none; font-size: 14px; font-weight: 500; white-space: nowrap;
}
.oa-header-row-2 .main-nav > ul.sf-menu > li > a:hover { color: #2E89CE; }
/* Hide sub-menus by default */
.oa-header-row-2 .main-nav ul ul {
    display: none !important;
    position: absolute; top: 100%; left: 0;
    background: #fff !important;
    border-top: 3px solid #2E89CE;
    border: 1px solid #e5e5e5;
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
    min-width: 200px; z-index: 9999;
    list-style: none; padding: 6px 0; margin: 0;
}
/* Show on hover */
.oa-header-row-2 .main-nav > ul.sf-menu > li:hover > ul,
.oa-header-row-2 .main-nav > ul.sf-menu > li:focus-within > ul { display: block !important; }
.oa-header-row-2 .main-nav ul ul li a {
    display: block; padding: 9px 18px; color: #333;
    font-size: 13px; text-decoration: none; white-space: nowrap;
}
.oa-header-row-2 .main-nav ul ul li a:hover { background: #f5f9ff; color: #2E89CE; }
/* SALE in red */
#menu-item-2047 > a { color: #90CBF9 !important; font-weight: 700 !important; }
/* Hide GP dropdown toggles */
.oa-header-row-2 .dropdown-menu-toggle { display: none !important; }

/* =====================================================
   SHOP PAGE STYLES
   ===================================================== */
.woocommerce-page .entry-header,
.woocommerce-page h1.entry-title,
.shop-page-title,
.woocommerce .page-title { display: none !important; }
.woocommerce-breadcrumb { padding: 12px 0; font-size: 13px; color: #666; margin-bottom: 10px; }
.woocommerce ul.products { gap: 20px !important; }
.woocommerce ul.products li.product { text-align: center; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 14px !important; font-weight: 500; padding: 8px 0 4px; }
.woocommerce ul.products li.product .price { color: #2E89CE !important; font-weight: 600; font-size: 15px; }
.woocommerce ul.products li.product .button { width: 100%; text-align: center; margin-top: 8px; font-size: 13px; padding: 8px; border-radius: 4px; }
.woocommerce-result-count { color: #666; font-size: 13px; }
.woocommerce-products-header__title.page-title { font-size: 28px; color: #2E89CE; margin-bottom: 20px; }
.woocommerce-placeholder { opacity: 0.4; }

/* =====================================================
   OA HOMEPAGE — PHP TEMPLATE STYLES
   ===================================================== */

/* Shared tokens */
:root {
  --oa-blue:       #2E89CE;
  --oa-light-blue: #CBE0F1;
  --oa-gold:       #F9BF00;
  --oa-text:       #333333;
  --oa-white:      #FFFFFF;
}

/* Shared inner container */
.oa-section-inner { max-width: 1200px; margin: 0 auto; padding: 72px 24px; }
.oa-section-inner--narrow { max-width: 760px; }

/* Shared buttons */
.oa-btn { display: inline-block; padding: 14px 32px; border-radius: 40px; font-weight: 700; font-size: 15px; text-decoration: none; cursor: pointer; transition: opacity .2s, transform .2s; }
.oa-btn:hover { opacity: .88; transform: translateY(-2px); }
.oa-btn--blue   { background: var(--oa-blue);  color: #fff !important; }
.oa-btn--gold   { background: var(--oa-gold);  color: #333 !important; }
.oa-btn--light  { background: var(--oa-light-blue); color: var(--oa-blue) !important; font-weight: 700; }
.oa-btn--outline{ background: transparent; color: #fff !important; border: 2px solid #fff; }

/* HERO */
.oa-hero { position: relative; min-height: 520px; background-size: cover; background-position: center; display: flex; align-items: center; justify-content: center; }
.oa-hero__overlay { position: absolute; inset: 0; background: rgba(0,0,0,.45); }
.oa-hero__inner { position: relative; z-index: 1; max-width: 820px; padding: 60px 24px; text-align: center; }
.oa-hero__heading { font-size: clamp(1.6rem, 3vw, 2.4rem); font-style: italic; color: #fff; line-height: 1.35; margin-bottom: 16px; }
.oa-hero__sub { font-size: 1.05rem; color: rgba(255,255,255,.9); margin-bottom: 28px; }

/* FEATURED IN */
.oa-featured-in { background: var(--oa-light-blue); }
.oa-featured-in .oa-section-inner { padding-top: 48px; padding-bottom: 48px; text-align: center; }
.oa-featured-in__heading { font-size: .95rem; font-style: italic; color: var(--oa-blue); margin-bottom: 24px; font-weight: 600; }
.oa-featured-in__row { display: flex; justify-content: center; align-items: flex-start; gap: 32px; flex-wrap: wrap; }
.oa-featured-in__item { display: flex; flex-direction: column; align-items: center; gap: 8px; max-width: 110px; text-decoration: none; }
.oa-featured-in__img { width: 80px; height: 80px; object-fit: cover; border-radius: 50%; border: 2px solid rgba(46,137,206,.2); }
.oa-featured-in__caption { font-size: 11px; color: #555; text-align: center; line-height: 1.3; margin: 0; }

/* VALUE PROP */
.oa-value-prop { background: var(--oa-white); }
.oa-vp-block { margin-bottom: 64px; }
.oa-vp-block:last-child { margin-bottom: 0; }
.oa-vp-block__heading { font-size: clamp(1.15rem, 2vw, 1.5rem); font-style: italic; color: var(--oa-blue); margin-bottom: 16px; line-height: 1.4; }
.oa-vp-block__content { line-height: 1.75; color: var(--oa-text); }
.oa-vp-block__content ul, .oa-vp-block__content ol { padding-left: 1.4em; margin: 12px 0; }
.oa-vp-block__content li { margin-bottom: 6px; }
.oa-vp-block .oa-btn { margin-top: 24px; }
.oa-vp-block--media { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }
.oa-vp-block--img-left  { }
/* img-right: text is first in DOM, image is second — natural order gives text-left, img-right */
.oa-vp-block__img-col img { width: 100%; max-width: 480px; height: auto; border-radius: 8px; display: block; }
.oa-vp-block__text-col { direction: ltr; }

/* TESTIMONIALS */
.oa-testimonials { background: var(--oa-light-blue); }
.oa-testimonials .oa-section-inner { text-align: center; }
.oa-testimonials__heading { font-style: italic; color: var(--oa-blue); font-size: 1rem; font-weight: 600; margin-bottom: 32px; }
.oa-testimonials__slider { max-width: 680px; margin: 0 auto 32px; }
.oa-testimonials__track { position: relative; min-height: 220px; }
.oa-testimonials__slide { display: none; background: var(--oa-white); border-radius: 12px; padding: 36px 40px; box-shadow: 0 2px 16px rgba(0,0,0,.07); }
.oa-testimonials__slide.is-active { display: block; }
.oa-testimonials__stars { color: var(--oa-gold); font-size: 1.3rem; letter-spacing: 2px; margin-bottom: 12px; }
.oa-testimonials__title { font-style: italic; color: var(--oa-blue); font-size: 1.1rem; margin-bottom: 12px; }
.oa-testimonials__quote { font-size: .95rem; line-height: 1.7; color: var(--oa-text); margin: 0 0 16px; font-style: normal; }
.oa-testimonials__meta { display: flex; flex-direction: column; gap: 4px; }
.oa-testimonials__author { font-weight: 700; font-style: normal; font-size: .9rem; }
.oa-testimonials__product { font-size: .8rem; color: #777; }
.oa-testimonials__dots { display: flex; justify-content: center; gap: 10px; margin-top: 20px; }
.oa-testimonials__dot { width: 10px; height: 10px; border-radius: 50%; background: rgba(46,137,206,.3); border: none; cursor: pointer; padding: 0; transition: background .2s; }
.oa-testimonials__dot.is-active { background: var(--oa-blue); }
.oa-testimonials__cta-wrap { margin-top: 16px; }

/* TRUST STATS */
.oa-trust-stats { background: var(--oa-blue); color: #fff; text-align: center; }
.oa-trust-stats .oa-section-inner { padding-top: 72px; padding-bottom: 72px; }
.oa-trust-stats__heading { font-size: clamp(1.2rem, 2.5vw, 1.7rem); font-style: italic; margin-bottom: 48px; color: #fff; max-width: 700px; margin-left: auto; margin-right: auto; }
.oa-trust-stats__grid { display: flex; justify-content: center; flex-wrap: wrap; gap: 40px 56px; margin-bottom: 48px; }
.oa-trust-stats__stat { display: flex; flex-direction: column; gap: 6px; }
.oa-trust-stats__value { font-size: 2.4rem; font-weight: 800; color: #fff; line-height: 1; }
.oa-trust-stats__label { font-size: .85rem; color: rgba(255,255,255,.85); }

/* FOUNDERS */
.oa-founders { background: var(--oa-white); }
.oa-founders__heading { font-size: clamp(1.3rem, 2.5vw, 1.8rem); font-style: italic; color: var(--oa-blue); text-align: center; margin-bottom: 8px; }
.oa-founders__subhead { text-align: center; color: #666; font-size: .95rem; margin-bottom: 40px; }
.oa-founders__gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-bottom: 48px; }
.oa-founders__figure { margin: 0; }
.oa-founders__figure img { width: 100%; height: 260px; object-fit: cover; border-radius: 6px; display: block; }
.oa-founders__figure figcaption { font-size: 12px; color: #666; text-align: center; margin-top: 8px; line-height: 1.3; }
.oa-founders__story { line-height: 1.8; color: var(--oa-text); }
.oa-founders__story p { margin-bottom: 14px; }
.oa-founders__story ul { padding-left: 1.4em; }
.oa-founders__story li { margin-bottom: 6px; }

/* FINAL CTA */
.oa-final-cta { background: var(--oa-blue); color: #fff; text-align: center; }
.oa-final-cta__headline { font-size: clamp(1.2rem, 2.5vw, 1.7rem); font-style: italic; color: #fff; margin-bottom: 24px; }
.oa-final-cta__desc { line-height: 1.8; margin-bottom: 32px; color: rgba(255,255,255,.9); }
.oa-final-cta__desc p { margin-bottom: 12px; }
.oa-final-cta__actions { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; margin-bottom: 24px; }
.oa-final-cta__sig { font-size: .9rem; color: rgba(255,255,255,.7); }

/* NEWSLETTER */
.oa-newsletter { background: var(--oa-light-blue); text-align: center; }
.oa-newsletter__heading { font-size: clamp(1.2rem, 2vw, 1.6rem); font-style: italic; color: var(--oa-blue); margin-bottom: 12px; }
.oa-newsletter__sub { color: #555; margin-bottom: 28px; font-size: .95rem; }
.oa-newsletter__form { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.oa-newsletter__input { padding: 12px 18px; border: 1px solid rgba(46,137,206,.3); border-radius: 40px; font-size: .95rem; width: 220px; outline: none; }
.oa-newsletter__input:focus { border-color: var(--oa-blue); }

/* =====================================================
   RESPONSIVE
   ===================================================== */
@media (max-width: 768px) {
  .oa-vp-block--media { grid-template-columns: 1fr; }
  /* img-right mobile: natural order maintained */
  .oa-founders__gallery { grid-template-columns: 1fr; }
  .oa-trust-stats__grid { gap: 28px 32px; }
  .oa-testimonials__slide { padding: 28px 20px; }
  .oa-final-cta__actions { flex-direction: column; align-items: center; }
  .oa-newsletter__form { flex-direction: column; align-items: center; }
  .oa-newsletter__input { width: 100%; max-width: 320px; }
}

/* =====================================================
   GP WRAPPER OVERRIDES — kill grey gutters
   (also injected inline via wp_head for specificity)
   ===================================================== */
body.home { background: #fff !important; }
body.home.one-container .site-content { padding: 0 !important; }
body.home.one-container .inside-article { padding: 0 !important; background: transparent !important; box-shadow: none !important; }
body.home .entry-content { padding: 0 !important; margin: 0 !important; max-width: 100% !important; }
.site-footer { padding: 0 !important; margin: 0 !important; background: transparent !important; }


/* =====================================================
   SHOP TEMPLATES
   ===================================================== */

/* Shared breadcrumb */
.oa-breadcrumb {
    font-size: 13px; color: #888; padding: 14px 0; margin-bottom: 4px;
}
.oa-breadcrumb a { color: #2E89CE; text-decoration: none; }
.oa-breadcrumb a:hover { text-decoration: underline; }
.oa-breadcrumb span { margin: 0 6px; color: #bbb; }

/* Shop wrap */
.oa-shop-wrap { width: 100%; padding: 0 0 60px; }

/* Shop hero banner */
.oa-shop-hero {
    background: #2E89CE; min-height: 160px;
    display: flex; align-items: center;
    margin: 0 0 32px; padding: 40px 48px;
    position: relative; background-size: cover; background-position: center;
}
.oa-shop-hero--has-img .oa-shop-hero__overlay {
    position: absolute; inset: 0; background: rgba(0,0,0,.5);
}
.oa-shop-hero__inner { position: relative; z-index: 1; }
.oa-shop-hero__title { color: #fff; font-size: clamp(1.4rem,3vw,2rem); font-style: italic; margin: 0 0 8px; }
.oa-shop-hero__desc { color: rgba(255,255,255,.9); margin: 0; font-size: .95rem; max-width: 600px; }

/* Category strip */
.oa-cat-strip { border-bottom: 1px solid #eee; margin-bottom: 24px; overflow-x: auto; }
.oa-cat-strip__inner { display: flex; gap: 4px; padding: 0; flex-wrap: nowrap; min-width: max-content; }
.oa-cat-strip__link {
    padding: 10px 16px; font-size: 13px; font-weight: 500; color: #555;
    text-decoration: none; white-space: nowrap; border-bottom: 2px solid transparent;
    transition: color .15s, border-color .15s;
}
.oa-cat-strip__link:hover, .oa-cat-strip__link.is-active { color: #2E89CE; border-bottom-color: #2E89CE; }

/* Toolbar */
.oa-shop-toolbar { margin-bottom: 20px; }
.oa-shop-toolbar__inner {
    display: flex; justify-content: space-between; align-items: center;
    font-size: 13px; color: #777;
}
.oa-shop-toolbar__inner .woocommerce-result-count { margin: 0; }
.oa-shop-toolbar__inner select { font-size: 13px; padding: 6px 10px; border: 1px solid #ddd; border-radius: 4px; }

/* Product grid */
.oa-product-grid {
    list-style: none; margin: 0; padding: 0;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
}
.oa-product-grid li.product { margin: 0 !important; float: none !important; width: 100% !important; min-width: 0 !important; clear: none !important; }
.oa-product-grid li.product.first { clear: none !important; }
.oa-product-grid li.product.last { margin-right: 0 !important; }
/* Kill WooCommerce clearfix pseudo-elements that steal grid slots */
.oa-product-grid::before,
.oa-product-grid::after { content: none !important; display: none !important; width: 0 !important; }
.oa-product-grid .woocommerce-LoopProduct-link { text-decoration: none; color: inherit; }
.oa-product-grid .attachment-woocommerce_thumbnail,
.oa-product-grid img {
    width: 100% !important; height: 220px !important;
    object-fit: contain !important; background: #f8f8f8 !important;
    border-radius: 6px; display: block; margin-bottom: 10px;
}
.oa-product-grid .woocommerce-loop-product__title {
    font-size: 14px !important; font-weight: 600; color: #333;
    margin-bottom: 6px; line-height: 1.35;
}
.oa-product-grid .price { color: #2E89CE !important; font-weight: 700; font-size: 15px; }
.oa-product-grid .button {
    display: block; width: 100%; text-align: center;
    margin-top: 10px; padding: 9px; border-radius: 4px;
    background: #2E89CE; color: #fff !important; font-size: 13px;
    font-weight: 600; text-decoration: none; border: none; cursor: pointer;
    transition: background .2s;
}
.oa-product-grid .button:hover { background: #1a6faa; }

.oa-shop-pagination { margin-top: 40px; text-align: center; }
.oa-shop-pagination .page-numbers {
    display: inline-flex; gap: 6px; list-style: none; padding: 0; margin: 0; flex-wrap: wrap; justify-content: center;
}
.oa-shop-pagination .page-numbers a,
.oa-shop-pagination .page-numbers span {
    display: inline-block; padding: 8px 14px; border: 1px solid #ddd;
    border-radius: 4px; text-decoration: none; color: #333; font-size: 14px;
}
.oa-shop-pagination .page-numbers .current { background: #2E89CE; color: #fff; border-color: #2E89CE; }
.oa-no-products { text-align: center; padding: 60px 0; color: #888; font-size: 1.1rem; }

/* =====================================================
   SINGLE PRODUCT — Full Rewrite
   ===================================================== */

.oa-product-single { max-width: 1200px; margin: 0 auto; padding: 0 24px 60px; }
.oa-product-single__inner {}

/* 55% image / 45% details */
.oa-product-single__layout {
    display: grid;
    grid-template-columns: 55fr 45fr;
    gap: 48px;
    margin-bottom: 56px;
    align-items: start;
}

/* ---- Gallery ---- */
.oa-product-single__gallery { position: sticky; top: 20px; }

.oa-product-single__main-img-wrap {
    width: 100%;
    border-radius: 8px;
    overflow: hidden;
    background: #f8f8f8;
    border: 1px solid #eee;
    cursor: zoom-in;
}
.oa-zoom-wrap { overflow: hidden; }
.oa-zoom-img {
    width: 100%;
    display: block;
    max-height: 520px;
    object-fit: contain;
    padding: 16px;
    box-sizing: border-box;
    transition: transform 0.1s ease;
    transform-origin: center center;
}

.oa-product-single__thumbs {
    display: flex;
    gap: 10px;
    margin-top: 14px;
    flex-wrap: wrap;
}
.oa-product-single__thumb {
    width: 80px;
    height: 80px;
    object-fit: cover;
    border-radius: 6px;
    cursor: pointer;
    border: 2px solid transparent;
    transition: border-color .2s;
    background: #f8f8f8;
    padding: 4px;
    box-sizing: border-box;
}
.oa-product-single__thumb.is-active,
.oa-product-single__thumb:hover { border-color: #2E89CE; }

/* ---- Details ---- */
.oa-product-single__details { display: flex; flex-direction: column; gap: 0; }

.oa-product-single__cat {
    font-size: 11px;
    font-weight: 700;
    color: #2E89CE;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 1px;
    display: block;
    margin-bottom: 10px;
}
.oa-product-single__title {
    font-size: clamp(1.4rem, 2.5vw, 2rem);
    font-weight: 700;
    color: #222;
    line-height: 1.25;
    margin-bottom: 12px;
    font-style: italic;
}

/* Star rating row */
.oa-product-single__rating {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 16px;
}
.oa-stars { display: flex; gap: 2px; }
.oa-star { font-size: 18px; line-height: 1; }
.oa-star.filled { color: #F9BF00; }
.oa-star.half { color: #F9BF00; opacity: 0.6; }
.oa-star.empty { color: #ddd; }
.oa-product-single__review-link {
    font-size: 13px;
    color: #2E89CE;
    text-decoration: underline;
    cursor: pointer;
}

.oa-product-single__price {
    font-size: 1.8rem;
    font-weight: 800;
    color: #2E89CE;
    margin-bottom: 16px;
}
.oa-product-single__price del { color: #aaa; font-size: 1.1rem; margin-right: 8px; font-weight: 400; }

.oa-product-single__short-desc {
    line-height: 1.7;
    color: #555;
    margin-bottom: 20px;
    font-size: .95rem;
    border-bottom: 1px solid #eee;
    padding-bottom: 20px;
}

/* Horizontal qty + add to cart */
.oa-product-single__cart { margin-bottom: 18px; }
.oa-product-single__cart form.cart { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.oa-product-single__cart .qty-wrap {
    display: flex;
    align-items: center;
    border: 1px solid #ddd;
    border-radius: 6px;
    overflow: hidden;
}
.oa-product-single__cart .qty {
    width: 52px;
    text-align: center;
    border: none;
    border-left: 1px solid #ddd;
    border-right: 1px solid #ddd;
    font-size: 15px;
    padding: 10px 0;
    -moz-appearance: textfield;
}
.oa-product-single__cart .qty::-webkit-inner-spin-button,
.oa-product-single__cart .qty::-webkit-outer-spin-button { -webkit-appearance: none; }
/* WooCommerce wraps qty in .quantity — force horizontal layout */
.oa-product-single__cart .quantity {
    display: flex;
    align-items: center;
    border: 1px solid #ddd;
    border-radius: 6px;
    overflow: hidden;
}
.oa-product-single__cart .quantity input.qty {
    border: none;
    border-left: 1px solid #ddd;
    border-right: 1px solid #ddd;
    width: 52px;
    text-align: center;
    font-size: 15px;
    padding: 10px 0;
    -moz-appearance: textfield;
}
.oa-product-single__cart .single_add_to_cart_button {
    background: #2E89CE;
    color: #fff !important;
    padding: 12px 28px;
    border-radius: 40px;
    font-weight: 700;
    font-size: 15px;
    border: none;
    cursor: pointer;
    transition: background .2s;
    flex: 1;
    min-width: 160px;
}
.oa-product-single__cart .single_add_to_cart_button:hover { background: #1a6faa; }

/* Trust badges */
.oa-product-single__trust {
    display: flex;
    flex-direction: column;
    gap: 7px;
    font-size: 13px;
    color: #666;
    margin-bottom: 24px;
    padding: 14px 0;
    border-top: 1px solid #eee;
    border-bottom: 1px solid #eee;
}

/* Description panel (scrollable in right column) */
.oa-product-single__desc-panel {
    margin-top: 8px;
    max-height: 340px;
    overflow-y: auto;
    padding-right: 8px;
    scrollbar-width: thin;
    scrollbar-color: #ddd transparent;
}
.oa-product-single__desc-panel::-webkit-scrollbar { width: 4px; }
.oa-product-single__desc-panel::-webkit-scrollbar-thumb { background: #ddd; border-radius: 4px; }
.oa-product-single__desc-heading {
    font-size: 1.05rem;
    font-weight: 700;
    color: #222;
    margin-bottom: 12px;
    font-style: italic;
}
.oa-product-single__desc-body { line-height: 1.8; color: #444; font-size: .9rem; }
.oa-product-single__desc-body h2, .oa-product-single__desc-body h3 { color: #2E89CE; margin: 20px 0 10px; font-size: 1rem; }
.oa-product-single__desc-body ul, .oa-product-single__desc-body ol { padding-left: 1.4em; margin: 10px 0; }
.oa-product-single__desc-body img { max-width: 100%; height: auto; }

/* ---- Related ---- */
.oa-product-single__related { border-top: 1px solid #eee; padding-top: 40px; margin-bottom: 56px; }
.oa-product-single__related-heading { font-size: 1.3rem; color: #222; margin-bottom: 24px; font-style: italic; }
.oa-product-grid--related { grid-template-columns: repeat(4,1fr); }

/* ---- Reviews ---- */
.oa-reviews {
    border-top: 1px solid #eee;
    padding-top: 48px;
    margin-bottom: 60px;
}
.oa-reviews__heading {
    font-size: 1.5rem;
    font-weight: 700;
    color: #222;
    margin-bottom: 32px;
    text-align: center;
}
.oa-reviews__summary {
    display: flex;
    gap: 48px;
    align-items: center;
    justify-content: center;
    margin-bottom: 40px;
    padding: 32px;
    background: #f8fbff;
    border-radius: 12px;
}
.oa-reviews__overall {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
}
.oa-reviews__score {
    font-size: 3.5rem;
    font-weight: 800;
    color: #2E89CE;
    line-height: 1;
}
.oa-reviews__overall-stars { font-size: 22px; }
.oa-reviews__based-on { font-size: 13px; color: #888; }
.oa-reviews__bars { display: flex; flex-direction: column; gap: 8px; min-width: 260px; }
.oa-reviews__bar-row {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 13px;
    color: #555;
}
.oa-reviews__bar-row span:first-child { width: 28px; text-align: right; }
.oa-reviews__bar-row span:last-child { width: 24px; }
.oa-reviews__bar-track {
    flex: 1;
    height: 10px;
    background: #e8e8e8;
    border-radius: 5px;
    overflow: hidden;
}
.oa-reviews__bar-fill {
    height: 100%;
    background: #F9BF00;
    border-radius: 5px;
    transition: width 0.6s ease;
}
.oa-reviews__list {
    display: grid;
    grid-template-columns: 1fr;
    gap: 20px;
}
.oa-review-card {
    background: #fff;
    border: 1px solid #eee;
    border-radius: 10px;
    padding: 20px;
}
.oa-review-card__header { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; flex-wrap: wrap; }
.oa-review-card__stars { font-size: 15px; }
.oa-review-card__title { font-size: 14px; font-weight: 700; color: #222; }
.oa-review-card__body { font-size: 14px; color: #444; line-height: 1.6; margin-bottom: 12px; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.oa-review-card__meta { display: flex; justify-content: space-between; font-size: 12px; color: #999; }
.oa-reviews__empty { text-align: center; padding: 40px; color: #888; }

/* ---- Responsive ---- */
@media (max-width: 960px) {
    .oa-product-single__layout { grid-template-columns: 1fr; gap: 32px; }
    .oa-product-single__gallery { position: static; }
    .oa-product-single__desc-panel { max-height: none; overflow-y: visible; }
    .oa-product-grid--related { grid-template-columns: repeat(2,1fr); }
    .oa-reviews__list { grid-template-columns: 1fr; }
    .oa-reviews__summary { flex-direction: column; gap: 24px; }
}
@media (max-width: 540px) {
    .oa-product-single__cart form.cart { flex-direction: column; align-items: stretch; }
    .oa-reviews__bars { min-width: unset; width: 100%; }
}

/* =====================================================
   GUIDES ARCHIVE
   ===================================================== */

.oa-guides-archive { }

.oa-guides-hero {
    background: #2E89CE; padding: 56px 24px; text-align: center;
}
.oa-guides-hero__inner { max-width: 700px; margin: 0 auto; }
.oa-guides-hero__title { color: #fff; font-size: clamp(1.6rem,3vw,2.4rem); font-style: italic; margin-bottom: 12px; }
.oa-guides-hero__sub { color: rgba(255,255,255,.9); font-size: 1rem; margin: 0; }

.oa-guides-hubs { background: #CBE0F1; padding: 48px 24px; }
.oa-guides-hubs__inner {
    max-width: 900px; margin: 0 auto;
    display: grid; grid-template-columns: 1fr 1fr; gap: 24px;
}
.oa-hub-card {
    background: #fff; border-radius: 10px; padding: 36px 32px;
    text-decoration: none; color: inherit; display: block;
    transition: transform .2s, box-shadow .2s;
    box-shadow: 0 2px 12px rgba(0,0,0,.06);
}
.oa-hub-card:hover { transform: translateY(-3px); box-shadow: 0 6px 20px rgba(0,0,0,.1); }
.oa-hub-card__icon { font-size: 2rem; display: block; margin-bottom: 12px; }
.oa-hub-card__title { font-size: 1.25rem; font-weight: 700; color: #2E89CE; margin-bottom: 10px; }
.oa-hub-card__desc { font-size: .9rem; color: #666; line-height: 1.6; margin-bottom: 16px; }
.oa-hub-card__cta { font-size: .85rem; font-weight: 600; color: #2E89CE; }

.oa-guides-grid-wrap { padding: 56px 24px; }
.oa-guides-grid-inner { max-width: 1200px; margin: 0 auto; }
.oa-guides-grid__heading { font-size: 1.4rem; color: #222; margin-bottom: 28px; font-style: italic; }
.oa-guides-grid {
    display: grid; grid-template-columns: repeat(3,1fr); gap: 24px;
}
.oa-guide-card {
    border: 1px solid #eee; border-radius: 8px; overflow: hidden;
    text-decoration: none; color: inherit; display: flex; flex-direction: column;
    transition: box-shadow .2s;
}
.oa-guide-card:hover { box-shadow: 0 4px 16px rgba(0,0,0,.09); }
.oa-guide-card__img img { width: 100%; height: 180px; object-fit: cover; display: block; }
.oa-guide-card__body { padding: 20px; flex: 1; display: flex; flex-direction: column; gap: 6px; }
.oa-guide-card__hub { font-size: 11px; font-weight: 700; color: #2E89CE; text-transform: uppercase; letter-spacing: .5px; }
.oa-guide-card__title { font-size: 1rem; font-weight: 700; color: #222; line-height: 1.35; }
.oa-guide-card__excerpt { font-size: .85rem; color: #777; line-height: 1.5; margin: 0; }

/* =====================================================
   SINGLE GUIDE
   ===================================================== */

.oa-guide-single { max-width: 1200px; margin: 0 auto; padding: 0 24px 60px; }
.oa-guide-single__layout { display: grid; grid-template-columns: 1fr 300px; gap: 48px; }

.oa-guide-single__hero-img { margin-bottom: 28px; }
.oa-guide-single__hero-img img { width: 100%; max-height: 400px; object-fit: cover; border-radius: 8px; display: block; }
.oa-guide-single__title { font-size: clamp(1.4rem,2.5vw,2rem); font-style: italic; color: #222; margin-bottom: 24px; line-height: 1.3; }
.oa-guide-single__body { line-height: 1.85; color: #444; font-size: 1rem; }
.oa-guide-single__body h2 { font-size: 1.3rem; color: #2E89CE; margin: 32px 0 14px; }
.oa-guide-single__body h3 { font-size: 1.1rem; color: #333; margin: 24px 0 10px; }
.oa-guide-single__body p { margin-bottom: 16px; }
.oa-guide-single__body ul, .oa-guide-single__body ol { padding-left: 1.4em; margin: 14px 0; }
.oa-guide-single__body li { margin-bottom: 8px; }
.oa-guide-single__body img { max-width: 100%; border-radius: 6px; margin: 16px 0; }

.oa-guide-single__cta { margin-top: 40px; }
.oa-guide-cta-box {
    background: #CBE0F1; border-radius: 10px; padding: 32px;
    text-align: center;
}
.oa-guide-cta-box__text { font-size: 1.05rem; color: #333; margin-bottom: 16px; font-weight: 600; }

/* Guide sidebar */
.oa-guide-sidebar {
    background: #f8f9fa; border-radius: 8px; padding: 24px; position: sticky; top: 20px;
}
.oa-guide-sidebar__heading { font-size: .85rem; font-weight: 700; color: #2E89CE; text-transform: uppercase; letter-spacing: .5px; margin-bottom: 16px; }
.oa-guide-sidebar__list { list-style: none; margin: 0 0 16px; padding: 0; }
.oa-guide-sidebar__item { border-bottom: 1px solid #eee; }
.oa-guide-sidebar__item a { display: block; padding: 9px 0; font-size: 13px; color: #444; text-decoration: none; line-height: 1.4; }
.oa-guide-sidebar__item a:hover { color: #2E89CE; }
.oa-guide-sidebar__item.is-current a { color: #2E89CE; font-weight: 600; }
.oa-guide-sidebar__view-all { font-size: 13px; font-weight: 600; color: #2E89CE; text-decoration: none; }
.oa-guide-sidebar__view-all:hover { text-decoration: underline; }

/* =====================================================
   RESPONSIVE — templates
   ===================================================== */
@media (max-width: 900px) {
    .oa-product-grid { grid-template-columns: repeat(2,1fr); }
    .oa-product-grid--related { grid-template-columns: repeat(2,1fr); }
    .oa-product-single__layout { grid-template-columns: 1fr; }
    .oa-guides-grid { grid-template-columns: repeat(2,1fr); }
    .oa-guides-hubs__inner { grid-template-columns: 1fr; }
    .oa-guide-single__layout { grid-template-columns: 1fr; }
    .oa-guide-sidebar { position: static; }
}
@media (max-width: 600px) {
    .oa-product-grid { grid-template-columns: repeat(2,1fr); gap: 14px; }
    .oa-guides-grid { grid-template-columns: 1fr; }
    .oa-shop-hero { margin: 0 0 24px; padding: 32px 24px; }
}


/* =====================================================
   GLOBAL GP WRAPPER FIXES
   Remove grey gutters and padding on all custom pages
   ===================================================== */

/* Body background — white everywhere, not GP grey */
body { background: #fff !important; }

/* GP one-container adds 40px padding to .site-content everywhere */
/* Override globally — our templates handle their own padding */
.one-container .site-content { padding: 0 !important; }
.one-container .inside-article { padding: 0 !important; background: transparent !important; box-shadow: none !important; }

/* Remove GP entry-content constraints on our custom template pages */
.oa-shop-wrap + *,
.oa-product-single .entry-content,
.oa-guides-archive .entry-content,
.oa-guide-single .entry-content { padding: 0 !important; margin: 0 !important; }

/* WooCommerce archive wrapper — remove padding */
.woocommerce-archive-wrapper { padding: 0 !important; }
.woocommerce-archive-wrapper .inside-article { padding: 0 !important; }

/* GP site-footer gap */
.site-footer { padding: 0 !important; margin: 0 !important; background: transparent !important; }

/* REMOVED: max-width:100% override was breaking centering on guides + products (session 10) */

/* =====================================================
   STATIC PAGES — simple page template
   ===================================================== */

.oa-page-wrap { }

.oa-page-hero {
    background: #2E89CE;
    padding: 48px 24px;
    text-align: center;
}
.oa-page-hero__inner { max-width: 900px; margin: 0 auto; }
.oa-page-hero__title {
    color: #fff;
    font-size: clamp(1.6rem, 3vw, 2.4rem);
    font-style: italic;
    margin: 0;
}

.oa-page-content { padding: 56px 24px 72px; }
.oa-page-content__inner {
    max-width: 820px;
    margin: 0 auto;
}
.oa-page-content__inner h2 {
    font-size: 1.4rem;
    color: #2E89CE;
    margin: 40px 0 14px;
    font-style: italic;
}
.oa-page-content__inner h3 {
    font-size: 1.05rem;
    font-weight: 700;
    color: #333;
    margin: 28px 0 10px;
    padding-bottom: 4px;
    border-bottom: 1px solid #eee;
}
.oa-page-content__inner p {
    line-height: 1.8;
    color: #444;
    margin-bottom: 16px;
}
.oa-page-content__inner ul,
.oa-page-content__inner ol {
    padding-left: 1.5em;
    margin: 12px 0 20px;
    line-height: 1.8;
    color: #444;
}
.oa-page-content__inner li { margin-bottom: 6px; }
.oa-page-content__inner a { color: #2E89CE; }
.oa-page-content__inner a:hover { text-decoration: underline; }
.oa-page-content__inner strong { color: #333; }

/* FAQ accordion feel */
.oa-page-content__inner h3:first-of-type { margin-top: 8px; }

/* Table styles for shipping */
.oa-page-content__inner table {
    width: 100%;
    border-collapse: collapse;
    margin: 20px 0;
    font-size: 14px;
}
.oa-page-content__inner th {
    background: #2E89CE;
    color: #fff;
    padding: 10px 14px;
    text-align: left;
    font-weight: 600;
}
.oa-page-content__inner td {
    padding: 10px 14px;
    border-bottom: 1px solid #eee;
    color: #444;
}
.oa-page-content__inner tr:last-child td { border-bottom: none; }
.oa-page-content__inner tr:nth-child(even) td { background: #f8f9fa; }

@media (max-width: 768px) {
    .oa-page-content__inner table { font-size: 13px; }
    .oa-page-content__inner th,
    .oa-page-content__inner td { padding: 8px 10px; }
}

/* Suppress first H1 inside guide body content — title already in template */
.oa-guide-single__body h1:first-child { display: none; }
.oa-guide-single__body .rte h1:first-child { display: none; }


/* Suppress duplicate H1 in guide content body */
.oa-guide-single__body h1:first-child { display: none; }
.oa-guide-single__body .rte h1:first-child { display: none; }


/* =====================================================
   BLOG ARCHIVE + SINGLE POST
   ===================================================== */

/* Hero */
.oa-blog-hero {
    background: var(--oa-blue);
    padding: 48px 24px;
    text-align: center;
}
.oa-blog-hero__inner { max-width: 760px; margin: 0 auto; }
.oa-blog-hero__title {
    color: #fff;
    font-size: clamp(1.6rem, 3vw, 2.4rem);
    font-style: italic;
    margin: 0 0 10px;
}
.oa-blog-hero__desc { color: rgba(255,255,255,0.85); margin: 0; font-size: 1rem; }

/* Category tabs */
.oa-blog-cats { background: #f5f7fa; border-bottom: 1px solid #e0e6ed; }
.oa-blog-cats__inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 24px;
    display: flex;
    gap: 4px;
    overflow-x: auto;
}
.oa-blog-cats__link {
    display: inline-block;
    padding: 14px 20px;
    font-size: 14px;
    font-weight: 600;
    color: #555;
    text-decoration: none;
    border-bottom: 3px solid transparent;
    white-space: nowrap;
    transition: color .2s, border-color .2s;
}
.oa-blog-cats__link:hover,
.oa-blog-cats__link.is-active {
    color: var(--oa-blue);
    border-bottom-color: var(--oa-blue);
}

/* Grid wrap */
.oa-blog-grid-wrap { padding: 48px 24px 72px; }
.oa-blog-grid-inner { max-width: 1200px; margin: 0 auto; }

/* Cards grid */
.oa-blog-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 32px;
}
.oa-blog-grid--related { margin-top: 24px; }

/* Card */
.oa-blog-card {
    background: #fff;
    border: 1px solid #eaecef;
    border-radius: 8px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: box-shadow .2s;
}
.oa-blog-card:hover { box-shadow: 0 4px 20px rgba(0,0,0,.08); }
.oa-blog-card__img-wrap { display: block; aspect-ratio: 16/9; overflow: hidden; }
.oa-blog-card__img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.oa-blog-card__img-wrap:hover .oa-blog-card__img { transform: scale(1.04); }
.oa-blog-card__body { padding: 20px; flex: 1; display: flex; flex-direction: column; }
.oa-blog-card__meta { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.oa-blog-card__date { font-size: 13px; color: #888; }
.oa-blog-card__cat {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: #fff;
    background: var(--oa-blue);
    padding: 2px 8px;
    border-radius: 3px;
    text-decoration: none;
}
.oa-blog-card__title { font-size: 1rem; font-weight: 700; margin: 0 0 10px; line-height: 1.4; font-style: normal; }
.oa-blog-card__title a { color: #222; text-decoration: none; }
.oa-blog-card__title a:hover { color: var(--oa-blue); }
.oa-blog-card__excerpt { font-size: 14px; color: #666; line-height: 1.6; flex: 1; margin: 0 0 14px; }
.oa-blog-card__read-more { font-size: 13px; font-weight: 600; color: var(--oa-blue); text-decoration: none; }
.oa-blog-card__read-more:hover { text-decoration: underline; }

/* Pagination */
.oa-blog-pagination { margin-top: 48px; text-align: center; }
.oa-blog-pagination .nav-links { display: flex; justify-content: center; gap: 8px; flex-wrap: wrap; }
.oa-blog-pagination .page-numbers {
    display: inline-flex; align-items: center; justify-content: center;
    width: 40px; height: 40px; border-radius: 6px;
    border: 1px solid #e0e6ed; color: #333; text-decoration: none;
    font-size: 14px; font-weight: 600;
}
.oa-blog-pagination .page-numbers.current { background: var(--oa-blue); color: #fff; border-color: var(--oa-blue); }
.oa-blog-pagination .page-numbers:hover:not(.current) { border-color: var(--oa-blue); color: var(--oa-blue); }

/* Empty state */
.oa-blog-empty { text-align: center; padding: 64px 24px; color: #666; }
.oa-blog-empty p { font-size: 1.1rem; margin-bottom: 24px; }

/* ---- SINGLE POST ---- */
.oa-post-single { padding: 0 24px 72px; }
.oa-post-single__inner { max-width: 820px; margin: 0 auto; }

.oa-post-single__header { margin: 32px 0 24px; }
.oa-post-single__meta { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.oa-post-single__date { font-size: 13px; color: #888; }
.oa-post-single__cat {
    font-size: 11px; font-weight: 700; text-transform: uppercase;
    letter-spacing: .05em; color: #fff; background: var(--oa-blue);
    padding: 2px 8px; border-radius: 3px; text-decoration: none;
}
.oa-post-single__title {
    font-size: clamp(1.5rem, 3vw, 2rem);
    line-height: 1.3;
    color: #1a1a1a;
    font-style: italic;
    margin: 0;
}
.oa-post-single__hero { margin: 0 0 32px; border-radius: 8px; overflow: hidden; }
.oa-post-single__hero-img { width: 100%; height: auto; display: block; }

.oa-post-single__body {
    font-size: 1rem;
    line-height: 1.8;
    color: #333;
}
.oa-post-single__body h2 { color: var(--oa-blue); font-size: 1.3rem; font-style: italic; margin: 36px 0 14px; }
.oa-post-single__body h3 { font-size: 1.1rem; font-weight: 700; margin: 28px 0 10px; }
.oa-post-single__body p { margin-bottom: 18px; }
.oa-post-single__body a { color: var(--oa-blue); }
.oa-post-single__body img { max-width: 100%; border-radius: 6px; margin: 8px 0; }

.oa-post-single__author {
    display: flex; align-items: center; gap: 14px;
    margin: 40px 0; padding: 20px;
    background: #f8f9fa; border-radius: 8px;
    border-left: 4px solid var(--oa-blue);
}
.oa-post-single__avatar { border-radius: 50%; flex-shrink: 0; }
.oa-post-single__author-info { display: flex; flex-direction: column; gap: 2px; }
.oa-post-single__author-name { font-weight: 700; color: #222; font-size: 15px; }
.oa-post-single__author-date { font-size: 13px; color: #888; }

.oa-post-single__related { margin-top: 48px; }
.oa-post-single__related-heading {
    font-size: 1.2rem; font-style: italic;
    color: #222; margin: 0 0 20px;
    padding-bottom: 12px; border-bottom: 2px solid #eaecef;
}
.oa-post-single__back { margin-top: 32px; }
.oa-post-single__back a { color: var(--oa-blue); font-size: 14px; font-weight: 600; text-decoration: none; }
.oa-post-single__back a:hover { text-decoration: underline; }

/* Responsive */
@media (max-width: 900px) { .oa-blog-grid { grid-template-columns: 1fr; } }
@media (max-width: 600px) {
    .oa-blog-grid { grid-template-columns: 1fr; gap: 20px; }
    .oa-post-single { padding: 0 16px 48px; }
}

/* =====================================================
   FREE EBOOKS PAGE
   ===================================================== */
.oa-ebook-card {
    background: #fff;
    border: 1px solid #eaecef;
    border-radius: 8px;
    padding: 28px;
    height: 100%;
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.oa-ebook-card__img { text-align: center; }
.oa-ebook-card__img img {
    max-width: 180px;
    border-radius: 4px;
    box-shadow: 0 4px 16px rgba(0,0,0,.12);
}
.oa-ebook-card__title {
    font-size: 1.2rem;
    color: var(--oa-blue);
    font-style: italic;
    margin: 0;
}
.oa-ebook-card__desc { font-size: .95rem; color: #555; line-height: 1.7; }
.oa-ebook-card ul { padding-left: 1.2em; color: #444; font-size: .9rem; line-height: 1.8; }
.oa-ebook-card .oa-btn { margin-top: auto; align-self: flex-start; }

/* ── Expedition single — full-width layout (no sidebar) ── */
.oa-guide-single__layout--full {
    grid-template-columns: 1fr !important;
    max-width: 860px;
    margin: 0 auto;
}

/* ── Expedition single — related products section ── */
.oa-expedition-products {
    background: var(--oa-light-blue, #CBE0F1);
    padding: 56px 24px;
    margin-top: 0;
}
.oa-expedition-products__inner {
    max-width: 1200px;
    margin: 0 auto;
    text-align: center;
}
.oa-expedition-products__heading {
    font-family: var(--oa-heading-font, 'Kalam', cursive);
    font-size: clamp(1.4rem, 2.5vw, 2rem);
    color: var(--oa-blue, #2E89CE);
    margin-bottom: 8px;
    font-style: italic;
}
.oa-expedition-products__sub {
    color: #555;
    margin-bottom: 36px;
    font-size: 1rem;
}
.oa-expedition-products__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
    margin-bottom: 8px;
}
.oa-exp-product-card {
    background: #fff;
    border-radius: 8px;
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    transition: box-shadow 0.2s, transform 0.2s;
    display: flex;
    flex-direction: column;
}
.oa-exp-product-card:hover {
    box-shadow: 0 4px 20px rgba(0,0,0,0.12);
    transform: translateY(-2px);
}
.oa-exp-product-card__img {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    display: block;
    background: #f0f0f0;
}
.oa-exp-product-card__img--placeholder {
    background: #e8e8e8;
    aspect-ratio: 1 / 1;
}
.oa-exp-product-card__body {
    padding: 14px 16px;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.oa-exp-product-card__title {
    font-size: 0.95rem;
    font-weight: 600;
    color: #333;
    margin: 0;
    line-height: 1.3;
}
.oa-exp-product-card__price {
    font-size: 0.9rem;
    color: var(--oa-blue, #2E89CE);
    font-weight: 700;
}

/* ── Expedition archive — category tabs (reuses blog tab styles) ── */
.oa-expeditions-archive .oa-blog-cats {
    background: #fff;
    border-bottom: 2px solid var(--oa-light-blue, #CBE0F1);
}

/* ── Responsive ── */
@media (max-width: 900px) {
    .oa-expedition-products__grid { grid-template-columns: 1fr; }
}
@media (max-width: 540px) {
    .oa-expedition-products__grid { grid-template-columns: 1fr 1fr; gap: 14px; }
    .oa-guide-single__layout--full { padding: 0; }
}

/* =====================================================
   SHOP HOMEPAGE — Category Circles
   ===================================================== */

.oa-shop-home { padding: 24px 0 40px; }
.oa-shop-home__title {
    font-size: clamp(1.4rem, 2.5vw, 2rem);
    color: #2E89CE;
    font-style: italic;
    margin: 0 0 6px;
}
.oa-shop-home__intro {
    color: #555;
    font-size: 0.95rem;
    margin-bottom: 36px;
    max-width: 580px;
}
.oa-shop-home__section-label {
    font-size: 1.1rem;
    font-weight: 700;
    color: #222;
    margin-bottom: 20px;
    font-style: italic;
    color: #2E89CE;
}

/* Circle grid — 4 columns desktop */
.oa-cat-circles {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 28px 20px;
    margin-bottom: 56px;
}

.oa-cat-circle {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-decoration: none;
    text-align: center;
    gap: 12px;
    transition: transform .2s;
}
.oa-cat-circle:hover { transform: translateY(-3px); }

.oa-cat-circle__img-wrap {
    width: 160px;
    height: 160px;
    border-radius: 50%;
    overflow: hidden;
    border: 3px solid #e0eef7;
    transition: border-color .2s;
    background: #f4f8fc;
    flex-shrink: 0;
}
.oa-cat-circle:hover .oa-cat-circle__img-wrap { border-color: #2E89CE; }

.oa-cat-circle__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .3s;
}
.oa-cat-circle:hover .oa-cat-circle__img { transform: scale(1.08); }

.oa-cat-circle__placeholder {
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, #CBE0F1 0%, #2E89CE 100%);
}

.oa-cat-circle__name {
    font-size: 0.9rem;
    font-weight: 600;
    color: #2E89CE;
    line-height: 1.3;
    font-style: italic;
    max-width: 140px;
}

@media (max-width: 960px) {
    .oa-cat-circles { grid-template-columns: repeat(3, 1fr); gap: 24px 16px; }
    .oa-cat-circle__img-wrap { width: 130px; height: 130px; }
}
@media (max-width: 600px) {
    .oa-cat-circles { grid-template-columns: repeat(3, 1fr); gap: 18px 10px; }
    .oa-cat-circle__img-wrap { width: 90px; height: 90px; }
    .oa-cat-circle__name { font-size: 0.8rem; max-width: 100px; }
}



/* Use contain (not cover) so full product is visible */
#oa-main-product-img {
    width: 100%;
    max-height: 420px;
    object-fit: contain !important;
    background: #f8f8f8;
    border-radius: 8px;
    border: 1px solid #eee;
    padding: 12px;
    box-sizing: border-box;
}



/* ── Announcement Bar ─────────────────────────────────── */
.oa-announcement-bar { background: #1a6fa8; color: #fff; padding: 9px 20px; text-align: center; position: relative; z-index: 9999; width: 100%; box-sizing: border-box; }
.oa-announcement-inner { max-width: 1400px; margin: 0 auto; display: flex; align-items: center; justify-content: center; gap: 16px; font-size: 13px; font-family: "Catamaran", sans-serif; font-weight: 500; }
.oa-announcement-close { background: transparent; border: none; color: rgba(255,255,255,0.7); cursor: pointer; font-size: 16px; line-height: 1; padding: 0 4px; transition: color 0.2s; flex-shrink: 0; }
.oa-announcement-close:hover { color: #fff; }

/* ── Footer Newsletter Column ─────────────────────────── */
.oa-footer-newsletter p { font-size: 13px; color: rgba(255,255,255,0.75); margin-bottom: 14px; }
.oa-footer-signup { display: flex; flex-direction: column; gap: 8px; margin-bottom: 20px; }
.oa-footer-signup input[type="email"] { padding: 10px 14px; border-radius: 4px; border: none; font-size: 13px; font-family: "Catamaran", sans-serif; width: 100%; box-sizing: border-box; }
.oa-footer-signup button { padding: 10px 14px; background: #F9BF00; color: #333; border: none; border-radius: 4px; font-size: 13px; font-weight: 700; cursor: pointer; font-family: "Catamaran", sans-serif; transition: background 0.2s; }
.oa-footer-signup button:hover { background: #e0ab00; }
.oa-footer-newsletter .oa-footer-social { margin-top: 4px; }


/* Announcement Bar */


/* Footer Newsletter Column */
.oa-footer-newsletter p { font-size: 13px; color: rgba(255,255,255,0.75); margin-bottom: 14px; }
.oa-footer-signup { display: flex; flex-direction: column; gap: 8px; margin-bottom: 20px; }
.oa-footer-signup input[type=email] { padding: 10px 14px; border-radius: 4px; border: none; font-size: 13px; width: 100%; box-sizing: border-box; }
.oa-footer-signup button { padding: 10px 14px; background: #F9BF00; color: #333; border: none; border-radius: 4px; font-size: 13px; font-weight: 700; cursor: pointer; }
.oa-footer-signup button:hover { background: #e0ab00; }
.oa-footer-newsletter .oa-footer-social { margin-top: 4px; }

/* ── Expeditions Archive: Circle Grid Layout ────────────────────── */
.oa-expeditions-archive { background: #fff; }
.oa-expeditions-hero { background: #2E89CE; color: #fff; padding: 48px 20px; text-align: center; }
.oa-expeditions-hero__inner { max-width: 800px; margin: 0 auto; }
.oa-expeditions-hero__title { font-family: "Kalam", cursive; font-size: 36px; font-weight: 400; margin: 0 0 8px; color: #fff; }
.oa-expeditions-hero__sub { font-family: "Catamaran", sans-serif; font-size: 16px; opacity: 0.9; margin: 0; }

.oa-expeditions-content { max-width: 1200px; margin: 0 auto; padding: 40px 20px 60px; }

.oa-exp-section-header { margin: 48px 0 24px; padding-bottom: 12px; border-bottom: 2px solid #CBE0F1; }
.oa-exp-section-header h2 { font-family: "Kalam", cursive; font-size: 24px; font-weight: 400; color: #2E89CE; margin: 0; }
.oa-exp-section-header:first-child { margin-top: 0; }

.oa-exp-circle-grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 28px 20px;
    margin-bottom: 20px;
}

.oa-exp-circle-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-decoration: none;
    color: #333;
    transition: transform 0.2s;
}
.oa-exp-circle-item:hover { transform: translateY(-4px); }
.oa-exp-circle-item:hover .oa-exp-circle-label { color: #2E89CE; }

.oa-exp-circle-img {
    width: 120px;
    height: 120px;
    border-radius: 50%;
    overflow: hidden;
    border: 3px solid #CBE0F1;
    margin-bottom: 10px;
    flex-shrink: 0;
    background: #f0f0f0;
}
.oa-exp-circle-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.oa-exp-circle-label {
    font-family: "Catamaran", sans-serif;
    font-size: 13px;
    font-weight: 600;
    text-align: center;
    line-height: 1.3;
    color: #333;
    transition: color 0.2s;
    max-width: 140px;
}

/* Responsive */
@media (max-width: 1024px) {
    .oa-exp-circle-grid { grid-template-columns: repeat(4, 1fr); gap: 24px 16px; }
}
@media (max-width: 768px) {
    .oa-exp-circle-grid { grid-template-columns: repeat(3, 1fr); gap: 20px 14px; }
    .oa-exp-circle-img { width: 100px; height: 100px; }
    .oa-expeditions-hero__title { font-size: 28px; }
    .oa-expeditions-hero { padding: 32px 16px; }
}
@media (max-width: 480px) {
    .oa-exp-circle-grid { grid-template-columns: 1fr; gap: 18px 12px; }
    .oa-exp-circle-img { width: 90px; height: 90px; }
    .oa-exp-circle-label { font-size: 12px; }
}

/* ── Shop Homepage: USP Bar ────────────────────── */
.oa-shop-usp-bar { display: flex; justify-content: center; gap: 40px; padding: 20px 24px; border-top: 1px solid #e8e8e8; border-bottom: 1px solid #e8e8e8; max-width: 1200px; margin: 0 auto; }
.oa-shop-usp {
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: "Catamaran", sans-serif;
    font-size: 14px;
    font-weight: 600;
    color: #2E89CE;
}
.oa-shop-usp svg { flex-shrink: 0; }

/* ── Shop Homepage: Bestsellers ────────────────────── */
.oa-shop-featured {
    max-width: 1200px;
    margin: 48px auto 0;
    padding: 0 20px 48px;
}
.oa-shop-featured__heading {
    font-family: "Kalam", cursive;
    font-size: 28px;
    font-weight: 400;
    color: #2E89CE;
    text-align: center;
    margin: 0 0 24px;
}
.oa-shop-featured__cta {
    text-align: center;
    margin-top: 28px;
}
.oa-btn {
    display: inline-block;
    padding: 12px 32px;
    background: #2E89CE;
    color: #fff;
    font-family: "Catamaran", sans-serif;
    font-weight: 600;
    font-size: 15px;
    text-decoration: none;
    border-radius: 4px;
    transition: background 0.2s;
}
.oa-btn:hover { background: #1a6faa; color: #fff; }

/* ── Category circle count label ────────────────────── */
.oa-cat-circle__count {
    font-family: "Catamaran", sans-serif;
    font-size: 11px;
    color: #999;
    margin-top: 2px;
}

/* ── Shop USP responsive ────────────────────── */
@media (max-width: 768px) {
    .oa-shop-usp-bar { gap: 16px; padding: 14px; }
    .oa-shop-usp { font-size: 12px; gap: 5px; }
    .oa-shop-usp svg { width: 16px; height: 16px; }
    .oa-shop-featured__heading { font-size: 24px; }
}
@media (max-width: 480px) {
    .oa-shop-usp-bar { flex-direction: column; align-items: center; gap: 8px; }
}


/* ── CUSTOM LANGUAGE SWITCHER ── */
.oa-lang-switcher { position: relative; display: inline-flex; align-items: center; }
.oa-lang-toggle { display: inline-flex; align-items: center; gap: 4px; background: transparent; border: 1px solid rgba(0,0,0,0.15); border-radius: 4px; padding: 3px 8px; cursor: pointer; font-size: 12px; font-family: "Catamaran", sans-serif; font-weight: 600; color: #333; transition: border-color 0.2s, background 0.2s; line-height: 1; }
.oa-lang-toggle:hover { border-color: rgba(0,0,0,0.3); background: rgba(0,0,0,0.03); }
.oa-lang-toggle svg { flex-shrink: 0; }
.oa-lang-caret { transition: transform 0.2s; }
.oa-lang-dropdown { display: none; position: absolute; top: 100%; right: 0; margin-top: 4px; background: #fff; border: 1px solid rgba(0,0,0,0.12); border-radius: 6px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); list-style: none; padding: 4px 0; margin-left: 0; z-index: 10000; min-width: 150px; }
.oa-lang-dropdown.oa-lang-open { display: block; }
.oa-lang-dropdown li { margin: 0; padding: 0; }
.oa-lang-dropdown a { display: block; padding: 6px 14px; font-size: 13px; font-family: "Catamaran", sans-serif; color: #333; text-decoration: none; white-space: nowrap; transition: background 0.15s; }
.oa-lang-dropdown a:hover { background: #f0f7fc; color: #2E89CE; }
.oa-footer-bar .oa-lang-toggle { color: #fff; border-color: rgba(255,255,255,0.3); }
.oa-footer-bar .oa-lang-toggle:hover { border-color: rgba(255,255,255,0.5); background: rgba(255,255,255,0.1); }
.oa-footer-bar .oa-lang-toggle svg { stroke: #fff; }
.oa-footer-bar .oa-lang-dropdown { right: auto; left: 0; bottom: 100%; top: auto; margin-top: 0; margin-bottom: 4px; }
.wpml-ls-statics-shortcode_actions { display: none !important; }

/* =====================================================
   SHOP PAGE REBUILD — 2026-04-02
   ===================================================== */

/* ── Slideshow ── */
.oa-shop-slideshow { position: relative; width: 100%; height: 360px; overflow: hidden; }
.oa-shop-slide { position: absolute; inset: 0; background-size: cover; background-position: center; opacity: 0; transition: opacity 0.8s ease; background-color: #1a5a8a; }
.oa-shop-slide--active { opacity: 1; z-index: 1; }
.oa-shop-slide__overlay { position: absolute; inset: 0; background: linear-gradient(135deg, rgba(20,60,100,0.85) 0%, rgba(46,137,206,0.6) 50%, rgba(0,0,0,0.3) 100%); }
.oa-shop-slide__content { position: relative; z-index: 2; max-width: 700px; padding: 40px 60px; color: #fff; display: flex; flex-direction: column; justify-content: center; height: 100%; }
.oa-shop-slide__content h1 { font-family: "Kalam", cursive; font-size: 2.4rem; margin: 0 0 12px; line-height: 1.2; color: #fff; }
.oa-shop-slide__content p { font-family: "Catamaran", sans-serif; font-size: 1rem; margin: 0 0 20px; opacity: 0.9; line-height: 1.5; }
.oa-btn--white { display: inline-block; background: #fff; color: #2E89CE; padding: 10px 28px; border-radius: 4px; font-family: "Catamaran", sans-serif; font-weight: 600; font-size: 14px; text-decoration: none; transition: background 0.2s, transform 0.2s; }
.oa-btn--white:hover { background: #f0f7fc; transform: translateY(-1px); color: #2E89CE; }
.oa-shop-slideshow__dots { position: absolute; bottom: 20px; left: 50%; transform: translateX(-50%); z-index: 3; display: flex; gap: 8px; }
.oa-slide-dot { width: 10px; height: 10px; border-radius: 50%; border: 2px solid rgba(255,255,255,0.7); background: transparent; cursor: pointer; padding: 0; transition: background 0.2s; }
.oa-slide-dot--active { background: #fff; }
.oa-slide-nav { position: absolute; top: 50%; transform: translateY(-50%); z-index: 3; background: rgba(0,0,0,0.3); color: #fff; border: none; font-size: 2rem; padding: 8px 14px; cursor: pointer; transition: background 0.2s; line-height: 1; border-radius: 4px; }
.oa-slide-nav:hover { background: rgba(0,0,0,0.5); }
.oa-slide-prev { left: 12px; }
.oa-slide-next { right: 12px; }

/* ── Shop sections ── */
.oa-shop-section { padding: 40px 24px; max-width: 100%; }
.oa-shop-section > * { max-width: 1200px; margin-left: auto; margin-right: auto; }
.oa-shop-section--light { background: #ffffff; padding: 40px 24px; }
/* heading constraint handled by section > * rule */
.oa-shop-section__heading { font-family: "Kalam", cursive; font-size: 1.6rem; color: #2E89CE; text-align: center; margin: 0 0 8px; }
.oa-shop-section__subtitle { text-align: center; font-family: "Catamaran", sans-serif; color: #666; font-size: 0.95rem; margin: 0 0 24px; }

/* ── Signature collection cards ── */
.oa-signature-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 24px; }
.oa-signature-card { display: block; text-decoration: none; border-radius: 8px; overflow: hidden; box-shadow: 0 2px 12px rgba(0,0,0,0.08); transition: transform 0.2s, box-shadow 0.2s; background: #fff; }
.oa-signature-card:hover { transform: translateY(-3px); box-shadow: 0 6px 20px rgba(0,0,0,0.12); }
.oa-signature-card__img { height: 200px; background-size: cover; background-position: center; background-color: #e8f2fa; }
.oa-signature-card__body { padding: 20px; }
.oa-signature-card__body h3 { font-family: "Kalam", cursive; font-size: 1.2rem; color: #2E89CE; margin: 0 0 8px; }
.oa-signature-card__body p { font-family: "Catamaran", sans-serif; font-size: 0.9rem; color: #555; line-height: 1.5; margin: 0 0 12px; }
.oa-signature-card__cta { font-family: "Catamaran", sans-serif; font-size: 0.85rem; font-weight: 600; color: #2E89CE; }

/* ── Collection grid (purpose + ingredients) ── */
.oa-collection-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 16px; margin-top: 20px; }
.oa-collection-card { display: block; text-decoration: none; text-align: center; transition: transform 0.2s; }
.oa-collection-card:hover { transform: translateY(-3px); }
.oa-collection-card__img { width: 100%; aspect-ratio: 1; border-radius: 8px; background-size: cover; background-position: center; background-color: #e8f2fa; margin-bottom: 8px; }
.oa-collection-card__label { font-family: "Catamaran", sans-serif; font-size: 0.85rem; font-weight: 600; color: #333; display: block; }

/* ── Customers love grid ── */
.oa-customers-love { max-width: 1200px; margin: 20px auto 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; justify-items: center; }
.oa-customers-love li.product { margin: 0 !important; width: 100% !important; list-style: none; }

/* ── Shop newsletter ── */
.oa-shop-newsletter { background: #CBE0F1; padding: 50px 24px; text-align: center; width: 100%; }
.oa-shop-newsletter__inner { max-width: 520px; margin: 0 auto; }
.oa-shop-newsletter__inner h2 { font-family: "Kalam", cursive; font-size: 1.5rem; color: #2E89CE; margin: 0 0 8px; }
.oa-shop-newsletter__inner p { font-family: "Catamaran", sans-serif; font-size: 0.9rem; color: #555; margin: 0 0 20px; line-height: 1.5; }
.oa-shop-newsletter__form { display: flex; gap: 8px; max-width: 400px; margin: 0 auto; }
.oa-shop-newsletter__form input { flex: 1; padding: 10px 14px; border: 1px solid #ccc; border-radius: 4px; font-size: 14px; font-family: "Catamaran", sans-serif; }
.oa-shop-newsletter__form button { background: #F9BF00; color: #333; border: none; padding: 10px 22px; border-radius: 4px; font-family: "Catamaran", sans-serif; font-weight: 600; cursor: pointer; transition: background 0.2s; white-space: nowrap; }
.oa-shop-newsletter__form button:hover { background: #e8af00; }

/* ── Mobile ── */
@media (max-width: 768px) {
    .oa-shop-slideshow { height: 240px; }
    .oa-shop-slide__content { padding: 30px 20px; }
    .oa-shop-slide__content h1 { font-size: 1.6rem; }
    .oa-signature-grid { grid-template-columns: 1fr; }
    .oa-collection-grid { grid-template-columns: repeat(3, 1fr); gap: 12px; }
    .oa-slide-nav { display: none; }
    .oa-shop-newsletter__form { flex-direction: column; }
    .oa-customers-love { padding: 0 10px; }
}
@media (max-width: 480px) {
    .oa-shop-slideshow { height: 240px; }
    .oa-collection-grid { grid-template-columns: 1fr; }
}

/* Newsletter first name field */
.oa-shop-newsletter__form input[name="fname"] { flex: 0 0 140px; }

/* Full-width shop page — override GP container */
/* replaced by nuclear override above */

@media (max-width: 768px) {
  .oa-customers-love { grid-template-columns: 1fr; }
}

/* Category page layout constraints */
.oa-shop-grid-wrap { max-width: 1200px; margin: 0 auto; padding: 0 24px; }
.oa-shop-toolbar { max-width: 1200px; margin: 0 auto 20px; padding: 0 24px; }
.oa-shop-pagination { max-width: 1200px; margin: 0 auto; padding: 0 24px; }

/* ======= FULL-WIDTH SHOP PAGE — NUCLEAR OVERRIDE ======= */
body.woocommerce-page .grid-container,
body.woocommerce-page .site,
body.woocommerce-page .site-content,
body.woocommerce-page #primary,
body.woocommerce-page .content-area,
body.woocommerce-page .inside-article,
body.woocommerce-page .entry-content,
body.woocommerce-page article {
    max-width: 100% !important;
    width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    float: none !important;
    box-shadow: none !important;
}
body.woocommerce-page #right-sidebar,
body.woocommerce-page .sidebar { display: none !important; }
body.woocommerce-page .inside-article { background: transparent !important; }

/* Product card borders */
.oa-product-grid li.product { border: 1px solid #e5e5e5; border-radius: 8px; padding: 12px; background: #fff; transition: box-shadow 0.2s; }
.oa-product-grid li.product:hover { box-shadow: 0 4px 16px rgba(0,0,0,0.1); }

/* Purpose cards — horizontal scroll */
.oa-shop-section--light .oa-collection-grid { 
    display: flex !important; 
    overflow-x: auto; 
    scroll-snap-type: x mandatory; 
    gap: 16px; 
    padding-bottom: 12px;
    -webkit-overflow-scrolling: touch;
}
.oa-shop-section--light .oa-collection-card { 
    flex: 0 0 200px; 
    scroll-snap-align: start; 
}
.oa-shop-section--light .oa-collection-grid::-webkit-scrollbar { height: 6px; }
.oa-shop-section--light .oa-collection-grid::-webkit-scrollbar-thumb { background: #ccc; border-radius: 3px; }


/* === OA-SHOP-FIXES (consolidated from SESSION4 A/B/C/D — 2026-04-02) === */

/* ── Section centering: all shop sections use flexbox column ── */
.oa-shop-section,
.oa-shop-section--light {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    width: 100% !important;
}
.oa-shop-section__heading,
.oa-shop-section__subtitle {
    text-align: center !important;
    max-width: 1200px !important;
    width: 100% !important;
    display: block !important;
}

/* ── Category circles: centered grid ── */
.oa-cat-circles {
    max-width: 1200px;
    width: 100%;
    justify-content: center;
}

/* ── Customers Love: compact 3-column cards ── */
.oa-customers-love {
    max-width: 750px !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 14px !important;
    align-items: stretch !important;
}
.oa-customers-love li.product {
    display: flex !important;
    flex-direction: column !important;
    padding: 8px !important;
    overflow: hidden !important;
    position: relative !important;
}
.oa-customers-love li.product a.woocommerce-LoopProduct-link {
    flex: 1;
    display: flex;
    flex-direction: column;
}
.oa-customers-love li.product img {
    max-height: 150px !important;
    object-fit: contain !important;
    width: 100% !important;
}
.oa-customers-love li.product .woocommerce-loop-product__title {
    font-size: 0.8rem !important;
    margin: 6px 0 2px !important;
}
.oa-customers-love li.product .price {
    font-size: 0.75rem !important;
    margin-top: auto !important;
}

/* ── Product card buttons: uniform height, flush bottom ── */
.oa-customers-love li.product .button,
.oa-customers-love li.product .add_to_cart_button,
.oa-customers-love li.product a.button,
.oa-product-grid li.product .button,
.oa-product-grid li.product .add_to_cart_button,
.oa-product-grid li.product a.button {
    font-size: 0.78rem !important;
    padding: 8px 12px !important;
    line-height: 1.2 !important;
    min-height: 0 !important;
    height: auto !important;
    border-radius: 0 0 7px 7px !important;
    display: block !important;
    text-align: center !important;
    margin: auto 0 0 0 !important;
    width: 100% !important;
    box-sizing: border-box !important;
}
.oa-product-grid li.product {
    overflow: hidden !important;
    position: relative !important;
}

/* ── Ingredients section: centered circles ── */
.oa-shop-section:not(.oa-shop-section--light) .oa-collection-grid {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    gap: 24px !important;
    max-width: 1000px;
    width: 100%;
}
.oa-shop-section:not(.oa-shop-section--light) .oa-collection-card {
    flex: 0 0 140px !important;
    text-align: center;
}
.oa-shop-section:not(.oa-shop-section--light) .oa-collection-card__img {
    width: 120px !important;
    height: 120px !important;
    border-radius: 50% !important;
    margin: 0 auto 8px !important;
}

/* ── Purpose section: centered in scroll container ── */
.oa-shop-section--light .oa-collection-grid {
    max-width: 1000px;
    width: 100%;
}

/* ── Free shipping promo bar ── */
.oa-shop-promo-bar {
    background: #2E89CE;
    padding: 14px 24px;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
    width: 100%;
}
.oa-shop-promo-bar__left,
.oa-shop-promo-bar__right {
    font-family: "Catamaran", sans-serif;
    color: #fff;
    font-size: 0.95rem;
    font-weight: 600;
}
.oa-shop-promo-bar__right {
    font-size: 1.05rem;
}
.oa-shop-promo-bar__divider {
    width: 1px;
    height: 18px;
    background: rgba(255,255,255,0.4);
}

/* ── Slideshow: center content ── */
.oa-shop-slide {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}
.oa-shop-slide__content {
    text-align: center !important;
    align-items: center !important;
    margin: 0 auto !important;
}
.oa-shop-slide__content h1,
.oa-shop-slide__content p {
    text-align: center !important;
}
.oa-shop-slide__content p {
    max-width: 600px;
}
.oa-shop-slide__content .oa-btn {
    align-self: center !important;
}

/* ── Currency dropdown: compact ── */
.woo-multi-currency .wmc-currency {
    display: inline-block !important;
}
.woo-multi-currency select.wmc-nav {
    font-family: "Catamaran", sans-serif !important;
    font-size: 0.8rem !important;
    font-weight: 600 !important;
    padding: 4px 24px 4px 8px !important;
    border: 1px solid rgba(255,255,255,0.3) !important;
    border-radius: 4px !important;
    background-color: transparent !important;
    color: inherit !important;
    cursor: pointer !important;
    min-width: 0 !important;
    width: auto !important;
    max-width: 180px !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.5'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 6px center !important;
    background-size: 10px !important;
}
.oa-header-row-1 .wmc-nav,
.site-header .wmc-nav {
    color: #fff !important;
}
.oa-footer-bar .wmc-nav {
    color: #CBE0F1 !important;
    border-color: rgba(203,224,241,0.3) !important;
}
.wmc-nav option {
    font-size: 0.8rem !important;
}

/* ── Responsive ── */
@media (max-width: 768px) {
    .oa-customers-love {
        max-width: 100% !important;
        grid-template-columns: repeat(2, 1fr) !important;
    }
    .oa-shop-section:not(.oa-shop-section--light) .oa-collection-card {
        flex: 0 0 110px !important;
    }
    .oa-shop-section:not(.oa-shop-section--light) .oa-collection-card__img {
        width: 90px !important;
        height: 90px !important;
    }
    .oa-shop-promo-bar {
        flex-wrap: wrap;
        gap: 4px;
        padding: 10px 16px;
    }
    .oa-shop-promo-bar__divider { display: none; }
}

/* === OA-HEADER-FIX (session 6 — match Shopify white header) === */

/* Override GP inline header colors: white bg, dark text */
.site-header { background-color: transparent !important; color: inherit !important; }
.site-header .oa-header-row-2 a, .site-header .oa-header-row-3 a { color: #333 !important; }
.site-header .oa-header-row-2 a:hover, .site-header .oa-header-row-3 a:hover { color: #2E89CE !important; }
.main-navigation, .main-navigation ul ul { background-color: #FFFFFF !important; }
.main-navigation .main-nav ul li a { color: #333 !important; }
.main-navigation .main-nav ul li a:hover,
.main-navigation .main-nav ul li.sfHover > a { color: #2E89CE !important; background-color: transparent !important; }
.main-navigation .main-nav ul li[class*="current-menu-"] > a { color: #2E89CE !important; background-color: transparent !important; }

/* Row 1: dark icons on white bg */
.oa-icon { color: #333 !important; }
.oa-icon:hover { color: #2E89CE !important; }
.oa-cart-count { background: #2E89CE; color: #fff; }

/* Row 2: white bg + menu border separator */
.oa-header-row-2 .main-nav > ul.sf-menu > li:first-child > a { padding-left: 0; }
.oa-header-row-2 { background: #FFFFFF !important; border-bottom: 1px solid #e5e5e5 !important; }
.oa-header-row-2 .main-nav > ul.sf-menu > li > a { color: #333 !important; font-weight: 500; }
.oa-header-row-2 .main-nav > ul.sf-menu > li > a:hover { color: #2E89CE !important; }
.oa-header-row-2 .main-nav > ul.sf-menu > li.menu-item-type-custom > a[style*="color"] { color: #90CBF9 !important; } /* SALE item light blue */

/* Row 2: CTA button — outlined to match Shopify */
.oa-cta-button { background: #F9BF00 !important; color: #333 !important; border: none; border-radius: 4px; }
.oa-cta-button:hover { background: #e8b305 !important; color: #333 !important; }
.oa-cta-button svg { stroke: #333; } .oa-cta-button:hover svg { stroke: #333; }

/* Row 3: free shipping text styling */
.oa-free-shipping-text { font-family: "Catamaran", sans-serif; font-size: 0.85rem; color: #333; font-weight: 500; }

/* Dropdown menus: keep dark bg */
.main-navigation .main-nav ul ul { background-color: #1A202C !important; }
.main-navigation .main-nav ul ul li a { color: #fff !important; }
.main-navigation .main-nav ul ul li a:hover { color: #CBE0F1 !important; background-color: #2E89CE !important; }

/* Per-row container widths — tighter for Row 1 and Row 3 */
.oa-header-row-1 .oa-header-container { max-width: 960px; justify-content: space-between; }
.oa-header-row-3 .oa-header-container { max-width: 960px; }
/* Row 1: blue bg with white text/icons */
.oa-header-row-1 { background: #2E89CE !important; }
.oa-header-row-1 .oa-icon { color: #fff !important; }
.oa-header-row-1 .oa-icon:hover { color: #CBE0F1 !important; }
.oa-header-row-1 .oa-hamburger { border-color: rgba(255,255,255,0.7); }
.oa-header-row-1 .oa-hamburger span { background: #fff; }
.oa-header-row-1 .oa-header-logo a { color: #fff !important; }
/* === END OA-HEADER-FIX === */

/* === OA-MOBILE-FIX (session 8 — hamburger visibility + mobile header layout) === */
@media (max-width: 768px) {
  /* Shrink logo on mobile — match Shopify proportions */
  .oa-header-logo img { max-height: 60px; max-width: 200px; }
  
  /* Hide search bar in Row 1 on mobile — Shopify does same */
  .oa-header-row-1 .oa-header-search { display: none !important; }
  
  /* Row 1 container: logo left, icons+hamburger right */
  .oa-header-row-1 .oa-header-container { 
    max-width: 100%; 
    padding: 0 16px;
    justify-content: space-between;
  }
  .oa-header-row-1 { padding: 12px 0; }
  
  /* Icons group: tighter spacing on mobile */
  .oa-header-icons { gap: 8px; }
  
  /* Hide language switcher on mobile Row 1 — save space */
  .oa-header-row-1 .oa-header-utilities { display: none; }
  
  /* Ensure hamburger is visible and properly sized */
  .oa-hamburger { 
    display: flex !important; 
    order: 99; /* always last */
  }

  /* Show Row 3 (newsletter strip) on mobile like Shopify */
  .oa-header-row-3 { 
    display: block !important; 
    padding: 8px 0; 
    background: #f8f8f8; 
    border-bottom: 1px solid #eee; 
  }
  .oa-header-row-3 .oa-header-container { 
    max-width: 100%; 
    padding: 0 16px; 
  }
  .oa-header-row-3 .oa-free-shipping-text { 
    font-size: 0.75rem; 
    text-align: center; 
    display: block; 
    width: 100%; 
  }

  /* Mobile menu: white bg to match desktop nav style */
  body.oa-menu-open .oa-header-row-2 { 
    background: #fff !important; 
    border-top: 1px solid #eee; 
  }
  body.oa-menu-open .oa-header-row-2 .main-nav > ul.sf-menu > li { 
    border-bottom: 1px solid #eee; 
  }
  body.oa-menu-open .oa-header-row-2 .main-nav > ul.sf-menu > li > a { 
    color: #333 !important; 
    padding: 14px 20px; 
  }
  body.oa-menu-open .oa-header-row-2 .main-nav > ul.sf-menu > li > a:hover { 
    color: #2E89CE !important; 
  }
  body.oa-menu-open .oa-header-row-2 .main-nav ul ul { 
    background: #f5f5f5 !important; 
  }
  body.oa-menu-open .oa-header-row-2 .main-nav ul ul li a { 
    color: #555 !important; 
  }
  body.oa-menu-open .oa-header-row-2 .main-nav ul ul li a:hover { 
    color: #2E89CE !important; 
    background: #eee !important; 
  }
}

/* Footer mobile stacking */
@media (max-width: 768px) {
  .oa-footer-main .oa-footer-container { 
    flex-direction: column; 
    gap: 24px; 
    text-align: center; 
  }
  .oa-footer-col { 
    width: 100% !important; 
    flex: none !important; 
  }
  .oa-footer-bar .oa-footer-container { 
    flex-direction: column; 
    text-align: center; 
    gap: 12px; 
  }
}
/* === END OA-MOBILE-FIX === */


/* === END OA-SHOP-FIXES === */

/* =====================================================
   WCML CURRENCY SWITCHER FIXES — 2026-04-05 session 12
   ===================================================== */
/* Footer dropdown: dark text on white dropdown bg */
.oa-footer-bar .wcml-dropdown .wcml-cs-submenu a { color: #333 !important; }
.oa-footer-bar .wcml-dropdown .wcml-cs-submenu li:hover a { color: #2E89CE !important; }
/* Footer toggle: white text + border for visibility on blue bg */
.oa-footer-bar .wcml-dropdown .wcml-cs-active-currency { border-color: rgba(255,255,255,0.4); background: transparent; }
.oa-footer-bar .wcml-dropdown a.wcml-cs-item-toggle { color: #fff !important; font-size: 12px; }
.oa-footer-bar .wcml-dropdown a.wcml-cs-item-toggle:after { border-top-color: #fff; }
/* Footer dropdown position: open upward since it is at bottom of page */
.oa-footer-bar .wcml-dropdown .wcml-cs-submenu { top: auto; bottom: 100%; max-height: 300px; overflow-y: auto; }
/* Header dropdown: ensure readable */
.oa-header-row-3 .wcml-dropdown a.wcml-cs-item-toggle { color: #fff !important; font-size: 12px; }
.oa-header-row-3 .wcml-dropdown a.wcml-cs-item-toggle:after { border-top-color: #fff; }
.oa-header-row-3 .wcml-dropdown .wcml-cs-submenu a { color: #333 !important; }
.oa-header-row-3 .wcml-dropdown .wcml-cs-submenu li:hover a { color: #2E89CE !important; }
.oa-header-row-3 .wcml-dropdown .wcml-cs-active-currency { border-color: rgba(255,255,255,0.4); background: transparent; }
/* General: tighten dropdown width for long currency lists */
.wcml-dropdown { width: auto; min-width: 12em; }
.wcml-dropdown .wcml-cs-submenu { max-height: 350px; overflow-y: auto; }

/* ═══════════════════════════════════════════════════
   GUIDE HUB PAGE SECTIONS — 2026-04-20
═══════════════════════════════════════════════════ */

/* Colour fallback for circles with no image */
.oa-circle-colour-bg {
    display: block;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    background: linear-gradient(135deg, #2a7bb5, #1a5a8a);
}

/* Hub section wrapper */
.oa-guide-hub-section {
    padding: 3rem 0 2rem;
    border-top: 1px solid #eee;
}
.oa-guide-hub-section__inner {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 2rem;
    text-align: center;
}
.oa-guide-hub-section h2 {
    font-size: 1.8rem;
    margin-bottom: 0.75rem;
    color: #1a1a2e;
}
.oa-guide-hub-section > .oa-guide-hub-section__inner > p {
    color: #555;
    max-width: 700px;
    margin: 0 auto 2rem;
    font-size: 1.05rem;
    line-height: 1.6;
}

/* Video embed */
.oa-video-embed {
    position: relative;
    padding-bottom: 56.25%;
    height: 0;
    overflow: hidden;
    max-width: 840px;
    margin: 0 auto;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0,0,0,0.15);
}
.oa-video-embed iframe {
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
}

/* Ebook cards */
.oa-ebook-links {
    display: flex;
    gap: 1.5rem;
    justify-content: center;
    flex-wrap: wrap;
    margin-top: 1rem;
}
.oa-ebook-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    background: #f7f9fc;
    border: 2px solid #e0eaf5;
    border-radius: 12px;
    padding: 1.5rem 2rem;
    text-decoration: none;
    color: #1a1a2e;
    transition: border-color 0.2s, box-shadow 0.2s;
    min-width: 180px;
}
.oa-ebook-card:hover {
    border-color: #2a7bb5;
    box-shadow: 0 4px 16px rgba(42,123,181,0.15);
    color: #2a7bb5;
}
.oa-ebook-card__icon { font-size: 2rem; }
.oa-ebook-card__title { font-weight: 700; font-size: 1rem; }
.oa-ebook-card__sub { font-size: 0.85rem; color: #2a7bb5; font-weight: 600; }

/* Products "customers love" grid */
.oa-love-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 1.5rem;
    margin-top: 1.5rem;
    text-align: left;
}
.oa-love-card {
    display: block;
    text-decoration: none;
    color: inherit;
    background: #fff;
    border: 1px solid #e5e5e5;
    border-radius: 10px;
    overflow: hidden;
    transition: box-shadow 0.2s, transform 0.2s;
}
.oa-love-card:hover {
    box-shadow: 0 6px 24px rgba(0,0,0,0.1);
    transform: translateY(-2px);
}
.oa-love-card__img img {
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
}
.oa-love-card__body {
    padding: 0.75rem 1rem;
}
.oa-love-card__title {
    font-size: 0.9rem;
    font-weight: 600;
    margin: 0 0 0.3rem;
    color: #1a1a2e;
    line-height: 1.3;
}
.oa-love-card__price {
    font-size: 0.95rem;
    color: #2a7bb5;
    font-weight: 700;
}

/* Newsletter section */
.oa-guide-hub-newsletter {
    background: linear-gradient(135deg, #1a1a2e, #2a3a6e);
    color: white;
    border-radius: 12px;
    margin: 2rem 0;
}
.oa-guide-hub-newsletter .oa-guide-hub-section__inner h2 { color: white; }
.oa-guide-hub-newsletter .oa-guide-hub-section__inner p { color: rgba(255,255,255,0.8); }

.oa-btn--yellow {
    display: inline-block;
    background: #f5a623;
    color: #1a1a2e;
    font-weight: 700;
    padding: 0.8rem 2rem;
    border-radius: 6px;
    text-decoration: none;
    font-size: 1rem;
    transition: background 0.2s;
    margin-top: 0.5rem;
}
.oa-btn--yellow:hover { background: #e09010; color: #1a1a2e; }

/* Responsive */
@media (max-width: 600px) {
    .oa-love-grid { grid-template-columns: 1fr; }
    .oa-ebook-links { flex-direction: column; align-items: center; }
    .oa-guide-hub-section__inner { padding: 0 1rem; }
}

/* ═══════════════════════════════════════════════════════════
   OUR CUSTOMERS LOVE — Horizontal Slider (replaces grid)
   Added Session 20
   ═══════════════════════════════════════════════════════════ */

/* Wrapper: gives space for the arrow buttons */
.oa-customers-love-wrap {
    position: relative;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 48px;
    box-sizing: border-box;
}

/* Slider viewport: hides overflow, hides scrollbar */
.oa-customers-love-slider {
    overflow-x: auto;
    overflow-y: hidden;
    width: 100%;
    scrollbar-width: none;
    -ms-overflow-style: none;
    scroll-behavior: smooth;
}
.oa-customers-love-slider::-webkit-scrollbar { display: none; }

/* Override all grid CSS — flex row, no wrap */
.oa-customers-love {
    display: flex !important;
    flex-wrap: nowrap !important;
    grid-template-columns: none !important;
    gap: 16px !important;
    margin: 10px 0 !important;
    padding: 4px !important;
    max-width: none !important;
    width: max-content !important;
}

/* Each card: fixed width so they line up */
.oa-customers-love li.product {
    flex: 0 0 220px !important;
    width: 220px !important;
    min-width: 220px !important;
    max-width: 220px !important;
}

/* Arrow buttons */
.oa-cl-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: #2E89CE;
    color: #fff;
    border: none;
    border-radius: 50%;
    width: 38px;
    height: 38px;
    font-size: 1.6rem;
    line-height: 1;
    cursor: pointer;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s, opacity 0.2s;
    box-shadow: 0 2px 6px rgba(0,0,0,0.15);
}
.oa-cl-arrow:hover { background: #1a6dab; }
.oa-cl-prev { left: 0; }
.oa-cl-next { right: 0; }

@media (max-width: 768px) {
    .oa-customers-love-wrap { padding: 0 36px; }
    .oa-customers-love li.product {
        flex: 0 0 180px !important;
        width: 180px !important;
        min-width: 180px !important;
        max-width: 180px !important;
    }
}

/* ═══════════════════════════════════════════════════════════
   HERO CTA BUTTON — Force white button on cover block
   Session 20
   ═══════════════════════════════════════════════════════════ */
.wp-block-cover .wp-block-button__link,
.wp-block-cover .wp-block-button .wp-block-button__link {
    background-color: #ffffff !important;
    color: #2E89CE !important;
    padding: 14px 32px !important;
    border-radius: 4px !important;
    font-family: "Catamaran", sans-serif !important;
    font-weight: 700 !important;
    font-size: 1rem !important;
    text-decoration: none !important;
    display: inline-block !important;
    letter-spacing: 0.02em !important;
    transition: background 0.2s, color 0.2s !important;
}
.wp-block-cover .wp-block-button__link:hover {
    background-color: #CBE0F1 !important;
    color: #1a6dab !important;
}

/* Ensure all WP block buttons on white/light backgrounds keep the blue style */
.wp-block-button__link.has-background {
    padding: 12px 28px;
    border-radius: 4px;
    font-family: "Catamaran", sans-serif;
    font-weight: 600;
    text-decoration: none;
    display: inline-block;
}

/* ── Hero CTA button (session 20) ── */
.oa-hero__btn { display: inline-block; padding: 14px 36px; border-radius: 40px; font-weight: 700; font-size: 15px; text-decoration: none; cursor: pointer; transition: opacity .2s, transform .2s, background .2s; background: #2E89CE; color: #fff !important; border: 2px solid #2E89CE; font-family: "Catamaran", sans-serif; }
.oa-hero__btn:hover { opacity: 1; transform: translateY(-2px); background: #1a6faa; border-color: #1a6faa; }

/* -- Session 26: Hide empty star ratings in product loops ------------------
   Products with 0 reviews show hollow grey stars. Hidden in loops only;
   single product pages are unaffected (selector scoped to ul.products).   */
.woocommerce ul.products .woocommerce-loop-product__rating,
.woocommerce ul.products .star-rating {
    display: none;
}

/* -- Session 26: USP bar mobile — prevent overflow at 390px --------------- */
@media (max-width: 600px) {
    .oa-shop-usp-bar {
        flex-wrap: wrap;
        gap: 12px 24px;
        justify-content: center;
    }
}

/* === SESSION OA-CSS-FIX (2026-04-23) ================================
   Task 1: Sale page (/sale/, page-id-6750) uses the default WooCommerce
   loop (ul.products li.product), NOT .oa-product-grid, so existing
   padding on .oa-product-grid li.product at line ~1653 does not apply.
   Scope padding + card styling to the sale page's WooCommerce grid.

   Task 2: Category archive hero banner — white title/desc can still
   disappear on busy/dark imagery. Add a solid dark text-shadow so
   the text stays legible regardless of background image, without
   darkening the whole banner further.
   ================================================================== */

/* Task 1 — Sale page product grid padding */
body.page-id-6750 .woocommerce ul.products li.product {
    padding: 12px !important;
    border: 1px solid #e5e5e5;
    border-radius: 8px;
    background: #fff;
    box-sizing: border-box;
    transition: box-shadow 0.2s;
}
body.page-id-6750 .woocommerce ul.products li.product:hover {
    box-shadow: 0 4px 16px rgba(0,0,0,0.1);
}

/* Task 2 — Category hero banner text contrast */
.oa-shop-hero__title,
.oa-shop-hero__desc {
    text-shadow: 0 1px 3px rgba(0,0,0,0.9), 0 0 8px rgba(0,0,0,0.6);
}
/* === end SESSION OA-CSS-FIX ========================================= */

/* ── S31 Checkout padding fix ──────────────────────────────────────────
   Georg feedback: order summary cuts off right, fields cut off left.
   Scoped tightly to body.woocommerce-checkout only. */
body.woocommerce-checkout .site-content,
body.woocommerce-checkout #primary.content-area {
    padding-left: 24px !important;
    padding-right: 24px !important;
    box-sizing: border-box;
}
body.woocommerce-checkout .woocommerce {
    max-width: 1200px;
    margin: 0 auto;
    padding: 20px 0;
}
body.woocommerce-checkout form.checkout.woocommerce-checkout {
    padding: 0 12px;
    box-sizing: border-box;
}
body.woocommerce-checkout #customer_details,
body.woocommerce-checkout #order_review,
body.woocommerce-checkout #order_review_heading {
    padding: 0 12px;
    box-sizing: border-box;
}
@media (max-width: 768px) {
    body.woocommerce-checkout .site-content,
    body.woocommerce-checkout #primary.content-area {
        padding-left: 14px !important;
        padding-right: 14px !important;
    }
    body.woocommerce-checkout #customer_details,
    body.woocommerce-checkout #order_review,
    body.woocommerce-checkout #order_review_heading {
        padding: 0 6px;
    }
}

/* ── S31c Sale page padding strengthening ──────────────────────────────
   Earlier S31 added 12px cell padding + borders, but Georg still sees
   cells flush. Augment with wider padding, grid gap, and inner-element
   padding so title/price don't visually touch the cell edge. */
body.page-id-6750 .woocommerce ul.products {
    gap: 16px !important;
}
body.page-id-6750 .woocommerce ul.products li.product {
    padding: 16px !important;
}
body.page-id-6750 .woocommerce ul.products li.product .woocommerce-loop-product__title,
body.page-id-6750 .woocommerce ul.products li.product .price,
body.page-id-6750 .woocommerce ul.products li.product .star-rating {
    padding: 4px 2px;
}

/* ── S31d T2 Category banner: strengthen text contrast ─────────────────
   Earlier S31 added subtle text-shadow to .oa-shop-hero__title/__desc.
   Georg still reports Albany-DIY-style dark banners with unreadable text.
   Force white text + a stronger dark shadow + a dark overlay under just
   the text block so title/desc stay legible regardless of banner image. */
body.tax-product_cat .oa-shop-hero__title,
body.tax-product_cat .oa-shop-hero__desc,
body.post-type-archive-product .oa-shop-hero__title,
body.post-type-archive-product .oa-shop-hero__desc {
    color: #fff !important;
    text-shadow: 0 2px 6px rgba(0,0,0,0.95), 0 0 14px rgba(0,0,0,0.8) !important;
}
body.tax-product_cat .oa-shop-hero--has-img .oa-shop-hero__inner,
body.post-type-archive-product .oa-shop-hero--has-img .oa-shop-hero__inner {
    background: linear-gradient(180deg, rgba(0,0,0,0.35) 0%, rgba(0,0,0,0.55) 100%);
    padding: 18px 22px;
    border-radius: 6px;
    display: inline-block;
}

/* ── S31d T3 Product grid: force white background under product images ─
   Georg's photos are white/transparent; a grey container bg shows through
   and looks bad. Scope tightly to the WooCommerce loop image wrapper
   (both the new default markup and the oa-product-grid variant) so
   single-product pages and other image containers are not affected. */
.woocommerce ul.products li.product .wc-product-image,
.woocommerce ul.products li.product .inside-wc-product-image,
.woocommerce ul.products li.product .attachment-woocommerce_thumbnail,
.oa-product-grid li.product .wc-product-image,
.oa-product-grid li.product .inside-wc-product-image {
    background: #fff !important;
}
.woocommerce ul.products li.product img.attachment-woocommerce_thumbnail,
.oa-product-grid li.product img.attachment-woocommerce_thumbnail {
    background: #fff !important;
    object-fit: contain;
}

/* S33 Cart / My-Account / single-product padding fix.
   S31's nuclear override strips padding for body.woocommerce-page, which
   catches cart/account/product pages and makes content touch screen edges.
   Restore safe side padding here; shop archives keep full-width layout. */
body.woocommerce-cart .site-content,
body.woocommerce-cart #primary.content-area,
body.woocommerce-account .site-content,
body.woocommerce-account #primary.content-area,
body.single-product .site-content,
body.single-product #primary.content-area {
    padding-left: 24px !important;
    padding-right: 24px !important;
    box-sizing: border-box;
}
body.woocommerce-cart .woocommerce,
body.woocommerce-account .woocommerce,
body.single-product .woocommerce {
    max-width: 1200px;
    margin: 0 auto;
}
@media (max-width: 768px) {
    body.woocommerce-cart .site-content,
    body.woocommerce-cart #primary.content-area,
    body.woocommerce-account .site-content,
    body.woocommerce-account #primary.content-area,
    body.single-product .site-content,
    body.single-product #primary.content-area {
        padding-left: 14px !important;
        padding-right: 14px !important;
    }
}

/* ============================================================
   Blog index -- hero banner (first post)
   ============================================================ */
.oa-blog-hero-wrap {
    max-width: 1200px;
    margin: 0 auto 2.5rem;
    background: #f8f8f8;
    border-radius: 8px;
    overflow: hidden;
    display: grid;
    grid-template-columns: 1fr;
}

@media (min-width: 768px) {
    .oa-blog-hero-wrap {
        grid-template-columns: 1.5fr 1fr;
    }
}

.oa-blog-hero-image {
    overflow: hidden;
    max-height: 420px;
}

.oa-blog-hero-image a {
    display: block;
    height: 100%;
}

.oa-blog-hero-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    transition: transform 0.3s ease;
}

.oa-blog-hero-image:hover .oa-blog-hero-img {
    transform: scale(1.03);
}

.oa-blog-hero-content {
    padding: 2rem 2.5rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 1rem;
}

.oa-blog-hero-date {
    font-size: 0.85rem;
    color: #888;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.oa-blog-hero-title {
    font-size: clamp(1.4rem, 2.5vw, 2rem);
    line-height: 1.25;
    margin: 0;
}

.oa-blog-hero-title a {
    color: inherit;
    text-decoration: none;
}

.oa-blog-hero-title a:hover {
    color: var(--contrast-color, #3a3a3a);
    text-decoration: underline;
}

.oa-blog-hero-excerpt {
    font-size: 1rem;
    line-height: 1.6;
    color: #555;
    margin: 0;
}

.oa-blog-hero-cta {
    align-self: flex-start;
    margin-top: 0.5rem;
}

@media (max-width: 767px) {
    .oa-blog-hero-image {
        max-height: 220px;
    }
    .oa-blog-hero-content {
        padding: 1.5rem;
    }
}

/* ============================================================
   Mobile QC fixes — 2026-05-01
   375px breakpoint (iPhone SE)
   ============================================================ */

/* === CRITICAL 1: Customers Love slider — prevent 1200px wrap expansion === */
@media (max-width: 480px) {
    .oa-customers-love-wrap {
        max-width: 100% !important;
        overflow: hidden;
        padding: 0 32px !important;
    }
    .oa-customers-love li.product {
        flex: 0 0 140px !important;
        width: 140px !important;
        min-width: 140px !important;
        max-width: 140px !important;
    }
}

/* === CRITICAL 2: Shop sections — box-model fix (24px padding overflow) === */
@media (max-width: 480px) {
    .oa-shop-section,
    .oa-shop-section--light {
        box-sizing: border-box !important;
        overflow-x: hidden !important;
    }
}

/* === CRITICAL 3: Cart/Checkout — WC block alignwide overflow === */
@media (max-width: 480px) {
    .wp-block-woocommerce-cart.alignwide,
    .wp-block-woocommerce-checkout.alignwide {
        max-width: 100% !important;
        overflow-x: hidden !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
    .wc-block-grid__products {
        max-width: 100% !important;
        overflow: hidden !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        box-sizing: border-box !important;
    }
}

/* === IMPORTANT 4: Add-to-cart buttons — 44px tap target === */
@media (max-width: 480px) {
    .oa-customers-love li.product .add_to_cart_button,
    .oa-customers-love li.product .button,
    .oa-product-grid li.product .add_to_cart_button,
    .oa-product-grid li.product a.button {
        min-height: 44px !important;
        padding: 12px 14px !important;
        font-size: 0.85rem !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        line-height: 1.3 !important;
    }
}

/* === IMPORTANT 5: Language switcher — 44px tap target === */
@media (max-width: 480px) {
    .oa-lang-toggle {
        min-height: 44px !important;
        padding-top: 8px !important;
        padding-bottom: 8px !important;
        display: inline-flex !important;
        align-items: center !important;
    }
}

/* === IMPORTANT 6: Customers Love slider arrows — 44px tap target === */
@media (max-width: 480px) {
    .oa-cl-arrow {
        width: 44px !important;
        height: 44px !important;
    }
}

/* === CRITICAL 2b: Newsletter + promo bar box-model fix === */
@media (max-width: 480px) {
    .oa-shop-newsletter {
        box-sizing: border-box !important;
        overflow-x: hidden !important;
    }
    .oa-shop-promo-bar {
        box-sizing: border-box !important;
    }
}

/* === IMPORTANT 4b: WC block product grid add-to-cart buttons === */
@media (max-width: 480px) {
    .wc-block-grid__product-add-to-cart .wp-block-button__link,
    .wc-block-grid .wp-block-button__link {
        min-height: 44px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
    }
}


/* ============================================================
   Payment icon sizing fixes — 2026-05-01
   ============================================================ */

/* Stripe: reduce ~20% vs other icons */
.oa-footer-bar-right.oa-payment-icons img[alt="Stripe"] {
    width: 30px;
    height: 19px;
    opacity: 0.85;
}

/* SSL lock: slightly larger, neutral grey (standard across payment footers) */
.oa-footer-bar-right.oa-payment-icons img[alt="SSL Secure"] {
    width: 28px;
    height: 28px;
    filter: brightness(0) saturate(100%) invert(77%) sepia(61%) saturate(700%) hue-rotate(2deg) brightness(103%);
    opacity: 1;
}

/* ── S34 Block Checkout Fix ──────────────────────────────────────────────
   Georg feedback: no left/right margin, order summary cut off.
   Root cause: nuclear woocommerce-page override zeros entry-content padding;
   alignwide class extends block beyond content bounds.
   Fix: scope checkout-specific overrides with higher specificity. */

/* Restore entry-content padding for checkout only */
body.woocommerce-checkout .inside-article,
body.woocommerce-checkout .entry-content,
body.woocommerce-checkout article.type-page {
    padding-left: 20px !important;
    padding-right: 20px !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

/* Constrain and centre the blocks checkout container */
body.woocommerce-checkout .wp-block-woocommerce-checkout.alignwide,
body.woocommerce-checkout .wp-block-woocommerce-checkout {
    max-width: 1200px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-sizing: border-box !important;
    width: 100% !important;
}

/* Ensure inner panels don't overflow */
body.woocommerce-checkout .wc-block-checkout__main,
body.woocommerce-checkout .wc-block-checkout__sidebar {
    min-width: 0;
    box-sizing: border-box;
}

/* Fix font rendering -- Catamaran on all checkout text */
body.woocommerce-checkout,
body.woocommerce-checkout input,
body.woocommerce-checkout select,
body.woocommerce-checkout textarea,
body.woocommerce-checkout label,
body.woocommerce-checkout p {
    font-family: 'Catamaran', sans-serif !important;
}

@media (max-width: 768px) {
    body.woocommerce-checkout .inside-article,
    body.woocommerce-checkout .entry-content {
        padding-left: 12px !important;
        padding-right: 12px !important;
    }
}

/* ── S35 Regular page margin fix ──────────────────────────────────────────
   Nuclear override (.one-container .inside-article padding:0) was stripping
   margins from regular pages (Contact, About, etc).
   Restore padding for all pages that use the ag-content-wrapper structure. */

.ag-body,
.ag-content-wrapper .ag-body {
    padding-left: 24px !important;
    padding-right: 24px !important;
    max-width: 960px;
    margin-left: auto;
    margin-right: auto;
    box-sizing: border-box;
}

@media (max-width: 768px) {
    .ag-body,
    .ag-content-wrapper .ag-body {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }
}

/* ============================================================
   S38 fix — checkout radio label clipping
   The tunl-woo plugin (includes/assets/css/shipping.css) sets
   margin-left:16px !important on every block-checkout radio input.
   Combined with its own left:16px, the radio lands at 32px and
   overruns the 48px label padding, clipping the first letter of
   every shipping AND payment option ("Free" -> "ree", etc).
   Higher-specificity override restores WC default spacing.
   ============================================================ */
body.woocommerce-checkout .wc-block-components-radio-control .wc-block-components-radio-control__input {
    margin-left: 0 !important;
}

/* ============================================================
   S38 (day 2) fix — category banner sub-header unreadable
   .oa-shop-hero__inner description <p> renders at #333 (dark) over a
   dark background image banner, so the category description is barely
   legible (same on every product category). Make it light with a
   shadow, but ONLY when the hero actually has a background image so
   categories without one aren't turned invisible.
   ============================================================ */
.oa-shop-hero--has-img .oa-shop-hero__inner p {
    color: #ffffff !important;
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.65);
}

/* ===========================================================
   S82 — Affiliate forms (register + login) styling
   Fixes edge-hug; constrains width; gives proper padding.
   =========================================================== */
.affwp-form.affwp-register-form,
.affwp-form.affwp-login-form,
.affwp-form.affwp-update-profile-form {
    max-width: 560px;
    margin: 2rem auto;
    padding: 2rem 1.5rem;
    background: #fff;
    border: 1px solid #e5e5e5;
    border-radius: 8px;
    box-sizing: border-box;
}
.affwp-form fieldset {
    border: none;
    padding: 0;
    margin: 0;
}
.affwp-form legend {
    font-size: 1.4rem;
    font-weight: 600;
    margin-bottom: 1rem;
    padding: 0;
    width: 100%;
}
.affwp-form .affwp-field-label {
    display: block;
    margin-bottom: 0.4rem;
    font-weight: 600;
}
.affwp-form .affwp-field-label .required {
    color: #d33;
    font-weight: 400;
    font-size: 0.85em;
}
.affwp-form input.affwp-field,
.affwp-form textarea.affwp-field,
.affwp-form select.affwp-field {
    width: 100%;
    padding: 0.6rem 0.75rem;
    border: 1px solid #ccc;
    border-radius: 4px;
    box-sizing: border-box;
    font-size: 1rem;
}
.affwp-form textarea.affwp-field {
    min-height: 100px;
}
.affwp-form p {
    margin: 0 0 1.2rem;
}
.affwp-form input[type=submit],
.affwp-form button[type=submit] {
    background: var(--accent-color, #2271b1);
    color: #fff;
    border: none;
    padding: 0.7rem 1.6rem;
    border-radius: 4px;
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
}
.affwp-form input[type=submit]:hover,
.affwp-form button[type=submit]:hover {
    opacity: 0.9;
}
@media (max-width: 600px) {
    .affwp-form.affwp-register-form,
    .affwp-form.affwp-login-form {
        margin: 1rem;
        padding: 1.25rem 1rem;
    }
}
