:root{--ink:#171b1d;--paper:#f4f4f1;--white:#fefefe;--burgundy:#8f1d3d;--burgundy-dark:#6f1730;--graphite:#616663;--line:#c8cbc7;--max:1152px}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"Montserrat","Helvetica Neue",sans-serif;font-size:16px;line-height:1.5}
img{display:block;max-width:100%}
a{color:inherit;text-underline-offset:4px}
button{font:inherit}
.shell{width:min(calc(100% - 64px),var(--max));margin-inline:auto}
.skip-link{position:fixed;z-index:1000;top:8px;left:8px;padding:12px 16px;background:var(--white);transform:translateY(-160%)}
.skip-link:focus{transform:none}
.eyebrow{margin:0 0 12px;color:var(--burgundy);font-size:.76rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
h1,h2,h3,p{margin-top:0}
h1,h2,h3{letter-spacing:-.045em;line-height:1.03}
h1{max-width:11ch;margin:0;font-size:clamp(3.25rem,6.4vw,5.75rem)}
h2{font-size:clamp(2rem,3.7vw,3.4rem)}
h3{font-size:1.38rem}
.catalog-hero{padding:72px 0 60px}
.hero-grid{display:grid;grid-template-columns:7fr 5fr;gap:48px;align-items:end}
.hero-grid>p{max-width:33rem;margin:0 0 8px;color:var(--graphite);font-size:1.08rem}
.catalog-shell{padding-bottom:88px}
.family-filters{position:sticky;z-index:1;top:0;display:flex;gap:8px;flex-wrap:wrap;padding:16px 0;background:var(--paper);border-block:1px solid var(--ink)}
.family-filter{min-height:44px;padding:9px 16px;border:1px solid var(--ink);border-radius:0;background:transparent;color:var(--ink);font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;cursor:pointer}
.family-filter[aria-pressed=true]{background:var(--ink);color:var(--white)}
.family-filter:focus-visible,.profile-card a:focus-visible,.swatch-option:focus-visible,.project-card a:focus-visible{outline:3px solid var(--burgundy);outline-offset:3px}
.profile-family{padding-top:58px}
.family-heading{display:grid;grid-template-columns:4fr 8fr;gap:24px;margin-bottom:28px;padding-bottom:20px;border-bottom:1px solid var(--line)}
.family-heading h2{margin:0}
.family-heading p{max-width:38rem;margin:4px 0 0;color:var(--graphite)}
.profile-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.profile-card{display:grid;min-width:0;grid-template-rows:210px auto 3.7rem 1fr auto auto;background:var(--white);border-top:4px solid var(--ink)}
.profile-card-media{display:block;overflow:hidden;background:#d8d9d4;text-decoration:none}
.profile-card-media img{width:100%;height:100%;object-fit:contain;background:#f5f1ea}
.profile-surface{position:relative;width:100%;height:100%;overflow:hidden;background:var(--surface,#293133)}
.profile-surface::before,.profile-surface::after{position:absolute;inset:-12%;content:"";transform:skewY(-8deg)}
.profile-surface[data-family="Metal Tiles"]::before{background:repeating-linear-gradient(0deg,transparent 0 31px,rgba(255,255,255,.2) 32px 34px),repeating-linear-gradient(90deg,transparent 0 66px,rgba(0,0,0,.18) 67px 70px)}
.profile-surface[data-family="Standing Seam"]::before{background:repeating-linear-gradient(90deg,rgba(255,255,255,.12) 0 3px,transparent 3px 74px,rgba(0,0,0,.28) 74px 78px)}
.profile-surface[data-family="Corrugated Roofing"]::before{background:repeating-linear-gradient(90deg,rgba(255,255,255,.18) 0 8px,transparent 8px 38px,rgba(0,0,0,.24) 38px 45px)}
.profile-surface::after{background:linear-gradient(115deg,rgba(255,255,255,.24),transparent 45%,rgba(0,0,0,.2));mix-blend-mode:soft-light}
.card-family{margin:18px 18px 8px;color:var(--burgundy);font-size:.68rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.profile-card h3{max-height:3.7rem;margin:0 18px 10px;overflow:hidden}
.profile-card h3 a{text-decoration:none}
.profile-card-description{margin:0 18px 20px;color:var(--graphite);font-size:.9rem}
.mini-swatches{display:grid;grid-template-columns:repeat(7,22px);align-items:center;gap:7px;margin:0 18px 14px}
.mini-swatch{display:block;width:22px;height:22px;border:1px solid #777;background:var(--swatch)}
.mini-swatch.pattern{background:repeating-linear-gradient(30deg,#5c3824 0 4px,#9a7653 4px 8px,#39251c 8px 11px)}
.profile-action{display:flex;align-items:center;justify-content:space-between;min-height:52px;padding:12px 18px;border-top:1px solid var(--ink);font-size:.72rem;font-weight:850;letter-spacing:.08em;text-decoration:none;text-transform:uppercase}
.profile-action::after{content:"→";color:var(--burgundy);font-size:1.1rem}
.availability-note{max-width:48rem;margin:56px 0 0;padding-top:18px;border-top:1px solid var(--line);color:var(--graphite);font-size:.83rem}
.empty-state{padding:80px 0;font-size:1.1rem}
.breadcrumb{margin-bottom:36px;font-size:.76rem;font-weight:750;text-transform:uppercase}
.detail-hero{padding:44px 0 72px}
.detail-hero-grid{display:grid;grid-template-columns:5fr 7fr;gap:48px;align-items:center}
.detail-copy h1{margin-bottom:22px}
.detail-copy>p{max-width:31rem;color:var(--graphite)}
.hero-profile-links{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.status-chip{display:inline-flex;min-height:44px;align-items:center;padding:10px 14px;border-left:4px solid var(--burgundy);background:var(--white);font-size:.75rem;font-weight:750}
.colour-jump{font-size:.75rem;font-weight:800;text-transform:uppercase;text-decoration-thickness:1px}
.detail-visual{height:460px;background:#d8d9d4}
.detail-visual img{width:100%;height:100%;object-fit:contain;background:#f5f1ea}
.facts-section{padding:64px 0;border-top:1px solid var(--line)}
.facts-layout{display:grid;grid-template-columns:4fr 8fr;gap:48px}
.facts-layout h2{margin-bottom:18px}
.facts-note{max-width:28rem;color:var(--graphite)}
.facts-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:0}
.fact{padding:16px 12px 16px 0;border-top:1px solid var(--line)}
.fact dt{font-size:.66rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.fact dd{margin:4px 0 0;font-weight:700}
.manufacturer-link{display:inline-flex;min-height:44px;align-items:center;margin-top:18px;font-size:.72rem;font-weight:850;text-transform:uppercase}
.colours-section{padding:72px 0;background:var(--ink);color:var(--white)}
.colours-intro{display:grid;grid-template-columns:5fr 7fr;gap:48px;margin-bottom:40px}
.colours-intro h2{margin:0}
.colours-intro p{max-width:36rem;color:#d3d7d3}
.colour-workspace{display:grid;grid-template-columns:5fr 7fr;gap:48px}
.colour-preview{position:sticky;top:24px;align-self:start}
.preview-stage{display:grid;height:430px;place-items:center;overflow:hidden;border:1px solid rgba(255,255,255,.25);background:#f5f1ea}
.profile-colour-canvas{display:block;width:100%;height:auto;max-height:100%}
.profile-colour-render{display:block;width:100%;height:100%;object-fit:contain;background:#f5f1ea}
.profile-colour-canvas[hidden],.profile-colour-render[hidden]{display:none}
.preview-stage .profile-surface{--surface:#293133}
.preview-stage.is-pattern .profile-surface{background:repeating-linear-gradient(30deg,#5c3824 0 18px,#9a7653 18px 34px,#39251c 34px 46px)}
.selected-value{margin:18px 0 6px;font-size:1.08rem;font-weight:800}
.screen-note,.manufacturer-boundary{margin:0;color:#c9cdca;font-size:.76rem}
.finish-group+ .finish-group{margin-top:34px}
.finish-group h3{margin-bottom:14px;font-size:1rem;letter-spacing:0}
.swatch-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.swatch-option{display:grid;min-height:56px;grid-template-columns:34px 1fr;gap:10px;align-items:center;padding:8px;border:1px solid rgba(255,255,255,.25);background:transparent;color:var(--white);text-align:left;cursor:pointer}
.swatch-option[aria-pressed=true]{border:2px solid var(--white);background:rgba(255,255,255,.08)}
.swatch-disc{width:32px;height:32px;border:1px solid rgba(255,255,255,.65);background:var(--swatch);border-radius:50%}
.swatch-disc.pattern{border-radius:0;background:repeating-linear-gradient(30deg,#5c3824 0 5px,#9a7653 5px 10px,#39251c 10px 14px)}
.swatch-label strong,.swatch-label span{display:block}
.swatch-label strong{font-size:.72rem}
.swatch-label span{color:#c9cdca;font-size:.66rem}
.projects-section,.related-section{padding:72px 0}
.projects-head,.related-head{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:28px}
.projects-head h2,.related-head h2{margin:0}
.projects-head p{max-width:30rem;margin:0;color:var(--graphite)}
.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.project-card{background:var(--white)}
.project-card img{width:100%;aspect-ratio:16/10;object-fit:cover}
.project-card h3{margin:16px}
.project-card a{text-decoration:none}
.project-card .project-link{display:flex;min-height:48px;align-items:center;padding:10px 16px;border-top:1px solid var(--ink);font-size:.72rem;font-weight:800;text-transform:uppercase}
.all-projects{display:inline-flex;min-height:48px;align-items:center;margin-top:24px;font-size:.72rem;font-weight:850;text-transform:uppercase}
.related-section{border-top:1px solid var(--line)}
.related-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.not-found{min-height:60vh;padding:88px 0}
.not-found p{max-width:34rem;color:var(--graphite)}
.not-found a{display:inline-flex;min-height:48px;align-items:center;font-weight:800;text-transform:uppercase}

@media(max-width:900px){.profile-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.detail-hero-grid,.colour-workspace{grid-template-columns:1fr}
.detail-visual{order:-1;height:380px}
.colour-preview{position:static}
.facts-layout,.colours-intro{grid-template-columns:1fr}
.colour-preview{display:grid;grid-template-columns:1fr}
.projects-head,.related-head{align-items:start;flex-direction:column}
.project-grid,.related-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:720px){.shell{width:min(calc(100% - 40px),var(--max))}
.catalog-hero{padding:48px 0 40px}
.hero-grid,.family-heading{grid-template-columns:1fr;gap:18px}
.hero-grid>p{font-size:1rem}
.catalog-shell{padding-bottom:64px}
.family-filters{top:0;flex-wrap:nowrap;overflow-x:auto;padding:12px 0}
.family-filter{flex:0 0 auto}
.profile-family{padding-top:42px}
.profile-grid{grid-template-columns:1fr}
.profile-card{grid-template-rows:200px auto auto auto auto auto}
.profile-card h3{max-height:none}
.detail-hero{padding:28px 0 52px}
.breadcrumb{margin-bottom:24px}
.detail-hero-grid{gap:28px}
.detail-visual{height:290px}
.facts-section,.colours-section,.projects-section,.related-section{padding:52px 0}
.facts-layout,.colours-intro,.colour-workspace{gap:28px}
.facts-grid{grid-template-columns:1fr}
.colour-preview{position:sticky;z-index:2;top:0;display:grid;grid-template-columns:minmax(118px,42%) 1fr;grid-template-areas:"preview selected" "preview note";gap:6px 14px;align-items:center;margin-inline:-4px;padding:10px 4px 12px;border-bottom:1px solid rgba(255,255,255,.28);background:var(--ink)}
.preview-stage{grid-area:preview;height:118px}
.selected-value{grid-area:selected;margin:0;font-size:.78rem;line-height:1.25}
.screen-note{grid-area:note;font-size:.64rem}
.manufacturer-boundary{display:none}
.swatch-grid{grid-template-columns:1fr}
.project-grid,.related-grid{grid-template-columns:1fr}
.projects-head,.related-head{margin-bottom:20px}
h1{font-size:clamp(2.8rem,13vw,4rem)}
h2{font-size:clamp(2rem,10vw,2.7rem)}
}
@media(max-width:360px){.shell{width:min(calc(100% - 32px),var(--max))}
.mini-swatches{gap:5px}
.swatch-option{grid-template-columns:32px 1fr}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}
}
