
:root{--green:#0b5049;--dark:#073d38;--blue:#3d7885;--sand:#f4f1ea;--ink:#15312f;--muted:#687672;--line:#d8dfdc;--max:1180px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:#fff;font-family:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;line-height:1.85}
img{display:block;max-width:100%}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #6db0a0;outline-offset:3px}
.site-header{position:sticky;top:0;z-index:20;height:84px;padding:0 4vw;display:flex;align-items:center;justify-content:space-between;background:rgba(255,255,255,.97);border-bottom:1px solid rgba(11,80,73,.08);backdrop-filter:blur(12px)}
.brand{display:flex;align-items:center;gap:12px}.brand img{width:56px;height:48px;object-fit:cover;border-radius:50%}.brand span{display:flex;flex-direction:column;line-height:1.25}.brand strong{letter-spacing:.12em;font-size:16px}.brand small{font-size:10px;margin-top:5px}
.main-nav{display:flex;align-items:center;gap:22px;font-family:"Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;font-size:12px}.nav-cta{padding:14px 20px;background:var(--green);color:#fff}.menu-btn{display:none;border:0;background:transparent}
.hero{min-height:650px;display:grid;grid-template-columns:42% 58%;background:linear-gradient(90deg,#f4f7f6 0,#eef4f5 42%,#fff 42%)}.hero-copy{padding:90px 7vw;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.hero-image{background:url("assets/hero.webp") center/cover no-repeat;min-height:650px}
.eyebrow{margin:0 0 14px;font-family:Georgia,serif;font-size:12px;letter-spacing:.18em;color:var(--blue)}.eyebrow.light{color:#dceae6}.hero h1,.page-hero h1,.section h2,.concept h2,.contact h2{font-weight:500;letter-spacing:.04em}.hero h1{margin:0;font-size:clamp(42px,4.5vw,72px);line-height:1.45}.hero-lead{font-size:20px;letter-spacing:.14em;margin:18px 0 8px}.hero-copy>p:not(.eyebrow):not(.hero-lead){max-width:500px;font-size:14px}
.btn{display:inline-flex;align-items:center;justify-content:center;margin-top:24px;padding:14px 28px;font-family:"Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;font-size:12px;letter-spacing:.08em}.btn.primary{background:var(--green);color:#fff}.btn.outline{border:1px solid #78908b}.btn.white{border:1px solid rgba(255,255,255,.8);color:#fff}
.section,.content-wrap{max-width:var(--max);margin:0 auto;padding:92px 32px}.intro{display:grid;grid-template-columns:1fr 1.3fr;gap:80px}.section-heading h2,.center-heading h2{font-size:36px;line-height:1.6;margin:0}.intro-text{font-size:16px}.center-heading{text-align:center;margin-bottom:45px}
.business{max-width:1280px}.business-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.business-card{border:1px solid var(--line);background:#fff;overflow:hidden}.business-card img{width:100%;height:190px;object-fit:cover}.card-body{position:relative;padding:30px 24px}.number{position:absolute;right:22px;top:15px;font-size:48px;line-height:1;color:#e4e0d7;font-style:italic}.en{font-family:Georgia,serif;letter-spacing:.12em;font-size:14px;margin:0}.card-body h3{font-size:15px;margin:4px 0 14px}.card-body p{font-size:12px;color:#4e5d59}.card-body a{font-size:12px;color:var(--green);font-weight:700}
.concept{display:grid;grid-template-columns:42% 58%;background:linear-gradient(135deg,var(--dark),#0e6a6d);color:#fff}.concept-copy{padding:70px 7vw}.concept h2{font-size:42px;margin:0 0 24px}.concept p{max-width:560px;font-size:14px}.concept img{width:100%;height:100%;object-fit:cover;min-height:430px}
.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.feature-box{padding:28px;border:1px solid var(--line);background:#fff}.feature-box h3{margin-top:0}.page-hero{padding:96px 6vw 68px;background:linear-gradient(135deg,#eff6f4,#fff)}.page-hero .inner{max-width:1120px;margin:0 auto}.page-hero h1{font-size:clamp(38px,5vw,64px);line-height:1.4;margin:.15em 0}.page-hero p{max-width:760px}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}.lead-large{font-size:22px;line-height:1.9}.business-list{display:grid;gap:28px}.business-row{display:grid;grid-template-columns:280px 1fr;border:1px solid var(--line);overflow:hidden}.business-row img{width:100%;height:100%;min-height:260px;object-fit:cover}.business-row .text{padding:36px}.callout{padding:32px;background:#eef5f3;border-left:4px solid var(--green)}
.company-list{margin:0}.company-list div{display:grid;grid-template-columns:160px 1fr;padding:18px 0;border-top:1px solid var(--line)}.company-list div:last-child{border-bottom:1px solid var(--line)}.company-list dt{font-weight:700;font-size:13px}.company-list dd{margin:0;font-size:13px}
.contact{padding:72px max(5vw,30px);background:var(--dark);color:#fff;display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.contact h2{font-size:40px;margin:0 0 18px}.contact-box{padding:30px;border:1px solid rgba(255,255,255,.35)}
.contact-form{display:grid;gap:18px;max-width:820px}.field{display:grid;gap:7px}.field label{font-weight:700;font-size:13px}.field input,.field textarea,.field select{width:100%;padding:14px 15px;border:1px solid #cfd8d4;background:#fff;font:inherit}.field textarea{min-height:160px}.notice{font-size:12px;color:var(--muted)}.badge{display:inline-block;padding:5px 10px;background:#e9f1ef;color:var(--green);font-size:11px}
.legal h2{margin-top:2.2em}.legal p,.legal li{font-size:14px}.content-wrap a:not(.btn){text-decoration:underline;text-underline-offset:3px}
footer{padding:35px 5vw;background:#062f2c;color:#dbe7e4;display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center;font-family:"Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif}.footer-brand{display:flex;flex-direction:column}.footer-brand strong{letter-spacing:.14em}.footer-brand span{font-size:11px}footer nav{display:flex;gap:20px;font-size:11px}footer small{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.12);padding-top:18px;text-align:center}
@media(max-width:980px){.menu-btn{display:block}.main-nav{display:none;position:absolute;left:0;right:0;top:84px;background:#fff;padding:18px 5vw 28px;flex-direction:column;align-items:stretch}.main-nav.open{display:flex}.main-nav a{padding:13px 0}.hero{grid-template-columns:1fr}.hero-copy{padding:72px 8vw}.hero-image{min-height:430px}.business-grid{grid-template-columns:repeat(2,1fr)}.concept{grid-template-columns:1fr}.two-col{grid-template-columns:1fr}}
@media(max-width:640px){.site-header{height:72px;padding:0 18px}.brand img{width:44px;height:38px}.brand strong{font-size:13px}.brand small{font-size:8px}.main-nav{top:72px}.hero-copy{padding:58px 24px 42px}.hero h1{font-size:40px}.hero-image{min-height:300px}.section,.content-wrap{padding:68px 22px}.intro{grid-template-columns:1fr;gap:22px}.business-grid{grid-template-columns:1fr}.business-row{grid-template-columns:1fr}.business-row img{height:230px}.feature-grid{grid-template-columns:1fr}.concept-copy{padding:54px 24px}.company-list div{grid-template-columns:1fr;gap:5px}.contact{grid-template-columns:1fr;gap:30px;padding:58px 24px}footer{grid-template-columns:1fr}footer nav{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* 2026-08 company/brand content update */
.brand-business-card .brand-logo{width:100%;height:180px;object-fit:contain;background:#fff;padding:24px;box-sizing:border-box;border-bottom:1px solid #e7ecea}
.card-links{display:flex;flex-wrap:wrap;gap:14px 22px;margin-top:16px}
.card-links a{font-weight:600}
.external-link{color:#0b6b62!important}
.company-summary{background:#f5f8f7}
.compact-company{max-width:900px;margin:34px auto 0}
.company-more{text-align:center;margin-top:34px}
.official-site-box{margin:56px 0 0;padding:34px;background:#f5f8f7;border:1px solid #e2e9e6;text-align:center}
.official-site-box img{width:min(100%,520px);height:140px;object-fit:contain;background:#fff;margin-bottom:16px}
@media(max-width:700px){.brand-business-card .brand-logo{height:135px;padding:16px}.official-site-box{padding:22px}.official-site-box img{height:105px}}
