/* special tags are red (Jéan, 5 Nov): white on #c8102e is 5.9:1 */
:root{--rp-sale:#c4001a;--rp-sale-hi:#e8132f;--rp-sale-lo:#9e0014}   /* a richer, deeper red (Jéan, 5 Nov) */
/* Royal Paving: products and prices (Jéan, 5 Nov 2026). Loaded on every page (header Products menu), after site.css.
   Gold = the gold in Royal Paving's logo (img/logo.png: #deca56 light, #c6a12f deep). An accent beside the green, never instead of it.
   Contrast: ink on gold 8.6, gold on deep green 7.2, gold on ink 8.6, gold on the phone emerald #0b5a36 5.0. Never gold text on white (1.7). */
:root{--rp-crown:#deca56;--rp-crown-deep:#c6a12f;--crown-rgb:222,202,86}

/* ---------- gold accents on the existing kit ---------- */
.gold{color:var(--rp-crown)}
.band--ink .eyebrow{color:var(--rp-crown)}
.ftr h3{color:var(--rp-crown)}
.btn--gold{background:var(--rp-crown);color:var(--rp-ink)}                 /* ink on gold 8.6 */
.btn--gold:hover{background:#e9d877;color:var(--rp-ink)}
.sbadge{display:inline-flex;align-items:center;gap:6px;padding:6px 11px 6px 9px;border-radius:999px;background:var(--rp-sale);color:#fff;
  font:800 11px/1 var(--f-body);letter-spacing:.16em;text-transform:uppercase;box-shadow:0 6px 16px -6px rgba(0,0,0,.45)}
.sbadge::before{content:"";width:6px;height:6px;border-radius:50%;background:#fff}

/* ---------- header: Products dropdown (grass first, every grass product listed under it) ---------- */
.nav__mega{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:0;width:720px;padding:0;overflow:hidden;text-align:left}
.nav__mega>div{padding:18px 0 14px}
.mega__grass{background:var(--rp-tint);border-right:1px solid var(--rp-line)}
.nav__mega .mega__h{display:flex;flex-direction:column;align-items:flex-start;gap:5px;padding:4px 22px 12px;margin:0 0 4px;border-bottom:1px solid var(--rp-line);
  font:800 20px/1 var(--f-head)!important;font-stretch:72%!important;letter-spacing:.01em!important;color:var(--rp-ink)!important;background:none!important}
.nav__mega .mega__h span{font:500 11.5px/1.2 var(--f-body);letter-spacing:.04em;text-transform:none;color:var(--rp-muted)}
.nav__mega .mega__h:hover{color:var(--rp-green)!important}
.nav__mega ul{list-style:none;margin:0;padding:0}
.mega__grass ul{display:grid;grid-template-columns:1fr 1fr}
.nav__mega li a{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 22px;font:500 14px/1.25 var(--f-body);letter-spacing:0;text-transform:none}
.nav__mega em,.mnav em,.glist em{font:800 9.5px/1 var(--f-body);font-style:normal;letter-spacing:.12em;text-transform:uppercase;padding:4px 6px;border-radius:4px;background:var(--rp-crown);color:var(--rp-ink);flex:none}
.nav>ul>li>a.nav__prod::after{content:"";width:6px;height:6px;border-radius:50%;background:var(--rp-crown);margin-left:2px;order:-1;margin-right:2px}
.mnav__prod summary{color:#fff}
.mnav__prod em{margin-left:10px;vertical-align:2px}
.mnav__prod details a{justify-content:flex-start}

/* ---------- dark product band (Home, grass page, product pages): deep green with gold accents ---------- */
.band--shop{background:linear-gradient(180deg,var(--rp-deep) 0%,#06261d 100%);color:#fff}
.band--shop .eyebrow{color:var(--rp-crown);display:flex;align-items:center;gap:12px}
.band--shop .eyebrow::before{content:"";width:28px;height:2px;background:var(--rp-crown);flex:none}
.band--shop .h2{color:#fff}
.band--shop+.band--shop2{padding-top:12px;background:linear-gradient(180deg,#06261d 0%,#061f18 100%)}
.band--shop:has(+ .band--shop2){padding-bottom:var(--sec);background:linear-gradient(180deg,var(--rp-deep) 0%,#06261d 100%)}
.shop__head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px 40px;flex-wrap:wrap;margin-bottom:34px}
.shop__head .head{margin:0}
.shop__side{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.shop__note{margin:0;max-width:34ch;font-size:13px;line-height:1.5;color:rgba(255,255,255,.78);padding-left:14px;border-left:2px solid var(--rp-crown)}

/* swipe row of product cards */
.srow__track{list-style:none;margin:0;padding:4px 2px 8px;display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 60px) / 4);gap:20px;
  overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain}
.srow__track::-webkit-scrollbar{display:none}
.srow__track:focus-visible{outline:2px solid var(--rp-crown);outline-offset:4px}
.srow__track>li{scroll-snap-align:start;min-width:0;display:flex}
.srow__track .scard{width:100%}
.srow__ctrl{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:22px}
.srow__hint{font:700 12px/1 var(--f-body);letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.7)}
.srow:not(.srow--dark) .srow__hint{color:var(--rp-muted)}
.srow__arrs{display:flex;gap:10px}
.srow__arr{width:48px;height:48px;border-radius:50%;border:1px solid rgba(255,255,255,.35);background:transparent;color:#fff;cursor:pointer;display:grid;place-items:center;transition:background-color var(--t),color var(--t),border-color var(--t)}
.srow__arr svg{width:16px;height:16px}
.srow__arr:hover:not(:disabled){background:var(--rp-crown);border-color:var(--rp-crown);color:var(--rp-ink)}
.srow__arr:disabled{opacity:.35;cursor:default}

/* ---------- product card ---------- */
.scard{position:relative;display:flex;flex-direction:column;background:#fff;color:var(--rp-slate);border:1px solid var(--rp-line);border-radius:18px;overflow:hidden;
  box-shadow:0 18px 36px -30px rgba(var(--ink-rgb),.55);scroll-margin-top:calc(var(--hdr-h) + 20px)}
.srow--dark .scard{border-color:transparent}
.scard__img{position:relative;display:block;aspect-ratio:4/3;background:#e9ece8;overflow:hidden}
.scard__img img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
a.scard__img:hover img{transform:scale(1.04)}
.scard__img--cut{background:#fff}
.scard__img--cut img{object-fit:contain;padding:8px}
.scard__none{position:absolute;inset:0;background:linear-gradient(135deg,var(--rp-tint),#dfe6d2)}
.scard__img .sbadge{position:absolute;left:12px;top:12px}
.scard.is-special{box-shadow:0 0 0 2px var(--rp-crown),0 18px 36px -30px rgba(var(--ink-rgb),.55);border-color:transparent}
.scard__body{display:flex;flex-direction:column;flex:1;padding:16px 18px 18px}
.scard__k{margin:0 0 6px;font:700 11px/1.3 var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--rp-green)}
.scard__t{margin:0 0 10px;font:800 23px/1 var(--f-head);font-stretch:72%;text-transform:uppercase;color:var(--rp-slate)}
.scard__t a{color:inherit;text-decoration:none}
.scard__t a:hover{color:var(--rp-green)}
.scard__dims{list-style:none;margin:0 0 8px;padding:0;font-size:13.5px;color:var(--rp-muted)}
.scard__note{margin:8px 0 0;font-size:13px;line-height:1.45;color:var(--rp-muted)}
.scard__btns{display:flex;align-items:center;gap:16px;margin-top:auto;padding-top:16px}
.scard__btns .btn{padding:0 18px}

/* prices: label left, old price struck, price now, unit */
.pr{border-top:1px solid var(--rp-line)}
.pr__row{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid var(--rp-line)}
.pr__l{font:700 11px/1.25 var(--f-body);letter-spacing:.08em;text-transform:uppercase;color:var(--rp-muted)}
.pr__v{display:inline-flex;align-items:baseline;flex-wrap:nowrap;white-space:nowrap;justify-content:flex-end;gap:2px 7px;text-align:right;margin-left:auto}
.pr__l{min-width:0}
.pr__v s{font-size:13.5px;color:var(--rp-muted);text-decoration-thickness:1.5px}
.pr__v b{font:800 22px/1 var(--f-head);font-stretch:80%;color:var(--rp-ink);letter-spacing:.01em}
.psale{align-self:center;margin-left:2px;padding:4px 6px 3px;border-radius:4px;background:var(--rp-sale);color:#fff;font:800 10px/1 var(--f-body);letter-spacing:.08em;text-transform:uppercase}   /* red Sale tag after a special price, as on the live shop */
.pr__v small{font-size:13px;color:var(--rp-muted);margin-left:-5px}
.pr--big .pr__row{padding:12px 0}
.pr--big .pr__l{font-size:12px}
.pr--big .pr__v b{font-size:clamp(28px,2.6vw,36px)}
.pr--big .pr__v s{font-size:16px}
.pr--big .pr__v small{font-size:15px}

/* ---------- category tiles (Home band and the hub): one even grid, every tile the same size, grass first.
   Each tile is the photo, the name and the from price only (Jéan, 5 Nov: "very, very busy" and "some of the sizing is off") ---------- */
.stiles{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}
.stile{position:relative;isolation:isolate;display:flex;flex-direction:column;justify-content:flex-end;aspect-ratio:4/5;padding:18px;border-radius:18px;overflow:hidden;color:#fff;text-decoration:none;background:var(--rp-ink)}
.stile__img{position:absolute;inset:0;z-index:-1}
.stile__img img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.stile__img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,16,13,0) 40%,rgba(6,16,13,.7) 72%,rgba(6,16,13,.92) 100%)}
.stile:hover .stile__img img{transform:scale(1.05)}
.stile--pools .stile__img{background:#e9f3f6}.stile--pools .stile__img img{width:auto;height:auto;max-width:80%;max-height:52%;object-fit:contain;position:absolute;left:50%;top:12%;transform:translateX(-50%)}.stile--pools:hover .stile__img img{transform:translateX(-50%)}
.stile:hover{color:#fff}
.stile__txt{display:flex;flex-direction:column;gap:6px}
.stile__t{font:800 22px/1 var(--f-head);font-stretch:72%;text-transform:uppercase;text-shadow:0 1px 4px rgba(0,0,0,.45)}
.stile:focus-visible{outline:3px solid var(--rp-crown);outline-offset:3px}

/* ---------- /artificial-grass/: every grass, linked ---------- */
.glist{margin-top:44px;padding-top:28px;border-top:1px solid rgba(255,255,255,.16)}
.glist__h{margin:0 0 14px;font:700 12px/1.3 var(--f-body);letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.8)}
.glist ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 36px}
.glist a{display:flex;align-items:baseline;gap:10px;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.12);color:#fff;text-decoration:none}
.glist a span{flex:1;font-weight:500}
.glist a:hover span{color:var(--rp-crown)}
.glist b{font:800 19px/1 var(--f-head);font-stretch:80%;color:var(--rp-crown)}
.glist small{font:400 12px/1 var(--f-body);color:rgba(255,255,255,.7)}

/* ---------- product pages: hub, category, grass product ---------- */
.shop-top{padding-top:calc(var(--hdr-h) + 34px)}
.crumbs--dark{color:var(--rp-muted);margin-bottom:18px}
.crumbs--dark a{color:var(--rp-green)}
.crumbs--dark span[aria-current]{color:var(--rp-slate)}
.catnav{margin:0 0 34px;border-bottom:1px solid var(--rp-line)}
.catnav ul{list-style:none;margin:0;padding:0 0 14px;display:flex;flex-wrap:wrap;gap:8px;overflow-x:auto;scrollbar-width:none}
.catnav ul::-webkit-scrollbar{display:none}
.catnav a{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;padding:10px 15px;border-radius:999px;border:1px solid var(--rp-line);background:#fff;
  font:700 12px/1 var(--f-body);letter-spacing:.06em;text-transform:uppercase;color:var(--rp-slate);text-decoration:none}
.catnav a:hover{border-color:var(--rp-green);color:var(--rp-green)}
.catnav a.is-grass::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--rp-crown-deep)}
.catnav a[aria-current]{background:var(--rp-deep);border-color:var(--rp-deep);color:#fff}
.catnav a[aria-current].is-grass::before{background:var(--rp-crown)}
.cat__head{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,470px);gap:24px 56px;align-items:end;margin-bottom:34px}
.cat__h1,.pd__h1{margin:0;font:800 clamp(40px,4.6vw,72px)/.92 var(--f-head);font-stretch:72%;text-transform:uppercase;color:var(--rp-slate)}
.cat__head .lead{margin:18px 0 0;max-width:62ch;color:var(--rp-muted);font-size:17px}
.pnote{margin:0;padding:4px 0 4px 14px;border-left:3px solid var(--rp-crown);font-size:13.5px;line-height:1.5;color:var(--rp-muted)}
.sgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:20px}
.sgrid>[hidden]{display:none}
@media (min-width:1100px){#plist{grid-template-columns:repeat(3,minmax(0,1fr))}}
.sgroup+.sgroup{margin-top:48px}
.sgroup__h{display:flex;align-items:center;gap:12px;margin:0 0 18px;padding-bottom:12px;border-bottom:2px solid var(--rp-crown);font:800 30px/1 var(--f-head);font-stretch:72%;text-transform:uppercase;color:var(--rp-slate)}
.sgroup__h span{font:700 12px/1 var(--f-body);letter-spacing:.06em;padding:6px 9px;border-radius:999px;background:var(--rp-deep);color:#fff}
.subtabs--shop{--cols:5;margin-bottom:26px}

.pd{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(32px,4.5vw,72px);align-items:start}
.gal__main{position:relative;margin:0;border-radius:22px;overflow:hidden;aspect-ratio:4/3;background:#e9ece8}
.gal__main img{width:100%;height:100%;object-fit:cover}
.gal__main .sbadge{position:absolute;left:16px;top:16px;z-index:1;font-size:12.5px;padding:8px 14px 8px 11px}
.gal__thumbs{list-style:none;margin:12px 0 0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.gal__th{display:block;width:100%;aspect-ratio:1;padding:0;border:2px solid transparent;border-radius:12px;overflow:hidden;cursor:pointer;background:#e9ece8}
.gal__th img{width:100%;height:100%;object-fit:cover}
.gal__th[aria-pressed="true"]{border-color:var(--rp-crown-deep)}
.pd__info .eyebrow{margin-bottom:12px}
.pd__sub{margin:12px 0 0;font-size:17px;color:var(--rp-muted)}
.pd__price{position:relative;margin:24px 0 14px;padding:16px 22px 14px;border-radius:18px;background:var(--rp-tint);border:1px solid var(--rp-line)}
.pd__price .sbadge{margin-bottom:6px}
.pd__price .pr{border-top:0}
.pd__price .pr__row:last-child{border-bottom:0}
.pd__note{margin:6px 0 0;font-size:14px;color:var(--rp-slate);font-weight:500}
.pd__facts{display:grid;grid-template-columns:1fr 1fr;gap:0 24px;margin:22px 0 0}
.pd__facts div{padding:12px 0;border-top:1px solid var(--rp-line)}
.pd__facts dt{font:700 11px/1.3 var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--rp-muted)}
.pd__facts dd{margin:4px 0 0;font-weight:500;color:var(--rp-slate)}
.pd__btns{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
.pd__more{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:24px clamp(32px,5vw,80px)}
.pd__about p{margin:0 0 16px;font-size:17px;line-height:1.7;max-width:62ch}
.ticks{list-style:none;margin:8px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:0 28px}
.ticks li{display:flex;align-items:center;gap:12px;padding:11px 0;border-top:1px solid var(--rp-line);font-size:15px}
.ticks li::before{content:"";flex:none;width:16px;height:3px;background:var(--rp-crown-deep)}
.pd__install{margin:22px 0 0;font-size:15px;color:var(--rp-muted)}
.pd__install b{color:var(--rp-slate)}

/* the quote band on its own (product pages): a little more room than inside the hero */
main>.qband{padding:clamp(40px,5vw,64px) 0}

/* ---------- narrow desktop and tablet ---------- */
@media (max-width:1180px){
  .srow__track{grid-auto-columns:calc((100% - 40px) / 3)}
  .nav__mega{width:640px}
}
@media (max-width:1100px){
  .glist ul{grid-template-columns:1fr 1fr}
}
@media (max-width:960px){
  .srow__track{grid-auto-columns:calc((100% - 20px) / 2.2)}
  .pd,.pd__more{grid-template-columns:1fr}
  .cat__head{grid-template-columns:minmax(0,1fr)}
  .cat__head>*,.cat__side{min-width:0}   /* the no-wrap category pills were stretching the column past the phone edge */
  .stiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .stile{aspect-ratio:1/1;padding:14px;border-radius:16px}
  .stile__t{font-size:19px}
  .subtabs--shop{--cols:5;overflow-x:auto}
}
@media (max-width:760px){
  .shop__head{flex-direction:column;align-items:center;text-align:center;margin-bottom:24px;gap:16px}
  .band--shop .eyebrow{justify-content:center}
  .shop__side{flex-direction:column;gap:14px}
  .shop__note{border-left:0;padding:0;text-align:center;font-size:12.5px}
  .srow__track{grid-auto-columns:80vw;gap:12px;margin-inline:calc(var(--gut) * -1);padding-inline:var(--gut);scroll-padding-inline:var(--gut)}
  .srow__ctrl{margin-top:16px}
  .srow__arr{width:42px;height:42px}
  .scard__t{font-size:21px}
  .glist ul{grid-template-columns:1fr}
  .shop-top{padding-top:calc(var(--hdr-h) + 22px)}
  .catnav{margin:0 calc(var(--gut) * -1) 24px;border-bottom:0}
  .catnav ul{padding:0 var(--gut) 4px;flex-wrap:nowrap}
  .cat__head{margin-bottom:24px}
  .cat__head .lead{font-size:16px}
  .cat__h1,.pd__h1{font-size:clamp(36px,11vw,48px)}
  .sgrid{grid-template-columns:1fr;gap:12px}
  /* phones: list cards as rows, photo left, so a long list (30 pools) stays easy to scan */
  .sgrid .scard{display:grid;grid-template-columns:112px minmax(0,1fr)}
  .sgrid .scard__img{aspect-ratio:auto;height:100%;min-height:150px}
  .sgrid .scard__img .sbadge{left:8px;top:8px;font-size:9.5px;padding:5px 8px 5px 7px;letter-spacing:.12em}
  .sgrid .scard__body{padding:12px 14px 14px}
  .sgrid .scard__t{font-size:19px;margin-bottom:8px}
  .sgrid .pr__v b{font-size:19px}
  .sgrid .scard__btns{padding-top:12px;gap:12px}
  .sgrid .scard__btns .btn{height:40px;padding:0 14px;font-size:11px}
  /* the 5-year seal ran 27px past the card edge at 390 and sat under the WhatsApp button (5 Nov): on phones it goes in the card's top-right
     corner, clear of the red price sticker on the photo; the title makes room for it */
  .sgrid .scard{position:relative}
  .sgrid .scard__btns .pwarr--card{position:absolute;right:10px;top:10px;width:48px;margin:0}
  .sgrid .scard:has(.pwarr--card) .scard__t{padding-right:50px}
  .subtabs--shop{display:flex;border:0;gap:8px;background:none;overflow-x:auto;scrollbar-width:none;margin-inline:calc(var(--gut) * -1);padding:0 var(--gut) 4px}
  .subtabs--shop>*{flex:none;border:1px solid var(--rp-line)!important;border-radius:999px;padding:10px 14px;white-space:nowrap;background:#fff}
  .subtabs--shop>[aria-selected="true"]{background:var(--rp-deep);color:#fff;border-color:var(--rp-deep)!important;box-shadow:none}
  .sgroup__h{font-size:26px}
  .gal__thumbs{gap:6px}
  .pd__price{padding:12px 16px 10px}
  .pd__facts{grid-template-columns:1fr}
  .pd__btns{display:grid;grid-template-columns:1fr 1fr}
  .pd__btns .btn--quote{grid-column:1/-1}
  .pd__btns .btn{padding:0 10px}
  .ticks{grid-template-columns:1fr}
  .pd__about p{font-size:16px}
}
/* Call 081 597 4657 and WhatsApp do not fit side by side under 420px: stack them */
@media (max-width:420px){.pd__btns{grid-template-columns:minmax(0,1fr)}}
@media (prefers-reduced-motion:reduce){.scard__img img,.stile__img img{transition:none}}

/* Promise badges in gold (Jéan, 5 Nov): gold chips with ink text, gold label and edge on the warranty */
.promise .pb--i small::before{background:var(--rp-crown)}                          /* ink on gold 8.6 */
.promise .pb--w small{color:var(--rp-crown)}
.promise .pb--i,.promise .pb--w{border-color:rgba(var(--crown-rgb),.38)}

/* ---------- all nine grass specials at once (Jéan, 5 Nov): 3 across on desktop, 2 on tablets, a stack of rows on phones ---------- */
.sgrid--specials{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.band--shop .sgrid--specials .scard{border-color:transparent}
.sgrid--specials .scard__img{aspect-ratio:16/10}

/* ---------- the grass features strip (rebuilt from the live site's sl-features.png): gold icon in a gold ring on deep green, white labels ---------- */
.feats{list-style:none;margin:40px 0 0;padding:26px 22px 24px;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:20px 12px;
  border-radius:20px;background:var(--rp-deep);border:1px solid rgba(var(--crown-rgb),.32)}
.feats--7{grid-template-columns:repeat(7,minmax(0,1fr))}
.band--shop .feats{background:rgba(255,255,255,.04)}
.feats li{display:flex;flex-direction:column;align-items:center;text-align:center;color:#fff}
.feats__i{display:grid;place-items:center;width:62px;height:62px;border-radius:50%;border:2px solid var(--rp-crown);color:var(--rp-crown);background:rgba(0,0,0,.12);margin-bottom:12px}
.feats__i svg{width:34px;height:34px}
.feats__t{font:700 12px/1.25 var(--f-body);letter-spacing:.1em;text-transform:uppercase;color:#fff}
.feats small{display:block;margin-top:5px;font-size:11.5px;line-height:1.35;color:rgba(255,255,255,.82);max-width:16ch}
.shop-top .feats{margin-top:44px}

/* ---------- the 5-year paving warranty badge (largest live source, 384 x 309) ---------- */
.pwarr{display:block;width:118px;height:auto}
.cat__side{display:flex;align-items:center;gap:22px}
.cat__side .pwarr{flex:none}
.scard__btns .pwarr--card{width:62px;margin-left:auto}
.pwarr-row{display:flex;align-items:center;gap:28px;flex-wrap:wrap;margin-top:var(--s-close)}
.pwarr-row .cta-row{margin:0}

@media (max-width:1100px){
  .feats{grid-template-columns:repeat(4,minmax(0,1fr))}
  .feats--7{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media (max-width:960px){
  .sgrid--specials{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:760px){
  .sgrid--specials{grid-template-columns:1fr;gap:12px}
  .sgrid--specials .scard{display:grid;grid-template-columns:116px minmax(0,1fr)}
  .sgrid--specials .scard__img{aspect-ratio:auto;height:100%;min-height:150px}
  .sgrid--specials .scard__img .sbadge{left:8px;top:8px;font-size:9.5px;padding:5px 8px 5px 7px;letter-spacing:.12em}
  .sgrid--specials .scard__body{padding:12px 14px 14px;text-align:left}
  .sgrid--specials .scard__t{font-size:19px;margin-bottom:8px}
  .sgrid--specials .pr__v b{font-size:19px}
  .sgrid--specials .scard__btns{padding-top:12px;gap:12px}
  .sgrid--specials .scard__btns .btn{height:40px;padding:0 14px;font-size:11px}
  .feats{margin-top:28px;padding:20px 10px 18px;gap:18px 6px}
  .feats__i{width:50px;height:50px;margin-bottom:9px}
  .feats__i svg{width:25px;height:25px}
  .feats__t{font-size:10.5px;letter-spacing:.06em}
  .feats small{font-size:10px}
  .cat__side{align-items:center}
  .pwarr{width:96px}
  .scard__btns .pwarr--card{width:52px}
}

/* phones: in the list rows each price sits under its label, so "Supply & install" never breaks over three lines */
@media (max-width:760px){
  .sgrid .pr__row{flex-direction:column;align-items:flex-start;gap:3px;padding:7px 0}
  .sgrid .pr__v{margin-left:0;justify-content:flex-start}
}

/* ---------- the live shop's red price circle on every special photo (Jéan, 5 Nov): sized off the photo so it works on cards, phone rows and the product gallery ---------- */
.scard__img,.gal__main{container-type:inline-size}
.sstk{position:absolute;right:5%;bottom:5%;z-index:1;width:clamp(72px,34cqi,170px);aspect-ratio:1;border-radius:50%;padding:7%;
  display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;line-height:1;
  background:radial-gradient(circle at 34% 28%,var(--rp-sale-hi),var(--rp-sale) 55%,var(--rp-sale-lo));color:#fff;box-shadow:0 0 0 3px rgba(255,255,255,.9),0 12px 26px -10px rgba(0,0,0,.6)}
.sstk__was{font:600 clamp(7.5px,3.9cqi,14px)/1.1 var(--f-body);text-decoration:line-through;opacity:.92;margin-bottom:5%;white-space:nowrap}
.sstk__now{font:800 clamp(7px,3.6cqi,13px)/1 var(--f-body);letter-spacing:.1em;text-transform:uppercase}
.sstk b{font:800 clamp(15px,8.6cqi,34px)/1 var(--f-head);font-stretch:80%;white-space:nowrap;margin-top:2%}
.sstk b small{font-size:.56em;font-weight:700;margin-left:1px}
.sstk__f{font:700 clamp(6px,3cqi,11px)/1.1 var(--f-body);letter-spacing:.06em;text-transform:uppercase;margin-top:5%}

/* ---------- 5 Nov: every category easy to find (counts in the menus, Specials everywhere, footer Products column) ---------- */
.nav__mega .mega__n,.mnav__n{flex:none;margin-left:auto;min-width:26px;padding:3px 7px;border-radius:999px;background:var(--rp-tint);border:1px solid var(--rp-line);
  font:700 11px/1 var(--f-body);letter-spacing:.02em;color:var(--rp-slate);text-align:center}
.nav__mega .mega__sp{font-weight:700!important;color:var(--rp-sale)!important}
.nav__mega .mega__sp .mega__n{background:var(--rp-sale);border-color:var(--rp-sale);color:#fff}
.mnav__prod details a{display:flex;align-items:center;gap:10px}
.mnav__n{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.2);color:#fff;margin-left:10px}
.catnav a.is-sp{border-color:var(--rp-sale);color:var(--rp-sale);font-weight:700}
.catnav a.is-sp[aria-current]{background:var(--rp-sale);border-color:var(--rp-sale);color:#fff}
.tlink--light{color:#fff}
.tlink--light:hover{color:var(--rp-crown)}
.btn--sale{background:var(--rp-sale);color:#fff}                       /* white on #c8102e 5.9:1 */
.btn--sale:hover{background:#a90d26;color:#fff}
.cat__sp{margin:28px 0 0}
.sgroup__more{margin:18px 0 0}
/* the 5-year installation warranty badge on a grass product page, beside the price note (Jéan, 5 Nov 2026) */
.pd__warr{display:flex;align-items:center;justify-content:space-between;gap:18px}
.pd__warr .pwarr{flex:none;width:104px}
@media (max-width:760px){
  .pd__warr .pwarr{width:84px}
  .cat__side .btn--sale{width:100%}
}

/* calmer special cards (Jéan, 5 Nov: "very busy"): the ribbon and the circle carry the special; no gold ring and no Sale tag in the card's price rows (the tag stays on the product page) */
.scard.is-special{box-shadow:none;border-color:var(--rp-line)}
.scard .psale{display:none}

/* the category tiles now sit in the specials band (Jéan, 5 Nov: no seam between two dark bands) */
.shop__head--next{margin-top:clamp(64px,7vw,104px)}
.stile__p{font:600 14px/1.2 var(--f-body);color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.6)}
.stile__p b{font:800 18px/1 var(--f-head);color:var(--rp-crown)}
.stile__p small{font-size:.75em;font-weight:600;margin-left:1px}

/* size chips (Jéan, 5 Nov: "pick the size you want, or colour"): one card per paver family; a chip swaps that size's prices, photo and quote link */
.fsz{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 6px}
.fsz__h{flex:0 0 100%;margin:0 0 2px;font:700 11px/1.3 var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--rp-muted)}
.fsz__b{min-height:36px;padding:0 11px;border:1px solid var(--rp-line);border-radius:999px;background:#fff;color:var(--rp-slate);
  font:700 13px/1 var(--f-body);white-space:nowrap;cursor:pointer;scroll-margin-top:calc(var(--hdr-h) + 120px);transition:background .2s,border-color .2s,color .2s}
.fsz__b:hover{border-color:var(--rp-deep)}
.fsz__b[aria-pressed="true"]{background:var(--rp-deep);border-color:var(--rp-deep);color:#fff}
.fsz__b:focus-visible{outline:2px solid var(--rp-gold);outline-offset:2px}
.fsz__p[hidden]{display:none}
.scard__col{margin:0 0 6px;font-size:13.5px;color:var(--rp-muted)}
@media (max-width:760px){
  .fsz{gap:6px}
  .fsz__b{min-height:36px;padding:0 10px;font-size:12.5px}
}
@media (prefers-reduced-motion:reduce){.fsz__b{transition:none}}
/* paver groups side by side (5 Nov): a group spans as many columns as it has cards, so one-card groups (Ravine, Rockface) share a row */
.sgroups{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:48px 20px;align-items:start}
.sgroups .sgroup{margin:0}
.sgroups .sgroup__h{flex-wrap:wrap;row-gap:8px}
.sgroups .sgroup--n2{grid-column:span 2}
.sgroups .sgroup--n3{grid-column:span 3}
.sgroups .sgroup--n2 .sgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
.sgroups .sgroup--n3 .sgrid{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:1180px){
  .sgroups{grid-template-columns:repeat(3,minmax(0,1fr))}
  .sgroups .sgroup--n3{grid-column:1/-1}
}
@media (max-width:960px){
  .sgroups{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sgroups .sgroup--n2,.sgroups .sgroup--n3{grid-column:1/-1}
  .sgroups .sgroup--n3 .sgrid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
}
@media (max-width:760px){
  .sgroups{display:block}
  .sgroups .sgroup+.sgroup{margin-top:40px}
  .sgroups .sgrid{grid-template-columns:1fr}
  .sgroups .sgroup--n2 .sgrid,.sgroups .sgroup--n3 .sgrid{grid-template-columns:1fr}
}
