/*
Theme Name: IcePro
Theme URI: https://icepro.co.uk
Author: Barron AI Solutions
Description: Bespoke WooCommerce theme for IcePro — UK commercial ice machine ecommerce. Product structure, advanced filters, comparison, ex/inc VAT pricing and a dual buy / request-a-quote flow.
Version: 1.0.0
Requires at least: 6.4
Tested up to: 7.0
Requires PHP: 8.1
WC requires at least: 8.0
WC tested up to: 10.8
Text Domain: icepro
*/

:root{
  --ip-navy:#0a1f44; --ip-navy-2:#0c2452; --ip-blue:#1d4ed8; --ip-blue-600:#2563eb; --ip-blue-700:#1e40af;
  --ip-blue-50:#eff4ff; --ip-blue-100:#dbe6fe; --ip-green:#16a34a; --ip-green-50:#ecfdf3;
  --ip-ink:#0f172a; --ip-body:#334155; --ip-muted:#64748b; --ip-line:#e2e8f0; --ip-line-2:#eef2f7;
  --ip-bg:#ffffff; --ip-bg-soft:#f7f9fc; --ip-bg-soft-2:#f1f5f9; --ip-star:#f59e0b; --ip-instock:#16a34a; --ip-danger:#dc2626;
  --ip-font:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --ip-radius:12px; --ip-radius-sm:8px; --ip-radius-lg:16px;
  --ip-shadow:0 1px 2px rgba(15,23,42,.04),0 4px 16px rgba(15,23,42,.06);
  --ip-shadow-lg:0 8px 30px rgba(15,23,42,.10); --ip-container:1240px; --ip-gap:24px;
}
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{ margin:0; font-family:var(--ip-font); color:var(--ip-body); background:var(--ip-bg); font-size:16px; line-height:1.6; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
h1,h2,h3,h4,h5{ color:var(--ip-ink); line-height:1.2; margin:0 0 .5em; font-weight:700; letter-spacing:-0.01em; }
h1{ font-size:clamp(1.9rem,3.4vw,2.7rem); } h2{ font-size:clamp(1.5rem,2.4vw,2rem); } h3{ font-size:1.25rem; }
p{ margin:0 0 1rem; }
a{ color:var(--ip-blue); text-decoration:none; } a:hover{ color:var(--ip-blue-700); }
img{ max-width:100%; height:auto; display:block; }
ul,ol{ margin:0 0 1rem; padding-left:1.2rem; }
.ip-container{ max-width:var(--ip-container); margin:0 auto; padding:0 24px; }
.ip-section{ padding:56px 0; } .ip-section--soft{ background:var(--ip-bg-soft); }
.ip-eyebrow{ color:var(--ip-blue); font-weight:700; font-size:.85rem; letter-spacing:.04em; text-transform:uppercase; margin:0 0 .4rem; }
.ip-muted{ color:var(--ip-muted); } .ip-center{ text-align:center; }
.ip-section__head{ margin-bottom:28px; }
.ip-section__head--row{ display:flex; align-items:flex-end; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.ip-btn{ display:inline-flex; align-items:center; justify-content:center; gap:.5rem; font-weight:600; font-size:.95rem; line-height:1; cursor:pointer; padding:.85rem 1.4rem; border-radius:var(--ip-radius-sm); border:1.5px solid transparent; transition:background .15s,color .15s,border-color .15s,transform .05s; white-space:nowrap; text-align:center; }
.ip-btn:active{ transform:translateY(1px); }
.ip-btn--primary{ background:var(--ip-blue); color:#fff; border-color:var(--ip-blue); }
.ip-btn--primary:hover{ background:var(--ip-blue-700); color:#fff; border-color:var(--ip-blue-700); }
.ip-btn--green{ background:var(--ip-green); color:#fff; border-color:var(--ip-green); }
.ip-btn--green:hover{ background:#15803d; color:#fff; }
.ip-btn--ghost{ background:#fff; color:var(--ip-blue); border-color:var(--ip-blue); }
.ip-btn--ghost:hover{ background:var(--ip-blue-50); }
.ip-btn--light{ background:#fff; color:var(--ip-ink); border-color:var(--ip-line); }
.ip-btn--light:hover{ border-color:var(--ip-blue); color:var(--ip-blue); }
.ip-btn--on-navy{ background:#fff; color:var(--ip-navy); border-color:#fff; }
.ip-btn--on-navy.ip-btn--ghost{ background:transparent; color:#fff; border-color:rgba(255,255,255,.5); }
.ip-btn--block{ width:100%; } .ip-btn--sm{ padding:.55rem .9rem; font-size:.85rem; } .ip-btn--lg{ padding:1rem 1.6rem; font-size:1rem; }
.ip-utility{ background:var(--ip-navy); color:#cdd7ec; font-size:.82rem; }
.ip-utility .ip-container{ display:flex; align-items:center; gap:22px; height:42px; }
.ip-utility a{ color:#cdd7ec; display:inline-flex; align-items:center; gap:.4rem; } .ip-utility a:hover{ color:#fff; }
.ip-utility__spacer{ flex:1; } .ip-utility__item{ display:inline-flex; align-items:center; gap:.4rem; }
@media (max-width:900px){ .ip-utility__item--hide-sm{ display:none; } .ip-utility .ip-container{ gap:14px; overflow-x:auto; } }
.ip-header{ background:#fff; border-bottom:1px solid var(--ip-line); position:sticky; top:0; z-index:50; }
.ip-header__bar{ display:flex; align-items:center; gap:24px; height:78px; }
.ip-logo{ display:inline-flex; align-items:center; gap:.6rem; font-weight:800; font-size:1.35rem; color:var(--ip-ink); letter-spacing:-0.02em; }
.ip-logo b{ color:var(--ip-blue); } .ip-logo__mark{ width:34px; height:34px; flex:none; }
.ip-logo small{ display:block; font-size:.55rem; letter-spacing:.16em; color:var(--ip-muted); font-weight:600; text-transform:uppercase; margin-top:2px; }
.ip-search{ flex:1; max-width:560px; position:relative; }
.ip-search input{ width:100%; height:46px; padding:0 46px 0 16px; font-size:.95rem; border:1.5px solid var(--ip-line); border-radius:var(--ip-radius-sm); background:#fff; color:var(--ip-ink); }
.ip-search input:focus{ outline:none; border-color:var(--ip-blue); box-shadow:0 0 0 3px var(--ip-blue-50); }
.ip-search button{ position:absolute; right:5px; top:5px; height:36px; width:38px; border:0; cursor:pointer; background:var(--ip-blue); color:#fff; border-radius:6px; display:flex; align-items:center; justify-content:center; }
.ip-header__actions{ display:flex; align-items:center; gap:18px; }
.ip-header__action{ display:inline-flex; align-items:center; gap:.5rem; color:var(--ip-ink); font-size:.85rem; font-weight:600; }
.ip-header__action small{ display:block; font-weight:500; color:var(--ip-muted); font-size:.72rem; }
.ip-header__action:hover{ color:var(--ip-blue); }
.ip-basket{ position:relative; }
.ip-basket__count{ position:absolute; top:-6px; right:-8px; min-width:18px; height:18px; padding:0 4px; background:var(--ip-blue); color:#fff; border-radius:9px; font-size:.68rem; font-weight:700; display:flex; align-items:center; justify-content:center; }
.ip-nav{ background:#fff; border-bottom:1px solid var(--ip-line); }
.ip-nav__inner{ display:flex; align-items:center; gap:6px; height:50px; }
.ip-nav a{ color:var(--ip-ink); font-weight:600; font-size:.92rem; padding:.5rem .85rem; border-radius:6px; display:inline-flex; align-items:center; gap:.3rem; }
.ip-nav a:hover{ background:var(--ip-blue-50); color:var(--ip-blue); }
.ip-nav__menu{ display:flex; align-items:center; gap:4px; list-style:none; margin:0; padding:0; }
.ip-nav__item{ position:relative; }
.ip-nav__item--has > a::after{ content:"\25BE"; font-size:.7em; color:var(--ip-muted); }
.ip-nav__drop{ position:absolute; top:100%; left:0; min-width:230px; background:#fff; border:1px solid var(--ip-line); border-radius:var(--ip-radius-sm); box-shadow:var(--ip-shadow-lg); padding:8px; list-style:none; margin:6px 0 0; opacity:0; visibility:hidden; transform:translateY(6px); transition:.16s; z-index:60; }
.ip-nav__item--has:hover .ip-nav__drop{ opacity:1; visibility:visible; transform:translateY(0); }
.ip-nav__drop a{ display:block; padding:.5rem .7rem; font-weight:500; font-size:.88rem; }
.ip-nav__cta{ margin-left:auto; }
.ip-burger{ display:none; background:none; border:0; cursor:pointer; padding:8px; color:var(--ip-ink); }
@media (max-width:1024px){ .ip-header__bar{ height:64px; gap:14px; flex-wrap:wrap; padding:10px 0; } .ip-search{ order:3; flex-basis:100%; max-width:none; } .ip-nav{ display:none; } .ip-burger{ display:inline-flex; } }
.ip-trust{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.ip-trust__item{ display:flex; align-items:center; gap:.7rem; font-size:.86rem; }
.ip-trust__item b{ display:block; color:var(--ip-ink); font-size:.9rem; }
.ip-trust__ic{ width:34px; height:34px; flex:none; color:var(--ip-blue); }
@media (max-width:768px){ .ip-trust{ grid-template-columns:repeat(2,1fr); } }
.ip-grid{ display:grid; gap:var(--ip-gap); }
.ip-grid--2{ grid-template-columns:repeat(2,1fr); } .ip-grid--3{ grid-template-columns:repeat(3,1fr); }
.ip-grid--4{ grid-template-columns:repeat(4,1fr); } .ip-grid--5{ grid-template-columns:repeat(5,1fr); }
@media (max-width:1024px){ .ip-grid--5{ grid-template-columns:repeat(3,1fr);} .ip-grid--4{ grid-template-columns:repeat(2,1fr);} }
@media (max-width:680px){ .ip-grid--2,.ip-grid--3,.ip-grid--4,.ip-grid--5{ grid-template-columns:1fr; } }
.ip-card{ background:#fff; border:1px solid var(--ip-line); border-radius:var(--ip-radius); padding:20px; box-shadow:var(--ip-shadow); }
.ip-card--pad-lg{ padding:28px; }
.ip-feature{ display:flex; gap:.9rem; }
.ip-feature__ic{ width:40px; height:40px; flex:none; color:var(--ip-blue); }
.ip-feature h3,.ip-feature h4{ margin:0 0 .25rem; font-size:1rem; }
.ip-feature p{ margin:0; font-size:.88rem; color:var(--ip-muted); }
.ip-price{ line-height:1.25; }
.ip-price__ex{ font-size:1.35rem; font-weight:800; color:var(--ip-ink); }
.ip-price__from{ font-size:.72rem; font-weight:600; color:var(--ip-muted); display:block; }
.ip-price__tag{ font-size:.7rem; font-weight:700; color:var(--ip-muted); text-transform:uppercase; }
.ip-price__inc{ font-size:.9rem; color:var(--ip-muted); }
.ip-footer{ background:var(--ip-navy); color:#aebed8; font-size:.88rem; }
.ip-footer a{ color:#aebed8; } .ip-footer a:hover{ color:#fff; }
.ip-footer__top{ display:grid; grid-template-columns:1.4fr repeat(4,1fr); gap:32px; padding:52px 0 36px; }
.ip-footer__brand .ip-logo{ color:#fff; } .ip-footer__brand .ip-logo b{ color:#fff; }
.ip-footer h4{ color:#fff; font-size:.8rem; letter-spacing:.06em; text-transform:uppercase; margin:0 0 1rem; }
.ip-footer ul{ list-style:none; margin:0; padding:0; } .ip-footer li{ margin-bottom:.55rem; }
.ip-footer__social{ display:flex; gap:10px; margin-top:18px; }
.ip-footer__social a{ width:34px; height:34px; border:1px solid rgba(255,255,255,.18); border-radius:7px; display:flex; align-items:center; justify-content:center; }
.ip-footer__social a:hover{ background:rgba(255,255,255,.1); }
.ip-footer__bar{ border-top:1px solid rgba(255,255,255,.12); padding:18px 0; display:flex; align-items:center; justify-content:space-between; gap:16px; font-size:.8rem; color:#8ea2c2; flex-wrap:wrap; }
.ip-footer__pay{ display:flex; gap:8px; align-items:center; }
.ip-footer__pay span{ background:#fff; color:#0a1f44; font-weight:800; font-size:.62rem; padding:3px 6px; border-radius:4px; letter-spacing:.02em; }
@media (max-width:900px){ .ip-footer__top{ grid-template-columns:1fr 1fr; gap:24px; } }
@media (max-width:560px){ .ip-footer__top{ grid-template-columns:1fr; } }
.ip-crumb{ font-size:.82rem; color:var(--ip-muted); padding:16px 0; }
.ip-crumb a{ color:var(--ip-muted); } .ip-crumb a:hover{ color:var(--ip-blue); } .ip-crumb span{ color:var(--ip-ink); }
.ip-badge{ display:inline-block; font-size:.72rem; font-weight:700; padding:.25rem .55rem; border-radius:999px; }
.ip-badge--best{ background:var(--ip-green-50); color:#15803d; } .ip-badge--blue{ background:var(--ip-blue-50); color:var(--ip-blue); }
.ip-chip{ display:inline-flex; align-items:center; gap:.4rem; background:var(--ip-blue-50); color:var(--ip-blue); border:1px solid var(--ip-blue-100); font-size:.8rem; font-weight:600; padding:.35rem .7rem; border-radius:999px; }
.ip-chip button{ background:none; border:0; cursor:pointer; color:inherit; font-size:1rem; line-height:1; padding:0; }
.ip-flex{ display:flex; } .ip-items-center{ align-items:center; } .ip-gap-sm{ gap:.5rem; } .ip-gap{ gap:1rem; }
.ip-mt{ margin-top:1rem; } .ip-mt-lg{ margin-top:2rem; }
@media(max-width:768px){ .ip-hide-sm{ display:none!important; } }
.ip-show-sm{ display:none; } @media(max-width:768px){ .ip-show-sm{ display:block!important; } }
