@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;600;700&family=Noto+Serif+JP:wght@400;500;600&display=swap');

:root {
  --ink: #222b31;
  --muted: #657078;
  --blue: #174b6c;
  --blue-dark: #0c2e45;
  --cream: #f4f2ed;
  --line: #d7dddf;
  --white: #fff;
  --max: 1220px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: #fff; font-family: 'Noto Sans JP', sans-serif; font-size: 15px; line-height: 1.85; -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
button, input { font: inherit; }
.container { width: min(calc(100% - 80px), var(--max)); margin: auto; }
.utility { height: 34px; color: #cddde5; background: var(--blue-dark); font-size: 11px; letter-spacing: .03em; }
.utility .container { height: 100%; display: flex; justify-content: space-between; align-items: center; }
.utility a:hover { color: #fff; }
.site-header { position: sticky; top: 0; z-index: 40; background: rgba(255,255,255,.98); border-bottom: 1px solid var(--line); }
.head-inner { min-height: 88px; display: flex; align-items: center; gap: 36px; }
.wordmark { display: flex; align-items: center; gap: 14px; flex: none; }
.mark { font-family: 'Noto Serif JP', serif; font-weight: 600; color: var(--blue); font-size: 35px; letter-spacing: -.08em; line-height: 1; }
.mark-sub { color: var(--ink); font-size: 10px; font-weight: 700; line-height: 1.5; letter-spacing: .06em; border-left: 1px solid var(--line); padding-left: 14px; }
.desktop-nav { display: flex; gap: 30px; align-items: center; margin-left: auto; font-size: 13px; font-weight: 600; white-space: nowrap; }
.desktop-nav a { padding: 34px 0; border-bottom: 2px solid transparent; transition: color .2s, border-color .2s; }
.desktop-nav a:hover { color: var(--blue); border-color: var(--blue); }
.desktop-nav-v4 { gap: 16px; }
.desktop-nav-v4 > a, .nav-menu > a { font-size: 11px; letter-spacing: .02em; }
.nav-menu { position: relative; height: 88px; display: flex; align-items: center; }
.nav-menu > a span { display: inline-block; margin-left: 3px; color: var(--blue); font-size: 10px; }
.nav-panel { display:none; position:absolute; z-index:80; top:81px; left:50%; transform:translateX(-50%); width:210px; padding:13px 16px; background:#fff; border-top:2px solid var(--blue); box-shadow:0 14px 29px rgba(8,28,41,.16); }
.nav-menu:hover .nav-panel, .nav-menu:focus-within .nav-panel { display:block; }
.nav-panel a { display:block; padding:10px 2px; border-bottom:1px solid var(--line); font-size:12px; }
.nav-panel a:last-child { border:0; }
.head-cta { flex: none; background: var(--blue); color: #fff; padding: 13px 21px; font-size: 13px; font-weight: 700; }
.head-cta span { margin-left: 14px; }
.head-cta:hover, .primary-action:hover { background: #0b3956; }
.mobile-nav-v3 { display: none; }

.hero-v3 { min-height: min(760px, calc(100svh - 100px)); position: relative; display: flex; align-items: center; color: #fff; overflow: hidden; background: var(--blue-dark); }
.hero-photo, .hero-shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero-photo { object-fit: cover; object-position: center 52%; }
.hero-shade { background: linear-gradient(90deg, rgba(5,27,41,.84) 0%, rgba(5,27,41,.61) 33%, rgba(5,27,41,.13) 71%, rgba(5,27,41,.08) 100%); }
.hero-content { position: relative; z-index: 1; padding: 92px 0 108px; }
.hero-kicker { display: flex; align-items: center; gap: 16px; margin: 0 0 25px; font-size: 12px; font-weight: 700; letter-spacing: .21em; }
.hero-kicker::before { content: ''; width: 28px; height: 1px; background: #fff; }
.hero-kicker span { color: #d8e2e4; letter-spacing: .1em; }
.hero-v3 h1 { margin: 0; font-family: 'Noto Serif JP', serif; font-weight: 500; font-size: clamp(50px, 6.2vw, 91px); line-height: 1.32; letter-spacing: .055em; text-shadow: 0 4px 24px rgba(0,0,0,.16); }
.hero-v3 h1 em { font-style: normal; border-bottom: 1px solid rgba(255,255,255,.8); padding-bottom: 2px; }
.hero-lead { max-width: 550px; margin: 32px 0 0; font-size: 16px; line-height: 2.1; font-weight: 500; }
.hero-actions { display: flex; align-items: center; gap: 28px; margin-top: 42px; }
.primary-action { display: inline-flex; justify-content: space-between; align-items: center; min-width: 205px; background: var(--blue); color: #fff; padding: 16px 20px; font-size: 14px; font-weight: 700; }
.text-action { border-bottom: 1px solid #fff; padding: 12px 0; font-weight: 600; font-size: 14px; }
.primary-action span, .text-action span { margin-left: 24px; }
.hero-bottom { position: absolute; z-index: 1; bottom: 18px; left: 0; right: 0; display: flex; justify-content: space-between; color: rgba(255,255,255,.86); font-size: 11px; }

.evidence { background: #fff; border-bottom: 1px solid var(--line); }
.evidence-grid { min-height: 156px; display: grid; grid-template-columns: 1.1fr repeat(4,1fr); align-items: stretch; }
.evidence-grid > div { display: flex; flex-direction: column; justify-content: center; padding: 28px 30px; border-right: 1px solid var(--line); }
.evidence-grid > div:first-child { padding-left: 0; }
.evidence-grid > div:last-child { border-right: 0; }
.evidence-lead span { color: var(--blue); font-size: 11px; letter-spacing: .18em; font-weight: 700; }
.evidence-lead strong { font-family: 'Noto Serif JP', serif; font-size: 21px; font-weight: 500; margin-top: 6px; }
.evidence-item b { font-family: 'Noto Serif JP', serif; color: var(--blue); font-size: clamp(28px, 3vw, 42px); line-height: 1.25; font-weight: 500; white-space: nowrap; }
.evidence-item b small { font-family: 'Noto Sans JP', sans-serif; font-size: 13px; margin-left: 3px; }
.evidence-item span { font-size: 11px; color: var(--muted); margin-top: 9px; }
.evidence-item.permit b { font-size: clamp(18px, 2vw, 28px); }
.section-pad { padding: 120px 0; }
.section-heading { display: grid; grid-template-columns: 240px 1fr; gap: 50px; align-items: start; margin-bottom: 54px; }
.section-index, .overline { color: var(--blue); font-size: 11px; font-weight: 700; letter-spacing: .17em; }
.section-index { padding-top: 16px; }
.section-index span { margin: 0 11px; color: #9caaaf; }
.section-heading h2, .large-title { margin: 0; font-family: 'Noto Serif JP', serif; font-weight: 500; font-size: clamp(34px, 4.6vw, 58px); line-height: 1.55; letter-spacing: .04em; }
.section-heading p { color: var(--muted); margin: 14px 0 0; }
.editorial { background: var(--cream); }
.editorial-grid { display: grid; grid-template-columns: minmax(0,1.18fr) minmax(0,.82fr); gap: 85px; align-items: center; }
.editorial-image img { width: 100%; aspect-ratio: 1.28; object-fit: cover; }
.editorial-image small { display: block; color: var(--muted); font-size: 11px; padding-top: 11px; }
.editorial-copy { max-width: 435px; }
.editorial-copy p { line-height: 2.25; }
.editorial-copy .pull-quote { font-family: 'Noto Serif JP', serif; font-size: 29px; line-height: 1.65; margin: 0 0 25px; color: var(--blue-dark); }
.line-link { display: inline-flex; gap: 26px; align-items: center; border-bottom: 1px solid var(--blue); padding: 10px 0; margin-top: 17px; color: var(--blue); font-weight: 700; }
.service-list { border-top: 1px solid var(--ink); }
.service-list a { display: grid; grid-template-columns: 62px 1fr 160px 40px; gap: 22px; align-items: center; min-height: 145px; border-bottom: 1px solid var(--line); transition: padding .25s, background .25s; }
.service-list a:hover { padding-left: 20px; background: #f6f8f8; }
.service-num, .service-en { font-size: 11px; color: var(--blue); letter-spacing: .12em; font-weight: 700; }
.service-list strong { display: block; font-family: 'Noto Serif JP', serif; font-size: 28px; font-weight: 500; line-height: 1.5; }
.service-list small { display: block; font-size: 13px; color: var(--muted); margin-top: 5px; }
.service-arr { font-size: 24px; color: var(--blue); }
.cases-section { background: #f8f9f9; }
.case-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 42px 24px; }
.case-card.featured { grid-column: span 2; }
.case-photo { position: relative; overflow: hidden; background: #d8dfe1; }
.case-photo img { width: 100%; height: 290px; object-fit: cover; transition: transform .5s; }
.case-card.featured .case-photo img { height: 445px; }
.case-card:hover .case-photo img { transform: scale(1.04); }
.case-arrow { position: absolute; right: 0; bottom: 0; display: grid; place-items: center; width: 48px; height: 48px; color: #fff; background: var(--blue); font-size: 18px; }
.case-meta { display: flex; justify-content: space-between; gap: 10px; margin-top: 17px; color: var(--blue); font-size: 10px; font-weight: 700; letter-spacing: .1em; }
.case-card h3 { margin: 7px 0 0; font-family: 'Noto Serif JP', serif; font-weight: 500; font-size: 22px; line-height: 1.6; }
.section-end { display: flex; justify-content: center; margin-top: 64px; }
.outline-button { display: inline-flex; justify-content: space-between; gap: 55px; min-width: 245px; padding: 16px 21px; border: 1px solid var(--blue); color: var(--blue); font-weight: 700; font-size: 13px; }
.outline-button:hover { color: #fff; background: var(--blue); }
.reasons-section { background: #fff; }
.reasons-intro { display:flex; justify-content:space-between; align-items:end; gap:30px; margin:-10px 0 42px; padding-left:25%; }
.reasons-intro p { max-width:530px; margin:0; color:var(--muted); line-height:2; }
.reason-list { border-top:1px solid var(--ink); }
.reason-list > a { display:grid; grid-template-columns:90px minmax(0,1fr) 150px 30px; align-items:center; gap:25px; padding:27px 0; border-bottom:1px solid var(--line); transition:color .18s, padding .18s; }
.reason-list > a:hover { padding-left:14px; color:var(--blue); }
.reason-list span { font:500 25px Georgia,serif; color:var(--blue); }
.reason-list strong { font-family:'Noto Serif JP',serif; font-size:25px; line-height:1.5; font-weight:500; }
.reason-list small { color:var(--muted); font-size:11px; }
.reason-list i { display:grid; place-items:center; width:30px; height:30px; border:1px solid var(--blue); border-radius:50%; font-style:normal; color:var(--blue); }
.closing { background: var(--blue-dark); color: #fff; padding: 85px 0; }
.closing-inner { display: flex; align-items: end; justify-content: space-between; gap: 35px; }
.overline.light { color: #abc9da; }
.closing h2 { font-family: 'Noto Serif JP', serif; font-weight: 500; font-size: clamp(35px, 4vw, 56px); line-height: 1.45; margin: 15px 0 22px; }
.closing p { margin: 0; color: #d8e3e9; }
.closing-actions { display: flex; flex-direction: column; min-width: 320px; gap: 15px; }
.phone-link { font-family: 'Noto Serif JP', serif; font-size: 37px; letter-spacing: .03em; border-bottom: 1px solid rgba(255,255,255,.5); }
.light-button { display: flex; justify-content: space-between; background: #fff; color: var(--blue-dark); padding: 17px 20px; font-weight: 700; font-size: 13px; }
.site-footer { padding: 56px 0 20px; background: #101d25; color: #d0d8db; font-size: 13px; }
.footer-grid { display: flex; justify-content: space-between; gap: 30px; }
.footer-logo { font-family: 'Noto Serif JP', serif; font-size: 26px; color: #fff; }
.site-footer p { line-height: 2; }
.footer-links { display: grid; grid-template-columns: repeat(2,auto); gap: 8px 35px; align-content: start; }
.footer-links a:hover { color: #fff; }
.legal { display: flex; justify-content: space-between; border-top: 1px solid #3f4d54; padding-top: 17px; margin-top: 38px; color: #9aa8af; font-size: 11px; }

.page-hero { background: var(--cream); padding: 76px 0 68px; }
.page-hero h1 { font-family: 'Noto Serif JP', serif; font-size: clamp(52px,6vw,82px); line-height: 1.35; font-weight: 500; margin: 13px 0 22px; letter-spacing: .04em; }
.page-hero p { color: var(--muted); font-size: 17px; line-height: 2; }
.page-count { display: inline-block; color: var(--blue); border-top: 1px solid var(--blue); padding-top: 12px; margin-top: 34px; font-size: 13px; font-weight: 700; }
.listing { background: #fff; }
.listing .case-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
.listing .case-card.featured { grid-column: auto; }
.listing .case-card.featured .case-photo img { height: 290px; }
.detail-top { background: var(--cream); padding: 60px 0 70px; }
.back-link { display: inline-block; color: var(--blue); font-weight: 700; font-size: 12px; margin-bottom: 62px; }
.detail-top .overline { display: block; }
.detail-top h1 { font-family: 'Noto Serif JP', serif; font-size: clamp(36px,4.8vw,64px); line-height: 1.45; font-weight: 500; max-width: 950px; margin: 17px 0 20px; }
.archive-top h1 { font-size: clamp(30px,3.2vw,42px); max-width: 100%; }
.detail-top p { color: var(--muted); margin: 0; }
.detail-main { padding: 0 0 110px; }
.detail-cover { margin-top: -35px; position: relative; }
.detail-cover img { width: 100%; max-height: 720px; object-fit: cover; }
.detail-copy { max-width: 770px; padding: 72px 0; margin: auto; }
.detail-copy h2 { font-family: 'Noto Serif JP', serif; font-size: 34px; font-weight: 500; margin: 13px 0 23px; }
.detail-copy p { font-size: 15px; line-height: 2.1; }
.detail-gallery { display: grid; grid-template-columns: repeat(2,1fr); gap: 20px; margin: 0 0 60px; }
.detail-gallery figure { margin: 0; background: #f1f2f1; }
.detail-gallery img { width: 100%; max-height: 580px; height: 100%; object-fit: cover; }
.about-grid, .service-detail, .contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 110px; }
.about-grid .letter { font-family: 'Noto Serif JP', serif; font-size: 18px; line-height: 2.25; }
.about-grid .letter p { margin: 0 0 25px; }
.signature { text-align: right; font-size: 15px; padding-top: 20px; }
.company-section { background: var(--cream); }
.company-list { margin: 50px 0 0; border-top: 1px solid var(--ink); }
.company-list div { display: grid; grid-template-columns: 230px 1fr; gap: 30px; padding: 23px 0; border-bottom: 1px solid var(--line); }
.company-list dt { font-weight: 700; color: var(--blue); }
.company-list dd { margin: 0; }
.service-hero { position: relative; min-height: 530px; display: flex; align-items: end; color: #fff; overflow: hidden; background: var(--blue-dark); }
.service-hero > img, .service-overlay { position: absolute; inset: 0; height: 100%; width: 100%; }
.service-hero > img { object-fit: cover; }
.service-overlay { background: linear-gradient(90deg,rgba(6,28,42,.84),rgba(6,28,42,.19)); }
.service-hero .container { position: relative; padding: 90px 0; }
.service-hero h1 { font-family: 'Noto Serif JP', serif; font-size: clamp(52px,7vw,90px); font-weight: 500; margin: 10px 0 17px; }
.service-hero p { max-width: 570px; font-size: 18px; }
.service-image-note { position:absolute; right:40px; bottom:22px; color:#fff; font-size:11px; opacity:.9; }
.service-detail p { line-height: 2.2; }
.service-next { background: var(--cream); }
.service-next .outline-button { margin-top: 28px; }
.contact-card { background: var(--cream); padding: 50px; }
.contact-card > span { display: block; color: var(--blue); font-weight: 700; }
.contact-number { display: block; font-family: 'Noto Serif JP',serif; color: var(--blue); font-size: clamp(27px,4vw,48px); margin: 15px 0; white-space: nowrap; }
.journal-list { max-width: 1000px; }
.journal-row { display: grid; grid-template-columns: 100px 1fr 35px; gap: 35px; padding: 28px 0; border-bottom: 1px solid var(--line); align-items: center; }
.journal-row:first-child { border-top: 1px solid var(--ink); }
.journal-row > span { color: var(--blue); font-size: 12px; }
.journal-row strong { font-family: 'Noto Serif JP',serif; font-weight: 500; font-size: 20px; }
.journal-list .outline-button { margin-top: 40px; }
.pagination { display:flex; gap:8px; align-items:center; margin-top:42px; }
.pagination a { min-width:42px; height:42px; display:grid; place-items:center; border:1px solid var(--line); color:var(--blue); }
.pagination a.current { color:#fff; background:var(--blue); border-color:var(--blue); }
.why-intro { display:grid; grid-template-columns:1fr 2fr; gap:40px; align-items:start; margin-bottom:55px; }
.why-intro .overline { grid-column:1; }
.why-intro h2 { grid-column:2; grid-row:1 / span 2; }
.why-intro p { grid-column:1; grid-row:2; color:var(--muted); line-height:2; }
.why-row { display:grid; grid-template-columns:70px 300px 1fr; gap:35px; align-items:start; padding:38px 0; border-top:1px solid var(--line); }
.why-row:last-child { border-bottom:1px solid var(--line); }
.why-row > span { font-family:Georgia,serif; font-size:25px; color:var(--blue); }
.why-row h3 { font-family:'Noto Serif JP',serif; font-size:25px; font-weight:500; margin:0; }
.why-row p { line-height:2; color:var(--muted); margin:0; }
.energy-block { background:var(--cream); }
.energy-grid { display:grid; grid-template-columns:1fr 1fr; gap:90px; }
.energy-grid p { line-height:2.1; }
.energy-grid .line-link { margin-top:22px; }

/* The historical pages retain their original URLs; these rules keep their content readable. */
.article-head { background: var(--cream); padding: 80px 0 60px; }
.article-head h1 { font-family: 'Noto Serif JP',serif; font-size: clamp(34px,5vw,56px); line-height: 1.5; font-weight: 500; }
.article-head .kicker { color: var(--blue); font-size: 11px; font-weight: 700; letter-spacing: .18em; }
.article-head .crumb { color: var(--muted); font-size: 12px; }
.article-shell { padding: 70px 0 110px; }
.article-content { max-width: 880px; margin: auto; overflow-wrap: anywhere; }
.article-content img { max-width: 100%; height: auto; margin: 20px auto; }
.article-content h2 { font-family: 'Noto Serif JP',serif; font-size: 29px; font-weight: 500; }
.article-content p { line-height: 2.1; }
.article-content a { color: var(--blue); text-decoration: underline; }
.article-content [style] { max-width: 100% !important; min-width: 0 !important; }
.article-content .project-visual img { width: 100%; max-height: 640px; object-fit: cover; }
.article-content .project-cta { padding: 30px; background: var(--cream); margin-top: 60px; }
.article-content .project-cta a { display: inline-block; margin-top: 20px; }
.lufro-hero { background:var(--blue-dark); color:#fff; padding:110px 0 0; overflow:hidden; }
.lufro-hero .container { display:grid; grid-template-columns:.86fr 1.14fr; align-items:end; gap:65px; }
.lufro-hero h1 { font-family:'Noto Serif JP',serif; font-size:clamp(56px,7vw,94px); font-weight:500; line-height:1.2; margin:12px 0 18px; }
.lufro-hero p { font-size:18px; line-height:2; margin:0 0 34px; }
.lufro-hero .light-button { display:inline-flex; min-width:220px; justify-content:space-between; }
.lufro-hero .lufro-media { margin:0; }
.lufro-hero .lufro-media img { width:100%; min-height:430px; object-fit:cover; object-position:left center; }
.lufro-intro .container { display:grid; grid-template-columns:1.1fr .9fr; gap:80px; align-items:center; }
.lufro-video { aspect-ratio:16 / 9; background:var(--blue-dark); }
.lufro-video iframe { width:100%; height:100%; border:0; }
.lufro-lead h2 { font-family:'Noto Serif JP',serif; font-weight:500; font-size:clamp(31px,3.5vw,48px); line-height:1.6; margin:16px 0 20px; }
.lufro-lead p { line-height:2.2; }
.lufro-section { background:#fff; }
.lufro-pale { background:var(--cream); }
.lufro-section > .container > .overline { display:block; margin-bottom:11px; }
.lufro-section > .container > .large-title { margin-bottom:62px; }
.lufro-item { display:grid; grid-template-columns:.75fr 1.25fr; align-items:center; gap:80px; padding:50px 0; border-top:1px solid var(--line); }
.lufro-item.reverse > div:first-child { order:2; }
.lufro-item h3 { font-family:'Noto Serif JP',serif; font-size:27px; font-weight:500; line-height:1.65; margin:0 0 18px; }
.lufro-item p { margin:0; line-height:2.15; color:var(--muted); }
.lufro-media { margin:0; }
.lufro-media img { width:100%; max-height:520px; object-fit:contain; background:#fff; }
.lufro-double { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.lufro-voice { background:var(--blue-dark); color:#fff; }
.lufro-voice h2 { font-family:'Noto Serif JP',serif; font-size:clamp(36px,4.2vw,58px); font-weight:500; line-height:1.5; margin:15px 0 45px; }
.lufro-voices { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; margin-bottom:45px; }
.lufro-voices .lufro-media img { background:transparent; max-height:none; }
.lufro-voice .light-button { display:inline-flex; min-width:220px; justify-content:space-between; }

@media (max-width: 1080px) {
  .head-inner { gap: 20px; }
  .desktop-nav { gap: 12px; }
  .desktop-nav-v4 > a, .nav-menu > a { font-size:10px; }
  .evidence-grid { grid-template-columns: repeat(4,1fr); }
  .evidence-lead { grid-column: 1/-1; border-bottom: 1px solid var(--line); }
  .evidence-grid > div:first-child { padding: 18px 0; }
}
@media (max-width: 760px) {
  body { font-size: 14px; padding-bottom: 63px; }
  .container { width: min(calc(100% - 36px),var(--max)); }
  .utility { height: 27px; }
  .utility .container { justify-content: center; }
  .utility a { display: none; }
  .site-header { position: relative; }
  .head-inner { min-height: 65px; }
  .mark { font-size: 29px; }
  .mark-sub { font-size: 8px; }
  .desktop-nav, .head-cta { display: none; }
  .mobile-nav-v3 { position: fixed; bottom: 0; left: 0; right: 0; z-index: 60; display: grid; grid-template-columns: repeat(5,1fr); height: 63px; background: #fff; border-top: 1px solid var(--line); box-shadow: 0 -6px 20px rgba(10,30,40,.08); }
  .mobile-nav-v3 a { display: grid; place-items: center; font-size: 11px; font-weight: 700; border-right: 1px solid var(--line); }
  .mobile-nav-v3 a:last-child { background: var(--blue); color: #fff; }
  .hero-v3 { min-height: 690px; align-items: end; }
  .hero-photo { object-position: 63% center; }
  .hero-shade { background: linear-gradient(0deg,rgba(5,27,41,.9),rgba(5,27,41,.08) 85%); }
  .hero-content { padding: 0 0 91px; }
  .hero-kicker { font-size: 10px; margin-bottom: 14px; }
  .hero-v3 h1 { font-size: clamp(46px,11vw,66px); line-height: 1.34; }
  .hero-lead { margin-top: 20px; font-size: 14px; line-height: 1.9; }
  .hero-lead br { display: none; }
  .hero-actions { gap: 15px; margin-top: 23px; }
  .primary-action { min-width: 0; padding: 12px 13px; font-size: 12px; }
  .text-action { font-size: 12px; }
  .primary-action span, .text-action span { margin-left: 9px; }
  .hero-bottom { bottom: 12px; font-size: 9px; }
  .evidence-grid { grid-template-columns: repeat(2,1fr); }
  .evidence-grid > div { padding: 20px 12px; border-bottom: 1px solid var(--line); }
  .evidence-grid > div:nth-child(3), .evidence-grid > div:nth-child(5) { border-right: 0; }
  .evidence-grid > div:first-child { padding: 16px 0; }
  .evidence-item b { font-size: 30px; }
  .evidence-item.permit b { font-size: 19px; }
  .section-pad { padding: 78px 0; }
  .section-heading { display: block; margin-bottom: 30px; }
  .section-index { padding: 0 0 14px; }
  .section-heading h2, .large-title { font-size: 34px; }
  .editorial-grid, .about-grid, .service-detail, .contact-grid { grid-template-columns: 1fr; gap: 30px; }
  .editorial-copy .pull-quote { font-size: 24px; }
  .service-list a { grid-template-columns: 26px 1fr 26px; gap: 14px; min-height: 117px; }
  .service-list strong { font-size: 22px; }
  .service-list small { font-size: 11px; }
  .service-en { display: none; }
  .case-grid, .listing .case-grid { grid-template-columns: 1fr 1fr; gap: 25px 13px; }
  .case-card.featured { grid-column: span 2; }
  .case-photo img, .listing .case-card.featured .case-photo img { height: 170px; }
  .case-card.featured .case-photo img { height: 260px; }
  .case-card h3 { font-size: 16px; }
  .case-meta { font-size: 9px; }
  .case-arrow { width: 34px; height: 34px; }
  .reasons-intro { display:block; margin:0 0 28px; padding-left:0; }
  .reasons-intro .line-link { display:inline-block; margin-top:20px; }
  .reason-list > a { grid-template-columns:34px minmax(0,1fr) 24px; gap:10px; padding:21px 0; }
  .reason-list span { font-size:18px; }
  .reason-list strong { font-size:18px; }
  .reason-list small { display:none; }
  .reason-list i { width:24px; height:24px; font-size:12px; }
  .closing { padding: 66px 0; }
  .closing-inner, .footer-grid { display: block; }
  .closing-actions { margin-top: 35px; min-width: 0; }
  .phone-link { font-size: 32px; }
  .footer-links { margin-top: 25px; }
  .page-hero { padding: 70px 0; }
  .page-hero h1 { font-size: clamp(36px,10vw,44px); }
  .page-hero p { font-size: 15px; }
  .detail-top h1 { font-size: 36px; }
  .detail-gallery { gap: 9px; }
  .detail-cover { margin-top: -20px; }
  .detail-copy { padding: 50px 0; }
  .company-list div { grid-template-columns: 1fr; gap: 6px; }
  .service-hero { min-height: 450px; }
  .service-hero h1 { font-size: 56px; }
  .contact-card { padding: 28px; }
  .journal-row { grid-template-columns: 1fr 20px; gap: 7px; }
  .journal-row span:first-child { grid-column: 1/-1; }
  .journal-row strong { font-size: 17px; }
  .why-intro, .why-row, .energy-grid { display:block; }
  .why-intro h2 { margin:18px 0; }
  .why-row { padding:28px 0; }
  .why-row h3 { margin:8px 0 12px; font-size:22px; }
  .energy-grid > div + div { margin-top:28px; }
  .lufro-hero { padding:72px 0 0; }
  .lufro-hero .container, .lufro-intro .container, .lufro-item { display:block; }
  .lufro-hero h1 { font-size:54px; }
  .lufro-hero p { font-size:15px; }
  .lufro-hero .lufro-media { margin-top:45px; }
  .lufro-hero .lufro-media img { min-height:0; }
  .lufro-intro .lufro-lead { margin-top:38px; }
  .lufro-section > .container > .large-title { margin-bottom:36px; }
  .lufro-item { padding:32px 0; }
  .lufro-item.reverse > div:first-child { order:initial; }
  .lufro-item > div + div { margin-top:23px; }
  .lufro-item h3 { font-size:22px; }
  .lufro-double { gap:9px; }
  .lufro-voices { grid-template-columns:1fr; gap:10px; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; } }

.lufro-overview { margin-top:30px; }.lufro-overview .lufro-media { max-width:920px; margin:0 auto; }

/* Primary navigation mirrors the service-first menu hierarchy. */
.desktop-nav-v4 { gap:10px; }
.desktop-nav-v4 > a, .nav-menu > a { font-size:10px; letter-spacing:0; }
@media (max-width:1200px) and (min-width:761px) {
  .desktop-nav, .head-cta { display:none; }
  .mobile-nav-v3 { position:fixed; bottom:0; left:0; right:0; z-index:60; display:grid; grid-template-columns:repeat(5,1fr); height:63px; background:#fff; border-top:1px solid var(--line); box-shadow:0 -6px 20px rgba(10,30,40,.08); }
  .mobile-nav-v3 a { display:grid; place-items:center; font-size:11px; font-weight:700; border-right:1px solid var(--line); }
  .mobile-nav-v3 a:last-child { background:var(--blue); color:#fff; }
  body { padding-bottom:63px; }
}

/* Homepage: trust-first structure derived from the reference site's information order. */
.musashi-asahi-hero{min-height:600px;position:relative;overflow:hidden;color:#fff;background:#132b36}.musashi-asahi-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}.musashi-asahi-hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,25,35,.87),rgba(5,25,35,.52) 48%,rgba(5,25,35,.08))}.musashi-asahi-hero-copy{position:relative;padding:148px 0 130px}.musashi-asahi-hero-copy>span,.partner-heading>span,.update-title>span,.cases-head span,.musashi-asahi-journal>div>div>span,.value-text>span{display:block;color:#c8e1d6;font-size:11px;font-weight:700;letter-spacing:.18em}.musashi-asahi-hero h1{font-family:'Noto Serif JP',serif;font-size:clamp(44px,5.4vw,74px);font-weight:500;line-height:1.42;margin:17px 0 22px}.musashi-asahi-hero h1 em{font-style:normal;color:#e1ca93}.musashi-asahi-hero p{font-size:16px;line-height:2;margin-bottom:32px}.musashi-asahi-hero a,.partner-copy>a,.value-text>a{display:inline-flex;align-items:center;gap:50px;background:#fff;color:#102b3c;padding:17px 22px;font-weight:700}.musashi-asahi-hero a b,.partner-copy>a b{font-size:20px}.musashi-asahi-route{background:#f6f4ee}.musashi-asahi-route .container{display:grid;grid-template-columns:repeat(3,1fr)}.musashi-asahi-route a{min-height:134px;padding:29px 40px;position:relative;border-right:1px solid #d8d3c7}.musashi-asahi-route a:first-child{border-left:1px solid #d8d3c7}.musashi-asahi-route small{display:block;color:#67736f;letter-spacing:.13em;font-size:10px}.musashi-asahi-route strong{font:500 27px 'Noto Serif JP',serif;display:block;margin-top:8px}.musashi-asahi-route a>span{position:absolute;right:28px;bottom:28px;color:#2c5b66}.musashi-asahi-facts{background:#173e4b;color:#fff}.musashi-asahi-facts .container{display:grid;grid-template-columns:repeat(4,1fr)}.musashi-asahi-facts dl{margin:0;padding:32px 31px 36px;border-right:1px solid rgba(255,255,255,.18)}.musashi-asahi-facts dl:first-child{border-left:1px solid rgba(255,255,255,.18)}.musashi-asahi-facts dt{font-size:11px;letter-spacing:.08em;color:#c1d8d4}.musashi-asahi-facts dd{font:500 clamp(32px,4vw,55px) Georgia,serif;margin:10px 0 0;color:#fff}.musashi-asahi-facts dd small{font:600 12px 'Noto Sans JP',sans-serif;margin-left:6px;color:#d6e3df}.musashi-asahi-partner{padding:130px 0;background:#fff}.musashi-asahi-partner .container{display:grid;grid-template-columns:.9fr 1.1fr;gap:9vw}.partner-heading h2,.musashi-asahi-reasons h2,.musashi-asahi-total h2,.value-text h2,.cases-head h2,.musashi-asahi-journal h2{font:500 clamp(34px,4vw,55px)/1.42 'Noto Serif JP',serif;margin:16px 0}.partner-copy{max-width:620px}.partner-copy h3{font:500 23px/1.85 'Noto Serif JP',serif;margin:0 0 25px}.partner-copy p{line-height:2.1;color:#4d5a59}.partner-copy .partner-sign{font-weight:700;color:#172b30;margin-top:22px}.partner-copy>a{margin-top:22px;background:#183f4c;color:#fff}.musashi-asahi-updates{padding:0 0 125px;background:#fff}.musashi-asahi-updates .container{display:grid;grid-template-columns:1fr 1fr;gap:64px}.update-title{border-top:2px solid #173e4b;padding:19px 0;position:relative}.update-title span{color:#2a6a69}.update-title h2{font:500 28px 'Noto Serif JP',serif;margin:7px 0}.update-title a{position:absolute;right:0;bottom:26px;color:#1a5961;font-size:13px}.update-block>a,.journal-plain>a{display:grid;grid-template-columns:115px 1fr 22px;gap:15px;padding:16px 0;border-bottom:1px solid #dfe3e0;align-items:center}.update-block time,.journal-plain time{font-size:11px;color:#69716f}.update-block strong,.journal-plain strong{font-size:14px;font-weight:500}.update-block i,.journal-plain i{font-style:normal;color:#1a5961}.mini-work{display:grid!important;grid-template-columns:180px 1fr!important;gap:20px!important;min-height:150px;padding:0!important;border:0!important}.mini-work img{width:180px;height:150px;object-fit:cover}.mini-work div{display:flex;flex-direction:column;justify-content:center;gap:13px}.mini-work strong{font:500 21px 'Noto Serif JP',serif}.mini-work span{font-size:12px;color:#1a5961}.musashi-asahi-reasons{background:#edf3f1;padding:130px 0}.center-label,.musashi-asahi-reasons>div>h2,.musashi-asahi-total>div>h2,.center-copy{text-align:center}.center-label{font-size:11px;letter-spacing:.17em;color:#2a6a69;margin:0}.reason-feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:50px}.reason-feature-grid article{min-height:300px;background:#fff;padding:44px 48px;position:relative}.reason-feature-grid article>span{color:#2a6a69;font:500 20px Georgia,serif}.reason-feature-grid h3{font:500 29px 'Noto Serif JP',serif;margin:24px 0 16px}.reason-feature-grid p{line-height:1.95;color:#596460;max-width:440px}.reason-feature-grid a{position:absolute;bottom:36px;color:#1a5961;font-weight:700;font-size:13px}.musashi-asahi-total{padding:130px 0;background:#fff}.center-copy{max-width:610px;margin:0 auto;color:#596460;line-height:2}.total-service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#dbe1de;margin-top:48px;border:1px solid #dbe1de}.total-service-grid a{padding:38px 36px;background:#fff;min-height:255px;display:flex;flex-direction:column}.total-service-grid span{font:500 18px Georgia,serif;color:#2a6a69}.total-service-grid h3{font:500 28px 'Noto Serif JP',serif;margin:18px 0}.total-service-grid p{font-size:14px;line-height:1.9;color:#56625e;margin:0}.total-service-grid b{font-size:12px;color:#1a5961;margin-top:auto;padding-top:28px}.musashi-asahi-value{background:#183f4c;color:#fff;padding:110px 0}.musashi-asahi-value .container{display:grid;grid-template-columns:.82fr 1.18fr;gap:8vw;align-items:center}.value-text>span{color:#c8e1d6}.value-text p{line-height:2;color:#e1ece9;max-width:480px}.value-text>a{margin-top:17px}.value-card{position:relative;display:block;min-height:370px;overflow:hidden;padding:42px;color:#fff}.value-card:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,rgba(5,20,25,.86),rgba(5,20,25,.05) 72%)}.value-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.value-card span,.value-card strong,.value-card b{position:relative;z-index:1;display:block}.value-card span{font-size:10px;letter-spacing:.16em}.value-card strong{font:500 44px 'Noto Serif JP',serif;margin-top:12px}.value-card b{font-size:12px;margin-top:172px}.musashi-asahi-cases{padding:130px 0}.cases-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:42px}.cases-head span{color:#2a6a69}.cases-head h2{margin-bottom:0}.cases-head>a{font-size:13px;color:#1a5961;border-bottom:1px solid #1a5961;padding-bottom:8px}.musashi-asahi-journal{background:#f6f4ee;padding:110px 0}.musashi-asahi-journal .container{display:grid;grid-template-columns:.8fr 1.2fr;gap:9vw}.musashi-asahi-journal p{line-height:2;color:#596460}.musashi-asahi-journal>div>div>a:not(.journal-plain>a){color:#1a5961;font-weight:700;font-size:13px}.journal-plain{border-top:2px solid #173e4b}.journal-plain>a{grid-template-columns:115px 1fr 22px}
@media(max-width:760px){.musashi-asahi-hero{min-height:520px}.musashi-asahi-hero-copy{padding:85px 0 80px}.musashi-asahi-hero h1{font-size:42px}.musashi-asahi-hero p{font-size:13px}.musashi-asahi-route .container{width:100%;grid-template-columns:1fr}.musashi-asahi-route a{min-height:83px;padding:17px 30px;border-left:0!important;border-bottom:1px solid #d8d3c7}.musashi-asahi-route strong{font-size:21px;margin-top:3px}.musashi-asahi-route a>span{right:28px;bottom:29px}.musashi-asahi-facts .container{width:100%;grid-template-columns:1fr 1fr}.musashi-asahi-facts dl{padding:22px 20px;border-bottom:1px solid rgba(255,255,255,.18)}.musashi-asahi-facts dl:first-child{border-left:0}.musashi-asahi-partner,.musashi-asahi-reasons,.musashi-asahi-total,.musashi-asahi-cases{padding:75px 0}.musashi-asahi-partner .container,.musashi-asahi-updates .container,.musashi-asahi-value .container,.musashi-asahi-journal .container{grid-template-columns:1fr;gap:42px}.partner-copy h3{font-size:18px}.musashi-asahi-updates{padding-bottom:72px}.reason-feature-grid,.total-service-grid{grid-template-columns:1fr}.reason-feature-grid article{min-height:260px;padding:33px 28px}.musashi-asahi-value{padding:75px 0}.value-card{min-height:295px;padding:27px}.value-card b{margin-top:115px}.cases-head{display:block}.cases-head>a{display:inline-block;margin-top:18px}.musashi-asahi-journal{padding:75px 0}.update-block>a,.journal-plain>a{grid-template-columns:90px 1fr 18px}.mini-work{grid-template-columns:120px 1fr!important}.mini-work img{width:120px;height:115px}.mini-work strong{font-size:17px}.journal-plain>a{grid-template-columns:90px 1fr 18px}.total-service-grid a{min-height:205px}.musashi-asahi-hero a,.partner-copy>a,.value-text>a{gap:30px}}
