/* Project Floors product layouts. Everything is scoped under .pfp so it cannot touch the rest of the site. */
.pfp{--bg:#f3f5f3;--fg:#14201b;--muted:#566660;--line:#d9dfdb;--accent:#1d5a4a;--soft:#e4ece8;--dark:#0f1a16;
  --fd:'Bricolage Grotesque','Helvetica Neue',Arial,sans-serif;--fb:'DM Sans','Helvetica Neue',Arial,sans-serif;--fm:'DM Mono',ui-monospace,Menlo,monospace;
  background:var(--bg);color:var(--fg);font-family:var(--fb);font-size:16px;line-height:1.55;display:block;width:100%;max-width:none;align-self:stretch;padding-top:var(--pfp-offset,0px)}
.pfp *,.pfp *::before,.pfp *::after{box-sizing:border-box}
.pfp img{max-width:100%;height:auto;display:block}
.pfp h1,.pfp h2,.pfp h3{font-family:var(--fd);font-weight:700;line-height:1.08;letter-spacing:-.02em;margin:0;color:inherit;text-wrap:balance}
.pfp p{margin:0}
.pfp a:not(.pfp-btn){color:inherit !important;text-decoration:none}
.pfp .pfp-anchors a:last-child{color:var(--accent) !important}
.pfp .pfp-copy a,.pfp .pfp-phone a{text-decoration:underline}
.pfp-wrap{width:100%;max-width:1180px;margin-inline:auto;padding-inline:clamp(16px,3vw,32px);min-width:0}
.pfp-pad{padding-block:28px 64px}
.pfp-banner{position:fixed;left:50%;bottom:14px;transform:translateX(-50%);z-index:99999;background:var(--accent);color:#fff;font:500 12px var(--fm);padding:9px 16px;border-radius:999px;box-shadow:0 4px 18px rgba(0,0,0,.25);max-width:92vw;text-align:center}
.pfp-banner a{color:#fff}
.pfp-code{font:500 12px var(--fm);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);display:block;margin-bottom:6px}
.pfp-crumbs{font:12px var(--fm);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:22px}
.pfp-crumbs a{text-decoration:none}
.pfp-title{font-size:clamp(2.2rem,4.4vw,3.4rem)}
.pfp-title.xl{font-size:clamp(2.8rem,7vw,5.2rem);line-height:1}
.pfp-h2{font-size:clamp(1.5rem,2.6vw,2rem);margin-bottom:16px}
.pfp-lede{max-width:52ch;color:inherit;opacity:.8}
.pfp-lede.dark-text{color:var(--muted);opacity:1}
.pfp-btns{display:flex;gap:10px;flex-wrap:wrap}
.pfp-btns.centre{justify-content:center}
.pfp-btn{display:inline-block;font:500 15px var(--fb);padding:14px 22px;border:1px solid var(--accent);background:var(--accent);color:#fff !important;text-decoration:none;border-radius:2px;cursor:pointer}
.pfp-btn:hover{filter:brightness(1.1)}
.pfp-btn.ghost{background:transparent;color:var(--fg) !important;border-color:var(--fg)}
.pfp-btns.on-dark .pfp-btn{background:#fff;color:var(--dark) !important;border-color:#fff}
.pfp-btns.on-dark .pfp-btn.ghost{background:transparent;color:#fff !important;border-color:#fff}
.pfp-phone{font-size:14px;color:var(--muted)}
.pfp-spec{width:100%;border-collapse:collapse;font-size:15px;margin:0}
.pfp .pfp-spec,.pfp .pfp-spec tbody,.pfp .pfp-spec tr,.pfp .pfp-spec th,.pfp .pfp-spec td{background:transparent !important;border:0 !important;box-shadow:none !important}
.pfp .pfp-spec th,.pfp .pfp-spec td{padding:11px 0;border-bottom:1px solid var(--line) !important;text-align:left;vertical-align:top;color:inherit}
.pfp-spec th{font:500 12px var(--fm);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);width:44%;padding-right:12px}
.pfp-spec td{font-variant-numeric:tabular-nums}
.pfp-block{margin-top:56px}
.pfp-copy{color:var(--muted);max-width:68ch;display:grid;gap:14px}
.pfp-two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,4vw,56px);margin-top:48px;align-items:start}
.pfp-docs{list-style:none;margin:0;padding:0;display:grid;gap:0}
.pfp-docs li{border-bottom:1px solid var(--line)}
.pfp-docs a{display:flex;color:inherit;justify-content:space-between;gap:12px;padding:13px 0;text-decoration:none}
.pfp-docs em{font:12px var(--fm);color:var(--muted);font-style:normal}
.pfp-sibs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.pfp-sib{display:grid;gap:8px;text-decoration:none;min-width:0}
.pfp-sib img{aspect-ratio:3/2;object-fit:cover;width:100%;border-radius:2px}
.pfp-sib span{font:12px var(--fm);letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.pfp-mosaic{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:40px}
.pfp-mosaic figure{margin:0}
.pfp-mosaic img{aspect-ratio:4/3;object-fit:cover;width:100%;border-radius:2px}
.pfp-ticks{list-style:none;margin:0;padding:0;display:grid;gap:6px;font-size:15px}
.pfp-ticks li::before{content:"✓";color:var(--accent);font-weight:700;margin-right:10px}
.pfp-cta{border:1px solid var(--accent);padding:clamp(20px,3vw,34px);display:grid;gap:14px;align-content:center;background:#fff}
.pfp-cta h3{font-size:clamp(1.5rem,3vw,2.1rem)}
.pfp-cta p{color:var(--muted)}

/* split */
.pfp-anchors{display:flex;gap:6px 22px;flex-wrap:wrap;margin:-8px 0 24px;padding-bottom:12px;border-bottom:1px solid var(--line);font-size:14px}
.pfp-anchors a{text-decoration:none;color:var(--muted)}
.pfp-anchors a:last-child{margin-left:auto;color:var(--accent);font-weight:500}
.pfp-split-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:clamp(24px,4vw,56px);align-items:start}
.pfp-main{margin:0}
.pfp-main img{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:2px}
.pfp-thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px;margin-top:10px}
.pfp-thumbs button{padding:0;border:1px solid var(--line);background:none;cursor:pointer;border-radius:2px;overflow:hidden}
.pfp-thumbs img{aspect-ratio:1;object-fit:cover;width:100%}
.pfp-aside{position:sticky;top:24px;display:grid;gap:20px;min-width:0}
.pfp-story{margin-top:44px;padding-top:32px;border-top:1px solid var(--line)}
.pfp-cta-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);margin-top:56px;border:1px solid var(--accent);background:#fff}
.pfp-cta-split .pfp-cta{border:0}
.pfp-cta-img{max-height:460px;overflow:hidden}
.pfp-cta-img img{width:100%;height:100%;min-height:240px;object-fit:cover}

/* swatch */
.pfp-hero-row{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;align-items:end;margin-bottom:26px}
.pfp-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:6px;height:clamp(160px,26vw,320px)}
.pfp-strip{grid-template-rows:100%;overflow:hidden}
.pfp-strip figure{margin:0;min-width:0;height:100%;overflow:hidden}
.pfp-strip img{width:100%;height:100%;object-fit:cover;border-radius:2px}
.pfp-ribbon{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));border-block:1px solid var(--fg);margin-block:28px}
.pfp-ribbon div{padding:18px 16px;border-right:1px solid var(--line)}
.pfp-ribbon div:last-child{border:0}
.pfp-ribbon b,.pfp-cards b{display:block;font:700 1.5rem var(--fd);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.pfp-ribbon span,.pfp-cards span{font:11px var(--fm);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.pfp-strip-cta{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;align-items:center;margin-top:48px;padding:28px;background:var(--fg);color:#fff;border-radius:2px}
.pfp-strip-cta h3{font-size:clamp(1.4rem,3vw,1.9rem)}
.pfp-strip-cta p{opacity:.75;margin-top:6px}

/* editorial */
.pfp-dark{background:var(--dark);color:#eef3f0;padding-block:clamp(32px,6vw,72px)}
.pfp-hero-c{display:grid;gap:22px;justify-items:center;text-align:center}
.pfp-hero-c .pfp-code{color:rgba(255,255,255,.6)}
.pfp-hero-c .pfp-lede{max-width:52ch}
.pfp-wide img{width:100%;aspect-ratio:21/9;object-fit:cover;border-radius:2px;margin-top:28px}
.pfp-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:12px}
.pfp-cards div{background:#fff;padding:24px}
.pfp-dark-cta{padding-block:clamp(28px,5vw,56px)}
.pfp-cta-row{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;align-items:center}
.pfp-cta-row p{opacity:.75;margin-top:10px;max-width:46ch}
.pfp-cta-row .pfp-code{color:rgba(255,255,255,.6)}

/* pattern */
.pfp-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:clamp(24px,4vw,56px);align-items:center}
.pfp-intro .pfp-btns{margin-block:22px 14px}
.pfp-floor{background:var(--soft);padding:12px;border-radius:2px;overflow:hidden}
.pfp-trow{display:flex;gap:2px;margin-bottom:2px}
.pfp-tile{flex:0 0 calc(100%/6 - 2px);aspect-ratio:1;position:relative;overflow:hidden;background:#ccc}
.pfp-tile i{position:absolute;inset:0;display:block;background-size:cover;background-position:center}
.pfp-tools{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:12px}
.pfp-tools .pfp-code{margin:0 4px 0 0}
.pfp-tools button{font:500 13px var(--fb);padding:8px 14px;border:1px solid var(--line);border-radius:99px;background:transparent;color:var(--fg);cursor:pointer}
.pfp-tools button[aria-pressed="true"]{background:var(--fg);color:#fff;border-color:var(--fg)}
.pfp-band{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;align-items:center;margin-top:56px;padding:28px;background:var(--soft);border-radius:2px}
.pfp-band h3{font-size:clamp(1.3rem,2.6vw,1.7rem)}

.pfp-mobile-cta{display:none}
@media (max-width:820px){
  .pfp-split-grid,.pfp-two,.pfp-intro,.pfp-cta-split{grid-template-columns:minmax(0,1fr)}
  .pfp-aside{position:static}
  .pfp-sibs,.pfp-mosaic{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pfp-strip{grid-template-columns:repeat(3,minmax(0,1fr))}
  .pfp-strip figure:nth-child(n+4){display:none}
  .pfp-ribbon div{border-right:0;border-bottom:1px solid var(--line)}
  .pfp-mobile-cta{display:block;position:fixed;left:0;right:0;bottom:0;z-index:50;padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px));background:#fff;border-top:1px solid var(--line)}
  .pfp-mobile-cta .pfp-btn{display:block;text-align:center;width:100%}
  .pfp{padding-bottom:70px}
}

/* Low resolution source images: keep sharp, centred, never stretched */
.pfp img.pfp-low{width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;display:block;margin-left:auto;margin-right:auto}
.pfp-main:has(img.pfp-low),.pfp-strip figure:has(img.pfp-low),.pfp-wide:has(img.pfp-low),.pfp-cta-img:has(img.pfp-low){background:rgba(0,0,0,.04);display:flex;align-items:center;justify-content:center}
.pfp-strip img.pfp-low{height:100%;width:auto;max-width:100%;aspect-ratio:auto;object-fit:contain}
.pfp-main img.pfp-low{max-height:520px}
.pfp-wide img.pfp-low{aspect-ratio:1/1;max-height:420px;margin-top:28px}
.pfp-cta-img img.pfp-low{height:auto;min-height:0}

.pfp-nospec{margin:22px 0;padding:16px 18px;border:1px solid var(--line);border-left:3px solid var(--accent);background:rgba(0,0,0,.02);border-radius:2px}
.pfp-nospec strong{font:500 12px var(--fm);letter-spacing:.08em;text-transform:uppercase}
.pfp-nospec p{margin:6px 0 0;font-size:.95rem;opacity:.8}

/* odd-ratio images (panoramic swatches): never crop-zoom them */
.pfp img.pfp-odd{object-fit:contain!important;height:auto!important;width:100%;background:rgba(0,0,0,.04)}
.pfp-strip img.pfp-odd{max-height:100%;margin:auto}
.pfp-strip figure:has(img.pfp-odd){display:flex;align-items:center}
.pfp-thumbs img.pfp-odd,.pfp-sib img.pfp-odd,.pfp-mosaic img.pfp-odd{object-fit:cover!important;height:100%!important}

/* hide sitewide floating specs tab on redesigned pages; page has its own CTA */
body.pfp-on .elementor-widget[class*="elementor-element-a544788"]{display:none!important}

.pfp-split-grid .pfp-gal{position:sticky;top:96px;align-self:start}
@media (max-width:820px){.pfp-split-grid .pfp-gal{position:static}}

.pfp-spec{table-layout:fixed}
.pfp-spec th{width:42%;overflow-wrap:anywhere}
.pfp-spec td{overflow-wrap:anywhere}
.pfp-spec td a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}

.pfp-range-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:clamp(20px,3vw,40px);margin-top:18px}
.pfp-h3{font:500 12px var(--fm);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 6px}
.pfp-note{color:var(--muted);max-width:60ch;margin:6px 0 0}
.pfp-range .pfp-spec{font-size:14px}

/* uniform tiles: gallery grids always crop to one shape, whatever the source ratio */
.pfp-sib img,.pfp-sib img.pfp-odd,.pfp-sib img.pfp-low{aspect-ratio:3/2!important;object-fit:cover!important;width:100%!important;height:auto!important;max-width:none!important}
.pfp-mosaic img,.pfp-mosaic img.pfp-odd,.pfp-mosaic img.pfp-low{aspect-ratio:4/3!important;object-fit:cover!important;width:100%!important;height:auto!important;max-width:none!important}
.pfp-thumbs img,.pfp-thumbs img.pfp-odd,.pfp-thumbs img.pfp-low{aspect-ratio:1/1!important;object-fit:cover!important;width:100%!important;height:auto!important;max-width:none!important}

.pfp-glance{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin:40px 0 0}
.pfp-gl{background:var(--bg);padding:18px 16px;display:grid;gap:4px;align-content:start}
.pfp-gl strong{font-size:clamp(1.1rem,2.2vw,1.5rem);line-height:1.15;font-weight:600}
.pfp-gl span{font:500 11px var(--fm);letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.pfp-certs{margin-top:28px}
.pfp-certs ul{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.pfp-certs li{display:grid;gap:2px;border:1px solid var(--accent);padding:10px 14px;border-radius:2px;background:#fff}
.pfp-certs li strong{font-size:14px;color:var(--accent)}
.pfp-certs li span{font-size:12px;color:var(--muted)}
.pfp-stock{display:flex;gap:12px;align-items:flex-start;margin:0 0 16px;padding:12px 16px;border:1px solid var(--line);background:#fff;border-radius:2px;max-width:420px}
.pfp-stock strong{display:block;font:600 15px var(--fb);color:var(--fg)}.pfp-stock span:not(.pfp-stock-dot){font:400 13px var(--fb);color:var(--muted)}
.pfp-stock-dot{flex:0 0 10px;height:10px;border-radius:50%;margin-top:6px;background:#2e9e6b}
.pfp-stock-low .pfp-stock-dot{background:#e0a020}.pfp-stock-out .pfp-stock-dot{background:#b9433a}
.pfp-stock a{display:block;margin-top:4px;font:600 13px var(--fb);color:var(--accent);text-decoration:none}.pfp-stock a:hover{text-decoration:underline}
