/* Public stylesheet. Rebuild after editing: npm run build */
:root{--navy:#0b1324;--navy-soft:#101c30;--navy-light:#16243a;--gold:#d6c49e;--gold-light:#efe3c6;--text:#f2f1ed;--muted:#aeb7c8;--line:rgba(214,196,158,.24);--ivory:#f5f2eb;--ink:#162139;--serif:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;--sans:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;--latin:Georgia,"Times New Roman",serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:108px}
body{margin:0;background:var(--navy);color:var(--text);font-family:var(--sans);line-height:1.9;letter-spacing:.04em;-webkit-font-smoothing:antialiased}
body.modal-open{overflow:hidden}
/* Allow text to reflow inside grid/flex children, including enlarged mobile text. */
main :is(h1,h2,h3,p,li,dd,address){overflow-wrap:anywhere}
.hero-copy,.album-heading>div{min-width:0}
button,a{-webkit-tap-highlight-color:transparent}
a{color:inherit;text-underline-offset:5px}
button{font:inherit;cursor:pointer}
img{display:block;max-width:100%;height:auto}
figure,p,h1,h2,h3,ul{margin:0}
button:focus-visible,a:focus-visible{outline:2px solid var(--gold-light);outline-offset:6px}
[hidden]{display:none!important}
.container{width:min(1200px,calc(100% - 96px));margin-inline:auto}
.latin{font-family:var(--latin);letter-spacing:.13em}
.micro-label{font-size:12px;letter-spacing:.2em;color:var(--gold);line-height:1.5}
.skip-link{position:fixed;top:8px;left:8px;padding:12px 20px;background:var(--gold);color:var(--navy);z-index:100;transform:translateY(-150%)}
.skip-link:focus{transform:translateY(0)}
.site-header{position:sticky;top:0;z-index:30;border-bottom:1px solid var(--line);background:rgba(11,19,36,.97)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:28px;min-height:98px}
.brand{display:flex;gap:13px;align-items:center;text-decoration:none;flex-shrink:0}
.brand>img{width:54px;height:42px;object-fit:contain}
.brand-name{font-family:var(--serif);font-size:23px;letter-spacing:.16em;font-weight:600;line-height:1.5}
.brand-name small{display:block;font-family:var(--latin);color:var(--gold);font-size:12px;letter-spacing:.2em;font-weight:400}
.site-nav{display:flex;gap:27px;align-items:center}
.site-nav a{font-size:13px;white-space:nowrap;text-decoration:none;padding:10px 0;position:relative}
.site-nav a::after{content:"";height:1px;position:absolute;left:0;bottom:4px;width:100%;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .2s}
.site-nav a:hover::after,.site-nav a:focus-visible::after{transform:scaleX(1)}
.site-nav a.nav-contact{color:var(--gold)}
.menu-toggle{display:none;background:none;border:1px solid var(--line);color:var(--text);padding:10px 12px;align-items:center;gap:9px;font-size:12px}
.menu-icon{width:17px;height:10px;display:block;border-top:1px solid currentColor;border-bottom:1px solid currentColor}
.hero{overflow:hidden;background:radial-gradient(ellipse at 0 20%,#18273b 0,transparent 64%)}
.hero-grid{display:grid;grid-template-columns:1.03fr 1fr;gap:62px;align-items:center;padding-block:65px 70px}
.hero-copy{padding-block:25px}
.eyebrow{display:flex;align-items:center;gap:14px;color:var(--gold);font-size:12px;letter-spacing:.18em;margin-bottom:25px}
.eyebrow>span{width:30px;height:1px;background:var(--gold)}
h1{font-family:var(--serif);font-size:clamp(34px,3.7vw,53px);font-weight:500;letter-spacing:.075em;line-height:1.65;margin-bottom:24px;white-space:nowrap}
.hero-description{max-width:28em;color:var(--muted);font-size:15px;line-height:2.2}
.hero-languages{display:flex;align-items:center;gap:14px;margin:22px 0 34px;color:var(--gold);font-size:12px}
.button{display:inline-flex;align-items:center;justify-content:space-between;gap:34px;padding:17px 23px;text-decoration:none;font-size:12px;letter-spacing:.1em;border:1px solid var(--gold);transition:background-color .2s,color .2s}
.button-gold{background:var(--gold);color:var(--navy)}
.button-gold:hover{background:var(--gold-light)}
.button span{font-size:19px;line-height:1}
.hero-signature{display:flex;align-items:center;gap:12px;margin-top:54px;font-size:12px;color:var(--muted)}
.hero-signature .latin{font-size:12px;color:var(--gold)}
.rule{display:block;width:25px;height:1px;background:var(--line)}
.hero-visual{position:relative;padding:0 0 0 10px;min-width:0}
.hero-image-frame{position:relative;background:var(--navy-soft);aspect-ratio:1/1.09;overflow:hidden;border-radius:1px}
.hero-image-frame img{width:100%;height:100%;object-fit:cover;object-position:50% 53%}
.hero-image-frame::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 70px rgba(11,19,36,.18);pointer-events:none}
.image-corner{position:absolute;width:100px;height:100px;border-top:1px solid var(--gold);border-right:1px solid var(--gold);top:-12px;right:-12px;opacity:.65}
.hero-visual figcaption{display:flex;justify-content:space-between;gap:12px;margin-top:15px;font-size:12px;color:var(--muted)}
.image-index{font-family:var(--latin);letter-spacing:.15em;color:var(--gold);white-space:nowrap}
.region-strip{border-block:1px solid var(--line)}
.region-strip-inner{display:flex;align-items:center;gap:50px}
.strip-label{font-size:12px;color:var(--muted);white-space:nowrap}
.region-strip-inner>div{display:grid;grid-template-columns:repeat(3,1fr);flex:1}
.region-strip a{display:flex;align-items:center;gap:16px;border-left:1px solid var(--line);padding:23px 24px;text-decoration:none;font-family:var(--serif);font-size:18px}
.region-strip a:hover{background:var(--navy-light)}
.region-strip a small{font-family:var(--latin);font-size:12px;color:var(--muted)}
.region-strip a>span:last-child{margin-left:auto;color:var(--gold);font-size:16px}
.section{padding-block:100px}
.section-label{display:flex;gap:18px;align-items:center;color:var(--gold);font-size:12px;letter-spacing:.2em;margin-bottom:30px;font-family:var(--sans)}
.section-label>span{font-family:var(--latin);font-size:12px}
.section-label::after{content:"";width:45px;height:1px;background:currentColor;opacity:.5}
h2{font-family:var(--serif);font-size:clamp(27px,2.8vw,39px);font-weight:500;letter-spacing:.07em;line-height:1.65}
.section-intro{display:flex;justify-content:space-between;gap:60px;align-items:center;margin-bottom:48px}
.section-intro>p{max-width:30em;width:40%;color:var(--muted);font-size:15px;line-height:2.1}
.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border-block:1px solid var(--line)}
.service-item{display:flex;flex-direction:column;align-items:flex-start;gap:14px;padding:30px 26px;min-width:0;background:var(--navy)}
.service-number{font-family:var(--latin);font-size:31px;color:var(--gold);font-style:italic}
.service-item :is(h2,h3){font-family:var(--serif);font-size:19px;font-weight:500;line-height:1.6}
.service-item>p{font-size:15px;line-height:2.1;color:var(--muted)}


.fleet{background:var(--navy-soft);border-block:1px solid var(--line)}
.fleet .section-intro h2{max-width:15em}
.text-link{display:inline-flex;align-items:center;gap:20px;font-size:13px;text-decoration:none;border-bottom:1px solid var(--line);padding:6px 0;color:var(--gold);white-space:nowrap}
.text-link:hover{color:var(--gold-light);border-color:currentColor}
.section-note{color:var(--muted);font-size:13px;line-height:1.9;margin-top:24px;max-width:80em}

.gallery-link{display:block}
.gallery-image{position:relative;aspect-ratio:4/3;background:#18253a;overflow:hidden}
.gallery-image img{width:100%;height:100%;object-fit:contain;transition:transform .4s}
.gallery-link:hover img{transform:scale(1.035)}
.zoom-indicator{position:absolute;bottom:10px;right:10px;display:flex;align-items:center;justify-content:center;width:30px;height:30px;color:var(--text);border:1px solid rgba(255,255,255,.35);background:rgba(11,19,36,.8);font-size:19px}
.gallery-item figcaption{display:flex;justify-content:space-between;gap:14px;margin-top:14px;align-items:center}
.gallery-item figcaption p{color:var(--muted);font-size:13px;margin:0}
.welfare{background:var(--ivory);color:var(--ink);position:relative}
.welfare .section-label{color:#766035}
.welfare-grid{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center}
.welfare h2{font-size:clamp(31px,3.2vw,44px)}
.welfare-label{font-size:13px;display:flex;align-items:center;gap:12px;color:#67552f;margin-bottom:20px}
.welfare-label span{width:33px;height:33px;display:flex;align-items:center;justify-content:center;border:1px solid #b2a385;border-radius:50%;font-size:23px}
.welfare-description{font-size:17px;line-height:2;font-family:var(--serif)}
.welfare-note{font-size:15px;line-height:2;color:#505d6b;margin-top:18px}
.company{background:var(--navy-soft)}
.company-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:start}
.company-intro>p{font-size:15px;color:var(--muted);margin-top:24px;max-width:29em;line-height:2.1}
.company-seal{margin-top:35px;display:flex;align-items:center;gap:22px}
.company-seal img{width:75px;height:55px;object-fit:contain}
.company-seal>span{font-size:13px;color:var(--gold)}
.company-seal strong{font-weight:400;font-size:35px;padding-left:8px}
.company-facts{margin:0;border-top:1px solid var(--line);font-size:15px}
.company-facts>div{display:grid;grid-template-columns:105px 1fr;gap:20px;padding-block:23px;border-bottom:1px solid var(--line)}
.company-facts dt{font-size:12px;color:var(--muted)}
.company-facts dd{margin:0}
.office-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:65px}
.office{padding:28px 32px;border:1px solid var(--line);background:rgba(255,255,255,.015)}
.office-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-block:13px 15px}
.office-heading :is(h2,h3){font-size:21px;font-family:var(--serif);font-weight:500}
.office-heading>span{color:var(--gold);font-family:var(--latin);font-size:23px;font-style:italic;opacity:.6}
.office address{font-style:normal;font-size:15px;line-height:2}
.office .text-link{margin-top:19px}
.contact{border-top:1px solid var(--line)}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:75px}
.contact-grid h2{margin-bottom:20px}
.contact-grid p:not(.section-label){color:var(--muted);font-size:15px}
.contact-links{align-self:center;min-width:0}
.contact-link{display:grid;grid-template-columns:65px 1fr 20px;gap:15px;align-items:center;text-decoration:none;border-bottom:1px solid var(--line);padding:20px 0}
.contact-link>span:first-child{font-size:12px;color:var(--muted)}
.contact-link strong{font-weight:400;font-size:17px;overflow-wrap:anywhere}
.contact-link.phone strong{font-family:var(--latin);font-size:26px}
.contact-link:hover{color:var(--gold)}
.site-footer{border-top:1px solid var(--line);padding-top:42px}
.footer-top{display:flex;justify-content:space-between;align-items:center;gap:32px;padding-bottom:36px}
.footer-top>p{color:var(--muted);font-size:12px;margin-right:auto}
.footer-top .brand-name{font-size:20px}
.footer-top .brand>img{width:43px;height:34px}
.back-top{font-size:12px;text-decoration:none;color:var(--gold);white-space:nowrap}
.back-top span{display:inline-block;margin-left:12px;font-size:17px}
.footer-bottom{border-top:1px solid var(--line);padding-block:20px;display:flex;justify-content:space-between;gap:20px;font-size:12px;color:var(--muted)}
.footer-languages{display:flex;flex-wrap:wrap;align-items:center;gap:4px}
.lightbox{padding:0;border:1px solid var(--line);width:min(1080px,calc(100vw - 40px));max-width:none;max-height:calc(100dvh - 40px);color:var(--text);background:var(--navy);overflow:auto}
.lightbox:not([open]){display:none}
/* The open state also leaves room for an exit transition: data-closing (set by site.js) or the closed state fades the viewer out. */
.lightbox{opacity:0;transform:translateY(16px);transition-property:opacity,transform,display,overlay;transition-duration:.3s;transition-timing-function:cubic-bezier(.2,.7,.2,1);transition-behavior:allow-discrete}
.lightbox::backdrop{background:rgba(3,8,16,0);transition-property:background-color,display,overlay;transition-duration:.3s;transition-behavior:allow-discrete}
.lightbox[open]:where(:not([data-closing])){opacity:1;transform:none}
.lightbox[open]:where(:not([data-closing]))::backdrop{background:rgba(3,8,16,.92)}
@starting-style{.lightbox[open]{opacity:0;transform:translateY(16px)}.lightbox[open]::backdrop{background:rgba(3,8,16,0)}}
.lightbox-panel{padding:20px 28px}
.lightbox-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:14px;font-size:12px}
.lightbox-close,.lightbox-prev,.lightbox-next{color:var(--text);background:transparent;border:1px solid var(--line);padding:8px 14px;font-size:12px;white-space:nowrap}
.lightbox-close span{font-size:19px;padding-left:8px}
.lightbox-media{background:#080e1a;display:flex;align-items:center;justify-content:center;min-height:100px}
.lightbox-image{max-height:66dvh;max-width:100%;width:auto;height:auto;object-fit:contain}
.lightbox-bottom{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-top:17px;font-size:12px}
.lightbox-count{color:var(--gold)}
@media(min-width:1600px){.hero-grid{padding-block:80px}.hero-image-frame{aspect-ratio:1.04}.hero h1{font-size:56px}}
@media(max-width:1100px){.container{width:calc(100% - 64px)}.site-nav{gap:17px}.site-nav a{font-size:12px}.brand-name{font-size:21px}.hero-grid{gap:34px}.hero-signature{flex-wrap:wrap;gap:8px}.hero-visual figcaption{flex-direction:column;gap:4px}.region-strip-inner{gap:25px}.region-strip a{padding-inline:18px;gap:12px}.section-intro{gap:35px}.section-intro h2{font-size:31px}.service-item :is(h2,h3){font-size:17px}.company-grid{gap:60px}.welfare-grid{gap:60px}}
@media(max-width:960px){.header-inner{min-height:84px;flex-wrap:wrap;gap:0}.brand{padding-block:17px}.menu-toggle{display:flex}.site-nav{width:100%;display:flex;flex-wrap:wrap;border-top:1px solid var(--line);padding:10px 0 17px;gap:4px 25px}.site-nav a{font-size:14px;padding:8px 0}.menu-ready .site-nav{display:none}.menu-ready.menu-open .site-nav{display:flex}.header-inner.menu-open{padding-bottom:4px}.region-strip-inner{gap:0;display:block}.strip-label{display:block;padding:14px 0 0;font-size:12px}.region-strip a{border:0;padding:17px 0}.region-strip a+a{padding-left:25px}.region-strip a>span:last-child{margin-right:24px}.region-strip a small{font-size:12px}.hero h1{font-size:34px}.hero-copy{padding-block:0}.hero-description{font-size:15px}.hero-signature{margin-top:30px}.hero-languages{margin-block:18px 24px}.hero-grid{padding-block:50px}.hero-image-frame{aspect-ratio:3/4}.hero .button{font-size:12px;padding:15px 18px;gap:20px}.section{padding-block:76px}.section-intro{align-items:flex-start}.section-intro h2{font-size:28px}.section-intro>p{font-size:15px}.service-item :is(h2,h3){font-size:17px}.welfare-grid{gap:40px}.welfare h2{font-size:30px}.welfare-description{font-size:15px}.company-grid{gap:40px}.company-facts>div{grid-template-columns:80px 1fr;gap:14px}.office-grid{gap:24px}.office{padding:24px}.footer-top{flex-wrap:wrap;gap:25px}.contact-grid{gap:35px}}
@media(max-width:700px){html{scroll-padding-top:86px}.container{width:calc(100% - 40px)}.header-inner{min-height:76px}.brand>img{width:43px;height:34px}.brand-name{font-size:20px}.brand-name small{font-size:12px}.site-header .brand{padding-block:14px}.site-nav{padding-block:9px 18px;column-gap:24px;max-height:60dvh;overflow:auto}.hero-grid{grid-template-columns:1fr;gap:36px;padding-block:42px 33px}.hero-copy{padding-inline:3px}.eyebrow{font-size:12px;margin-bottom:20px}.hero h1{font-size:clamp(30px,6.8vw,46px);line-height:1.62;margin-bottom:20px}.hero-description{max-width:30em;font-size:15px}.hero-languages{margin-block:19px 26px}.hero .button{font-size:12px;padding:15px 20px;gap:30px}.hero-signature{margin-top:27px}.hero-visual{padding:0 8px 0 0}.hero-image-frame{aspect-ratio:1.3}.hero-image-frame img{object-position:50% 49%}.image-corner{right:0;top:-8px;width:72px;height:72px}.hero-visual figcaption{flex-direction:row;font-size:12px;margin-top:12px}.region-strip a{flex-wrap:wrap;gap:0 8px;font-size:18px;padding:17px 0;position:relative}.region-strip a+a{padding-left:18px}.region-strip a small{width:100%;order:3;margin-top:2px}.region-strip a>span:last-child{margin-right:15px;font-size:12px}.strip-label{font-size:12px;padding-top:12px}.section{padding-block:62px}.section-label{font-size:12px;margin-bottom:23px;gap:14px}.section-intro{display:block;margin-bottom:30px}.section-intro h2{font-size:27px}.section-intro>p{width:auto;max-width:35em;font-size:15px;margin-top:20px}.service-grid{grid-template-columns:1fr}.service-number{font-size:28px}.service-item :is(h2,h3){font-size:19px}.service-item>p{font-size:15px;max-width:40em}.section-note{font-size:12px;line-height:2;margin-top:20px}.gallery-image{aspect-ratio:1/1.05}.gallery-item figcaption{margin-top:10px;gap:5px}.gallery-item figcaption p{line-height:1.7}.zoom-indicator{bottom:7px;right:7px;width:25px;height:25px;font-size:16px}.welfare-grid{grid-template-columns:1fr;gap:32px}.welfare h2{font-size:31px}.welfare-description{font-size:17px}.welfare-label{margin-bottom:17px}.company-grid{grid-template-columns:1fr;gap:32px}.company-intro h2{font-size:29px}.company-intro>p{font-size:15px;margin-top:20px}.company-seal{margin-top:25px}.company-seal img{width:65px;height:48px}.company-seal strong{font-size:32px}.company-facts>div{padding-block:18px;grid-template-columns:95px 1fr;font-size:15px}.office-grid{grid-template-columns:1fr;margin-top:35px;gap:20px}.office{padding:24px}.office-heading{margin-block:10px 12px}.contact-grid{grid-template-columns:1fr;gap:23px}.contact-link{gap:10px;grid-template-columns:55px 1fr 18px}.contact-link strong{font-size:15px}.footer-top{gap:21px;align-items:flex-start;padding-bottom:28px}.footer-top>.brand{padding:0}.footer-top>p{width:100%;order:3;font-size:12px}.footer-top .back-top{margin-left:auto;padding-top:8px;font-size:12px}.footer-top .brand-name{font-size:19px}.footer-top .brand>img{width:40px}.footer-bottom{font-size:12px;gap:12px;flex-wrap:wrap;padding-block:17px}.lightbox{width:calc(100vw - 20px);max-height:calc(100dvh - 20px)}.lightbox-panel{padding:14px}.lightbox-toolbar{font-size:12px;align-items:flex-start;gap:12px}.lightbox-close{font-size:12px;padding:5px 9px}.lightbox-image{max-height:65dvh}.lightbox-prev,.lightbox-next{padding:8px 12px;font-size:12px}}
/* Shared multi-page navigation and landing-page directory. */
.site-nav a[aria-current="page"]{color:var(--gold)}
.site-nav a[aria-current="page"]::after{transform:scaleX(1)}
.breadcrumbs{display:flex;align-items:center;gap:15px;padding-block:30px;font-size:12px;color:var(--muted)}
.breadcrumbs a{text-decoration:none;color:var(--gold)}
.page-content>.section{padding-top:52px;min-height:480px}
.page-content h1{white-space:normal;font-size:clamp(30px,3.2vw,44px);line-height:1.65;letter-spacing:.07em;margin:0;font-weight:500}
.page-content .section-intro h1{max-width:16em}
.page-content .welfare{padding-block:86px}
@media(max-width:700px){.breadcrumbs{padding-block:21px;font-size:12px;gap:12px}.page-content>.section{padding-top:33px;min-height:0}.page-content h1{font-size:29px}.page-content .welfare{padding-block:50px}.page-content .section-intro h1{max-width:none}}
/* Contact entry points, merged fleet photos, guide and recruit pages. Theme tokens are unchanged. */
.site-nav{margin-left:auto}
.site-nav a.nav-contact{border:1px solid var(--gold);padding:9px 18px;color:var(--gold)}
.site-nav a.nav-contact::after{display:none}
.site-nav a.nav-contact:hover,.site-nav a.nav-contact[aria-current="page"]{background:var(--gold);color:var(--navy)}
.header-phone{display:flex;flex-direction:column;align-items:flex-end;text-decoration:none;color:var(--gold);line-height:1.4;white-space:nowrap}
.header-phone .latin{font-size:19px}
.header-phone small{font-size:12px;color:var(--muted)}
.hero-languages{flex-wrap:wrap}
.languages-label{color:var(--muted)}
.language-list{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px}
.language-list li{font-size:12px;border:1px solid var(--line);padding:2px 12px;color:var(--gold)}
.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:20px 30px}
.page-title{min-width:0}
.page-catch{font-family:var(--serif);font-size:clamp(18px,1.7vw,23px);line-height:1.8;letter-spacing:.07em;color:var(--gold);margin-top:14px}
.welfare .page-catch{color:#766035}
.service-number{line-height:1}
.service-item .text-link{margin-top:auto}
.service-meta{font-size:13px;color:var(--gold)}
.section-more{margin-top:34px;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:12px 36px}
.subsection{margin-top:70px}
.subsection-title{font-size:clamp(23px,2.2vw,30px);margin-bottom:28px}
.subsection-lead{font-size:15px;color:var(--muted);max-width:40em;margin:-12px 0 28px}
.use-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.use-item{border:1px solid var(--line);padding:26px}
.use-item h3{font-family:var(--serif);font-weight:500;font-size:19px;margin-bottom:10px}
.use-item p{font-size:15px;color:var(--muted)}
.home-fleet{background:var(--navy-soft);border-block:1px solid var(--line)}
.home-photos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:27px}
.home-photo{display:block;text-decoration:none}
.home-photo .gallery-image{aspect-ratio:4/5}
.home-photo img{object-fit:cover}
.home-photo:hover img{transform:scale(1.035)}
.home-photo>span{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-top:14px;font-family:var(--serif);font-size:17px}
.home-photo small{font-family:var(--sans);font-size:12px;color:var(--muted)}
.model-cards{border-top:1px solid var(--line)}
.model-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:center;padding-block:44px;border-bottom:1px solid var(--line);scroll-margin-top:110px}
.model-info h2{font-size:clamp(22px,1.9vw,27px);margin-block:8px 14px}
.model-regions{font-size:15px;color:var(--muted)}
.model-regions a,.footer-info a,.footer-language-links a{color:var(--gold)}
.model-specs{margin:22px 0 0;border-top:1px solid var(--line);font-size:15px}
.model-specs>div{display:grid;grid-template-columns:90px 1fr;gap:16px;padding-block:12px;border-bottom:1px solid var(--line)}
.model-specs dt{font-size:13px;color:var(--muted)}
.model-specs dd{margin:0}
.breadcrumbs a{display:inline-block;padding-block:4px}
.flow-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;counter-reset:flow}
.flow-list li{border-top:1px solid var(--gold);padding-top:18px;counter-increment:flow}
.flow-list li::before{content:counter(flow,decimal-leading-zero);font-family:var(--latin);font-style:italic;font-size:25px;color:var(--gold)}
.flow-list h3{font-family:var(--serif);font-weight:500;font-size:19px;margin-block:8px}
.flow-list p{font-size:15px;color:var(--muted)}
.fare-table{width:100%;border-collapse:collapse;font-size:15px}
.fare-table :is(th,td){text-align:left;padding:16px 0;border-bottom:1px solid var(--line);font-weight:400;vertical-align:top}
.fare-table thead th{font-size:13px;color:var(--muted)}
.fare-table td small{display:block;font-size:13px;color:var(--muted)}
.faq-list{margin:0;border-top:1px solid var(--line)}
.faq-list>div{padding-block:20px;border-bottom:1px solid var(--line)}
.faq-list dt{font-family:var(--serif);font-size:17px;margin-bottom:8px}
.faq-list dd{margin:0;font-size:15px;color:var(--muted)}
.welfare-topics{display:grid;gap:16px;margin:24px 0 0;padding-top:20px;border-top:1px solid #cfc6b4;font-size:15px}
.welfare-topics dt{font-size:13px;color:#505d6b}
.welfare-topics dd{margin:0}
.welfare-photo{margin-top:30px}
.policy{max-width:46em}
.policy h2{font-size:21px;margin-block:36px 10px}
.policy p{font-size:15px;color:var(--muted);line-height:2.1}
.contact-band{border-top:1px solid var(--line);background:var(--navy-soft)}
.contact-band-inner{display:flex;justify-content:space-between;align-items:center;gap:40px;padding-block:64px}
.contact-band h2{margin-block:8px 10px}
.contact-band p:not(.micro-label){font-size:15px;color:var(--muted)}
.contact-band-actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px}
.contact-band .button .latin{font-size:19px}
.footer-top{align-items:flex-start}
.footer-info{margin-right:auto;color:var(--muted);font-size:13px;line-height:1.9}
.footer-nav{display:flex;flex-wrap:wrap;gap:8px 26px;padding-bottom:26px;font-size:13px}
.footer-nav a{text-decoration:none}
.footer-nav a:hover{color:var(--gold)}
.footer-language-links{display:inline-flex;gap:12px;margin-left:12px}
.mobile-cta{display:none}
/* Draft-only review markers (npm run build:draft): speech bubbles in Chinese for the customer review. */
.draft-banner{margin:0;padding:10px 20px;background:var(--gold);color:var(--navy);font-size:13px;text-align:center}
.pending{position:relative;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin-top:30px;padding:16px 20px;background:var(--ivory);color:var(--ink);border:1px solid var(--gold);border-radius:12px;box-shadow:0 8px 22px rgba(0,0,0,.28);font-size:14px;line-height:1.8;letter-spacing:.02em}
.pending::before{content:"";position:absolute;left:28px;top:-9px;width:16px;height:16px;background:var(--ivory);border-left:1px solid var(--gold);border-top:1px solid var(--gold);transform:rotate(45deg)}
.pending p{flex:1 1 18em;margin:0;font-family:var(--sans)}
.pending-tag{color:#7a5a1e;font-weight:700;white-space:nowrap}
.pending code{flex-basis:100%;font-size:12px;color:#5b6577}
.pending-inline{display:inline-flex;flex-wrap:wrap;align-items:center;gap:2px 6px;padding:3px 12px;border:1px solid var(--gold);border-radius:999px;background:var(--ivory);color:var(--ink);font-size:13px;font-weight:400;line-height:1.6;letter-spacing:.02em}
.history-layout>.pending{grid-column:1/-1}
@media(max-width:1180px){.header-phone{display:none}.has-mobile-cta{padding-bottom:57px}.mobile-cta{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;position:fixed;inset:auto 0 0;z-index:40;border-top:1px solid var(--line);background:rgba(11,19,36,.97)}.mobile-cta a{display:flex;justify-content:center;align-items:center;min-height:56px;text-decoration:none;font-size:15px;color:var(--gold)}.mobile-cta a:last-child{background:var(--gold);color:var(--navy)}.service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.flow-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:960px){.site-nav{margin-left:0}.site-nav a.nav-contact{padding:8px 16px}.model-card{grid-template-columns:1fr;gap:26px}.use-grid{grid-template-columns:1fr}.contact-band-inner{flex-direction:column;align-items:flex-start}}
@media(max-width:700px){.service-grid{grid-template-columns:1fr}.service-item{padding:24px 0}.home-photos{grid-template-columns:1fr 1fr;gap:16px}.home-photo>span{flex-direction:column;gap:2px;font-size:16px}.home-photo:last-child{grid-column:1/-1}.home-photo:last-child .gallery-image{aspect-ratio:16/10}.flow-list{grid-template-columns:1fr}.contact-band-inner{padding-block:48px}.page-catch{font-size:18px}.subsection{margin-top:50px}.footer-info{width:100%;order:3}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}

/* Content-rich inner pages and the vehicle album. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.section-toned{background:var(--navy-soft);border-block:1px solid var(--line)}
.section-lined{border-top:1px solid var(--line)}
.page-content>.section+.section{min-height:0;padding-top:85px}
.page-content>.section h2{font-size:clamp(26px,2.7vw,37px)}
.page-content .section .service-item :is(h2,h3){font-size:19px}
.page-content .section .office-heading :is(h2,h3){font-size:21px}
.editorial-grid{display:grid;grid-template-columns:1fr 1fr;gap:90px}
.editorial-grid>.editorial-copy{padding-top:7px}
.editorial-copy p{font-size:13px;line-height:2.2;color:var(--muted)}
.editorial-copy p+p{margin-top:18px}
.editorial-grid .text-link{margin-top:30px}
.company-milestones{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);margin-top:30px;padding-top:25px}
.company-milestones>div{display:flex;flex-direction:column;gap:6px}
.company-milestones strong{font-family:var(--latin);font-weight:400;font-size:34px;line-height:1.5;color:var(--gold)}
.company-milestones strong span{font:12px var(--sans);margin-left:6px}
.company-milestones>div>span{font-size:12px;color:var(--muted)}
.advice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0 30px;border-top:1px solid var(--line)}
.advice-card{padding:30px 0;border-bottom:1px solid var(--line)}
.advice-number{font:italic 25px var(--latin);color:var(--gold)}
.advice-card h3{font:500 19px var(--serif);margin:17px 0 13px;line-height:1.7}
.advice-card p{font-size:12px;line-height:2.1;color:var(--muted)}
.planning-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;padding:0;list-style:none}
.planning-steps>li{border-top:1px solid var(--line);padding-top:23px}
.planning-steps>li>span{font:italic 38px var(--latin);color:var(--gold)}
.planning-steps h3{font:500 22px var(--serif);margin:20px 0 14px}
.planning-steps p{font-size:12px;color:var(--muted);line-height:2.1}
.planning-steps .text-link{margin-top:21px}
.faq-layout{display:grid;grid-template-columns:.75fr 1.25fr;gap:70px}
.faq-list{border-top:1px solid var(--line)}
.faq-list details{border-bottom:1px solid var(--line)}
.faq-list summary{cursor:pointer;font-size:13px;padding:24px 34px 24px 0;position:relative;list-style:none;line-height:1.9}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:'＋';position:absolute;right:2px;top:24px;color:var(--gold)}
.faq-list details[open]>summary::after{content:'−'}
.faq-list summary:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.faq-answer{padding:0 30px 25px 0;color:var(--muted);font-size:12px;line-height:2.1}
.comparison-wrap{overflow:auto}
.comparison-wrap:focus-visible{outline:2px solid var(--gold);outline-offset:5px}
.comparison-table{border-collapse:collapse;width:100%;font-size:13px;min-width:540px}
.comparison-table caption{text-align:left;font-size:12px;color:var(--muted);padding-bottom:15px}
.comparison-table th,.comparison-table td{padding:20px 18px;border-bottom:1px solid var(--line);text-align:center;font-weight:400}
.comparison-table thead{background:var(--navy-light);color:var(--gold)}
.comparison-table th:first-child{text-align:left;min-width:245px}
.comparison-table td{width:18%}
.availability-yes{color:var(--gold);font-size:20px}
.availability-other{color:var(--muted)}
.section-action{margin-top:30px}
.companion-note{max-width:1000px}
.companion-note p:not(.section-label){font-size:13px;color:var(--muted);line-height:2.1;max-width:48em;margin-top:22px}
.companion-note .text-link{margin-top:25px;white-space:normal}
.office-section-heading{margin-top:65px}
.office-section-heading>p:not(.section-label){font-size:12px;line-height:2;color:var(--muted);margin-top:18px}
.office-section-heading+.office-grid{margin-top:30px}
.history-section{background:var(--ivory);color:var(--ink)}
.history-section .section-label{color:#766035}
.history-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:90px}
.history-since{font:15px var(--latin);color:#766035;margin-top:28px}
.history-since strong{font-size:41px;font-weight:400;margin-left:10px}
.history-timeline{list-style:none;margin:0;padding-left:32px;border-left:1px solid #b7a78a}
.history-timeline li{position:relative;padding-bottom:40px}
.history-timeline li:last-child{padding-bottom:0}
.history-timeline li::before{content:'';position:absolute;width:8px;height:8px;border-radius:50%;background:#8a7344;left:-37px;top:8px}
.history-timeline time{font:18px var(--latin);color:#766035;letter-spacing:.07em}
.history-timeline h3{font:500 22px var(--serif);margin:15px 0 12px}
.history-timeline p{font-size:12px;line-height:2.1;color:#505d6b;max-width:40em}
.gallery-controls{padding:25px 0;border-block:1px solid var(--line);margin:35px 0 45px;display:flex;justify-content:space-between;gap:25px;align-items:center}
.filter-rows{display:grid;gap:12px}
.filter-row{display:flex;gap:20px;align-items:center}
.filter-label{width:65px;flex-shrink:0;font-size:12px;color:var(--muted)}
.filter-row>div{display:flex;flex-wrap:wrap;gap:8px}
.filter-row button{font-size:12px;padding:9px 15px;min-height:40px;background:transparent;border:1px solid var(--line);color:var(--muted)}
.filter-row button[aria-pressed=true]{background:var(--gold);border-color:var(--gold);color:var(--navy)}
.gallery-result{color:var(--gold);font-size:12px;white-space:nowrap}
.album-list{display:grid;gap:50px}
.vehicle-album{scroll-margin-top:110px}
.album-heading{display:flex;gap:24px;align-items:flex-start;margin-bottom:25px}
.album-number{font:italic 30px var(--latin);color:var(--gold);padding-top:3px}
.page-content .section .album-heading h2{font:500 24px var(--serif);line-height:1.6}
.album-heading p{font-size:12px;color:var(--muted);line-height:2;margin-top:10px;max-width:60em}
.album-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.album-grid .gallery-image{aspect-ratio:3/4}
.album-grid .gallery-item figcaption p{font-size:12px;color:var(--text);margin-top:0}
.gallery-empty{padding:40px;text-align:center;font-size:13px;color:var(--muted);border:1px solid var(--line)}
@media(max-width:1000px){.editorial-grid,.history-layout{gap:50px}.company-milestones{gap:15px}.company-milestones strong{font-size:29px}.company-milestones>div>span{font-size:12px}.album-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.album-grid .gallery-image{aspect-ratio:4/3}.gallery-controls{display:block}.gallery-result{margin-top:18px}.advice-grid{gap:0 24px}.faq-layout{gap:40px}}
@media(max-width:700px){.page-content>.section+.section{padding-top:58px}.editorial-grid{grid-template-columns:1fr;gap:30px}.editorial-copy p{font-size:12px}.company-milestones strong{font-size:32px}.company-milestones>div>span{font-size:12px}.advice-grid{grid-template-columns:1fr}.advice-card{display:grid;grid-template-columns:30px 1fr;gap:10px 15px;padding:25px 0}.advice-number{grid-row:1/3;font-size:23px;line-height:1.7}.advice-card h3{font-size:18px;margin:0}.advice-card p{font-size:12px}.planning-steps{grid-template-columns:1fr;gap:28px}.planning-steps>li>span{font-size:29px}.planning-steps h3{font-size:21px;margin-block:14px 12px}.planning-steps .text-link{margin-top:16px}.faq-layout{grid-template-columns:1fr;gap:28px}.faq-list summary{font-size:12px;padding-block:20px}.faq-list summary::after{top:20px}.faq-answer{font-size:12px;padding-right:10px}.comparison-table{min-width:0;font-size:12px}.comparison-table th:first-child{min-width:0;width:46%}.comparison-table td{width:18%}.comparison-table th,.comparison-table td{padding:15px 7px;overflow-wrap:anywhere}.comparison-table caption{font-size:12px}.availability-yes{font-size:17px}.companion-note p:not(.section-label){font-size:12px}.office-section-heading{margin-top:40px}.history-layout{grid-template-columns:1fr;gap:38px}.history-since{margin-top:18px}.history-timeline{padding-left:26px;margin-left:4px}.history-timeline li::before{left:-31px}.history-timeline h3{font-size:20px}.history-timeline p{font-size:12px}.filter-row{display:block}.filter-label{display:block;margin-bottom:10px}.filter-rows{gap:20px}.filter-row button{font-size:12px;padding:9px 11px;min-height:40px}.filter-row>div{gap:6px}.gallery-controls{margin-block:28px 33px;padding-block:22px}.gallery-result{font-size:12px}.album-list{gap:38px}.album-heading{gap:15px;margin-bottom:20px}.album-number{font-size:25px}.page-content .section .album-heading h2{font-size:20px}.album-heading p{font-size:12px}.album-grid{gap:20px 14px}.album-grid .gallery-image{aspect-ratio:3/4}.album-grid .gallery-item figcaption p{font-size:12px}.vehicle-album{scroll-margin-top:100px}}

/* Mobile reading and touch controls. Keep the desktop composition unchanged. */
@media(max-width:960px){
  .menu-toggle{min-height:44px;flex-shrink:0}
  .site-nav,.menu-ready.menu-open .site-nav{
    display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
    gap:4px 16px;max-height:calc(100dvh - 100px);overflow-y:auto;
    overscroll-behavior:contain;
  }
  .menu-ready .site-nav{display:none}
  .site-nav a{display:flex;align-items:center;min-height:48px;padding:10px 8px;font-size:13px;white-space:normal}
  .site-nav a[aria-current="page"]{background:var(--navy-light)}
  .site-nav a::after{left:8px;width:calc(100% - 16px)}
  .menu-open .menu-icon{border-bottom:0;transform:rotate(45deg);height:1px;position:relative}
  .menu-open .menu-icon::after{content:"";position:absolute;inset:-1px 0 auto;border-top:1px solid currentColor;transform:rotate(90deg)}
  .filter-row button,.lightbox-close,.lightbox-prev,.lightbox-next{min-height:44px;min-width:44px}
  .text-link,.back-top,.breadcrumbs a{min-height:44px;display:inline-flex;align-items:center}
  .hero h1{white-space:normal}
}
@media(max-width:700px){
  .hero-grid{padding-top:32px;gap:28px}
  .hero-copy{padding-inline:0}
  .hero h1{font-size:clamp(27px,7.6vw,42px)}
  .hero-description{font-size:14px;line-height:2}
  .hero .button{width:100%;min-height:54px}
  .hero-signature{margin-top:22px}
  .hero-visual figcaption{flex-wrap:wrap;gap:4px 12px;font-size:12px}
  .region-strip-inner>div{grid-template-columns:repeat(3,minmax(0,1fr))}
  .region-strip a{display:grid;grid-template-columns:1fr auto;gap:3px 4px;padding:16px 8px}
  .region-strip a+a{padding-left:12px}
  .region-strip a>span:last-child{grid-column:2;grid-row:1;margin:0}
  .region-strip a small{grid-column:1/-1;font-size:12px;letter-spacing:.08em}
  .section{padding-block:48px}
  .page-content>.section+.section{padding-top:48px}
  .page-content h1{font-size:clamp(26px,7vw,32px)}
  .section-intro>p,.service-item>p,.editorial-copy p,.advice-card p,.planning-steps p,.faq-answer,.company-intro>p,.office-section-heading>p:not(.section-label),.history-timeline p,.companion-note p:not(.section-label),.welfare-note{font-size:14px;line-height:2}
  .section-note,.album-heading p{font-size:12px}
  .office address,.faq-list summary{font-size:14px}
  .welfare-topics{flex-wrap:wrap;gap:8px 20px;font-size:12px}
  .company-milestones{flex-wrap:wrap;gap:18px}
  .company-milestones>div>span{font-size:12px}
  .filter-row>div{gap:8px}
  .filter-row button{font-size:12px;padding:10px 14px}
  .filter-label,.gallery-result{font-size:12px}
  .album-grid .gallery-item figcaption p{font-size:12px}
  .comparison-table{font-size:12px}
  .comparison-table th,.comparison-table td{padding:14px 5px}
  .comparison-table caption{font-size:12px}
  .breadcrumbs{padding-block:12px;font-size:12px;flex-wrap:wrap;gap:8px}
  .page-onward{flex-wrap:wrap;gap:16px;padding-block:22px}
  .page-next{margin-left:auto;min-height:44px}
  .footer-top{gap:16px}
  .footer-top>.brand{min-width:0}
  .footer-top>p,.footer-bottom{font-size:12px}
  .footer-bottom{line-height:1.8}
  .lightbox-panel{padding:12px}
  .lightbox-toolbar{align-items:center;font-size:12px}
  .lightbox-close{font-size:12px;flex-shrink:0}
  .lightbox-bottom{gap:8px;font-size:12px}
}
@media(max-width:400px){
  .container{width:calc(100% - 32px)}
  .brand{gap:9px}
  .brand-name{font-size:18px}
  .menu-toggle{padding-inline:10px;gap:7px}
  .office{padding:20px}
  .company-facts>div{grid-template-columns:76px minmax(0,1fr);gap:12px}
  .footer-top .back-top{margin-left:0}
}
@media(max-width:960px) and (max-height:500px){
  .site-header{position:relative}
  .lightbox-image{max-height:48dvh}
  .lightbox-toolbar{margin-bottom:8px}
  .lightbox-bottom{margin-top:8px}
}

/* Keep the full vehicle and deployed lift visible in the supplied portraits. */
.welfare-photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:36px}
.welfare-photo-frame{position:relative;aspect-ratio:3/4;overflow:hidden;background:var(--ivory)}
.welfare-photo-frame img{display:block;width:100%;height:100%;object-fit:contain}
.welfare-photo-grid figcaption{display:block;margin-top:20px}
.welfare-photo-grid figcaption h3{font-family:var(--serif);font-size:22px;margin-bottom:8px}
.welfare-photo-grid figcaption p{font-size:13px;line-height:1.9}
@media(max-width:700px){.welfare-photo-grid{grid-template-columns:1fr;gap:32px}.welfare-photo-grid figcaption h3{font-size:20px}}


.section-intro>p,.service-item>p,.hero-description{font-size:15px}
/* Model cards lead with a photo; a model without one stays a text card. */
.model-card-text{grid-template-columns:minmax(0,1fr)}
.model-card-photo{aspect-ratio:4/3;background:var(--navy-light);overflow:hidden}
.model-card-photo img{width:100%;height:100%;object-fit:contain}
.model-card-photo .pending{margin:24px}
.model-info h2{word-break:keep-all}
.model-description{font-size:15px;line-height:2.1;color:var(--muted);margin-top:18px;max-width:34em}
.model-info .section-note{margin-top:12px}
.model-info .text-link{margin-top:24px}
.comparison-table thead th{scroll-margin-top:110px}
.home-welfare-grid{display:grid;grid-template-columns:minmax(0,.65fr) minmax(0,1fr);gap:90px;align-items:center}
.home-welfare-photo{aspect-ratio:4/5;overflow:hidden;background:var(--ivory)}
.home-welfare-photo img{width:100%;height:100%;object-fit:cover}
.home-welfare h2{margin-bottom:24px}
.home-welfare-text{color:var(--muted);font-size:15px;line-height:2.1;max-width:30em;margin-bottom:30px}
@media(max-width:960px){.home-welfare-grid{grid-template-columns:minmax(0,1fr);gap:36px}.home-welfare-photo{max-width:420px}}
/* Phones swipe through each album instead of stacking sixteen photos. */
@media(max-width:700px){.album-grid{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;margin-right:-20px;padding:0 20px 12px 0}.album-grid .gallery-item{flex:0 0 74%;scroll-snap-align:start}.album-grid .gallery-image{aspect-ratio:4/3}.album-list{gap:40px}}
@media(max-width:400px){.album-grid{margin-right:-16px;padding-right:16px}}
/* Language switch (日本語／中文). On small screens it sits beside the menu button; the narrowest screens show only the other language. */
.lang-switch{display:flex;align-items:center;gap:2px;font-size:12px;letter-spacing:.08em;white-space:nowrap}
.lang-switch a,.lang-switch span{display:inline-flex;align-items:center;min-height:36px;padding:0 9px;border:1px solid transparent;text-decoration:none;color:var(--muted)}
.lang-switch a:hover,.lang-switch a:focus-visible{color:var(--gold)}
.lang-switch [aria-current]{color:var(--gold);border-color:var(--line)}
@media(max-width:960px){.lang-switch{order:1;margin-left:auto;margin-right:10px}.menu-toggle{order:2}.site-nav{order:3}.lang-switch a{min-height:44px}}
@media(max-width:400px){.lang-switch{margin-right:6px}.lang-switch [aria-current]{display:none}}
html:lang(zh-Hans){--serif:"Songti SC","Noto Serif SC","Source Han Serif SC","Yu Mincho",serif;--sans:"PingFang SC","Noto Sans SC","Microsoft YaHei","Hiragino Kaku Gothic ProN",sans-serif}
.translation-notes{padding-top:24px}

/* Motion. Decorative only: every element is fully visible without it, and prefers-reduced-motion turns it off (see the reduce rule above). */
@keyframes rise{from{opacity:0;transform:translateY(var(--rise,26px))}}
@keyframes fade{from{opacity:0}}
@keyframes unveil{from{clip-path:inset(0 0 0 100%)}}
@keyframes settle{from{transform:scale(1.1)}}
@keyframes corner{from{opacity:0;transform:translate(-16px,16px)}}
@keyframes draw-x{from{transform:scaleX(0)}}
@keyframes page-out{to{opacity:0}}
@keyframes page-in{from{opacity:0;transform:translateY(var(--rise-page,14px))}}
.text-link>span[aria-hidden],.button>span[aria-hidden],.region-strip a>span:last-child{display:inline-block;transition:transform .35s cubic-bezier(.2,.7,.2,1)}
@media(hover:hover){:is(.text-link,.button):hover>span[aria-hidden],.region-strip a:hover>span:last-child{transform:translate(3px,-3px)}}
.button-gold{background-image:linear-gradient(110deg,transparent 35%,rgba(255,255,255,.4) 50%,transparent 65%);background-size:260% 100%;background-position:120% 0;transition:background-color .2s,color .2s,background-position .8s cubic-bezier(.2,.7,.2,1)}
@media(hover:hover){.button-gold:hover{background-position:-20% 0}}
.service-item{position:relative}
.service-item::before{content:"";position:absolute;left:0;top:0;width:100%;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
@media(hover:hover){.service-item:hover::before{transform:scaleX(1)}}
.model-card-photo img,.home-welfare-photo img{transition:transform .8s cubic-bezier(.2,.7,.2,1)}
@media(hover:hover){.model-card:hover .model-card-photo img,.home-welfare-grid:hover .home-welfare-photo img{transform:scale(1.035)}}
@media(prefers-reduced-motion:no-preference){
  /* Page-to-page fade; the header stays put. */
  @view-transition{navigation:auto}
  ::view-transition-old(root){animation:.3s ease-in both page-out}
  ::view-transition-new(root){animation:.55s cubic-bezier(.2,.7,.2,1) .05s both page-in}
  .site-header{view-transition-name:site-header}
  /* Hero entrance. */
  .hero-copy>*{animation:rise 1s cubic-bezier(.2,.7,.2,1) backwards}
  .hero-copy>:nth-child(2){animation-delay:.12s}
  .hero-copy>:nth-child(3){animation-delay:.26s}
  .hero-copy>:nth-child(4){animation-delay:.36s}
  .hero-copy>:nth-child(5){animation-delay:.46s}
  .hero-copy>:nth-child(6){animation-delay:.6s}
  .hero-image-frame{animation:unveil 1.3s cubic-bezier(.7,0,.2,1) .15s backwards}
  .hero-image-frame img{animation:settle 2.6s cubic-bezier(.2,.7,.2,1) .15s backwards}
  .image-corner{animation:corner 1s cubic-bezier(.2,.7,.2,1) 1s backwards}
  .hero-visual figcaption,.strip-label{animation:fade 1s ease 1.1s backwards}
  .region-strip a{animation:rise .9s cubic-bezier(.2,.7,.2,1) .9s backwards}
  .region-strip a:nth-child(2){animation-delay:1s}
  .region-strip a:nth-child(3){animation-delay:1.1s}
  /* Mobile menu slides open. */
  .menu-ready.menu-open .site-nav{transition:opacity .3s ease,translate .3s cubic-bezier(.2,.7,.2,1)}
  @starting-style{.menu-ready.menu-open .site-nav{opacity:0;translate:0 -10px}}
}
/* Content rises into place as it scrolls into view (Chrome, Edge, Safari 26+; others show it as is). */
@supports ((animation-timeline:view()) and (animation-range:entry)){
  @media(prefers-reduced-motion:no-preference){
    :is(.section-intro,.subsection-title,.service-item,.home-photo,.model-card,.advice-card,.planning-steps>li,.faq-layout>div,.album-heading,.comparison-wrap,.welfare-photo-grid>figure,.office,.office-section-heading,.history-timeline>li,.company-facts>div,.editorial-grid>div,.home-welfare-grid>*,.companion-note>div,.use-item,.flow-list>li,.contact-band-inner,.pending){animation:rise auto linear backwards;animation-timeline:view();animation-range:entry 0% entry 80%}
    :is(.service-item,.home-photo,.advice-card,.planning-steps>li,.welfare-photo-grid>figure,.office):nth-child(3n+2){animation-range:entry 10% entry 90%}
    :is(.service-item,.home-photo,.advice-card,.planning-steps>li,.office):nth-child(3n+3){animation-range:entry 20% entry 100%}
    .section-label::after{transform-origin:left;animation:draw-x auto linear backwards;animation-timeline:view();animation-range:entry 20% cover 35%}
  }
}
/* Inner pages: the page heading enters on load rather than on scroll. */
@media(prefers-reduced-motion:no-preference){
  .page-content>.section:first-of-type .container>:nth-child(-n+4){animation:rise .9s cubic-bezier(.2,.7,.2,1) backwards}
  .page-content>.section:first-of-type .container>:nth-child(2){animation-delay:.1s}
  .page-content>.section:first-of-type .container>:nth-child(3){animation-delay:.2s}
  .page-content>.section:first-of-type .container>:nth-child(4){animation-delay:.3s}
}
/* FAQ answers open smoothly where details content can be animated. */
@supports selector(::details-content){
  @media(prefers-reduced-motion:no-preference){
    :root{interpolate-size:allow-keywords}
    .faq-list details::details-content{block-size:0;overflow-y:clip;transition:block-size .4s cubic-bezier(.2,.7,.2,1),content-visibility .4s allow-discrete}
    .faq-list details[open]::details-content{block-size:auto}
  }
}
/* Phones: shorter travel and quicker entrances suit small screens and thumb scrolling. */
@media(max-width:700px){
  :root{--rise:14px;--rise-page:8px}
  @media(prefers-reduced-motion:no-preference){
    .hero-copy>*,.page-content>.section:first-of-type .container>:nth-child(-n+4){animation-duration:.7s}
    .hero-image-frame{animation-duration:1s}
    .region-strip a{animation-delay:.5s}
    .region-strip a:nth-child(2){animation-delay:.58s}
    .region-strip a:nth-child(3){animation-delay:.66s}
    .image-corner,.hero-visual figcaption,.strip-label{animation-delay:.6s}
  }
  @supports ((animation-timeline:view()) and (animation-range:entry)){
    @media(prefers-reduced-motion:no-preference){
      /* One column on phones: no stagger, each block reveals as it arrives. */
      :is(.service-item,.home-photo,.advice-card,.planning-steps>li,.welfare-photo-grid>figure,.office):nth-child(n){animation-range:entry 0% entry 70%}
    }
  }
}
