/* Homepage-only layout: hero photo mosaic, savings quote drawing, closing band and the mobile sticky buttons.
   Kept out of drive-right.css so a homepage change does not re-version every current-design page. */
.dr[data-buying-page="home"] .hero-layout { display:grid; grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr); gap:56px; align-items:end; padding-bottom:56px; }
.dr[data-buying-page="home"] .hero-layout .hero-intro h1 { font-size:clamp(46px,5.4vw,76px); }
.dr[data-buying-page="home"] .hero-layout .hero-trust { grid-template-columns:1fr; gap:8px; }
.dr .hero-mosaic { display:grid; grid-template-columns:1.35fr 1fr; grid-template-rows:minmax(0,1fr) minmax(0,1fr) auto; gap:10px; aspect-ratio:5/4.6; margin:44px 0 0; }
.dr .hero-mosaic :is(picture,img) { display:block; min-width:0; min-height:0; }
.dr .hero-mosaic img { width:100%; height:100%; object-fit:cover; border-radius:14px; background:var(--sage); }
.dr .hero-mosaic > picture { grid-row:1 / 3; }
.dr .hero-mosaic > picture img { object-position:50% 30%; }
.dr .hero-mosaic figcaption { grid-column:1 / -1; font-size:13px; line-height:1.5; color:var(--muted); }
.dr .hero-plans .mason-avatar { display:block; flex:none; width:32px; height:32px; margin:-8px 0 -8px -12px; }
.dr .mason-avatar img { display:block; width:100%; height:100%; border-radius:50%; object-fit:cover; }

.dr .savings-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.9fr); gap:64px; align-items:center; }
.dr .savings-points { margin:28px 0 0; padding:0; list-style:none; }
.dr .savings-points li { position:relative; padding:16px 0 16px 30px; border-top:1px solid var(--line); font:600 21px/1.3 var(--sans); letter-spacing:-.02em; }
.dr .savings-points li:last-child { border-bottom:1px solid var(--line); }
.dr .savings-points li::before { content:'✓'; position:absolute; left:0; font-weight:400; color:var(--green); }
.dr .savings-art { display:grid; place-items:center; padding:32px; border-radius:16px; background:var(--sage); }
.dr .savings-quote { display:block; width:100%; max-width:420px; height:auto; }
.dr .savings-quote text { font-family:'Barlow',var(--sans); font-weight:500; fill:var(--ink); }
.dr .savings-quote .quote-paper { fill:var(--paper); stroke:var(--green); stroke-width:1.4; stroke-linejoin:round; }
.dr .savings-quote .quote-line { fill:none; stroke:var(--green); stroke-width:1.4; stroke-linejoin:round; }
.dr .savings-quote .quote-rule { fill:none; stroke:var(--line); stroke-width:1.4; }
.dr .savings-quote .quote-title { font-size:17px; font-weight:600; }
.dr .savings-quote .quote-item { font-size:15px; }
.dr .savings-quote .quote-value { font-size:15px; font-weight:600; }
.dr .savings-quote .quote-removed text { fill:var(--muted); }
.dr .savings-quote .quote-strike { fill:none; stroke:var(--green); stroke-width:2; stroke-linecap:round; }
.dr .savings-quote .quote-note { font-size:14px; font-weight:600; fill:var(--green); }

.dr .home-closing { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); margin-block:24px 72px; border-radius:20px; overflow:hidden; background:var(--green); color:var(--paper); }
.dr .home-closing-copy { align-self:center; padding:64px 56px; }
.dr .home-closing h2 { font:600 clamp(36px,4vw,58px)/1.04 var(--sans); letter-spacing:-.03em; color:var(--paper); }
.dr .home-closing p { margin-top:16px; font-size:16px; line-height:1.5; color:rgba(255,255,255,.84); }
.dr .home-closing-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:28px; }
.dr .home-closing-actions :is(.primary-button,.outline-button) { min-height:56px; padding:14px 26px; gap:14px; font-size:17px; }
.dr .home-closing-actions svg { width:18px; height:18px; }
.dr .home-closing-actions .primary-button { background:var(--paper); border-color:var(--paper); color:var(--ink); }
.dr .home-closing-actions .primary-button:hover { background:var(--sage); border-color:var(--sage); }
.dr .home-closing-actions .outline-button { background:transparent; border-color:rgba(255,255,255,.72); color:var(--paper); }
.dr .home-closing-actions .outline-button:hover { background:rgba(255,255,255,.1); }
.dr .home-closing :focus-visible { outline-color:var(--paper); }
.dr .home-closing-photo { position:relative; display:block; min-height:440px; }
.dr .home-closing-photo img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:60% 60%; }

.dr .home-sticky-cta { display:none; }

@media(max-width:1000px) {
 .dr[data-buying-page="home"] .hero-layout { grid-template-columns:1fr; gap:0; }
 .dr .hero-mosaic { max-width:720px; aspect-ratio:16/10.5; margin-top:32px; }
 .dr .savings-layout { grid-template-columns:1fr; gap:32px; }
}
@media(max-width:760px) {
 .dr[data-buying-page="home"] .hero-layout { padding-bottom:36px; }
 .dr .hero-mosaic { aspect-ratio:16/11.5; gap:6px; margin-top:28px; }
 .dr .hero-mosaic img { border-radius:12px; }
 .dr .hero-mosaic figcaption { font-size:12px; }
 .dr .savings-points li { padding-block:14px; font-size:18px; }
 .dr .savings-art { padding:20px 12px; }
 .dr .home-closing { grid-template-columns:1fr; margin-bottom:48px; border-radius:16px; }
 .dr .home-closing-photo { order:-1; min-height:0; aspect-ratio:16/10; }
 .dr .home-closing-copy { padding:32px 24px; }
 .dr .home-closing h2 { font-size:34px; }
 .dr .home-closing-actions :is(.primary-button,.outline-button) { width:100%; padding-inline:18px; font-size:16px; }
 .dr .home-sticky-cta { position:fixed; z-index:30; left:0; right:0; bottom:0; display:flex; gap:8px; padding:10px 16px calc(10px + env(safe-area-inset-bottom)); border-top:1px solid var(--line); background:var(--paper); transform:translateY(100%); visibility:hidden; transition:transform .25s var(--ease), visibility 0s linear .25s; }
 .dr .home-sticky-cta.is-visible { transform:none; visibility:visible; transition:transform .25s var(--ease); }
 .dr .home-sticky-cta :is(.primary-button,.outline-button) { min-height:48px; padding:10px 14px; font-size:15px; white-space:nowrap; }
 .dr .home-sticky-cta .primary-button { flex:1.35 1 0; }
 .dr .home-sticky-cta .outline-button { flex:1 1 0; background:var(--paper); border-color:var(--ink); color:var(--ink); }
}
@media(max-width:374px) {
 .dr .home-sticky-cta :is(.primary-button,.outline-button) { padding-inline:8px; font-size:14px; }
}
@media(prefers-reduced-motion:reduce) {
 .dr .home-sticky-cta,.dr .home-sticky-cta.is-visible { transition:none; }
}
