:root{--navy:#0c263a;--navy2:#173c57;--blue:#6f91a5;--ice:#edf2f4;--paper:#fff;--ink:#1b2329;--muted:#66737b;--line:#d7e0e4;--max:1200px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.95 "Noto Sans JP","Yu Gothic",Meiryo,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}img,svg{display:block;max-width:100%}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.45}h2{font-size:clamp(2rem,3.7vw,3.6rem);font-weight:500;letter-spacing:.06em}.container{width:min(calc(100% - 72px),var(--max));margin:auto}.section{padding:clamp(95px,10vw,160px) 0}.eyebrow,.section-no{font-family:Inter,Arial,sans-serif;font-size:.72rem;font-weight:700;letter-spacing:.22em}.eyebrow{color:var(--blue);margin-bottom:24px}.section-no{color:#9aacb6;margin-bottom:12px}.skip-link{position:fixed;top:-60px;left:20px;z-index:999;background:var(--navy);color:#fff;padding:10px 18px}.skip-link:focus{top:20px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.site-header{position:fixed;inset:0 0 auto;z-index:100;height:94px;color:#fff;transition:.35s;background:linear-gradient(180deg,rgba(5,19,29,.65),transparent)}.site-header.scrolled,.subpage .site-header{height:72px;background:rgba(8,31,47,.96);border-bottom:1px solid rgba(255,255,255,.1)}.header-inner{width:min(calc(100% - 72px),var(--max));height:100%;margin:auto;display:flex;align-items:center;justify-content:space-between}.wordmark{display:flex;flex-direction:column;line-height:1}.wordmark strong{font:600 1.35rem/1 Inter,Arial,sans-serif;letter-spacing:.2em}.wordmark span{margin-top:8px;font:500 .55rem/1 Inter,Arial,sans-serif;letter-spacing:.21em;color:#bfd0da}.global-nav{display:flex;height:100%;align-items:center;gap:48px}.global-nav a{position:relative;display:flex;align-items:center;height:100%;font:600 .76rem/1 Inter,Arial,sans-serif;letter-spacing:.18em}.global-nav a:after{content:"";position:absolute;bottom:22px;left:0;width:0;height:1px;background:#fff;transition:.25s}.global-nav a:hover:after,.global-nav a.active:after{width:100%}.menu-toggle{display:none;width:44px;height:44px;background:none;border:0}.menu-toggle>span:not(.sr-only){display:block;width:24px;height:1px;margin:6px auto;background:#fff;transition:.25s}.hero{position:relative;min-height:820px;color:#fff;overflow:hidden}.hero-image,.hero-shade{position:absolute;inset:0}.hero-image{background:url("hero-hotel-v2.png") center/cover no-repeat;transform:scale(1.01)}.hero-shade{background:linear-gradient(90deg,rgba(4,19,30,.92) 0%,rgba(7,28,43,.72) 37%,rgba(8,28,42,.16) 70%,rgba(8,28,42,.18) 100%)}.hero-inner{position:relative;z-index:2;min-height:820px;display:flex;align-items:center}.hero-copy{max-width:700px;padding-top:62px}.hero-brand{margin:0 0 18px;font:300 clamp(3.8rem,8vw,7.8rem)/.9 Inter,Arial,sans-serif;letter-spacing:.08em}.hero-kicker{margin-bottom:45px;font:600 .68rem/1 Inter,Arial,sans-serif;letter-spacing:.26em;color:#bbccd6}.hero h1{margin-bottom:28px;font-size:clamp(1.65rem,3vw,2.7rem);font-weight:500;letter-spacing:.08em}.hero h1 span{display:block;white-space:nowrap}.hero-lead{max-width:610px;color:#d7e1e6}.hero-caption{position:absolute;right:0;bottom:42px;margin:0;font:500 .62rem/1 Inter,Arial,sans-serif;letter-spacing:.2em;color:#c1d0d8}.view-link{display:inline-flex;align-items:center;gap:32px;margin-top:28px;padding-bottom:8px;border-bottom:1px solid #9aacb6;font:600 .72rem/1 Inter,Arial,sans-serif;letter-spacing:.18em;color:var(--navy)}.view-link span{transition:.25s}.view-link:hover span{transform:translateX(5px)}.view-link.light{color:#fff;border-color:rgba(255,255,255,.5)}.editorial-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:10vw}.section-title h2{color:var(--navy)}.section-copy{padding-top:55px;max-width:670px}.lead-copy{font-size:clamp(1.2rem,2vw,1.6rem);line-height:2}.business-home{background:var(--navy);color:#fff}.section-intro{max-width:780px;margin-bottom:65px}.section-intro.dark h2{margin-bottom:25px}.section-intro.dark>p:last-child{color:#b8c9d3}.business-cards{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid rgba(255,255,255,.18);border-bottom:1px solid rgba(255,255,255,.18)}.business-card{min-height:380px;padding:45px 36px;border-right:1px solid rgba(255,255,255,.18)}.business-card:last-child{border-right:0}.business-card>span{font:500 .65rem Inter,Arial,sans-serif;color:#87a6b8}.card-en{margin:28px 0 70px;font:400 1.35rem/1.4 Inter,Arial,sans-serif;letter-spacing:.09em}.business-card h3{font-size:1.08rem;font-weight:500}.business-card p:last-child{color:#b8c9d3;font-size:.91rem}.business-link{margin-top:42px}.heritage{background:var(--ice)}.heritage-grid{display:grid;grid-template-columns:1fr 1fr;gap:9vw;align-items:center}.heritage-year{color:var(--navy);border-right:1px solid #c6d2d8;padding:55px 8vw 55px 0}.heritage-year span{display:block;font:600 .7rem Inter,Arial,sans-serif;letter-spacing:.28em}.heritage-year strong{display:block;font:300 clamp(5rem,10vw,9rem)/1 Inter,Arial,sans-serif;letter-spacing:-.05em}.page-hero{padding:180px 0 90px;background:var(--navy);color:#fff}.page-hero .eyebrow{color:#a9c0cd}.page-hero h1{margin:0;font:300 clamp(3.2rem,7vw,6.5rem)/1 Inter,Arial,sans-serif;letter-spacing:.07em}.page-hero .jp-title{margin:24px 0 0;color:#c3d1d9;font-size:.95rem;letter-spacing:.12em}.narrow{max-width:900px}.lead-page{font-size:clamp(1.16rem,2vw,1.45rem);line-height:2.1}.alt{background:var(--ice)}.content-grid{display:grid;grid-template-columns:.72fr 1.28fr;gap:9vw}.content-grid h2{color:var(--navy)}.content-grid .body{padding-top:52px}.message{max-width:900px;margin:auto}.message h2{color:var(--navy)}.message p{margin-bottom:1.4em}.signature{text-align:right;margin-top:45px}.timeline{margin-top:55px;border-top:1px solid var(--line)}.timeline article{display:grid;grid-template-columns:220px 1fr;gap:60px;padding:38px 0;border-bottom:1px solid var(--line)}.timeline time{font-size:1.15rem;color:var(--navy)}.timeline time span{display:block;font:.7rem Inter,Arial,sans-serif;color:var(--blue);letter-spacing:.16em}.service-group{padding:110px 0}.service-heading{display:grid;grid-template-columns:120px 1fr;margin-bottom:50px}.service-index{font:400 .8rem Inter,Arial,sans-serif;color:var(--blue)}.service-heading h2{margin:0;font:300 clamp(2.5rem,5vw,5rem)/1.05 Inter,Arial,sans-serif;letter-spacing:.04em;color:var(--navy)}.service-heading .jp{margin:18px 0 0;color:var(--muted);letter-spacing:.12em}.service-list{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.service-list.three{grid-template-columns:repeat(3,1fr)}.service-item{padding:36px;background:#fff;border:1px solid var(--line)}.service-group:not(.alt) .service-item{background:var(--ice);border-color:transparent}.service-item h3{color:var(--navy);font-weight:500}.service-item p{color:#58666f;font-size:.94rem}.operations-note{max-width:850px;margin:28px 0 0;color:var(--muted)}.operation-count{display:block;font:300 2.6rem Inter,Arial,sans-serif;color:var(--navy)}.other-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}.other-item{padding:38px 20px 38px 0;border-bottom:1px solid var(--line)}.other-item span{font:.65rem Inter,Arial,sans-serif;color:var(--blue)}.other-item h3{font-weight:500;color:var(--navy)}.profile-table{margin-top:45px}.profile-table>div{display:grid;grid-template-columns:260px 1fr;padding:25px 0;border-bottom:1px solid var(--line)}.profile-table dt{font:600 .68rem Inter,Arial,sans-serif;letter-spacing:.14em;color:var(--blue)}.profile-table dd{margin:0}.access-grid,.contact-card{display:grid;grid-template-columns:1fr 1fr;gap:70px}.access-info,.map-schematic{background:#fff;padding:36px}.access-info dl>div{display:grid;grid-template-columns:100px 1fr;padding:16px 0;border-top:1px solid var(--line)}.access-info dt{color:var(--blue)}.access-info dd{margin:0}.map-schematic{display:grid;place-items:center;min-height:400px}.map-schematic svg{width:100%;height:100%}.road{fill:none;stroke:#c9d5db;stroke-width:10}.road.main{stroke:#aebfc8;stroke-width:18}.route{fill:none;stroke:var(--blue);stroke-width:5;stroke-dasharray:10 8}.station circle,.bus circle{fill:var(--navy)}.station text,.bus text,.pin text,.map-note{font-size:18px;fill:var(--ink)}.pin path{fill:var(--navy)}.pin circle{fill:#fff}.contact-card{padding:58px;background:var(--navy);color:#fff;align-items:center}.phone-block{border-left:1px solid rgba(255,255,255,.2);padding-left:60px}.phone-block span{font:.65rem Inter,Arial,sans-serif;letter-spacing:.2em;color:#9db4c1}.phone-block a{display:block;font:300 2.5rem Inter,Arial,sans-serif}.policy h2{margin-top:2.2em;color:var(--navy);font-size:1.4rem}.site-footer{padding:75px 0 26px;background:#071d2d;color:#c7d4dc}.footer-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px}.site-footer strong{display:block;color:#fff;font:500 1.2rem Inter,Arial,sans-serif;letter-spacing:.16em}.site-footer span{display:block;margin:8px 0 22px;font-size:.8rem}.site-footer p{font-size:.8rem}.site-footer nav{display:grid;grid-template-columns:1fr 1fr;gap:16px;font:500 .7rem Inter,Arial,sans-serif;letter-spacing:.14em}.copyright{padding-top:28px;margin-top:35px;border-top:1px solid rgba(255,255,255,.12);font:500 .58rem Inter,Arial,sans-serif;color:#77909f}.reveal{opacity:0;transform:translateY(18px);transition:.7s}.reveal.visible{opacity:1;transform:none}
@media(max-width:900px){.container,.header-inner{width:min(calc(100% - 40px),var(--max))}.editorial-grid,.heritage-grid,.content-grid,.access-grid,.contact-card{grid-template-columns:1fr}.business-cards,.service-list.three,.other-grid{grid-template-columns:1fr}.business-card{border-right:0;border-bottom:1px solid rgba(255,255,255,.18);min-height:auto}.service-heading{grid-template-columns:70px 1fr}.phone-block{border:0;border-top:1px solid rgba(255,255,255,.2);padding:35px 0 0}}
@media(max-width:720px){body{font-size:15px}.site-header{height:76px}.site-header.scrolled,.subpage .site-header{height:64px}.menu-toggle{display:block}.global-nav{position:fixed;inset:64px 0 auto;display:flex;height:auto;max-height:0;overflow:hidden;flex-direction:column;align-items:stretch;gap:0;background:var(--navy);transition:max-height .3s}.global-nav.open{max-height:300px}.global-nav a{padding:20px 25px;border-top:1px solid rgba(255,255,255,.12)}.global-nav a:after{display:none}.menu-toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}.menu-toggle.open span:nth-child(2){opacity:0}.menu-toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.hero,.hero-inner{min-height:720px}.hero-image{background-position:58% center}.hero-shade{background:linear-gradient(90deg,rgba(4,19,30,.93),rgba(4,19,30,.48))}.hero-brand{font-size:3.3rem}.hero-kicker{margin-bottom:35px}.hero h1{font-size:1.55rem;letter-spacing:.035em}.hero h1 span{white-space:normal}.hero-caption{display:none}.section{padding:80px 0}.section-copy{padding-top:0}.service-group{padding:80px 0}.service-heading{display:block}.service-index{margin-bottom:18px}.service-heading h2{font-size:2.25rem}.service-list{grid-template-columns:1fr}.timeline article{grid-template-columns:1fr;gap:12px}.profile-table>div{grid-template-columns:1fr;gap:6px}.footer-grid{grid-template-columns:1fr}.site-footer nav{grid-template-columns:1fr}.page-hero{padding:145px 0 68px}.page-hero h1{font-size:2.7rem}.other-grid{display:block}}

/* Refined type and spacing system */
h2{font-size:clamp(1.8rem,2.8vw,2.75rem);line-height:1.4;letter-spacing:.045em}
.section{padding:clamp(82px,7.5vw,120px) 0}
.page-intro{padding-top:clamp(76px,7vw,105px);padding-bottom:clamp(80px,7.5vw,115px)}
.page-hero{padding:158px 0 76px}
.page-hero h1{font-size:clamp(2.8rem,5.2vw,4.8rem);line-height:1.03}
.page-hero .jp-title{margin-top:20px}
.lead-page{max-width:820px;font-size:clamp(1.08rem,1.55vw,1.3rem);line-height:2.05}
.content-grid{grid-template-columns:minmax(280px,.85fr) minmax(0,1.35fr);gap:clamp(55px,8vw,105px)}
.content-grid .body{padding-top:40px}
.keep-line{white-space:nowrap;font-size:clamp(1.8rem,2.7vw,2.65rem)}
.message h2{margin-bottom:38px}

.service-group{padding:clamp(82px,8vw,118px) 0}
.service-heading{grid-template-columns:92px 1fr;margin-bottom:42px;align-items:start}
.service-heading h2{font-size:clamp(2.1rem,3.5vw,3.65rem);line-height:1.08;letter-spacing:.045em}
.service-heading .jp{margin-top:15px}
.service-list{gap:24px}
.service-list.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.service-item{padding:38px 36px;min-height:220px}
.service-item h3{margin-bottom:18px;font-size:1.05rem;line-height:1.65}
.service-item p{font-size:.95rem;line-height:1.9}

.other-grid{gap:24px;border-top:0}
.other-item{padding:0;background:var(--ice);border-bottom:0;overflow:hidden}
.other-item img{width:100%;aspect-ratio:16/10;object-fit:cover;filter:saturate(.76) contrast(.96)}
.other-copy{padding:26px 26px 30px;border-top:1px solid rgba(12,38,58,.08)}
.other-item span{display:block;margin-bottom:10px}
.other-item h3{margin:0;font-size:1rem;line-height:1.7}
.other-copy p{margin:8px 0 0;color:var(--muted);font-size:.8rem}

.operations-lead{margin-bottom:42px}
.operations-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;max-width:1000px}
.operations-grid .service-item{background:#fff;border:1px solid var(--line);min-height:250px}
.operation-count{margin:12px 0 16px;font-size:2.75rem;line-height:1}
.operation-count small{margin-left:8px;font:500 .78rem/1 "Noto Sans JP","Yu Gothic",Meiryo,sans-serif;color:var(--muted)}
.operations-note{margin-top:30px}

.history-intro{display:grid;grid-template-columns:minmax(240px,.7fr) minmax(0,1fr);gap:70px;align-items:end}
.history-intro>p{max-width:560px;margin:0;color:var(--muted)}
.timeline{margin-top:44px}
.timeline article{grid-template-columns:190px 1fr;gap:50px;padding:32px 0}
.timeline time strong{display:block;font-size:1.08rem;font-weight:500}
.timeline article h3{margin-bottom:9px;font-size:1.05rem}
.timeline article p{margin-bottom:0;color:var(--muted)}

.contact-card h2{max-width:580px;font-size:clamp(1.65rem,2.5vw,2.45rem);line-height:1.55;letter-spacing:.035em}
.contact-card{padding:52px 56px;gap:58px}
.subpage main>section:last-child{padding-bottom:90px}
.site-footer{padding-top:64px}

@media(max-width:900px){
  .service-list.three{grid-template-columns:repeat(2,minmax(0,1fr))}
  .other-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .operations-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .history-intro{grid-template-columns:1fr;gap:18px}
}
.heritage h2{font-size:clamp(1.4rem,2.7vw,2.25rem);letter-spacing:.03em}
.heritage h2 span{display:block;white-space:nowrap}
@media(max-width:720px){
  h2{font-size:1.8rem}
  .section,.service-group{padding:70px 0}
  .page-intro{padding:62px 0 70px}
  .page-hero{padding:126px 0 58px}
  .page-hero h1{font-size:clamp(2.25rem,11vw,3rem);overflow-wrap:anywhere}
  .page-hero .eyebrow{margin-bottom:18px}
  .keep-line{white-space:normal;word-break:keep-all;overflow-wrap:normal}
  .service-heading{display:grid;grid-template-columns:45px minmax(0,1fr);gap:8px}
  .service-heading h2{font-size:clamp(1.72rem,8vw,2.2rem);line-height:1.12;overflow-wrap:anywhere}
  .service-list.three,.operations-grid{grid-template-columns:1fr}
  .service-item{min-height:0;padding:30px 26px}
  .other-grid{display:grid;grid-template-columns:1fr;gap:18px}
  .other-item{display:grid;grid-template-columns:42% 1fr;align-items:stretch}
  .other-item img{height:100%;aspect-ratio:auto;min-height:160px}
  .other-copy{display:flex;flex-direction:column;justify-content:center;padding:22px}
  .timeline article{grid-template-columns:1fr;gap:14px;padding:28px 0}
  .contact-card{padding:38px 24px}
  .contact-card>div{min-width:0}
  .contact-card h2{font-size:clamp(1.3rem,6.1vw,1.5rem);line-height:1.55;word-break:normal;overflow-wrap:anywhere}
  .contact-card p{font-size:.95rem;overflow-wrap:anywhere}
  .phone-block a{font-size:2.15rem}
  .site-footer{padding-top:56px}
}
@media(max-width:720px){.heritage h2{font-size:clamp(1.1rem,5.6vw,1.4rem);letter-spacing:.01em}}
@media(max-width:720px){
  .content-grid{grid-template-columns:minmax(0,1fr);gap:28px}
  .content-grid .body{width:100%;min-width:0;padding-top:0}
}
