:root { --navy:#002f65; --navy2:#00477f; --gold:#b77912; --gold2:#d9b35c; --ink:#052f61; --cream:#fbf8f1; --line:#dfcfac; --soft:#f3f7fb; --white:#fff; }
* { 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",Georgia,serif; line-height:1.8; letter-spacing:.025em; }
a { color:inherit; text-decoration:none; }
button,input,select,textarea { font:inherit; }
button { cursor:pointer; }
.skip { position:fixed; top:-60px; left:16px; z-index:1000; background:var(--navy); color:#fff; padding:10px 16px; }
.skip:focus { top:12px; }
.container { width:min(1180px, calc(100% - 64px)); margin-inline:auto; }
.container.narrow { width:min(1020px, calc(100% - 64px)); }
.header { height:92px; display:flex; align-items:center; padding:0 4.2vw; border-bottom:1px solid #e6ebf1; background:rgba(255,255,255,.97); position:sticky; top:0; z-index:50; }
.brand { width:146px; flex:0 0 auto; display:flex; align-items:center; justify-content:center; }
.brand img { width:100%; height:auto; display:block; }
.nav { margin-left:auto; display:flex; align-items:center; gap:clamp(16px,2.1vw,34px); font-family:Arial,"Noto Sans JP",sans-serif; font-size:14px; font-weight:600; letter-spacing:.02em; }
.nav>a { position:relative; white-space:nowrap; }
.nav>a:not(.contact-link)::after { content:""; position:absolute; height:1px; left:0; right:100%; bottom:-8px; background:var(--gold); transition:.25s; }
.nav>a:hover::after,.nav>a.active::after { right:0; }
.languages { display:flex; gap:0; border-left:1px solid #d8dee7; padding-left:12px; }
.languages button { border:0; background:none; color:var(--ink); padding:5px 7px; font-size:12px; }
.languages button.selected { color:var(--gold); text-decoration:underline; text-underline-offset:5px; }
.contact-link { border:1px solid var(--gold); color:#9a670d; padding:11px 19px; }
.menu { display:none; margin-left:auto; width:42px; height:42px; border:0; background:none; }
.menu span { display:block; height:1px; background:var(--navy); margin:7px 0; }
.hero { min-height:620px; display:grid; grid-template-columns:48% 52%; position:relative; overflow:hidden; background:linear-gradient(100deg,#fff 0%,#f5faff 62%,#eaf4fb 100%); }
.hero-copy { z-index:2; padding:72px 5vw 58px; align-self:center; }
.hero-en { font-family:Arial,sans-serif; font-weight:700; font-size:clamp(42px,4.2vw,68px); letter-spacing:.025em; line-height:1.06; display:block; color:#003b76; }
.hero h1 { white-space:pre-line; font-size:clamp(23px,2.2vw,34px); line-height:1.6; margin:26px 0 15px; font-weight:500; letter-spacing:.09em; }
.hero p { font-family:Arial,"Noto Sans JP",sans-serif; font-size:14px; max-width:630px; line-height:2; margin-bottom:28px; }
.hero-art { position:relative; overflow:hidden; min-height:620px; mask-image:linear-gradient(90deg,transparent 0,#000 25%); }
.hero-art::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(237,247,255,.15),rgba(0,57,103,.08)); }
.hero-art img { position:absolute; width:174%; max-width:none; left:-72%; top:-88px; }
.arrow-link { display:inline-flex; align-items:center; justify-content:center; gap:42px; min-width:190px; padding:12px 20px; background:linear-gradient(135deg,#a66c09,#c58d22); color:#fff; font-family:Arial,"Noto Sans JP",sans-serif; font-size:14px; border:1px solid #a66c09; transition:.2s; }
.arrow-link:hover { filter:brightness(1.06); transform:translateY(-1px); }
.section { padding:92px 0; }
.tint { background:linear-gradient(180deg,#fff,#f7f9fc); border-block:1px solid #eef1f4; }
.section-heading { text-align:center; max-width:900px; margin:0 auto 54px; }
.section-heading>span,.gold-label { color:#a46b11; font-family:Arial,sans-serif; font-size:15px; letter-spacing:.22em; }
.section-heading i { width:92px; height:1px; background:var(--gold2); display:block; margin:14px auto 22px; position:relative; }
.section-heading i::after { content:""; width:7px; height:7px; background:var(--gold); position:absolute; left:50%; top:50%; transform:translate(-50%,-50%) rotate(45deg); }
.section-heading h2 { white-space:pre-line; font-size:clamp(28px,3.1vw,44px); line-height:1.55; font-weight:500; letter-spacing:.08em; margin:0; }
.section-heading p { font-family:Arial,"Noto Sans JP",sans-serif; font-size:15px; line-height:2.1; max-width:830px; margin:20px auto 0; color:#183f6c; }
.mission { background:#fff; }
.mission-flow { display:flex; align-items:center; justify-content:center; gap:clamp(14px,2.8vw,42px); font-family:Arial,sans-serif; font-size:13px; text-align:center; }
.mission-flow span { padding-top:46px; position:relative; }
.mission-flow span::before { content:"◯"; position:absolute; top:0; left:50%; transform:translateX(-50%); font-size:29px; color:var(--gold); }
.mission-flow b { color:var(--gold); font-size:22px; font-weight:400; }
.business-grid { display:grid; gap:0; border-block:1px solid var(--line); }
.business-card { display:grid; grid-template-columns:110px 1fr; grid-template-areas:"no kicker" "no title" "no body"; column-gap:34px; padding:48px 22px; border-bottom:1px solid #e8dcc2; }
.business-card:last-child { border-bottom:0; }
.business-grid.compact { grid-template-columns:repeat(3,1fr); gap:18px; border:0; }
.business-grid.compact .business-card { display:block; min-height:430px; padding:34px; border:1px solid #dde5ee; background:linear-gradient(150deg,#fff 40%,#edf6fc); position:relative; }
.business-no { grid-area:no; color:#ad7416; font-size:42px; line-height:1; border-right:1px solid var(--line); }
.compact .business-no { border:0; font-size:38px; }
.business-kicker { grid-area:kicker; color:#ad7416; font:12px Arial,sans-serif; letter-spacing:.15em; }
.business-card h3 { grid-area:title; font-size:clamp(24px,2.2vw,36px); line-height:1.3; margin:8px 0 16px; font-weight:500; }
.compact h3 { font-size:24px; min-height:62px; }
.business-card p { grid-area:body; font:15px/2 Arial,"Noto Sans JP",sans-serif; margin:0; }
.compact p { font-size:14px; min-height:170px; }
.compact .arrow-link { background:none; color:#a66c09; border:0; padding:8px 0; min-width:0; gap:15px; }
.group-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:42px; margin-top:48px; }
.group-cards article { text-align:center; border:1px solid var(--line); padding:34px 28px 40px; min-height:310px; background:linear-gradient(180deg,#fff,#fbf8f1); box-shadow:0 12px 35px rgba(4,45,86,.05); position:relative; }
.group-cards article:not(:last-child)::after { content:"→"; position:absolute; right:-32px; top:50%; color:var(--gold); font-size:24px; }
.group-icon { font-size:50px; color:var(--gold); }
.group-cards h3 { font-size:25px; margin:8px 0; }
.group-cards i { display:block; width:36px; height:1px; background:var(--gold); margin:15px auto; }
.group-cards p { font:14px/2 Arial,"Noto Sans JP",sans-serif; }
.center { text-align:center; margin-top:38px; }
.group-statement { margin:54px 0 0; border:1px solid var(--line); padding:26px; text-align:center; font:16px Arial,sans-serif; letter-spacing:.06em; }
.group-statement b { color:var(--gold); margin:0 22px; }
.news-home { background:#fbfcfd; }
.news-list { border-top:1px solid #d9e0e8; }
.news-item { display:grid; grid-template-columns:130px 1fr 30px; align-items:center; gap:12px; padding:24px 8px; border-bottom:1px solid #d9e0e8; transition:.2s; }
.news-item:hover { background:#f3f7fb; padding-left:18px; }
.news-item time { font:14px Arial,sans-serif; }
.news-item span,.article-meta span { border:1px solid var(--gold2); color:#9a670d; padding:3px 12px; text-align:center; font:11px Arial,sans-serif; border-radius:2px; }
.news-item strong { font-weight:500; font-size:17px; }
.news-item b { color:var(--gold); font-size:22px; }
.page-hero { min-height:460px; display:flex; align-items:center; position:relative; overflow:hidden; background:radial-gradient(circle at 90% 12%,#d8ecfa 0,transparent 36%),linear-gradient(120deg,#fff,#f5f9fc); border-bottom:1px solid #e8edf2; }
.page-hero .section-heading { margin-bottom:0; }
.page-orbit { position:absolute; width:480px; height:480px; border:1px solid rgba(183,121,18,.25); border-radius:50%; right:-120px; top:-220px; }
.page-orbit::before,.page-orbit::after { content:""; position:absolute; border:1px solid rgba(183,121,18,.16); border-radius:50%; inset:60px; }
.page-orbit::after { inset:130px; }
.message-section { background:var(--navy); color:#fff; }
.message-grid { display:grid; grid-template-columns:42% 58%; gap:70px; }
.message-grid h2 { white-space:pre-line; font-size:36px; font-weight:500; line-height:1.55; }
.message-grid p { font:15px/2.1 Arial,"Noto Sans JP",sans-serif; margin:0 0 20px; color:#e8f0f8; }
.filters { display:flex; justify-content:center; gap:10px; margin-bottom:50px; flex-wrap:wrap; }
.filters button { border:0; border-bottom:1px solid transparent; background:none; color:var(--ink); padding:10px 20px; font:12px Arial,sans-serif; }
.filters .active { color:var(--gold); border-bottom-color:var(--gold); }
.article { padding:100px 0 120px; }
.article-meta { display:flex; gap:20px; align-items:center; font-family:Arial,sans-serif; }
.article h1 { font-size:clamp(30px,4vw,50px); line-height:1.45; font-weight:500; margin:28px 0 48px; }
.article p { font:16px/2.15 Arial,"Noto Sans JP",sans-serif; margin:0 0 24px; }
.article .arrow-link { margin-top:42px; }
.company-table { border-top:2px solid var(--gold); }
.company-row { display:grid; grid-template-columns:240px 1fr; border-bottom:1px solid #d9dee4; min-height:78px; align-items:center; }
.company-row strong { padding:22px 30px; border-right:1px solid #d9dee4; height:100%; display:flex; align-items:center; }
.company-row span,.company-row a { padding:22px 46px; font-family:Arial,"Noto Sans JP",sans-serif; }
.company-row a { text-decoration:underline; text-underline-offset:4px; }
.contact-layout { display:grid; grid-template-columns:30% 1fr; gap:65px; }
.contact-layout aside h2 { font-size:32px; font-weight:500; }
.contact-layout aside p,.contact-details { font:14px/2 Arial,"Noto Sans JP",sans-serif; }
.contact-details { display:flex; flex-direction:column; gap:9px; margin-top:30px; border-top:1px solid var(--line); padding-top:22px; overflow-wrap:anywhere; }
.contact-layout form { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.contact-layout label { font:13px Arial,"Noto Sans JP",sans-serif; font-weight:600; }
.contact-layout input,.contact-layout select,.contact-layout textarea { width:100%; border:1px solid #d6bd8b; background:#fff; color:var(--ink); padding:14px; margin-top:8px; outline:none; }
.contact-layout input:focus,.contact-layout select:focus,.contact-layout textarea:focus { border-color:var(--navy2); box-shadow:0 0 0 3px rgba(0,71,127,.12); }
.contact-layout .full { grid-column:1/-1; }
#check_word{ line-height: 57px; }
.check { display:flex; gap:10px; align-items:flex-start; font-weight:400!important; }
.check input { width:18px; margin-top:2px; }
.privacy-notice { border:1px solid #dfc58e; background:#fffdf8; padding:20px 22px; }
.privacy-notice h3 { margin:0 0 9px; color:var(--navy); font-size:16px; }
.privacy-notice p { margin:0; color:#34516f; font:13px/1.8 Arial,"Noto Sans JP",sans-serif; }
.privacy-notice a { color:#0a5796; text-decoration:underline; text-underline-offset:3px; }
.submit { width:220px; border:0; background:linear-gradient(135deg,#a66c09,#c58d22); color:#fff; padding:15px 24px; display:flex; justify-content:space-between; }
.honeypot { position:absolute!important; left:-10000px!important; }
.staging-note { font:12px Arial,sans-serif; color:#65788f; margin:14px 0; }
.success { background:var(--cream); padding:60px; text-align:center; border:1px solid var(--line); }
.success b { display:inline-grid; place-items:center; width:60px; height:60px; border:1px solid var(--gold); border-radius:50%; color:var(--gold); font-size:28px; }
.contact-cta { padding:65px 0; background:linear-gradient(115deg,#f9f4e9,#eef7fc); border-top:1px solid var(--line); }
.contact-cta .container { display:flex; justify-content:space-between; align-items:center; gap:40px; }
.contact-cta h2 { font-size:30px; margin:2px 0; }
.contact-cta p { font:14px/1.8 Arial,"Noto Sans JP",sans-serif; max-width:700px; margin:0; }
.contact-cta>div>div>span { color:var(--gold); letter-spacing:.18em; font-family:Arial,sans-serif; }
.policy { padding:72px 0 110px; }
.policy-markdown { color:#173c68; font-family:Arial,"Noto Sans JP","Yu Gothic",sans-serif; font-size:15px; line-height:2; }
.policy-markdown h2 { color:var(--navy); font-family:"Yu Mincho","Noto Serif JP",Georgia,serif; font-size:25px; line-height:1.55; margin:48px 0 16px; padding-bottom:12px; border-bottom:1px solid #dfc99d; }
.policy-markdown h2:first-child { margin-top:0; }
.policy-markdown h3 { color:#9f690e; font-size:17px; line-height:1.6; margin:30px 0 10px; }
.policy-markdown p { margin:0 0 17px; white-space:pre-line; }
.policy-markdown ol,.policy-markdown ul { margin:0 0 22px; padding-left:1.6em; }
.policy-markdown li { margin:5px 0; padding-left:.25em; }
.policy-markdown a { color:#0a5796; text-decoration:underline; text-underline-offset:3px; }
.policy-markdown em { color:#64758a; font-size:13px; }
.footer { background:linear-gradient(120deg,#003368,#004b80); color:#fff; padding:50px 0 28px; }
.footer-main { display:grid; grid-template-columns:220px 1fr 260px; gap:45px; align-items:start; }
.footer-id { display:flex; flex-direction:column; gap:5px; padding-right:30px; border-right:1px solid rgba(255,255,255,.3); }
.footer-id span,.footer-id strong { font-weight:400; }
.footer-links { display:grid; grid-template-columns:repeat(3,1fr); gap:14px 24px; font-size:14px; }
.footer-contact { display:flex; flex-direction:column; gap:6px; font:13px/1.8 Arial,sans-serif; padding-left:30px; border-left:1px solid rgba(255,255,255,.3); }
.footer-contact span { opacity:.75; font-size:11px; margin-top:8px; }
.footer-bottom { border-top:1px solid rgba(255,255,255,.22); margin-top:36px; padding-top:25px; display:flex; justify-content:space-between; gap:25px; font-size:12px; }
.footer-bottom>div { display:flex; gap:26px; }
.cookie { position:fixed; z-index:90; bottom:20px; left:50%; transform:translateX(-50%); width:min(860px,calc(100% - 32px)); background:#fff; border:1px solid var(--line); box-shadow:0 14px 60px rgba(0,35,70,.2); display:flex; align-items:center; justify-content:space-between; gap:28px; padding:20px 24px; }
.cookie p { font:13px/1.7 Arial,"Noto Sans JP",sans-serif; margin:0; }
.cookie>div { display:flex; gap:8px; flex:0 0 auto; }
.cookie button { border:1px solid var(--navy); background:#fff; color:var(--navy); padding:9px 13px; font:12px Arial,sans-serif; }
.cookie button.accept { background:var(--navy); color:#fff; }
#footer_logo{ width: 160px;aspect-ratio: 229 / 104; }
@media (max-width:1020px) {
  .header { height:78px; padding-inline:24px; }
  .brand { width:126px; }
  .menu { display:block; }
  .nav { position:fixed; display:none; inset:78px 0 auto 0; background:#fff; margin:0; padding:25px 30px 35px; flex-direction:column; align-items:stretch; gap:0; box-shadow:0 18px 30px rgba(0,40,80,.12); }
  .nav.open { display:flex; }
  .nav>a { padding:12px 0; border-bottom:1px solid #edf0f3; }
  .languages { border-left:0; padding:15px 0; }
  .contact-link { margin-top:10px; text-align:center; }
  .hero { grid-template-columns:1fr; min-height:auto; }
  .hero-copy { padding:70px 7vw 75px; }
  .hero-art { position:absolute; inset:0; opacity:.16; min-height:0; mask-image:linear-gradient(90deg,transparent,#000); }
  .hero-art img { width:1200px; left:auto; right:-320px; top:-50px; }
  .business-grid.compact { grid-template-columns:1fr; }
  .business-grid.compact .business-card { min-height:auto; }
  .compact p,.compact h3 { min-height:auto; }
  .contact-layout { grid-template-columns:1fr; }
  .footer-main { grid-template-columns:1fr 1fr; }
  .footer-contact { grid-column:1/-1; border-left:0; padding:25px 0 0; border-top:1px solid rgba(255,255,255,.2); }
}

@media (max-width:700px) {
  .container,.container.narrow { width:min(100% - 36px,1180px); }
  .section { padding:66px 0; }
  .hero-copy { padding:58px 24px 66px; }
  .hero-en { font-size:42px; }
  .hero h1 { font-size:23px; letter-spacing:.04em; }
  .hero p { font-size:13px; }
  .section-heading { margin-bottom:38px; }
  .section-heading h2 { font-size:27px; letter-spacing:.04em; }
  .section-heading p { font-size:14px; text-align:left; }
  .mission-flow { display:grid; grid-template-columns:1fr auto 1fr auto 1fr; gap:10px; }
  .mission-flow span:nth-of-type(4),.mission-flow span:nth-of-type(5),.mission-flow b:nth-of-type(4) { display:none; }
  .business-card { display:block; padding:34px 8px; }
  .business-no { border:0; margin-bottom:18px; }
  .business-card h3 { font-size:25px; }
  .group-cards { grid-template-columns:1fr; gap:24px; }
  .group-cards article:not(:last-child)::after { content:"↓"; right:50%; top:auto; bottom:-24px; transform:translate(50%,50%); background:#fff; padding:0 8px; }
  .news-item { grid-template-columns:1fr auto; gap:8px; }
  .news-item time,.news-item span { justify-self:start; }
  .news-item strong { grid-column:1/-1; }
  .news-item b { position:absolute; right:28px; }
  .message-grid { grid-template-columns:1fr; gap:30px; }
  .message-grid h2 { font-size:29px; }
  .company-row { grid-template-columns:1fr; }
  .company-row strong { border-right:0; background:#f5f7fa; padding:12px 18px; }
  .company-row span,.company-row a { padding:16px 18px; }
  .contact-layout form { grid-template-columns:1fr; }
  .contact-layout .full { grid-column:1; }
  .contact-cta .container { flex-direction:column; align-items:flex-start; }
  .footer-main { grid-template-columns:1fr; }
  .footer-id { border-right:0; border-bottom:1px solid rgba(255,255,255,.22); padding:0 0 22px; }
  .footer-links { grid-template-columns:1fr 1fr; }
  .footer-contact { grid-column:auto; }
  .footer-bottom { flex-direction:column; }
  .footer-bottom>div { flex-wrap:wrap; gap:12px 20px; }
  .cookie { align-items:stretch; flex-direction:column; gap:12px; }
  .cookie>div { flex-wrap:wrap; }
}

@media (prefers-reduced-motion:reduce) { * { scroll-behavior:auto!important; transition:none!important; } }

/* Attachment-fidelity visual pass */
:root { --navy:#052f63; --navy-deep:#003463; --gold:#b67a16; --line:#dcc18b; --paper:#fff; --wash:#f8fbfd; }
body { background:var(--paper); color:var(--navy); font-family:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",Georgia,serif; font-weight:500; }
.container { width:min(1180px,calc(100% - 96px)); }
.container.narrow { width:min(1040px,calc(100% - 96px)); }
.header { height:88px; padding:0 max(38px,4vw); background:#fff; border-bottom:1px solid #e9edf1; position:sticky; }
.brand { width:146px; }
.nav { gap:clamp(22px,3.3vw,56px); font-family:"Yu Gothic","Hiragino Kaku Gothic ProN","Noto Sans JP",Arial,sans-serif; font-size:14px; color:#002f63; }
.nav>a { font-weight:700; }
.nav>a:not(.contact-link)::after { bottom:-14px; }
.languages { border:0; padding:0; margin-left:5px; }
.languages button { font-size:12px; font-weight:700; padding:5px 7px; }
.contact-link { min-width:124px; text-align:center; padding:10px 17px!important; color:#a46a09; background:#fff; border:1px solid #b98732!important; }

.hero { height:500px; min-height:500px; display:block; position:relative; background:#eaf3f8; }
.hero-art { position:absolute; inset:0; min-height:0; mask-image:none; }
.hero-art::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(255,255,255,.94) 0%,rgba(255,255,255,.78) 31%,rgba(255,255,255,.42) 55%,rgba(255,255,255,.10) 76%,rgba(255,255,255,.02) 100%); }
.hero-art img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; max-width:none; }
.hero-copy { position:relative; z-index:2; width:min(1180px,calc(100% - 96px)); height:100%; margin:auto; padding:54px 0 42px; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; }
.hero-en { font-family:Arial,sans-serif; font-size:clamp(42px,4.3vw,64px); line-height:1.04; letter-spacing:.005em; text-shadow:0 2px 18px rgba(255,255,255,.98); }
.hero h1 { font-size:clamp(23px,2.15vw,31px); line-height:1.5; margin:23px 0 10px; letter-spacing:.11em; text-shadow:0 2px 16px #fff; }
.hero p { max-width:650px; width:58%; margin:0 0 25px; font-size:13px; line-height:1.75; text-shadow:0 1px 12px #fff; color:#082f5d; }
.arrow-link { min-width:200px; min-height:46px; padding:10px 22px; border-radius:1px; background:#b47a16; box-shadow:0 4px 12px rgba(143,93,12,.12); font-size:14px; }

.section { padding:66px 0; }
.section-heading { margin-bottom:34px; }
.section-heading>span,.gold-label { font-size:14px; letter-spacing:.19em; color:#a2690c; }
.section-heading i { width:72px; margin:9px auto 15px; }
.section-heading h2 { font-size:clamp(25px,2.6vw,36px); line-height:1.45; letter-spacing:.1em; }
.section-heading p { max-width:820px; margin-top:12px; font-size:13px; line-height:1.85; }
.mission { padding:38px 0 46px; }
.mission .section-heading { margin-bottom:25px; }
.mission .section-heading p { max-width:650px; }
.mission-flow { display:flex; justify-content:center; align-items:center; gap:0; }
.mission-step { min-width:145px; position:relative; display:flex; align-items:center; flex-direction:column; gap:6px; color:#062f62; font:13px/1 Arial,sans-serif; }
.mission-step svg { color:#b47810; }
.mission-step b { position:absolute; right:-12px; top:20px; color:#b47810; font-size:23px; font-weight:400; }

.tint { padding:26px 0 31px; background:#fbfcfd; border-block:1px solid #edf0f3; }
.tint .section-heading { margin-bottom:13px; }
.business-grid.compact { gap:16px; }
.business-grid.compact .business-card { height:315px; min-height:315px; padding:23px 24px 20px; overflow:hidden; background:#fff; border:1px solid #dce3e9; box-shadow:none; }
.business-photo { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
.compact .business-card::after { content:""; position:absolute; inset:0; background:rgba(255,255,255,.66); z-index:1; }
.compact .business-card>*:not(.business-photo) { position:relative; z-index:2; }
.compact .business-no { font-size:35px; margin-bottom:8px; }
.compact .business-kicker { display:none; }
.compact .business-card h3 { min-height:auto; font-size:22px; line-height:1.25; margin:5px 0 11px; max-width:260px; }
.compact .business-card p { min-height:auto; font-size:12.5px; line-height:1.9; max-width:290px; }
.compact .business-card .arrow-link { margin-top:8px; min-height:0; font-size:12px; }

.home-group-section { padding:28px 0 30px; }
.home-group-section .section-heading { margin-bottom:14px; }
.home-group { display:grid; grid-template-columns:1fr 36px 1fr 36px 1fr; align-items:center; }
.home-group>a { min-height:140px; border:1px solid #d8bb7d; display:grid; grid-template-columns:56px 1fr; grid-template-areas:"icon title" "icon copy"; padding:16px 20px; align-items:center; background:#fff; }
.home-group>a svg { grid-area:icon; color:#b47810; }
.home-group>a strong { grid-area:title; font-size:19px; font-weight:500; }
.home-group>a span { grid-area:copy; font:11px/1.55 "Yu Gothic","Noto Sans JP",sans-serif; }
.home-group>b { text-align:center; color:#b47810; font-size:20px; font-weight:400; }
.news-home { padding:22px 0 25px; background:#fff; }
.news-home .section-heading { margin-bottom:8px; }
.news-home .section-heading h2 { display:none; }
.news-list { border-top:1px solid #d8dfe6; }
.news-item { padding:15px 13px; grid-template-columns:130px 1fr 28px; }
.news-item strong { font-size:14px; }
.news-home .center { margin-top:8px; }
.news-home .arrow-link { background:none; border:0; color:#a66c09; box-shadow:none; min-height:0; padding:3px 10px; }

.page-hero { min-height:485px; background-color:#f8fbfd; background-repeat:no-repeat; background-size:cover; background-position:center; border-bottom:1px solid #e8edf1; display:block; }
.page-hero .container { min-height:485px; position:relative; display:flex; align-items:center; justify-content:center; }
.page-hero-news { background-image:url('/images/news-hero-v20260823-r3.png'); }
.page-hero-company { background-image:url('/images/company-hero-v20260823-r2.png'); }
.page-hero-group { background-image:url('/images/group-hero-v20260823-r2.png'); }
.page-hero-business { background-image:url('/images/business-hero-v20260823-r2.png'); }
.page-hero-contact,.page-hero-policy,.page-hero-about { background-color:#f4f9fd; }
.breadcrumb { position:absolute; left:0; top:24px; display:flex; gap:14px; align-items:center; font:12px Arial,sans-serif; letter-spacing:.06em; }
.breadcrumb b { font-weight:500; }
.page-hero-copy { text-align:center; width:min(880px,90%); margin-top:28px; }
.page-hero-copy h1 { margin:0; font:500 clamp(44px,5vw,66px)/1 Georgia,"Times New Roman",serif; letter-spacing:.16em; color:#07346a; }
.page-hero-copy i { display:block; width:92px; height:1px; background:#c79c4d; margin:27px auto 25px; position:relative; }
.page-hero-copy i::after { content:""; width:7px; height:7px; background:#b67a16; transform:translate(-50%,-50%) rotate(45deg); position:absolute; left:50%; top:50%; }
.page-hero-copy h2 { white-space:pre-line; margin:0; font-size:clamp(27px,3vw,40px); line-height:1.5; font-weight:500; letter-spacing:.1em; }
.page-hero-copy p { white-space:pre-line; margin:20px auto 0; max-width:730px; font-size:14px; line-height:2; }
.page-hero-news .page-hero-copy p { display:none; }
.page-hero-company .page-hero-copy { transform:translateX(-70px); }
.page-hero-group .page-hero-copy,.page-hero-business .page-hero-copy { transform:translateX(-60px); }

.business-detail-section { padding:38px 0 44px; }
.business-grid:not(.compact) { border:0; }
.business-grid:not(.compact) .business-card { min-height:250px; display:grid; grid-template-columns:210px 100px 1fr; grid-template-rows:auto auto auto; grid-template-areas:"icon no title" "icon no kicker" "icon no body"; column-gap:28px; padding:36px 20px; align-items:center; border-bottom:1px solid #e1d3b7; }
.business-grid:not(.compact) .business-icon { grid-area:icon; width:160px; height:160px; border-radius:50%; background:#fbf7ef; display:flex; align-items:center; justify-content:center; flex-direction:column; gap:5px; color:#b47810; }
.business-icon span { color:#0a356a; font:15px Georgia,serif; }
.business-grid:not(.compact) .business-no { grid-area:no; border-right:1px solid #d9bc7f; height:100%; display:flex; align-items:flex-start; padding-top:5px; font-size:38px; }
.business-grid:not(.compact) .business-kicker { grid-area:kicker; font-size:13px; }
.business-grid:not(.compact) h3 { grid-area:title; margin:0; font-size:31px; }
.business-grid:not(.compact) p { grid-area:body; font-size:14px; line-height:2; }

.group-cards { gap:54px; margin-top:20px; }
.group-cards article { min-height:410px; padding:28px 26px 125px; overflow:hidden; box-shadow:0 8px 22px rgba(4,45,86,.08); }
.group-cards article>img { position:absolute; left:0; right:0; bottom:0; width:100%; object-fit:cover; }
.group-icon { color:#b47810; display:flex; justify-content:center; }
.group-cards h3 { font-size:24px; }
.group-cards p { font-size:13px; line-height:2; }
.group-cards article:not(:last-child)::after { right:-40px; }
.group-statement { font:15px/2 "Yu Gothic","Noto Sans JP",sans-serif; padding:28px; background:#fff; }

.news-page { padding:46px 0 70px; }
.filters { gap:30px; margin-bottom:38px; }
.filters button { min-width:130px; font-family:Georgia,serif; font-size:13px; }
.featured-news { display:grid; grid-template-columns:260px 1fr 45px; align-items:center; gap:34px; padding:26px; background:#fbf9f4; margin-bottom:16px; }
.featured-news>img { width:260px; height:170px; object-fit:cover; }
.featured-news h2 { margin:12px 0 9px; font-size:24px; font-weight:500; }
.featured-news p { margin:0; font:13px/1.9 "Yu Gothic","Noto Sans JP",sans-serif; }
.featured-news>a { color:#b47810; font-size:28px; }
.news-page .news-list { display:none; }

.company-table { border-top:2px solid #b67a16; }
.company-row { min-height:90px; grid-template-columns:240px 1fr; }
.company-row strong { padding:24px 38px; background:#fbfcfd; }
.company-row span,.company-row a { padding:24px 58px; font-family:Georgia,"Yu Mincho",serif; }

.contact-section { padding:52px 0 50px; }
.contact-layout { grid-template-columns:32% 1fr; gap:48px; }
.contact-layout aside { padding-top:10px; }
.contact-layout aside h2 { font-size:29px; margin:18px 0; }
.contact-layout aside p { font:13px/2 "Yu Gothic","Noto Sans JP",sans-serif; }
.required-note { margin-top:36px!important; color:#9d670e; }
.contact-layout form { gap:22px 24px; }
.contact-layout input,.contact-layout select,.contact-layout textarea { min-height:52px; border-color:#d9b66c; padding:13px 16px; }
.contact-layout textarea { min-height:145px; }
.submit { margin-left:55px; width:230px; min-height:54px; background:#b47a16; }
.contact-info-section { border-top:1px solid #e1c790; padding:40px 0 45px; }
.contact-info { display:grid; grid-template-columns:32% 1fr; gap:48px; }
.contact-info h2 { margin-top:20px; font-size:28px; }
.contact-info-list>div { min-height:76px; display:grid; grid-template-columns:54px 180px 1fr; gap:15px; align-items:center; border-bottom:1px solid #e3c98f; font-size:14px; }
.contact-info-list svg { color:#b47810; }
.contact-info-list strong { font-weight:500; }

.footer { padding:34px 0 20px; background:#00376c; }
.footer-main { grid-template-columns:1fr 260px; gap:38px; }
.footer-id,.footer-contact { font-size:13px; }
.footer-links { display:flex; gap:28px; align-items:center; font-size:13px; }
.footer-bottom { margin-top:24px; padding-top:19px; }
.web{ display: block; }
.rwd{ display: none; }
.mission_svg{ width: 50px;height: 50px; }
@media (max-width:1020px) {
  .nav>a:not(.contact-link)::after{ all:unset; }
  .page-hero-copy { margin: 50px 0 20px 0; }
  .mission-flow{ display: block; }
  .mission_svg{ width: 150px;height: 150px; }
  .mission-step { font: 30px / 1 Arial, sans-serif; }
  .mission-step b{ position: unset; padding: 20px 0 20px 0; font-size: 69px; }
  .mission-flow span { padding-top:130px; }
  .mission-flow span::before { font-size:87px; }
  .web{ display: none; }
  .rwd{ display: block; }
  .header { height:76px; padding-inline:24px; position:sticky; }
  .brand { width:126px; }
  .nav { inset:76px 0 auto 0; }
  .hero { height:470px; min-height:470px; }
  .hero-copy { width:min(100% - 48px,1180px); }
  .hero p { width:70%; }
  .business-grid.compact { grid-template-columns:1fr 1fr; }
  .business-grid.compact .business-card:last-child { grid-column:1/-1; }
  .home-group { grid-template-columns:1fr; gap:10px; }
  .home-group>b { transform:rotate(90deg); }
  /* .page-hero .container { height:440px; } */
  .page-hero { min-height:440px; }
  .page-hero-company .page-hero-copy,.page-hero-group .page-hero-copy,.page-hero-business .page-hero-copy { transform:none; }
  .footer-main { grid-template-columns:1fr 1fr; }
}

@media (max-width:700px) {
  .brand { width:120px; }
  .container,.container.narrow { width:calc(100% - 36px); }
  .hero { height:520px; min-height:520px; }
  .hero-art img { object-position:68% center; opacity:.45; }
  .hero-copy { width:calc(100% - 36px); padding:40px 0; }
  .hero-en { font-size:39px; }
  .hero p { width:100%; }
  .mission-step { min-width:92px; }
  /* .mission-step:nth-child(4),.mission-step:nth-child(5) { display:none; } */
  .mission-step b { right:-7px; }
  .business-grid.compact { grid-template-columns:1fr; }
  .business-grid.compact .business-card:last-child { grid-column:auto; }
  /* .page-hero,.page-hero .container { min-height:390px; } */
  .breadcrumb { top:17px; }
  .page-hero-copy h1 { font-size:39px; letter-spacing:.1em; }
  .page-hero-copy h2 { font-size:25px; }
  .page-hero-copy p { font-size:12px; }
  .business-grid:not(.compact) .business-card { display:block; padding:32px 5px; }
  .business-grid:not(.compact) .business-icon { margin:0 auto 24px; }
  .business-grid:not(.compact) .business-no { border:0; height:auto; margin-bottom:8px; }
  .business-grid:not(.compact) h3 { font-size:25px; }
  .group-cards { grid-template-columns:1fr; gap:28px; }
  .featured-news { grid-template-columns:1fr; }
  .featured-news>img { width:100%; height:auto; }
  .featured-news>a { position:absolute; right:30px; }
  .company-row { grid-template-columns:1fr; }
  .contact-layout,.contact-info { grid-template-columns:1fr; }
  .submit { margin-left:0; }
  .contact-info-list>div { grid-template-columns:44px 1fr; }
  .contact-info-list>div>*:last-child { grid-column:2; }
  .footer-main { grid-template-columns:1fr; }
  .footer-links { display:grid; grid-template-columns:1fr 1fr; }
  #footer_logo{ margin: 0 auto; }
  .footer-contact span{ text-align: center; }
}


/* Pure-static enhancements */
.languages a { color:var(--ink); padding:5px 7px; font:700 12px Arial,"Noto Sans JP",sans-serif; }
.languages a.selected { color:var(--gold); text-decoration:underline; text-underline-offset:5px; }
.form-status { min-height:1.6em; margin:0; color:#9a310b; font:13px/1.6 Arial,"Noto Sans JP",sans-serif; }
.form-status.success { color:#17623a; }
.submit[disabled] { opacity:.65; cursor:wait; }
@media (max-width:1020px) { .languages a { padding:7px 9px; } }
