/* Homepage composition; shared primitives live in editorial.css. */
body.home-page .home-hero {
    display: grid;
    grid-template-columns: 0.82fr 1.18fr;
    align-items: center;
    gap: 48px;
    min-height: 0;
    padding: 48px 0 64px;
    text-align: left;
    overflow: visible;
    background-attachment: scroll !important;
}
body.home-page .home-hero h1 {
    display: block;
    max-width: 13ch;
    font-size: clamp(2.65rem, 4.2vw, 3.75rem);
    font-weight: 400;
    line-height: 1.08 !important;
    letter-spacing: -0.025em;
    margin: 0 0 24px;
    padding: 0 !important;
    color: var(--editorial-ink);
    text-shadow: none;
}
body.home-page .home-hero .hero-subtitle {
    max-width: 39ch;
    margin: 0;
    color: var(--editorial-muted) !important;
    -webkit-text-fill-color: var(--editorial-muted) !important;
    font-size: 1.0625rem;
    line-height: 1.65;
    text-transform: none;
    letter-spacing: normal;
}
body.home-page .home-hero-image img { width: 100%; height: 540px; object-fit: cover; object-position: center 51%; }
body.home-page .home-services { display: grid; grid-template-columns: minmax(0, 1fr); }
body.home-page .home-service { border: 0 !important; border-top: 1px solid var(--editorial-rule) !important; border-radius: 0 !important; }
body.home-page .home-service:last-child { border-bottom: 1px solid var(--editorial-rule) !important; }
body.home-page .home-service-link { display: grid; grid-template-columns: minmax(12rem, 0.58fr) minmax(0, 1fr) 1.5rem; align-items: center; gap: clamp(1.5rem, 4vw, 3.5rem); min-height: 8.5rem; padding: 1.75rem 0; color: var(--editorial-ink); text-decoration: none; }
body.home-page .home-service h3 { margin: 0; font-family: var(--font-display); font-size: clamp(1.75rem, 2.1vw, 2.125rem); font-weight: 400; line-height: 1.15; }
body.home-page .home-service p { max-width: 58ch; margin: 0; color: var(--editorial-muted); font-size: 1rem; line-height: 1.6; }
body.home-page .home-service-arrow { justify-self: end; color: var(--editorial-muted); font-size: 1.125rem; line-height: 1; }
body.home-page .home-service-link:hover h3,
body.home-page .home-service-link:focus-visible h3 { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.16em; }
body.home-page .home-service-link:hover .home-service-arrow,
body.home-page .home-service-link:focus-visible .home-service-arrow { color: var(--editorial-ink); }
body.home-page .home-taste-index { margin-top: 2.25rem; }
body.home-page .home-taste-label { margin: 0 0 0.5rem; color: var(--editorial-muted); font-size: 0.75rem; letter-spacing: 0.09em; line-height: 1.4; text-transform: uppercase; }
body.home-page .home-showroom { display: grid; grid-template-columns: 1.2fr 0.8fr 1fr; gap: 32px; border-top: 1px solid var(--editorial-rule); margin-top: 48px; padding-top: 32px; }
body.home-page .home-showroom h3 { font-size: 1rem; margin: 0 0 12px; }
body.home-page .home-showroom p,
body.home-page .home-showroom address { font-size: 1rem; margin: 0; }
body.home-page .home-showroom a { text-underline-offset: 4px; }
body.home-page .home-map { margin-top: 32px; }
body.home-page .home-map iframe { display: block; width: 100%; height: 300px; border: 1px solid var(--editorial-rule); }
body.home-page .home-map .editorial-link { margin-top: 12px; }
body.home-page .home-explore { margin-top: 48px; border-top: 1px solid var(--editorial-rule); padding-top: 32px; }
body.home-page .home-explore h3 { font-size: 1rem; margin: 0 0 20px; }
body.home-page .home-explore-links { display: flex; flex-wrap: wrap; gap: 6px 24px; }
body.home-page .home-explore-links a { display: inline-flex; align-items: center; min-height: 44px; color: var(--editorial-muted); font-size: 0.875rem; text-decoration: underline; text-underline-offset: 4px; }
body.home-page .home-explore-links a:hover { color: var(--editorial-ink); }
@media (max-width: 1100px) {
    body.home-page .home-hero { gap: 32px; }
    body.home-page .home-hero-image img { height: 500px; }
}

@media (max-width: 968px) {
    body.home-page .home-hero { grid-template-columns: 1fr; gap: 32px; padding-top: 32px; }
    body.home-page .home-hero h1 { max-width: 18ch; font-size: 3rem; }
    body.home-page .home-hero .hero-subtitle { max-width: 55ch; }
    body.home-page .home-hero-image img { height: 380px; object-position: center 51%; }
    body.home-page .home-showroom { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 600px) {
    body.home-page .home-hero { gap: 28px; padding: 28px 0 40px !important; }
    body.home-page .home-hero h1 { max-width: 14ch; font-size: 2.4rem; margin-bottom: 18px; }
    body.home-page .home-hero .hero-subtitle { font-size: 1rem; }
    body.home-page .home-hero-image img { height: 240px; }
    body.home-page .home-service-index .editorial-heading { margin-bottom: 8px; }
    body.home-page .home-service { padding: 0 !important; }
    body.home-page .home-service-index .home-service-link { grid-template-columns: minmax(0, 1fr) auto; gap: 0.5rem 1rem; min-height: 0; padding: 0.375rem 0; }
    body.home-page .home-service h3 { font-size: 1.75rem; }
    body.home-page .home-service p { grid-column: 1 / -1; grid-row: 2; }
    body.home-page .home-service-arrow { grid-column: 2; grid-row: 1; align-self: center; }
    body.home-page .home-service-index .home-taste-index { margin-top: 0.25rem; }
    body.home-page .home-service-index .home-taste-label { margin-bottom: 0; }
    body.home-page .home-showroom { grid-template-columns: 1fr; gap: 24px; margin-top: 32px; padding-top: 24px; }
    body.home-page .home-map iframe { height: 240px; }
    body.home-page .home-explore { margin-top: 32px; padding-top: 24px; }
    body.home-page .home-explore-links { gap: 4px 20px; }
}
