/* Approved compact illustration. Scoped styles; no page-heading or brand reset. */
.roof-hero.roof-hero-with-image{max-width:none;width:100%}.roof-hero-with-image>.breadcrumbs{margin-bottom:24px}
.sgh{--sgh-visual-height:clamp(220px,22vw,300px);position:relative;isolation:isolate;box-sizing:border-box;width:100%;max-width:1100px;height:var(--sgh-visual-height);margin:0 auto 24px;border-radius:20px;overflow:hidden;background:#21342f;color:#fff;font-family:inherit}
.sgh *{box-sizing:border-box}
.sgh .sgh-visual{position:relative;height:var(--sgh-visual-height);overflow:hidden}
.sgh .sgh-scene{position:absolute;left:50%;top:50%;width:max(100%,calc(var(--sgh-visual-height)*2.397531));aspect-ratio:1942/810;transform:translate(-50%,-50%)}
.sgh .sgh-photo{display:block;width:100%;height:auto;max-width:none;margin:0;border:0}
.sgh .sgh-overlay{position:absolute;inset:0;display:block;width:100%;height:100%;pointer-events:none}
.sgh .sgh-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,25,28,.46),transparent 52%),linear-gradient(0deg,rgba(10,25,28,.66),transparent 64%);pointer-events:none}
.sgh .sgh-caption{position:absolute;left:28px;bottom:24px;z-index:1;max-width:calc(100% - 335px);color:#fff}
.sgh .sgh-title{margin:0 0 8px;padding:0;border:0;color:#fff;font-size:clamp(26px,3.2vw,38px);font-weight:650;line-height:1.08;letter-spacing:-.035em;text-wrap:balance;overflow-wrap:normal}
.sgh .sgh-subtitle{margin:0;color:#f2f5f3;font-size:15px;font-weight:400;line-height:1.35}
.sgh .sgh-card{position:absolute;z-index:2;top:50%;right:22px;transform:translateY(-50%);width:266px;max-height:none;padding:17px 20px 16px;border:1px solid rgba(255,255,255,.85);border-radius:16px;background:rgba(255,255,255,.97);color:#152a34;box-shadow:0 7px 24px #10202524;text-align:left}
.sgh .sgh-badge{display:inline-block;padding:5px 7px;border-radius:5px;background:#fff0d3;color:#765218;font-size:10px;font-weight:650;line-height:1.2;letter-spacing:.08em}
.sgh .sgh-modules{margin:11px 0 9px;color:#152a34;font-size:14px;font-weight:650;line-height:1.35}
.sgh .sgh-metrics{margin:0;padding:0}
.sgh .sgh-metrics dt{margin:0;color:#52636c;font-size:11px;font-weight:400;line-height:1.4}
.sgh .sgh-metrics dd{margin:0;color:#152a34;font-variant-numeric:tabular-nums;white-space:nowrap}
.sgh .sgh-power{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:0 0 10px;border-bottom:1px solid #e2e6e5}
.sgh .sgh-power dd{font-size:20px;font-weight:650;line-height:1.1}
.sgh .sgh-power dd span{font-size:14px}
.sgh .sgh-annual{padding-top:10px}
.sgh .sgh-annual dd{margin-top:5px;font-size:31px;font-weight:650;line-height:1.12;letter-spacing:-.025em}
.sgh .sgh-annual dd span{font-size:13px;font-weight:400;letter-spacing:0}
.sgh .sgh-note{margin:10px 0 0;color:#657680;font-size:10px;font-weight:400;line-height:1.4}
@media(min-width:781px) and (max-width:1050px){.sgh{--sgh-visual-height:260px}.sgh .sgh-caption{left:22px;max-width:calc(100% - 320px)}.sgh .sgh-card{right:16px;width:260px;padding:15px 18px}.sgh .sgh-title{font-size:30px}.sgh .sgh-subtitle{font-size:14px}}
/* Keep the compact photo and every example number visible on small screens. */
@media(max-width:780px){.sgh{--sgh-visual-height:220px;height:auto;border-radius:16px;background:#fff;border:1px solid #e1e6e8;color:#152a34}.sgh .sgh-caption{left:18px;right:18px;bottom:17px;max-width:none}.sgh .sgh-title{font-size:clamp(24px,5.5vw,32px);max-width:28ch;line-height:1.1;margin-bottom:6px}.sgh .sgh-subtitle{font-size:13px;max-width:40ch}.sgh .sgh-card{position:static;width:auto;transform:none;max-height:none;padding:17px 20px 18px;border:0;border-radius:0;box-shadow:none;background:#fff}.sgh .sgh-modules{margin:10px 0}.sgh .sgh-metrics{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:16px}.sgh .sgh-power{display:block;border:0;padding:0}.sgh .sgh-power dd{margin-top:6px;font-size:24px}.sgh .sgh-annual{padding:0}.sgh .sgh-annual dd{font-size:27px;margin-top:5px}.sgh .sgh-metrics dt{font-size:11px;min-height:2.8em}.sgh .sgh-note{font-size:11px;line-height:1.45;margin-top:13px}}
@media(max-width:370px){.sgh .sgh-card{padding:16px}.sgh .sgh-metrics{gap:12px;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}.sgh .sgh-annual dd{font-size:24px}.sgh .sgh-annual dd span{font-size:11px}.sgh .sgh-title{font-size:25px}.sgh .sgh-subtitle{font-size:12px}}

/* Decorative tutorial, separate from the live roof editor. */
/* Existing second-slope panels are present from first paint, outside the demo cycle. */
.sgh .sgh-installed-array,.sgh .sgh-installed-panel{opacity:1;animation:none}
.sgh-demo-cursor{display:none;pointer-events:none}
.sgh[data-sgh-animated] .sgh-scene{animation:sgh-camera 6s ease-in-out infinite}
.sgh[data-sgh-animated] .sgh-demo-cursor{display:block;animation:sgh-cursor 6s ease-in-out infinite}
.sgh[data-sgh-animated] .sgh-demo-outline{stroke-dasharray:100;animation:sgh-outline 6s linear infinite}
.sgh[data-sgh-animated] .sgh-panel{animation:sgh-panels 6s ease-in-out infinite}
.sgh[data-sgh-animated] .sgh-demo-point{animation:sgh-point 6s linear infinite;animation-delay:var(--point-delay)}
.sgh[data-sgh-running=false] :is(.sgh-scene,.sgh-demo-cursor,.sgh-demo-outline,.sgh-panel,.sgh-demo-point){animation-play-state:paused}
@keyframes sgh-camera{0%,100%{transform:translate(-50%,-50%) scale(1)}50%{transform:translate(-49.7%,-50.2%) scale(1.025)}}
@keyframes sgh-cursor{0%,7%{opacity:0;transform:translate(760px,335px)}10%{opacity:1;transform:translate(795px,357px)}22.5%{transform:translate(1037px,357px)}35%{transform:translate(1037px,507px)}47.5%{transform:translate(795px,507px)}60%,65%{opacity:1;transform:translate(795px,357px)}72%,100%{opacity:0;transform:translate(760px,335px)}}
@keyframes sgh-outline{0%,10%{stroke-dashoffset:100;opacity:0}11%{opacity:1}60%,92%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:0;opacity:0}}
@keyframes sgh-panels{0%,62%{opacity:0}76%,94%{opacity:1}100%{opacity:0}}
@keyframes sgh-point{0%,9%{opacity:0}10%,65%{opacity:1}73%,100%{opacity:0}}
@media(prefers-reduced-motion:reduce){.sgh[data-sgh-animated] :is(.sgh-scene,.sgh-demo-cursor,.sgh-demo-outline,.sgh-panel,.sgh-demo-point){animation:none!important}.sgh-demo-cursor{display:none!important}.sgh-panel,.sgh-demo-point{opacity:1!important}.sgh-demo-outline{stroke-dashoffset:0!important}}


/* Keep the title on the photograph, in the clear strip below the panels. */
.sgh{height:auto}
.sgh .sgh-visual{height:auto}
.sgh .sgh-media{position:relative;height:var(--sgh-visual-height);overflow:hidden}
.sgh .sgh-caption{position:absolute;left:24px;right:auto;bottom:8px;max-width:calc(100% - 335px);padding:0;color:#fff;background:none;pointer-events:none}
.roof-planner .roof-hero .sgh .sgh-title,.sgh .sgh-caption .sgh-title{color:#fff;font-size:clamp(24px,2.6vw,32px);line-height:1.08;margin:0 0 4px;max-width:none}
.sgh .sgh-subtitle{color:#f2f5f3;font-size:13px;line-height:1.25;margin:0}
.sgh .sgh-card{top:calc(var(--sgh-visual-height)/2)}
@media(max-width:780px){.sgh{--sgh-visual-height:240px}.sgh .sgh-caption{left:18px;right:18px;bottom:10px;max-width:none}.roof-planner .roof-hero .sgh .sgh-title,.sgh .sgh-caption .sgh-title{font-size:24px}.sgh .sgh-subtitle{font-size:12px;line-height:1.3;max-width:none}.sgh .sgh-card{padding-top:17px}}
@media(max-width:370px){.roof-planner .roof-hero .sgh .sgh-title,.sgh .sgh-caption .sgh-title{font-size:22px}}

.sgh-media[role=button]{cursor:pointer}.sgh-media[role=button]:focus-visible{outline:3px solid #ffbd27;outline-offset:-4px}
