/* =====================================================================
   WaterClue — Global Site Stylesheet (shared chrome)
   Variables, reset, utilities, header, mobile nav, footer, breadcrumb,
   shared product card primitives, animations.
   Page-specific CSS lives in the <style> block at the top of each view.
   ===================================================================== */

/* ==================== RESET & VARIABLES ==================== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --color-primary:#0A5E54;
  --color-primary-dark:#084840;
  --color-primary-light:#E8F5F2;
  --color-primary-muted:#B8DDD7;
  --color-accent:#D4702A;
  --color-accent-hover:#BF6223;
  --color-surface:#FFFFFF;
  --color-surface-alt:#F6F8FA;
  --color-surface-raised:#FFFFFF;
  --color-border:#E2E6EA;
  --color-border-light:#EEF1F4;
  --color-text:#1A1F25;
  --color-text-secondary:#555D67;
  --color-text-tertiary:#8A929C;
  --color-star:#E8A317;
  --color-amazon:#FF9900;
  --color-amazon-hover:#E88B00;
  --color-success:#10A37F;
  --color-danger:#D04A40;
  --color-warning:#E8A317;
  --font-body:'DM Sans',sans-serif;
  --font-heading:'Fraunces',serif;
  --container:1400px;
  --radius-sm:6px;
  --radius-md:10px;
  --radius-lg:14px;
  --shadow-sm:0 1px 3px rgba(0,0,0,.06);
  --shadow-md:0 2px 8px rgba(0,0,0,.08);
  --shadow-lg:0 4px 20px rgba(0,0,0,.1);
  --shadow-card:0 1px 4px rgba(0,0,0,.05),0 0 0 1px var(--color-border-light);
  --transition:180ms ease;
}
html{font-size:16px;-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{font-family:var(--font-body);color:var(--color-text);background:var(--color-surface);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;border:none;background:none}
ul,ol{list-style:none}
input,select,textarea{font-family:inherit}
.container,.c{width:100%;max-width:var(--container);margin:0 auto;padding:0 24px}
@media(max-width:480px){.container,.c{padding:0 16px}}

/* ==================== UTILITY ==================== */
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.badge{display:inline-flex;align-items:center;gap:4px;font-size:.7rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:3px 8px;border-radius:100px;background:var(--color-primary-light);color:var(--color-primary)}
.badge--accent{background:#FFF3E6;color:var(--color-accent)}
.star-row{display:flex;align-items:center;gap:3px}
.star-row svg{width:14px;height:14px;fill:var(--color-star)}
.star-row span{font-size:.8rem;color:var(--color-text-secondary);margin-left:2px}
.section-eyebrow{font-size:.7rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--color-primary);margin-bottom:6px}
.section-title{font-family:var(--font-heading);font-size:1.6rem;font-weight:600;color:var(--color-text);line-height:1.25;margin-bottom:4px}
.section-subtitle{font-size:.92rem;color:var(--color-text-secondary);max-width:540px}
.section-header{margin-bottom:28px}
.section-header-row{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}
.view-all{font-size:.85rem;font-weight:600;color:var(--color-primary);display:inline-flex;align-items:center;gap:4px;white-space:nowrap;transition:color var(--transition)}
.view-all:hover{color:var(--color-accent)}
.view-all svg{width:16px;height:16px;transition:transform var(--transition)}
.view-all:hover svg{transform:translateX(3px)}

/* ==================== DISCLOSURE BAR ==================== */
.disclosure-bar{padding:14px 0;background:var(--color-primary-light);border-bottom:1px solid var(--color-primary-muted)}
.disclosure-bar p{font-size:.76rem;color:var(--color-primary-dark);text-align:center;line-height:1.5}
.disclosure-bar a{font-weight:600;text-decoration:underline}

/* ==================== HEADER ==================== */
.site-header{background:var(--color-surface);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:1000;transition:box-shadow .2s ease}
.site-header.scrolled{box-shadow:var(--shadow-sm)}
.header-top{display:flex;align-items:center;justify-content:space-between;gap:16px;height:64px}
.logo{display:flex;align-items:center;gap:8px;flex-shrink:0}
.logo-icon{width:32px;height:32px;border-radius:var(--radius-sm);background:var(--color-primary);display:flex;align-items:center;justify-content:center}
.logo-icon svg{width:20px;height:20px;fill:#fff}
.logo-text{font-family:var(--font-heading);font-size:1.25rem;font-weight:700;color:var(--color-text)}
.logo-text span{color:var(--color-primary)}
.header-search{flex:1;max-width:520px;position:relative}
.header-search input{width:100%;height:42px;border:1.5px solid var(--color-border);border-radius:100px;padding:0 44px 0 18px;font-size:.9rem;font-family:var(--font-body);color:var(--color-text);background:var(--color-surface-alt);transition:border-color var(--transition),background var(--transition)}
.header-search input::placeholder{color:var(--color-text-tertiary)}
.header-search input:focus{outline:none;border-color:var(--color-primary);background:var(--color-surface)}
.header-search button{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:34px;height:34px;border-radius:50%;background:var(--color-primary);display:flex;align-items:center;justify-content:center;transition:background var(--transition)}
.header-search button:hover{background:var(--color-primary-dark)}
.header-search button svg{width:16px;height:16px;fill:#fff}
.header-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}
.header-actions a{display:flex;align-items:center;gap:6px;font-size:.82rem;font-weight:500;color:var(--color-text-secondary);padding:8px 12px;border-radius:var(--radius-sm);transition:background var(--transition),color var(--transition)}
.header-actions a:hover{background:var(--color-surface-alt);color:var(--color-text)}
.header-actions a svg{width:18px;height:18px;flex-shrink:0}
.header-nav{border-top:1px solid var(--color-border-light);overflow:hidden}
.nav-scroll{display:flex;align-items:center;gap:2px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding:0}
.nav-scroll::-webkit-scrollbar{display:none}
.nav-item{display:flex;align-items:center;gap:5px;padding:11px 14px;font-size:.82rem;font-weight:500;color:var(--color-text-secondary);white-space:nowrap;border-bottom:2px solid transparent;transition:color var(--transition),border-color var(--transition)}
.nav-item:hover{color:var(--color-primary);border-bottom-color:var(--color-primary)}
.nav-item svg{width:16px;height:16px;flex-shrink:0;opacity:.6}
.nav-item:hover svg{opacity:1}
.nav-item--active{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:600}
.mobile-menu-btn{display:none;width:40px;height:40px;align-items:center;justify-content:center;border-radius:var(--radius-sm)}
.mobile-menu-btn svg{width:22px;height:22px}
@media(max-width:768px){
  .header-search{max-width:none;order:3;flex-basis:100%;margin-bottom:10px;display:none}
  .header-search.show{display:block}
  .header-actions .hide-mobile{display:none}
  .mobile-menu-btn{display:flex}
  .header-top{flex-wrap:wrap;height:auto;padding:10px 0}
}
@media(max-width:480px){
  .logo-text{font-size:1.1rem}
  .nav-item{padding:10px 11px;font-size:.78rem}
}

/* ==================== MOBILE OVERLAY NAV ==================== */
.mobile-nav-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.3);z-index:2000;opacity:0;transition:opacity .3s}
.mobile-nav-overlay.open{display:block;opacity:1}
.mobile-nav-panel{position:fixed;top:0;right:0;width:min(320px,85vw);height:100%;background:var(--color-surface);z-index:2001;transform:translateX(100%);transition:transform .3s ease;overflow-y:auto;padding:20px}
.mobile-nav-panel.open{transform:translateX(0)}
.mobile-nav-close{width:36px;height:36px;display:flex;align-items:center;justify-content:center;margin-left:auto;margin-bottom:16px;border-radius:var(--radius-sm);background:var(--color-surface-alt)}
.mobile-nav-close svg{width:20px;height:20px}
.mobile-nav-panel .mobile-nav-list a{display:flex;align-items:center;gap:10px;padding:12px 8px;font-size:.9rem;font-weight:500;color:var(--color-text);border-bottom:1px solid var(--color-border-light)}
.mobile-nav-panel .mobile-nav-list a svg{width:20px;height:20px;fill:var(--color-primary);opacity:.6}
.mobile-nav-search{margin-bottom:20px}
.mobile-nav-search input{width:100%;height:44px;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);padding:0 14px;font-size:.9rem;font-family:var(--font-body)}
.mobile-nav-search input:focus{outline:none;border-color:var(--color-primary)}

/* ==================== BREADCRUMB ==================== */
.breadcrumb{padding:16px 0;border-bottom:1px solid var(--color-border-light);background:var(--color-surface)}
.breadcrumb ol{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:.8rem}
.breadcrumb li{display:flex;align-items:center;color:var(--color-text-tertiary)}
.breadcrumb li a{color:var(--color-text-secondary);transition:color var(--transition)}
.breadcrumb li a:hover{color:var(--color-primary)}
.breadcrumb li.sep{color:var(--color-text-tertiary);margin:0 2px}
.breadcrumb li.active{color:var(--color-text);font-weight:600}

/* ==================== FOOTER ==================== */
.site-footer{background:var(--color-surface-alt);border-top:1px solid var(--color-border);padding:48px 0 0}
.footer-main{display:grid;grid-template-columns:1.4fr repeat(4,1fr);gap:32px;padding-bottom:36px;border-bottom:1px solid var(--color-border)}
.footer-brand p{font-size:.82rem;color:var(--color-text-secondary);line-height:1.6;margin-top:12px;max-width:280px}
.footer-col h4{font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-tertiary);margin-bottom:14px}
.footer-col ul li{margin-bottom:8px}
.footer-col ul li a{font-size:.82rem;color:var(--color-text-secondary);transition:color var(--transition)}
.footer-col ul li a:hover{color:var(--color-primary)}
.footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:20px 0}
.footer-bottom p{font-size:.74rem;color:var(--color-text-tertiary)}
.footer-legal{display:flex;gap:20px}
.footer-legal a{font-size:.74rem;color:var(--color-text-tertiary);transition:color var(--transition)}
.footer-legal a:hover{color:var(--color-text)}
@media(max-width:960px){.footer-main{grid-template-columns:repeat(3,1fr)}.footer-brand{grid-column:1/-1}}
@media(max-width:640px){.footer-main{grid-template-columns:repeat(2,1fr);gap:24px}.footer-col:first-of-type{grid-column:1/-1}}
@media(max-width:480px){.footer-main{grid-template-columns:1fr}}

/* ==================== SHARED PRODUCT CARD PRIMITIVES ==================== */
.product-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.product-card{background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-md);overflow:hidden;transition:box-shadow var(--transition),border-color var(--transition)}
.product-card:hover{box-shadow:var(--shadow-md);border-color:var(--color-border)}
.product-img{position:relative;background:var(--color-surface-alt);aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;overflow:hidden}
.product-img img{width:100%;height:100%;object-fit:contain}
.product-img .placeholder-icon{width:56px;height:56px;fill:var(--color-primary-muted);opacity:.5}
.product-img .product-badge{position:absolute;top:10px;left:10px}
.product-body{padding:14px 16px 16px}
.product-brand{font-size:.72rem;font-weight:600;color:var(--color-primary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px}
.product-name{font-size:.88rem;font-weight:600;line-height:1.35;margin-bottom:6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.product-name a{color:inherit}
.product-name a:hover{color:var(--color-primary)}
.product-specs{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:10px}
.product-specs span{font-size:.7rem;color:var(--color-text-secondary);background:var(--color-surface-alt);padding:2px 7px;border-radius:100px}
.product-price-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}
.product-price{font-family:var(--font-heading);font-size:1.05rem;font-weight:700;color:var(--color-text)}
.product-price .from{font-size:.72rem;font-weight:400;color:var(--color-text-tertiary)}
.amazon-btn{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:9px 14px;background:var(--color-amazon);color:#fff;font-size:.8rem;font-weight:600;border-radius:var(--radius-sm);transition:background var(--transition)}
.amazon-btn:hover{background:var(--color-amazon-hover);color:#fff}
.amazon-btn svg{width:14px;height:14px;fill:#fff}
@media(max-width:960px){.product-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:640px){.product-grid{grid-template-columns:repeat(2,1fr);gap:10px}}
@media(max-width:360px){.product-grid{grid-template-columns:1fr}}

/* ==================== AD SLOT ==================== */
.ad-slot{background:repeating-linear-gradient(45deg,var(--color-surface-alt) 0 12px,#EEF1F4 12px 24px);border:1px dashed var(--color-border);border-radius:var(--radius-md);padding:32px 16px;text-align:center;color:var(--color-text-tertiary);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;font-weight:600}

/* ==================== PAGINATION ==================== */
.pagination{display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap;margin-top:32px}
.pagination a,.pagination span{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 10px;border-radius:var(--radius-sm);border:1px solid var(--color-border-light);background:var(--color-surface);font-size:.82rem;color:var(--color-text-secondary);transition:background var(--transition),color var(--transition),border-color var(--transition)}
.pagination a:hover{background:var(--color-surface-alt);color:var(--color-text)}
.pagination .current{background:var(--color-primary);color:#fff;border-color:var(--color-primary);font-weight:600}
.pagination .disabled{opacity:.5;pointer-events:none}

/* ==================== ANIMATIONS ==================== */
@keyframes fadeUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
.animate-in,.anim{opacity:0;transform:translateY(16px);transition:opacity .5s ease,transform .5s ease}
.animate-in.visible,.anim.vis{opacity:1;transform:translateY(0)}
