:root{
    --ink:#0b1c44;--navy:#13306e;--navy-2:#1c428f;--navy-deep:#0a1738;
    --accent:#2f6fe0;--sky:#7fb3ef;--silver:#c7d0de;--bg:#ffffff;--mist:#eef2fa;--mist-2:#e1eaf8;
    --line:#d6deee;--muted:#5a6685;--maxw:1140px;--r:14px;
  }
.narrow{max-width:880px}
.btn{display:inline-flex;align-items:center;gap:.6em;font-weight:700;font-size:.95rem;padding:15px 28px;border-radius:999px;transition:transform .25s ease, box-shadow .25s ease, background .25s ease;line-height:1.2}
.page-hero{position:relative;padding:72px 0 56px;overflow:hidden}
.page-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(1000px 460px at 80% -20%, var(--mist) 0%, transparent 60%),radial-gradient(640px 380px at -8% 120%, var(--mist-2) 0%, transparent 55%);z-index:-1}
.crumb{font-size:.8rem;color:var(--muted);margin-bottom:22px}
.page-hero h1{font-family:"Shippori Mincho",serif;font-weight:700;font-size:clamp(2rem,4.6vw,3.1rem);line-height:1.4;margin:16px 0 18px}
.page-hero p{color:#2a3556;max-width:38em}
section.block{padding:84px 0}
.sub-head{max-width:760px;margin:0 auto 40px;text-align:center}
.sub-head h2{font-family:"Shippori Mincho",serif;font-weight:700;font-size:clamp(1.5rem,3vw,2.1rem);margin-top:10px;line-height:1.5}
.sub-head p{color:var(--muted);margin-top:14px}
/* company table */
  .info{max-width:840px;margin:0 auto;border-top:1px solid var(--line)}
.info .row{display:grid;grid-template-columns:200px 1fr;gap:24px;padding:22px 8px;border-bottom:1px solid var(--line)}
.info dt{color:var(--navy);font-weight:700;font-size:.95rem}
.info dd{color:#2a3556;font-size:.96rem}
/* silver cert */
  .cert{display:grid;grid-template-columns:.85fr 1.15fr;gap:50px;align-items:center}
.seal-wrap{display:grid;place-items:center}
.seal{width:260px;height:260px;border-radius:50%;background:linear-gradient(160deg,var(--navy-deep),var(--navy-2));display:grid;place-items:center;text-align:center;position:relative;box-shadow:0 30px 60px -30px rgba(11,28,68,.7)}
.seal::before{content:"";position:absolute;inset:18px;border:1px solid rgba(199,208,222,.45);border-radius:50%}
.seal .inner{position:relative;color:#fff;padding:20px}
.seal .w{font-family:"Shippori Mincho",serif;font-size:2.6rem;font-weight:800;color:var(--silver);line-height:1}
.seal .lbl{font-family:"Figtree",sans-serif;font-size:.62rem;letter-spacing:.2em;color:rgba(255,255,255,.7);margin-top:10px}
.seal .rank{font-family:"Figtree",sans-serif;font-weight:700;letter-spacing:.28em;color:var(--silver);font-size:.8rem;margin-top:8px}
.cert h2{font-family:"Shippori Mincho",serif;font-weight:700;font-size:clamp(1.5rem,3vw,2.1rem);line-height:1.5;margin:14px 0 16px}
.cert p{color:#2a3556;font-size:.98rem;margin-bottom:14px}
.cert .pts{list-style:none;margin-top:6px;display:flex;flex-direction:column;gap:11px}
.cert .pts li{position:relative;padding-left:30px;color:#2a3556;font-size:.95rem}
.cert .pts li::before{content:"";position:absolute;left:3px;top:.45em;width:10px;height:6px;border-left:2.5px solid var(--accent);border-bottom:2.5px solid var(--accent);transform:rotate(-45deg)}
/* workplace gallery */
  .gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px}
.photo{aspect-ratio:16/11;border-radius:14px;background:linear-gradient(155deg,var(--mist),var(--mist-2));border:1px solid var(--line);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--muted);position:relative;overflow:hidden}
.photo svg{width:30px;height:30px;opacity:.45}
.photo .cap{font-size:.78rem;letter-spacing:.06em}
.gallery-note{text-align:center;color:var(--muted);font-size:.85rem;margin-top:20px}
.photo{cursor:pointer;padding:0;font-family:inherit;-webkit-appearance:none;appearance:none;transition:border-color .25s ease, box-shadow .25s ease}
.photo:hover{border-color:var(--accent);box-shadow:0 18px 36px -24px rgba(11,28,68,.45)}
.photo:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
/* lightbox */
  .lb{position:fixed;inset:0;background:rgba(8,15,35,.86);display:none;align-items:center;justify-content:center;z-index:200;padding:30px}
.lb.open{display:flex}
.lb-inner{max-width:540px;width:100%;text-align:center;position:relative}
.lb-inner img{max-width:480px;width:100%;max-height:70vh;border-radius:12px;margin:0 auto;display:block}
.lb-ph{aspect-ratio:16/10;max-width:760px;margin:0 auto;border-radius:12px;background:linear-gradient(155deg,var(--navy-2),var(--navy-deep));display:grid;place-items:center;color:#cdd7ea;font-size:.95rem;padding:20px;text-align:center}
.lb-cap{color:#fff;margin-top:16px;font-size:.95rem;letter-spacing:.04em}
.lb-close{position:fixed;top:22px;right:26px;width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.4);background:transparent;color:#fff;font-size:1.5rem;cursor:pointer;line-height:1;transition:background .25s}
.lb-close:hover{background:rgba(255,255,255,.15)}
/* access */
  .access{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;max-width:980px;margin:0 auto}
.access .ai{padding:42px 40px}
.access .ai h3{font-family:"Shippori Mincho",serif;font-size:1.25rem;margin-bottom:16px}
.access dl{display:grid;grid-template-columns:auto 1fr;gap:12px 20px;font-size:.93rem}
.access dt{color:var(--accent);font-weight:700;white-space:nowrap}
.access dd{color:var(--ink)}
.access .map{min-height:330px}
.access .map iframe{width:100%;height:100%;border:0;display:block}
@media(max-width:900px){
    .cert{grid-template-columns:1fr;gap:34px}
    .access{grid-template-columns:1fr}
    .access .map{min-height:280px;order:2}
  }
@media(max-width:680px){
    section.block{padding:60px 0}
    .info .row{grid-template-columns:1fr;gap:6px;padding:18px 4px}
    .seal{width:220px;height:220px}
    .menu{position:fixed;inset:74px 0 auto 0;flex-direction:column;background:#fff;gap:0;padding:10px 22px 26px;border-bottom:1px solid var(--line);transform:translateY(-130%);transition:transform .35s ease;align-items:stretch}
    .menu.open{transform:translateY(0)}
    .menu a.lk{padding:14px 0;border-bottom:1px solid var(--line)}
    .menu .btn{margin-top:14px;justify-content:center}
    .burger{display:flex}
  }
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}.rv{transition:none;opacity:1;transform:none}.btn{transition:none}}

.photo{position:relative;padding:0;overflow:hidden;cursor:pointer;display:block}
.photo img{width:100%;height:100%;object-fit:cover;display:block}
.photo .cap{position:absolute;left:0;right:0;bottom:0;margin:0;padding:9px 12px;font-size:.8rem;color:#fff;background:linear-gradient(to top,rgba(11,28,68,.72),transparent);letter-spacing:.04em}
.cert-img-wrap{background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px;max-width:340px;margin:0 auto;box-shadow:0 20px 40px -28px rgba(11,28,68,.3)}
.cert-img{width:100%;height:auto;display:block;border-radius:8px}

.slider{position:relative;max-width:880px;margin:0 auto;overflow:hidden;border-radius:16px;border:1px solid var(--line);background:#0a1738}
.slider .slides{display:flex;transition:transform .5s ease}
.slider .slide{min-width:100%;position:relative}
.slider .slide img{width:100%;height:440px;object-fit:cover;display:block}
.slider .scap{position:absolute;left:0;right:0;bottom:0;padding:14px 18px;color:#fff;background:linear-gradient(to top,rgba(11,28,68,.78),transparent);font-size:.92rem;letter-spacing:.04em}
.slider .snav{position:absolute;top:50%;transform:translateY(-50%);width:46px;height:46px;border-radius:50%;border:none;background:rgba(255,255,255,.88);color:var(--navy);font-size:1.7rem;cursor:pointer;display:grid;place-items:center;line-height:1;transition:background .2s}
.slider .snav:hover{background:#fff}
.slider .snav.prev{left:14px}
.slider .snav.next{right:14px}
.slider .dots{position:absolute;bottom:14px;left:0;right:0;display:flex;gap:8px;justify-content:center}
.slider .dots button{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.55);border:none;cursor:pointer;padding:0}
.slider .dots button.active{background:#fff}
@media(max-width:680px){.slider .slide img{height:270px}}

.hscroll-wrap{position:relative}
.hscroll{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 2px 18px;-webkit-overflow-scrolling:touch}
.hscroll::-webkit-scrollbar{height:8px}
.hscroll::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px}
.hscroll .photo{flex:0 0 230px;aspect-ratio:4/3;scroll-snap-align:center;position:relative;border-radius:14px;overflow:hidden;border:1px solid var(--line);cursor:pointer;padding:0;background:var(--mist)}
.hscroll .photo img{width:100%;height:100%;object-fit:cover;display:block}
.hscroll .photo .cap{position:absolute;left:0;right:0;bottom:0;padding:11px 15px;color:#fff;background:linear-gradient(to top,rgba(11,28,68,.74),transparent);font-size:.86rem;letter-spacing:.04em}
.gnav{position:absolute;top:calc(50% - 9px);transform:translateY(-50%);z-index:3;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:rgba(255,255,255,.96);color:var(--navy);font-size:1.6rem;cursor:pointer;display:grid;place-items:center;line-height:1;box-shadow:0 10px 24px -12px rgba(11,28,68,.5)}
.gnav:hover{background:var(--navy);color:#fff}
.gnav.prev{left:-8px}
.gnav.next{right:-8px}
@media(max-width:680px){.hscroll .photo{flex-basis:80vw}.gnav{display:none}}
