
:root {
  --swoop-orange:#F18D55; --swoop-teal:#004d40; --swoop-dark:#003B3E; --swoop-cream:#faf5ee; --swoop-yellow:#F18D55; --swoop-pink:#F18D55;
}
.product-blue-surface { background-color:#004d40 !important; color:#fff; }
.product-blue-accent { background-color:#004d40 !important; color:#fff !important; }
.product-blue-border { border-color:#00695c !important; }
.product-blue-border-soft { border-color:rgba(0,105,92,.5) !important; }
html { scroll-padding-top: 120px; }
body.swoop-commerce { font-family:'Noto Sans', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; background:var(--swoop-cream); }
.font-brand { font-family:'Fredoka','Noto Sans',sans-serif; }
.custom-scrollbar::-webkit-scrollbar { width:4px; }
.custom-scrollbar::-webkit-scrollbar-track { background:rgba(0,0,0,.05); border-radius:4px; }
.custom-scrollbar::-webkit-scrollbar-thumb { background:#00695c; border-radius:4px; }
.no-scrollbar::-webkit-scrollbar { display:none; }
.no-scrollbar { scrollbar-width:none; }
.screen-reader-text,.swoop-skip-link { position:absolute!important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.swoop-skip-link:focus { clip:auto!important; width:auto; height:auto; margin:0; left:12px; top:12px; padding:10px 14px; background:#fff; color:#111; z-index:9999; border-radius:8px; }
.custom-logo-link img { width:230px; max-width:100%; height:auto; max-height:none; }
.swoop-logo .custom-logo-link { display:flex; align-items:center; }
.gallery-dot { width:8px; height:8px; border:0; padding:0; border-radius:999px; background:#d6d3d1; cursor:pointer; transition:width .2s ease, background-color .2s ease; }
.gallery-dot:hover { background:#a8a29e; }
.gallery-dot.is-active { width:24px; background:#00695c; }

/* Continuous customer-message stream. All messages remain in the initial HTML
   for accessibility and discoverability; the second set provides a seamless loop. */
.reviews-chat-section { background:linear-gradient(180deg,#00695c 0%,#004d40 100%); overflow:hidden; }
.reviews-chat-kicker { display:inline-flex; align-items:center; min-height:28px; padding:0 14px; border-radius:999px; background:#F18D55; color:#fff; font:900 11px/1 'Fredoka','Noto Sans',sans-serif; letter-spacing:.08em; }
.reviews-chat-intro { max-width:540px; margin:0 auto 30px; color:#fff; font-size:14px; font-weight:700; }
.reviews-chat-window { margin-inline:calc(50% - 50vw); overflow:hidden; padding:18px 0 24px; cursor:grab; }
.reviews-chat-track,.reviews-chat-repeat { display:flex; align-items:stretch; gap:18px; width:max-content; }
.reviews-chat-track { animation:reviews-chat-marquee 38s linear infinite; }
.reviews-chat-window:hover .reviews-chat-track,.reviews-chat-window:focus-within .reviews-chat-track,.reviews-chat-section.is-paused .reviews-chat-track { animation-play-state:paused; }
.reviews-chat-bubble { position:relative; flex:0 0 min(350px,76vw); min-height:150px; padding:20px 22px; border:1px solid rgba(0,59,62,.12); border-radius:24px 24px 24px 6px; box-shadow:0 12px 26px rgba(0,59,62,.12); text-align:left; }
.reviews-chat-bubble::after { content:''; position:absolute; bottom:-9px; left:18px; width:18px; height:18px; background:inherit; transform:rotate(45deg); border-right:1px solid rgba(0,59,62,.1); border-bottom:1px solid rgba(0,59,62,.1); }
.reviews-chat-bubble--blue { background:#A6DCF2; color:#003B3E; }
.reviews-chat-bubble--white { background:#fff; color:#003B3E; }
.reviews-chat-bubble--peach { background:#ffe4d1; color:#003B3E; }
.reviews-chat-person { display:flex; align-items:center; gap:8px; margin-bottom:14px; color:#003B3E; font:900 12px/1 'Fredoka','Noto Sans',sans-serif; letter-spacing:.04em; }
.reviews-chat-avatar { display:inline-flex; align-items:center; justify-content:center; width:30px; height:30px; border-radius:50%; background:#003B3E; color:#fff; font-size:10px; }
.reviews-chat-stars { margin-left:auto; color:#ef9d2f; letter-spacing:1px; font-size:12px; }
.reviews-chat-bubble p { margin:0; font-size:16px; font-weight:800; line-height:1.45; }
.reviews-chat-toggle { margin-top:16px; min-height:44px; padding:0 18px; border:1px solid #003B3E; border-radius:999px; background:#fff; color:#003B3E; font:900 12px/1 'Fredoka','Noto Sans',sans-serif; cursor:pointer; }
.reviews-chat-toggle:hover,.reviews-chat-toggle:focus-visible { background:#003B3E; color:#fff; }
@keyframes reviews-chat-marquee { from { transform:translateX(0); } to { transform:translateX(-50%); } }
@media (prefers-reduced-motion:reduce) { .reviews-chat-track { animation:none; } .reviews-chat-window { overflow-x:auto; cursor:auto; } }

/* The main gallery is intentionally a single, full-bleed product image.
   The thumbnail rail and dots remain separate controls for that image. */
.product-image-stage { padding:0 !important; background:#fff !important; border:0 !important; }
.product-image-stage .gallery-stage-title,
.product-image-stage .gallery-stage-gifts { display:none; }
.product-image-stage .gallery-stage-media { margin:0 !important; padding:0 !important; width:100%; height:100%; }
.product-image-stage .gallery-stage-frame { width:100%; height:100%; max-height:none !important; border-radius:inherit; }
.product-image-stage #main-display-img { width:100%; height:100%; object-fit:contain; }

/* Wider desktop canvas: keeps the original mobile layout while giving the
   storefront, navigation and content sections more room on larger screens. */
@media (min-width:1024px) {
  body.theme-swoop-commerce .max-w-6xl {
    width:calc(100% - 40px);
    max-width:1540px;
  }
  body.theme-swoop-commerce .max-w-5xl {
    width:calc(100% - 40px);
    max-width:1350px;
  }
  body.theme-swoop-commerce .max-w-4xl {
    width:calc(100% - 40px);
    max-width:1200px;
  }

  /* Make the product gallery and buy panel the focal point of the desktop
     first screen, while staying slightly below the reference template scale. */
  body.theme-swoop-commerce #shop > .grid > .lg\:col-span-7 > .flex {
    height:780px;
  }
  body.theme-swoop-commerce #shop .product-image-stage {
    flex:0 0 auto;
    height:auto;
    width:100%;
    max-width:none;
    align-self:stretch;
    aspect-ratio:1 / 1;
  }
  body.theme-swoop-commerce #shop > .grid > .lg\:col-span-5 > * + * {
    margin-top:1.65rem;
  }
  body.theme-swoop-commerce #shop > .grid > .lg\:col-span-5 h1 {
    font-size:3.5rem;
    line-height:.98;
  }
  body.theme-swoop-commerce #shop > .grid > .lg\:col-span-5 h1 + p {
    font-size:1.1rem;
    line-height:1.45;
    margin-top:.6rem;
  }
  body.theme-swoop-commerce #shop > .grid > .lg\:col-span-5 > ul {
    font-size:1.05rem;
    line-height:1.55;
  }
  body.theme-swoop-commerce #shop #bundle-plus {
    padding:1.5rem;
  }
  body.theme-swoop-commerce #shop #bundle-plus h3 {
    font-size:1.875rem;
  }
}
}
.swoop-menu-list,.swoop-mobile-menu-list,.swoop-footer-menu-list { list-style:none; margin:0; padding:0; }
.swoop-menu-list { display:flex; align-items:center; gap:2rem; font-size:.875rem; font-weight:800; color:#44403c; }
.swoop-menu-list a:hover { color:var(--swoop-orange); }
.swoop-mobile-menu-list { display:grid; gap:.25rem; }
.swoop-mobile-menu-list li a { display:block; padding:.8rem 1rem; border-radius:12px; font-weight:800; color:#292524; }
.swoop-mobile-menu-list li a:hover { background:#f5f5f4; color:var(--swoop-orange); }
.swoop-cart-count { position:absolute; top:-4px; right:-4px; background:var(--swoop-orange); color:#fff; font-size:10px; font-weight:800; width:20px; height:20px; border-radius:999px; display:flex; align-items:center; justify-content:center; border:2px solid white; }
.swoop-footer-menu-list { display:flex; flex-wrap:wrap; justify-content:center; gap:1.5rem; font-size:.75rem; font-weight:800; color:#fff; text-transform:uppercase; }
.swoop-footer-menu-list a:hover { color:#F18D55; }
.swoop-social { width:34px; height:34px; display:flex; align-items:center; justify-content:center; border-radius:999px; background:#00695c; color:#fff; font-weight:900; }
.swoop-social:hover { background:#F18D55; }
.swoop-page-card { background:#fff; border:1px solid #e7e5e4; border-radius:28px; padding:clamp(1.5rem,4vw,3rem); box-shadow:0 12px 35px rgba(0,0,0,.06); }
.swoop-page-title { font-family:'Fredoka','Noto Sans',sans-serif; font-weight:900; color:var(--swoop-dark); font-size:clamp(2rem,5vw,3.75rem); line-height:1.05; letter-spacing:-.02em; }
.swoop-eyebrow { color:var(--swoop-orange); font-weight:900; font-size:.75rem; letter-spacing:.14em; text-transform:uppercase; }
.swoop-prose { color:#44403c; line-height:1.8; }
.swoop-prose > * + * { margin-top:1.1em; }
.swoop-prose h2,.swoop-prose h3 { font-family:'Fredoka','Noto Sans',sans-serif; color:var(--swoop-dark); font-weight:900; line-height:1.2; margin-top:1.7em; }
.swoop-prose h2 { font-size:2rem; } .swoop-prose h3 { font-size:1.45rem; }
.swoop-prose a { color:#00695c; text-decoration:underline; font-weight:700; }
.swoop-prose ul,.swoop-prose ol { padding-left:1.3rem; }
.swoop-prose ul { list-style:disc; } .swoop-prose ol { list-style:decimal; }
.swoop-btn { display:inline-flex; align-items:center; justify-content:center; padding:.9rem 1.5rem; border-radius:999px; background:var(--swoop-orange); color:#fff; font-weight:900; font-family:'Fredoka','Noto Sans',sans-serif; text-transform:uppercase; box-shadow:0 8px 20px rgba(242,101,34,.2); transition:.2s; }
.swoop-btn:hover { transform:translateY(-1px); filter:brightness(.95); }
.swoop-input { width:100%; border:1px solid #d6d3d1; border-radius:14px; padding:.85rem 1rem; background:#fff; outline:none; }
.swoop-input:focus { border-color:#00897b; box-shadow:0 0 0 3px rgba(0,137,123,.12); }
.swoop-label { display:block; font-size:.8rem; font-weight:900; color:#292524; margin-bottom:.4rem; }
.swoop-alert { border-radius:14px; padding:.9rem 1rem; margin-bottom:1rem; font-size:.875rem; font-weight:700; }
.swoop-alert-success { background:#ecfdf5; color:#065f46; border:1px solid #a7f3d0; }
.swoop-alert-error { background:#fff1f2; color:#9f1239; border:1px solid #fecdd3; }
.swoop-post-card { background:#fff; border:1px solid #e7e5e4; border-radius:24px; overflow:hidden; box-shadow:0 8px 30px rgba(0,0,0,.05); }
.swoop-sidebar { display:grid; gap:1rem; align-content:start; }
.swoop-sidebar-card { background:#fff; border:1px solid #e7e5e4; border-radius:20px; padding:1.25rem; }
.swoop-pagination { margin-top:2rem; }
.swoop-pagination .nav-links { display:flex; flex-wrap:wrap; gap:.5rem; }
.swoop-pagination .page-numbers { padding:.55rem .8rem; border-radius:10px; background:#fff; border:1px solid #e7e5e4; }
.swoop-pagination .current { background:#004d40; color:#fff; border-color:#00695c; }

/* WooCommerce */
.woocommerce .woocommerce-breadcrumb { color:#78716c; margin-bottom:1.5rem; font-size:.8rem; }
.woocommerce h1,.woocommerce h2,.woocommerce h3 { font-family:'Fredoka','Noto Sans',sans-serif; font-weight:900; color:var(--swoop-dark); }
.woocommerce ul.products { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1.25rem; }
.woocommerce ul.products::before,.woocommerce ul.products::after { display:none; }
.woocommerce ul.products li.product { width:auto!important; margin:0!important; background:#fff; border:1px solid #e7e5e4; border-radius:22px; overflow:hidden; padding:0 0 1rem; box-shadow:0 8px 25px rgba(0,0,0,.05); }
.woocommerce ul.products li.product a img { margin:0 0 1rem; aspect-ratio:1/1; object-fit:cover; }
.woocommerce ul.products li.product .woocommerce-loop-product__title,.woocommerce ul.products li.product .price,.woocommerce ul.products li.product .button { margin-left:1rem; margin-right:1rem; }
.woocommerce ul.products li.product .price { color:#00695c; font-weight:900; }
.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,.woocommerce #respond input#submit { background:var(--swoop-orange)!important; color:#fff!important; border-radius:999px!important; font-weight:900!important; padding:.8rem 1.1rem!important; }
.woocommerce a.button:hover,.woocommerce button.button:hover { filter:brightness(.95); }
.woocommerce div.product { background:#fff; border:1px solid #e7e5e4; border-radius:28px; padding:clamp(1rem,3vw,2rem); }
.woocommerce div.product p.price,.woocommerce div.product span.price { color:#00695c; font-weight:900; }
.woocommerce .quantity .qty { min-height:42px; border:1px solid #d6d3d1; border-radius:10px; }
.woocommerce-message,.woocommerce-info,.woocommerce-error { border-radius:16px; background:#fff; border-top-color:#00695c; }
.woocommerce form .form-row input.input-text,.woocommerce form .form-row textarea,.select2-container--default .select2-selection--single { border:1px solid #d6d3d1; border-radius:12px; min-height:44px; padding:.6rem .8rem; }
.woocommerce table.shop_table { border-radius:18px; overflow:hidden; background:#fff; }
.woocommerce-checkout #payment { background:#f5f5f4; border-radius:18px; }

@media (max-width:1023px) { .woocommerce ul.products { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:640px) {
  .swoop-announcement { position:relative!important; }
  .swoop-site-header { top:0!important; }
  html { scroll-padding-top:80px; }
  .woocommerce ul.products { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; }
  .woocommerce ul.products li.product .button { font-size:.7rem; }
}

/* Brand accent normalization: map the former red/pink palette to the
   MadCleanPets logo coral (#F18D55) without changing page structure. */
body.theme-swoop-commerce [class~="text-[#e91e63]"],
body.theme-swoop-commerce [class~="text-[#f26522]"],
body.theme-swoop-commerce [class~="text-rose-600"] { color:#F18D55 !important; }
body.theme-swoop-commerce [class~="bg-[#e91e63]"],
body.theme-swoop-commerce [class~="bg-[#f26522]"] { background-color:#F18D55 !important; }
body.theme-swoop-commerce [class~="border-[#e91e63]"] { border-color:#F18D55 !important; }
body.theme-swoop-commerce [class~="bg-[#f8bbd0]"],
body.theme-swoop-commerce [class~="bg-[#fce4ec]"],
body.theme-swoop-commerce [class~="bg-pink-300"] { background-color:#FBE1D2 !important; }
body.theme-swoop-commerce [class~="border-pink-200"] { border-color:#F7C3A6 !important; }
body.theme-swoop-commerce [class~="from-[#e91e63]"] {
  --tw-gradient-from:#F18D55 var(--tw-gradient-from-position) !important;
  --tw-gradient-to:rgb(241 141 85 / 0) var(--tw-gradient-to-position) !important;
}
body.theme-swoop-commerce [class~="from-[#f06292]"] {
  --tw-gradient-from:#F7B18C var(--tw-gradient-from-position) !important;
  --tw-gradient-to:rgb(247 177 140 / 0) var(--tw-gradient-to-position) !important;
}
body.theme-swoop-commerce .has-swoop-pink-color { color:#F18D55 !important; }
body.theme-swoop-commerce .has-swoop-pink-background-color { background-color:#F18D55 !important; }
.cta-logo-orange { background-color:#F18D55 !important; color:#fff !important; }
.cta-logo-orange:hover, .cta-logo-orange:focus-visible { background-color:#D97442 !important; color:#fff !important; }

/* Product colour SKUs: show the actual variant instead of abstract colour dots. */
.sku-color-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); width:min(100%,468px); margin-left:0; margin-right:auto; padding-left:0!important; align-items:flex-start; gap:16px; }
.sku-color-option { width:100%; padding:6px; border:2px solid transparent; border-radius:16px; background:#fff; text-align:center; transition:border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.sku-color-option:hover { transform:translateY(-2px); }
.sku-color-option:focus-visible { outline:3px solid rgba(241,141,85,.42); outline-offset:3px; }
.sku-color-option.is-selected { border-color:#004d40; box-shadow:0 8px 20px rgba(0,77,64,.13); }
.sku-color-image { display:flex; align-items:center; justify-content:center; height:126px; overflow:hidden; border-radius:12px; background:#faf5ee; }
.sku-color-image img { width:100%; height:100%; object-fit:cover; object-position:center; transform:none; }
.sku-color-name { display:block; margin-top:8px; color:#003B3E; font-family:'Fredoka','Noto Sans',sans-serif; font-size:14px; font-weight:900; letter-spacing:.04em; }
.sku-color-description { display:block; margin-top:3px; color:#78716c; font-size:12px; font-weight:700; line-height:1.3; }
@media (max-width:640px) { .sku-color-grid { gap:10px; } .sku-color-image { height:112px; } .sku-color-name { font-size:12px; } .sku-color-description { font-size:11px; } }

/* The selected package image mirrors the chosen product colour. */
body.theme-swoop-commerce #shop #bundle-plus.sku-bundle-card { width:min(100%,468px); margin-left:0; margin-right:auto; padding:14px !important; }
.sku-bundle-visual { width:min(100%,440px); height:min(440px,78vw); margin-inline:auto; overflow:hidden; border-radius:18px; background:#faf5ee; }
.sku-bundle-visual img { display:block; width:100%; height:100%; object-fit:contain; transition:opacity .18s ease; }
@media (max-width:640px) { body.theme-swoop-commerce #shop #bundle-plus.sku-bundle-card { width:100%; } .sku-bundle-visual { height:min(400px,78vw); } }
