/* Homepage art direction: shared photography, quieter typography, generous space. */
body[data-page="home"] { background:var(--white); }
.home-hero { min-height:680px; min-height:calc(100svh - 120px); max-height:none; }
.home-hero .hero-video { pointer-events:none; }
.home-hero .hero-overlay { background:linear-gradient(90deg,rgba(8,17,20,.38),transparent 80%),linear-gradient(180deg,rgba(8,17,20,.02) 15%,rgba(8,17,20,.75) 100%); }
.home-hero .hero-inner { padding-top:170px; padding-bottom:66px; }
.home-hero .hero-tag { font-family:var(--font-body); font-size:.875rem; font-weight:500; letter-spacing:.025em; text-transform:none; line-height:1.65; color:#eef0f1; margin-bottom:21px; }
.home-hero h1 { font-size:clamp(2.2rem,4.6vw,4.3rem); line-height:1.12; letter-spacing:-.01em; max-width:18ch; margin:0 0 25px; font-weight:700; }
.home-hero .hero-sub { max-width:52ch; color:#eef0f1; font-size:1rem; line-height:1.8; margin-bottom:27px; }
.home-hero .hero-actions { align-items:center; gap:30px; margin:0; }
.home-hero .btn-primary { background:var(--navy); color:var(--white); border-color:var(--navy); }
.home-hero .btn-primary:hover { background:var(--navy-light); border-color:var(--navy-light); color:var(--white); }
.home-text-link { color:#fff; font-size:.85rem; padding:12px 0; border-bottom:1px solid #ffffff80; }
.home-text-link span, .home-dark-link span { margin-left:16px; }
.hero-scene-note { position:absolute; z-index:2; right:4%; bottom:66px; color:#d1d6d7; font-size:.65rem; letter-spacing:.22em; text-transform:uppercase; writing-mode:vertical-rl; }
.home-assurance { background:var(--navy); color:var(--white); }
.home-assurance-inner { display:flex; align-items:center; justify-content:space-between; gap:20px; padding-top:22px; padding-bottom:22px; font-family:var(--font-body); font-size:.875rem; letter-spacing:0; }
.home-assurance a { color:var(--white); }
.assurance-service { font-family:var(--font-display); font-size:.875rem; font-weight:600; line-height:1.6; }
.assurance-review { display:inline-flex; align-items:center; gap:10px; min-height:44px; white-space:nowrap; }
.assurance-review:focus-visible { outline:2px solid currentColor; outline-offset:5px; }
.assurance-review:hover>span { text-decoration:underline; text-underline-offset:4px; }
.assurance-stars { display:block; width:84px; height:14px; color:#fff; flex-shrink:0; }
.assurance-rating { font-family:var(--font-display); font-size:1.0625rem; font-weight:600; }
.home-intro { display:grid; grid-template-columns:1.15fr 1fr; align-items:end; gap:80px; padding-top:105px; padding-bottom:55px; }
.home-eyebrow { font-family:var(--font-accent); font-size:.67rem; text-transform:uppercase; letter-spacing:.18em; color:var(--navy); margin:0 0 20px; }
.home-intro h2, .home-detail h2 { font-size:clamp(2rem,3vw,3rem); line-height:1.18; letter-spacing:-.01em; font-weight:700; color:var(--black); margin:0; }
.home-intro>p { color:var(--gray-600); line-height:1.85; max-width:48ch; margin:0 0 4px; font-size:.95rem; }
.home-collection-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; padding:0 28px; max-width:1800px; margin:auto; }
.home-collection { position:relative; min-height:530px; aspect-ratio:4/5; overflow:hidden; display:flex; align-items:flex-end; background:var(--navy); color:#fff; }
.home-collection>img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .8s ease; }
.home-collection::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 25%,rgba(5,12,16,.85)); }
.home-collection:hover>img { transform:scale(1.035); }
.collection-caption { position:relative; z-index:1; padding:36px; width:100%; }
.collection-number { display:block; font-size:.64rem; letter-spacing:.16em; text-transform:uppercase; color:#e2e7e8; margin-bottom:15px; }
.collection-caption h3 { color:#fff; font-size:clamp(1.4rem,2.2vw,2rem); font-weight:700; letter-spacing:-.02em; margin:0 0 12px; }
.collection-caption p { color:#eef0f1; font-size:.88rem; margin:0 0 28px; }
.collection-link { display:flex; justify-content:space-between; align-items:center; border-top:1px solid #ffffff60; padding-top:17px; font-size:.75rem; }
.home-collection:focus-visible { outline:3px solid #0e2a4d; outline-offset:4px; }
.home-detail { padding:115px 0; }
.home-detail-grid { display:grid; grid-template-columns:1fr 1fr; gap:90px; align-items:center; }
.home-detail-image { aspect-ratio:4/5; overflow:hidden; }
.home-detail-image img { width:100%; height:100%; object-fit:cover; }
.home-detail-copy>p:not(.home-eyebrow) { color:var(--gray-600); line-height:1.85; margin:26px 0; }
.home-dark-link { display:inline-block; padding:12px 0; border-bottom:1px solid var(--gray-400); color:var(--black); font-size:.88rem; }
.home-detail-notes { display:grid; gap:12px; border-top:1px solid var(--gray-200); margin-top:35px; padding-top:25px; font-size:.74rem; color:var(--gray-600); }
body[data-page="home"] .section { padding:85px 0; }
body[data-page="home"] .section-heading { text-transform:uppercase; font-weight:800; letter-spacing:-.01em; color:var(--black); font-size:clamp(1.9rem,3vw,2.8rem); }
body[data-page="home"] .section-lede { color:var(--gray-600); }
.home-process { background:var(--gray-50); }
.home-process .home-eyebrow, #reviews .home-eyebrow { text-align:center; }
.home-process .process-grid { margin-top:50px; gap:36px; }
.home-process .process-num { background:transparent; color:var(--navy); width:auto; height:auto; justify-content:flex-start; border-radius:0; font-size:1.8rem; font-weight:500; padding-bottom:20px; border-bottom:1px solid var(--gray-200); }
.home-process .process-step h3 { color:var(--black); font-weight:700; }
.home-package-link { display:flex; justify-content:space-between; align-items:center; gap:25px; padding-top:30px; padding-bottom:30px; border-bottom:1px solid var(--gray-200); font-size:.8rem; }
.home-package-link p { margin:0; color:var(--gray-600); }
.home-package-link a { color:var(--navy); text-decoration:underline; text-underline-offset:5px; }
body[data-page="home"] .promise-band { background:transparent; border:0; padding:0; max-width:780px; margin:auto; }
body[data-page="home"] .promise-band .promise-title { color:var(--navy); font-size:.7rem; letter-spacing:.18em; font-weight:500; margin-bottom:22px; }
body[data-page="home"] .promise-band p:last-child { color:var(--gray-800); font-size:clamp(1.2rem,2vw,1.6rem); line-height:1.65; }
body[data-page="home"] #reviews { background:#fff; }
body[data-page="home"] .review-card { background:transparent; border:0; border-top:1px solid var(--gray-200); border-radius:0; padding:28px 0 0; }
body[data-page="home"] .review-stars { color:var(--navy); }
body[data-page="home"] .review-quote { font-size:.94rem; line-height:1.85; color:var(--gray-600); }
body[data-page="home"] .cta-section { background:var(--navy); padding:100px 0; }
body[data-page="home"] .cta-section .home-eyebrow { color:var(--gray-200); font-size:.68rem; }
body[data-page="home"] .cta-inner h2 { font-size:clamp(2.2rem,4vw,3.6rem); font-weight:700; line-height:1.12; letter-spacing:-.01em; text-transform:none; }
body[data-page="home"] .cta-inner>.home-eyebrow { margin-bottom:25px; }
body[data-page="home"] .cta-inner .btn-primary { background:var(--navy); color:var(--white); border-color:var(--navy); }
@media(min-width:1800px) { .home-hero { min-height:790px; } }
@media(max-width:1000px) {
  .hero-scene-note { display:none; }
  .home-collection-grid { padding:0 20px; }
  .home-collection { min-height:440px; }
  .collection-caption { padding:24px; }
  .home-intro, .home-detail-grid { gap:40px; }
}
@media(max-width:700px) {
  .home-hero { min-height:650px; min-height:max(590px,calc(100svh - 100px)); }
  .home-hero .hero-inner { padding-top:160px; padding-bottom:40px; }
  .home-hero h1 { font-size:clamp(2.25rem,8.4vw,3.5rem); }
  .home-hero .hero-tag { font-size:.8125rem; max-width:32ch; }
  .home-hero .hero-sub { font-size:.9rem; max-width:35ch; }
  .home-hero .hero-actions { flex-direction:column; align-items:flex-start; gap:10px; }
  .home-hero .btn { font-size:.72rem; }
  .desktop-break { display:none; }
  .home-assurance-inner { flex-direction:column; align-items:flex-start; gap:5px; padding-top:20px; padding-bottom:20px; font-size:.8125rem; }
  .assurance-service { font-size:.8125rem; }
  .home-intro { grid-template-columns:1fr; gap:24px; padding-top:65px; padding-bottom:35px; }
  .home-collection-grid { grid-template-columns:minmax(0,1fr); padding:0 20px; gap:18px; }
  .home-collection { min-width:0; width:100%; min-height:440px; aspect-ratio:4/5; max-height:600px; }
  .collection-caption { padding:28px; }
  .collection-caption h3 { font-size:1.9rem; }
  .home-detail { padding:65px 0; }
  .home-detail-grid { grid-template-columns:1fr; gap:35px; }
  .home-detail-image { aspect-ratio:5/4; }
  body[data-page="home"] .section { padding:65px 0; }
  .home-process .process-grid { gap:30px 24px; }
  .home-package-link { flex-direction:column; align-items:flex-start; gap:12px; }
  body[data-page="home"] .cta-section { padding:70px 0; }
}
@media(prefers-reduced-motion:reduce) { .home-collection>img { transition:none; } .home-collection:hover>img { transform:none; } }

/* Use the same heading and label families as the product pages. */
.home-intro h2, .home-detail h2 { text-transform:uppercase; font-weight:700; }
.home-hero h1, .home-intro h2, .home-detail h2, .collection-caption h3 { font-family:var(--font-display); }
.home-eyebrow { font-family:var(--font-accent); font-size:.78rem; font-weight:600; letter-spacing:.18em; }
body[data-page="home"] .cta-inner h2 { text-transform:uppercase; font-weight:700; }
@media(max-width:700px) { .home-eyebrow { font-size:.64rem; } }

/* Keep the assurance details within the cinematic footage. */
.home-hero .hero-inner { padding-bottom:125px; }
.home-hero .home-assurance { position:absolute; bottom:0; left:0; right:0; z-index:2; background:transparent; color:#fff; }
.home-hero .home-assurance-inner { border-top:1px solid rgba(255,255,255,.25); }
.home-hero .hero-scene-note { bottom:125px; }
@media(max-width:700px) {
  .home-hero .hero-inner { padding-bottom:145px; }
  .home-hero .home-assurance-inner { padding-top:17px; padding-bottom:20px; }
}
