/*
Theme Name: Snackty
Theme URI: https://snackty.com
Author: Snackty
Author URI: https://snackty.com
Description: Snackty — a warm, editorial WooCommerce theme for wholesome Lebanese snacks. Circular product imagery, soft teal palette, pill buttons and a fully styled shop, cart, checkout and account experience.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.5
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: snackty
Tags: e-commerce, custom-menu, featured-images, footer-widgets, full-width-template, translation-ready
WC requires at least: 6.0
WC tested up to: 9.0
*/

/* ============================================================
   SNACKTY — design tokens
   ============================================================ */
:root{
  --sn-cream:#F4F7F7;
  --sn-paper:#FFFFFF;
  --sn-ink:#15201F;
  --sn-teal:#3E8A9B;
  --sn-teal-d:#2E6B78;
  --sn-teal-dd:#1E5560;
  --sn-mist:#E6F0F1;
  --sn-mist-2:#F9FBFB;
  --sn-slate:#5C6A6A;
  --sn-slate-2:#9AA8A8;
  --sn-footer:#17383E;
  --sn-line:rgba(21,32,31,.10);
  --sn-line-2:rgba(21,32,31,.18);
  --sn-radius-card:20px;
  --sn-radius-lg:40px;
  --sn-shadow-pill:0 6px 28px rgba(20,32,31,.07);
  --sn-shadow-card:0 24px 48px rgba(20,32,31,.10);
  --sn-max:1180px;
}

/* ============================================================
   Base
   ============================================================ */
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body.snackty{
  margin:0;
  background:var(--sn-cream);
  font-family:'Sofia Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  color:var(--sn-ink);
  font-weight:450;
  font-size:16px;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
.snackty img{max-width:100%;height:auto;}
.snackty a{color:var(--sn-teal);text-decoration:none;}
.snackty a:hover{color:var(--sn-teal-d);}
.snackty input,.snackty textarea,.snackty select,.snackty button{font-family:inherit;}
.snackty ::placeholder{color:var(--sn-slate-2);}
.snackty h1,.snackty h2,.snackty h3,.snackty h4{
  font-weight:500;letter-spacing:-.02em;color:var(--sn-ink);margin:0 0 .4em;
}
.sn-wrap{max-width:var(--sn-max);margin:0 auto;padding-left:24px;padding-right:24px;}
.sn-eyebrow{display:inline-flex;align-items:center;gap:9px;font-size:13px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--sn-teal);}
.sn-eyebrow::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;}
.sn-eyebrow.is-light{color:#fff;}
.screen-reader-text{position:absolute!important;clip:rect(1px,1px,1px,1px);width:1px;height:1px;overflow:hidden;}
.skip-link{position:absolute;left:-9999px;}
.skip-link:focus{left:16px;top:16px;background:#fff;padding:10px 16px;border-radius:999px;z-index:999;}

/* ============================================================
   Header / floating nav pill
   ============================================================ */
.sn-header{position:sticky;top:0;z-index:50;padding:16px 16px 0;}
.sn-nav{
  max-width:var(--sn-max);margin:0 auto;background:#fff;border-radius:999px;
  box-shadow:var(--sn-shadow-pill);display:flex;align-items:center;justify-content:space-between;
  padding:10px 12px 10px 26px;gap:18px;
}
.sn-brand{display:inline-flex;align-items:center;gap:10px;font-weight:800;font-size:23px;letter-spacing:-.025em;color:var(--sn-ink);}
.sn-brand img{display:block;max-height:34px;width:auto;}
.sn-nav-menu{display:flex;align-items:center;gap:32px;margin:0;padding:0;list-style:none;}
.sn-nav-menu a{font-weight:500;font-size:16px;color:var(--sn-ink);transition:color .2s;}
.sn-nav-menu a:hover,.sn-nav-menu .current-menu-item>a{color:var(--sn-teal);}
.sn-nav-actions{display:flex;align-items:center;gap:10px;}
.sn-icon-btn{
  position:relative;background:var(--sn-mist);border:none;width:46px;height:46px;border-radius:999px;
  display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--sn-ink);transition:background .2s;
  text-decoration:none;
}
.sn-icon-btn:hover{background:#D4E7E9;color:var(--sn-ink);}
.sn-icon-btn.is-dark{background:var(--sn-ink);color:#fff;}
.sn-icon-btn.is-dark:hover{background:#000;color:#fff;}
.snackty-cart-count{
  position:absolute;top:-3px;right:-3px;background:var(--sn-teal);color:#fff;font-size:11px;font-weight:700;
  min-width:19px;height:19px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;
  padding:0 5px;border:2px solid #fff;
}
.snackty-cart-count.is-empty{display:none;}
.sn-menu-toggle{display:none;}

/* Mobile drawer menu */
.sn-mobile{position:fixed;inset:0;z-index:80;background:var(--sn-cream);display:none;flex-direction:column;padding:20px;}
.sn-mobile.is-open{display:flex;animation:snFade .2s ease;}
.sn-mobile-top{display:flex;align-items:center;justify-content:space-between;}
.sn-mobile-menu{display:flex;flex-direction:column;gap:6px;margin-top:36px;list-style:none;padding:0;}
.sn-mobile-menu a{font-size:34px;font-weight:500;letter-spacing:-.02em;padding:14px 0;border-bottom:1px solid rgba(21,32,31,.08);color:var(--sn-ink);display:block;}
.sn-mobile-menu li:last-child a{border-bottom:none;}

@media(max-width:860px){
  .sn-nav-menu{display:none;}
  .sn-menu-toggle{display:inline-flex;}
}

/* ============================================================
   Buttons (pill system, applied to WooCommerce too)
   ============================================================ */
.sn-btn,
.snackty .button,
.snackty a.button,
.snackty button.button,
.snackty input.button,
.snackty .wp-element-button,
.woocommerce .snackty .button,
.snackty .woocommerce-Button,
.snackty #place_order,
.snackty .wc-block-components-button{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  background:var(--sn-teal);color:#fff;border:none;border-radius:999px;
  padding:14px 28px;font-size:16px;font-weight:600;line-height:1;cursor:pointer;
  text-decoration:none;transition:background .2s,transform .1s;letter-spacing:0;
  font-family:inherit;text-transform:none;
}
.sn-btn:hover,
.snackty .button:hover,
.snackty a.button:hover,
.snackty button.button:hover,
.snackty input.button:hover,
.snackty .wp-element-button:hover,
.snackty #place_order:hover,
.snackty .wc-block-components-button:hover{background:var(--sn-teal-d);color:#fff;}
.sn-btn:active{transform:translateY(1px);}
.sn-btn.is-ink{background:var(--sn-ink);}
.sn-btn.is-ink:hover{background:#000;}
.sn-btn.is-ghost{background:transparent;color:var(--sn-ink);border:1.5px solid var(--sn-line-2);}
.sn-btn.is-ghost:hover{background:#fff;color:var(--sn-ink);}
.sn-btn.is-light{background:#fff;color:var(--sn-teal-dd);}
.sn-btn.is-light:hover{background:#fff;color:var(--sn-teal-d);}
.snackty .button.alt,.snackty .single_add_to_cart_button{background:var(--sn-teal);}
.snackty .button.alt:hover,.snackty .single_add_to_cart_button:hover{background:var(--sn-teal-d);}

/* secondary / outlined WooCommerce buttons */
.snackty .woocommerce-message .button,
.snackty .cart .button[name="update_cart"],
.snackty .checkout-button{background:var(--sn-teal);}

/* ============================================================
   Hero / sections (home + page heroes)
   ============================================================ */
.sn-hero{padding:24px 16px 0;}
.sn-hero-inner{
  position:relative;max-width:var(--sn-max);margin:0 auto;border-radius:var(--sn-radius-lg);overflow:hidden;
  background:linear-gradient(135deg,#4A95A6 0%,#357784 100%);color:#fff;
}
.sn-hero-orbit{position:absolute;border-radius:50%;border:1.5px solid rgba(255,255,255,.16);pointer-events:none;}
.sn-hero-grid{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:32px;padding:clamp(34px,5.5vw,72px);}
.sn-hero-copy{flex:1 1 380px;min-width:280px;display:flex;flex-direction:column;gap:22px;}
.sn-hero-copy h1{margin:0;font-size:clamp(40px,6.2vw,66px);font-weight:500;letter-spacing:-.025em;line-height:1.0;color:#fff;}
.sn-hero-copy p{margin:0;font-size:clamp(16px,2vw,20px);line-height:1.5;color:rgba(255,255,255,.88);max-width:460px;}
.sn-hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:4px;}
.sn-hero-art{flex:0 1 360px;min-width:220px;display:flex;justify-content:center;}
.sn-orb{position:relative;width:min(340px,80vw);aspect-ratio:1/1;border-radius:50%;
  background:linear-gradient(150deg,#E7AE63,#C5772E);box-shadow:0 30px 60px rgba(0,0,0,.22);overflow:hidden;}
.sn-orb::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 34% 30%,rgba(255,255,255,.3),transparent 58%);}
.sn-orb.is-teal{background:linear-gradient(150deg,#4A95A6,#2E6B78);}
.sn-badge-float{position:absolute;bottom:6px;left:-6px;background:#fff;color:var(--sn-ink);border-radius:999px;
  padding:9px 16px;font-size:13px;font-weight:700;display:inline-flex;align-items:center;gap:6px;box-shadow:0 8px 20px rgba(0,0,0,.18);z-index:2;}
.sn-badge-float::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--sn-teal);}

.sn-section{max-width:var(--sn-max);margin:0 auto;padding:56px 24px;}
.sn-section-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:32px;}
.sn-section-head h2{margin:0;font-size:clamp(28px,4vw,40px);line-height:1.08;}
.sn-link-arrow{font-size:16px;font-weight:600;color:var(--sn-teal);display:inline-flex;align-items:center;gap:6px;}
.sn-link-arrow:hover{color:var(--sn-teal-d);}

/* value props */
.sn-valueprops{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:24px;}
.sn-vp{display:flex;flex-direction:column;gap:12px;}
.sn-vp-ico{width:50px;height:50px;border-radius:50%;background:var(--sn-mist);display:inline-flex;align-items:center;justify-content:center;color:var(--sn-teal);}
.sn-vp-title{font-size:17px;font-weight:600;color:var(--sn-ink);}
.sn-vp-text{font-size:14.5px;line-height:1.45;color:var(--sn-slate);}

/* story band */
.sn-band{max-width:var(--sn-max);margin:0 auto;padding:24px 24px 8px;}
.sn-band-card{background:#fff;border-radius:var(--sn-radius-lg);padding:clamp(30px,5vw,60px);display:flex;flex-wrap:wrap;gap:44px;align-items:center;}
.sn-band-art{flex:0 1 320px;min-width:240px;display:flex;justify-content:center;}
.sn-band-copy{flex:1 1 360px;min-width:280px;display:flex;flex-direction:column;gap:20px;}
.sn-band-copy h2{margin:0;font-size:clamp(28px,4vw,40px);line-height:1.08;}
.sn-band-copy p{margin:0;font-size:17px;line-height:1.55;color:var(--sn-slate);max-width:480px;}

/* newsletter */
.sn-news{max-width:var(--sn-max);margin:0 auto;padding:48px 24px 80px;}
.sn-news-card{position:relative;border-radius:var(--sn-radius-lg);overflow:hidden;background:linear-gradient(135deg,#357784,#1E5560);
  color:#fff;padding:clamp(34px,5vw,60px);display:flex;flex-wrap:wrap;gap:28px;align-items:center;justify-content:space-between;}
.sn-news-card h2{margin:0;font-size:clamp(26px,3.6vw,38px);line-height:1.1;color:#fff;}
.sn-news-card p{margin:0;font-size:16px;color:rgba(255,255,255,.85);}
.sn-news-copy{position:relative;flex:1 1 320px;min-width:260px;display:flex;flex-direction:column;gap:12px;}
.sn-news-form-wrap{position:relative;flex:1 1 320px;min-width:260px;}
.sn-news-form{display:flex;flex-wrap:wrap;gap:10px;background:#fff;padding:8px;border-radius:999px;}
.sn-news-form input{flex:1;min-width:160px;border:none;outline:none;background:transparent;padding:12px 16px;font-size:16px;color:var(--sn-ink);}
.sn-news-form button{white-space:nowrap;padding:13px 24px;font-size:15px;}
.sn-news-ok{background:rgba(255,255,255,.14);border-radius:20px;padding:20px 22px;display:flex;align-items:center;gap:12px;font-size:16px;font-weight:600;}

/* ============================================================
   Product cards (loop) — Snackty circular style
   ============================================================ */
.snackty ul.products,
.snackty .products.columns-1,
.snackty .products.columns-2,
.snackty .products.columns-3,
.snackty .products.columns-4{
  display:grid!important;grid-template-columns:repeat(auto-fill,minmax(258px,1fr));gap:26px;margin:0;padding:0;list-style:none;
}
.snackty ul.products li.product,
.snackty ul.products li.product.first,
.snackty ul.products li.product.last{
  width:auto!important;margin:0!important;float:none!important;clear:none!important;
}
.sn-card{
  background:#fff;border:1px solid rgba(21,32,31,.07);border-radius:var(--sn-radius-card);padding:18px;
  display:flex;flex-direction:column;gap:14px;height:100%;
  transition:transform .25s ease,box-shadow .25s ease;position:relative;
}
.sn-card:hover{transform:translateY(-5px);box-shadow:var(--sn-shadow-card);}
.sn-card-media{position:relative;width:100%;aspect-ratio:1/1;border-radius:50%;background:#EAE4DA;overflow:hidden;display:block;}
.sn-card-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.sn-card-media::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 32% 28%,rgba(255,255,255,.28),transparent 60%);pointer-events:none;}
.sn-card-cat{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--sn-teal);}
.sn-card-title{margin:0;font-size:19px;font-weight:600;letter-spacing:-.01em;line-height:1.2;color:var(--sn-ink);}
.sn-card-title a{color:inherit;}
.sn-card-title a:hover{color:var(--sn-teal);}
.sn-card-tags{display:flex;flex-wrap:wrap;gap:6px;}
.sn-chip{font-size:11.5px;font-weight:500;color:#3E6B73;background:var(--sn-mist);padding:4px 10px;border-radius:999px;}
.sn-card-foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:4px;}
.sn-card-price{font-size:20px;font-weight:600;color:var(--sn-ink);}
.sn-card-price del{color:var(--sn-slate-2);font-weight:450;margin-right:6px;font-size:15px;}
.sn-card-price ins{text-decoration:none;}
.sn-card .button,
.sn-card a.button{padding:10px 18px;font-size:14px;}
.snackty ul.products li.product .price{color:var(--sn-ink);font-size:20px;font-weight:600;}
.snackty ul.products li.product .onsale{background:var(--sn-teal);color:#fff;border-radius:999px;min-height:auto;min-width:auto;padding:5px 12px;font-weight:700;}

/* ============================================================
   Page hero (inner pages)
   ============================================================ */
.sn-page-hero{padding:24px 16px 0;}
.sn-page-hero-inner{position:relative;max-width:var(--sn-max);margin:0 auto;border-radius:var(--sn-radius-lg);overflow:hidden;
  background:linear-gradient(135deg,#4A95A6,#2E6B78);color:#fff;padding:clamp(40px,6vw,84px);}
.sn-page-hero-inner h1{margin:0;color:#fff;font-size:clamp(34px,5.2vw,56px);letter-spacing:-.025em;line-height:1.02;}
.sn-page-hero-copy{position:relative;max-width:620px;display:flex;flex-direction:column;gap:18px;}
.sn-page-hero-copy p{margin:0;font-size:clamp(17px,2vw,20px);line-height:1.5;color:rgba(255,255,255,.88);}

/* generic content page */
.sn-page{max-width:880px;margin:0 auto;padding:60px 24px;}
.sn-page-wide{max-width:var(--sn-max);}
.sn-page h2{font-size:clamp(26px,3.6vw,38px);line-height:1.12;}
.sn-page p{font-size:18px;line-height:1.65;color:var(--sn-slate);}
.sn-prose p{font-size:18px;line-height:1.65;color:var(--sn-slate);}

/* value cards (about) */
.sn-valcards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px;}
.sn-valcard{background:#fff;border-radius:24px;padding:30px;display:flex;flex-direction:column;gap:14px;}
.sn-valcard .sn-vp-ico{width:54px;height:54px;}
.sn-valcard h3{margin:0;font-size:20px;font-weight:600;letter-spacing:-.01em;}
.sn-valcard p{margin:0;font-size:15.5px;line-height:1.55;color:var(--sn-slate);}

/* ============================================================
   Forms (contact, checkout, account)
   ============================================================ */
.sn-field{display:flex;flex-direction:column;gap:7px;}
.sn-field label{font-size:14px;font-weight:600;color:var(--sn-ink);}
.snackty input[type=text],.snackty input[type=email],.snackty input[type=tel],
.snackty input[type=password],.snackty input[type=search],.snackty input[type=number],
.snackty input[type=url],.snackty textarea,.snackty select,
.snackty .select2-container .select2-selection{
  border:1px solid var(--sn-line-2);border-radius:14px;padding:14px 16px;font-size:16px;color:var(--sn-ink);
  outline:none;background:var(--sn-mist-2);width:100%;line-height:1.3;height:auto;
}
.snackty textarea{resize:vertical;font-family:inherit;}
.snackty input:focus,.snackty textarea:focus,.snackty select:focus{border-color:var(--sn-teal);}
.sn-form-card{background:#fff;border-radius:24px;padding:clamp(24px,3vw,36px);display:flex;flex-direction:column;gap:18px;}
.sn-contact-grid{display:flex;flex-wrap:wrap;gap:48px;align-items:flex-start;}
.sn-contact-info{flex:1 1 280px;min-width:240px;display:flex;flex-direction:column;gap:16px;}
.sn-ci{display:flex;gap:14px;align-items:flex-start;}
.sn-ci-ico{width:48px;height:48px;border-radius:50%;background:#fff;display:inline-flex;align-items:center;justify-content:center;color:var(--sn-teal);flex-shrink:0;}
.sn-ci-label{font-size:13px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--sn-slate-2);}
.sn-ci-value{font-size:17px;font-weight:500;color:var(--sn-ink);}
.sn-notice{background:var(--sn-mist);border-radius:20px;padding:18px 22px;color:#3E6B73;font-size:15px;display:flex;gap:12px;align-items:flex-start;}

/* ============================================================
   WooCommerce — global page shell
   ============================================================ */
.snackty .woocommerce,
.snackty .woocommerce-page{max-width:var(--sn-max);margin:0 auto;padding:48px 24px 80px;}
.snackty .woocommerce .col2-set,.snackty .woocommerce-page .col2-set{width:100%;}
.snackty .woocommerce-breadcrumb{color:var(--sn-slate-2);font-size:14px;margin-bottom:24px;}
.snackty .woocommerce-breadcrumb a{color:var(--sn-slate);}
.snackty .page-title,.snackty .woocommerce-products-header__title{
  font-size:clamp(34px,5vw,52px);font-weight:500;letter-spacing:-.025em;line-height:1.02;margin-bottom:10px;
}
.snackty .term-description,.snackty .woocommerce-products-header p{color:var(--sn-slate);font-size:17px;max-width:560px;}
.snackty .woocommerce-result-count{color:var(--sn-slate);font-size:14px;}
.snackty .woocommerce-ordering select{display:inline-block;width:auto;padding:10px 16px;border-radius:999px;}

/* ============================================================
   Single product
   ============================================================ */
.snackty .single-product div.product{display:flex;flex-wrap:wrap;gap:48px;align-items:flex-start;}
.snackty .single-product div.product .woocommerce-product-gallery{flex:1 1 340px;min-width:280px;margin:0;}
.snackty .single-product div.product .woocommerce-product-gallery__wrapper{border-radius:var(--sn-radius-card);overflow:hidden;}
.snackty .single-product div.product .woocommerce-product-gallery img{border-radius:var(--sn-radius-card);}
.snackty .single-product div.product .summary{flex:1 1 360px;min-width:280px;margin:0;display:flex;flex-direction:column;gap:18px;}
.snackty .single-product div.product .product_title{font-size:clamp(30px,4.4vw,46px);font-weight:500;letter-spacing:-.025em;line-height:1.04;margin:0;}
.snackty .single-product div.product p.price,
.snackty .single-product div.product span.price{font-size:26px;font-weight:600;color:var(--sn-ink);}
.snackty .single-product div.product p.price del{color:var(--sn-slate-2);font-weight:450;}
.snackty .single-product .woocommerce-product-details__short-description{color:var(--sn-slate);font-size:17px;line-height:1.6;}
.snackty .single-product form.cart{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin:6px 0;}
.snackty .single-product form.cart .quantity{display:flex;align-items:center;border:1.5px solid var(--sn-line-2);border-radius:999px;padding:5px;}
.snackty .single-product form.cart .quantity input.qty{width:54px;text-align:center;border:none;background:transparent;padding:8px 0;font-size:18px;font-weight:600;}
.snackty .single-product form.cart .single_add_to_cart_button{flex:1;min-width:200px;padding:16px 28px;}
.snackty .product_meta{font-size:14px;color:var(--sn-slate);border-top:1px solid var(--sn-line);padding-top:16px;}
.snackty .product_meta a{color:var(--sn-teal);}
.snackty .woocommerce-tabs{width:100%;flex:1 1 100%;margin-top:24px;}
.snackty .woocommerce-tabs ul.tabs{padding:0;margin:0 0 24px;display:flex;flex-wrap:wrap;gap:8px;border:none;}
.snackty .woocommerce-tabs ul.tabs::before{display:none;}
.snackty .woocommerce-tabs ul.tabs li{background:#fff;border:1px solid var(--sn-line);border-radius:999px;margin:0;padding:0;}
.snackty .woocommerce-tabs ul.tabs li.active{background:var(--sn-ink);border-color:var(--sn-ink);}
.snackty .woocommerce-tabs ul.tabs li a{padding:10px 22px;color:var(--sn-ink);font-weight:600;}
.snackty .woocommerce-tabs ul.tabs li.active a{color:#fff;}
.snackty .woocommerce-tabs ul.tabs li::before,.snackty .woocommerce-tabs ul.tabs li::after{display:none;}
.snackty .related.products,.snackty .upsells.products{width:100%;flex:1 1 100%;margin-top:40px;}
.snackty .related.products>h2,.snackty .upsells.products>h2{font-size:clamp(24px,3.2vw,32px);margin-bottom:24px;}
.snackty .stock{color:var(--sn-teal);font-weight:600;}

/* ============================================================
   Cart
   ============================================================ */
.snackty .woocommerce-cart-form,.snackty .cart-collaterals{margin-top:8px;}
.snackty table.cart,.snackty table.shop_table{border:none;border-collapse:separate;border-spacing:0;background:#fff;border-radius:24px;overflow:hidden;}
.snackty table.shop_table th{background:transparent;color:var(--sn-ink);font-weight:600;padding:18px 20px;border-bottom:1px solid var(--sn-line);}
.snackty table.shop_table td{padding:18px 20px;border-top:1px solid var(--sn-line);vertical-align:middle;}
.snackty table.cart img{width:64px;border-radius:50%;}
.snackty .product-name a{color:var(--sn-ink);font-weight:600;}
.snackty .product-name a:hover{color:var(--sn-teal);}
.snackty .cart .quantity input.qty{width:64px;text-align:center;border:1px solid var(--sn-line-2);border-radius:999px;padding:10px;}
.snackty td.product-remove a.remove{color:var(--sn-slate-2)!important;font-size:20px;width:auto;height:auto;line-height:1;}
.snackty td.product-remove a.remove:hover{background:transparent;color:var(--sn-ink)!important;}
.snackty .cart_totals{background:#fff;border-radius:24px;padding:28px;}
.snackty .cart_totals h2{font-size:22px;}
.snackty .cart_totals table.shop_table{border-radius:0;}
.snackty .cart_totals table.shop_table td,.snackty .cart_totals table.shop_table th{padding:14px 0;background:transparent;}
.snackty .coupon{display:flex;gap:10px;flex-wrap:wrap;align-items:center;}
.snackty .coupon input{width:auto;flex:1;min-width:160px;}
.snackty .wc-proceed-to-checkout a.checkout-button{width:100%;padding:16px;font-size:16px;}

/* ============================================================
   Checkout
   ============================================================ */
.snackty .woocommerce-checkout h3{font-size:19px;font-weight:600;}
.snackty form.checkout{display:flex;flex-wrap:wrap;gap:40px;align-items:flex-start;}
.snackty #customer_details{flex:1 1 360px;min-width:300px;}
.snackty #order_review,.snackty #order_review_heading{flex:1 1 320px;min-width:300px;}
.snackty #customer_details .col-1,.snackty #customer_details .col-2{width:100%;float:none;background:#fff;border-radius:24px;padding:clamp(22px,3vw,32px);margin-bottom:24px;}
.snackty #order_review{background:#fff;border-radius:24px;padding:clamp(22px,3vw,30px);}
.snackty .woocommerce-checkout #payment{background:var(--sn-mist-2);border-radius:18px;}
.snackty .woocommerce-checkout #payment ul.payment_methods{border-bottom:1px solid var(--sn-line);}
.snackty #payment .place-order{padding:18px;}
.snackty #place_order{width:100%;padding:16px;font-size:16px;}
.snackty .woocommerce-checkout-review-order-table th,
.snackty .woocommerce-checkout-review-order-table td{padding:14px 4px;}
.snackty .form-row label{font-size:14px;font-weight:600;margin-bottom:6px;}
.snackty .required{color:var(--sn-teal);}

/* ============================================================
   My Account
   ============================================================ */
.snackty .woocommerce-account .woocommerce{display:flex;flex-wrap:wrap;gap:36px;align-items:flex-start;}
.snackty .woocommerce-MyAccount-navigation{flex:0 0 240px;background:#fff;border-radius:24px;padding:16px;}
.snackty .woocommerce-MyAccount-navigation ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;}
.snackty .woocommerce-MyAccount-navigation li a{display:block;padding:12px 18px;border-radius:999px;color:var(--sn-ink);font-weight:500;}
.snackty .woocommerce-MyAccount-navigation li a:hover{background:var(--sn-mist);}
.snackty .woocommerce-MyAccount-navigation li.is-active a{background:var(--sn-ink);color:#fff;}
.snackty .woocommerce-MyAccount-content{flex:1 1 360px;min-width:280px;background:#fff;border-radius:24px;padding:clamp(24px,3vw,36px);}
.snackty .woocommerce-MyAccount-content a{color:var(--sn-teal);}
.snackty .woocommerce form.login,.snackty .woocommerce form.register,
.snackty .woocommerce-ResetPassword{background:#fff;border-radius:24px;padding:clamp(24px,3vw,36px);max-width:520px;}

/* ============================================================
   Notices / messages
   ============================================================ */
.snackty .woocommerce-message,.snackty .woocommerce-info,.snackty .woocommerce-error,
.snackty .woocommerce-noreviews,.snackty .wc-block-components-notice-banner{
  border-radius:16px;border:none;background:#fff;color:var(--sn-ink);padding:16px 20px;box-shadow:var(--sn-shadow-pill);
}
.snackty .woocommerce-message::before,.snackty .woocommerce-info::before{color:var(--sn-teal);}
.snackty .woocommerce-message{border-left:4px solid var(--sn-teal);}
.snackty .woocommerce-info{border-left:4px solid var(--sn-teal);}
.snackty .woocommerce-error{border-left:4px solid #C75A33;}
.snackty .demo_store,.snackty .woocommerce-store-notice{background:var(--sn-ink);}

/* ============================================================
   Footer
   ============================================================ */
.sn-footer{background:var(--sn-footer);color:#CFE0E2;margin-top:64px;}
.sn-footer-inner{max-width:var(--sn-max);margin:0 auto;padding:56px 24px 28px;}
.sn-footer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:36px;}
.sn-footer-brand{display:flex;flex-direction:column;gap:14px;min-width:200px;}
.sn-footer-brand .sn-brand{color:#fff;}
.sn-footer-brand p{margin:0;font-size:15px;line-height:1.5;color:rgba(255,255,255,.65);max-width:260px;}
.sn-socials{display:flex;gap:10px;margin-top:4px;}
.sn-social{width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.1);display:inline-flex;align-items:center;justify-content:center;color:#fff;transition:background .2s;}
.sn-social:hover{background:rgba(255,255,255,.22);color:#fff;}
.sn-footer-col{display:flex;flex-direction:column;gap:12px;}
.sn-footer-col-title{font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.5);}
.sn-footer-col a{font-size:15px;color:rgba(255,255,255,.82);}
.sn-footer-col a:hover{color:#fff;}
.sn-footer-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px;}
.sn-footer-bottom{border-top:1px solid rgba(255,255,255,.16);margin-top:40px;padding-top:22px;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:center;}
.sn-footer-bottom span,.sn-footer-bottom a{font-size:14px;color:rgba(255,255,255,.55);}
.sn-footer-bottom a:hover{color:#fff;}
.sn-footer-legal{display:flex;gap:22px;flex-wrap:wrap;}

/* ============================================================
   Utilities / misc
   ============================================================ */
.sn-center{text-align:center;}
.sn-mt-0{margin-top:0;}
.sn-empty{max-width:560px;margin:40px auto;text-align:center;color:var(--sn-slate);}
.sn-empty .sn-vp-ico{margin:0 auto 16px;width:64px;height:64px;}
.lucide{width:1em;height:1em;}
@keyframes snFade{from{opacity:0;}to{opacity:1;}}
@keyframes snToast{from{opacity:0;transform:translate(-50%,14px);}to{opacity:1;transform:translate(-50%,0);}}

/* pagination */
.snackty .woocommerce-pagination ul{border:none;display:flex;gap:8px;justify-content:center;}
.snackty .woocommerce-pagination ul li{border:none;}
.snackty .woocommerce-pagination ul li a,.snackty .woocommerce-pagination ul li span{
  border-radius:999px;border:1px solid var(--sn-line);background:#fff;min-width:44px;height:44px;
  display:inline-flex;align-items:center;justify-content:center;color:var(--sn-ink);
}
.snackty .woocommerce-pagination ul li span.current{background:var(--sn-ink);color:#fff;border-color:var(--sn-ink);}

@media(max-width:600px){
  .sn-section,.sn-news,.snackty .woocommerce,.snackty .woocommerce-page{padding-left:18px;padding-right:18px;}
}
