/*
Theme Name: Frozen Joy
Theme URI: https://frozenjoy.co
Author: Frozen Joy
Description: Custom WooCommerce theme for Frozen Joy — real fruit flavor, hand-crafted into playful fruit-shaped ice cream. Homepage matches the Frozen Joy brand design; products, cart and checkout are powered by WooCommerce.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: frozen-joy
WC requires at least: 7.0
WC tested up to: 9.0
*/

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: #FBF7F0; color: #0F1B3D; font-family: "Plus Jakarta Sans", system-ui, sans-serif; -webkit-font-smoothing: antialiased; }
a { color: #0F1B3D; text-decoration: none; }
img { display: block; max-width: 100%; }
::selection { background: #0F1B3D; color: #FBF7F0; }

/* flavor cards */
.fj-flavor { transition: transform 320ms cubic-bezier(0.2,0,0.2,1); }
.fj-flavor:hover { transform: translateY(-8px); }
.fj-flavor .fj-add { opacity:0; transform:translateY(6px); transition:opacity 260ms ease, transform 260ms ease; }
.fj-flavor:hover .fj-add { opacity:1; transform:translateY(0); }
.fj-add:hover { background:#A21015; }
.fj-add.loading { opacity:1 !important; transform:none !important; }
.fj-add.added::after { content:" ✓"; }

/* header nav (centered) */
.main-nav { flex:0 0 auto; display:flex; justify-content:center; }
.main-nav ul.fj-menu, .fj-menu {
  list-style:none !important; margin:0; padding:0; display:flex; align-items:center;
  gap:clamp(18px,2.6vw,40px); font-family:'Fredoka',cursive; font-size:17.5px; font-weight:500;
}
.main-nav ul.fj-menu li, .fj-menu li { margin:0; padding:0; list-style:none !important; }
.fj-menu li::before, .fj-menu li::marker { content:none !important; display:none !important; }
.fj-menu a, .nav-link { color:#0F1B3D; text-decoration:none; transition:color 180ms ease; white-space:nowrap; }
.fj-menu a:hover, .fj-menu .current-menu-item > a, .fj-menu .current_page_item > a { color:#C4161C; }

/* footer newsletter input — white text on red */
#subscribe-form input { color:#FFFFFF !important; }
#subscribe-form input::placeholder { color:rgba(255,255,255,0.75); opacity:1; }
#subscribe-form input:-ms-input-placeholder { color:rgba(255,255,255,0.75); }
#subscribe-form input:focus { border-color:#FFFFFF !important; }


/* reviews slider */
.fj-reviews { position:relative; overflow:hidden; }
.fj-reviews-track { display:flex; transition:transform 520ms cubic-bezier(0.4,0,0.2,1); will-change:transform; }
.fj-review-slide { flex:0 0 33.3333%; box-sizing:border-box; padding:0 12px; }
.fj-review-slide .review-card { transition:transform 320ms ease, box-shadow 320ms ease; }
.fj-review-slide .review-card:hover { transform:translateY(-6px); box-shadow:0 18px 40px rgba(15,27,61,0.10); }
.fj-reviews-nav { display:flex; align-items:center; justify-content:center; gap:16px; margin-top:clamp(24px,3vw,36px); }
.fj-rev-prev, .fj-rev-next {
  width:44px; height:44px; border-radius:100px; border:1px solid rgba(15,27,61,0.2); background:#FBF7F0;
  color:#0F1B3D; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background 200ms ease, color 200ms ease;
}
.fj-rev-prev:hover, .fj-rev-next:hover { background:#C4161C; color:#fff; border-color:#C4161C; }
.fj-reviews-dots { display:flex; gap:8px; }
.fj-reviews-dots button { width:9px; height:9px; border-radius:100px; border:none; padding:0; cursor:pointer; background:rgba(15,27,61,0.25); transition:background 200ms ease, width 200ms ease; }
.fj-reviews-dots button.active { background:#C4161C; width:24px; }
@media (max-width:1000px) { .fj-review-slide { flex-basis:50%; } }
@media (max-width:620px)  { .fj-review-slide { flex-basis:100%; } }

/* floating WhatsApp button */
.fj-whatsapp {
  position:fixed; right:22px; bottom:22px; z-index:9990;
  width:58px; height:58px; border-radius:100px; background:#25D366; color:#fff;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 10px 26px rgba(37,211,102,0.45);
  transition:transform 200ms ease, box-shadow 200ms ease;
}
.fj-whatsapp:hover { transform:translateY(-3px) scale(1.05); box-shadow:0 14px 30px rgba(37,211,102,0.55); color:#fff; }
.fj-whatsapp::after {
  content:""; position:absolute; inset:0; border-radius:100px; background:#25D366;
  opacity:0.5; animation:fjWaPulse 2.2s ease-out infinite; z-index:-1;
}
@keyframes fjWaPulse { 0% { transform:scale(1); opacity:0.5; } 70%,100% { transform:scale(1.6); opacity:0; } }
@media (max-width:600px) { .fj-whatsapp { width:52px; height:52px; right:16px; bottom:16px; } }
@media (prefers-reduced-motion: reduce) { .fj-whatsapp::after { animation:none; } }

/* announcement ticker (scrolling) */
.fj-ticker { background:#c4161c !important; color:#FFFFFF; overflow:hidden; white-space:nowrap; }
.fj-ticker__track { display:inline-flex; width:max-content; animation:fjTicker 34s linear infinite; will-change:transform; }
.fj-ticker:hover .fj-ticker__track { animation-play-state:paused; }
.fj-ticker__item { display:inline-flex; align-items:center; padding:11px 0; font-size:12.5px; font-weight:600; letter-spacing:0.02em; }
.fj-ticker__item > span { padding:0 22px; }
.fj-ticker__item .fj-dot { padding:0; color:#EFC13C; }
@keyframes fjTicker { from { transform:translateX(0); } to { transform:translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .fj-ticker__track { animation:none; } }

/* hamburger + mobile menu */
.fj-burger { display:none; flex-direction:column; justify-content:center; gap:5px; width:42px; height:42px; padding:0; border:none; background:transparent; cursor:pointer; }
.fj-burger span { display:block; width:24px; height:2.5px; border-radius:3px; background:#0F1B3D; transition:transform 260ms ease, opacity 200ms ease; margin:0 auto; }
.fj-burger.is-open span:nth-child(1) { transform:translateY(7.5px) rotate(45deg); }
.fj-burger.is-open span:nth-child(2) { opacity:0; }
.fj-burger.is-open span:nth-child(3) { transform:translateY(-7.5px) rotate(-45deg); }

.fj-mobile-menu {
  border-top:1px solid rgba(15,27,61,0.08); background:#FBF7F0; padding:14px 22px 22px;
  box-shadow:0 24px 40px rgba(15,27,61,0.08);
  animation:fjMenuIn 260ms cubic-bezier(0.2,0,0.2,1);
}
@keyframes fjMenuIn { from { opacity:0; transform:translateY(-8px); } to { opacity:1; transform:none; } }
.fj-mobile-menu ul.fj-mobile-list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; }
.fj-mobile-menu li { margin:0; }
.fj-mobile-menu ul.fj-mobile-list li + li { border-top:1px solid rgba(15,27,61,0.07); }
.fj-mobile-menu ul.fj-mobile-list a {
  display:flex; align-items:center; justify-content:space-between; padding:16px 4px;
  font-family:'Fredoka',cursive; font-weight:500; font-size:18px; color:#0F1B3D; text-decoration:none;
}
.fj-mobile-menu ul.fj-mobile-list a::after { content:"›"; color:rgba(15,27,61,0.3); font-size:22px; line-height:1; }
.fj-mobile-menu ul.fj-mobile-list a:hover, .fj-mobile-menu .current-menu-item > a { color:#C4161C; }
.fj-mobile-menu ul.fj-mobile-list a:hover::after { color:#C4161C; }
.fj-mobile-cta {
  display:block; margin:16px 0 4px; text-align:center; background:#C4161C; color:#fff;
  font-family:'Fredoka',cursive; font-weight:500; font-size:16px; padding:15px 0; border-radius:100px; text-decoration:none;
}

/* Search bar dropdown */
.fj-search-bar { border-top:1px solid rgba(15,27,61,0.08); background:#FBF7F0; padding:16px clamp(20px,4vw,56px); animation:fjMenuIn 220ms ease; }
.fj-search-bar form { max-width:640px; margin:0 auto; display:flex; align-items:center; gap:10px; background:#fff; border:1px solid rgba(15,27,61,0.16); border-radius:100px; padding:6px 8px 6px 18px; }
.fj-search-bar .fj-search-ico { color:rgba(15,27,61,0.5); display:flex; flex:0 0 auto; }
.fj-search-bar input[type="search"] { flex:1 1 auto; border:none; outline:none; background:transparent; font-family:inherit; font-size:16px; color:#0F1B3D; min-width:0; }
.fj-search-bar button { flex:0 0 auto; border:none; cursor:pointer; background:#C4161C; color:#fff; font-family:'Fredoka',cursive; font-weight:500; font-size:15px; padding:11px 24px; border-radius:100px; transition:background 180ms ease; }
.fj-search-bar button:hover { background:#A21015; }

/* faq accordion */
.fj-faq { border:1px solid rgba(15,27,61,0.14); border-radius:16px; background:#FBF7F0; margin-bottom:12px; overflow:hidden; }
.fj-faq summary { list-style:none; cursor:pointer; padding:20px 24px; font-family:'Fredoka',cursive; font-size:18px; font-weight:500; display:flex; align-items:center; justify-content:space-between; gap:16px; }
.fj-faq summary::-webkit-details-marker { display:none; }
.fj-faq summary::after { content:"+"; font-size:26px; color:#C4161C; line-height:1; flex:0 0 auto; }
.fj-faq[open] summary::after { content:"\2013"; }
.fj-faq p { margin:0; padding:0 24px 22px; font-size:15.5px; line-height:1.65; color:rgba(15,27,61,0.72); }

/* gentle float on featured product image */
@keyframes fjfloat { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-12px); } }
.fj-floatimg { animation:fjfloat 5s ease-in-out infinite; }

/* interactive hovers */
.btn-red { transition:transform 220ms ease, background 220ms ease; }
.btn-red:hover { background:#A21015 !important; color:#fff !important; transform:translateY(-2px); }
.slider-nav:hover { background:#0F1B3D !important; color:#FBF7F0 !important; }
.btn-outline:hover { background:#0F1B3D !important; color:#FBF7F0 !important; }
.cat-card img { transition:transform 520ms cubic-bezier(0.2,0,0.2,1); }
.cat-card:hover img { transform:scale(1.05); }
.benefit-card { transition:transform 320ms cubic-bezier(0.2,0,0.2,1); }
.benefit-card:hover { transform:translateY(-6px); }
.review-card { transition:transform 320ms cubic-bezier(0.2,0,0.2,1), box-shadow 320ms cubic-bezier(0.2,0,0.2,1); }
.review-card:hover { transform:translateY(-6px); box-shadow:0 18px 40px rgba(15,27,61,0.10); }
.nav-link:hover { color:#C4161C; }
.foot-link { transition:color 180ms ease; }
.foot-link:hover { color:#FFDD66 !important; }
.soc:hover { background:#FFFFFF !important; color:#C4161C !important; }
.subscribe-btn:hover { background:#F59200 !important; }

@media (prefers-reduced-motion: reduce) { .fj-floatimg { animation:none; } }

/* responsive — tablet & mobile */
@media (max-width: 1000px) {
  .grid-flavors { grid-template-columns:repeat(4,minmax(0,1fr)) !important; }
  .grid-categories { grid-template-columns:repeat(3,minmax(0,1fr)) !important; }
  .grid-benefits { grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
  .grid-reviews { grid-template-columns:repeat(1,minmax(0,1fr)) !important; }
  .featured-grid, .footer-grid { grid-template-columns:1fr !important; }
  .footer-cols { grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
}
/* show hamburger, hide desktop nav on tablet & below */
@media (max-width: 860px) {
  .main-nav { display:none !important; }
  .fj-burger { display:flex !important; }
  .fj-shopnow { display:none !important; }
  .fj-search-link { display:none !important; }
  /* Mobile header: cart on the left, logo centered, menu (burger) on the right */
  .fj-header-inner { position:relative; }
  .fj-header-actions { order:1; flex:1 1 auto !important; width:100%; margin-left:0 !important; justify-content:space-between !important; }
  .fj-header-actions .fj-burger { order:0; }
  .fj-header-actions .fj-cart-toggle { order:5; }
  .fj-logo { order:2; position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); flex:0 0 auto !important; }
  .fj-logo img { height:64px !important; }
  .fj-cart-toggle svg { width:26px !important; height:26px !important; }
  .fj-burger { width:46px; height:46px; }
  .fj-burger span { width:26px; height:3px; }
}
@media (max-width: 620px) {
  .grid-flavors { grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
  .grid-categories { grid-template-columns:repeat(1,minmax(0,1fr)) !important; }
  .grid-benefits { grid-template-columns:repeat(1,minmax(0,1fr)) !important; }
}
/* single product: stack quantity + add-to-cart on small screens */
@media (max-width: 640px) {
  .single-product form.cart,
  .woocommerce div.product form.cart {
    display:flex !important; flex-direction:column !important; align-items:stretch !important;
    flex-wrap:wrap !important; gap:14px !important;
  }
  .single-product form.cart .quantity,
  .woocommerce div.product form.cart .quantity {
    width:100% !important; justify-content:center;
  }
  .single-product form.cart .single_add_to_cart_button,
  .woocommerce div.product form.cart .single_add_to_cart_button {
    flex:0 0 auto !important; width:100% !important; line-height:normal !important;
  }
  .fj-contact-grid { padding-top:32px; }
}

/* --- WooCommerce shop / cart / checkout pages: keep brand look --- */
.fj-shop-wrap { max-width:1440px; margin:0 auto; padding:clamp(40px,5vw,80px) clamp(20px,4vw,56px); }
.fj-shop-wrap h1, .woocommerce-page h1 { font-family:'Fredoka',cursive; letter-spacing:-0.03em; }
.woocommerce a.button, .woocommerce button.button, .woocommerce .button,
.woocommerce #respond input#submit, .woocommerce input.button {
  background:#C4161C !important; color:#fff !important; border-radius:100px !important;
  font-family:'Fredoka',cursive !important; font-weight:500 !important; border:none !important;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce .button:hover,
.woocommerce input.button:hover { background:#A21015 !important; }
.woocommerce span.onsale { background:#EFC13C !important; color:#0F1B3D !important; border-radius:100px !important; }

/* ---------------- Simple content pages (Contact, Shipping, Returns, FAQ) ---------------- */
.fj-page-hero { background:#F6EEE1; padding:clamp(44px,6vw,84px) 0; text-align:center; }
.fj-page-hero__inner { max-width:820px; margin:0 auto; padding:0 clamp(20px,4vw,56px); }
.fj-page-hero .eyebrow { margin:0 0 12px; font-size:12px; font-weight:700; letter-spacing:0.22em; text-transform:uppercase; color:#835A1E; }
.fj-page-hero h1 { margin:0; font-family:'Fredoka',cursive; font-weight:600; letter-spacing:-0.03em; line-height:1.05; font-size:clamp(32px,4.6vw,58px); color:#0F1B3D; }
.fj-page-hero p.sub { margin:16px auto 0; max-width:56ch; font-size:clamp(15px,1.2vw,18px); line-height:1.7; color:rgba(15,27,61,0.72); }

.fj-page { max-width:760px; margin:0 auto; padding:clamp(40px,5vw,72px) clamp(20px,4vw,56px); font-size:16.5px; line-height:1.85; color:rgba(15,27,61,0.82); }
.fj-page h2 { font-family:'Fredoka',cursive; font-weight:600; letter-spacing:-0.02em; font-size:clamp(22px,2.4vw,30px); color:#0F1B3D; margin:36px 0 12px; }
.fj-page h2:first-child { margin-top:0; }
.fj-page p { margin:0 0 16px; }
.fj-page ul, .fj-page ol { margin:0 0 18px; padding-left:22px; }
.fj-page li { margin:0 0 8px; }
.fj-page a { color:#C4161C; text-decoration:underline; }
.fj-page strong { color:#0F1B3D; }

/* Contact page */
.fj-contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,4vw,56px); align-items:start; max-width:1080px; margin:0 auto; padding:clamp(40px,5vw,72px) clamp(20px,4vw,56px); }
.fj-contact-cards { display:flex; flex-direction:column; gap:14px; }
.fj-contact-card { background:#F6EEE1; border-radius:18px; padding:22px 24px; }
.fj-contact-card h3 { margin:0 0 6px; font-family:'Fredoka',cursive; font-weight:600; font-size:17px; color:#0F1B3D; }
.fj-contact-card p, .fj-contact-card a { margin:0; font-size:15.5px; color:rgba(15,27,61,0.75); }
.fj-contact-card a { color:#C4161C; text-decoration:none; }
.fj-contact-card a:hover { text-decoration:underline; }

.fj-form { background:#fff; border:1px solid rgba(15,27,61,0.08); border-radius:22px; padding:clamp(24px,2.6vw,36px); box-shadow:0 20px 50px rgba(15,27,61,0.06); }
.fj-form label { display:block; font-family:'Fredoka',cursive; font-weight:500; font-size:14px; color:#0F1B3D; margin:0 0 6px; }
.fj-form .row { margin-bottom:16px; }
.fj-form input, .fj-form textarea {
  width:100%; border:1px solid rgba(15,27,61,0.2); border-radius:14px; padding:13px 16px;
  font-family:inherit; font-size:15px; color:#0F1B3D; background:#FBF7F0; outline:none; transition:border-color 180ms ease;
}
.fj-form input:focus, .fj-form textarea:focus { border-color:#C4161C; }
.fj-form textarea { min-height:130px; resize:vertical; border-radius:16px; }
.fj-form button {
  width:100%; height:54px; border:none; border-radius:100px; background:#C4161C; color:#fff; cursor:pointer;
  font-family:'Fredoka',cursive; font-weight:500; font-size:16px; transition:background 200ms ease, transform 200ms ease;
}
.fj-form button:hover { background:#A21015; transform:translateY(-2px); }
.fj-note { border-radius:14px; padding:14px 18px; font-size:14.5px; margin:0 0 20px; }
.fj-note.ok { background:rgba(46,140,74,0.12); color:#2E7D46; }
.fj-note.err { background:rgba(196,22,28,0.10); color:#C4161C; }

@media (max-width:820px) { .fj-contact-grid { grid-template-columns:1fr; } }

/* ---------------- Category / shop banner ---------------- */
.fj-cat-banner {
  background-size:cover; background-position:center; background-repeat:no-repeat; background-color:#FBF3E6;
  display:flex; align-items:center; min-height:clamp(220px,26vw,360px);
}
.fj-cat-banner__inner {
  max-width:720px; margin:0 auto; padding:28px clamp(20px,4vw,40px); text-align:center;
}
.fj-cat-eyebrow {
  margin:0 0 10px; font-size:12px; font-weight:700; letter-spacing:0.22em; text-transform:uppercase; color:#835A1E;
}
.fj-cat-title {
  margin:0; font-family:'Fredoka',cursive; font-weight:600; letter-spacing:-0.03em; line-height:1.02;
  font-size:clamp(34px,5vw,64px); color:#0F1B3D;
}
.fj-cat-desc { margin:14px 0 0; font-size:clamp(15px,1.2vw,17px); line-height:1.6; color:rgba(15,27,61,0.72); }

/* ---------------- Shop / category archive (premium, Shopify-style) ---------------- */
.woocommerce-products-header { text-align:center; margin:0 0 6px; }
.woocommerce-products-header__title,
.woocommerce .woocommerce-products-header__title {
  font-family:'Fredoka',cursive !important; font-weight:600 !important; letter-spacing:-0.03em !important;
  font-size:clamp(32px,4.4vw,58px) !important; color:#0F1B3D; margin:0 !important;
}
.woocommerce .term-description, .taxonomy-description {
  max-width:640px; margin:16px auto 0; text-align:center; font-size:16px; line-height:1.7; color:rgba(15,27,61,0.7);
}

/* Toolbar: result count + ordering */
.woocommerce .woocommerce-result-count {
  color:rgba(15,27,61,0.6); font-size:14px; margin:26px 0 18px; float:none; display:inline-block;
}
.woocommerce .woocommerce-ordering { float:none; display:inline-block; margin:26px 0 18px; }
.woocommerce .woocommerce-ordering select {
  border-radius:100px; padding:11px 40px 11px 18px; border:1px solid rgba(15,27,61,0.2);
  font-family:'Fredoka',cursive; font-size:14.5px; background:#FBF7F0; color:#0F1B3D; cursor:pointer;
}
.woocommerce-page .woocommerce-notices-wrapper { margin-bottom:8px; }

/* Product grid */
.woocommerce ul.products {
  display:grid !important; grid-template-columns:repeat(4,minmax(0,1fr));
  gap:clamp(16px,2vw,28px); margin:8px 0 0 !important; padding:0 !important; list-style:none;
}
.woocommerce ul.products::before, .woocommerce ul.products::after { content:none !important; display:none !important; }
.woocommerce ul.products li.product {
  width:auto !important; margin:0 !important; float:none !important; padding:14px !important;
  background:#FFFFFF; border:1px solid rgba(15,27,61,0.07); border-radius:20px; text-align:center;
  position:relative; display:flex; flex-direction:column;
  transition:transform 320ms cubic-bezier(0.2,0,0.2,1), box-shadow 320ms cubic-bezier(0.2,0,0.2,1);
}
.woocommerce ul.products li.product:hover { transform:translateY(-6px); box-shadow:0 20px 44px rgba(15,27,61,0.10); }
.woocommerce ul.products li.product > a img,
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link img {
  border-radius:14px !important; margin:0 0 14px !important; width:100%; aspect-ratio:1; object-fit:cover;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family:'Fredoka',cursive !important; font-weight:500 !important; font-size:16px !important;
  padding:0 6px !important; margin:0 0 4px !important; color:#0F1B3D; line-height:1.25;
}
.woocommerce ul.products li.product .price {
  display:block; color:#835A1E !important; font-weight:600 !important; font-family:'Fredoka',cursive !important;
  font-size:15px !important; margin:2px 0 14px !important;
}
.woocommerce ul.products li.product .price del { color:rgba(15,27,61,0.4) !important; font-weight:400 !important; }
.woocommerce ul.products li.product .star-rating { margin:0 auto 8px; color:#EFC13C; font-size:13px; }
/* Push the button to the bottom of each card */
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart {
  margin-top:auto !important; display:block; width:100%; text-align:center;
  border-radius:100px !important; padding:12px 0 !important;
  font-family:'Fredoka',cursive !important; font-weight:500 !important; font-size:14.5px !important;
}
.woocommerce ul.products li.product .added_to_cart {
  background:#FBF7F0 !important; color:#0F1B3D !important; border:1px solid rgba(15,27,61,0.2) !important; margin-top:8px !important;
}

@media (max-width:1000px) { .woocommerce ul.products { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:760px)  { .woocommerce ul.products { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:420px)  { .woocommerce ul.products { grid-template-columns:repeat(2,minmax(0,1fr)); } }

/* ---------------- Cart & Checkout (brand styled) ---------------- */
.woocommerce-cart .fj-shop-wrap, .woocommerce-checkout .fj-shop-wrap { max-width:1180px; }
.woocommerce-cart h1, .woocommerce-checkout h1 { font-family:'Fredoka',cursive; letter-spacing:-0.03em; font-size:clamp(30px,4vw,48px); margin-bottom:24px; }

/* Cart table */
.woocommerce table.shop_table { border:1px solid rgba(15,27,61,0.10) !important; border-radius:18px !important; border-collapse:separate !important; overflow:hidden; background:#fff; }
.woocommerce table.shop_table th { font-family:'Fredoka',cursive; font-weight:600; color:#0F1B3D; background:#F6EEE1; padding:16px 18px; }
.woocommerce table.shop_table td { padding:16px 18px; border-top:1px solid rgba(15,27,61,0.08); vertical-align:middle; }
.woocommerce table.cart img { width:70px !important; border-radius:12px; }
.woocommerce a.remove { color:#C4161C !important; border-radius:100px; font-weight:700; }
.woocommerce a.remove:hover { background:#C4161C !important; color:#fff !important; }
.woocommerce .cart .product-name a { font-family:'Fredoka',cursive; font-weight:500; color:#0F1B3D; }
.woocommerce .cart .amount { color:#835A1E; font-weight:600; }

/* Quantity input */
.woocommerce .quantity .qty { border:1px solid rgba(15,27,61,0.2); border-radius:100px; padding:10px 8px; background:#FBF7F0; font-family:'Fredoka',cursive; color:#0F1B3D; text-align:center; }

/* Coupon + inputs */
.woocommerce .coupon .input-text, .woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea,
.woocommerce-checkout .input-text, .select2-container .select2-selection {
  border:1px solid rgba(15,27,61,0.2) !important; border-radius:12px !important; padding:12px 14px !important;
  background:#FBF7F0 !important; font-family:inherit !important; font-size:15px !important; color:#0F1B3D !important; min-height:46px;
}
.woocommerce form .form-row label { font-family:'Fredoka',cursive; font-weight:500; color:#0F1B3D; margin-bottom:6px; }

/* Cart totals + checkout order review cards */
.woocommerce .cart_totals, .woocommerce-checkout #order_review, .woocommerce-checkout .woocommerce-checkout-review-order {
  background:#fff; border:1px solid rgba(15,27,61,0.10); border-radius:18px; padding:22px 24px;
}
.woocommerce .cart_totals h2, .woocommerce-checkout #order_review_heading, .woocommerce-checkout h3 {
  font-family:'Fredoka',cursive; font-weight:600; letter-spacing:-0.02em; color:#0F1B3D;
}
.woocommerce-checkout #order_review .amount, .woocommerce .cart_totals .amount { color:#835A1E; }

/* Buttons: proceed to checkout / place order */
.woocommerce .wc-proceed-to-checkout a.checkout-button, .woocommerce #place_order {
  background:#C4161C !important; color:#fff !important; border-radius:100px !important;
  font-family:'Fredoka',cursive !important; font-weight:500 !important; font-size:17px !important;
  padding:16px 28px !important; width:100%; text-align:center; border:none !important;
  transition:background 200ms ease, transform 200ms ease;
}
.woocommerce .wc-proceed-to-checkout a.checkout-button:hover, .woocommerce #place_order:hover { background:#A21015 !important; transform:translateY(-2px); }

/* We deliver to the billing address (Karachi) — hide separate shipping address */
.woocommerce-checkout .woocommerce-shipping-fields,
.woocommerce-checkout #ship-to-different-address { display:none !important; }

/* Override WooCommerce default .col-1 { float:left; width:48% } so the form is full width */
.woocommerce .col2-set .col-1, .woocommerce-page .col2-set .col-1,
.woocommerce .col2-set .col-2, .woocommerce-page .col2-set .col-2 {
  float:none !important; width:100% !important; max-width:none !important;
}
.woocommerce .col2-set, .woocommerce-page .col2-set { width:100% !important; }

/* Hide the "Your order" heading — the order card has its own header */
.woocommerce-checkout #order_review_heading { display:none !important; }

/* Checkout two-column layout on desktop — form and order card aligned at top */
@media (min-width:900px) {
  .woocommerce-checkout form.checkout { display:grid; grid-template-columns:minmax(0,1fr) 400px; gap:44px; align-items:start; }
  .woocommerce-checkout form.checkout #customer_details { grid-column:1; }
  .woocommerce-checkout form.checkout #order_review { grid-column:2; position:sticky; top:96px; }
}
/* White card behind the billing form */
.woocommerce-checkout #customer_details {
  background:#FFFFFF; border:1px solid rgba(15,27,61,0.08); border-radius:18px;
  padding:clamp(22px,2.4vw,34px); box-shadow:0 14px 40px rgba(15,27,61,0.05);
}
.woocommerce-checkout #customer_details .woocommerce-billing-fields h3 { margin-top:0; }
.woocommerce-checkout #customer_details .input-text,
.woocommerce-checkout #customer_details select { background:#FFFFFF !important; }

.woocommerce-checkout #order_review_heading { font-family:'Fredoka',cursive; font-weight:600; letter-spacing:-0.02em; }
.woocommerce form.checkout_coupon { border-radius:16px !important; border:1px solid rgba(15,27,61,0.14) !important; }
.woocommerce-checkout .form-row { margin-bottom:16px; }

/* Notices */
.woocommerce-message, .woocommerce-info, .woocommerce-error { border-radius:14px !important; border-top:none !important; }
.woocommerce-message::before, .woocommerce-info::before { color:#C4161C !important; }
.woocommerce-message { background:rgba(46,140,74,0.08) !important; }

/* ---------------- Side cart drawer (Shopify-style) ---------------- */
body.fj-cart-locked { overflow:hidden; }

#fj-cart-overlay {
  position:fixed; inset:0; background:rgba(15,27,61,0.45);
  opacity:0; visibility:hidden; transition:opacity 280ms ease, visibility 280ms ease;
  z-index:9998;
}
#fj-cart-overlay.fj-open { opacity:1; visibility:visible; }

#fj-cart-drawer {
  position:fixed; top:0; right:0; height:100%; width:400px; max-width:90vw;
  background:#FBF7F0; z-index:9999; display:flex; flex-direction:column;
  transform:translateX(100%); transition:transform 340ms cubic-bezier(0.4,0,0.2,1);
  box-shadow:-18px 0 50px rgba(15,27,61,0.18); will-change:transform;
}
#fj-cart-drawer.fj-open { transform:translateX(0); }

.fj-cart-head {
  display:flex; align-items:center; justify-content:space-between;
  padding:22px 24px; border-bottom:1px solid rgba(15,27,61,0.12); flex:0 0 auto;
}
.fj-cart-title { font-family:'Fredoka',cursive; font-size:22px; font-weight:600; letter-spacing:-0.02em; color:#0F1B3D; }
#fj-cart-close {
  background:none; border:none; color:#0F1B3D; cursor:pointer; line-height:0;
  padding:6px; border-radius:100px; transition:background 180ms ease;
}
#fj-cart-close:hover { background:rgba(15,27,61,0.08); }

.fj-cart-body { flex:1 1 auto; overflow-y:auto; padding:8px 24px 24px; }

/* WooCommerce mini-cart inside the drawer */
.fj-cart-body .cart_list { list-style:none; margin:0; padding:0; }
.fj-cart-body .cart_list li {
  position:relative; display:flex; gap:14px; align-items:flex-start;
  padding:18px 0 18px 0; border-bottom:1px solid rgba(15,27,61,0.10);
}
.fj-cart-body .cart_list li:last-child { border-bottom:none; }
.fj-cart-body .cart_list li img {
  width:64px !important; height:64px; object-fit:cover; border-radius:12px; float:none !important; margin:0 !important;
}
.fj-cart-body .cart_list li a { font-family:'Fredoka',cursive; font-weight:500; color:#0F1B3D; text-decoration:none; }
.fj-cart-body .cart_list li a.remove {
  position:absolute; top:16px; right:0; width:22px; height:22px; line-height:20px; text-align:center;
  border-radius:100px; background:rgba(196,22,28,0.10); color:#C4161C !important; font-size:16px;
}
.fj-cart-body .cart_list li a.remove:hover { background:#C4161C; color:#fff !important; }
.fj-cart-body .quantity { color:rgba(15,27,61,0.7); font-size:14px; }
.fj-cart-body .woocommerce-mini-cart__total {
  display:flex; align-items:center; justify-content:space-between;
  padding:18px 0 6px; font-family:'Fredoka',cursive; font-size:18px; font-weight:600;
  border-top:2px solid rgba(15,27,61,0.12); margin-top:8px;
}
.fj-cart-body .woocommerce-mini-cart__buttons { display:flex; flex-direction:column; gap:10px; margin:16px 0 0; padding:0; }
.fj-cart-body .woocommerce-mini-cart__buttons a {
  display:block; text-align:center; padding:15px 0; border-radius:100px;
  font-family:'Fredoka',cursive; font-weight:500; font-size:16px; text-decoration:none;
}
.fj-cart-body .woocommerce-mini-cart__buttons a.button:not(.checkout) {
  background:#FBF7F0 !important; color:#0F1B3D !important; border:1px solid rgba(15,27,61,0.28) !important;
}
.fj-cart-body .woocommerce-mini-cart__buttons a.checkout {
  background:#C4161C !important; color:#fff !important;
}
.fj-cart-body .woocommerce-mini-cart__empty-message {
  text-align:center; color:rgba(15,27,61,0.6); padding:48px 0; font-size:15.5px;
}

@media (max-width:480px) { #fj-cart-drawer { width:100%; max-width:100%; } }

/* ---------------- Single product page (Shopify-style, brand feel) ---------------- */
/* Trim the big gap between header and product image */
.single-product .fj-shop-wrap { padding-top:clamp(16px,2vw,28px) !important; }
.woocommerce div.product { margin-top:0; }

/* Two-column layout: gallery left, summary right */
.single-product div.product {
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.08fr); gap:clamp(24px,3vw,48px); align-items:flex-start;
}
.single-product div.product .woocommerce-product-gallery { width:100% !important; margin:0 !important; float:none !important; }

/* Override WooCommerce default: .summary { float:right; width:48% } — let the grid control width. */
.woocommerce #content div.product div.summary,
.woocommerce div.product div.summary,
.woocommerce-page #content div.product div.summary,
.woocommerce-page div.product div.summary {
  float:none !important; width:100% !important; clear:none !important;
}
.woocommerce #content div.product div.images,
.woocommerce div.product div.images,
.woocommerce-page #content div.product div.images,
.woocommerce-page div.product div.images {
  float:none !important; width:100% !important;
}
.single-product div.product .entry-summary {
  margin:0 !important; float:none !important;
  background:#FFFFFF; border:1px solid rgba(15,27,61,0.08); border-radius:24px;
  padding:clamp(26px,2.6vw,40px); box-shadow:0 20px 50px rgba(15,27,61,0.06);
  position:static; top:auto;
}
.single-product div.product .woocommerce-tabs,
.single-product div.product .related,
.single-product div.product .upsells { grid-column:1 / -1; }

/* Rounded gallery image */
.single-product .woocommerce-product-gallery__image img { border-radius:24px; }
.single-product .woocommerce-product-gallery { position:relative; }
.single-product .flex-viewport { border-radius:24px; }
.single-product .woocommerce-product-gallery ol.flex-control-thumbs { margin-top:14px; display:flex; gap:10px; padding:0; }
.single-product .woocommerce-product-gallery ol.flex-control-thumbs li { width:70px !important; margin:0 !important; }
.single-product .woocommerce-product-gallery ol.flex-control-thumbs img { border-radius:12px; opacity:0.7; transition:opacity 180ms ease; }
.single-product .woocommerce-product-gallery ol.flex-control-thumbs img.flex-active,
.single-product .woocommerce-product-gallery ol.flex-control-thumbs img:hover { opacity:1; }

/* Typography */
.single-product .product_title {
  font-family:'Fredoka',cursive !important; font-weight:600 !important;
  font-size:clamp(28px,2.6vw,40px) !important; line-height:1.08 !important; letter-spacing:-0.03em !important;
  margin:0 0 14px !important; color:#0F1B3D;
}
.single-product .entry-summary p.price,
.single-product .entry-summary p.price ins,
.single-product .entry-summary p.price .amount {
  color:#835A1E !important; font-family:'Fredoka',cursive !important; font-weight:600 !important;
  font-size:clamp(24px,2.4vw,32px) !important;
}
.single-product .entry-summary p.price del { color:rgba(15,27,61,0.4) !important; font-weight:400 !important; }
.single-product .woocommerce-product-details__short-description {
  font-size:16px; line-height:1.7; color:rgba(15,27,61,0.72); margin:6px 0 22px; max-width:46ch;
}
.single-product .woocommerce-product-rating { margin-bottom:16px; }
.single-product .star-rating span { color:#EFC13C; }

/* Highlight chips */
.fj-chips { list-style:none; display:flex; flex-wrap:wrap; gap:8px; margin:0 0 20px; padding:0; }
.fj-chips li {
  font-size:12.5px; font-weight:600; letter-spacing:0.01em; color:#835A1E;
  background:#F6EEE1; border-radius:100px; padding:7px 14px;
}

/* Quantity + add to cart (single row) */
.single-product form.cart,
.woocommerce div.product form.cart {
  margin:4px 0 0 !important; display:flex !important; align-items:center !important;
  gap:12px !important; flex-wrap:nowrap !important;
}
.single-product form.cart .quantity,
.woocommerce div.product form.cart .quantity {
  display:inline-flex !important; align-items:center; gap:0; margin:0 !important; float:none !important; flex:0 0 auto;
  border:1px solid rgba(15,27,61,0.22); border-radius:100px; overflow:hidden; background:#FBF7F0;
}
.single-product form.cart .quantity.fj-qty input.qty {
  height:58px; width:52px; border:none !important; background:transparent;
  text-align:center; font-family:'Fredoka',cursive; font-size:17px; color:#0F1B3D;
  -moz-appearance:textfield; margin:0; box-shadow:none !important;
}
.single-product form.cart .quantity.fj-qty input.qty::-webkit-outer-spin-button,
.single-product form.cart .quantity.fj-qty input.qty::-webkit-inner-spin-button { -webkit-appearance:none; margin:0; }
.fj-qty-btn {
  width:42px; height:58px; border:none; background:transparent; cursor:pointer;
  font-size:22px; line-height:1; color:#0F1B3D; font-family:'Fredoka',cursive;
  transition:background 160ms ease;
}
.fj-qty-btn:hover { background:rgba(15,27,61,0.06); }

.single-product form.cart .single_add_to_cart_button,
.woocommerce div.product form.cart .single_add_to_cart_button {
  flex:1 1 auto !important; width:auto !important; display:block !important; height:60px; padding:0 32px !important; margin:0 !important;
  border-radius:100px !important; background:#C4161C !important; color:#fff !important; border:none !important;
  font-family:'Fredoka',cursive !important; font-weight:500 !important; font-size:18px !important; float:none !important;
  white-space:nowrap !important; line-height:60px !important;
  transition:transform 200ms ease, background 200ms ease; cursor:pointer;
}
.single-product form.cart .single_add_to_cart_button:hover { background:#A21015 !important; transform:translateY(-2px); }
.single-product form.cart .single_add_to_cart_button.loading { opacity:0.75; }

/* Reassurance line under button */
.single-product .entry-summary .fj-trust { margin-top:20px; padding-top:20px; border-top:1px solid rgba(15,27,61,0.10); }

/* Meta (SKU / category) */
.single-product .product_meta { margin-top:20px; font-size:13px; color:rgba(15,27,61,0.55); }
.single-product .product_meta a { color:#835A1E; }
.single-product .product_meta > span { display:block; margin-bottom:4px; }

/* Trust badges */
.fj-trust { list-style:none; margin:22px 0 0; padding:0; display:flex; flex-direction:column; gap:12px; }
.fj-trust li { display:flex; align-items:center; gap:12px; font-size:14.5px; font-weight:500; color:#0F1B3D; }
.fj-trust li svg { flex:0 0 auto; color:#C4161C; }

/* Tabs */
.single-product .woocommerce-tabs { margin-top:clamp(40px,5vw,72px); }
.single-product .woocommerce-tabs ul.tabs { padding:0 !important; margin:0 0 24px !important; border-bottom:1px solid rgba(15,27,61,0.14); display:flex; gap:8px; flex-wrap:wrap; }
.single-product .woocommerce-tabs ul.tabs::before { display:none !important; }
.single-product .woocommerce-tabs ul.tabs li {
  background:transparent !important; border:none !important; border-radius:0 !important; margin:0 !important; padding:0 !important;
}
.single-product .woocommerce-tabs ul.tabs li::before,
.single-product .woocommerce-tabs ul.tabs li::after { display:none !important; }
.single-product .woocommerce-tabs ul.tabs li a {
  font-family:'Fredoka',cursive !important; font-size:16px !important; font-weight:500 !important;
  color:rgba(15,27,61,0.55) !important; padding:12px 18px !important; display:block; border-radius:100px 100px 0 0;
}
.single-product .woocommerce-tabs ul.tabs li.active a { color:#C4161C !important; box-shadow:inset 0 -3px 0 #C4161C; }

/* Description panel — readable width + clean typography */
.single-product .woocommerce-tabs .panel {
  max-width:760px; font-size:16.5px; line-height:1.85; color:rgba(15,27,61,0.82);
}
.single-product .woocommerce-tabs .panel > h2 {
  font-family:'Fredoka',cursive; letter-spacing:-0.025em; font-weight:600;
  font-size:clamp(24px,2.6vw,34px); color:#0F1B3D; margin:0 0 20px;
}
.single-product .woocommerce-tabs .panel p { margin:0 0 16px; }
/* First line acts as a lead-in headline */
.single-product .woocommerce-tabs .panel p:first-of-type {
  font-family:'Fredoka',cursive; font-weight:500; font-size:clamp(19px,1.6vw,23px);
  line-height:1.35; color:#0F1B3D; margin-bottom:18px;
}
.single-product .woocommerce-tabs .panel ul,
.single-product .woocommerce-tabs .panel ol { margin:0 0 18px; padding-left:22px; }
.single-product .woocommerce-tabs .panel li { margin:0 0 8px; }
.single-product .woocommerce-tabs .panel strong { color:#0F1B3D; }
.single-product .woocommerce-tabs .panel a { color:#C4161C; text-decoration:underline; }

/* Related products heading + cards */
.single-product .related > h2, .single-product .upsells > h2 {
  font-family:'Fredoka',cursive; font-weight:600; letter-spacing:-0.03em;
  font-size:clamp(26px,3vw,40px); margin-bottom:24px;
}
.woocommerce ul.products li.product a img { border-radius:16px; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-family:'Fredoka',cursive; font-weight:500; }

@media (max-width:820px) {
  .single-product div.product { grid-template-columns:1fr; }
}

/* ============================================================
   BLOG — index, archive, search cards + single post typography
   ============================================================ */

/* Post card grid: 3 → 2 → 1 (matches the flavor-grid breakpoints) */
.fj-post-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
@media (max-width:1000px) { .fj-post-grid { grid-template-columns:repeat(2,minmax(0,1fr)) !important; } }
@media (max-width:620px)  { .fj-post-grid { grid-template-columns:repeat(1,minmax(0,1fr)) !important; } }

.fj-post-card { transition:transform 220ms ease, box-shadow 220ms ease; box-shadow:0 1px 2px rgba(15,27,61,0.05); }
.fj-post-card:hover { transform:translateY(-4px); box-shadow:0 14px 30px rgba(15,27,61,0.10); }
.fj-post-card a { text-decoration:none; }
.fj-post-card img { transition:transform 480ms ease; }
.fj-post-card:hover img { transform:scale(1.04); }

/* Pagination */
.fj-pagination .nav-links,
.fj-pagination .navigation .nav-links { display:flex; flex-wrap:wrap; gap:8px; justify-content:center; align-items:center; }
.fj-pagination .page-numbers {
  min-width:44px; height:44px; padding:0 14px; display:inline-flex; align-items:center; justify-content:center;
  border-radius:100px; border:1px solid rgba(15,27,61,0.16); background:#FBF7F0; color:#0F1B3D;
  font-family:'Fredoka',cursive; font-weight:500; font-size:15px; text-decoration:none;
  transition:background 200ms ease, color 200ms ease, border-color 200ms ease;
}
.fj-pagination a.page-numbers:hover { border-color:#C4161C; color:#C4161C; }
.fj-pagination .page-numbers.current { background:#C4161C; border-color:#C4161C; color:#FFFFFF; }
.fj-pagination .page-numbers.dots { border:none; background:none; }

/* Single post body — editor content styling */
.fj-post-body { font-size:clamp(16px,1.15vw,18px); line-height:1.75; color:rgba(15,27,61,0.86); }
.fj-post-body > * { margin:0 0 1.25em; }
.fj-post-body h2 { font-family:'Fredoka',cursive; font-weight:600; letter-spacing:-0.02em; font-size:clamp(24px,2.6vw,34px); line-height:1.18; margin:1.6em 0 0.6em; color:#0F1B3D; }
.fj-post-body h3 { font-family:'Fredoka',cursive; font-weight:600; letter-spacing:-0.02em; font-size:clamp(20px,2vw,26px); line-height:1.22; margin:1.4em 0 0.5em; color:#0F1B3D; }
.fj-post-body h4 { font-family:'Fredoka',cursive; font-weight:600; font-size:19px; margin:1.3em 0 0.4em; color:#0F1B3D; }
.fj-post-body a { color:#C4161C; text-decoration:underline; text-underline-offset:2px; }
.fj-post-body img,
.fj-post-body .wp-block-image img { border-radius:16px; height:auto; max-width:100%; }
.fj-post-body figure { margin:1.6em 0; }
.fj-post-body figcaption { margin-top:8px; font-size:13.5px; color:rgba(15,27,61,0.6); text-align:center; }
.fj-post-body ul, .fj-post-body ol { padding-left:1.4em; }
.fj-post-body li { margin:0 0 0.5em; }
.fj-post-body blockquote {
  margin:1.6em 0; padding:6px 0 6px 22px; border-left:4px solid #C4161C;
  font-family:'Fredoka',cursive; font-size:clamp(19px,1.6vw,23px); line-height:1.5; color:#0F1B3D;
}
.fj-post-body blockquote p { margin:0; }
.fj-post-body code { background:#F1E7D6; padding:2px 7px; border-radius:6px; font-size:0.9em; }
.fj-post-body pre { background:#0F1B3D; color:#FBF7F0; padding:20px; border-radius:14px; overflow:auto; }
.fj-post-body pre code { background:none; padding:0; color:inherit; }
.fj-post-body hr { border:none; border-top:1px solid rgba(15,27,61,0.12); margin:2em 0; }

/* Tag pills under a post */
.fj-tags a {
  display:inline-block; padding:6px 14px; border-radius:100px; background:#F1E7D6;
  color:#835A1E; font-size:13px; font-weight:600; text-decoration:none;
  transition:background 200ms ease, color 200ms ease;
}
.fj-tags a:hover { background:#C4161C; color:#FFFFFF; }
