/* Shared geometry: every page opts into the same rows. No page-specific desktop heights. */
:root { --lf-hero-height:460px; --lf-hero-rows:18px 18px 128px 112px 46px; --lf-hero-row-gap:16px; --lf-hero-top:24px; --lf-hero-after:40px; --lf-hero-photo-mobile:180px; --lf-hero-gutter:max(48px,calc((100% - 1200px)/2)); }
html { scrollbar-gutter:stable; }
body:is([data-page],[data-lf-project]) .lf-hero-frame[data-hero-layout] { display:block; position:relative; isolation:isolate; width:100%; max-width:none; height:var(--lf-hero-height); min-height:var(--lf-hero-height); padding:var(--lf-hero-top) var(--lf-hero-gutter) 0; margin:0 0 var(--lf-hero-after); border:0; border-bottom:1px solid #ddd; box-sizing:border-box; background:#fff; overflow:visible; }
body:is([data-page],[data-lf-project]) .lf-hero-frame[data-hero-layout] .lf-hero-layout { position:relative; z-index:2; display:grid; grid-template-columns:minmax(0,1fr); grid-template-rows:var(--lf-hero-rows); gap:var(--lf-hero-row-gap); align-content:start; width:51%; max-width:612px; height:auto; padding:0; margin:0; }
body:is([data-page],[data-lf-project]) .lf-hero-frame[data-hero-layout] .lf-hero-copy,body[data-lf-project="umidas"] .lf-hero-frame[data-hero-layout] .hero-inner { display:contents; }
body:is([data-page],[data-lf-project]) .lf-hero-frame[data-hero-layout] :is(.lf-breadcrumb,.lf-breadcrumb-spacer) { display:flex; grid-row:1; align-items:center; flex-wrap:wrap; gap:8px; width:auto; height:18px; min-height:18px; margin:0; padding:0; color:#777; font:400 9px/18px "Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif; letter-spacing:.025em; }
body:is([data-page],[data-lf-project]) .lf-hero-frame[data-hero-layout] .lf-breadcrumb a { color:inherit; text-decoration:underline; text-underline-offset:3px; }
body:is([data-page],[data-lf-project]) .lf-hero-frame[data-hero-layout] :is(.lf-eyebrow,.article-kicker) { grid-row:2; margin:0; padding:0; height:18px; font:500 10px/18px "Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif; letter-spacing:.12em; color:#555; }
body:is([data-page],[data-lf-project]) .lf-hero-frame[data-hero-layout] .lf-hero-layout > h1 { grid-row:3; align-self:start; width:100%; min-height:0; height:auto; margin:0; padding:0; color:#111; font:600 clamp(32px,2.9vw,42px)/1.4 var(--font-heading,"Yu Mincho",serif); letter-spacing:-.035em; white-space:normal; text-wrap:initial; }
body:is([data-page],[data-lf-project]) .lf-hero-frame[data-hero-layout] .lf-hero-description { grid-row:4; min-width:0; align-self:start; width:100%; max-width:none; margin:0; padding:0; }
body:is([data-page],[data-lf-project]) .lf-hero-frame[data-hero-layout] .lf-hero-description p { margin:0; color:#333; font:400 13px/1.95 "Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif; letter-spacing:.01em; }
body:is([data-page],[data-lf-project]) .lf-hero-frame[data-hero-layout] .lf-hero-description p+p { margin-top:8px; }
body:is([data-page],[data-lf-project]) .lf-hero-frame[data-hero-layout] :is(.lf-hero-actions,.hero-actions,.lf-hero-controls) { grid-row:5; position:relative; display:flex; flex-wrap:wrap; align-items:flex-start; gap:12px 20px; width:100%; max-width:none; min-height:46px; padding:0; margin:0; }
body:is([data-page],[data-lf-project]) .lf-hero-frame[data-hero-layout] :is(.lf-link,.button,.btn) { display:inline-flex; align-items:center; justify-content:center; min-height:46px; height:auto; padding:8px 18px; margin:0; border-radius:0; font:500 12px/1.7 "Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif; letter-spacing:0; }
body:is([data-page],[data-lf-project]) .lf-hero-frame[data-hero-layout] .lf-link:not(.ui-primary) { justify-content:flex-start; padding-inline:0; background:none; }
body:is([data-page],[data-lf-project]) .lf-hero-frame[data-hero-layout] :is(.lf-hero-photo,.article-portrait,.hero-photo,.hero-visual,.hero-image) { position:absolute; z-index:0; inset:0 0 0 auto; width:57%; height:100%; min-height:0; max-width:none; margin:0; padding:0; transform:none; }
body:is([data-page],[data-lf-project]) .lf-hero-frame[data-hero-layout] :is(.lf-hero-photo,.article-portrait,.hero-photo,.hero-image) > img { display:block; width:100%; height:100%; max-height:none; aspect-ratio:auto; object-fit:cover; }
body:is([data-page],[data-lf-project]) .lf-hero-frame[data-hero-layout] + :is(section,div,aside) { margin-top:0; padding-top:0; border-top:0; }
body[data-page="top"] .lf-hero-frame[data-hero-layout] + #concept { border-top:0; }
body[data-page="media"] .lf-hero-frame[data-hero-layout] + .vb-magazine .vb-category-tabs { padding-top:0; }
body[data-lf-project] .lf-hero-frame[data-hero-layout] + .lifinity-base-project { width:min(calc(100% - 96px),1200px); }
body[data-lf-project] .lf-hero-frame[data-hero-layout] .lf-hero-description br { display:none; }
body[data-lf-project] .lf-hero-frame[data-hero-layout] .lf-hero-controls { display:block; }
body[data-lf-project] .lf-hero-frame[data-hero-layout] .button-group { display:flex; gap:12px; margin:0; }
body[data-lf-project] .lf-hero-frame[data-hero-layout] .hero-note { margin:8px 0 0; color:#666; font:400 10px/1.7 "Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif; }
body[data-lf-project] .lf-hero-frame[data-hero-layout] .hero-note br { display:none; }
body[data-lf-project="umidas"] .lf-hero-frame[data-hero-layout] .hero-highlight { display:inline; font:inherit; letter-spacing:inherit; }
body[data-lf-project="kodawaru"] .lf-hero-frame[data-hero-layout] .hero-subtitle { margin:0 0 5px; font-size:13px; font-weight:600; }
body[data-page="nanimono-house"] .lf-hero-frame[data-hero-layout] .lf-hero-layout > h1 { font-size:clamp(29px,2.65vw,38px); }
body[data-page="media"] .lf-hero-frame[data-hero-layout] .lf-media-name { font:400 52px/1.05 Georgia,"Times New Roman",serif; margin:0 0 16px; }
body[data-page="media"] .lf-hero-frame[data-hero-layout] .lf-media-tagline { font-size:28px; line-height:1.5; }
body[data-page] .lf-hero-frame[data-hero-layout] .article-title-quote { font-size:30px; line-height:1.4; margin:0 0 10px; }
body[data-page] .lf-hero-frame[data-hero-layout] .article-title-context { font-size:18px; line-height:1.6; margin:0; }
body[data-page] .lf-hero-frame[data-hero-layout] .article-title-context > span { display:inline; }
body[data-page] .lf-hero-frame[data-hero-layout] .article-byline { grid-row:4; width:100%; margin:0; padding:0; border:0; align-self:start; }
body[data-page] .lf-hero-frame[data-hero-layout] .hero-lead-title { font:500 19px/1.5 var(--font-heading); margin:0 0 8px; }
body[data-page] .lf-hero-frame[data-hero-layout] .hero-image::before { width:38%; }
.lf-visual-note { width:min(calc(100% - 96px),1200px); margin:24px auto 40px; color:#777; font:400 10px/1.8 "Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif; }
/* KODAWARU keeps its established vermilion brand; only this body overrides Lifinity blue. */
body[data-lf-project="kodawaru"] { --lf-accent:#b54432; --lf-focus:#b54432; --lf-accent-soft:#fff5f3; }
body[data-lf-project="kodawaru"] :is(.button,.button-small,.mobile-sticky.button),body[data-lf-project="kodawaru"] .lf-hero-frame[data-hero-layout] .button { background:var(--accent,#b54432); color:#fff; border-color:var(--accent,#b54432); box-shadow:none; }
body[data-lf-project="kodawaru"] :is(.button,.button-small,.mobile-sticky.button):hover,body[data-lf-project="kodawaru"] .lf-hero-frame[data-hero-layout] .button:hover { background:var(--accent-dark,#943326); color:#fff; border-color:var(--accent-dark,#943326); box-shadow:none; }
body[data-lf-project="kodawaru"] .button-outline { background:#fff; color:var(--accent,#b54432); border-color:var(--accent,#b54432); }
body[data-lf-project="kodawaru"] .button-outline:hover { background:#fff5f3; color:var(--accent-dark,#943326); }
body[data-lf-project="kodawaru"] .accent-text,body[data-lf-project="kodawaru"] .lf-hero-frame[data-hero-layout] .accent-text { color:var(--accent,#b54432); }
@media(min-width:700px) and (max-width:1023px) {
 :root { --lf-hero-height:520px; --lf-hero-rows:18px 18px 144px 142px 46px; --lf-hero-row-gap:14px; --lf-hero-gutter:32px; }
 body:is([data-page],[data-lf-project]) .lf-hero-frame[data-hero-layout] .lf-hero-layout { width:59%; }
 body:is([data-page],[data-lf-project]) .lf-hero-frame[data-hero-layout] .lf-hero-layout > h1 { font-size:30px; }
 body[data-page="nanimono-house"] .lf-hero-frame[data-hero-layout] .lf-hero-layout > h1 { font-size:28px; }
 body:is([data-page],[data-lf-project]) .lf-hero-frame[data-hero-layout] :is(.lf-hero-photo,.article-portrait,.hero-photo,.hero-visual,.hero-image) { width:52%; }
 body[data-lf-project] .lf-hero-frame[data-hero-layout] + .lifinity-base-project { width:calc(100% - 64px); }
}
@media(max-width:699px) {
 :root { --lf-hero-height:560px; --lf-hero-rows:18px 18px minmax(108px,auto) minmax(88px,auto) minmax(46px,auto); --lf-hero-row-gap:12px; --lf-hero-top:22px; --lf-hero-gutter:22px; --lf-hero-after:32px; }
 body:is([data-page],[data-lf-project]) .lf-hero-frame[data-hero-layout] { display:flex; flex-direction:column; justify-content:flex-start; align-items:stretch; height:auto; min-height:var(--lf-hero-height); padding-bottom:0; overflow:visible; }
 body:is([data-page],[data-lf-project]) .lf-hero-frame[data-hero-layout] .lf-hero-layout { width:100%; max-width:none; }
 body:is([data-page],[data-lf-project]) .lf-hero-frame[data-hero-layout] .lf-hero-layout > h1 { font-size:29px; line-height:1.5; }
 body[data-page="nanimono-house"] .lf-hero-frame[data-hero-layout] .lf-hero-layout > h1 { font-size:27px; }
 body:is([data-page],[data-lf-project]) .lf-hero-frame[data-hero-layout] .lf-hero-description p { font-size:13px; line-height:1.9; }
 body:is([data-page],[data-lf-project]) .lf-hero-frame[data-hero-layout] :is(.lf-hero-photo,.article-portrait,.hero-photo,.hero-visual,.hero-image) { position:relative; inset:auto; flex:0 0 var(--lf-hero-photo-mobile); width:calc(100% + 44px); height:var(--lf-hero-photo-mobile); max-height:none; min-height:0; margin:12px -22px 0; }
 body:is([data-page],[data-lf-project]) .lf-hero-frame[data-hero-layout] :is(.lf-hero-photo,.article-portrait,.hero-photo,.hero-visual,.hero-image)::after { background:linear-gradient(180deg,#fff,rgba(255,255,255,.5) 6%,transparent 24%); }
 body[data-page] .lf-hero-frame[data-hero-layout] .hero-image::before { inset:0; width:100%; height:40px; background:linear-gradient(#fff,transparent); }
 body[data-page="media"] .lf-hero-frame[data-hero-layout] .lf-media-name { font-size:47px; margin-bottom:13px; }
 body[data-page="media"] .lf-hero-frame[data-hero-layout] .lf-media-tagline { font-size:24px; }
 body[data-page] .lf-hero-frame[data-hero-layout] .article-title-quote { font-size:26px; line-height:1.5; }
 body[data-page] .lf-hero-frame[data-hero-layout] .article-title-context { font-size:17px; }
 body[data-page] .lf-hero-frame[data-hero-layout] .article-portrait img { object-position:75% 0; }
 body[data-lf-project] .lf-hero-frame[data-hero-layout] .hero-note { margin:6px 0 0; }
 body[data-lf-project="kodawaru"] .lf-hero-frame[data-hero-layout] .hero-photos { height:var(--lf-hero-photo-mobile); }
 body[data-lf-project] .lf-hero-frame[data-hero-layout] + .lifinity-base-project { width:calc(100% - 44px); }
 .lf-visual-note { width:calc(100% - 44px); margin-bottom:32px; }
}
/* Reset inherited block alignment and broad LP nav rules as part of the common contract. */
body:is([data-page],[data-lf-project]) .lf-hero-frame[data-hero-layout] { align-content:start; justify-content:flex-start; align-items:stretch; }
body:is([data-page],[data-lf-project]) .lf-hero-frame[data-hero-layout] .lf-breadcrumb { position:static; inset:auto; z-index:auto; flex-direction:row; transform:none; visibility:visible; opacity:1; background:none; border:0; border-radius:0; box-shadow:none; overflow:visible; }
body:is([data-page],[data-lf-project]) .lf-hero-frame[data-hero-layout] .lf-breadcrumb :is(a,span) { display:inline; position:static; margin:0; padding:0; min-height:0; height:auto; background:none; border:0; font:inherit; }
body[data-page="contact"] .lf-hero-frame[data-hero-layout] + #contact-form .contact-grid { padding-top:0; border-top:0; }
body[data-lf-project="umidas"] .lf-hero-frame[data-hero-layout] .hero-highlight { display:inline-block; }
@media(max-width:699px) {
 body:is([data-page],[data-lf-project]) .lf-hero-frame[data-hero-layout] { gap:12px; }
 body:is([data-page],[data-lf-project]) .lf-hero-frame[data-hero-layout] :is(.lf-hero-photo,.article-portrait,.hero-photo,.hero-visual,.hero-image) { margin-top:auto; }
}
/* Project wordmarks stay distinct while header edges and menu breakpoints follow the site grid. */
body[data-lf-project] .site-header { padding-inline:28px; }
body[data-lf-project="umidas"] .header-inner { width:100%; max-width:none; }
body[data-lf-project] .site-header nav a:not(.button):not(.header-cta) { font-family:var(--font-heading,"Yu Mincho",serif); font-size:11px; }
@media(max-width:900px) {
 body[data-lf-project] .site-header { padding-inline:18px; }
 body[data-lf-project] .site-header .menu-toggle { display:flex; flex-direction:column; justify-content:center; align-items:center; gap:7px; padding:10px; width:44px; height:44px; background:none; border:0; }
 body[data-lf-project] .site-header .menu-toggle span { display:block; width:24px; height:1px; background:currentColor; }
 body[data-lf-project="umidas"] #navigation { display:none; }
 body[data-lf-project="umidas"] #navigation.is-open,body[data-lf-project="kodawaru"] .site-header #mobile-nav:not([hidden]) { position:absolute; inset:64px 0 auto; display:flex; flex-direction:column; align-items:stretch; gap:12px; width:100%; max-height:calc(100dvh - 64px); overflow:auto; padding:22px 18px; margin:0; background:#fff; border-bottom:1px solid #ddd; box-shadow:none; }
 body[data-lf-project="kodawaru"] .site-header .desktop-nav,body[data-lf-project="kodawaru"] .site-header #mobile-nav[hidden] { display:none; }
 body[data-lf-project] .site-header nav a:not(.button):not(.header-cta) { font-size:16px; padding:10px 0; }
}
@media(min-width:700px) and (max-width:900px) { body[data-page] .site { overflow:visible; } }
