/* ===================================================
   BARGAIN WINDOWS LTD. — Product Pages Stylesheet
   =================================================== */

/* ── SHARED CTA STRIP ───────────────────────────── */
.bw-cta-strip { background: linear-gradient(135deg,#cb2c28 0%,#7e1a18 100%); padding: 48px 20px; text-align: center; position: relative; overflow: hidden; }
.bw-cta-overlay { position: absolute; inset: 0; opacity: 0.05; pointer-events: none; }
.bw-cta-inner { position: relative; z-index: 2; max-width: 700px; margin: 0 auto; }
.bw-cta-strip h2 { font-size: 26px; font-weight: 900; color: #fff; text-transform: uppercase; letter-spacing: 2px; line-height: 1.2; margin: 0 0 10px; }
.bw-cta-strip p { color: rgba(255,255,255,0.75); font-size: 14px; line-height: 1.6; margin: 0 0 24px; }
.bw-cta-btns { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; align-items: center; }
.bw-cta-btn-white { display: inline-block; background: #fff; color: #cb2c28; font-size: 13px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.5px; padding: 13px 32px; border-radius: 4px; text-decoration: none; box-shadow: 0 6px 20px rgba(0,0,0,0.2); }
.bw-cta-btn-white:hover { background: #f5f5f5; color: #cb2c28; text-decoration: none; }
.bw-cta-btn-outline { display: inline-flex; align-items: center; gap: 8px; color: #fff; font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: 1.5px; padding: 12px 28px; border: 2px solid rgba(255,255,255,0.5); border-radius: 4px; text-decoration: none; }
.bw-cta-btn-outline:hover { border-color: #fff; background: rgba(255,255,255,0.1); color: #fff; text-decoration: none; }

/* ── CASEMENT WINDOWS (cw-) ───────────────────────── */
.cw-hero { position:relative; height:88vh; min-height:520px; background:url(../img_external/gallery/Casement-Windows/a.jpg) center/cover no-repeat; display:flex; align-items:center; justify-content:center; text-align:center; overflow:hidden; }
.cw-hero::before { content:''; position:absolute; inset:0; background:linear-gradient(to bottom,rgba(0,0,0,.30) 0%,rgba(0,0,0,.72) 100%); }
.cw-hero-inner { position:relative; z-index:2; padding:20px; max-width:820px; margin:0 auto; }
.cw-hero-tag { display:inline-block; background:#cb2c28; color:#fff; font-size:11px; font-weight:700; letter-spacing:3px; text-transform:uppercase; padding:5px 18px; border-radius:2px; margin-bottom:24px; }
.cw-hero h1 { font-size:clamp(36px,6vw,72px); font-weight:900; color:#fff; margin:0 0 18px; line-height:1.05; text-shadow:0 2px 20px rgba(0,0,0,.4); letter-spacing:-1px; }
.cw-hero h1 span { color:#f87171; }
.cw-hero p { color:rgba(255,255,255,.8); font-size:18px; margin:0 auto 32px; max-width:560px; line-height:1.6; }
.cw-intro { padding:88px 0; background:#fff; }
.cw-intro-inner { max-width:1140px; margin:0 auto; padding:0 28px; }
.cw-intro-grid { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
@media(max-width:860px){ .cw-intro-grid{ grid-template-columns:1fr; gap:40px; } }
.cw-eyebrow { font-size:11px; font-weight:700; letter-spacing:3px; text-transform:uppercase; color:#cb2c28; margin-bottom:12px; display:block; }
.cw-intro-text h2 { font-size:clamp(26px,3.5vw,40px); font-weight:900; color:#1b1f24; margin:0 0 18px; line-height:1.15; }
.cw-intro-text p { color:#555; font-size:15px; line-height:1.75; margin:0 0 28px; }
.cw-list { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:1fr 1fr; gap:10px 20px; }
@media(max-width:480px){ .cw-list{ grid-template-columns:1fr; } }
.cw-list li { display:flex; align-items:center; gap:10px; font-size:13.5px; color:#333; font-weight:500; }
.cw-list li svg { flex-shrink:0; }
.cw-photo { position:relative; border-radius:12px; overflow:hidden; box-shadow:0 20px 60px rgba(0,0,0,.15); }
.cw-photo img { width:100%; height:420px; object-fit:cover; display:block; }
.cw-badge { position:absolute; bottom:24px; right:24px; background:#cb2c28; color:#fff; font-size:12px; font-weight:800; letter-spacing:1px; text-transform:uppercase; padding:10px 20px; border-radius:4px; box-shadow:0 4px 16px rgba(0,0,0,.3); }
.cw-gallery { padding:80px 0; background:#f4f6f8; }
.cw-gallery-inner { max-width:1140px; margin:0 auto; padding:0 28px; }
.cw-gallery-hd { text-align:center; margin-bottom:48px; }
.cw-gallery-hd h2 { font-size:clamp(24px,3.5vw,38px); font-weight:900; color:#1b1f24; margin:0 0 10px; }
.cw-gallery-hd p { color:#666; font-size:15px; margin:0; }
.cw-gallery-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
@media(max-width:700px){ .cw-gallery-grid{ grid-template-columns:repeat(2,1fr); } }
.cw-gi { position:relative; overflow:hidden; border-radius:8px; aspect-ratio:4/3; background:#ddd; }
.cw-gi img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s; }
.cw-gi:hover img { transform:scale(1.05); }
.cw-gover { position:absolute; inset:0; background:rgba(203,44,40,.65); display:flex; align-items:center; justify-content:center; opacity:0; transition:opacity .3s; }
.cw-gi:hover .cw-gover { opacity:1; }
.cw-features { padding:80px 0; background:#fff; }
.cw-features-inner { max-width:1140px; margin:0 auto; padding:0 28px; }
.cw-features-hd { text-align:center; margin-bottom:56px; }
.cw-features-hd h2 { font-size:clamp(24px,3.5vw,38px); font-weight:900; color:#1b1f24; margin:0 0 10px; }
.cw-features-hd p { color:#666; font-size:15px; margin:0; }
.cw-feat-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
@media(max-width:900px){ .cw-feat-grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:580px){ .cw-feat-grid{ grid-template-columns:1fr; } }
.cw-card { background:#f8f9fb; border-radius:10px; padding:32px 28px; border-top:3px solid #cb2c28; transition:transform .25s,box-shadow .25s; }
.cw-card:hover { transform:translateY(-4px); box-shadow:0 12px 32px rgba(0,0,0,.1); }
.cw-icon { width:52px; height:52px; background:#fef2f2; border-radius:10px; display:flex; align-items:center; justify-content:center; margin-bottom:18px; font-size:22px; color:#cb2c28; }
.cw-card h3 { font-size:16px; font-weight:800; color:#1b1f24; margin:0 0 8px; }
.cw-card p { font-size:13px; color:#666; line-height:1.6; margin:0; }

/* ── TILT & TURN WINDOWS (tt-) ─────────────────────── */
.tt-hero { position:relative; height:88vh; min-height:520px; background:url(../img_external/gallery/Tilt-and-Turn-Windows/a.jpg) center/cover no-repeat; display:flex; align-items:center; justify-content:center; text-align:center; overflow:hidden; }
.tt-hero::before { content:''; position:absolute; inset:0; background:linear-gradient(to bottom,rgba(0,0,0,.30) 0%,rgba(0,0,0,.72) 100%); }
.tt-hero-inner { position:relative; z-index:2; padding:20px; max-width:820px; margin:0 auto; }
.tt-hero-tag { display:inline-block; background:#cb2c28; color:#fff; font-size:11px; font-weight:700; letter-spacing:3px; text-transform:uppercase; padding:5px 18px; border-radius:2px; margin-bottom:24px; }
.tt-hero h1 { font-size:clamp(36px,6vw,72px); font-weight:900; color:#fff; margin:0 0 18px; line-height:1.05; text-shadow:0 2px 20px rgba(0,0,0,.4); letter-spacing:-1px; }
.tt-hero h1 span { color:#f87171; }
.tt-hero p { color:rgba(255,255,255,.8); font-size:18px; margin:0 auto 32px; max-width:560px; line-height:1.6; }
.tt-intro { padding:88px 0; background:#fff; }
.tt-intro-inner { max-width:1140px; margin:0 auto; padding:0 28px; }
.tt-intro-grid { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
@media(max-width:860px){ .tt-intro-grid{ grid-template-columns:1fr; gap:40px; } }
.tt-eyebrow { font-size:11px; font-weight:700; letter-spacing:3px; text-transform:uppercase; color:#cb2c28; margin-bottom:12px; display:block; }
.tt-intro-text h2 { font-size:clamp(26px,3.5vw,40px); font-weight:900; color:#1b1f24; margin:0 0 18px; line-height:1.15; }
.tt-intro-text p { color:#555; font-size:15px; line-height:1.75; margin:0 0 28px; }
.tt-list { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:1fr 1fr; gap:10px 20px; }
@media(max-width:480px){ .tt-list{ grid-template-columns:1fr; } }
.tt-list li { display:flex; align-items:center; gap:10px; font-size:13.5px; color:#333; font-weight:500; }
.tt-list li svg { flex-shrink:0; }
.tt-photo { position:relative; border-radius:12px; overflow:hidden; box-shadow:0 20px 60px rgba(0,0,0,.15); }
.tt-photo img { width:100%; height:420px; object-fit:cover; display:block; }
.tt-badge { position:absolute; bottom:24px; right:24px; background:#cb2c28; color:#fff; font-size:12px; font-weight:800; letter-spacing:1px; text-transform:uppercase; padding:10px 20px; border-radius:4px; box-shadow:0 4px 16px rgba(0,0,0,.3); }
.tt-gallery { padding:80px 0; background:#f4f6f8; }
.tt-gallery-inner { max-width:1140px; margin:0 auto; padding:0 28px; }
.tt-gallery-hd { text-align:center; margin-bottom:48px; }
.tt-gallery-hd h2 { font-size:clamp(24px,3.5vw,38px); font-weight:900; color:#1b1f24; margin:0 0 10px; }
.tt-gallery-hd p { color:#666; font-size:15px; margin:0; }
.tt-gallery-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
@media(max-width:700px){ .tt-gallery-grid{ grid-template-columns:repeat(2,1fr); } }
.tt-gi { position:relative; overflow:hidden; border-radius:8px; aspect-ratio:4/3; background:#ddd; }
.tt-gi img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s; }
.tt-gi:hover img { transform:scale(1.05); }
.tt-gover { position:absolute; inset:0; background:rgba(203,44,40,.65); display:flex; align-items:center; justify-content:center; opacity:0; transition:opacity .3s; }
.tt-gi:hover .tt-gover { opacity:1; }
.tt-features { padding:80px 0; background:#fff; }
.tt-features-inner { max-width:1140px; margin:0 auto; padding:0 28px; }
.tt-features-hd { text-align:center; margin-bottom:56px; }
.tt-features-hd h2 { font-size:clamp(24px,3.5vw,38px); font-weight:900; color:#1b1f24; margin:0 0 10px; }
.tt-features-hd p { color:#666; font-size:15px; margin:0; }
.tt-feat-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
@media(max-width:900px){ .tt-feat-grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:580px){ .tt-feat-grid{ grid-template-columns:1fr; } }
.tt-card { background:#f8f9fb; border-radius:10px; padding:32px 28px; border-top:3px solid #cb2c28; transition:transform .25s,box-shadow .25s; }
.tt-card:hover { transform:translateY(-4px); box-shadow:0 12px 32px rgba(0,0,0,.1); }
.tt-icon { width:52px; height:52px; background:#fef2f2; border-radius:10px; display:flex; align-items:center; justify-content:center; margin-bottom:18px; font-size:22px; color:#cb2c28; }
.tt-card h3 { font-size:16px; font-weight:800; color:#1b1f24; margin:0 0 8px; }
.tt-card p { font-size:13px; color:#666; line-height:1.6; margin:0; }

/* ── FULLY REVERSIBLE WINDOWS (fr-) ────────────────── */
.fr-hero { position:relative; height:88vh; min-height:520px; background:url(../img_external/gallery/Fully-Reversible/a.jpg) center/cover no-repeat; display:flex; align-items:center; justify-content:center; text-align:center; overflow:hidden; }
.fr-hero::before { content:''; position:absolute; inset:0; background:linear-gradient(to bottom,rgba(0,0,0,.30) 0%,rgba(0,0,0,.72) 100%); }
.fr-hero-inner { position:relative; z-index:2; padding:20px; max-width:820px; margin:0 auto; }
.fr-hero-tag { display:inline-block; background:#cb2c28; color:#fff; font-size:11px; font-weight:700; letter-spacing:3px; text-transform:uppercase; padding:5px 18px; border-radius:2px; margin-bottom:24px; }
.fr-hero h1 { font-size:clamp(36px,6vw,72px); font-weight:900; color:#fff; margin:0 0 18px; line-height:1.05; text-shadow:0 2px 20px rgba(0,0,0,.4); letter-spacing:-1px; }
.fr-hero h1 span { color:#f87171; }
.fr-hero p { color:rgba(255,255,255,.8); font-size:18px; margin:0 auto 32px; max-width:560px; line-height:1.6; }
.fr-intro { padding:88px 0; background:#fff; }
.fr-intro-inner { max-width:1140px; margin:0 auto; padding:0 28px; }
.fr-intro-grid { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
@media(max-width:860px){ .fr-intro-grid{ grid-template-columns:1fr; gap:40px; } }
.fr-eyebrow { font-size:11px; font-weight:700; letter-spacing:3px; text-transform:uppercase; color:#cb2c28; margin-bottom:12px; display:block; }
.fr-intro-text h2 { font-size:clamp(26px,3.5vw,40px); font-weight:900; color:#1b1f24; margin:0 0 18px; line-height:1.15; }
.fr-intro-text p { color:#555; font-size:15px; line-height:1.75; margin:0 0 28px; }
.fr-list { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:1fr 1fr; gap:10px 20px; }
@media(max-width:480px){ .fr-list{ grid-template-columns:1fr; } }
.fr-list li { display:flex; align-items:center; gap:10px; font-size:13.5px; color:#333; font-weight:500; }
.fr-list li svg { flex-shrink:0; }
.fr-photo { position:relative; border-radius:12px; overflow:hidden; box-shadow:0 20px 60px rgba(0,0,0,.15); }
.fr-photo img { width:100%; height:420px; object-fit:cover; display:block; }
.fr-badge { position:absolute; bottom:24px; right:24px; background:#cb2c28; color:#fff; font-size:12px; font-weight:800; letter-spacing:1px; text-transform:uppercase; padding:10px 20px; border-radius:4px; box-shadow:0 4px 16px rgba(0,0,0,.3); }
.fr-gallery { padding:80px 0; background:#f4f6f8; }
.fr-gallery-inner { max-width:1140px; margin:0 auto; padding:0 28px; }
.fr-gallery-hd { text-align:center; margin-bottom:48px; }
.fr-gallery-hd h2 { font-size:clamp(24px,3.5vw,38px); font-weight:900; color:#1b1f24; margin:0 0 10px; }
.fr-gallery-hd p { color:#666; font-size:15px; margin:0; }
.fr-gallery-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
@media(max-width:700px){ .fr-gallery-grid{ grid-template-columns:repeat(2,1fr); } }
.fr-gi { position:relative; overflow:hidden; border-radius:8px; aspect-ratio:4/3; background:#ddd; }
.fr-gi img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s; }
.fr-gi:hover img { transform:scale(1.05); }
.fr-gover { position:absolute; inset:0; background:rgba(203,44,40,.65); display:flex; align-items:center; justify-content:center; opacity:0; transition:opacity .3s; }
.fr-gi:hover .fr-gover { opacity:1; }
.fr-features { padding:80px 0; background:#fff; }
.fr-features-inner { max-width:1140px; margin:0 auto; padding:0 28px; }
.fr-features-hd { text-align:center; margin-bottom:56px; }
.fr-features-hd h2 { font-size:clamp(24px,3.5vw,38px); font-weight:900; color:#1b1f24; margin:0 0 10px; }
.fr-features-hd p { color:#666; font-size:15px; margin:0; }
.fr-feat-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
@media(max-width:900px){ .fr-feat-grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:580px){ .fr-feat-grid{ grid-template-columns:1fr; } }
.fr-card { background:#f8f9fb; border-radius:10px; padding:32px 28px; border-top:3px solid #cb2c28; transition:transform .25s,box-shadow .25s; }
.fr-card:hover { transform:translateY(-4px); box-shadow:0 12px 32px rgba(0,0,0,.1); }
.fr-icon { width:52px; height:52px; background:#fef2f2; border-radius:10px; display:flex; align-items:center; justify-content:center; margin-bottom:18px; font-size:22px; color:#cb2c28; }
.fr-card h3 { font-size:16px; font-weight:800; color:#1b1f24; margin:0 0 8px; }
.fr-card p { font-size:13px; color:#666; line-height:1.6; margin:0; }

/* ── PATIO DOORS (pt-) ──────────────────────────────── */
.pt-hero { position:relative; height:88vh; min-height:520px; background:url(../img_external/gallery/Patio-Doors/a.jpg) center/cover no-repeat; display:flex; align-items:center; justify-content:center; text-align:center; overflow:hidden; }
.pt-hero::before { content:''; position:absolute; inset:0; background:linear-gradient(to bottom,rgba(0,0,0,.30) 0%,rgba(0,0,0,.72) 100%); }
.pt-hero-inner { position:relative; z-index:2; padding:20px; max-width:820px; margin:0 auto; }
.pt-hero-tag { display:inline-block; background:#cb2c28; color:#fff; font-size:11px; font-weight:700; letter-spacing:3px; text-transform:uppercase; padding:5px 18px; border-radius:2px; margin-bottom:24px; }
.pt-hero h1 { font-size:clamp(36px,6vw,72px); font-weight:900; color:#fff; margin:0 0 18px; line-height:1.05; text-shadow:0 2px 20px rgba(0,0,0,.4); letter-spacing:-1px; }
.pt-hero h1 span { color:#f87171; }
.pt-hero p { color:rgba(255,255,255,.8); font-size:18px; margin:0 auto 32px; max-width:560px; line-height:1.6; }
.pt-intro { padding:88px 0; background:#fff; }
.pt-intro-inner { max-width:1140px; margin:0 auto; padding:0 28px; }
.pt-intro-grid { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
@media(max-width:860px){ .pt-intro-grid{ grid-template-columns:1fr; gap:40px; } }
.pt-eyebrow { font-size:11px; font-weight:700; letter-spacing:3px; text-transform:uppercase; color:#cb2c28; margin-bottom:12px; display:block; }
.pt-intro-text h2 { font-size:clamp(26px,3.5vw,40px); font-weight:900; color:#1b1f24; margin:0 0 18px; line-height:1.15; }
.pt-intro-text p { color:#555; font-size:15px; line-height:1.75; margin:0 0 28px; }
.pt-list { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:1fr 1fr; gap:10px 20px; }
@media(max-width:480px){ .pt-list{ grid-template-columns:1fr; } }
.pt-list li { display:flex; align-items:center; gap:10px; font-size:13.5px; color:#333; font-weight:500; }
.pt-list li svg { flex-shrink:0; }
.pt-photo { position:relative; border-radius:12px; overflow:hidden; box-shadow:0 20px 60px rgba(0,0,0,.15); }
.pt-photo img { width:100%; height:420px; object-fit:cover; display:block; }
.pt-badge { position:absolute; bottom:24px; right:24px; background:#cb2c28; color:#fff; font-size:12px; font-weight:800; letter-spacing:1px; text-transform:uppercase; padding:10px 20px; border-radius:4px; box-shadow:0 4px 16px rgba(0,0,0,.3); }
.pt-gallery { padding:80px 0; background:#f4f6f8; }
.pt-gallery-inner { max-width:1140px; margin:0 auto; padding:0 28px; }
.pt-gallery-hd { text-align:center; margin-bottom:48px; }
.pt-gallery-hd h2 { font-size:clamp(24px,3.5vw,38px); font-weight:900; color:#1b1f24; margin:0 0 10px; }
.pt-gallery-hd p { color:#666; font-size:15px; margin:0; }
.pt-gallery-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
@media(max-width:700px){ .pt-gallery-grid{ grid-template-columns:repeat(2,1fr); } }
.pt-gi { position:relative; overflow:hidden; border-radius:8px; aspect-ratio:4/3; background:#ddd; }
.pt-gi img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s; }
.pt-gi:hover img { transform:scale(1.05); }
.pt-gover { position:absolute; inset:0; background:rgba(203,44,40,.65); display:flex; align-items:center; justify-content:center; opacity:0; transition:opacity .3s; }
.pt-gi:hover .pt-gover { opacity:1; }
.pt-features { padding:80px 0; background:#fff; }
.pt-features-inner { max-width:1140px; margin:0 auto; padding:0 28px; }
.pt-features-hd { text-align:center; margin-bottom:56px; }
.pt-features-hd h2 { font-size:clamp(24px,3.5vw,38px); font-weight:900; color:#1b1f24; margin:0 0 10px; }
.pt-features-hd p { color:#666; font-size:15px; margin:0; }
.pt-feat-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
@media(max-width:900px){ .pt-feat-grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:580px){ .pt-feat-grid{ grid-template-columns:1fr; } }
.pt-card { background:#f8f9fb; border-radius:10px; padding:32px 28px; border-top:3px solid #cb2c28; transition:transform .25s,box-shadow .25s; }
.pt-card:hover { transform:translateY(-4px); box-shadow:0 12px 32px rgba(0,0,0,.1); }
.pt-icon { width:52px; height:52px; background:#fef2f2; border-radius:10px; display:flex; align-items:center; justify-content:center; margin-bottom:18px; font-size:22px; color:#cb2c28; }
.pt-card h3 { font-size:16px; font-weight:800; color:#1b1f24; margin:0 0 8px; }
.pt-card p { font-size:13px; color:#666; line-height:1.6; margin:0; }

/* ── FRENCH DOORS (fd-) ─────────────────────────────── */
.fd-hero { position:relative; height:88vh; min-height:520px; background:url(../img_external/gallery/French-Doors/a.jpg) center/cover no-repeat; display:flex; align-items:center; justify-content:center; text-align:center; overflow:hidden; }
.fd-hero::before { content:''; position:absolute; inset:0; background:linear-gradient(to bottom,rgba(0,0,0,.30) 0%,rgba(0,0,0,.72) 100%); }
.fd-hero-inner { position:relative; z-index:2; padding:20px; max-width:820px; margin:0 auto; }
.fd-hero-tag { display:inline-block; background:#cb2c28; color:#fff; font-size:11px; font-weight:700; letter-spacing:3px; text-transform:uppercase; padding:5px 18px; border-radius:2px; margin-bottom:24px; }
.fd-hero h1 { font-size:clamp(36px,6vw,72px); font-weight:900; color:#fff; margin:0 0 18px; line-height:1.05; text-shadow:0 2px 20px rgba(0,0,0,.4); letter-spacing:-1px; }
.fd-hero h1 span { color:#f87171; }
.fd-hero p { color:rgba(255,255,255,.8); font-size:18px; margin:0 auto 32px; max-width:560px; line-height:1.6; }
.fd-intro { padding:88px 0; background:#fff; }
.fd-intro-inner { max-width:1140px; margin:0 auto; padding:0 28px; }
.fd-intro-grid { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
@media(max-width:860px){ .fd-intro-grid{ grid-template-columns:1fr; gap:40px; } }
.fd-eyebrow { font-size:11px; font-weight:700; letter-spacing:3px; text-transform:uppercase; color:#cb2c28; margin-bottom:12px; display:block; }
.fd-intro-text h2 { font-size:clamp(26px,3.5vw,40px); font-weight:900; color:#1b1f24; margin:0 0 18px; line-height:1.15; }
.fd-intro-text p { color:#555; font-size:15px; line-height:1.75; margin:0 0 28px; }
.fd-list { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:1fr 1fr; gap:10px 20px; }
@media(max-width:480px){ .fd-list{ grid-template-columns:1fr; } }
.fd-list li { display:flex; align-items:center; gap:10px; font-size:13.5px; color:#333; font-weight:500; }
.fd-list li svg { flex-shrink:0; }
.fd-photo { position:relative; border-radius:12px; overflow:hidden; box-shadow:0 20px 60px rgba(0,0,0,.15); }
.fd-photo img { width:100%; height:420px; object-fit:cover; display:block; }
.fd-badge { position:absolute; bottom:24px; right:24px; background:#cb2c28; color:#fff; font-size:12px; font-weight:800; letter-spacing:1px; text-transform:uppercase; padding:10px 20px; border-radius:4px; box-shadow:0 4px 16px rgba(0,0,0,.3); }
.fd-gallery { padding:80px 0; background:#f4f6f8; }
.fd-gallery-inner { max-width:1140px; margin:0 auto; padding:0 28px; }
.fd-gallery-hd { text-align:center; margin-bottom:48px; }
.fd-gallery-hd h2 { font-size:clamp(24px,3.5vw,38px); font-weight:900; color:#1b1f24; margin:0 0 10px; }
.fd-gallery-hd p { color:#666; font-size:15px; margin:0; }
.fd-gallery-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
@media(max-width:700px){ .fd-gallery-grid{ grid-template-columns:repeat(2,1fr); } }
.fd-gi { position:relative; overflow:hidden; border-radius:8px; aspect-ratio:4/3; background:#ddd; }
.fd-gi img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s; }
.fd-gi:hover img { transform:scale(1.05); }
.fd-gover { position:absolute; inset:0; background:rgba(203,44,40,.65); display:flex; align-items:center; justify-content:center; opacity:0; transition:opacity .3s; }
.fd-gi:hover .fd-gover { opacity:1; }
.fd-features { padding:80px 0; background:#fff; }
.fd-features-inner { max-width:1140px; margin:0 auto; padding:0 28px; }
.fd-features-hd { text-align:center; margin-bottom:56px; }
.fd-features-hd h2 { font-size:clamp(24px,3.5vw,38px); font-weight:900; color:#1b1f24; margin:0 0 10px; }
.fd-features-hd p { color:#666; font-size:15px; margin:0; }
.fd-feat-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
@media(max-width:900px){ .fd-feat-grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:580px){ .fd-feat-grid{ grid-template-columns:1fr; } }
.fd-card { background:#f8f9fb; border-radius:10px; padding:32px 28px; border-top:3px solid #cb2c28; transition:transform .25s,box-shadow .25s; }
.fd-card:hover { transform:translateY(-4px); box-shadow:0 12px 32px rgba(0,0,0,.1); }
.fd-icon { width:52px; height:52px; background:#fef2f2; border-radius:10px; display:flex; align-items:center; justify-content:center; margin-bottom:18px; font-size:22px; color:#cb2c28; }
.fd-card h3 { font-size:16px; font-weight:800; color:#1b1f24; margin:0 0 8px; }
.fd-card p { font-size:13px; color:#666; line-height:1.6; margin:0; }

/* ── VERTICAL SLIDING SASH WINDOWS (vs-) ────────────── */
.vs-hero { position:relative; height:88vh; min-height:520px; background:url(../img_external/gallery/Vertical-Sliding-Sash-Windows/a.jpg) center/cover no-repeat; display:flex; align-items:center; justify-content:center; text-align:center; overflow:hidden; }
.vs-hero::before { content:''; position:absolute; inset:0; background:linear-gradient(to bottom,rgba(0,0,0,.30) 0%,rgba(0,0,0,.72) 100%); }
.vs-hero-inner { position:relative; z-index:2; padding:20px; max-width:820px; margin:0 auto; }
.vs-hero-tag { display:inline-block; background:#cb2c28; color:#fff; font-size:11px; font-weight:700; letter-spacing:3px; text-transform:uppercase; padding:5px 18px; border-radius:2px; margin-bottom:24px; }
.vs-hero h1 { font-size:clamp(36px,6vw,72px); font-weight:900; color:#fff; margin:0 0 18px; line-height:1.05; text-shadow:0 2px 20px rgba(0,0,0,.4); letter-spacing:-1px; }
.vs-hero h1 span { color:#f87171; }
.vs-hero p { color:rgba(255,255,255,.8); font-size:18px; margin:0 auto 32px; max-width:560px; line-height:1.6; }
.vs-intro { padding:88px 0; background:#fff; }
.vs-intro-inner { max-width:1140px; margin:0 auto; padding:0 28px; }
.vs-intro-grid { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
@media(max-width:860px){ .vs-intro-grid{ grid-template-columns:1fr; gap:40px; } }
.vs-eyebrow { font-size:11px; font-weight:700; letter-spacing:3px; text-transform:uppercase; color:#cb2c28; margin-bottom:12px; display:block; }
.vs-intro-text h2 { font-size:clamp(26px,3.5vw,40px); font-weight:900; color:#1b1f24; margin:0 0 18px; line-height:1.15; }
.vs-intro-text p { color:#555; font-size:15px; line-height:1.75; margin:0 0 28px; }
.vs-list { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:1fr 1fr; gap:10px 20px; }
@media(max-width:480px){ .vs-list{ grid-template-columns:1fr; } }
.vs-list li { display:flex; align-items:center; gap:10px; font-size:13.5px; color:#333; font-weight:500; }
.vs-list li svg { flex-shrink:0; }
.vs-photo { position:relative; border-radius:12px; overflow:hidden; box-shadow:0 20px 60px rgba(0,0,0,.15); }
.vs-photo img { width:100%; height:420px; object-fit:cover; display:block; }
.vs-badge { position:absolute; bottom:24px; right:24px; background:#cb2c28; color:#fff; font-size:12px; font-weight:800; letter-spacing:1px; text-transform:uppercase; padding:10px 20px; border-radius:4px; box-shadow:0 4px 16px rgba(0,0,0,.3); }
.vs-gallery { padding:80px 0; background:#f4f6f8; }
.vs-gallery-inner { max-width:1140px; margin:0 auto; padding:0 28px; }
.vs-gallery-hd { text-align:center; margin-bottom:48px; }
.vs-gallery-hd h2 { font-size:clamp(24px,3.5vw,38px); font-weight:900; color:#1b1f24; margin:0 0 10px; }
.vs-gallery-hd p { color:#666; font-size:15px; margin:0; }
.vs-gallery-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
@media(max-width:700px){ .vs-gallery-grid{ grid-template-columns:repeat(2,1fr); } }
.vs-gi { position:relative; overflow:hidden; border-radius:8px; aspect-ratio:4/3; background:#ddd; }
.vs-gi img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s; }
.vs-gi:hover img { transform:scale(1.05); }
.vs-gover { position:absolute; inset:0; background:rgba(203,44,40,.65); display:flex; align-items:center; justify-content:center; opacity:0; transition:opacity .3s; }
.vs-gi:hover .vs-gover { opacity:1; }
.vs-features { padding:80px 0; background:#fff; }
.vs-features-inner { max-width:1140px; margin:0 auto; padding:0 28px; }
.vs-features-hd { text-align:center; margin-bottom:56px; }
.vs-features-hd h2 { font-size:clamp(24px,3.5vw,38px); font-weight:900; color:#1b1f24; margin:0 0 10px; }
.vs-features-hd p { color:#666; font-size:15px; margin:0; }
.vs-feat-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
@media(max-width:900px){ .vs-feat-grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:580px){ .vs-feat-grid{ grid-template-columns:1fr; } }
.vs-card { background:#f8f9fb; border-radius:10px; padding:32px 28px; border-top:3px solid #cb2c28; transition:transform .25s,box-shadow .25s; }
.vs-card:hover { transform:translateY(-4px); box-shadow:0 12px 32px rgba(0,0,0,.1); }
.vs-icon { width:52px; height:52px; background:#fef2f2; border-radius:10px; display:flex; align-items:center; justify-content:center; margin-bottom:18px; font-size:22px; color:#cb2c28; }
.vs-card h3 { font-size:16px; font-weight:800; color:#1b1f24; margin:0 0 8px; }
.vs-card p { font-size:13px; color:#666; line-height:1.6; margin:0; }

/* ── ENERGY RATED WINDOWS (er-) ─────────────────────── */
.er-hero { position:relative; height:88vh; min-height:520px; background:url(../img_external/gallery/Energy-Rated-Windows/a.jpg) center/cover no-repeat; display:flex; align-items:center; justify-content:center; text-align:center; overflow:hidden; }
.er-hero::before { content:''; position:absolute; inset:0; background:linear-gradient(to bottom,rgba(0,0,0,.30) 0%,rgba(0,0,0,.72) 100%); }
.er-hero-inner { position:relative; z-index:2; padding:20px; max-width:820px; margin:0 auto; }
.er-hero-tag { display:inline-block; background:#cb2c28; color:#fff; font-size:11px; font-weight:700; letter-spacing:3px; text-transform:uppercase; padding:5px 18px; border-radius:2px; margin-bottom:24px; }
.er-hero h1 { font-size:clamp(36px,6vw,72px); font-weight:900; color:#fff; margin:0 0 18px; line-height:1.05; text-shadow:0 2px 20px rgba(0,0,0,.4); letter-spacing:-1px; }
.er-hero h1 span { color:#f87171; }
.er-hero p { color:rgba(255,255,255,.8); font-size:18px; margin:0 auto 32px; max-width:560px; line-height:1.6; }
.er-intro { padding:88px 0; background:#fff; }
.er-intro-inner { max-width:1140px; margin:0 auto; padding:0 28px; }
.er-intro-grid { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
@media(max-width:860px){ .er-intro-grid{ grid-template-columns:1fr; gap:40px; } }
.er-eyebrow { font-size:11px; font-weight:700; letter-spacing:3px; text-transform:uppercase; color:#cb2c28; margin-bottom:12px; display:block; }
.er-intro-text h2 { font-size:clamp(26px,3.5vw,40px); font-weight:900; color:#1b1f24; margin:0 0 18px; line-height:1.15; }
.er-intro-text p { color:#555; font-size:15px; line-height:1.75; margin:0 0 28px; }
.er-list { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:1fr 1fr; gap:10px 20px; }
@media(max-width:480px){ .er-list{ grid-template-columns:1fr; } }
.er-list li { display:flex; align-items:center; gap:10px; font-size:13.5px; color:#333; font-weight:500; }
.er-list li svg { flex-shrink:0; }
.er-photo { position:relative; border-radius:12px; overflow:hidden; box-shadow:0 20px 60px rgba(0,0,0,.15); }
.er-photo img { width:100%; height:420px; object-fit:cover; display:block; }
.er-badge { position:absolute; bottom:24px; right:24px; background:#cb2c28; color:#fff; font-size:12px; font-weight:800; letter-spacing:1px; text-transform:uppercase; padding:10px 20px; border-radius:4px; box-shadow:0 4px 16px rgba(0,0,0,.3); }
.er-features { padding:80px 0; background:#f4f6f8; }
.er-features-inner { max-width:1140px; margin:0 auto; padding:0 28px; }
.er-features-hd { text-align:center; margin-bottom:56px; }
.er-features-hd h2 { font-size:clamp(24px,3.5vw,38px); font-weight:900; color:#1b1f24; margin:0 0 10px; }
.er-features-hd p { color:#666; font-size:15px; margin:0; }
.er-feat-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
@media(max-width:900px){ .er-feat-grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:580px){ .er-feat-grid{ grid-template-columns:1fr; } }
.er-card { background:#fff; border-radius:10px; padding:32px 28px; border-top:3px solid #cb2c28; transition:transform .25s,box-shadow .25s; }
.er-card:hover { transform:translateY(-4px); box-shadow:0 12px 32px rgba(0,0,0,.1); }
.er-icon { width:52px; height:52px; background:#fef2f2; border-radius:10px; display:flex; align-items:center; justify-content:center; margin-bottom:18px; font-size:22px; color:#cb2c28; }
.er-card h3 { font-size:16px; font-weight:800; color:#1b1f24; margin:0 0 8px; }
.er-card p { font-size:13px; color:#666; line-height:1.6; margin:0; }

/* ── GEORGIAN WINDOWS (gw-) ─────────────────────────── */
.gw-hero { position:relative; height:88vh; min-height:520px; background:url(../img_external/gallery/Georgian-Windows/a.jpg) center/cover no-repeat; display:flex; align-items:center; justify-content:center; text-align:center; overflow:hidden; }
.gw-hero::before { content:''; position:absolute; inset:0; background:linear-gradient(to bottom,rgba(0,0,0,.30) 0%,rgba(0,0,0,.72) 100%); }
.gw-hero-inner { position:relative; z-index:2; padding:20px; max-width:820px; margin:0 auto; }
.gw-hero-tag { display:inline-block; background:#cb2c28; color:#fff; font-size:11px; font-weight:700; letter-spacing:3px; text-transform:uppercase; padding:5px 18px; border-radius:2px; margin-bottom:24px; }
.gw-hero h1 { font-size:clamp(36px,6vw,72px); font-weight:900; color:#fff; margin:0 0 18px; line-height:1.05; text-shadow:0 2px 20px rgba(0,0,0,.4); letter-spacing:-1px; }
.gw-hero h1 span { color:#f87171; }
.gw-hero p { color:rgba(255,255,255,.8); font-size:18px; margin:0 auto 32px; max-width:560px; line-height:1.6; }
.gw-intro { padding:88px 0; background:#fff; }
.gw-intro-inner { max-width:1140px; margin:0 auto; padding:0 28px; }
.gw-intro-grid { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
@media(max-width:860px){ .gw-intro-grid{ grid-template-columns:1fr; gap:40px; } }
.gw-eyebrow { font-size:11px; font-weight:700; letter-spacing:3px; text-transform:uppercase; color:#cb2c28; margin-bottom:12px; display:block; }
.gw-intro-text h2 { font-size:clamp(26px,3.5vw,40px); font-weight:900; color:#1b1f24; margin:0 0 18px; line-height:1.15; }
.gw-intro-text p { color:#555; font-size:15px; line-height:1.75; margin:0 0 28px; }
.gw-list { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:1fr 1fr; gap:10px 20px; }
@media(max-width:480px){ .gw-list{ grid-template-columns:1fr; } }
.gw-list li { display:flex; align-items:center; gap:10px; font-size:13.5px; color:#333; font-weight:500; }
.gw-list li svg { flex-shrink:0; }
.gw-photo { position:relative; border-radius:12px; overflow:hidden; box-shadow:0 20px 60px rgba(0,0,0,.15); }
.gw-photo img { width:100%; height:420px; object-fit:cover; display:block; }
.gw-badge { position:absolute; bottom:24px; right:24px; background:#cb2c28; color:#fff; font-size:12px; font-weight:800; letter-spacing:1px; text-transform:uppercase; padding:10px 20px; border-radius:4px; box-shadow:0 4px 16px rgba(0,0,0,.3); }
.gw-gallery { padding:80px 0; background:#f4f6f8; }
.gw-gallery-inner { max-width:1140px; margin:0 auto; padding:0 28px; }
.gw-gallery-hd { text-align:center; margin-bottom:48px; }
.gw-gallery-hd h2 { font-size:clamp(24px,3.5vw,38px); font-weight:900; color:#1b1f24; margin:0 0 10px; }
.gw-gallery-hd p { color:#666; font-size:15px; margin:0; }
.gw-gallery-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
@media(max-width:700px){ .gw-gallery-grid{ grid-template-columns:repeat(2,1fr); } }
.gw-gi { position:relative; overflow:hidden; border-radius:8px; aspect-ratio:4/3; background:#ddd; }
.gw-gi img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s; }
.gw-gi:hover img { transform:scale(1.05); }
.gw-gover { position:absolute; inset:0; background:rgba(203,44,40,.65); display:flex; align-items:center; justify-content:center; opacity:0; transition:opacity .3s; }
.gw-gi:hover .gw-gover { opacity:1; }
.gw-features { padding:80px 0; background:#fff; }
.gw-features-inner { max-width:1140px; margin:0 auto; padding:0 28px; }
.gw-features-hd { text-align:center; margin-bottom:56px; }
.gw-features-hd h2 { font-size:clamp(24px,3.5vw,38px); font-weight:900; color:#1b1f24; margin:0 0 10px; }
.gw-features-hd p { color:#666; font-size:15px; margin:0; }
.gw-feat-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
@media(max-width:900px){ .gw-feat-grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:580px){ .gw-feat-grid{ grid-template-columns:1fr; } }
.gw-card { background:#f8f9fb; border-radius:10px; padding:32px 28px; border-top:3px solid #cb2c28; transition:transform .25s,box-shadow .25s; }
.gw-card:hover { transform:translateY(-4px); box-shadow:0 12px 32px rgba(0,0,0,.1); }
.gw-icon { width:52px; height:52px; background:#fef2f2; border-radius:10px; display:flex; align-items:center; justify-content:center; margin-bottom:18px; font-size:22px; color:#cb2c28; }
.gw-card h3 { font-size:16px; font-weight:800; color:#1b1f24; margin:0 0 8px; }
.gw-card p { font-size:13px; color:#666; line-height:1.6; margin:0; }

/* ── TRIPLE GLAZING (tg-) ───────────────────────────── */
.tg-hero { position:relative; height:88vh; min-height:520px; background:url(../img_external/gallery/Triple-Glazing/a.jpg) center/cover no-repeat; display:flex; align-items:center; justify-content:center; text-align:center; overflow:hidden; }
.tg-hero::before { content:''; position:absolute; inset:0; background:linear-gradient(to bottom,rgba(0,0,0,.30) 0%,rgba(0,0,0,.72) 100%); }
.tg-hero-inner { position:relative; z-index:2; padding:20px; max-width:820px; margin:0 auto; }
.tg-hero-tag { display:inline-block; background:#cb2c28; color:#fff; font-size:11px; font-weight:700; letter-spacing:3px; text-transform:uppercase; padding:5px 18px; border-radius:2px; margin-bottom:24px; }
.tg-hero h1 { font-size:clamp(36px,6vw,72px); font-weight:900; color:#fff; margin:0 0 18px; line-height:1.05; text-shadow:0 2px 20px rgba(0,0,0,.4); letter-spacing:-1px; }
.tg-hero h1 span { color:#f87171; }
.tg-hero p { color:rgba(255,255,255,.8); font-size:18px; margin:0 auto 32px; max-width:560px; line-height:1.6; }
.tg-intro { padding:88px 0; background:#fff; }
.tg-intro-inner { max-width:1140px; margin:0 auto; padding:0 28px; }
.tg-intro-grid { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
@media(max-width:860px){ .tg-intro-grid{ grid-template-columns:1fr; gap:40px; } }
.tg-eyebrow { font-size:11px; font-weight:700; letter-spacing:3px; text-transform:uppercase; color:#cb2c28; margin-bottom:12px; display:block; }
.tg-intro-text h2 { font-size:clamp(26px,3.5vw,40px); font-weight:900; color:#1b1f24; margin:0 0 18px; line-height:1.15; }
.tg-intro-text p { color:#555; font-size:15px; line-height:1.75; margin:0 0 28px; }
.tg-list { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:1fr 1fr; gap:10px 20px; }
@media(max-width:480px){ .tg-list{ grid-template-columns:1fr; } }
.tg-list li { display:flex; align-items:center; gap:10px; font-size:13.5px; color:#333; font-weight:500; }
.tg-list li svg { flex-shrink:0; }
.tg-photo { position:relative; border-radius:12px; overflow:hidden; box-shadow:0 20px 60px rgba(0,0,0,.15); }
.tg-photo img { width:100%; height:420px; object-fit:cover; display:block; }
.tg-badge { position:absolute; bottom:24px; right:24px; background:#cb2c28; color:#fff; font-size:12px; font-weight:800; letter-spacing:1px; text-transform:uppercase; padding:10px 20px; border-radius:4px; box-shadow:0 4px 16px rgba(0,0,0,.3); }
.tg-pros-cons { padding:72px 0; background:#f4f6f8; }
.tg-pros-cons-inner { max-width:1140px; margin:0 auto; padding:0 28px; }
.tg-pros-cons-hd { text-align:center; margin-bottom:48px; }
.tg-pros-cons-hd h2 { font-size:clamp(24px,3.5vw,38px); font-weight:900; color:#1b1f24; margin:0 0 10px; }
.tg-pros-cons-hd p { color:#666; font-size:15px; margin:0; }
.tg-pc-grid { display:grid; grid-template-columns:1fr 1fr; gap:32px; }
@media(max-width:700px){ .tg-pc-grid{ grid-template-columns:1fr; } }
.tg-pc-box { background:#fff; border-radius:10px; padding:36px 32px; box-shadow:0 4px 20px rgba(0,0,0,.06); }
.tg-pc-box h3 { font-size:18px; font-weight:800; color:#1b1f24; margin:0 0 20px; padding-bottom:12px; border-bottom:2px solid #f0f0f0; }
.tg-pc-list { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:12px; }
.tg-pc-list li { display:flex; align-items:flex-start; gap:12px; font-size:14px; color:#444; line-height:1.5; }
.tg-pc-dot { width:8px; height:8px; border-radius:50%; background:#cb2c28; flex-shrink:0; margin-top:6px; }
.tg-brochure { text-align:center; margin-top:40px; }
.tg-brochure a { display:inline-block; background:#1b1f24; color:#fff; font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:1.5px; padding:13px 32px; border-radius:4px; text-decoration:none; transition:background .2s; }
.tg-brochure a:hover { background:#cb2c28; }
.tg-features { padding:80px 0; background:#fff; }
.tg-features-inner { max-width:1140px; margin:0 auto; padding:0 28px; }
.tg-features-hd { text-align:center; margin-bottom:56px; }
.tg-features-hd h2 { font-size:clamp(24px,3.5vw,38px); font-weight:900; color:#1b1f24; margin:0 0 10px; }
.tg-features-hd p { color:#666; font-size:15px; margin:0; }
.tg-feat-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
@media(max-width:900px){ .tg-feat-grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:580px){ .tg-feat-grid{ grid-template-columns:1fr; } }
.tg-card { background:#f8f9fb; border-radius:10px; padding:32px 28px; border-top:3px solid #cb2c28; transition:transform .25s,box-shadow .25s; }
.tg-card:hover { transform:translateY(-4px); box-shadow:0 12px 32px rgba(0,0,0,.1); }
.tg-icon { width:52px; height:52px; background:#fef2f2; border-radius:10px; display:flex; align-items:center; justify-content:center; margin-bottom:18px; font-size:22px; color:#cb2c28; }
.tg-card h3 { font-size:16px; font-weight:800; color:#1b1f24; margin:0 0 8px; }
.tg-card p { font-size:13px; color:#666; line-height:1.6; margin:0; }

/* ── PORCHES (pc-) ──────────────────────────────────── */
.pc-hero { position:relative; height:88vh; min-height:520px; background:url(../img_external/gallery/Porch/a.jpg) center/cover no-repeat; display:flex; align-items:center; justify-content:center; text-align:center; overflow:hidden; }
.pc-hero::before { content:''; position:absolute; inset:0; background:linear-gradient(to bottom,rgba(0,0,0,.30) 0%,rgba(0,0,0,.72) 100%); }
.pc-hero-inner { position:relative; z-index:2; padding:20px; max-width:820px; margin:0 auto; }
.pc-hero-tag { display:inline-block; background:#cb2c28; color:#fff; font-size:11px; font-weight:700; letter-spacing:3px; text-transform:uppercase; padding:5px 18px; border-radius:2px; margin-bottom:24px; }
.pc-hero h1 { font-size:clamp(36px,6vw,72px); font-weight:900; color:#fff; margin:0 0 18px; line-height:1.05; text-shadow:0 2px 20px rgba(0,0,0,.4); letter-spacing:-1px; }
.pc-hero h1 span { color:#f87171; }
.pc-hero p { color:rgba(255,255,255,.8); font-size:18px; margin:0 auto 32px; max-width:560px; line-height:1.6; }
.pc-intro { padding:88px 0; background:#fff; }
.pc-intro-inner { max-width:1140px; margin:0 auto; padding:0 28px; }
.pc-intro-grid { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
@media(max-width:860px){ .pc-intro-grid{ grid-template-columns:1fr; gap:40px; } }
.pc-eyebrow { font-size:11px; font-weight:700; letter-spacing:3px; text-transform:uppercase; color:#cb2c28; margin-bottom:12px; display:block; }
.pc-intro-text h2 { font-size:clamp(26px,3.5vw,40px); font-weight:900; color:#1b1f24; margin:0 0 18px; line-height:1.15; }
.pc-intro-text p { color:#555; font-size:15px; line-height:1.75; margin:0 0 28px; }
.pc-list { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:1fr 1fr; gap:10px 20px; }
@media(max-width:480px){ .pc-list{ grid-template-columns:1fr; } }
.pc-list li { display:flex; align-items:center; gap:10px; font-size:13.5px; color:#333; font-weight:500; }
.pc-list li svg { flex-shrink:0; }
.pc-photo { position:relative; border-radius:12px; overflow:hidden; box-shadow:0 20px 60px rgba(0,0,0,.15); }
.pc-photo img { width:100%; height:420px; object-fit:cover; display:block; }
.pc-badge { position:absolute; bottom:24px; right:24px; background:#cb2c28; color:#fff; font-size:12px; font-weight:800; letter-spacing:1px; text-transform:uppercase; padding:10px 20px; border-radius:4px; box-shadow:0 4px 16px rgba(0,0,0,.3); }
.pc-gallery { padding:80px 0; background:#f4f6f8; }
.pc-gallery-inner { max-width:1140px; margin:0 auto; padding:0 28px; }
.pc-gallery-hd { text-align:center; margin-bottom:48px; }
.pc-gallery-hd h2 { font-size:clamp(24px,3.5vw,38px); font-weight:900; color:#1b1f24; margin:0 0 10px; }
.pc-gallery-hd p { color:#666; font-size:15px; margin:0; }
.pc-gallery-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
@media(max-width:700px){ .pc-gallery-grid{ grid-template-columns:repeat(2,1fr); } }
.pc-gi { position:relative; overflow:hidden; border-radius:8px; aspect-ratio:4/3; background:#ddd; }
.pc-gi img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s; }
.pc-gi:hover img { transform:scale(1.05); }
.pc-gover { position:absolute; inset:0; background:rgba(203,44,40,.65); display:flex; align-items:center; justify-content:center; opacity:0; transition:opacity .3s; }
.pc-gi:hover .pc-gover { opacity:1; }
.pc-features { padding:80px 0; background:#fff; }
.pc-features-inner { max-width:1140px; margin:0 auto; padding:0 28px; }
.pc-features-hd { text-align:center; margin-bottom:56px; }
.pc-features-hd h2 { font-size:clamp(24px,3.5vw,38px); font-weight:900; color:#1b1f24; margin:0 0 10px; }
.pc-features-hd p { color:#666; font-size:15px; margin:0; }
.pc-feat-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
@media(max-width:900px){ .pc-feat-grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:580px){ .pc-feat-grid{ grid-template-columns:1fr; } }
.pc-card { background:#f8f9fb; border-radius:10px; padding:32px 28px; border-top:3px solid #cb2c28; transition:transform .25s,box-shadow .25s; }
.pc-card:hover { transform:translateY(-4px); box-shadow:0 12px 32px rgba(0,0,0,.1); }
.pc-icon { width:52px; height:52px; background:#fef2f2; border-radius:10px; display:flex; align-items:center; justify-content:center; margin-bottom:18px; font-size:22px; color:#cb2c28; }
.pc-card h3 { font-size:16px; font-weight:800; color:#1b1f24; margin:0 0 8px; }
.pc-card p { font-size:13px; color:#666; line-height:1.6; margin:0; }

/* ── CONSERVATORIES (cv-) ───────────────────────────── */
.cv-hero { position:relative; height:88vh; min-height:520px; background:url(../img_external/gallery/Conservatories/a.jpg) center/cover no-repeat; display:flex; align-items:center; justify-content:center; text-align:center; overflow:hidden; }
.cv-hero::before { content:''; position:absolute; inset:0; background:linear-gradient(to bottom,rgba(0,0,0,.30) 0%,rgba(0,0,0,.72) 100%); }
.cv-hero-inner { position:relative; z-index:2; padding:20px; max-width:820px; margin:0 auto; }
.cv-hero-tag { display:inline-block; background:#cb2c28; color:#fff; font-size:11px; font-weight:700; letter-spacing:3px; text-transform:uppercase; padding:5px 18px; border-radius:2px; margin-bottom:24px; }
.cv-hero h1 { font-size:clamp(36px,6vw,72px); font-weight:900; color:#fff; margin:0 0 18px; line-height:1.05; text-shadow:0 2px 20px rgba(0,0,0,.4); letter-spacing:-1px; }
.cv-hero h1 span { color:#f87171; }
.cv-hero p { color:rgba(255,255,255,.8); font-size:18px; margin:0 auto 32px; max-width:560px; line-height:1.6; }
.cv-intro { padding:88px 0; background:#fff; }
.cv-intro-inner { max-width:1140px; margin:0 auto; padding:0 28px; }
.cv-intro-grid { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
@media(max-width:860px){ .cv-intro-grid{ grid-template-columns:1fr; gap:40px; } }
.cv-eyebrow { font-size:11px; font-weight:700; letter-spacing:3px; text-transform:uppercase; color:#cb2c28; margin-bottom:12px; display:block; }
.cv-intro-text h2 { font-size:clamp(26px,3.5vw,40px); font-weight:900; color:#1b1f24; margin:0 0 18px; line-height:1.15; }
.cv-intro-text p { color:#555; font-size:15px; line-height:1.75; margin:0 0 28px; }
.cv-list { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:1fr 1fr; gap:10px 20px; }
@media(max-width:480px){ .cv-list{ grid-template-columns:1fr; } }
.cv-list li { display:flex; align-items:center; gap:10px; font-size:13.5px; color:#333; font-weight:500; }
.cv-list li svg { flex-shrink:0; }
.cv-photo { position:relative; border-radius:12px; overflow:hidden; box-shadow:0 20px 60px rgba(0,0,0,.15); }
.cv-photo img { width:100%; height:420px; object-fit:cover; display:block; }
.cv-badge { position:absolute; bottom:24px; right:24px; background:#cb2c28; color:#fff; font-size:12px; font-weight:800; letter-spacing:1px; text-transform:uppercase; padding:10px 20px; border-radius:4px; box-shadow:0 4px 16px rgba(0,0,0,.3); }
.cv-gallery { padding:80px 0; background:#f4f6f8; }
.cv-gallery-inner { max-width:1140px; margin:0 auto; padding:0 28px; }
.cv-gallery-hd { text-align:center; margin-bottom:48px; }
.cv-gallery-hd h2 { font-size:clamp(24px,3.5vw,38px); font-weight:900; color:#1b1f24; margin:0 0 10px; }
.cv-gallery-hd p { color:#666; font-size:15px; margin:0; }
.cv-gallery-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
@media(max-width:700px){ .cv-gallery-grid{ grid-template-columns:repeat(2,1fr); } }
.cv-gi { position:relative; overflow:hidden; border-radius:8px; aspect-ratio:4/3; background:#ddd; }
.cv-gi img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s; }
.cv-gi:hover img { transform:scale(1.05); }
.cv-gover { position:absolute; inset:0; background:rgba(203,44,40,.65); display:flex; align-items:center; justify-content:center; opacity:0; transition:opacity .3s; }
.cv-gi:hover .cv-gover { opacity:1; }
.cv-features { padding:80px 0; background:#fff; }
.cv-features-inner { max-width:1140px; margin:0 auto; padding:0 28px; }
.cv-features-hd { text-align:center; margin-bottom:56px; }
.cv-features-hd h2 { font-size:clamp(24px,3.5vw,38px); font-weight:900; color:#1b1f24; margin:0 0 10px; }
.cv-features-hd p { color:#666; font-size:15px; margin:0; }
.cv-feat-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
@media(max-width:900px){ .cv-feat-grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:580px){ .cv-feat-grid{ grid-template-columns:1fr; } }
.cv-card { background:#f8f9fb; border-radius:10px; padding:32px 28px; border-top:3px solid #cb2c28; transition:transform .25s,box-shadow .25s; }
.cv-card:hover { transform:translateY(-4px); box-shadow:0 12px 32px rgba(0,0,0,.1); }
.cv-icon { width:52px; height:52px; background:#fef2f2; border-radius:10px; display:flex; align-items:center; justify-content:center; margin-bottom:18px; font-size:22px; color:#cb2c28; }
.cv-card h3 { font-size:16px; font-weight:800; color:#1b1f24; margin:0 0 8px; }
.cv-card p { font-size:13px; color:#666; line-height:1.6; margin:0; }

/* ── UPVC COLOURED WINDOWS (ucw-) ───────────────────── */
.ucw-hero { position:relative; height:88vh; min-height:480px; background:url(../img_external/gallery/UPVC-Coloured-Windows/a.jpg) center/cover no-repeat; display:flex; align-items:center; justify-content:center; text-align:center; overflow:hidden; }
.ucw-hero::before { content:''; position:absolute; inset:0; background:linear-gradient(to bottom,rgba(0,0,0,0.3) 0%,rgba(0,0,0,0.65) 100%); }
.ucw-hero-inner { position:relative; z-index:2; padding:20px; }
.ucw-hero-tag { display:inline-block; background:#cb2c28; color:#fff; font-size:11px; font-weight:700; letter-spacing:3px; text-transform:uppercase; padding:5px 16px; border-radius:2px; margin-bottom:22px; }
.ucw-hero h1 { font-size:clamp(34px,6vw,70px); font-weight:900; color:#fff; line-height:1.08; margin:0 0 18px; text-shadow:0 2px 16px rgba(0,0,0,0.5); letter-spacing:-1px; }
.ucw-hero h1 span { color:#f87171; }
.ucw-hero-sub { font-size:18px; color:rgba(255,255,255,0.8); max-width:560px; margin:0 auto 34px; line-height:1.6; }
.ucw-intro { padding:80px 0; background:#fff; }
.ucw-container { max-width:1160px; margin:0 auto; padding:0 32px; }
.ucw-intro-grid { display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; }
@media(max-width:860px){ .ucw-intro-grid{ grid-template-columns:1fr; gap:36px; } }
.ucw-eyebrow { display:inline-block; font-size:11px; font-weight:700; letter-spacing:3px; text-transform:uppercase; color:#cb2c28; margin-bottom:12px; }
.ucw-intro-text h2 { font-size:36px; font-weight:900; color:#1b1f24; line-height:1.15; margin:0 0 18px; letter-spacing:-0.5px; }
.ucw-intro-text h2 span { color:#cb2c28; }
.ucw-intro-text p { color:#555; font-size:16px; line-height:1.75; margin:0 0 16px; }
.ucw-checklist { list-style:none; padding:0; margin:22px 0 0; display:grid; grid-template-columns:1fr 1fr; gap:10px 20px; }
.ucw-checklist li { display:flex; align-items:center; gap:8px; color:#333; font-size:14px; font-weight:600; }
.ucw-checklist li::before { content:''; width:18px; height:18px; border-radius:50%; background:#cb2c28; flex-shrink:0; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpolyline points='2,6 5,9 10,3' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-size:12px; background-position:center; background-repeat:no-repeat; }
.ucw-intro-photo { position:relative; }
.ucw-intro-photo img { width:100%; border-radius:8px; display:block; box-shadow:0 20px 60px rgba(0,0,0,0.15); }
.ucw-intro-badge { position:absolute; bottom:-20px; left:-20px; background:#cb2c28; color:#fff; border-radius:8px; padding:16px 22px; text-align:center; box-shadow:0 8px 24px rgba(203,44,40,0.35); }
.ucw-intro-badge strong { display:block; font-size:28px; font-weight:900; line-height:1; }
.ucw-intro-badge span { font-size:12px; font-weight:600; letter-spacing:1px; text-transform:uppercase; opacity:0.9; }
.ucw-colours { padding:80px 0; background:#f4f6f8; }
.ucw-section-hd { text-align:center; margin-bottom:48px; }
.ucw-section-hd h2 { font-size:32px; font-weight:900; color:#1b1f24; margin:0 0 10px; letter-spacing:-0.5px; }
.ucw-section-hd p { color:#777; font-size:15px; margin:0 auto; max-width:500px; line-height:1.6; }
.ucw-rule { width:40px; height:3px; background:#cb2c28; margin:12px auto 16px; }
.ucw-palette-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:20px; }
@media(max-width:860px){ .ucw-palette-grid{ grid-template-columns:repeat(3,1fr); } }
@media(max-width:500px){ .ucw-palette-grid{ grid-template-columns:repeat(2,1fr); } }
.ucw-colour-card { background:#fff; border-radius:8px; overflow:hidden; box-shadow:0 2px 12px rgba(0,0,0,0.07); transition:transform 0.2s,box-shadow 0.2s; }
.ucw-colour-card:hover { transform:translateY(-4px); box-shadow:0 8px 28px rgba(0,0,0,0.13); }
.ucw-colour-swatch { height:100px; width:100%; }
.ucw-colour-name { padding:10px 14px; font-size:12px; font-weight:700; color:#1b1f24; text-transform:uppercase; letter-spacing:0.5px; }
.ucw-features { padding:80px 0; background:#fff; }
.ucw-features-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:32px; }
@media(max-width:860px){ .ucw-features-grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:540px){ .ucw-features-grid{ grid-template-columns:1fr; } }
.ucw-feature-card { padding:32px 28px; border:1px solid #eaeef2; border-radius:8px; transition:border-color 0.2s,box-shadow 0.2s; }
.ucw-feature-card:hover { border-color:#cb2c28; box-shadow:0 4px 20px rgba(203,44,40,0.1); }
.ucw-feature-icon { width:50px; height:50px; background:#fef2f2; border-radius:10px; display:flex; align-items:center; justify-content:center; margin-bottom:18px; color:#cb2c28; font-size:22px; }
.ucw-feature-card h3 { font-size:16px; font-weight:800; color:#1b1f24; margin:0 0 10px; text-transform:uppercase; letter-spacing:0.5px; }
.ucw-feature-card p { color:#666; font-size:14px; line-height:1.7; margin:0; }

/* ── BI-FOLD / COMPOSITE / SINGLE DOORS (pd-) ───────── */
.pd-hero { position:relative; height:88vh; min-height:480px; display:flex; align-items:center; justify-content:center; text-align:center; overflow:hidden; }
.pd-hero::before { content:''; position:absolute; inset:0; background:linear-gradient(to bottom,rgba(0,0,0,0.3) 0%,rgba(0,0,0,0.65) 100%); }
.pd-hero-inner { position:relative; z-index:2; padding:20px; }
.pd-hero-tag { display:inline-block; background:#cb2c28; color:#fff; font-size:11px; font-weight:700; letter-spacing:3px; text-transform:uppercase; padding:5px 16px; border-radius:2px; margin-bottom:22px; }
.pd-hero h1 { font-size:clamp(34px,6vw,70px); font-weight:900; color:#fff; line-height:1.08; margin:0 0 18px; text-shadow:0 2px 16px rgba(0,0,0,0.5); letter-spacing:-1px; }
.pd-hero h1 span { color:#f87171; }
.pd-hero-sub { font-size:18px; color:rgba(255,255,255,0.8); max-width:560px; margin:0 auto 34px; line-height:1.6; }
.pd-intro { padding:80px 0; background:#fff; }
.pd-container { max-width:1160px; margin:0 auto; padding:0 32px; }
.pd-intro-grid { display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; }
@media(max-width:860px){ .pd-intro-grid{ grid-template-columns:1fr; gap:36px; } }
.pd-eyebrow { display:inline-block; font-size:11px; font-weight:700; letter-spacing:3px; text-transform:uppercase; color:#cb2c28; margin-bottom:12px; }
.pd-intro-text h2 { font-size:36px; font-weight:900; color:#1b1f24; line-height:1.15; margin:0 0 18px; letter-spacing:-0.5px; }
.pd-intro-text h2 span { color:#cb2c28; }
.pd-intro-text p { color:#555; font-size:16px; line-height:1.75; margin:0 0 16px; }
.pd-checklist { list-style:none; padding:0; margin:22px 0 0; display:grid; grid-template-columns:1fr 1fr; gap:10px 20px; }
.pd-checklist li { display:flex; align-items:center; gap:8px; color:#333; font-size:14px; font-weight:600; }
.pd-checklist li::before { content:''; width:18px; height:18px; border-radius:50%; background:#cb2c28; flex-shrink:0; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpolyline points='2,6 5,9 10,3' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-size:12px; background-position:center; background-repeat:no-repeat; }
.pd-intro-photo { position:relative; }
.pd-intro-photo img { width:100%; border-radius:8px; display:block; box-shadow:0 20px 60px rgba(0,0,0,0.15); }
.pd-intro-badge { position:absolute; bottom:-20px; left:-20px; background:#cb2c28; color:#fff; border-radius:8px; padding:16px 22px; text-align:center; box-shadow:0 8px 24px rgba(203,44,40,0.35); }
.pd-intro-badge strong { display:block; font-size:28px; font-weight:900; line-height:1; }
.pd-intro-badge span { font-size:12px; font-weight:600; letter-spacing:1px; text-transform:uppercase; opacity:0.9; }
.pd-gallery { padding:80px 0; background:#f4f6f8; }
.pd-section-hd { text-align:center; margin-bottom:48px; }
.pd-section-hd h2 { font-size:32px; font-weight:900; color:#1b1f24; margin:0 0 10px; letter-spacing:-0.5px; }
.pd-section-hd p { color:#777; font-size:15px; max-width:500px; margin:0 auto; line-height:1.6; }
.pd-rule { width:40px; height:3px; background:#cb2c28; margin:12px auto 16px; }
.pd-gallery-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
@media(max-width:860px){ .pd-gallery-grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:480px){ .pd-gallery-grid{ grid-template-columns:1fr; } }
.pd-gallery-item { position:relative; border-radius:8px; overflow:hidden; aspect-ratio:4/3; display:block; }
.pd-gallery-item img { width:100%; height:100%; object-fit:cover; display:block; transition:transform 0.4s ease; }
.pd-gallery-item:hover img { transform:scale(1.07); }
.pd-gallery-item::after { content:'\e018'; font-family:'icons'; position:absolute; inset:0; background:rgba(203,44,40,0.5); color:#fff; font-size:28px; display:flex; align-items:center; justify-content:center; opacity:0; transition:opacity 0.3s; }
.pd-gallery-item:hover::after { opacity:1; }
.pd-features { padding:80px 0; background:#fff; }
.pd-features-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:32px; }
@media(max-width:860px){ .pd-features-grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:540px){ .pd-features-grid{ grid-template-columns:1fr; } }
.pd-feature-card { padding:32px 28px; border:1px solid #eaeef2; border-radius:8px; transition:border-color 0.2s,box-shadow 0.2s; }
.pd-feature-card:hover { border-color:#cb2c28; box-shadow:0 4px 20px rgba(203,44,40,0.1); }
.pd-feature-icon { width:50px; height:50px; background:#fef2f2; border-radius:10px; display:flex; align-items:center; justify-content:center; margin-bottom:18px; color:#cb2c28; font-size:22px; }
.pd-feature-card h3 { font-size:16px; font-weight:800; color:#1b1f24; margin:0 0 10px; text-transform:uppercase; letter-spacing:0.5px; }
.pd-feature-card p { color:#666; font-size:14px; line-height:1.7; margin:0; }

/* per-page hero background for pd- pages */
.pd-hero-bifold  { background:url(../img_external/gallery/Bi-Fold-Doors/a.jpg)  center/cover no-repeat; }
.pd-hero-composite { background:url(../img_external/gallery/Composite-Doors/a.jpg) center/cover no-repeat; }
.pd-hero-single  { background:url(../img_external/gallery/Single-Doors/a.jpg)   center/cover no-repeat; }
