/* =========================================================================
   IcePro — WooCommerce + page component styles (cards, filters, PDP, compare,
   quote, finder, homepage sections, content pages). Loaded after app.css.
   ========================================================================= */

/* ---- machine plate (SVG product image) ---- */
.ip-plate{ display:flex; align-items:center; justify-content:center; width:100%; height:100%; }
.ip-plate svg{ width:100%; height:100%; max-height:100%; }
.ip-plate--card{ height:150px; }

/* ---- icon sizing ---- */
.ip-ic svg{ width:24px; height:24px; display:block; }
.ip-ic-sm svg{ width:18px; height:18px; display:block; }
.ip-ic, .ip-ic-sm{ display:inline-flex; align-items:center; justify-content:center; }
.ip-feature__ic svg, .ip-trust__ic svg{ width:24px; height:24px; }
.ip-logo__mark svg{ width:30px; height:30px; color:var(--ip-blue); }

/* =========================================================================
   HERO variants
   ========================================================================= */
.ip-home-hero{ padding:64px 0 72px; }
.ip-home-hero__grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:40px; align-items:center; }
.ip-home-hero__copy h1{ font-size:clamp(2rem,3.6vw,3rem); margin-bottom:.5rem; }
.ip-home-hero__copy > p{ color:#dbe6ff; font-size:1.12rem; max-width:520px; }
.ip-home-hero__cta{ display:flex; gap:12px; flex-wrap:wrap; margin:24px 0; }
.ip-home-hero__trust{ display:grid; grid-template-columns:1fr 1fr; gap:12px 20px; max-width:480px; }
.ip-home-hero__trust span{ display:flex; align-items:center; gap:.5rem; font-size:.88rem; color:#cdddf7; }
.ip-home-hero__trust svg{ color:#7fb0ff; }
.ip-home-hero__art{ display:flex; align-items:center; justify-content:center; }
.ip-home-hero__machine{ width:100%; max-width:380px; filter:drop-shadow(0 24px 48px rgba(0,0,0,.4)); }
.ip-home-hero__machine svg{ transform:scale(1.15); }
@media (max-width:860px){ .ip-home-hero__grid{ grid-template-columns:1fr; } .ip-home-hero__art{ order:-1; } .ip-home-hero__machine{ max-width:240px; } }
@media (max-width:560px){
	.ip-home-hero{ padding:36px 0 44px; }
	.ip-home-hero__copy h1{ font-size:1.7rem; word-break:break-word; overflow-wrap:anywhere; }
	.ip-home-hero__copy > p{ font-size:1rem; }
	.ip-home-hero__trust{ grid-template-columns:1fr; }
	.ip-home-hero__cta .ip-btn{ flex:1; }
}
/* Global guard: never let headings overflow the viewport on small screens */
h1,h2,h3{ overflow-wrap:break-word; }

.ip-listing-hero, .ip-pagehero{ padding:40px 0 44px; }
.ip-listing-hero h1, .ip-pagehero h1{ margin-bottom:.4rem; overflow-wrap:break-word; }
.ip-listing-hero p, .ip-pagehero p{ overflow-wrap:break-word; }
.ip-listing-hero__cta{ display:flex; gap:12px; margin-top:18px; flex-wrap:wrap; }
@media (max-width:560px){
	.ip-listing-hero, .ip-pagehero{ padding:28px 0 32px; }
	.ip-listing-hero h1, .ip-pagehero h1{ font-size:1.55rem; }
	.ip-listing-hero__cta .ip-btn{ flex:1; }
}
.ip-listing-trust{ background:#fff; border-bottom:1px solid var(--ip-line); padding:18px 0; }

/* =========================================================================
   Homepage cards
   ========================================================================= */
.ip-helpcard{ display:flex; flex-direction:column; align-items:flex-start; }
.ip-helpcard h3{ margin:.6rem 0 .3rem; font-size:1.4rem; }
.ip-helpcard p{ flex:1; }

.ip-typecard{ display:block; background:var(--ip-grad-panel); border:1px solid var(--ip-line); border-radius:var(--ip-radius); padding:18px; box-shadow:var(--ip-elev-1); transition:transform .22s ease, box-shadow .22s ease, border-color .22s; }
.ip-typecard:hover{ transform:translateY(-4px); box-shadow:var(--ip-elev-3); border-color:var(--ip-blue-100); }
.ip-typecard__img{ height:120px; display:flex; align-items:center; justify-content:center; margin-bottom:8px; }
.ip-typecard h3{ font-size:1.05rem; margin:0 0 .25rem; }
.ip-typecard p{ font-size:.85rem; color:var(--ip-muted); margin:0 0 .6rem; }
.ip-typecard__link{ color:var(--ip-blue); font-weight:600; font-size:.85rem; display:inline-flex; align-items:center; gap:.3rem; }

.ip-icecard{ display:block; background:#fff; border:1px solid var(--ip-line); border-radius:var(--ip-radius); padding:20px; box-shadow:var(--ip-elev-1); transition:transform .22s, box-shadow .22s; }
.ip-icecard:hover{ transform:translateY(-4px); box-shadow:var(--ip-elev-3); }
.ip-icecard__ic{ width:64px; height:64px; border-radius:14px; display:flex; align-items:center; justify-content:center; margin-bottom:14px; color:var(--ip-blue); }
.ip-icecard__ic svg{ width:30px; height:30px; }
.ip-icecard h3{ font-size:1.1rem; margin:0 0 .3rem; }
.ip-icecard p{ font-size:.86rem; color:var(--ip-muted); }

.ip-finderpromo{ display:grid; grid-template-columns:1.3fr 1fr; gap:36px; align-items:center; }
.ip-finderpromo__pills{ display:flex; flex-wrap:wrap; gap:10px; margin:16px 0; }
.ip-finderpromo__pills span{ display:inline-flex; align-items:center; gap:.4rem; background:var(--ip-blue-50); color:var(--ip-blue); border:1px solid var(--ip-blue-100); padding:.4rem .8rem; border-radius:999px; font-size:.84rem; font-weight:600; }
.ip-finderpromo__steps{ list-style:none; margin:0; padding:0; display:grid; gap:12px; }
.ip-finderpromo__steps li{ display:flex; align-items:center; gap:.8rem; font-weight:600; color:var(--ip-ink); }
.ip-finderpromo__steps span{ width:30px; height:30px; flex:none; background:var(--ip-blue); color:#fff; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:.9rem; }
@media (max-width:768px){ .ip-finderpromo{ grid-template-columns:1fr; } }

.ip-demandcard{ display:block; text-align:left; }
.ip-demandcard__kg{ font-size:1.05rem; font-weight:800; color:var(--ip-blue); margin:.2rem 0; }
.ip-feature--stack{ flex-direction:column; }
.ip-feature--stack .ip-feature__ic{ margin-bottom:.5rem; }
.ip-hubcard{ display:block; text-align:left; }
.ip-hubcard h4{ margin:.5rem 0 .25rem; font-size:.98rem; }

.ip-cta-band{ border-radius:var(--ip-radius-lg); padding:32px 36px; display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; }

/* =========================================================================
   Product card
   ========================================================================= */
.ip-pcard{ position:relative; background:var(--ip-grad-panel); border:1px solid var(--ip-line); border-radius:var(--ip-radius); padding:16px; box-shadow:var(--ip-elev-1); display:flex; flex-direction:column; transition:transform .2s ease, box-shadow .2s ease, border-color .2s; }
.ip-pcard:hover{ transform:translateY(-3px); box-shadow:var(--ip-elev-3); border-color:var(--ip-blue-100); }
.ip-pcard.is-comparing{ border-color:var(--ip-blue); box-shadow:0 0 0 2px var(--ip-blue-50), var(--ip-elev-2); }
.ip-pcard__top{ display:flex; align-items:center; justify-content:space-between; }
.ip-pcard__compare{ display:inline-flex; align-items:center; gap:.4rem; font-size:.78rem; color:var(--ip-muted); cursor:pointer; font-weight:600; }
.ip-pcard__compare input{ accent-color:var(--ip-blue); width:15px; height:15px; }
.ip-pcard__wish{ background:none; border:0; color:var(--ip-muted); cursor:pointer; padding:2px; }
.ip-pcard__wish:hover{ color:var(--ip-danger); }
.ip-pcard__img{ display:block; height:150px; margin:6px 0 12px; }
.ip-pcard__img .ip-plate{ height:150px; }
.ip-pcard__brand{ font-size:.72rem; font-weight:800; letter-spacing:.04em; text-transform:uppercase; color:var(--ip-muted); }
.ip-pcard__name{ font-size:1rem; margin:.15rem 0 .4rem; line-height:1.3; }
.ip-pcard__name a{ color:var(--ip-ink); }
.ip-pcard__name a:hover{ color:var(--ip-blue); }
.ip-pcard__specs{ list-style:none; margin:.6rem 0; padding:.6rem 0; border-top:1px solid var(--ip-line-2); border-bottom:1px solid var(--ip-line-2); display:grid; grid-template-columns:1fr 1fr; gap:.4rem .8rem; }
.ip-pcard__specs li{ display:flex; align-items:center; gap:.4rem; font-size:.8rem; color:var(--ip-body); }
.ip-pcard__specs svg{ color:var(--ip-blue); }
.ip-pcard__price{ margin:.4rem 0 .8rem; }
.ip-pcard__cta{ margin-top:auto; }

/* list view */
.ip-products.is-list{ grid-template-columns:1fr !important; }
.ip-products.is-list .ip-pcard{ flex-direction:row; flex-wrap:wrap; align-items:center; gap:20px; }
.ip-products.is-list .ip-pcard__top{ position:absolute; top:14px; right:16px; width:auto; }
.ip-products.is-list .ip-pcard__img{ width:160px; height:120px; margin:0; flex:none; }
.ip-products.is-list .ip-pcard__name{ width:100%; }
.ip-products.is-list .ip-pcard__specs{ grid-template-columns:repeat(4,1fr); flex:1; border:0; }
.ip-products.is-list .ip-pcard__price{ margin:0; }
.ip-products.is-list .ip-pcard__cta{ display:flex; gap:10px; width:100%; }
@media (max-width:768px){ .ip-products.is-list .ip-pcard{ flex-direction:column; } .ip-products.is-list .ip-pcard__img{ width:100%; } .ip-products.is-list .ip-pcard__specs{ grid-template-columns:1fr 1fr; } }

/* =========================================================================
   Shop layout + filters
   ========================================================================= */
.ip-shop{ display:grid; grid-template-columns:280px 1fr; gap:32px; align-items:start; }
.ip-filters{ position:sticky; top:140px; background:#fff; border:1px solid var(--ip-line); border-radius:var(--ip-radius); box-shadow:var(--ip-elev-1); overflow:hidden; }
.ip-filters__head{ display:flex; align-items:center; justify-content:space-between; padding:16px 18px; border-bottom:1px solid var(--ip-line); }
.ip-filters__head h2{ font-size:1rem; margin:0; display:flex; align-items:center; gap:.5rem; }
.ip-filters__close{ display:none; background:none; border:0; font-size:1.5rem; cursor:pointer; color:var(--ip-muted); }
.ip-filtergroup{ border-bottom:1px solid var(--ip-line-2); }
.ip-filtergroup summary{ list-style:none; cursor:pointer; padding:13px 18px; font-weight:600; font-size:.9rem; color:var(--ip-ink); display:flex; align-items:center; justify-content:space-between; }
.ip-filtergroup summary::-webkit-details-marker{ display:none; }
.ip-filtergroup__chev{ transition:transform .2s; color:var(--ip-muted); }
.ip-filtergroup[open] .ip-filtergroup__chev{ transform:rotate(180deg); }
.ip-filtergroup__list{ list-style:none; margin:0; padding:0 18px 14px; }
.ip-filteropt{ display:flex; align-items:center; gap:.55rem; padding:.4rem 0; font-size:.86rem; color:var(--ip-body); }
.ip-filteropt:hover{ color:var(--ip-blue); }
.ip-filteropt__box{ width:18px; height:18px; flex:none; border:1.5px solid var(--ip-line); border-radius:4px; display:flex; align-items:center; justify-content:center; background:#fff; }
.ip-filteropt__box svg{ width:13px; height:13px; color:#fff; }
.ip-filteropt.is-active .ip-filteropt__box{ background:var(--ip-blue); border-color:var(--ip-blue); }
.ip-filteropt__label{ flex:1; }
.ip-filteropt.is-active .ip-filteropt__label{ font-weight:600; color:var(--ip-blue); }
.ip-filteropt__count{ font-size:.76rem; color:var(--ip-muted); }
.ip-pricefilter{ padding:4px 18px 14px; }
.ip-pricefilter__row{ display:flex; align-items:center; gap:.5rem; }
.ip-pricefilter__row input{ width:100%; height:40px; padding:0 10px; border:1.5px solid var(--ip-line); border-radius:6px; font-size:.85rem; }
.ip-pricefilter__row input:focus{ outline:none; border-color:var(--ip-blue); }

.ip-results__bar{ display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:18px; flex-wrap:wrap; }
.ip-results__count{ font-size:1.05rem; }
.ip-results__tools{ display:flex; align-items:center; gap:12px; }
.ip-sort__label{ display:inline-flex; align-items:center; gap:.4rem; font-size:.85rem; color:var(--ip-muted); }
.ip-sort select{ border:1.5px solid var(--ip-line); border-radius:6px; padding:.45rem .6rem; font-size:.85rem; background:#fff; color:var(--ip-ink); cursor:pointer; }
.ip-viewtoggle{ display:flex; border:1.5px solid var(--ip-line); border-radius:6px; overflow:hidden; }
.ip-viewtoggle button{ background:#fff; border:0; padding:.45rem .55rem; cursor:pointer; color:var(--ip-muted); }
.ip-viewtoggle button.is-active{ background:var(--ip-blue); color:#fff; }
.ip-active-filters{ display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-bottom:18px; }
.ip-clear-filters{ font-size:.84rem; font-weight:600; color:var(--ip-blue); }

@media (max-width:980px){
	.ip-shop{ grid-template-columns:1fr; }
	.ip-filters{ position:fixed; inset:0 auto 0 0; width:88%; max-width:340px; z-index:200; border-radius:0; transform:translateX(-100%); transition:transform .25s ease; height:100%; overflow-y:auto; }
	.ip-filters.is-open{ transform:translateX(0); box-shadow:var(--ip-shadow-lg); }
	.ip-filters__close{ display:block; }
}

/* =========================================================================
   Single product (PDP)
   ========================================================================= */
.ip-pdp{ display:grid; grid-template-columns:1fr 1fr; gap:40px; }
.ip-pdp__main{ background:var(--ip-grad-panel); border:1px solid var(--ip-line); border-radius:var(--ip-radius); padding:24px; box-shadow:var(--ip-elev-1); }
.ip-pdp__plate{ height:340px; }
.ip-pdp__thumbs{ display:flex; gap:10px; margin-top:12px; }
.ip-pdp__thumb{ width:72px; height:64px; border:1.5px solid var(--ip-line); border-radius:8px; padding:6px; cursor:pointer; background:#fff; }
.ip-pdp__thumb.is-active{ border-color:var(--ip-blue); }
.ip-pdp__thumb .ip-plate{ height:50px; }
.ip-pdp__chips{ display:flex; gap:8px; margin-top:14px; flex-wrap:wrap; }
.ip-pdp__brand{ font-size:.8rem; font-weight:800; letter-spacing:.06em; color:var(--ip-muted); }
.ip-pdp__title{ font-size:1.7rem; margin:.2rem 0 .5rem; }
.ip-pdp__rating{ margin-bottom:14px; }
.ip-pdp__price{ display:flex; align-items:baseline; gap:14px; flex-wrap:wrap; padding:14px 0; border-top:1px solid var(--ip-line-2); border-bottom:1px solid var(--ip-line-2); }
.ip-pdp__ex{ font-size:2rem; font-weight:800; color:var(--ip-ink); }
.ip-pdp__inc{ color:var(--ip-muted); font-size:1rem; }
.ip-pdp__stock{ display:flex; align-items:center; gap:.5rem; color:var(--ip-instock); font-weight:600; font-size:.9rem; margin:14px 0; }
.ip-pdp__buy{ display:flex; gap:12px; align-items:stretch; margin-bottom:12px; }
.ip-qty{ display:inline-flex; align-items:center; border:1.5px solid var(--ip-line); border-radius:var(--ip-radius-sm); overflow:hidden; }
.ip-qty__btn{ width:42px; background:#f8fafc; border:0; font-size:1.2rem; cursor:pointer; color:var(--ip-ink); }
.ip-qty__input{ width:54px; text-align:center; border:0; border-left:1px solid var(--ip-line); border-right:1px solid var(--ip-line); font-size:1rem; height:100%; }
.ip-pdp__buy .ip-btn--lg{ flex:1; }
.ip-pdp__alt{ display:flex; gap:12px; margin-bottom:10px; }
.ip-pdp__alt .ip-btn{ flex:1; }
.ip-pdp__compare{ cursor:pointer; }
.ip-pdp__compare input{ accent-color:var(--ip-blue); margin-right:.3rem; }
.ip-pdp__ask{ display:inline-flex; align-items:center; gap:.4rem; font-weight:600; font-size:.88rem; margin-bottom:18px; }
.ip-pdp__assurances{ list-style:none; margin:0; padding:16px 0 0; border-top:1px solid var(--ip-line-2); display:grid; gap:.5rem; }
.ip-pdp__assurances li{ display:flex; align-items:center; gap:.5rem; font-size:.86rem; color:var(--ip-body); }
.ip-pdp__assurances svg{ color:var(--ip-blue); }
@media (max-width:860px){ .ip-pdp{ grid-template-columns:1fr; } .ip-pdp__plate{ height:260px; } }

.ip-specbar{ display:grid; grid-template-columns:repeat(8,1fr); gap:12px; margin-top:28px; padding:18px; background:#fff; border:1px solid var(--ip-line); border-radius:var(--ip-radius); box-shadow:var(--ip-elev-1); }
.ip-specbar__item{ display:flex; align-items:center; gap:.5rem; }
.ip-specbar__item svg{ color:var(--ip-blue); width:22px; height:22px; }
.ip-specbar__item b{ display:block; font-size:.7rem; text-transform:uppercase; letter-spacing:.03em; color:var(--ip-muted); }
.ip-specbar__item span{ font-size:.82rem; font-weight:600; color:var(--ip-ink); }
@media (max-width:980px){ .ip-specbar{ grid-template-columns:repeat(4,1fr); } }
@media (max-width:520px){ .ip-specbar{ grid-template-columns:repeat(2,1fr); } }

.ip-suit{ display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:8px; }
.ip-suit__col h4{ display:flex; align-items:center; gap:.4rem; font-size:.95rem; }
.ip-suit__col--yes h4{ color:var(--ip-instock); }
.ip-suit__col--no h4{ color:var(--ip-danger); }
.ip-suit__col ul{ list-style:none; margin:0; padding:0; }
.ip-suit__col li{ padding:.3rem 0 .3rem 1.4rem; position:relative; font-size:.88rem; }
.ip-suit__col--yes li::before{ content:"\2713"; position:absolute; left:0; color:var(--ip-instock); font-weight:700; }
.ip-suit__col--no li::before{ content:"\2715"; position:absolute; left:0; color:var(--ip-danger); font-weight:700; }
@media (max-width:520px){ .ip-suit{ grid-template-columns:1fr; } }

.ip-installgrid{ display:grid; grid-template-columns:1fr 1fr 1fr; gap:14px; margin-top:8px; }
.ip-installgrid__item{ text-align:center; padding:14px 8px; background:#f8fafc; border:1px solid var(--ip-line-2); border-radius:8px; font-size:.8rem; color:var(--ip-body); }
.ip-installgrid__item svg{ color:var(--ip-blue); margin:0 auto .4rem; }
@media (max-width:520px){ .ip-installgrid{ grid-template-columns:1fr 1fr; } }
.ip-notice{ display:flex; align-items:flex-start; gap:.5rem; background:#fffbeb; border:1px solid #fde68a; color:#92400e; padding:12px 14px; border-radius:8px; font-size:.85rem; }
.ip-notice svg{ flex:none; color:#d97706; }

.ip-pdp__specwrap{ display:grid; grid-template-columns:1fr 340px; gap:32px; align-items:start; }
.ip-spectable{ margin-bottom:24px; }
.ip-spectable h3{ font-size:1rem; padding-bottom:8px; border-bottom:2px solid var(--ip-blue); display:inline-block; margin-bottom:8px; }
.ip-spectable table{ width:100%; border-collapse:collapse; }
.ip-spectable td{ padding:.6rem 0; border-bottom:1px solid var(--ip-line-2); font-size:.88rem; }
.ip-spectable td:first-child{ color:var(--ip-muted); width:45%; }
.ip-spectable td:last-child{ font-weight:600; color:var(--ip-ink); }
.ip-doc{ display:flex; align-items:center; gap:.7rem; padding:13px 15px; border:1px solid var(--ip-line); border-radius:9px; margin-bottom:10px; background:#fff; transition:border-color .2s, box-shadow .2s; }
.ip-doc:hover{ border-color:var(--ip-blue); box-shadow:var(--ip-elev-1); }
.ip-doc svg{ color:var(--ip-blue); }
.ip-doc__name{ flex:1; font-weight:600; font-size:.88rem; color:var(--ip-ink); }
.ip-doc__name small{ display:block; font-weight:500; color:var(--ip-muted); font-size:.72rem; }
@media (max-width:860px){ .ip-pdp__specwrap{ grid-template-columns:1fr; } }

.ip-acc__price{ font-weight:800; color:var(--ip-ink); margin-top:.4rem; }
.ip-ticklist{ list-style:none; margin:.6rem 0; padding:0; }
.ip-ticklist li{ padding:.25rem 0 .25rem 1.4rem; position:relative; font-size:.85rem; }
.ip-ticklist li::before{ content:"\2713"; position:absolute; left:0; color:var(--ip-instock); font-weight:700; }

/* =========================================================================
   Compare page
   ========================================================================= */
.ip-compare-actions{ display:flex; align-items:center; justify-content:space-between; gap:16px; margin:18px 0; flex-wrap:wrap; }
.ip-compare-toggle{ display:inline-flex; align-items:center; gap:.5rem; font-size:.9rem; font-weight:600; cursor:pointer; }
.ip-compare-toggle input{ accent-color:var(--ip-blue); width:16px; height:16px; }
.ip-compare-scroll{ overflow-x:auto; border:1px solid var(--ip-line); border-radius:var(--ip-radius); box-shadow:var(--ip-elev-1); }
.ip-compare-table{ width:100%; border-collapse:collapse; min-width:680px; background:#fff; }
.ip-compare-table th, .ip-compare-table td{ padding:14px 16px; text-align:left; border-bottom:1px solid var(--ip-line-2); vertical-align:top; }
.ip-compare-rowhead{ width:200px; color:var(--ip-muted); font-weight:600; font-size:.85rem; background:#fafbfd; position:sticky; left:0; }
.ip-compare-head{ text-align:center; border-bottom:2px solid var(--ip-line); }
.ip-compare-head__img{ display:block; }
.ip-compare-head__img .ip-plate{ height:90px; }
.ip-compare-head__name{ display:block; font-weight:700; color:var(--ip-ink); font-size:.92rem; margin:.4rem 0; }
.ip-compare-head__price{ margin-bottom:10px; }
.ip-compare-head__price .ip-price{ text-align:center; }
.ip-compare-group td{ background:var(--ip-blue-50); font-weight:700; color:var(--ip-blue); font-size:.82rem; text-transform:uppercase; letter-spacing:.03em; position:sticky; left:0; }
.ip-compare-spec td:not(.ip-compare-rowhead){ text-align:center; font-weight:600; color:var(--ip-ink); font-size:.88rem; }
.ip-compare-help{ display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; }
.ip-compare-empty{ max-width:560px; margin:0 auto; }

/* compare tray (sticky bottom) */
.ip-compare-tray{ position:fixed; left:0; right:0; bottom:0; background:var(--ip-navy); color:#fff; transform:translateY(110%); transition:transform .3s ease; z-index:150; box-shadow:0 -8px 30px rgba(0,0,0,.25); }
.ip-compare-tray.is-visible{ transform:translateY(0); }
.ip-compare-tray .ip-container{ display:flex; align-items:center; gap:16px; padding:14px 24px; }
.ip-compare-thumb{ display:inline-flex; align-items:center; gap:.4rem; background:rgba(255,255,255,.1); padding:.4rem .7rem; border-radius:999px; font-size:.8rem; }
.ip-compare-thumb button{ background:none; border:0; color:#fff; cursor:pointer; font-size:1rem; }
#ip-compare-thumbs{ display:flex; gap:8px; flex-wrap:wrap; flex:1; }

/* =========================================================================
   Quote / contact
   ========================================================================= */
.ip-quote-grid{ display:grid; grid-template-columns:1.2fr 1fr; gap:36px; align-items:start; }
.ip-quote-list{ display:grid; gap:12px; }
.ip-quote-row{ display:flex; align-items:center; gap:14px; background:#fff; border:1px solid var(--ip-line); border-radius:var(--ip-radius); padding:14px; box-shadow:var(--ip-elev-1); }
.ip-quote-row__thumb img, .ip-quote-row__thumb .ip-plate{ width:80px; height:60px; object-fit:contain; }
.ip-quote-row__body{ flex:1; }
.ip-quote-row__body span{ display:block; font-size:.8rem; }
.ip-quote-row__remove{ font-size:1.4rem; color:var(--ip-muted); }
.ip-field-grid{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.ip-quote-form label, .ip-field-grid label, form label{ display:block; font-size:.85rem; font-weight:600; color:var(--ip-ink); margin-bottom:12px; }
.ip-field-grid input, .ip-quote-form input, .ip-quote-form textarea, form input[type=text], form input[type=email], form input[type=tel], form textarea{ width:100%; margin-top:.3rem; padding:.65rem .8rem; border:1.5px solid var(--ip-line); border-radius:8px; font-size:.9rem; font-weight:400; font-family:inherit; }
form input:focus, form textarea:focus{ outline:none; border-color:var(--ip-blue); box-shadow:0 0 0 3px var(--ip-blue-50); }
.ip-contact-points{ list-style:none; margin:1rem 0; padding:0; }
.ip-contact-points li{ display:flex; align-items:center; gap:.6rem; padding:.4rem 0; }
.ip-contact-points svg{ color:var(--ip-blue); }
@media (max-width:768px){ .ip-quote-grid{ grid-template-columns:1fr; } .ip-field-grid{ grid-template-columns:1fr; } }

/* =========================================================================
   Finder
   ========================================================================= */
.ip-finder{ max-width:820px; margin:0 auto; }
.ip-finder__head{ margin-bottom:24px; }
.ip-finder__progress{ height:6px; background:var(--ip-line); border-radius:999px; overflow:hidden; margin-bottom:28px; }
.ip-finder__bar{ height:100%; width:0; background:var(--ip-grad-blue); transition:width .3s ease; }
.ip-finder__step{ display:none; }
.ip-finder__step.is-active{ display:block; animation:ipfade .3s ease; }
@keyframes ipfade{ from{ opacity:0; transform:translateY(8px);} to{ opacity:1; transform:none;} }
.ip-finder__stepnum{ font-size:.8rem; font-weight:700; color:var(--ip-blue); text-transform:uppercase; letter-spacing:.04em; }
.ip-finder__step h2{ margin:.3rem 0 .3rem; }
.ip-finder__opts{ display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:20px 0; }
.ip-finder__opt{ display:flex; align-items:center; gap:.7rem; text-align:left; padding:16px; border:1.5px solid var(--ip-line); border-radius:var(--ip-radius); background:#fff; cursor:pointer; font-size:.92rem; font-weight:600; color:var(--ip-ink); transition:border-color .18s, box-shadow .18s, transform .12s; }
.ip-finder__opt:hover{ border-color:var(--ip-blue); box-shadow:var(--ip-elev-1); transform:translateY(-2px); }
.ip-finder__opt.is-chosen{ border-color:var(--ip-blue); background:var(--ip-blue-50); }
.ip-finder__opt svg{ color:var(--ip-blue); flex:none; }
.ip-finder__result{ text-align:center; padding:30px 0; }
.ip-finder__tick svg{ width:64px; height:64px; color:var(--ip-instock); margin:0 auto 12px; }
@media (max-width:560px){ .ip-finder__opts{ grid-template-columns:1fr; } }

/* =========================================================================
   FAQ accordion
   ========================================================================= */
.ip-faq{ max-width:840px; }
.ip-faq__item{ border:1px solid var(--ip-line); border-radius:var(--ip-radius); margin-bottom:12px; background:#fff; box-shadow:var(--ip-elev-1); overflow:hidden; }
.ip-faq__item summary{ list-style:none; cursor:pointer; padding:16px 20px; font-weight:600; color:var(--ip-ink); display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.ip-faq__item summary::-webkit-details-marker{ display:none; }
.ip-faq__chev{ transition:transform .2s; color:var(--ip-muted); flex:none; }
.ip-faq__item[open] .ip-faq__chev{ transform:rotate(180deg); }
.ip-faq__a{ padding:0 20px 16px; color:var(--ip-body); font-size:.92rem; }
.ip-faq__a a{ font-weight:600; }

/* =========================================================================
   Content pages
   ========================================================================= */
.ip-page-content{ max-width:860px; }
.ip-page-content h2{ margin-top:1.5rem; }
.ip-checklist{ list-style:none; margin:1rem 0; padding:0; display:grid; gap:.6rem; }
.ip-checklist li{ display:flex; align-items:flex-start; gap:.6rem; }
.ip-checklist svg{ color:var(--ip-instock); flex:none; margin-top:2px; }

/* =========================================================================
   WooCommerce cart / checkout / account base styling
   ========================================================================= */
.woocommerce-notices-wrapper, .woocommerce-message, .woocommerce-error, .woocommerce-info{ margin-bottom:1rem; }
.woocommerce-message{ background:var(--ip-green-50); border-left:4px solid var(--ip-green); padding:12px 16px; border-radius:8px; list-style:none; }
.woocommerce-error{ background:#fef2f2; border-left:4px solid var(--ip-danger); padding:12px 16px; border-radius:8px; list-style:none; }
.woocommerce-info{ background:var(--ip-blue-50); border-left:4px solid var(--ip-blue); padding:12px 16px; border-radius:8px; list-style:none; }
.woocommerce table.shop_table{ border-radius:var(--ip-radius); border:1px solid var(--ip-line); overflow:hidden; }
.woocommerce .button, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit{ background:var(--ip-blue); color:#fff; border-radius:var(--ip-radius-sm); font-weight:600; padding:.7rem 1.2rem; border:0; }
.woocommerce .button:hover, .woocommerce a.button:hover, .woocommerce button.button:hover{ background:var(--ip-blue-700); }
.woocommerce .button.alt, .woocommerce #place_order{ background:var(--ip-green); }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select, .select2-container .select2-selection{ border:1.5px solid var(--ip-line); border-radius:8px; padding:.6rem .8rem; }
.woocommerce-cart .ip-container, .woocommerce-checkout .ip-container, .woocommerce-account .ip-container{ padding-top:40px; padding-bottom:60px; }
.woocommerce-cart table.cart img{ width:70px; }
ul.products{ list-style:none; padding:0; }

/* =========================================================================
   Mobile drawer
   ========================================================================= */
.ip-mobilenav{ position:fixed; inset:0; z-index:300; background:rgba(10,31,68,.5); }
.ip-mobilenav__panel{ position:absolute; right:0; top:0; bottom:0; width:84%; max-width:340px; background:#fff; padding:20px; overflow-y:auto; box-shadow:var(--ip-shadow-lg); }
.ip-mobilenav__head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; padding-bottom:16px; border-bottom:1px solid var(--ip-line); }
.ip-mobilenav__close{ background:none; border:0; cursor:pointer; color:var(--ip-ink); }
.ip-mobilenav nav{ display:grid; }
.ip-mobilenav nav a{ padding:.85rem 0; border-bottom:1px solid var(--ip-line-2); font-weight:600; color:var(--ip-ink); }

/* reveal default-on for above-the-fold safety */
.ip-pcard, .ip-typecard, .ip-icecard{ will-change:transform; }
