:root{--navy:#415986;--slate:#7b8aa8;--slate-dark:#56688c;--bg:#fff;--panel:#fff;--tint:#f4f6fb;--tint-2:#e7edf7;--blush:#fbf4f5;
--line:rgba(65,89,134,.14);--field:rgba(65,89,134,.38);--link:rgba(65,89,134,.55);--r:20px;--r-sm:12px;
--shadow:0 1px 2px rgba(33,52,92,.05),0 10px 28px rgba(33,52,92,.08);
--font-en:"Avenir Next",Avenir,"Helvetica Neue",Helvetica,Arial,"Hiragino Sans","Yu Gothic","Noto Sans JP",sans-serif;
--font-ja:"Avenir Next","Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic","Noto Sans JP",Meiryo,sans-serif}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--navy);font-family:var(--font-en);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}
html[lang=ja] body{font-family:var(--font-ja);font-size:16px;line-height:1.9}
a{color:inherit;text-decoration:underline;text-decoration-color:var(--link);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{text-decoration-color:var(--navy)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,.slider:focus-visible{outline:2px solid var(--navy);outline-offset:3px;border-radius:6px}
.nw{white-space:nowrap}.mt{margin-top:28px}
.skip{position:absolute;left:-9999px;top:0;background:var(--navy);color:#fff;padding:10px 14px;z-index:50;border-radius:8px}.skip:focus{left:8px;top:8px}
.wrap{max-width:1120px;margin:0 auto;padding:0 16px}.txt{max-width:760px}
.sec{padding:48px 0}.sec-tight{padding:4px 0 8px}.tint{background:var(--tint)}.blush{background:var(--blush)}
.hd{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.9);-webkit-backdrop-filter:saturate(1.4) blur(12px);backdrop-filter:saturate(1.4) blur(12px)}
.hd-in{display:flex;align-items:center;justify-content:space-between;height:58px}.hd a{text-decoration:none}
.logo{height:19px;width:auto;display:block}
.hd .lang{font-size:13px;font-weight:500;background:var(--tint);border-radius:999px;padding:8px 16px;min-height:40px;display:inline-flex;align-items:center}
.hd .lang:hover{background:var(--tint-2)}
.tabs{position:sticky;top:58px;z-index:19;background:rgba(255,255,255,.9);-webkit-backdrop-filter:saturate(1.4) blur(12px);backdrop-filter:saturate(1.4) blur(12px);
border-bottom:1px solid var(--line);display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:6px 10px 8px}
.tabs a{text-align:center;padding:9px 2px;font-size:13px;font-weight:500;border-radius:999px;text-decoration:none;white-space:nowrap;color:var(--slate-dark);transition:background .2s,color .2s}
.tabs a:hover{background:var(--tint)}.tabs a.on{background:var(--navy);color:#fff}
section[id]{scroll-margin-top:116px}
.chip{display:inline-block;font-size:12.5px;font-weight:500;letter-spacing:.03em;color:var(--navy);background:var(--tint-2);border-radius:999px;padding:6px 14px;margin:0 0 18px}
h1{font-size:34px;font-weight:500;line-height:1.18;letter-spacing:-.015em;margin:0 0 18px;text-wrap:balance}
html[lang=ja] h1{font-size:30px;line-height:1.4;letter-spacing:.01em}
h2{font-size:28px;font-weight:500;line-height:1.25;letter-spacing:-.01em;margin:0 0 16px;text-wrap:balance}
html[lang=ja] h2{font-size:24px;line-height:1.5;letter-spacing:.01em}
h3{font-size:17px;font-weight:500;margin:0 0 12px}
html[lang=ja] h1,html[lang=ja] h2,html[lang=ja] h3,html[lang=ja] .lead,html[lang=ja] li,html[lang=ja] dt,html[lang=ja] dd,html[lang=ja] .ml,html[lang=ja] .card p,html[lang=ja] .note-box p{word-break:auto-phrase}
p{margin:0 0 14px}.lead{font-size:17px;line-height:1.75;color:var(--slate-dark)}.narrow{max-width:720px}
.small{font-size:14px;line-height:1.65;color:var(--slate-dark)}
.hero{padding:28px 0 28px}.hero-grid{display:grid;gap:26px;align-items:center}.hero-txt .lead{margin:0}
.hero-img{display:block;width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;border-radius:var(--r);box-shadow:var(--shadow)}
.metrics{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}
.m{background:var(--tint);border-radius:var(--r-sm);padding:16px 16px 14px}
.mv{font-size:21px;font-weight:500;line-height:1.25;margin-bottom:4px}.ml{font-size:13px;color:var(--slate-dark);line-height:1.5}
.grid2,.grid3{display:grid;grid-template-columns:1fr;gap:14px;margin-top:8px}
ul{padding:0;list-style:none;margin:0}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:22px;box-shadow:var(--shadow)}
.card p{margin:0}.card.soft{background:var(--tint);border-color:transparent;box-shadow:none}
.ticks li,.crosses li{position:relative;padding:6px 0 6px 34px}
.ticks li::before,.crosses li::before{position:absolute;left:0;top:calc(6px + .825em - 11px);width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;line-height:1}
html[lang=ja] .ticks li::before,html[lang=ja] .crosses li::before{top:calc(6px + .95em - 11px)}
.ticks li::before{content:"\2713";background:var(--navy);color:#fff}
.crosses li::before{content:"\2013";background:#fff;color:var(--slate-dark);border:1px solid var(--line)}
.dash li{position:relative;padding:3px 0 3px 18px}.dash li::before{content:"";position:absolute;left:2px;top:calc(3px + .8em - 3px);width:6px;height:6px;border-radius:50%;background:var(--slate)}
html[lang=ja] .dash li::before{top:calc(3px + .95em - 3px)}
.note-box{background:var(--tint-2);border-radius:var(--r);padding:20px 22px;margin:14px 0}.note-box p{margin:0}.note-box h3{margin-bottom:8px}
.kvs{margin:14px 0 0;padding:4px 22px}.kv{display:grid;grid-template-columns:1fr;gap:2px;padding:14px 0;border-bottom:1px solid var(--line)}.kv:last-child{border-bottom:0}
.kv dt{font-size:13px;font-weight:500;color:var(--slate-dark)}.kv dd{margin:0}
.co-note{font-size:14.5px;margin:10px 0 0;color:var(--slate-dark)}
.slider{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding:6px 4px 20px;margin:0 -4px;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.rv{flex:0 0 84%;scroll-snap-align:start;background:#fff;border-radius:var(--r);padding:22px 22px 20px;margin:0;box-shadow:var(--shadow);display:flex;flex-direction:column}
.qm{font-family:Georgia,"Times New Roman",serif;font-size:56px;line-height:1;height:30px;color:var(--slate);opacity:.45;display:block}
.rv blockquote{margin:0;flex:1}.rv p{margin:0 0 18px;font-size:15px;line-height:1.7;font-family:var(--font-en)}
.rv figcaption{display:flex;gap:12px;align-items:center;font-size:13px;color:var(--slate-dark);line-height:1.45}
.rv figcaption b{display:block;color:var(--navy);font-weight:500;font-size:14px}
.av{flex:none;width:38px;height:38px;border-radius:50%;background:var(--tint-2);color:var(--navy);display:flex;align-items:center;justify-content:center;font-weight:500;font-size:15px}
.num{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;background:var(--tint-2);font-size:13px;font-weight:500;margin-bottom:14px}
.quote-line{margin:18px 0 40px}.tl-h{margin:0 0 18px}
.tl li{position:relative;display:grid;grid-template-columns:1fr;gap:2px;padding:0 0 22px 28px}
.tl li::before{content:"";position:absolute;left:0;top:7px;width:11px;height:11px;border-radius:50%;background:var(--navy);box-shadow:0 0 0 4px var(--tint-2)}
.tl li::after{content:"";position:absolute;left:5px;top:24px;bottom:2px;width:1px;background:var(--field)}
.tl li:last-child{padding-bottom:0}.tl li:last-child::after{display:none}
.tl .y{font-weight:500;font-size:15px;color:var(--slate-dark)}
.contact-grid{display:grid;gap:22px}.contact-grid>*,.hero-grid>*,.dates .row>*,.form>*{min-width:0}.f input[type=date]{min-width:0;max-width:100%}
.form{display:grid;gap:16px}.form-card{padding:22px}.hp{position:absolute;left:-9999px}
.f label,.f legend{display:block;font-size:13.5px;font-weight:500;color:var(--navy);margin-bottom:6px;padding:0}
.f input,.f select,.f textarea{display:block;width:100%;min-height:48px;border:1px solid var(--field);border-radius:var(--r-sm);background:#fff;font:inherit;font-size:16px;color:var(--navy);padding:11px 14px;-webkit-appearance:none;appearance:none;transition:border-color .15s,box-shadow .15s}
.f input:focus,.f select:focus,.f textarea:focus{border-color:var(--navy);box-shadow:0 0 0 4px var(--tint-2);outline:none}
.f select{padding-right:40px;background-image:linear-gradient(45deg,transparent 50%,var(--navy) 50%),linear-gradient(135deg,var(--navy) 50%,transparent 50%);background-position:calc(100% - 22px) 21px,calc(100% - 17px) 21px;background-size:5px 5px;background-repeat:no-repeat}
fieldset.f{border:0;padding:0;margin:0}.dates .row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.dates .row span{display:block;font-size:13px;margin-bottom:4px;font-weight:400;color:var(--slate-dark)}
.chk{display:flex;gap:12px;align-items:flex-start;font-size:15px}.chk input{width:24px;height:24px;margin:2px 0 0;accent-color:var(--navy);flex:none}.chk label{padding:2px 0}
.btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--navy);border-radius:999px;padding:13px 28px;font:inherit;font-size:15px;font-weight:500;min-height:50px;cursor:pointer;background:#fff;color:var(--navy);text-decoration:none;transition:transform .15s,box-shadow .15s,background .15s}
.btn:hover{transform:translateY(-1px);box-shadow:var(--shadow)}.btn.primary{background:var(--navy);color:#fff;width:100%}.btn.primary:hover{background:#384d75}
.ft{background:var(--navy);color:rgba(255,255,255,.82);padding:44px 0 40px;font-size:14px}.ft .logo{height:20px;margin-bottom:16px}.ft p{margin:0 0 8px}
.ft a{color:#fff;text-decoration-color:rgba(255,255,255,.45)}.ft a:hover{text-decoration-color:#fff}
.ft-links{display:flex;flex-wrap:wrap;gap:2px 20px}.ft-links a{padding:8px 0}
.doc h1{font-size:30px}.doc h2{font-size:20px;margin:30px 0 10px}.doc ul{list-style:disc;padding-left:1.3em}.doc li{padding:3px 0}.doc hr{border:0;border-top:1px solid var(--line);margin:36px 0 22px}
html[lang=ja] .doc li,html[lang=ja] .doc p{word-break:normal}
@media (min-width:768px){
 .wrap{padding:0 24px}
 .sec{padding:clamp(64px,6vw,96px) 0}.sec-tight{padding:0 0 24px}.hero{padding:clamp(44px,5vw,72px) 0 clamp(40px,4vw,56px)}
 .hd-in{height:68px}.logo{height:21px}
 .tabs{top:68px;display:flex;justify-content:center;gap:6px;padding:8px 24px 10px}.tabs a{padding:8px 20px;font-size:14px}
 section[id]{scroll-margin-top:128px}
 h1{font-size:clamp(40px,4.4vw,58px)}html[lang=ja] h1{font-size:clamp(34px,3.5vw,46px)}
 h2{font-size:clamp(30px,3vw,40px)}html[lang=ja] h2{font-size:clamp(26px,2.6vw,32px)}
 .lead{font-size:19px}html[lang=ja] .lead{font-size:17px}
 .hero-grid{grid-template-columns:1.05fr 1fr;gap:56px}.hero-img{aspect-ratio:4/3}
 .metrics{grid-template-columns:repeat(4,1fr);gap:14px}.m{padding:22px 22px 18px}.mv{font-size:26px}
 .grid2{grid-template-columns:1fr 1fr;gap:18px}.grid3{grid-template-columns:repeat(3,1fr);gap:18px}
 .card{padding:28px}.kvs{padding:6px 28px}.kv{grid-template-columns:160px 1fr;gap:24px;padding:16px 0}
 .note-box{padding:24px 28px}
 .rv{flex-basis:360px}
 .tl li{grid-template-columns:90px 1fr;gap:20px}
 .contact-grid{grid-template-columns:1fr 1.2fr;gap:56px;align-items:start}.contact-txt{position:sticky;top:150px}
 .form-card{padding:34px}.btn.primary{width:auto;justify-self:start}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
