*,*::before,*::after{box-sizing:border-box}*{margin:0}
:root{color-scheme:light dark;--bg:#f2ede3;--surface:#fbf8f1;--strong:#fff;--ink:#122b38;--soft:#5c6870;--accent:#ae523c;--accent-ink:#fff;--line:rgba(18,43,56,.16);--line-strong:rgba(18,43,56,.28);--header:rgba(251,248,241,.94);--shadow:0 24px 60px rgba(35,28,20,.09);--shade:rgba(8,17,23,.38);--serif:"Yu Mincho","YuMincho","Hiragino Mincho ProN","Noto Serif JP",serif;--sans:"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic Medium","Meiryo",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
@media(prefers-color-scheme:dark){:root{--bg:#071728;--surface:#0b2032;--strong:#102a3e;--ink:#f4f0e7;--soft:#aebdca;--accent:#d2b073;--accent-ink:#071728;--line:rgba(210,225,237,.15);--line-strong:rgba(210,225,237,.3);--header:rgba(7,23,40,.94);--shadow:0 24px 70px rgba(0,0,0,.28);--shade:rgba(2,12,24,.5)}}
html[data-theme=light]{color-scheme:light;--bg:#f2ede3;--surface:#fbf8f1;--strong:#fff;--ink:#122b38;--soft:#5c6870;--accent:#ae523c;--accent-ink:#fff;--line:rgba(18,43,56,.16);--line-strong:rgba(18,43,56,.28);--header:rgba(251,248,241,.94);--shadow:0 24px 60px rgba(35,28,20,.09);--shade:rgba(8,17,23,.38)}
html[data-theme=dark]{color-scheme:dark;--bg:#071728;--surface:#0b2032;--strong:#102a3e;--ink:#f4f0e7;--soft:#aebdca;--accent:#d2b073;--accent-ink:#071728;--line:rgba(210,225,237,.15);--line-strong:rgba(210,225,237,.3);--header:rgba(7,23,40,.94);--shadow:0 24px 70px rgba(0,0,0,.28);--shade:rgba(2,12,24,.5)}
@media(prefers-color-scheme:dark){:root:not([data-theme]) .purpose,:root:not([data-theme]) .business,:root:not([data-theme]) .brands,:root:not([data-theme]) .contact{--bg:#f3f5f5;--surface:#f3f5f5;--strong:#fff;--ink:#10283a;--soft:#586874;--accent:#9a7b4f;--accent-ink:#fff;--line:rgba(16,40,58,.14);--line-strong:rgba(16,40,58,.26);color:var(--ink)}}
html[data-theme=dark] .purpose,html[data-theme=dark] .business,html[data-theme=dark] .brands,html[data-theme=dark] .contact{--bg:#f3f5f5;--surface:#f3f5f5;--strong:#fff;--ink:#10283a;--soft:#586874;--accent:#9a7b4f;--accent-ink:#fff;--line:rgba(16,40,58,.14);--line-strong:rgba(16,40,58,.26);color:var(--ink)}
html{scroll-behavior:smooth}body{min-width:320px;background:var(--bg);color:var(--ink);font-family:var(--sans);line-height:1.8;-webkit-font-smoothing:antialiased;overflow-x:hidden;transition:background-color .3s,color .3s}img{display:block;max-width:100%}button,a{font:inherit}a{color:inherit}::selection{background:var(--accent);color:var(--accent-ink)}
.skip-link{position:fixed;top:8px;left:8px;z-index:2000;padding:10px 14px;background:var(--ink);color:var(--surface);transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}
.site-header{position:fixed;inset:0 0 auto;z-index:1000;height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(20px,5vw,76px);background:var(--header);border-bottom:1px solid var(--line);backdrop-filter:blur(18px);transition:background-color .3s,box-shadow .3s}.site-header.scrolled{box-shadow:0 12px 32px rgba(4,13,24,.12)}
.brand{display:inline-flex;align-items:center;gap:12px;text-decoration:none;min-width:208px}.brand img{width:34px;height:34px}.brand-copy{display:flex;flex-direction:column;line-height:1.2}.brand-ja{font-family:var(--serif);font-size:.94rem;font-weight:700;letter-spacing:.08em}.brand-en{margin-top:3px;color:var(--soft);font-size:.58rem;letter-spacing:.2em}
.desktop-nav{display:flex;align-items:center;gap:clamp(18px,2.2vw,34px)}.desktop-nav>a{color:var(--soft);font-size:.69rem;font-weight:700;letter-spacing:.13em;text-decoration:none;transition:color .2s}.desktop-nav>a:hover,.desktop-nav>a:focus-visible{color:var(--accent)}
.header-tools{display:flex;align-items:center;gap:14px}.language-switch{display:flex;align-items:center;gap:3px}.lang-button,.theme-button,.menu-button{border:0;background:transparent;color:var(--soft);cursor:pointer}.lang-button{padding:6px 7px;font-size:.65rem;font-weight:700;letter-spacing:.08em;border-bottom:1px solid transparent}.lang-button.active{color:var(--accent);border-color:var(--accent)}.theme-button{min-width:66px;padding:7px 10px;border:1px solid var(--line-strong);font-size:.61rem;font-weight:700;letter-spacing:.12em}.theme-button:hover,.theme-button:focus-visible{border-color:var(--accent);color:var(--accent)}.menu-button{display:none;width:68px;height:38px;border:1px solid var(--line-strong);color:var(--ink);font-size:.68rem;font-weight:700;letter-spacing:.1em}
.mobile-panel{display:none;position:fixed;inset:76px 0 auto;z-index:990;padding:20px clamp(20px,5vw,76px) 28px;background:var(--surface);border-bottom:1px solid var(--line);box-shadow:var(--shadow)}.mobile-panel.open{display:block}.mobile-panel a{display:flex;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--line);color:var(--ink);font-size:.82rem;font-weight:700;letter-spacing:.08em;text-decoration:none}.mobile-tools{display:flex;justify-content:space-between;align-items:center;padding-top:18px}
.hero{position:relative;min-height:min(860px,100svh);display:flex;align-items:flex-end;overflow:hidden;background:#0b1b27}.hero-media,.hero-media img{position:absolute;inset:0;width:100%;height:100%}.hero-media img{object-fit:cover;object-position:center}.hero-night{opacity:0}.hero-media::after{content:"";position:absolute;inset:0;background:var(--shade)}
@media(prefers-color-scheme:dark){:root:not([data-theme]) .hero-day{opacity:0}:root:not([data-theme]) .hero-night{opacity:1}}html[data-theme=dark] .hero-day{opacity:0}html[data-theme=dark] .hero-night{opacity:1}html[data-theme=light] .hero-day{opacity:1}html[data-theme=light] .hero-night{opacity:0}
.hero-inner{position:relative;z-index:2;width:min(1180px,88%);margin:0 auto;padding:160px 0 94px;color:#fff}.eyebrow{display:inline-flex;align-items:center;gap:10px;color:var(--accent);font-size:.65rem;font-weight:700;letter-spacing:.24em;text-transform:uppercase}.eyebrow::before{content:"";width:28px;height:1px;background:currentColor}.hero .eyebrow{color:#e3c38a}.hero-title{max-width:670px;margin-top:24px;font-family:var(--serif);font-size:clamp(3rem,6.4vw,6.1rem);font-weight:500;letter-spacing:.02em;line-height:1.16;text-wrap:balance}.hero-title span{display:block}.hero-lead{max-width:620px;margin-top:26px;color:rgba(255,255,255,.82);font-size:clamp(.88rem,1.4vw,1.02rem);letter-spacing:.08em}.hero-meta{display:flex;align-items:center;gap:26px;margin-top:44px;font-size:.66rem;font-weight:700;letter-spacing:.17em}.hero-meta a{text-decoration:none;border-bottom:1px solid rgba(255,255,255,.48);padding-bottom:6px}
.section{padding:clamp(82px,10vw,150px) 6vw}.shell{width:min(1180px,100%);margin:0 auto}.section-kicker{color:var(--accent);font-size:.65rem;font-weight:700;letter-spacing:.23em;text-transform:uppercase}.section-title{margin-top:16px;font-family:var(--serif);font-size:clamp(2rem,4vw,3.8rem);font-weight:500;letter-spacing:.03em;line-height:1.35;text-wrap:balance}.section-intro{max-width:640px;margin-top:22px;color:var(--soft);font-size:.92rem}
.purpose{background:var(--surface)}.purpose-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(48px,8vw,110px);align-items:start}.purpose-statement{padding-right:3vw}.purpose-statement .section-title{max-width:560px}.purpose-note{max-width:510px;margin-top:32px;padding-left:26px;border-left:1px solid var(--accent);color:var(--soft);font-size:.93rem}.message-card{padding:8px 0 8px clamp(28px,4vw,58px);border-left:1px solid var(--line-strong)}.message-card h3{margin-bottom:26px;font-family:var(--serif);font-size:1.15rem;font-weight:600;letter-spacing:.08em}.message-card p{color:var(--soft);font-size:.9rem}.message-card p+p{margin-top:16px}.message-signature{margin-top:28px!important;padding-top:20px;border-top:1px solid var(--line);color:var(--ink)!important;font-size:.76rem!important}
.group{background:var(--bg)}.section-head{display:flex;justify-content:space-between;gap:32px;align-items:end;margin-bottom:54px}.section-head .section-intro{margin-top:0;max-width:460px}.company-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.company-card{position:relative;min-width:0;background:var(--strong);border:1px solid var(--line);text-decoration:none;overflow:hidden;box-shadow:0 10px 28px rgba(15,31,42,.04);transition:transform .25s,border-color .25s,box-shadow .25s}.company-card:hover,.company-card:focus-visible{transform:translateY(-7px);border-color:var(--accent);box-shadow:var(--shadow)}.company-image{aspect-ratio:4/3;overflow:hidden;background:var(--surface)}.company-image img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.company-card:hover .company-image img{transform:scale(1.025)}.company-body{padding:28px 28px 32px}.company-index{color:var(--accent);font-family:var(--serif);font-size:.82rem;font-style:italic;letter-spacing:.08em}.company-name{margin-top:12px;font-family:var(--serif);font-size:clamp(1.2rem,2vw,1.58rem);font-weight:600;line-height:1.45}.company-est{margin-top:8px;color:var(--soft);font-size:.7rem}.company-description{margin-top:18px;color:var(--soft);font-size:.82rem}.company-link{display:inline-block;margin-top:22px;padding-bottom:5px;border-bottom:1px solid var(--accent);color:var(--ink);font-size:.7rem;font-weight:700;letter-spacing:.08em}
.business{background:var(--surface)}.business-list{margin-top:58px;border-top:1px solid var(--line-strong)}.business-row{display:grid;grid-template-columns:80px minmax(170px,.55fr) .9fr 1.1fr;gap:28px;align-items:center;padding:30px 0;border-bottom:1px solid var(--line)}.business-number{color:var(--accent);font-family:var(--serif);font-size:1rem;font-style:italic}.business-row h3{font-family:var(--serif);font-size:1.28rem;font-weight:600}.business-row p{color:var(--soft);font-size:.81rem}.business-thumb{aspect-ratio:16/8;overflow:hidden}.business-thumb img{width:100%;height:100%;object-fit:cover}
.brands{background:var(--bg)}.brand-strip{display:grid;grid-template-columns:repeat(4,1fr);margin-top:54px;border-block:1px solid var(--line-strong)}.brand-item{min-width:0;padding:34px 24px;text-align:center}.brand-item+.brand-item{border-left:1px solid var(--line)}.brand-item strong{display:block;font-size:.95rem;letter-spacing:.04em}.brand-item span{display:block;margin-top:8px;color:var(--soft);font-size:.68rem}
.contact{padding:0;background:var(--surface)}.contact-grid{display:grid;grid-template-columns:1fr 1fr;min-height:520px}.contact-visual{position:relative;overflow:hidden;min-height:430px}.contact-visual img{width:100%;height:100%;object-fit:cover}.contact-visual::after{content:"";position:absolute;inset:0;background:rgba(7,23,40,.18)}.contact-copy{display:flex;flex-direction:column;justify-content:center;padding:clamp(64px,8vw,112px)}.contact-copy .section-title{font-size:clamp(2rem,3.5vw,3.25rem)}.contact-details{display:grid;gap:10px;margin-top:28px;color:var(--soft);font-size:.8rem}.contact-details a{text-decoration:none}.contact-details a:hover{color:var(--accent)}.primary-link{align-self:flex-start;margin-top:32px;padding:14px 28px;background:var(--accent);color:var(--accent-ink);text-decoration:none;font-size:.76rem;font-weight:700;letter-spacing:.08em;transition:transform .2s,opacity .2s}.primary-link:hover,.primary-link:focus-visible{transform:translateY(-2px);opacity:.9}
footer{padding:54px 6vw 34px;background:#071728;color:#edf2f5}.footer-main{width:min(1180px,100%);margin:0 auto;display:flex;justify-content:space-between;gap:40px;align-items:flex-start}.footer-main .brand{color:#edf2f5}.footer-main .brand-en{color:rgba(237,242,245,.52)}.footer-nav{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:18px 28px;max-width:600px}.footer-nav a{color:rgba(237,242,245,.62);font-size:.68rem;text-decoration:none}.footer-nav a:hover{color:#d2b073}.footer-bottom{width:min(1180px,100%);margin:36px auto 0;padding-top:22px;border-top:1px solid rgba(237,242,245,.14);color:rgba(237,242,245,.42);font-size:.66rem}:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
@media(max-width:1040px){.desktop-nav{display:none}.menu-button{display:block}.header-tools>.language-switch,.header-tools>.theme-button{display:none}.purpose-grid{gap:54px}.company-body{padding:24px 22px 28px}}
@media(max-width:820px){.site-header{height:68px}.brand{min-width:0}.brand-ja{font-size:.84rem}.brand-en{font-size:.52rem}.brand img{width:31px;height:31px}.mobile-panel{inset:68px 0 auto}.hero{min-height:760px}.hero-inner{width:calc(100% - 40px);padding:138px 0 72px}.hero-media img{object-position:62% center}.hero-title{max-width:580px;font-size:clamp(2.65rem,11vw,4.8rem)}.purpose-grid{grid-template-columns:1fr}.message-card{padding-left:24px}.section-head{align-items:start;flex-direction:column;margin-bottom:38px}.company-grid{grid-template-columns:1fr;gap:18px}.company-card{display:grid;grid-template-columns:minmax(220px,.86fr) 1fr}.company-image{aspect-ratio:auto;min-height:300px}.business-row{grid-template-columns:48px 1fr;gap:16px 20px}.business-row h3{align-self:center}.business-row p{grid-column:2}.business-thumb{grid-column:1/-1;margin-top:8px}.brand-strip{grid-template-columns:repeat(2,1fr)}.brand-item:nth-child(3){border-left:0;border-top:1px solid var(--line)}.brand-item:nth-child(4){border-top:1px solid var(--line)}.contact-grid{grid-template-columns:1fr}.contact-visual{min-height:360px}.contact-copy{padding:74px 6vw 84px}}
@media(max-width:580px){.site-header{padding-inline:16px}.brand-copy{max-width:188px}.brand-ja{white-space:nowrap}.section{padding:72px 20px}.hero{min-height:680px}.hero-inner{width:calc(100% - 40px);padding-bottom:54px}.hero-media img{object-position:66% center}.hero-title{max-width:340px;margin-top:18px;font-size:clamp(2.38rem,12vw,3.35rem);line-height:1.2}.hero-lead{max-width:330px;margin-top:20px;font-size:.82rem;letter-spacing:.04em}.hero-meta{gap:18px;margin-top:34px;font-size:.58rem}.purpose-note{padding-left:18px}.message-card{padding:26px 0 0;border-left:0;border-top:1px solid var(--line-strong)}.company-card{display:block}.company-image{min-height:0;aspect-ratio:16/10}.company-body{padding:24px 22px 28px}.business-list{margin-top:40px}.business-row{padding:26px 0}.business-thumb{aspect-ratio:16/10}.brand-strip{margin-top:40px}.brand-item{padding:26px 12px}.brand-item strong{font-size:.8rem}.contact-visual{min-height:270px}.contact-copy{padding:62px 20px 72px}.primary-link{width:100%;text-align:center}.footer-main{flex-direction:column}.footer-nav{justify-content:flex-start}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition-duration:.01ms!important}}
