/*
Theme Name: Plastic Drainage
Description: Faithful rebuild of plasticdrainage.co.uk (Build Plumb Plastics Ltd) - underground drainage and plumbing supplies. Child of Twenty Twenty-Five.
Template: twentytwentyfive
Version: 2.0.9
Text Domain: plastic-drainage
*/

:root {
  --pd-blue: #01a6e9;
  --pd-blue-dark: #0288c2;
  --pd-terracotta: #cd5033;
  --pd-ink: #474b4d;
  --pd-paper: #f3f0ee;
  --pd-line: #eaeaea;
  --pd-yellow: #ffc43a;
}

body { font-family: 'Rajdhani', system-ui, sans-serif; background: #fff; color: var(--pd-ink); }
b, strong { font-weight: 700; } /* TT5 resets these to 400 */
h1, h2, h3, h4 { font-family: 'Rajdhani', sans-serif; color: var(--pd-ink); font-weight: 700; }
a { color: var(--pd-blue); }

/* ===== top strips ===== */
.pd-sticky { position: sticky; top: 0; z-index: 100; box-shadow: 0 2px 10px rgba(16,18,20,.07); }
body.admin-bar .pd-sticky { top: 32px; }
.pd-topbar {
  background: linear-gradient(90deg, #2aa1ce, #7cc4de); text-align: center; padding: .45rem 1rem;
}
.pd-topbar a { color: #fff; font-weight: 700; letter-spacing: .5px; font-size: .85rem; text-decoration: underline; }
.pd-vatbar {
  background: var(--pd-terracotta); color: #fff; font-weight: 700; font-size: .82rem;
}
.pd-vatbar-inner {
  max-width: 1570px; margin: 0 auto; padding: .45rem 1.25rem;
  display: flex; align-items: center; justify-content: flex-end; gap: .6rem;
}
.pd-vatbar span { cursor: pointer; letter-spacing: .5px; }
.pd-vat-toggle {
  width: 44px; height: 20px; border-radius: 10px; border: 0; background: rgba(0,0,0,.35);
  position: relative; cursor: pointer; padding: 0;
}
.pd-vat-toggle i {
  position: absolute; top: 2px; left: 2px; width: 16px; height: 16px; border-radius: 50%;
  background: #fff; transition: left .18s ease;
}
body.pd-vat-on .pd-vat-toggle i { left: 26px; }

/* ===== header ===== */
.pd-header { background: #fff; }
.pd-header-inner {
  max-width: 1570px; margin: 0 auto; padding: 1rem 1.25rem;
  display: flex; align-items: center; gap: 2.25rem;
}
.pd-logo img { height: 72px; width: auto; display: block; }
.pd-search { flex: 1 1 auto; max-width: 760px; margin: 0 auto; }
.pd-search form { display: flex; }
.pd-search input[type=search] {
  flex: 1 1 auto; border: 1px solid #cfd4d6; border-right: 0;
  border-radius: 4px 0 0 4px; padding: .7rem 1.1rem; font-size: 1rem; font-family: inherit; background: #fff;
}
.pd-search button {
  background: transparent; color: var(--pd-ink); padding: 0 1.1rem;
  border: 1px solid #cfd4d6; border-left: 0; border-radius: 0 4px 4px 0; cursor: pointer;
}
.pd-head-links { display: flex; align-items: center; gap: 1.6rem; white-space: nowrap; }
.pd-hicon {
  display: flex; flex-direction: column; align-items: center; gap: .25rem;
  color: var(--pd-ink); text-decoration: none; font-weight: 600; font-size: .94rem; position: relative;
}
.pd-hicon svg { width: 23px; height: 23px; }
.pd-hicon:hover { color: var(--pd-blue); }
.pd-basket-badge {
  position: absolute; top: -7px; right: 2px; background: var(--pd-blue); color: #fff;
  font-size: .68rem; font-weight: 700; min-width: 17px; height: 17px; border-radius: 9px;
  display: flex; align-items: center; justify-content: center; padding: 0 4px;
}

/* ===== nav (white bar, dark links - the live site's style) ===== */
.pd-nav { background: #fff; border-top: 1px solid var(--pd-line); position: relative; z-index: 50; }
.pd-nav > ul {
  max-width: 1570px; margin: 0 auto; padding: 0 .5rem; list-style: none;
  display: flex; flex-wrap: nowrap; justify-content: center; align-items: stretch;
}
.pd-nav > ul > li { position: static; display: flex; }
.pd-nav > ul > li > a {
  display: flex; align-items: center; justify-content: center;
  color: #000; text-decoration: none; font-weight: 700;
  font-size: .92rem; letter-spacing: .3px; padding: .8rem .75rem; text-transform: uppercase;
  text-align: center; white-space: normal; max-width: 13rem; line-height: 1.3;
  -webkit-text-stroke: .35px currentColor; /* Rajdhani tops out at 700; matches the heavier live nav */
}
.pd-nav > ul > li:hover > a, .pd-nav > ul > li.open > a { color: var(--pd-blue); }

/* ===== USP strip ===== */
.pd-usps { background: #e4f2fa; }
.pd-usps-inner {
  max-width: 1570px; margin: 0 auto; padding: .55rem 1.25rem;
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem;
}
.pd-usp { display: flex; align-items: center; gap: .6rem; }
.pd-usp svg { color: #16181a; flex: 0 0 auto; }
/* the inherited body line-height struts each line box apart - pin it here */
.pd-usp > div { line-height: 1.2; }
/* explicit weights: TT5's global styles reset b to 400 and body text to 300 */
.pd-usp b { display: block; font-size: .95rem; font-weight: 700; color: #16181a; line-height: 1.2; }
.pd-usp > div > span { display: block; font-size: .85rem; font-weight: 500; color: var(--pd-ink); line-height: 1.2; }
.pd-usp .pd-usp-tel { display: inline; color: var(--pd-blue); font-weight: 700; }

/* ===== VAT price display: both spans rendered, body class picks one ===== */
.pd-p-inc { display: none; }
body.pd-vat-on .pd-p-exc { display: none; }
body.pd-vat-on .pd-p-inc { display: inline; }
.pd-p-exc small, .pd-p-inc small { font-weight: 400; color: #8a8f92; font-size: .72em; margin-left: .35em; }
.pd-panel {
  display: none; position: absolute; top: 100%;
  left: 50%; transform: translateX(-50%); width: min(1570px, 100%);
  background: #fff; border-radius: 0 0 10px 10px;
  box-shadow: 0 24px 40px rgba(20,22,26,.18); z-index: 60;
}
.pd-nav > ul > li:hover > .pd-panel, .pd-nav > ul > li.open > .pd-panel { display: block; }
.pd-panel-inner {
  margin: 0; padding: 1.6rem 2rem 1.8rem;
  columns: 3; column-gap: 2.5rem;
}
.pd-group { break-inside: avoid; margin-bottom: 1.2rem; }
.pd-group-h {
  display: block; font-weight: 700; text-transform: uppercase; letter-spacing: .4px;
  color: var(--pd-ink); text-decoration: none; font-size: .95rem; margin-bottom: .45rem; line-height: 1.3;
}
.pd-group-h:hover { color: var(--pd-blue); }
.pd-leaf {
  display: block; color: #55606a; text-decoration: none; font-size: .92rem;
  padding: .18rem 0; line-height: 1.35;
}
.pd-leaf:hover { color: var(--pd-blue); }

/* ===== woo grid to their product-box card look ===== */
.woocommerce ul.products li.product {
  background: #fff; border: 1px solid #ececec; border-radius: 8px;
  padding: 16px 16px 18px; text-align: left; display: flex; flex-direction: column;
  box-sizing: border-box;
}
.woocommerce ul.products li.product > a:first-of-type { display: block; }
.woocommerce ul.products li.product img { background: transparent; border: 0; margin: 0 auto; }
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  color: #000; font-size: .82rem; font-weight: 700; line-height: 1.45;
  text-transform: uppercase; letter-spacing: .2px; margin: 1.1rem 0 .3rem; padding: 0;
}
.woocommerce ul.products li.product .price { color: var(--pd-terracotta); font-weight: 700; font-size: 1.35rem; margin: 0; line-height: 1.2; }
.woocommerce ul.products li.product .price .amount { color: var(--pd-terracotta); }
.woocommerce a.button, .woocommerce button.button, .woocommerce .button,
button.single_add_to_cart_button, .wp-element-button, .wc-block-components-button {
  background: var(--pd-terracotta) !important; color: #fff !important; border: 0 !important;
  border-radius: 5px !important; font-weight: 700; text-transform: uppercase;
  letter-spacing: .4px; font-family: inherit;
}
.woocommerce a.button:hover, button.single_add_to_cart_button:hover { background: #b8432a !important; }
.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--pd-blue); color: #fff; }
.woocommerce div.product p.price { color: var(--pd-terracotta); font-weight: 700; }

.pd-card-stock { display: flex; align-items: center; gap: .45rem; font-size: .92rem; font-weight: 600; color: var(--pd-blue); margin: .5rem 0 0; }
.pd-card-stock::before { content: ''; width: 17px; height: 17px; background: url('data:image/svg+xml;utf8,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22><circle cx=%2212%22 cy=%2212%22 r=%2211%22 fill=%22%2301a6e9%22/><path d=%22m7 12.5 3.2 3.2L17 9%22 stroke=%22white%22 stroke-width=%222.4%22 fill=%22none%22/></svg>') center/contain no-repeat; }
.pd-card-stock.out { color: #d8432c; }
.pd-card-stock.out::before { background: url('data:image/svg+xml;utf8,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22><circle cx=%2212%22 cy=%2212%22 r=%2211%22 fill=%22none%22 stroke=%22%23d8432c%22 stroke-width=%222%22/><path d=%22m8 8 8 8M16 8l-8 8%22 stroke=%22%23d8432c%22 stroke-width=%222.2%22/></svg>') center/contain no-repeat; }
.pd-card-qty { display: flex; align-items: center; justify-content: center; gap: 8px; margin: auto 0 .85rem; padding-top: .85rem; }
.pd-cq {
  width: 46px; height: 46px; background: #f7f7f7; border: 1px solid #e6e6e6; border-radius: 4px;
  font-size: 1.4rem; line-height: 1; cursor: pointer; font-family: inherit; color: #000;
}
.pd-cq:hover { border-color: #cfcfcf; }
.pd-cq-i { width: 44px; border: 0; text-align: center; font-family: inherit; font-size: 1rem; -moz-appearance: textfield; }
.pd-cq-i::-webkit-outer-spin-button, .pd-cq-i::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.woocommerce ul.products li.product .button {
  display: flex; align-items: center; justify-content: center; gap: .5rem; width: 100%;
  text-align: center; padding: .95rem 0; font-size: .92rem; margin: 0;
}
.woocommerce ul.products li.product:not(:has(.pd-card-qty)) .button { margin-top: auto; padding-top: .95rem; }
.woocommerce ul.products li.product:not(:has(.pd-card-qty)) .pd-card-stock { margin-bottom: .95rem; }
.woocommerce ul.products li.product a.ajax_add_to_cart::before {
  content: ''; width: 17px; height: 17px; flex: 0 0 auto;
  background: url('data:image/svg+xml;utf8,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22white%22 stroke-width=%222%22><circle cx=%229%22 cy=%2220%22 r=%221.6%22/><circle cx=%2217%22 cy=%2220%22 r=%221.6%22/><path d=%22M3 3h2l2.6 12.5a1.6 1.6 0 0 0 1.6 1.3h7.9a1.6 1.6 0 0 0 1.6-1.3L20.5 8H6%22/></svg>') center/contain no-repeat;
}

/* related products slider (live layout) */
.pdp-rel-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1.1rem; }
.pdp-rel-head h2 { font-size: 2.2rem; text-transform: uppercase; color: #000; letter-spacing: .3px; margin: 0; }
.pdp-rel-arrows { display: flex; gap: .4rem; }
.pdp-rel-btn { width: 34px; height: 34px; background: none; border: 0; cursor: pointer; color: #000; font-size: 1.9rem; line-height: 1; font-family: inherit; padding: 0; }
.pdp-rel-btn:hover { color: var(--pd-terracotta); }
.pdp-rel-scroll ul.products { display: flex !important; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin: 0; }
.pdp-rel-scroll ul.products::-webkit-scrollbar { display: none; }
.pdp-rel-scroll ul.products li.product { flex: 0 0 25%; width: 25%; max-width: 25%; margin: 0 !important; padding: 16px; box-sizing: border-box; }
@media (max-width: 900px) { .pdp-rel-scroll ul.products li.product { flex-basis: 60%; max-width: 60%; } }

/* ===== homepage ===== */
.pd-home { max-width: 1570px; margin: 0 auto; padding: 1.5rem 1.25rem 0; }
.pd-hero { display: grid; grid-template-columns: 1fr 1fr; gap: 1.4rem; align-items: stretch; }
.pd-hero-tile { position: relative; display: block; overflow: hidden; }
.pd-hero-tile img { width: 100%; object-fit: cover; display: block; transition: transform .25s ease; }
.pd-hero-tile img { height: 480px; }
.pd-hero-tile:hover img { transform: scale(1.02); }
.pd-hero-overlay {
  position: absolute; inset: 0; padding: 2rem;
  background: rgba(20,22,26,.18);
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1.4rem; text-align: center;
}
.pd-hero-overlay b {
  color: #fff; font-size: 2.6rem; line-height: 1.2; letter-spacing: 1px; text-transform: uppercase;
  text-shadow: 0 2px 14px rgba(0,0,0,.45); max-width: 26ch;
  font-weight: 700; -webkit-text-stroke: 1px #fff; /* Rajdhani caps at 700 */
}

.pd-hero-btn {
  background: #fff; color: var(--pd-ink); font-weight: 700; text-transform: uppercase;
  padding: .75rem 1.6rem; border-radius: 3px; white-space: nowrap; letter-spacing: .6px;
  box-shadow: 0 4px 14px rgba(0,0,0,.25);
  -webkit-text-stroke: .4px currentColor;
}
.pd-hero-tile:hover .pd-hero-btn { background: var(--pd-blue); color: #fff; }
.pd-homecats { margin-top: 4.5rem; }
.pd-homecats h2, .pd-brands h2 {
  text-transform: uppercase; font-size: 1.8rem; letter-spacing: .5px; color: #000;
  display: block; text-align: center; margin-bottom: 1.8rem; -webkit-text-stroke: .4px currentColor;
}
.pd-homecats-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 2rem 1.4rem; margin-top: 1.3rem; }
.pd-homecats-grid .pd-cat-tile { background: transparent; border: 0; overflow: visible; }
.pd-homecats-grid .pd-cat-tile:hover { box-shadow: none; transform: none; }
.pd-homecats-grid .pd-cat-img {
  border-radius: 50%; background: #f2f2f2; width: 84%; margin: 0 auto; overflow: hidden;
  transition: transform .2s ease;
}
.pd-homecats-grid .pd-cat-tile:hover .pd-cat-img { transform: scale(1.04); }
.pd-homecats-grid .pd-cat-img img { border-radius: 50%; mix-blend-mode: multiply; }
.pd-homecats-grid .pd-cat-name {
  text-transform: uppercase; font-weight: 700; color: #000; font-size: .95rem;
  padding: 1.1rem .4rem 0; letter-spacing: .3px; line-height: 1.4;
}
.pd-cat-tile { display: flex; flex-direction: column; text-decoration: none; background: #fff; border-radius: 6px; overflow: hidden; transition: box-shadow .2s ease, transform .2s ease; }
.pd-cat-tile:hover { box-shadow: 0 10px 22px rgba(20,22,26,.12); transform: translateY(-3px); }
.pd-cat-img { display: block; aspect-ratio: 1 / 1; }
.pd-cat-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pd-cat-name { padding: .7rem .8rem; font-weight: 700; font-size: .92rem; color: var(--pd-ink); text-align: center; line-height: 1.25; }
.pd-cat-tile:hover .pd-cat-name { color: var(--pd-blue); }
.pd-brands { margin-top: 4.5rem; padding-bottom: 1.5rem; }
.pd-brands-row {
  display: grid; grid-template-columns: repeat(6, 1fr); gap: 1.4rem; margin-top: 1.3rem;
  align-items: center; background: #fff; padding: 1.4rem 0;
}
.pd-brands-row img { max-width: 100%; max-height: 58px; object-fit: contain; margin: 0 auto; display: block; filter: grayscale(25%); }
@media (max-width: 900px) {
  .pd-hero { grid-template-columns: 1fr; }
  .pd-homecats-grid { grid-template-columns: repeat(2, 1fr); }
  .pd-brands-row { grid-template-columns: repeat(3, 1fr); }
}

/* hide the parent theme's own header/footer template output if any leaks */
.wp-block-template-part .wp-block-site-title { display: none; }

@media (max-width: 900px) {
  .pd-header-inner { flex-wrap: wrap; gap: .8rem; }
  .pd-search { order: 3; flex-basis: 100%; max-width: none; }
  .pd-panel-inner { columns: 1; }
  .pd-nav > ul { overflow-x: auto; flex-wrap: nowrap; justify-content: flex-start; }
  .pd-nav > ul > li > a { white-space: nowrap; }
  .pd-usps-inner { grid-template-columns: 1fr 1fr; gap: .8rem; }
  .pd-hero { grid-template-columns: 1fr; }
  .pd-hero-tile img { height: 300px; }
  .pd-hero-overlay b { font-size: 1.5rem; }
}

/* ===== footer stack: SEO block, newsletter band, dark footer ===== */
.pd-seo { background: #fff; text-align: center; padding: 3rem 1.25rem 3.2rem; }
.pd-seo h2 { font-size: 1.9rem; text-transform: uppercase; letter-spacing: .5px; margin-bottom: 1.1rem; -webkit-text-stroke: .4px currentColor; }
.pd-seo p { max-width: 1250px; margin: 0 auto; font-size: 1.12rem; font-weight: 500; line-height: 1.6; }
.pd-newsband { background: var(--pd-blue); text-align: center; padding: 3.2rem 1.25rem 3.6rem; }
.pd-news-icon {
  width: 64px; height: 64px; border-radius: 50%; background: var(--pd-terracotta);
  display: inline-flex; align-items: center; justify-content: center; margin-bottom: 1.4rem;
}
.pd-news-icon svg { width: 30px; height: 30px; }
.pd-newsband h3 {
  color: #fff; text-transform: uppercase; font-size: 1.2rem; letter-spacing: .4px;
  line-height: 1.5; margin-bottom: 1.6rem; -webkit-text-stroke: .35px #fff;
}
.pd-news-form { display: flex; justify-content: center; max-width: 560px; margin: 0 auto; }
.pd-news-form input {
  flex: 1 1 auto; border: 0; padding: 1.05rem 1.3rem; font-family: inherit; font-size: 1rem;
  border-radius: 3px 0 0 3px; min-width: 0;
}
.pd-news-form button {
  background: var(--pd-terracotta); color: #fff; border: 0; padding: 1.05rem 1.9rem;
  font-family: inherit; font-weight: 700; text-transform: uppercase; font-size: .92rem;
  letter-spacing: .5px; border-radius: 0 3px 3px 0; cursor: pointer;
}
.pd-news-form button:hover { background: #b8432a; }
.pd-news-done { color: #fff; font-weight: 700; font-size: 1.1rem; }
.pd-foot { background: #2a2c2d; color: #fff; text-align: center; padding: 2.8rem 1.25rem 2rem; }
.pd-foot-h {
  display: block; text-transform: uppercase; font-size: 1.18rem; letter-spacing: .5px;
  margin-bottom: 1.2rem; -webkit-text-stroke: .35px #fff;
}
.pd-foot-links { margin-bottom: 1.4rem; }
.pd-foot-links a { color: #fff; text-decoration: none; font-size: 1.05rem; font-weight: 500; }
.pd-foot-links a:hover { color: var(--pd-blue); }
.pd-foot-links i { font-style: normal; opacity: .55; margin: 0 1.1rem; }
.pd-foot-btns { display: flex; justify-content: center; gap: 1.5rem; flex-wrap: wrap; margin-bottom: 2.8rem; }
.pd-foot-btn {
  display: inline-flex; align-items: center; gap: .55rem; text-decoration: none;
  font-weight: 700; text-transform: uppercase; font-size: .98rem; letter-spacing: .4px;
  padding: 1.15rem 2.1rem; border-radius: 3px;
}
.pd-foot-btn-solid { background: var(--pd-blue); color: #fff; }
.pd-foot-btn-solid:hover { background: var(--pd-blue-dark); }
.pd-foot-btn-line { background: #fff; color: var(--pd-blue); border: 2px solid var(--pd-blue); }
.pd-foot-btn-line:hover { background: var(--pd-blue); color: #fff; }
.pd-pay { display: flex; justify-content: center; gap: .55rem; margin-bottom: 2rem; }
.pd-pay-badge {
  background: #fff; border-radius: 3px; padding: 4px 5px; display: inline-flex; align-items: center;
}
.pd-pay-badge svg { width: 46px; height: 19px; }
.pd-copy { font-size: .88rem; font-weight: 500; opacity: .85; }
.pd-credit { font-size: .82rem; font-weight: 500; opacity: .6; margin-top: .35rem; }
.pd-credit a { color: inherit; text-decoration: none; }
.pd-credit a:hover { opacity: 1; text-decoration: underline; }
@media (max-width: 700px) {
  .pd-seo h2 { font-size: 1.25rem; }
  .pd-newsband h3 br { display: none; }
  .pd-foot-links i { margin: 0 .45rem; }
}

/* ===== category description: subtitle + full copy, live style ===== */
.taxonomy-description h2, .wp-block-term-description h2 {
  font-size: 1.4rem; font-weight: 400; color: #2b2f31; text-transform: none;
  letter-spacing: .2px; margin: .1rem 0 .8rem;
}
.taxonomy-description h3, .wp-block-term-description h3 { font-size: 1.15rem; font-weight: 600; color: #2b2f31; margin: 1rem 0 .5rem; }
.taxonomy-description p, .wp-block-term-description p {
  font-size: .98rem; font-weight: 400; line-height: 1.55; color: #24282a; padding-bottom: .8rem;
}
.taxonomy-description ul, .wp-block-term-description ul { list-style: disc; padding-left: 1.4rem; margin-bottom: .8rem; font-size: .98rem; line-height: 1.55; color: #24282a; }
.taxonomy-description a, .wp-block-term-description a { color: var(--pd-blue); font-weight: 600; }
.pd-catdesc-clamp { max-height: 7.5rem; overflow: hidden; position: relative; }
.pd-catdesc-clamp::after {
  content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 2.6rem;
  background: linear-gradient(rgba(255,255,255,0), #fff 85%);
}
.pd-readmore {
  background: none; border: 0; color: var(--pd-blue); font-weight: 700; cursor: pointer;
  font-family: inherit; font-size: .95rem; padding: .45rem 0 0; text-transform: uppercase; letter-spacing: .4px;
}
.pd-readmore:hover { color: var(--pd-blue-dark); }
.pd-readmore-wrap { text-align: center; }

/* ===== category page: filter sidebar + product grid ===== */
.pd-catpage { max-width: 1570px; width: calc(100% - 2.5rem); margin: 0 auto; padding: 1.5rem 0 3rem; }
.pd-crumb { font-size: .95rem; margin-bottom: 1rem; color: #16181a; }
.pd-crumb a { color: var(--pd-ink); text-decoration: none; }
.pd-crumb a:hover { color: var(--pd-blue); }
.pd-cat-title { font-size: 2.2rem; text-transform: uppercase; color: #000; letter-spacing: .3px; margin-bottom: 1rem; }
.pd-cat-layout { display: grid; grid-template-columns: 260px 1fr; gap: 2.2rem; margin-top: 1.6rem; align-items: start; }
.pd-cat-layout.pd-nokids { grid-template-columns: 1fr; }
.pd-cat-side { background: #f7f8f9; border: 1px solid var(--pd-line); border-radius: 6px; padding: 1.1rem 1.2rem; }
.pd-side-h { display: block; text-transform: uppercase; font-size: .95rem; letter-spacing: .4px; margin-bottom: .8rem; -webkit-text-stroke: .3px currentColor; }
.pd-side-item {
  display: flex; align-items: center; gap: .55rem; padding: .32rem 0;
  font-size: .95rem; font-weight: 500; cursor: pointer; color: var(--pd-ink);
}
.pd-side-item:hover span { color: var(--pd-blue); }
.pd-side-item input { accent-color: var(--pd-blue); width: 16px; height: 16px; flex: 0 0 auto; }
.pd-side-item span { flex: 1 1 auto; line-height: 1.3; }
.pd-side-item i { font-style: normal; color: #8a9095; font-size: .82rem; }
.pd-side-clear { display: inline-block; margin-top: .7rem; font-size: .88rem; font-weight: 700; color: var(--pd-terracotta); text-decoration: none; }
.pd-results { color: #6a7175; font-size: .92rem; margin-bottom: .9rem; }
.pd-pagination { text-align: center; margin-top: 1.8rem; }
.pd-pagination .page-numbers {
  display: inline-flex; align-items: center; justify-content: center; min-width: 38px; height: 38px;
  margin: 0 3px; padding: 0 .6rem; border: 1px solid var(--pd-line); border-radius: 4px;
  color: var(--pd-ink); text-decoration: none; font-weight: 600;
}
.pd-pagination .page-numbers.current { background: var(--pd-blue); color: #fff; border-color: var(--pd-blue); }
.pd-pagination a.page-numbers:hover { border-color: var(--pd-blue); color: var(--pd-blue); }
@media (max-width: 900px) {
  .pd-cat-layout { grid-template-columns: 1fr; }
}

/* subcategory tiles on category pages */
.pd-subcats-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 1.1rem; margin-top: 1.6rem; }
@media (max-width: 900px) { .pd-subcats-grid { grid-template-columns: repeat(2, 1fr); } }
.pd-subcats-grid .pd-cat-img { background: #f4f6f7; }
/* sidebar items: link + count, checkbox filters */
.pd-side-item a { flex: 1 1 auto; color: var(--pd-ink); text-decoration: none; line-height: 1.3; }
.pd-side-item a:hover { color: var(--pd-blue); }
.pd-side-item.pd-current a { color: var(--pd-blue); font-weight: 700; }
.pd-cat-main { transition: opacity .15s ease; }

/* ===== single product page (live layout) ===== */
.pdp-head { margin-bottom: 1.75rem; }
.pdp-head h1 { font-size: 2.2rem; margin: 0 0 .2rem; text-transform: uppercase; color: #000; letter-spacing: .3px; }
.pdp-brand { color: #7a8084; font-weight: 600; font-size: 1rem; }
.pdp-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 1.6rem; align-items: start; }
.pdp .pdp-gallery, .pdp .pdp-info { float: none !important; width: 100% !important; margin: 0; }
.pd-from { font-style: normal; font-weight: 500; font-size: .75em; color: #6a7175; }
.pdp-price .pd-from { display: none; } /* live product page shows the bare price */
.pdp-main {
  background: #fff; border: 1px solid var(--pd-line); border-radius: 6px; overflow: hidden;
  display: flex; align-items: center; justify-content: center; min-height: 440px; padding: 1rem;
}
.pdp-main img { max-width: 100%; width: auto; height: auto; display: block; }
.pdp-noimg { aspect-ratio: 1; background: #f4f6f7; }
.pdp-thumbs { display: flex; gap: .55rem; margin-top: .7rem; flex-wrap: wrap; }
.pdp-thumb { width: 74px; height: 74px; padding: 2px; background: #fff; cursor: pointer; border: 1px solid var(--pd-line); border-radius: 4px; }
.pdp-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pdp-thumb.active, .pdp-thumb:hover { border-color: var(--pd-blue); }
.pdp-code { font-size: .95rem; margin-bottom: .6rem; }
.pdp-code b { color: #000; margin-right: .4rem; }
.pdp-price { font-size: 1.9rem; font-weight: 700; color: #000; line-height: 1.15; margin-bottom: 7px; }
.pdp-price small { font-size: .8rem; color: #8a8f92; font-weight: 500; }
.pdp .pdp-buy form.cart { margin: 0 !important; }
.pdp .pdp-buy table.variations { width: 100%; margin: 0 !important; }
.pdp .pdp-buy .reset_variations { display: none !important; }
.pdp-buy table.variations, .pdp-buy table.variations tbody,
.pdp-buy table.variations tr, .pdp-buy table.variations th, .pdp-buy table.variations td { display: block; width: 100%; padding: 0; box-sizing: border-box; }
.pdp .pdp-buy table.variations th { padding: 0 0 3px !important; line-height: 1; }
.pdp .pdp-buy table.variations td { padding: 0 !important; }
.pdp .pdp-buy .woocommerce-variation-add-to-cart { display: block !important; margin: 0 !important; padding: 0 !important; }
.pdp-buy table.variations th { text-align: left; font-size: .8rem; font-weight: 400; color: #16181a; padding-bottom: .3rem; }
.pdp-buy table.variations td { padding-bottom: .45rem; }
.pdp-buy table.variations select {
  width: 100%; max-width: none; padding: .8rem .9rem; border: 1px solid #cfd4d6; border-radius: 5px;
  font-family: inherit; font-size: .95rem; background: #fff;
}
.pdp-buy .woocommerce-variation { display: none !important; } /* selected price syncs into .pdp-price like live */
.pdp-buy form.cart { display: block; }
.pdp .pdp-buy form.cart div.quantity { display: inline-flex; align-items: stretch; float: none !important; margin: 1.3rem .8rem 0 0 !important; position: relative; }
.pdp .pdp-buy form.cart .woocommerce-variation-add-to-cart > p { margin: 0 !important; }
.pdp-step {
  width: 50px; border: 1px solid #e0e2e4; background: #f2f2f2; color: #000; cursor: pointer;
  font-size: 1.15rem; font-family: inherit; line-height: 1;
}
.pdp-step.down { border-radius: 5px 0 0 5px; border-right: 0; }
.pdp-step.up { border-radius: 0 5px 5px 0; border-left: 0; }
.pdp .pdp-buy .quantity .qty { margin: 0 !important; }
.pdp .pdp-buy .quantity .pdp-step { margin: 0; }
.pdp-buy .quantity .qty {
  width: 64px; padding: .8rem .3rem; text-align: center; border: 1px solid #e0e2e4;
  border-radius: 0; font-family: inherit; font-size: 1rem; -moz-appearance: textfield;
}
.pdp-buy .quantity .qty::-webkit-outer-spin-button, .pdp-buy .quantity .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.pdp .pdp-buy .single_add_to_cart_button {
  background: var(--pd-terracotta) !important; color: #fff !important;
  padding: 1rem 1.9rem; font-size: 1rem; cursor: pointer; border-radius: 5px !important;
  display: flex; align-items: center; gap: .55rem; width: fit-content; margin-top: 1.3rem !important;
}
.pdp .pdp-buy .single_add_to_cart_button:hover { background: #b8432a !important; }
.pdp .pdp-buy .single_add_to_cart_button::before {
  content: ''; width: 19px; height: 19px; flex: 0 0 auto;
  background: url('data:image/svg+xml;utf8,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22white%22 stroke-width=%222%22><circle cx=%229%22 cy=%2220%22 r=%221.6%22/><circle cx=%2217%22 cy=%2220%22 r=%221.6%22/><path d=%22M3 3h2l2.6 12.5a1.6 1.6 0 0 0 1.6 1.3h7.9a1.6 1.6 0 0 0 1.6-1.3L20.5 8H6%22/></svg>') center/contain no-repeat;
}
.pdp-buy .reset_variations { font-size: .82rem; color: #8a9095; }
/* PayPal's Pay Later message and smart button follow the add-to-basket form,
   and the plugin gives them no margins of their own, so they collide with the
   button above and with each other. Same 1.3rem rhythm as the rest of the buy
   area; .pdp-tabs supplies the gap below. */
.pdp .pdp-buy .ppcp-messages { margin: 1.3rem 0 .85rem; }
.pdp .pdp-buy .ppc-button-wrapper { margin: 0; }
.pdp-tabs { margin-top: 1.3rem; }
.pdp-acc { border: 1px solid #e6e8e9; border-radius: 5px; margin-bottom: .6rem; background: #fff; overflow: hidden; }
.pdp-acc-h {
  display: flex; justify-content: space-between; align-items: center; width: 100%;
  background: #f2f2f2; border: 0; padding: .95rem 1.2rem; cursor: pointer;
  font-family: inherit; font-weight: 700; text-transform: uppercase; font-size: 1rem;
  letter-spacing: .4px; color: #000; text-align: left;
}
.pdp-acc-h i { width: 10px; height: 10px; border-right: 2px solid #000; border-bottom: 2px solid #000; transform: rotate(45deg); transition: transform .18s ease; }
.pdp-acc.open .pdp-acc-h i { transform: rotate(225deg); }
.pdp-acc-c { display: none; padding: 1.2rem 1.3rem; line-height: 1.6; }
.pdp-acc.open .pdp-acc-c { display: block; }
.pdp-acc-c > :first-child { margin-top: 0 !important; }
.pdp-acc-c > :last-child { margin-bottom: 0 !important; }
.pdp-acc-c p:empty { display: none; }
.pdp-acc-c h2, .pdp-acc-c h3 { font-size: 1.1rem; margin: .9rem 0 .4rem; }
.pdp-acc-c p { margin-bottom: .8rem; }
.pdp-acc-c ul { padding-left: 1.3rem; list-style: disc; }
.pdp-acc-c a { color: var(--pd-blue); }
.pdp-related { margin-top: 1.9rem; }
.pdp-related h2 { margin: 0; }
@media (max-width: 900px) {
  .pdp-cols { grid-template-columns: 1fr; gap: 1.4rem; }
  .pdp-head h1 { font-size: 1.4rem; }
}

/* ===== add-to-basket feedback ===== */
.pd-notices { margin-bottom: 1rem; }
.pd-notices .woocommerce-message, .pd-notices .woocommerce-info, .pd-notices .woocommerce-error li {
  display: flex; align-items: center; gap: .8rem; flex-wrap: wrap;
  background: #f1faf4; border: 1px solid #bfe3cc; border-left: 4px solid #1d9e46;
  border-radius: 5px; padding: .85rem 1.1rem; font-weight: 500; color: #1c1e1f; list-style: none;
}
.pd-notices .woocommerce-error li { background: #fdf1ef; border-color: #f0c4bb; border-left-color: var(--pd-terracotta); }
.pd-notices .woocommerce-error { list-style: none; margin: 0; padding: 0; }
.pd-notices .woocommerce-message .button, .pd-notices .woocommerce-info .button {
  order: 2; margin-left: auto; padding: .5rem 1.1rem; font-size: .82rem;
}
.pd-toast {
  position: fixed; right: 22px; bottom: 22px; z-index: 9999;
  display: flex; align-items: center; gap: .9rem;
  background: #fff; border: 1px solid #e3e5e6; border-left: 4px solid #1d9e46; border-radius: 6px;
  box-shadow: 0 12px 30px rgba(20,22,26,.18); padding: .9rem 1.2rem;
  font-weight: 600; color: #16181a; opacity: 0; transform: translateY(14px);
  transition: opacity .3s ease, transform .3s ease;
}
.pd-toast.show { opacity: 1; transform: translateY(0); }
.pd-toast::before { content: '\2713'; color: #1d9e46; font-weight: 700; font-size: 1.1rem; }
.pd-toast a {
  background: var(--pd-terracotta); color: #fff; text-decoration: none; font-size: .8rem;
  font-weight: 700; text-transform: uppercase; padding: .5rem .9rem; border-radius: 4px; letter-spacing: .4px;
}
.pd-toast a:hover { background: #b8432a; }

/* ===== Shopify-inspired checkout ===== */
body.pdck { background: #fff; }
body.pdck .pd-toast { display: none; }
.pdck-top { border-bottom: 1px solid #ececec; padding: 1rem 1.25rem .8rem; }
.pdck-top-inner {
  max-width: 1100px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between;
}
.pdck-logo img { height: 56px; width: auto; display: block; }
.pdck-secure { display: flex; align-items: center; gap: .45rem; font-weight: 700; font-size: .92rem; color: #1d9e46; }
.pdck-crumbs {
  max-width: 1100px; margin: .6rem auto 0; display: flex; align-items: center; gap: .6rem;
  font-size: .88rem; color: #8a9095; padding: 0 0 .2rem;
}
.pdck-crumbs a { color: var(--pd-blue); text-decoration: none; }
.pdck-crumbs b { color: #16181a; }
.pdck-crumbs i { font-style: normal; opacity: .6; }
body.pdck .wp-block-woocommerce-checkout, body.pdck .wp-block-woocommerce-cart { max-width: 1100px; margin: 1.6rem auto 2rem; padding: 0 1.25rem; box-sizing: border-box; }
body.pdck .wc-block-checkout__sidebar {
  background: #fafafa; border: 1px solid #ececec; border-radius: 8px; padding: 1.3rem 1.3rem 1.5rem;
  position: sticky; top: 24px; align-self: flex-start;
}
@media (max-width: 900px) { body.pdck .wc-block-checkout__sidebar { position: static; } }
body.pdck .wc-block-components-text-input input,
body.pdck .wc-block-components-combobox .components-combobox-control__input,
body.pdck select, body.pdck .wc-block-components-textarea {
  border: 1px solid #d9dcde !important; border-radius: 7px !important; font-family: inherit;
}
body.pdck .wc-block-components-text-input input:focus,
body.pdck select:focus, body.pdck .wc-block-components-textarea:focus {
  border-color: var(--pd-blue) !important; box-shadow: 0 0 0 1px var(--pd-blue) !important; outline: none;
}
body.pdck .wc-block-components-checkout-step__title { font-size: 1.15rem; color: #000; }
body.pdck .wc-block-components-radio-control-accordion-option,
body.pdck .wc-block-components-radio-control__option {
  border: 1px solid #e2e4e6; border-radius: 7px; margin-bottom: .6rem; padding: 1rem 1.1rem 1rem 2.9rem;
}
body.pdck .wc-block-components-radio-control-accordion-option:has(input:checked),
body.pdck .wc-block-components-radio-control__option:has(input:checked) {
  border-color: var(--pd-terracotta); box-shadow: 0 0 0 1px var(--pd-terracotta); background: #fdf8f6;
}
body.pdck .wc-block-components-radio-control__input:checked { border-color: var(--pd-terracotta); background: var(--pd-terracotta); }
body.pdck .wc-block-checkout__actions button.wc-block-components-checkout-place-order-button {
  width: 100%; padding: 1.1rem 0; font-size: 1.02rem; border-radius: 7px !important;
  box-shadow: 0 6px 16px rgba(205,80,51,.28);
}
body.pdck .wc-block-checkout__actions { display: block; }
body.pdck .wc-block-checkout__actions::after {
  content: 'Secure 256-bit SSL encrypted checkout'; display: block; text-align: center;
  font-size: .8rem; color: #8a9095; margin-top: .7rem;
}
body.pdck .wc-block-components-order-summary-item__image img { border: 1px solid #ececec; border-radius: 5px; }
body.pdck .wc-block-components-totals-footer-item .wc-block-components-totals-item__value { color: #000; }
.pdck-below { border-top: 1px solid #ececec; margin-top: 1.5rem; padding: 1.6rem 1.25rem 2rem; }
.pdck-trust {
  max-width: 1100px; margin: 0 auto 1.2rem; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem;
}
.pdck-trust div { display: flex; align-items: center; gap: .55rem; font-size: .88rem; font-weight: 600; color: var(--pd-ink); }
.pdck-trust svg { color: #1d9e46; flex: 0 0 auto; }
.pdck-legal { max-width: 1100px; margin: 0 auto .9rem; display: flex; justify-content: center; gap: 1.6rem; }
.pdck-legal a { color: #8a9095; font-size: .82rem; text-decoration: none; }
.pdck-legal a:hover { color: var(--pd-blue); }
.pdck-pay { margin-bottom: 0; }
@media (max-width: 700px) { .pdck-trust { grid-template-columns: 1fr 1fr; } }

/* ===== category page chrome: sidebar, toolbar, list view, sale prices ===== */
.pd-cat-body { display: grid; grid-template-columns: 250px 1fr; gap: 2.2rem; margin-top: 1.4rem; align-items: start; }
@media (max-width: 900px) { .pd-cat-body { grid-template-columns: 1fr; } }
.pd-sidenav { position: sticky; top: 205px; }
@media (max-width: 900px) { .pd-sidenav { position: static; } }
.pd-sidenav > b { display: block; font-size: 1rem; font-weight: 700; color: #000; margin-bottom: .8rem; }
.pd-sidenav ul { list-style: none; margin: 0; padding: 0; }
.pd-sn-row { display: flex; align-items: baseline; gap: .45rem; }
.pd-sn-tgl {
  background: none; border: 0; margin: 0; padding: .42rem 0; cursor: pointer;
  font-family: inherit; font-size: .95rem; font-weight: 700; line-height: 1.35;
  color: #000; width: .7em; flex: 0 0 auto;
  transition: transform .15s ease; transform-origin: 40% 50%;
}
.pd-sidenav li.open > .pd-sn-row .pd-sn-tgl { transform: rotate(90deg); }
.pd-sidenav li a {
  display: block; color: #000; text-decoration: none;
  font-size: .88rem; font-weight: 700; padding: .42rem 0; line-height: 1.35;
}
.pd-sidenav li.pd-sn-has > .pd-sn-row a span { text-transform: uppercase; }
.pd-sidenav li a:hover, .pd-sidenav li.pd-sn-cur > .pd-sn-row a { color: var(--pd-blue); }
.pd-sn-sub { display: none; margin: .1rem 0 .5rem 1.05rem !important; border-left: 2px solid #eef1f3; padding-left: .8rem !important; }
.pd-sidenav li.open > .pd-sn-sub { display: block; }
.pd-sn-sub li a { font-weight: 500; text-transform: none; padding: .3rem 0; color: #34393c; }
.pd-sn-sub li a:hover { color: var(--pd-blue); }
.pd-sn-sub li.pd-sn-cur > a { color: var(--pd-blue); font-weight: 700; }
.pd-toolbar { display: flex; align-items: center; gap: .8rem; margin-bottom: 1rem; }
.pd-sortwrap { position: relative; }
.pd-sort {
  appearance: none; background: #f5f5f5; border: 1px solid #ececec; border-radius: 6px;
  padding: .85rem 2.6rem .85rem 1.1rem; font-family: inherit; font-size: .92rem; font-weight: 600;
  color: #16181a; min-width: 240px; cursor: pointer;
}
.pd-sortwrap::after {
  content: ''; position: absolute; right: 1rem; top: 50%; width: 9px; height: 9px; pointer-events: none;
  border-right: 2px solid #16181a; border-bottom: 2px solid #16181a; transform: translateY(-70%) rotate(45deg);
}
.pd-view {
  width: 47px; height: 47px; background: #fff; border: 1px solid #ececec; border-radius: 6px;
  cursor: pointer; color: #16181a; display: inline-flex; align-items: center; justify-content: center;
}
.pd-views { display: flex; gap: .5rem; }
.pd-view.active, .pd-view:hover { border-color: #16181a; }
/* list (row) view: wide card, image left, stacked details right */
.pd-card-x { display: none; }
.pd-listview.products { display: block !important; }
.pd-listview li.product {
  display: grid !important; grid-template-columns: 260px minmax(0, 1fr);
  /* six tight content rows; the 1fr filler swallows the slack the tall
     image column creates, so the button hugs the price */
  grid-template-rows: repeat(6, auto) 1fr;
  column-gap: 2.4rem; align-items: start;
  width: 100% !important; margin: 0 0 1.4rem !important; padding: 26px 28px !important;
}
.woocommerce ul.products.pd-listview li.product > a:first-of-type { display: contents; }
.woocommerce ul.products.pd-listview li.product img { grid-column: 1; grid-row: 1 / span 7; width: 100%; align-self: center; }
.woocommerce ul.products.pd-listview li.product .woocommerce-loop-product__title { grid-column: 2; grid-row: 1; margin: 0 0 .45rem; font-size: .95rem; }
.woocommerce ul.products.pd-listview li.product .pd-card-x {
  grid-column: 2; grid-row: 2; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  overflow: hidden; font-size: .92rem; font-weight: 400; color: #33383b; line-height: 1.5; margin-bottom: .6rem;
}
.woocommerce ul.products.pd-listview li.product .pd-card-stock { grid-column: 2; grid-row: 3; margin: 0 0 .55rem !important; }
.woocommerce ul.products.pd-listview li.product .price { grid-column: 2; grid-row: 4; margin-bottom: .9rem; }
.woocommerce ul.products.pd-listview li.product .pd-card-qty { grid-column: 2; grid-row: 5; margin: 0 0 .9rem !important; padding: 0 !important; justify-self: start; }
.woocommerce ul.products.pd-listview li.product .button {
  grid-column: 2; grid-row: 6; justify-self: start; width: auto; min-width: 275px;
  margin: 0 !important; padding: .95rem 2.4rem !important; text-align: center;
}
.pd-listview li.product .screen-reader-text { display: none; }
@media (max-width: 700px) {
  .pd-listview li.product { grid-template-columns: 120px 1fr; column-gap: 1.2rem; padding: 16px !important; }
  .woocommerce ul.products.pd-listview li.product .button { min-width: 0; width: 100%; }
}
/* sale pricing: blue now-price, struck-through original */
.price .pd-now .amount, .pd-p-exc .pd-now .amount, .pd-p-inc .pd-now .amount { color: var(--pd-blue) !important; }
.price del, .pdp-price del { font-size: .68em; font-weight: 600; color: var(--pd-terracotta); text-decoration: line-through; margin-left: .3em; }
.price del .amount, .pdp-price del .amount { color: var(--pd-terracotta) !important; }
/* no sale badges on live */
.woocommerce span.onsale, .wc-block-components-sale-badge { display: none !important; }
/* card prices show no ex VAT suffix, like the live cards */
.woocommerce ul.products li.product .price small { display: none; }

/* ===== quick search dropdown ===== */
.pd-search { position: relative; }
.pd-suggest {
  position: absolute; top: calc(100% + 6px); left: 0; right: 0; display: none;
  background: #fff; border: 1px solid #e4e6e8; border-radius: 8px;
  box-shadow: 0 18px 40px rgba(16,18,20,.16); z-index: 300; overflow: hidden;
}
.pd-suggest.open { display: block; }
.pd-sg-item { display: flex; gap: .85rem; align-items: center; padding: .55rem .95rem; text-decoration: none; color: #16181a; }
.pd-sg-item:hover { background: #f2f8fc; }
.pd-sg-item img, .pd-sg-noimg {
  width: 44px; height: 44px; object-fit: contain; flex: 0 0 auto;
  background: #fff; border: 1px solid #ececec; border-radius: 4px;
}
.pd-sg-name { flex: 1 1 auto; font-size: .9rem; font-weight: 600; line-height: 1.3; }
.pd-sg-price { font-weight: 700; color: #000; font-size: .92rem; white-space: nowrap; }
.pd-sg-price small { font-weight: 400; color: #8a8f92; font-size: .72em; }
.pd-sg-all {
  display: block; text-align: center; padding: .75rem; background: #f7f8f9;
  color: var(--pd-blue); font-weight: 700; font-size: .88rem; text-decoration: none;
  border-top: 1px solid #ececec;
}
.pd-sg-all:hover { background: #eef4f8; }
.pd-sg-empty { padding: .85rem 1rem; font-size: .9rem; color: #8a9095; }

/* ===== blog ===== */
.pd-blogband { background: linear-gradient(115deg, #0288c2, var(--pd-blue) 55%, #35bdf5); }
.pd-blogband-inner { max-width: 1570px; margin: 0 auto; padding: 3.2rem 1.25rem 3.4rem; text-align: center; }
.pd-blogband h1 { color: #fff; font-size: 2.4rem; text-transform: uppercase; letter-spacing: .5px; margin: 0 0 .5rem; -webkit-text-stroke: .4px #fff; }
.pd-blogband p { color: rgba(255,255,255,.92); font-size: 1.08rem; font-weight: 500; margin: 0; }
.pd-blogwrap { padding-top: 2.2rem; }
.pd-blog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.8rem; }
@media (max-width: 900px) { .pd-blog-grid { grid-template-columns: 1fr; } }
.pd-bcard {
  display: flex; flex-direction: column; background: #fff; border: 1px solid #ececec;
  border-radius: 8px; overflow: hidden; text-decoration: none; color: var(--pd-ink);
  transition: box-shadow .2s ease, transform .2s ease;
}
.pd-bcard:hover { box-shadow: 0 14px 30px rgba(16,18,20,.12); transform: translateY(-3px); }
.pd-bcard-img { display: block; aspect-ratio: 16 / 10; background: #f4f6f7; overflow: hidden; position: relative; }
.pd-bcard-img:empty { background: linear-gradient(135deg, #0288c2, var(--pd-blue) 55%, #35bdf5); }
.pd-bcard-img:empty::after { content: ""; position: absolute; inset: 0; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.3'%3E%3Cpath d='M12 3c3.5 4.5 6 7.6 6 10.5a6 6 0 1 1-12 0C6 10.6 8.5 7.5 12 3z'/%3E%3C/svg%3E") center / 60px no-repeat; opacity: .55; }
.pd-bcard-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .25s ease; }
.pd-bcard:hover .pd-bcard-img img { transform: scale(1.04); }
.pd-bcard-body { display: flex; flex-direction: column; gap: .45rem; padding: 1.2rem 1.3rem 1.4rem; flex: 1 1 auto; }
.pd-bcard time { font-size: .82rem; font-weight: 600; color: var(--pd-blue); text-transform: uppercase; letter-spacing: .4px; }
.pd-bcard b { font-size: 1.12rem; color: #000; line-height: 1.35; }
.pd-bcard-x { font-size: .92rem; font-weight: 500; color: #5d6467; line-height: 1.5; }
.pd-bcard i { font-style: normal; font-weight: 700; font-size: .85rem; color: var(--pd-terracotta); text-transform: uppercase; letter-spacing: .4px; margin-top: auto; padding-top: .5rem; }
.pd-bcard:hover i { color: #b8432a; }
/* single post */
.pd-postband { background: linear-gradient(115deg, #0288c2, var(--pd-blue) 55%, #35bdf5); }
.pd-postband-inner { max-width: 1570px; margin: 0 auto; padding: 1.9rem 1.25rem 2.6rem; }
.pd-postband .pd-crumb { color: rgba(255,255,255,.85); font-size: .85rem; margin: 0 0 1.5rem; }
.pd-postband .pd-crumb a { color: #fff; font-weight: 600; text-decoration: none; }
.pd-postband time { display: block; color: rgba(255,255,255,.88); font-size: .85rem; font-weight: 600; text-transform: uppercase; letter-spacing: .4px; margin: 0 0 .45rem; }
.pd-postband h1 { color: #fff; font-size: 2.3rem; line-height: 1.2; margin: 0; max-width: 1100px; -webkit-text-stroke: .3px #fff; }
.pd-post-layout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 3rem; padding-top: 2.4rem; align-items: start; }
@media (max-width: 1000px) { .pd-post-layout { grid-template-columns: 1fr; } }
.pd-post-article { min-width: 0; }
.pd-post-hero { border-radius: 10px; overflow: hidden; margin-bottom: 2rem; }
.pd-post-hero img { width: 100%; max-height: 460px; object-fit: cover; display: block; }
.pd-post-body { font-size: 1.05rem; line-height: 1.75; color: #33383b; }
.pd-post-body > p:first-child { font-size: 1.16rem; color: #1e2224; }
/* sidebar */
.pd-post-side { display: flex; flex-direction: column; gap: 1.5rem; position: sticky; top: 205px; }
.pd-side-box { background: #fff; border: 1px solid #ececec; border-radius: 8px; padding: 1.3rem 1.4rem; }
.pd-side-box h3 { margin: 0 0 .9rem; font-size: 1.02rem; text-transform: uppercase; color: #000; letter-spacing: .3px; }
.pd-side-post { display: flex; gap: .8rem; align-items: center; padding: .6rem 0; text-decoration: none; border-top: 1px solid #f2f2f2; }
.pd-side-post:first-of-type { border-top: 0; padding-top: 0; }
.pd-side-post:last-of-type { padding-bottom: 0; }
.pd-side-post img, .pd-side-thumb { width: 64px; height: 48px; object-fit: cover; border-radius: 6px; flex: 0 0 auto; }
.pd-side-thumb { background: linear-gradient(135deg, #0288c2, #35bdf5); display: block; }
.pd-side-post time { display: block; font-size: .72rem; color: var(--pd-blue); font-weight: 600; text-transform: uppercase; letter-spacing: .3px; }
.pd-side-post b { font-size: .9rem; font-weight: 600; color: #16191b; line-height: 1.35; }
.pd-side-post:hover b { color: var(--pd-blue-dark); }
.pd-side-cta { background: linear-gradient(135deg, #0288c2, var(--pd-blue) 60%, #35bdf5); border-radius: 8px; padding: 1.5rem 1.4rem; }
.pd-side-cta b { display: block; color: #fff; font-size: 1.18rem; line-height: 1.3; margin-bottom: .4rem; }
.pd-side-cta p { color: rgba(255,255,255,.92); font-size: .92rem; font-weight: 500; margin: 0 0 1.05rem; }
.pd-side-cta a { display: inline-block; background: #fff; color: var(--pd-blue-dark); font-weight: 700; font-size: .92rem; padding: .62rem 1.15rem; border-radius: 6px; text-decoration: none; text-transform: uppercase; letter-spacing: .3px; }
.pd-side-offers p { font-size: .92rem; font-weight: 500; color: #5d6467; margin: 0 0 1.05rem; }
.pd-side-btn { display: inline-block; background: var(--pd-terracotta); color: #fff; font-weight: 700; font-size: .92rem; padding: .62rem 1.15rem; border-radius: 6px; text-decoration: none; text-transform: uppercase; letter-spacing: .3px; }
.pd-side-btn:hover { background: #b8432a; color: #fff; }
.pd-post-body p { margin-bottom: 1.1rem; }
.pd-post-body h2, .pd-post-body h3 { color: #000; margin: 1.8rem 0 .7rem; font-size: 1.35rem; }
.pd-post-body ul, .pd-post-body ol { padding-left: 1.4rem; margin-bottom: 1.1rem; }
.pd-post-body ul { list-style: disc; }
.pd-post-body img { border-radius: 8px; margin: .6rem 0; }
.pd-post-body a { color: var(--pd-blue); font-weight: 600; }
.pd-post-body blockquote { border-left: 4px solid var(--pd-blue); background: #f2f8fc; padding: 1rem 1.3rem; border-radius: 0 8px 8px 0; margin: 1.2rem 0; }
.pd-post-back { display: inline-block; margin: 1.8rem 0 0; font-weight: 700; color: var(--pd-terracotta); text-decoration: none; text-transform: uppercase; font-size: .88rem; letter-spacing: .4px; }
.pd-post-more { margin-top: 3rem; }
.pd-post-more h2 { font-size: 1.5rem; text-transform: uppercase; color: #000; text-align: center; margin-bottom: 1.6rem; }

/* ===== product options: add-ons, customisation field, minimum note ===== */
.pd-addons { margin: 0 0 21px; display: flex; flex-direction: column; gap: .55rem; }
.pd-addon {
  display: flex; align-items: center; gap: .6rem; background: #f7f8f9;
  border: 1px solid #ececec; border-radius: 6px; padding: .7rem .9rem;
  cursor: pointer; font-size: .92rem; font-weight: 600; color: #16181a;
}
.pd-addon input { accent-color: var(--pd-blue); width: 17px; height: 17px; flex: 0 0 auto; }
.pd-addon span { flex: 1 1 auto; line-height: 1.35; }
.pd-addon b { color: var(--pd-terracotta); font-weight: 700; white-space: nowrap; }
.pd-custfield { margin: 0 0 21px; }
.pd-custfield label { display: block; font-size: .9rem; font-weight: 700; color: #16181a; margin-bottom: .4rem; }
.pd-custfield input { width: 100%; border: 1px solid #d8dcde; border-radius: 6px; padding: .7rem .9rem; font-family: inherit; font-size: .95rem; box-sizing: border-box; }
.pd-custfield input:focus { outline: 2px solid var(--pd-blue); border-color: var(--pd-blue); }
.pd-minnote { font-size: .88rem; font-weight: 600; color: #6a7175; margin: -8px 0 18px; }

/* ===== standard info pages ===== */
.pd-pagewrap { max-width: 1170px; }
.pd-pagehead { padding-bottom: 0; }
.pd-pagebody { padding-top: .4rem; font-size: 1rem; font-weight: 400; line-height: 1.7; color: #33383b; }
.pd-pagebody p { margin-bottom: 1rem; }
.pd-pagebody h2, .pd-pagebody h3 { color: #000; margin: 1.7rem 0 .7rem; font-size: 1.3rem; }
.pd-pagebody ul, .pd-pagebody ol { padding-left: 1.4rem; margin-bottom: 1rem; }
.pd-pagebody ul { list-style: disc; }
.pd-pagebody a { color: var(--pd-blue); font-weight: 600; }
.pd-pagebody b, .pd-pagebody strong { font-weight: 700; }
.pd-pagebody iframe { width: 100%; min-height: 480px; border: 0; border-radius: 10px; margin: .5rem 0 1rem; }
.pd-pagebody table { border-collapse: collapse; margin-bottom: 1.2rem; }
.pd-pagebody th, .pd-pagebody td { border: 1px solid #e4e6e8; padding: .55rem .8rem; text-align: left; }

/* ===== contact page ===== */
.pd-contact-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.4rem; margin: .6rem 0 2.4rem; }
@media (max-width: 800px) { .pd-contact-cards { grid-template-columns: 1fr; } }
.pd-ccard {
  background: #fff; border: 1px solid #ececec; border-radius: 8px; padding: 1.6rem 1.4rem;
  display: flex; flex-direction: column; align-items: center; gap: .45rem; text-align: center;
}
.pd-ccard svg { color: var(--pd-blue); }
.pd-ccard b { text-transform: uppercase; font-size: .92rem; letter-spacing: .4px; color: #000; }
.pd-ccard a { color: var(--pd-blue); font-weight: 700; text-decoration: none; font-size: 1.05rem; }
.pd-ccard span { font-weight: 500; line-height: 1.5; }
.pd-enquiry { max-width: 760px; margin: 0 auto 1.5rem; }
.pd-enquiry h2 { text-align: center; text-transform: uppercase; font-size: 1.4rem; color: #000; margin-bottom: 1.2rem; }
.pd-enq-form { display: flex; flex-direction: column; gap: .85rem; }
.pd-enq-row { display: grid; grid-template-columns: 1fr 1fr; gap: .85rem; }
@media (max-width: 640px) { .pd-enq-row { grid-template-columns: 1fr; } }
.pd-enq-form input, .pd-enq-form textarea {
  width: 100%; border: 1px solid #d8dcde; border-radius: 6px; padding: .8rem 1rem;
  font-family: inherit; font-size: .98rem; box-sizing: border-box; background: #fff;
}
.pd-enq-form input:focus, .pd-enq-form textarea:focus { outline: 2px solid var(--pd-blue); border-color: var(--pd-blue); }
.pd-enq-btn {
  background: var(--pd-terracotta); color: #fff; border: 0; border-radius: 6px; cursor: pointer;
  font-family: inherit; font-weight: 700; text-transform: uppercase; letter-spacing: .4px;
  font-size: 1rem; padding: 1rem 2rem; align-self: flex-start;
}
.pd-enq-btn:hover { background: #b8432a; }
.pd-enq-done { font-weight: 600; color: #1e8a4a; font-size: 1.05rem; }

/* ===== mobile pass ===== */
/* content images must never widen the page */
.pd-post-body img, .pd-pagebody img, .pdp-acc-c img, .taxonomy-description img { max-width: 100%; height: auto; }
/* nav strip: keep the swipeable row but hide the scrollbar */
.pd-nav > ul { -webkit-overflow-scrolling: touch; scrollbar-width: none; }
.pd-nav > ul::-webkit-scrollbar { display: none; }
@media (max-width: 900px) {
  /* compact header: small logo left, icons right, search below */
  .pd-logo img { height: 40px; }
  .pd-header-inner { padding: .75rem 1rem; gap: .5rem; justify-content: space-between; }
  .pd-head-links { gap: .9rem; }
  .pd-hicon { font-size: .72rem; gap: .18rem; }
  .pd-hicon svg { width: 20px; height: 20px; }
  .pd-basket-badge { top: -5px; right: -2px; min-width: 15px; height: 15px; font-size: .62rem; }
  /* checkout: hard single-column stack whatever the block thinks */
  body.pdck .wc-block-components-sidebar-layout { display: block; }
  body.pdck .wc-block-components-sidebar, body.pdck .wc-block-components-main {
    width: 100% !important; max-width: 100% !important; box-sizing: border-box;
    padding-left: 0 !important; padding-right: 0 !important; float: none !important;
  }
  /* toast spans the bottom */
  .pd-toast { left: 16px; right: 16px; bottom: 16px; }
}
@media (max-width: 700px) {
  .pd-cat-title { font-size: 1.5rem; }
  .pd-blogband h1 { font-size: 1.6rem; }
  .pd-blogband-inner { padding: 2.2rem 1.25rem 2.4rem; }
  .pd-postband h1 { font-size: 1.5rem; }
  .pd-homecats h2, .pd-brands h2 { font-size: 1.35rem; }
  .pd-seo h2 { font-size: 1.25rem; }
  .pd-homecats, .pd-brands { margin-top: 2.6rem; }
  /* list (row) view: tighter columns, buttons sized to the track */
  .pd-listview li.product { grid-template-columns: 104px 1fr !important; column-gap: 1rem !important; padding: 14px !important; }
  .woocommerce ul.products.pd-listview li.product .button {
    min-width: 0 !important; width: 100% !important; padding: .8rem .5rem !important; font-size: .8rem;
  }
  .woocommerce ul.products.pd-listview li.product .woocommerce-loop-product__title { font-size: .85rem; }
  .pd-listview li.product .pd-card-qty { margin-bottom: .6rem !important; }
  /* product page: full-width controls for thumbs */
  .pdp .pdp-buy .single_add_to_cart_button { width: 100%; }
  .pdp-buy form.cart select { width: 100%; }
}

/* ===== bulk deal options table (live-site custom bundle look) ===== */
.pd-bundle { border: 1px solid #ececec; border-radius: 8px; margin: 0 0 21px; background: #fff; }
.pd-bundle-head {
  font-weight: 700; text-transform: uppercase; letter-spacing: .3px; color: #000;
  padding: .85rem 1.1rem; border-bottom: 1px solid #ececec; background: #fafbfc; border-radius: 8px 8px 0 0;
}
.pd-bundle-row {
  display: grid; grid-template-columns: 84px 1fr auto auto; gap: 1.1rem; align-items: center;
  padding: 1rem 1.1rem; border-bottom: 1px solid #f2f2f2;
}
.pd-bundle-prod { text-align: center; }
.pd-bundle-prod img { width: 64px; height: 64px; object-fit: contain; display: block; margin: 0 auto .25rem; }
.pd-bundle-prod i { font-style: normal; font-size: .78rem; font-weight: 600; color: var(--pd-blue); }
.pd-bundle-name { font-weight: 600; font-size: .95rem; color: #16181a; line-height: 1.4; }
.pd-bundle-unit b, .pd-bundle-qty > b {
  display: block; font-size: .75rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: .3px; color: #7a8085; margin-bottom: .3rem;
}
.pd-bundle-unit { text-align: center; font-weight: 700; color: var(--pd-terracotta); font-size: 1.05rem; }
.pd-bundle-qty { text-align: center; }
.pd-bundle-qty .quantity { margin: 0 !important; }
.pd-bundle-tiers { padding: .9rem 1.1rem; border-bottom: 1px solid #f2f2f2; display: flex; align-items: center; gap: .7rem; flex-wrap: wrap; }
.pd-bundle-tiers > b { font-size: .85rem; text-transform: uppercase; letter-spacing: .3px; color: #000; }
.pd-bundle-tier {
  display: inline-flex; align-items: center; gap: .5rem; border: 1px solid #ececec;
  border-radius: 6px; padding: .3rem .6rem .3rem .3rem; font-weight: 700; font-size: .92rem; color: #16181a;
}
.pd-bundle-tier em {
  font-style: normal; background: var(--pd-blue); color: #fff; border-radius: 4px;
  padding: .25rem .55rem; font-size: .85rem;
}
.pd-bundle-tier.active { border-color: var(--pd-blue); box-shadow: 0 0 0 1px var(--pd-blue); }
.pd-bundle-total {
  display: flex; align-items: center; justify-content: flex-end; gap: 1.2rem; padding: .9rem 1.1rem;
}
.pd-bundle-total > span { font-weight: 700; text-transform: uppercase; font-size: .9rem; color: #000; }
.pd-bundle-total b { color: var(--pd-terracotta); font-size: 1.15rem; }
.pd-bundle-total b small { font-weight: 400; color: #8a8f92; font-size: .72em; }
.pd-bundle-total i { font-style: normal; font-weight: 700; color: #16181a; }
@media (max-width: 700px) {
  .pd-bundle-row { grid-template-columns: 72px 1fr; }
  .pd-bundle-unit, .pd-bundle-qty { grid-column: 2; text-align: left; }
  .pd-bundle-unit b, .pd-bundle-qty > b { display: inline-block; margin: 0 .5rem 0 0; }
}

/* ===== category FAQ accordion (live-site style) ===== */
.pd-faqs { margin-top: 2.6rem; }
.pd-faq { margin-bottom: .6rem; }
.pd-faq-q {
  width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  background: #f4f5f6; border: 0; border-radius: 6px; padding: .95rem 1.15rem;
  font-family: inherit; font-size: .95rem; font-weight: 700; color: #16181a;
  text-align: left; cursor: pointer;
}
.pd-faq-q:hover { background: #eef0f2; }
.pd-faq-q svg { flex: 0 0 auto; transition: transform .18s ease; }
.pd-faq.open .pd-faq-q svg { transform: rotate(180deg); }
.pd-faq-a { display: none; padding: .9rem 1.15rem .5rem; font-size: .95rem; font-weight: 400; line-height: 1.65; color: #33383b; }
.pd-faq.open .pd-faq-a { display: block; }
.pd-faq-a a { color: var(--pd-blue); font-weight: 600; }

/* ===== mobile + tablet: burger, drawer menu (pd-mobile.js), compact header ===== */
.pd-burger, .pd-sub-tgl, .pd-drawer-head, .pd-drawer-foot, .pd-scrim { display: none; }
.pd-nav > ul > li.pd-drawer-only { display: none; } /* Special Offers + Blog rows, drawer only */
@media (max-width: 1024px) {
  .pd-burger {
    display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto;
    width: 44px; height: 44px; margin-left: -8px; padding: 0; background: none; border: 0;
    color: #16181a; cursor: pointer; border-radius: 6px;
  }
  .pd-burger:hover { color: var(--pd-blue); }
  .pd-logo { margin-right: auto; }
  /* the nav bar becomes an off-canvas drawer */
  .pd-nav {
    position: fixed; top: 0; bottom: 0; left: 0; z-index: 1001;
    width: min(88vw, 380px); display: flex; flex-direction: column;
    background: #fff; border-top: 0; overflow-y: auto; overscroll-behavior: contain;
    transform: translateX(-102%); visibility: hidden;
    transition: transform .25s ease, visibility 0s linear .25s;
  }
  body.pd-menu-open .pd-nav {
    transform: none; visibility: visible; box-shadow: 8px 0 30px rgba(16,18,20,.2);
    transition: transform .25s ease, visibility 0s;
  }
  body.admin-bar .pd-nav { top: 32px; }
  .pd-scrim {
    display: block; position: fixed; inset: 0; z-index: 1000; background: rgba(16,18,20,.45);
    opacity: 0; visibility: hidden; transition: opacity .25s ease, visibility 0s linear .25s;
  }
  body.pd-menu-open .pd-scrim { opacity: 1; visibility: visible; transition: opacity .25s ease, visibility 0s; }
  body.pd-menu-open { overflow: hidden; }
  .pd-drawer-head {
    display: flex; align-items: center; justify-content: space-between; flex: 0 0 auto;
    position: sticky; top: 0; z-index: 2; background: var(--pd-blue); padding: .3rem .4rem .3rem 1.1rem;
  }
  .pd-drawer-head b { color: #fff; font-size: 1.05rem; text-transform: uppercase; letter-spacing: .5px; }
  .pd-drawer-close {
    display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px;
    padding: 0; background: none; border: 0; color: #fff; cursor: pointer;
  }
  .pd-nav > ul { display: block; max-width: none; margin: 0; padding: 0; overflow: visible; flex: 1 0 auto; }
  .pd-nav > ul > li { display: flex; flex-wrap: wrap; align-items: stretch; border-bottom: 1px solid var(--pd-line); }
  .pd-nav > ul > li.pd-drawer-only { display: flex; }
  .pd-nav > ul > li > a {
    flex: 1 1 0; min-width: 0; max-width: none; min-height: 50px; box-sizing: border-box;
    justify-content: flex-start; text-align: left; white-space: normal; padding: .9rem 1.1rem; font-size: .9rem;
  }
  .pd-sub-tgl {
    display: inline-flex; align-items: center; justify-content: center; flex: 0 0 52px; min-height: 50px;
    padding: 0; background: none; border: 0; border-left: 1px solid var(--pd-line); color: #16181a; cursor: pointer;
  }
  .pd-sub-tgl i {
    width: 9px; height: 9px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
    transform: translateY(-2px) rotate(45deg); transition: transform .18s ease;
  }
  .pd-m-open > .pd-sub-tgl { color: var(--pd-blue); }
  .pd-m-open > .pd-sub-tgl i { transform: translateY(2px) rotate(225deg); }
  .pd-nav > ul > li.pd-m-open > a { color: var(--pd-blue); }
  /* panels open by tap only - hover would stick on touch */
  .pd-nav > ul > li:hover > .pd-panel, .pd-nav > ul > li.open > .pd-panel { display: none; }
  .pd-nav > ul > li.pd-m-open > .pd-panel { display: block; }
  .pd-panel {
    position: static; transform: none; width: 100%; flex: 1 1 100%;
    border-radius: 0; box-shadow: none; background: #f7f8f9; border-top: 1px solid var(--pd-line);
  }
  .pd-panel-inner { columns: auto; padding: .25rem 0 .5rem; }
  .pd-group { display: flex; flex-wrap: wrap; align-items: stretch; margin: 0; }
  .pd-group-h { flex: 1 1 0; min-width: 0; margin: 0; padding: .75rem 1rem .75rem 1.6rem; font-size: .88rem; }
  .pd-group .pd-sub-tgl { min-height: 44px; border-left: 0; }
  .pd-leaf { display: none; flex: 1 1 100%; padding: .55rem 1.1rem .55rem 2.4rem; font-size: .92rem; }
  .pd-group.pd-m-open .pd-leaf { display: block; }
  .pd-drawer-foot { display: flex; flex-direction: column; flex: 0 0 auto; background: #2a2c2d; padding: .6rem 1.1rem 1.2rem; }
  .pd-drawer-foot a {
    color: #fff; text-decoration: none; font-weight: 600; font-size: .95rem;
    padding: .7rem 0; border-bottom: 1px solid rgba(255,255,255,.1);
  }
  .pd-drawer-foot a:last-child { border-bottom: 0; }
}
@media (max-width: 782px) {
  body.admin-bar .pd-nav { top: 46px; }
}
@media (max-width: 900px) {
  /* call strip and VAT toggle share one slim row */
  .pd-sticky { display: flex; flex-wrap: wrap; }
  .pd-topbar { flex: 1 1 0; min-width: 0; display: flex; align-items: center; padding: .6rem .9rem; text-align: left; }
  .pd-topbar a { font-size: .8rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .pd-tb-long, .pd-vat-label { display: none; }
  .pd-vatbar { flex: 0 0 auto; font-size: .76rem; display: flex; align-items: center; }
  .pd-vatbar-inner { padding: .6rem .9rem; gap: .45rem; }
  .pd-vat-toggle { width: 38px; height: 18px; }
  .pd-vat-toggle i { width: 14px; height: 14px; }
  body.pd-vat-on .pd-vat-toggle i { left: 22px; }
  .pd-header { flex: 1 1 100%; }
  /* header: burger + logo left, icon-only links right, search below */
  .pd-header-inner { padding: .75rem .9rem .9rem; gap: .7rem .5rem; }
  .pd-logo img { height: 38px; }
  .pd-head-links { gap: .1rem; }
  .pd-hicon-extra { display: none; } /* Offers + Blog are in the drawer on phones */
  .pd-hicon { width: 42px; height: 42px; justify-content: center; }
  .pd-hicon svg { width: 23px; height: 23px; }
  .pd-hicon > span:last-child {
    position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;
  }
  .pd-basket-badge { top: 1px; right: 0; }
  .pd-search input[type=search] { padding: .8rem .9rem; }
  /* 16px form text stops iOS zooming into fields */
  .pd-search input[type=search], .pd-sort, .pd-enq-form input,
  .pd-enq-form textarea, .pd-custfield input, .pd-news-form input { font-size: 16px; }
  .pdp-buy table.variations select { font-size: 16px !important; } /* beats Woo's form.cart .variations select */
  /* category pages: sidebar collapses behind its heading */
  .pd-cat-body { gap: 1.2rem; }
  .pd-sidenav > b {
    display: flex; align-items: center; justify-content: space-between; margin: 0; cursor: pointer;
    background: #f4f5f6; border-radius: 6px; padding: .85rem 1.1rem; text-transform: uppercase; font-size: .95rem;
  }
  .pd-sidenav > b::after {
    content: ''; width: 9px; height: 9px; border-right: 2px solid #16181a; border-bottom: 2px solid #16181a;
    transform: translateY(-2px) rotate(45deg); transition: transform .18s ease;
  }
  .pd-sidenav.pd-sn-open > b::after { transform: translateY(2px) rotate(225deg); }
  .pd-sidenav > .pd-sn-top { display: none; padding: .5rem .3rem 0; }
  .pd-sidenav.pd-sn-open > .pd-sn-top { display: block; }
  .pd-toolbar { gap: .5rem; }
  .pd-sortwrap { flex: 1 1 auto; min-width: 0; }
  .pd-sort { min-width: 0; width: 100%; }
  .pdp-main { min-height: 0; }
}
@media (max-width: 700px) {
  .pd-hero-tile img { height: 240px; }
  .pd-newsband { padding: 2.4rem 1.1rem 2.6rem; }
  .pd-foot { padding: 2.2rem 1.1rem 1.8rem; }
  .pd-foot-btns { gap: .7rem; }
  .pd-foot-btn { width: 100%; justify-content: center; padding: 1rem 1.2rem; box-sizing: border-box; }
}

/* ===== slide-out basket (pd-basket.js) ===== */
.pd-cart-drawer { position: fixed; inset: 0; z-index: 1300; }
.pd-cart-drawer[hidden] { display: none; }
.pd-basket-scrim { position: absolute; inset: 0; background: rgba(16, 18, 20, .45); }
.pd-basket-panel {
  position: absolute; top: 0; right: 0; bottom: 0; width: min(460px, 100%);
  background: #fff; display: flex; flex-direction: column;
  box-shadow: -10px 0 40px rgba(16, 18, 20, .25);
}
.pd-basket-head {
  flex: 0 0 auto; background: var(--pd-blue); color: #fff; display: flex; align-items: center;
  justify-content: center; position: relative; padding: 1.1rem 3rem;
}
.pd-basket-head b { font-size: 1.05rem; text-transform: uppercase; letter-spacing: .5px; text-align: center; }
.pd-basket-x {
  position: absolute; top: 50%; right: 6px; transform: translateY(-50%); width: 44px; height: 44px;
  background: none; border: 0; color: #fff; font-size: 1.7rem; line-height: 1; cursor: pointer;
}
.pd-basket-none .pd-basket-checkout { display: none; }
.pd-basket-list { flex: 1 1 auto; overflow-y: auto; padding: 1rem 1.2rem 1rem; }
.pd-basket-loading, .pd-basket-empty { text-align: center; color: #6a7175; font-weight: 600; padding: 2rem 0; }
.pd-basket-item { display: grid; grid-template-columns: 74px minmax(0, 1fr) auto; gap: .9rem; padding: 1rem 0; border-bottom: 1px solid #f0f1f2; }
.pd-basket-img img { width: 74px; height: 74px; object-fit: contain; display: block; border: 1px solid var(--pd-line); border-radius: 4px; background: #fff; }
.pd-basket-name { color: #16181a; text-decoration: none; font-weight: 700; font-size: .88rem; text-transform: uppercase; line-height: 1.35; }
.pd-basket-name:hover { color: var(--pd-blue); }
.pd-basket-meta { font-size: .8rem; color: #6a7175; margin-top: .25rem; line-height: 1.45; }
.pd-basket-qty { display: flex; align-items: center; gap: .4rem; margin-top: .55rem; flex-wrap: wrap; }
.pd-bq {
  width: 34px; height: 34px; background: #f5f5f5; border: 1px solid #e6e6e6; border-radius: 4px;
  font-size: 1.1rem; line-height: 1; cursor: pointer; font-family: inherit; color: #000;
}
.pd-bq:hover { border-color: #cfcfcf; }
.pd-bq-n { min-width: 34px; text-align: center; font-weight: 700; }
.pd-basket-remove {
  background: none; border: 0; padding: 0 0 0 .5rem; color: var(--pd-blue); cursor: pointer;
  font-family: inherit; font-size: .82rem; font-weight: 700; text-decoration: underline; text-transform: uppercase;
}
.pd-basket-price { font-weight: 700; color: #16181a; white-space: nowrap; }
.pd-basket-foot { flex: 0 0 auto; border-top: 1px solid #ececec; padding: 1rem 1.2rem 1.2rem; }
.pd-basket-sub { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1rem; }
.pd-basket-sub span { text-transform: uppercase; font-weight: 700; letter-spacing: .4px; color: #16181a; }
.pd-basket-sub b { font-size: 1.5rem; color: #16181a; }
.pd-basket-checkout {
  display: flex; align-items: center; gap: .7rem; background: var(--pd-blue); color: #fff;
  text-decoration: none; font-weight: 700; text-transform: uppercase; letter-spacing: .5px;
  padding: 1.1rem 1.3rem; border-radius: 3px;
}
.pd-basket-checkout span { flex: 1 1 auto; }
.pd-basket-checkout:hover { background: var(--pd-blue-dark); color: #fff; }
.pd-basket-continue, .pd-basket-view {
  display: block; width: 100%; background: none; border: 0; margin-top: .9rem; cursor: pointer;
  font-family: inherit; font-size: .88rem; font-weight: 700; color: var(--pd-ink);
  text-transform: uppercase; letter-spacing: .3px; text-align: center; text-decoration: underline;
}
.pd-basket-view { color: var(--pd-blue); margin-top: .5rem; }
.pd-basket-busy { opacity: .6; pointer-events: none; }
body.pd-basket-on { overflow: hidden; }
@media (max-width: 700px) {
  .pd-basket-panel { width: 100%; }
  .pd-basket-item { grid-template-columns: 62px minmax(0, 1fr) auto; }
  .pd-basket-img img { width: 62px; height: 62px; }
}

/* ===== basket: totals panel follows the page while the items scroll =====
   offset clears the sticky header; on phones the panel sits under the items,
   where sticking it would cover them */
.wc-block-cart__sidebar { align-self: flex-start; position: sticky; top: 200px; }
@media (max-width: 900px) {
  .wc-block-cart__sidebar { position: static; }
}

/* ===== quick view lightbox on listings ===== */
.pd-qv { position: fixed; inset: 0; z-index: 1200; display: flex; align-items: center; justify-content: center; padding: 1rem; }
/* display:flex above beats the browser default for [hidden], so close it here */
.pd-qv[hidden] { display: none; }
.pd-qv-scrim { position: absolute; inset: 0; background: rgba(16, 18, 20, .55); }
.pd-qv-box {
  position: relative; background: #fff; border-radius: 10px; width: min(880px, 100%); max-height: 90vh;
  overflow-y: auto; box-shadow: 0 24px 60px rgba(16, 18, 20, .3); padding: 1.6rem 1.8rem 1.8rem;
}
.pd-qv-close {
  position: absolute; top: 6px; right: 8px; width: 42px; height: 42px; border: 0; background: none;
  font-size: 1.7rem; line-height: 1; color: #16181a; cursor: pointer;
}
.pd-qv-close:hover { color: var(--pd-blue); }
.pd-qv-body { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 1.6rem; align-items: start; }
.pd-qv-loading { grid-column: 1 / -1; text-align: center; padding: 2.5rem 0; font-weight: 600; color: #6a7175; }
.pd-qv-media img { width: 100%; height: auto; display: block; border: 1px solid var(--pd-line); border-radius: 6px; }
.pd-qv-info h2 { font-size: 1.12rem; text-transform: uppercase; letter-spacing: .2px; line-height: 1.35; margin: 0 0 .5rem; }
.pd-qv-info h2 a { color: #000; text-decoration: none; }
.pd-qv-info h2 a:hover { color: var(--pd-blue); }
.pd-qv .pdp-price { font-size: 1.5rem; margin-bottom: .2rem; }
.pd-qv-full { display: inline-block; margin-top: 1rem; font-size: .9rem; font-weight: 700; color: var(--pd-blue); text-decoration: none; }
.pd-qv-full:hover { color: var(--pd-blue-dark); }
body.pd-qv-on { overflow: hidden; }
@media (max-width: 700px) {
  .pd-qv { padding: .5rem; }
  .pd-qv-box { padding: 1.2rem 1.1rem 1.4rem; }
  .pd-qv-body { grid-template-columns: 1fr; gap: 1rem; }
  .pd-qv-media { max-width: 170px; margin: 0 auto; }
}

/* ===== live-site option dropdowns, bulk order tiers, kits ===== */
.pd-options { display: flex; flex-direction: column; gap: .65rem; margin: 0 0 21px; }
.pd-option span { display: block; font-size: .8rem; color: #16181a; margin-bottom: 3px; }
.pd-option select {
  width: 100%; padding: .8rem .9rem; border: 1px solid #cfd4d6; border-radius: 5px;
  font-family: inherit; font-size: .95rem; background: #fff;
}
.pdp-price .pd-from.pd-tier-from { display: inline; }
.pd-tiers { margin: 0 0 1.2rem; }
.pd-tiers h3 { font-size: 1rem; text-transform: uppercase; letter-spacing: .4px; color: #000; margin: .4rem 0 .5rem; }
.pd-tiers table { width: 100%; border-collapse: collapse; font-size: .95rem; }
.pd-tiers th, .pd-tiers td { text-align: left; padding: .5rem .8rem; border-bottom: 1px solid #ececec; }
.pd-tiers th { background: #f7f8f9; font-weight: 700; color: #16181a; }
.pd-tiers td:last-child { font-weight: 700; color: var(--pd-terracotta); }
.pd-kit .pd-bundle-name a { color: #16181a; text-decoration: none; }
.pd-kit .pd-bundle-name a:hover { color: var(--pd-blue); }
.pd-kit-qty { display: inline-flex; align-items: center; gap: 6px; }
.pd-kq {
  width: 38px; height: 38px; background: #f7f7f7; border: 1px solid #e6e6e6; border-radius: 4px;
  font-size: 1.2rem; line-height: 1; cursor: pointer; font-family: inherit; color: #000;
}
.pd-kq:hover { border-color: #cfcfcf; }
.pd-kq-i {
  width: 56px; height: 38px; border: 1px solid #e6e6e6; border-radius: 4px; text-align: center;
  font-family: inherit; font-size: 1rem; -moz-appearance: textfield;
}
.pd-kq-i::-webkit-outer-spin-button, .pd-kq-i::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.pd-kit-out { font-weight: 700; color: #d8432c; font-size: .9rem; }
.pd-kit-oos { opacity: .6; }
.pd-kit-buy { display: flex; align-items: center; justify-content: flex-end; gap: 1rem; flex-wrap: wrap; padding: .9rem 1.1rem 1.1rem; }
.pd-kit-add {
  background: var(--pd-terracotta); color: #fff; border: 0; border-radius: 5px; padding: 1rem 1.9rem;
  font-family: inherit; font-weight: 700; text-transform: uppercase; letter-spacing: .4px; font-size: 1rem; cursor: pointer;
}
.pd-kit-add:hover { background: #b8432a; }
.pd-kit-add[disabled] { opacity: .6; cursor: default; }
.pd-kit-msg { font-weight: 600; color: #d8432c; }
@media (max-width: 900px) {
  .pd-option select { font-size: 16px; }
}
@media (max-width: 700px) {
  .pd-kit-add { width: 100%; }
}

/* ===== product grids: equal-height cards =====
   Woo floats the cards, so each is only as tall as its own content. A grid
   stretches every card in a row; the product link fills the card so the
   button sits on the bottom edge, and titles reserve two lines so prices
   and stock lines line up. List view and the related slider are untouched. */
.woocommerce ul.products:not(.pd-listview):not(.pdp-rel-scroll ul) {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.6rem; align-items: stretch;
}
.woocommerce ul.products.columns-3:not(.pd-listview):not(.pdp-rel-scroll ul) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.woocommerce ul.products:not(.pd-listview):not(.pdp-rel-scroll ul)::before,
.woocommerce ul.products:not(.pd-listview):not(.pdp-rel-scroll ul)::after { display: none; }
.woocommerce ul.products:not(.pd-listview):not(.pdp-rel-scroll ul) li.product {
  float: none; width: auto !important; margin: 0 !important; clear: none;
}
.woocommerce ul.products li.product > a:first-of-type { display: flex; flex-direction: column; flex: 1 1 auto; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { min-height: 2.9em; }
@media (max-width: 900px) {
  .woocommerce ul.products:not(.pd-listview):not(.pdp-rel-scroll ul),
  .woocommerce ul.products.columns-3:not(.pd-listview):not(.pdp-rel-scroll ul) { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
}

/* ===== phones: USP strip becomes a right-to-left news ticker =====
   pd-mobile.js appends aria-hidden clones of the four items, so sliding
   the track by -50% loops seamlessly. */
.pd-usp-clone { display: none; }
@keyframes pd-ticker {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}
@media (max-width: 900px) {
  .pd-usps { overflow: hidden; }
  .pd-usps-inner {
    display: flex; width: max-content; max-width: none; height: 60px; margin: 0; padding: 0; gap: 0;
    animation: pd-ticker 30s linear infinite;
  }
  .pd-usps:hover .pd-usps-inner, .pd-usps:active .pd-usps-inner { animation-play-state: paused; }
  .pd-usp, .pd-usp-clone { display: flex; flex: 0 0 auto; gap: .55rem; padding: 0 1.4rem; white-space: nowrap; position: relative; }
  .pd-usp::after {
    content: ''; position: absolute; right: 0; top: 50%; width: 5px; height: 5px; margin-top: -2.5px;
    border-radius: 50%; background: var(--pd-blue); opacity: .5;
  }
  .pd-usp svg { width: 22px; height: 22px; }
  .pd-usp b { font-size: .88rem; }
  .pd-usp > div > span { font-size: .8rem; }
}
@media (max-width: 900px) and (prefers-reduced-motion: reduce) {
  /* no motion: swipe along the four instead */
  .pd-usps { overflow-x: auto; scrollbar-width: none; }
  .pd-usps-inner { animation: none; }
  .pd-usp-clone { display: none; }
}

/* Invoice download link on the order confirmation page */
.pd-invoice-dl { margin: 1.3rem 0; }
.pd-invoice-dl a {
  display: inline-flex; align-items: center; gap: .55rem;
  background: var(--pd-terracotta); color: #fff; text-decoration: none;
  padding: .85rem 1.5rem; border-radius: 5px; font-weight: 700;
  text-transform: uppercase; letter-spacing: .4px; font-size: .95rem;
}
.pd-invoice-dl a::before {
  content: ''; width: 18px; height: 18px; flex: 0 0 auto;
  background: url('data:image/svg+xml;utf8,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22white%22 stroke-width=%222%22><path d=%22M12 3v12m0 0 4-4m-4 4-4-4%22/><path d=%22M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2%22/></svg>') center/contain no-repeat;
}
.pd-invoice-dl a:hover { background: #b8432a; }
