:root{--blue:#0a3180;--blue2:#1456d8;--cyan:#27c8d9;--yellow:#f5c842;--orange:#ff7657;--ink:#101a2c;--muted:#667085;--pale:#f2f6fc;--white:#fff;--line:#dce5f1;--font-en:"DM Sans",sans-serif;--font-jp:"Noto Sans JP",sans-serif;--container:min(1180px,calc(100% - 80px))}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:var(--font-jp);font-size:15px;line-height:1.9;background:#fff;overflow-wrap:anywhere}body.menu-open{overflow:hidden}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button{font:inherit}.container{width:var(--container);margin-inline:auto}.section-pad{padding:clamp(90px,9vw,150px) 0}.loading{position:fixed;inset:0;z-index:999;background:var(--blue);display:grid;place-items:center;color:#fff;font:600 14px var(--font-en);letter-spacing:.25em;transition:opacity .7s,visibility .7s}.loading::after{content:"";position:absolute;width:80px;height:2px;background:rgba(255,255,255,.2);transform:translateY(25px)}.loading span::after{content:"";display:block;width:0;height:2px;background:var(--cyan);margin-top:10px;animation:load 1s ease forwards}.loading.is-hidden{opacity:0;visibility:hidden}@keyframes load{to{width:100%}}
.site-header{height:90px;position:fixed;z-index:100;inset:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:0 34px;background:rgba(255,255,255,.95);border-bottom:1px solid transparent;transition:.35s}.site-header.is-scrolled{height:74px;border-color:var(--line);box-shadow:0 8px 30px rgba(15,39,80,.06);backdrop-filter:blur(14px)}.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:38px;height:38px;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:3px;transform:rotate(45deg);margin:0 5px}.brand-mark i{background:var(--blue2);transition:.3s}.brand-mark i:nth-child(2){background:var(--cyan)}.brand-mark i:nth-child(3){background:var(--yellow);grid-column:1/3}.brand:hover .brand-mark i{transform:scale(.82)}.brand-name{font:700 18px/1 var(--font-en);letter-spacing:.08em}.brand-name small{display:block;font:500 9px/1.2 var(--font-jp);letter-spacing:.05em;color:var(--muted);margin-top:7px}.global-nav,.global-nav>ul{display:flex;align-items:stretch;height:100%;margin:0}.global-nav>ul{list-style:none;padding:0}.global-nav>ul>li{position:relative}.global-nav>ul>li>a{height:100%;padding:0 clamp(13px,1.5vw,25px);display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;position:relative}.global-nav>ul>li>a::after{content:"";position:absolute;left:22%;right:22%;bottom:0;height:3px;background:var(--blue2);transform:scaleX(0);transition:.3s}.global-nav>ul>li>a:hover::after{transform:scaleX(1)}.global-nav span{font:500 9px var(--font-en);color:var(--blue2)}.header-contact{min-width:170px;background:var(--blue);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 24px;margin-left:15px;font-weight:600;transition:.3s}.header-contact:hover{background:var(--blue2)}.header-contact b{font-size:19px;transition:.3s}.header-contact:hover b{transform:translate(3px,-3px)}.dropdown{position:absolute;top:calc(100% + 1px);left:0;width:190px;background:#fff;list-style:none;padding:10px;box-shadow:0 18px 40px rgba(14,39,84,.15);opacity:0;visibility:hidden;transform:translateY(8px);transition:.25s}.has-dropdown:hover .dropdown,.has-dropdown:focus-within .dropdown{opacity:1;visibility:visible;transform:none}.dropdown a{display:block;padding:10px 14px;font-size:13px;border-radius:4px;transition:.2s}.dropdown a:hover{background:var(--pale);color:var(--blue2);padding-left:18px}.menu-toggle{display:none}
.hero{min-height:760px;height:100svh;padding-top:90px;position:relative;overflow:hidden;background:linear-gradient(135deg,#f7faff 0%,#eef5ff 70%,#fff 100%);display:grid;grid-template-columns:minmax(40px,1fr) minmax(450px,590px) minmax(460px,760px) minmax(30px,1fr);align-items:center}.hero-grid{position:absolute;inset:90px 0 0;background-image:linear-gradient(rgba(23,72,151,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(23,72,151,.055) 1px,transparent 1px);background-size:72px 72px;mask-image:linear-gradient(90deg,#000,transparent 76%)}.hero-content{grid-column:2;z-index:2;padding-right:25px}.eyebrow{display:flex;align-items:center;gap:12px;margin:0 0 20px;color:var(--blue2);font:600 11px var(--font-en);letter-spacing:.18em}.eyebrow span{width:27px;height:2px;background:currentColor}.hero h1{font-size:clamp(46px,5.25vw,80px);line-height:1.28;letter-spacing:-.055em;margin:0;font-weight:600}.hero h1 em,.company h2 em{font-style:normal;color:var(--blue2);position:relative}.hero h1 em::after{content:"";position:absolute;left:0;right:0;bottom:3px;height:10px;background:var(--yellow);z-index:-1;transform:skewX(-12deg)}.hero-copy{font-size:16px;color:#44516a;margin:32px 0 0}.hero-visual{grid-column:3/5;height:min(72vh,680px);z-index:1;position:relative;border-radius:180px 0 0 24px;overflow:hidden;box-shadow:-30px 35px 80px rgba(21,60,125,.13)}.placeholder{position:absolute;inset:0;background:linear-gradient(145deg,#dfe9f8,#b8cae5);display:flex;align-items:center;justify-content:center;color:rgba(10,49,128,.35);overflow:hidden}.placeholder::before,.placeholder::after{content:"";position:absolute;border:1px solid rgba(255,255,255,.6);border-radius:50%}.placeholder::before{width:70%;aspect-ratio:1}.placeholder::after{width:42%;aspect-ratio:1}.placeholder span{font:600 clamp(20px,3vw,44px) var(--font-en);letter-spacing:.12em;z-index:1}.placeholder small{position:absolute;left:30px;bottom:26px;font:600 10px var(--font-en);letter-spacing:.15em}.visual-label{position:absolute;right:5%;bottom:7%;background:#fff;padding:17px 24px;display:flex;gap:12px;align-items:center;box-shadow:0 15px 35px rgba(12,38,81,.14);font:600 13px var(--font-en);letter-spacing:.12em}.visual-label span{color:var(--orange)}.hero-side-note{position:absolute;right:15px;top:15%;z-index:3;writing-mode:vertical-rl;font:500 9px var(--font-en);letter-spacing:.18em;color:var(--blue)}.round-link{margin-top:38px;width:94px;height:94px;border:1px solid #9eb3d0;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-direction:column;font:600 9px var(--font-en);letter-spacing:.12em;transition:.35s}.round-link b{font-size:18px}.round-link:hover{color:#fff;background:var(--blue);border-color:var(--blue);transform:translateY(4px)}.hero-orbit{position:absolute;border-radius:50%;z-index:0}.hero-orbit--one{width:180px;height:180px;background:var(--cyan);left:-80px;top:18%;opacity:.18}.hero-orbit--two{width:70px;height:70px;background:var(--orange);left:50%;bottom:6%;opacity:.8}
.news{padding-block:70px}.news-layout{display:grid;grid-template-columns:270px 1fr;gap:65px;align-items:start}.section-title h2{font-size:clamp(32px,4vw,54px);line-height:1.2;margin:0;letter-spacing:-.04em}.news-list{border-top:1px solid var(--line)}.news-item{display:grid;grid-template-columns:120px 68px 1fr 30px;gap:18px;align-items:center;padding:22px 5px;border-bottom:1px solid var(--line);transition:.25s}.news-item:hover{background:var(--pale);padding-inline:18px}.news-item time{font:500 12px var(--font-en);color:var(--muted)}.tag{color:var(--blue2);font:600 9px var(--font-en);letter-spacing:.1em}.news-item p{margin:0;font-weight:500}.news-item i{font-style:normal;font-size:18px;color:var(--blue2)}
.philosophy{background:var(--pale);overflow:hidden}.philosophy-layout{display:grid;grid-template-columns:1fr .95fr;gap:clamp(55px,8vw,110px);align-items:center}.philosophy-visual{position:relative;height:620px}.philosophy-visual .placeholder{border-radius:12px 150px 12px 12px}.placeholder--dark{background:linear-gradient(145deg,#112d5e,#0b1f43);color:rgba(255,255,255,.28)}.shape-dot{position:absolute;border-radius:50%;z-index:2}.shape-dot--yellow{width:100px;height:100px;background:var(--yellow);right:-32px;bottom:80px}.shape-dot--blue{width:32px;height:32px;background:var(--cyan);left:-16px;top:70px}.philosophy-copy h2{font-size:clamp(38px,4vw,58px);margin:0 0 35px;line-height:1.2}.principles{border-top:1px solid #cbd8e8;margin-bottom:30px}.principles p{margin:0;padding:17px 0;border-bottom:1px solid #cbd8e8;font-size:17px;font-weight:600}.principles span{color:var(--blue2);font:600 11px var(--font-en);margin-right:20px}.body-copy{color:#536178;margin:14px 0}.text-link{display:inline-flex;align-items:center;gap:35px;margin-top:25px;font-weight:600;border-bottom:1px solid var(--ink);padding-bottom:7px}.text-link span{transition:.3s}.text-link:hover span{transform:translateX(7px)}
.company{position:relative;background:var(--blue);color:#fff;overflow:hidden;padding-bottom:100px}.company-layout{display:grid;grid-template-columns:1fr 1fr;gap:100px;position:relative;z-index:2}.company h2{font-size:clamp(38px,4.5vw,64px);line-height:1.35;margin:0;letter-spacing:-.045em}.company h2 em{color:var(--cyan)}.eyebrow--light{color:#8ee8f1}.company-content{padding-top:44px}.company-content p{color:#cbd8eb;margin:0 0 20px}.company-actions{display:flex;gap:14px;margin-top:38px}.pill-link{min-width:180px;padding:15px 20px;border-radius:100px;background:#fff;color:var(--blue);display:flex;justify-content:space-between;font-weight:600;transition:.3s}.pill-link:hover{background:var(--yellow);transform:translateY(-3px)}.pill-link--outline{background:transparent;border:1px solid #7187b3;color:#fff}.ticker{margin-top:90px;width:100%;white-space:nowrap;transform:rotate(-2deg);opacity:.12}.ticker div{font:700 clamp(70px,9vw,140px)/1 var(--font-en);animation:ticker 25s linear infinite}@keyframes ticker{to{transform:translateX(-50%)}}
.services{background:#fff}.services-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:65px}.services-head>p{color:var(--muted);margin:0}.service-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:60px 24px}.service-card--large,.service-card--wide{grid-column:1/-1}.service-image{height:300px;position:relative;overflow:hidden;border-radius:6px}.service-card--large .service-image{height:520px}.service-card--wide{display:grid;grid-template-columns:1.35fr 1fr;align-items:stretch;background:var(--pale)}.service-card--wide .service-image{height:390px}.service-card--wide .service-info{padding:40px}.service-no{position:absolute;left:0;bottom:0;background:#fff;padding:11px 19px;font:600 11px var(--font-en);color:var(--blue2)}.service-card .placeholder{transition:.6s}.service-card:hover .placeholder{transform:scale(1.035);filter:saturate(1.2)}.service-info{position:relative;padding:22px 55px 0 0}.service-info h3{font-size:clamp(20px,2vw,28px);line-height:1.4;margin:0 0 10px}.service-info p{color:var(--muted);margin:0;max-width:700px}.service-info i{position:absolute;right:5px;top:25px;width:40px;height:40px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;font-style:normal;color:var(--blue2);transition:.3s}.service-card:hover .service-info i{background:var(--blue2);color:#fff;transform:rotate(45deg)}
.contact{position:relative;background:#128a9e;color:#fff;padding:clamp(80px,9vw,130px) 0;overflow:hidden}.contact::before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,rgba(4,49,105,.5),transparent 55%)}.contact-shape{position:absolute;width:430px;height:430px;border:80px solid rgba(255,255,255,.09);border-radius:50%;right:-60px;top:-170px}.contact-inner{position:relative;display:flex;align-items:center;justify-content:space-between;gap:50px}.contact h2{font-size:clamp(36px,4.4vw,62px);line-height:1.35;letter-spacing:-.04em;margin:0 0 22px}.contact p{color:#d2f3f5}.contact-button{width:290px;height:290px;border-radius:50%;background:#fff;color:var(--blue);display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;transition:.4s;flex:none}.contact-button span{font-size:20px;font-weight:700}.contact-button small{font:600 9px var(--font-en);letter-spacing:.16em;margin-top:8px;color:var(--muted)}.contact-button b{position:absolute;right:50px;top:48px;font-size:22px}.contact-button:hover{background:var(--yellow);transform:rotate(-4deg) scale(1.03)}
.site-footer{background:#08152d;color:#fff;padding:80px 0 25px}.footer-main{display:flex;justify-content:space-between;gap:80px}.brand--footer .brand-name small{color:#9badcc}.footer-brand p{color:#93a4c5;margin:32px 0 8px;font-size:13px}.footer-brand>a:last-child{font:500 14px var(--font-en)}.footer-nav{display:grid;grid-template-columns:repeat(3,minmax(130px,1fr));gap:40px;min-width:54%}.footer-nav div{display:flex;flex-direction:column}.footer-nav a{padding:7px 0;color:#c2cee3;font-size:13px;transition:.25s}.footer-nav a:hover{color:var(--cyan);transform:translateX(4px)}.footer-bottom{margin-top:70px;padding-top:22px;border-top:1px solid #263653;display:flex;justify-content:space-between;color:#7184a7;font:500 9px var(--font-en);letter-spacing:.13em}.footer-bottom a{color:#fff}.reveal{opacity:0;transform:translateY(35px);transition:opacity .85s ease,transform .85s cubic-bezier(.2,.65,.3,1)}.reveal.is-visible{opacity:1;transform:none}
@media(max-width:1020px){:root{--container:min(100% - 50px,900px)}.global-nav>ul{display:none}.menu-toggle{display:flex;width:54px;height:54px;border:0;background:var(--blue);flex-direction:column;align-items:center;justify-content:center;gap:7px;z-index:102;cursor:pointer}.menu-toggle span{width:22px;height:2px;background:#fff;transition:.3s}.menu-toggle[aria-expanded="true"] span:first-child{transform:translateY(4.5px) rotate(45deg)}.menu-toggle[aria-expanded="true"] span:last-child{transform:translateY(-4.5px) rotate(-45deg)}.global-nav{position:fixed;inset:0;background:#f3f7fd;display:flex;flex-direction:column;justify-content:center;align-items:stretch;padding:110px 9vw 50px;transform:translateX(100%);transition:.45s;visibility:hidden}.global-nav.is-open{transform:none;visibility:visible}.global-nav>ul{display:flex;flex-direction:column;height:auto}.global-nav>ul>li>a{padding:17px 0;border-bottom:1px solid var(--line);font-size:19px}.global-nav .dropdown{position:static;width:auto;box-shadow:none;opacity:1;visibility:visible;transform:none;padding:5px 0 5px 28px;background:transparent}.dropdown a{padding:7px;font-size:13px}.header-contact{height:66px;margin:30px 0 0}.hero{grid-template-columns:25px 45% 1fr;height:auto;min-height:760px}.hero-content{grid-column:2}.hero-visual{grid-column:3/4;height:570px}.hero h1{font-size:clamp(43px,6.5vw,65px)}.company-layout{gap:50px}.service-card--large .service-image{height:440px}}
@media(max-width:720px){:root{--container:calc(100% - 38px)}.site-header{height:70px;padding:0 15px}.site-header.is-scrolled{height:64px}.brand-mark{width:30px;height:30px}.brand-name{font-size:15px}.brand-name small{font-size:7px;margin-top:5px}.menu-toggle{width:45px;height:45px}.hero{display:flex;flex-direction:column;align-items:stretch;padding:70px 19px 35px;min-height:100svh}.hero-content{padding:65px 4px 38px}.hero h1{font-size:clamp(40px,12.2vw,58px)}.hero-copy{font-size:14px;margin-top:25px}.round-link{width:76px;height:76px;margin-top:27px}.hero-visual{height:42vh;min-height:300px;border-radius:80px 8px 8px 8px}.visual-label{padding:11px 15px;right:10px;bottom:10px}.hero-side-note,.hero-orbit--two{display:none}.section-pad{padding:78px 0}.news{padding-block:60px}.news-layout{grid-template-columns:1fr;gap:35px}.news-item{grid-template-columns:90px 45px 1fr;gap:8px 10px;padding:18px 0}.news-item i{display:none}.news-item p{grid-column:1/-1;font-size:14px}.philosophy-layout{grid-template-columns:1fr;gap:50px}.philosophy-visual{height:390px}.philosophy-visual .placeholder{border-radius:8px 80px 8px 8px}.shape-dot--yellow{width:70px;height:70px;right:-10px;bottom:40px}.philosophy-copy h2{margin-bottom:25px}.principles p{font-size:14px}.company-layout{grid-template-columns:1fr;gap:30px}.company-content{padding-top:0}.company-actions{flex-direction:column}.pill-link{width:100%}.ticker{margin-top:60px}.services-head{display:block;margin-bottom:40px}.services-head>p{margin-top:24px}.service-grid{grid-template-columns:1fr;gap:45px}.service-card--large,.service-card--wide{grid-column:auto}.service-image,.service-card--large .service-image,.service-card--wide .service-image{height:270px}.service-card--wide{display:block;background:transparent}.service-card--wide .service-info{padding:22px 55px 0 0}.service-info p{font-size:13px}.contact-inner{flex-direction:column;align-items:flex-start}.contact-button{width:220px;height:220px;align-self:flex-end}.contact-button b{right:38px;top:35px}.footer-main{flex-direction:column;gap:55px}.footer-nav{grid-template-columns:1fr 1fr;min-width:0;gap:25px}.footer-bottom{margin-top:50px}.loading span{font-size:12px}}
@media(max-width:360px){:root{--container:calc(100% - 28px)}.brand-name small{display:none}.hero{padding-inline:14px}.hero h1{font-size:38px}.hero-copy br{display:none}.footer-nav{grid-template-columns:1fr}.contact-button{width:190px;height:190px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}

/* 2026-09 top page refinements */
.brand-logo{display:block;width:145px;height:auto;transition:opacity .3s ease}.brand:hover .brand-logo{opacity:.72}.brand-logo--footer{width:145px}.global-nav>ul>li>a{gap:0}.header-contact span{color:#fff;font:600 14px/1.4 var(--font-jp);letter-spacing:0}.hero h1{font-size:clamp(43px,4.7vw,70px)}.hero h1>span{display:block;white-space:nowrap}.news-item{grid-template-columns:150px 1fr 30px}.news-item time{font-size:15px;font-weight:600;color:var(--blue)}.news-more{display:flex;justify-content:flex-end}.news-more .text-link{margin-top:28px}.company-content p{color:#edf4ff}.message-link:hover{color:#101a2c}.service-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:54px 24px}.service-card{width:calc((100% - 48px)/3)}.service-image,.service-card--large .service-image,.service-card--wide .service-image{height:260px}.service-card--wide{display:block;background:transparent}.service-card--wide .service-info{padding:22px 55px 0 0}.service-info h3{font-size:clamp(18px,1.55vw,23px)}.service-info p{font-size:13px;line-height:1.75}

@media(max-width:1020px){.brand-logo{width:132px}.service-card{width:calc((100% - 24px)/2)}}
@media(max-width:720px){.brand-logo{width:112px}.hero h1{font-size:clamp(34px,10vw,48px);line-height:1.32}.news-item{grid-template-columns:112px 1fr 24px;gap:10px;padding:20px 0}.news-item p{grid-column:auto;font-size:14px}.news-item i{display:block}.news-more{justify-content:flex-start}.service-grid{display:flex;gap:45px}.service-card{width:100%}.service-image,.service-card--large .service-image,.service-card--wide .service-image{height:270px}.brand-logo--footer{width:145px}}
@media(max-width:360px){.hero h1{font-size:32px}}

/* 2026-09 spacing, logo and link refinements */
.section-pad{padding:clamp(72px,7vw,112px) 0}.news{padding-block:56px}.company{padding-bottom:76px}.contact{padding:clamp(68px,7vw,98px) 0}.site-footer{padding-top:64px}
.brand{gap:11px}.brand-symbol{display:block;width:46px;height:51px;overflow:hidden;flex:none}.brand-symbol img{display:block;width:116px;max-width:none;height:auto}.brand-copy{display:flex;flex-direction:column;justify-content:center;white-space:nowrap}.brand-copy b{font:700 18px/1 var(--font-en);letter-spacing:.075em}.brand-copy small{margin-top:7px;color:var(--muted);font:500 9px/1.2 var(--font-jp);letter-spacing:.04em}.brand:hover .brand-symbol,.brand:hover .brand-copy{opacity:.72}.brand-symbol,.brand-copy{transition:opacity .3s ease}.brand-symbol--footer{width:55px;height:62px}.brand-symbol--footer img{width:145px}.brand-copy--footer b{font-size:20px}.brand-copy--footer small{font-size:10px;color:#d5deed}
.text-link{min-height:54px;margin-top:27px;padding:0 7px 0 22px;gap:26px;border:1px solid #c9d6e8;border-radius:999px;background:#fff;box-shadow:0 10px 24px rgba(18,58,122,.08);transition:color .3s ease,background .3s ease,border-color .3s ease,box-shadow .3s ease,transform .3s ease}.text-link span{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--blue);color:#fff}.text-link:hover{color:#fff;background:var(--blue);border-color:var(--blue);box-shadow:0 14px 30px rgba(10,49,128,.2);transform:translateY(-2px)}.text-link:hover span{background:#fff;color:var(--blue);transform:none}.news-more .text-link{margin-top:24px}
.footer-brand p{color:#c5d0e3}.footer-brand>a:last-child{color:#fff}.footer-nav a{color:#dbe3f0}.footer-bottom{color:#aebbd1}.footer-bottom a{color:#fff}
@media(max-width:720px){.section-pad{padding:62px 0}.news{padding-block:50px}.company{padding-bottom:62px}.contact{padding:62px 0}.site-footer{padding-top:58px}.brand-symbol{width:37px;height:41px}.brand-symbol img{width:94px}.brand-copy b{font-size:15px}.brand-copy small{font-size:8px;margin-top:5px}.brand-symbol--footer{width:48px;height:54px}.brand-symbol--footer img{width:126px}.brand-copy--footer b{font-size:18px}.brand-copy--footer small{font-size:9px}.text-link{min-height:50px;padding-left:18px}.text-link span{width:36px;height:36px}}

/* 2026-09 supplied image placement */
.hero-visual{background:radial-gradient(circle at 58% 42%,#fff 0,#edf5ff 42%,#dce9f8 100%)}.hero-scene{position:absolute;inset:0;width:100%;height:100%;padding:5% 4% 7%;object-fit:contain;object-position:center bottom}.hero-character{position:absolute;z-index:4;left:47%;bottom:4%;width:105px;height:auto;filter:drop-shadow(0 18px 18px rgba(17,45,91,.18));animation:character-float 4.8s ease-in-out infinite}.illustration-panel{position:absolute;inset:0;display:grid;place-items:center;overflow:hidden;border-radius:12px 150px 12px 12px;background:linear-gradient(145deg,#173b78,#0b1f43)}.illustration-panel::before{content:"";position:absolute;inset:7%;border:1px solid rgba(255,255,255,.16);border-radius:50%}.illustration-panel img{position:relative;width:100%;height:100%;padding:8%;object-fit:contain;filter:drop-shadow(0 24px 28px rgba(0,0,0,.2))}.company-character{position:absolute;z-index:1;right:4%;bottom:22px;width:112px;height:auto;opacity:.88;filter:drop-shadow(0 16px 20px rgba(0,0,0,.25));transform:rotate(3deg)}.services{position:relative;overflow:hidden}.services>.container{position:relative}.services-head{position:relative}.services-advisor{position:absolute;right:22%;bottom:-20px;width:74px;height:auto;filter:drop-shadow(0 14px 18px rgba(17,45,91,.14));transform:rotate(5deg)}.service-image{height:225px;background:#edf3fa;border:1px solid #e3eaf3}.service-image>img{width:100%;height:100%;object-fit:contain;object-position:center;transition:transform .6s ease,filter .6s ease}.service-card:hover .service-image>img{transform:scale(1.025);filter:saturate(1.08)}.service-decorations{position:absolute;inset:0;pointer-events:none;z-index:2}.service-decoration{position:absolute;width:138px;height:auto;filter:drop-shadow(0 16px 18px rgba(11,42,91,.14))}.service-decoration--build{top:170px;left:-118px;transform:rotate(-6deg)}.service-decoration--relocate{top:510px;right:-112px;transform:rotate(5deg)}.service-decoration--remove{bottom:120px;left:-108px;transform:rotate(-4deg)}.contact-building{position:absolute;right:250px;bottom:-175px;width:360px;height:auto;opacity:.2;filter:grayscale(1) brightness(1.9)}
@keyframes character-float{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-10px) rotate(2deg)}}
@media(max-width:1280px){.service-decoration{width:112px;opacity:.72}.service-decoration--build{left:-60px}.service-decoration--relocate{right:-55px}.service-decoration--remove{left:-55px}.services-advisor{right:18%}}
@media(max-width:1020px){.hero-character{display:none}.illustration-panel{border-radius:10px 100px 10px 10px}.company-character{width:88px;opacity:.7}.service-decorations{display:none}.services-advisor{right:3%;bottom:-28px}.contact-building{right:170px;width:300px}}
@media(max-width:720px){.hero-scene{padding:5% 2%}.illustration-panel{border-radius:8px 80px 8px 8px}.illustration-panel img{padding:6%}.company-character{width:68px;right:8px;bottom:25px;opacity:.48}.services-advisor{width:54px;right:4px;bottom:-2px}.service-image{height:190px}.contact-building{right:-35px;bottom:-105px;width:225px;opacity:.13}}

/* Ensure supplied service captures are always visible */
.service-image>img{display:block!important;position:relative;z-index:1;width:100%!important;height:100%!important;opacity:1!important;visibility:visible!important;object-fit:contain!important;background:#fff}.service-no{z-index:2}

/* 2026-09 blank image state and service layout */
.hero-visual{background:#fff}.blank-media{position:absolute;inset:0;background:#fff}.blank-media--philosophy{border:1px solid #dce5f1;border-radius:12px 150px 12px 12px}.service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 24px;justify-content:stretch}.service-card{width:auto;min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:10px;background:#fff;box-shadow:0 12px 34px rgba(16,48,101,.06);transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease}.service-card:hover{transform:translateY(-5px);border-color:#b9cae2;box-shadow:0 20px 44px rgba(16,48,101,.12)}.service-image{height:250px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:#fff}.service-info{padding:24px 68px 28px 24px}.service-card--feature{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1.28fr) minmax(320px,.72fr);align-items:stretch;background:linear-gradient(120deg,#fff 0,#fff 58%,#f2f6fc 58%,#f2f6fc 100%)}.service-card--feature .service-image{height:310px;border:0;border-right:1px solid var(--line)}.service-card--feature .service-info{display:flex;flex-direction:column;justify-content:center;padding:42px 76px 42px 42px}.service-card--feature .service-info i{top:42px;right:25px}.ticker{overflow:hidden;transform:none}.ticker .ticker-track{display:flex;width:max-content;font:700 clamp(70px,9vw,140px)/1 var(--font-en);animation:ticker-horizontal 30s linear infinite}.ticker .ticker-track span{display:block;flex:none;white-space:nowrap}@keyframes ticker-horizontal{to{transform:translateX(-50%)}}
@media(max-width:720px){.blank-media--philosophy{border-radius:8px 80px 8px 8px}.service-grid{grid-template-columns:1fr;gap:28px}.service-card--feature{grid-column:auto;display:block;background:#fff}.service-image,.service-card--feature .service-image{height:220px;border:0;border-bottom:1px solid var(--line)}.service-info,.service-card--feature .service-info{display:block;padding:22px 58px 26px 20px}.service-card--feature .service-info i{top:25px;right:5px}.ticker .ticker-track{font-size:64px;animation-duration:22s}}

/* 2026-09 premium services area */
.services{isolation:isolate;background:linear-gradient(180deg,#eef5ff 0,#f8fbff 34%,#fff 100%)}.services::before{content:"SERVICES";position:absolute;z-index:-1;top:22px;right:-24px;color:transparent;-webkit-text-stroke:1px rgba(20,86,216,.1);font:700 clamp(92px,14vw,210px)/1 var(--font-en);letter-spacing:-.07em;white-space:nowrap}.services::after{content:"";position:absolute;z-index:-1;left:-120px;top:36%;width:300px;height:300px;border:70px solid rgba(39,200,217,.08);border-radius:50%}.services-head{margin-bottom:46px;padding:34px 38px;border-radius:18px;background:linear-gradient(125deg,var(--blue) 0,#123f9d 70%,#1767d8 100%);box-shadow:0 24px 60px rgba(10,49,128,.18);overflow:hidden}.services-head::after{content:"";position:absolute;right:-60px;bottom:-100px;width:260px;height:260px;border:48px solid rgba(255,255,255,.08);border-radius:50%}.services-head .eyebrow{color:#8ee8f1}.services-head .section-title h2{position:relative;color:#fff}.services-head>p{position:relative;z-index:1;color:#dce8ff;font-size:16px}.service-grid{gap:30px 26px}.service-card{--service-accent:var(--blue2);position:relative;border:0;border-top:5px solid var(--service-accent);border-radius:14px;box-shadow:0 15px 38px rgba(16,48,101,.1)}.service-card:nth-child(2){--service-accent:#c45642}.service-card:nth-child(3){--service-accent:#20a9bb}.service-card:nth-child(4){--service-accent:#d99613}.service-card:nth-child(5){--service-accent:#33a35c}.service-card::after{content:"";position:absolute;right:-30px;bottom:-35px;width:100px;height:100px;border:22px solid color-mix(in srgb,var(--service-accent) 12%,transparent);border-radius:50%;pointer-events:none}.service-image{height:270px;padding:10px;background:#fff}.service-image>img{border-radius:8px;object-fit:contain!important;background:#f7f9fc!important}.service-no{left:18px;bottom:16px;min-width:54px;padding:9px 15px;border-radius:100px;background:var(--service-accent);color:#fff;text-align:center;box-shadow:0 8px 18px color-mix(in srgb,var(--service-accent) 28%,transparent)}.service-info{min-height:190px;padding:26px 72px 32px 27px}.service-info h3{position:relative;margin-bottom:13px;font-size:clamp(22px,2vw,29px)}.service-info h3::after{content:"";display:block;width:38px;height:3px;margin-top:13px;border-radius:3px;background:var(--service-accent)}.service-info p{position:relative;z-index:1;font-size:14px;line-height:1.85}.service-info i{right:22px;top:27px;border-color:color-mix(in srgb,var(--service-accent) 35%,#dce5f1);color:var(--service-accent)}.service-card:hover .service-info i{background:var(--service-accent);border-color:var(--service-accent)}.service-card--feature{border-top:5px solid var(--service-accent);background:linear-gradient(110deg,#fff 0,#fff 61%,#092d71 61%,#0a3180 100%)}.service-card--feature .service-image{height:330px;padding:14px;border-right:0}.service-card--feature .service-info{min-height:0;padding:44px 78px 44px 46px;color:#fff}.service-card--feature .service-info h3{font-size:clamp(26px,2.5vw,36px)}.service-card--feature .service-info h3::after{background:#66e0ec}.service-card--feature .service-info p{color:#dce8ff;font-size:15px}.service-card--feature .service-info i{right:27px;top:43px;border-color:rgba(255,255,255,.42);color:#fff}.service-card--feature::after{border-color:rgba(255,255,255,.08)}
@media(max-width:720px){.services::before{top:18px;font-size:78px}.services::after{display:none}.services-head{padding:27px 24px;margin-bottom:34px}.services-head>p{font-size:14px}.service-grid{gap:28px}.service-card{border-radius:12px}.service-image,.service-card--feature .service-image{height:220px;padding:8px;border-right:0}.service-info,.service-card--feature .service-info{min-height:0;padding:24px 58px 29px 22px;color:var(--ink);background:#fff}.service-info h3,.service-card--feature .service-info h3{font-size:22px}.service-card--feature .service-info h3::after{background:var(--service-accent)}.service-info p,.service-card--feature .service-info p{color:var(--muted);font-size:13px}.service-card--feature .service-info i{right:15px;top:25px;border-color:var(--line);color:var(--service-accent)}}

/* 2026-09 full-width hero background */
.hero{background:#fff}.hero-grid{display:none}.hero-content{position:relative;z-index:5;isolation:isolate}.hero-content::before{display:none}.hero h1 em::after{display:none}.hero-visual{grid-column:auto;grid-row:auto;position:absolute;z-index:0;inset:90px 0 0;width:100%;height:auto;overflow:hidden;border-radius:0;background:#fff;box-shadow:none;pointer-events:none}.hero-visual::before{display:none}.hero-visual::after{content:"";display:block;position:absolute;z-index:3;inset:0;background:linear-gradient(90deg,#fff 0%,#fff 30%,rgba(255,255,255,.98) 34%,rgba(255,255,255,.88) 37%,rgba(255,255,255,.58) 40%,rgba(255,255,255,.22) 43%,transparent 46%);pointer-events:none}.hero-main-image{position:absolute;inset:0;width:100%;max-width:none;height:100%;object-fit:cover;object-position:center center;filter:none;transform:none;animation:none}.hero-orbit{display:none}
@media(max-width:1020px){.hero-visual{inset:74px 0 0}.hero-main-image{object-position:54% center}}
@media(max-width:720px){.hero{padding-bottom:clamp(220px,61vw,330px)}.hero-content{padding-bottom:20px}.hero-visual{inset:auto 0 0;height:clamp(220px,61vw,330px);min-height:0}.hero-visual::after{display:none}.hero-main-image{object-position:68% center}}

/* 2026-09 compact spacing and interaction refinements */
.section-pad{padding:clamp(58px,5.2vw,82px) 0}.hero h1 em{background:linear-gradient(transparent 72%,rgba(245,200,66,.82) 72%,rgba(245,200,66,.82) 92%,transparent 92%)}.news{scroll-margin-top:84px}.news.section-pad{padding:30px 0 38px}.news-layout{gap:50px}.news-item{padding-block:17px}.news-more .text-link{margin-top:18px}.company{padding-bottom:58px}.ticker{margin-top:58px}.services-head>p{color:#f7faff}.contact{padding:clamp(58px,5.2vw,82px) 0}.site-footer{padding:58px 0 20px}.footer-bottom{margin-top:42px;padding-top:16px;color:#e4eaf5}.footer-bottom p{margin:0}.page-top-button{min-width:132px;min-height:48px;padding:10px 13px 10px 19px;border:1px solid rgba(255,255,255,.42);border-radius:999px;display:inline-flex;align-items:center;justify-content:space-between;gap:18px;color:#fff!important;background:rgba(255,255,255,.06);font:700 13px/1 var(--font-en);letter-spacing:.08em;transition:background .3s ease,color .3s ease,border-color .3s ease}.page-top-button b{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#fff;color:#08152d;font-size:16px;transition:transform .3s ease}.page-top-button:hover{background:var(--yellow);border-color:var(--yellow);color:#08152d!important}.page-top-button:hover b{transform:translateY(-3px)}
.service-hover{position:absolute;z-index:6;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;padding:32px;text-align:center;color:#fff;opacity:0;transform:scale(.94);pointer-events:none;transition:opacity .32s ease .08s,transform .45s cubic-bezier(.2,.7,.2,1) .08s}.service-hover b{font-size:clamp(22px,2.2vw,32px);line-height:1.45;letter-spacing:.015em}.service-hover i{width:54px;height:54px;border:1px solid rgba(255,255,255,.72);border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:22px}.service-card::before{content:"";position:absolute;z-index:5;inset:0;background:var(--service-accent);clip-path:circle(0 at 50% 50%);pointer-events:none;transition:clip-path .65s cubic-bezier(.2,.72,.24,1)}
@media(hover:hover) and (pointer:fine){.service-card:hover::before,.service-card:focus-visible::before{clip-path:circle(110% at 50% 50%)}.service-card:hover .service-hover,.service-card:focus-visible .service-hover{opacity:1;transform:scale(1)}.service-card:hover .service-image>img{transform:scale(1.02)}}
@media(max-width:1020px){.menu-toggle{position:relative;z-index:103;flex:0 0 auto;padding:0;border-radius:50%}.global-nav{z-index:101;width:100%;max-width:none;height:100dvh;min-height:100%;overflow-y:auto;opacity:0;pointer-events:none;transform:translateX(100%);visibility:hidden}.global-nav.is-open{opacity:1;pointer-events:auto;transform:translateX(0);visibility:visible}.global-nav>ul{display:flex!important;width:100%;height:auto;flex:none}.global-nav>ul>li{width:100%}.global-nav .header-contact{width:100%;min-width:0;min-height:58px;height:58px;flex:none;margin:24px 0 0}.site-header.is-scrolled .menu-toggle{flex:0 0 auto}}
@media(max-width:720px){.section-pad{padding:48px 0}.news{scroll-margin-top:70px}.news.section-pad{padding:24px 0 32px}.news-layout{gap:24px}.news-item{padding-block:14px}.news-more .text-link{margin-top:15px}.company{padding-bottom:48px}.ticker{margin-top:44px}.services-head>p{color:#f7faff}.contact{padding:52px 0}.site-footer{padding:50px 0 18px}.footer-bottom{margin-top:30px;padding-top:14px;align-items:center;gap:18px}.page-top-button{min-width:124px;min-height:44px;padding:7px 9px 7px 16px;font-size:12px}.page-top-button b{width:29px;height:29px}.service-hover{display:none}}

/* 2026-09 hero character balance and first-view fit */
.hero,.hero-visual{background:#eaf4ff}.hero-copy span{display:block}.hero-visual::after{background:linear-gradient(90deg,#eaf4ff 0%,#eaf4ff 30%,rgba(234,244,255,.98) 34%,rgba(234,244,255,.88) 37%,rgba(234,244,255,.58) 40%,rgba(234,244,255,.22) 43%,transparent 46%)}
@media(max-width:720px){.hero{height:100svh;min-height:610px;max-height:760px;padding:70px 19px 0}.hero-content{padding:clamp(28px,5vh,44px) 4px 10px}.hero h1{font-size:clamp(33px,9.7vw,43px);line-height:1.28}.hero-copy{margin-top:18px;font-size:clamp(11px,3vw,13px);line-height:1.85;letter-spacing:-.035em}.hero-copy span{white-space:nowrap}.round-link{width:66px;height:66px;margin-top:18px}.hero-visual{height:clamp(205px,33svh,270px)}.hero-main-image{object-position:68% center}}
@media(max-width:360px){.hero{min-height:580px}.hero-content{padding-top:25px}.hero h1{font-size:31px}.hero-copy{font-size:11px;letter-spacing:-.055em}.round-link{width:60px;height:60px;margin-top:14px}.hero-visual{height:200px}}

/* 2026-09 refined service hover */
.service-card::before{background:linear-gradient(135deg,color-mix(in srgb,var(--service-accent) 88%,#071b43) 0%,var(--service-accent) 48%,color-mix(in srgb,var(--service-accent) 70%,#fff) 100%);transition:clip-path 1.05s cubic-bezier(.2,.72,.24,1)}
.service-hover{gap:15px;padding:clamp(28px,4vw,54px);transition:opacity .58s ease .16s,transform .82s cubic-bezier(.2,.7,.2,1) .12s}
.service-hover b{max-width:620px;text-shadow:0 2px 12px rgba(5,22,54,.18)}
.service-hover>span{max-width:570px;margin:0;font-size:clamp(13px,1.15vw,15px);font-weight:500;line-height:1.85;color:rgba(255,255,255,.92);text-wrap:balance;transform:translateY(8px);opacity:0;transition:opacity .5s ease .3s,transform .62s ease .28s}
.service-hover i{margin-top:5px;transition:background .35s ease,transform .5s ease}
@media(hover:hover) and (pointer:fine){.service-card:hover .service-hover>span,.service-card:focus-visible .service-hover>span{opacity:1;transform:none}.service-card:hover .service-hover i,.service-card:focus-visible .service-hover i{background:rgba(255,255,255,.14);transform:rotate(45deg)}}

/* 2026-09 mobile first-view and contact copy refinements */
.contact p{color:#f4fbff}.contact h2 span{display:block}
@media(max-width:720px){.hero,.hero-visual{background:#dfeeff}.hero{height:100svh;min-height:580px;max-height:none;padding:70px 19px 0}.hero-content{padding:clamp(20px,3.7svh,30px) 4px 8px}.hero-eyebrow{margin-bottom:12px}.hero h1{font-size:clamp(31px,9.1vw,39px);line-height:1.22}.hero-copy{margin-top:13px;font-size:clamp(10.5px,2.85vw,12.5px);line-height:1.75;letter-spacing:-.055em}.hero-copy span{white-space:nowrap}.round-link{width:58px;height:58px;margin-top:12px}.round-link b{font-size:15px}.hero-visual{height:clamp(190px,31svh,250px)}.contact h2{font-size:clamp(29px,8.2vw,39px);line-height:1.38;letter-spacing:-.045em}.contact h2 span{white-space:nowrap}.contact p{color:#f7fcff}}
@media(max-width:360px){.hero{min-height:560px}.hero-content{padding-top:18px}.hero h1{font-size:30px}.hero-copy{font-size:10.5px}.round-link{width:54px;height:54px;margin-top:10px}.hero-visual{height:185px}.contact h2{font-size:28px}}

/* 2026-09 hero white fade and rebuilt responsive navigation */
.hero-visual::after{background:linear-gradient(90deg,#fff 0%,#fff 30%,rgba(255,255,255,.98) 34%,rgba(255,255,255,.88) 37%,rgba(255,255,255,.58) 40%,rgba(255,255,255,.22) 43%,transparent 46%)}
@media(max-width:1020px){.site-header .brand{position:relative;z-index:103}.menu-toggle{position:relative;z-index:104;display:flex;width:50px;height:50px;flex:0 0 50px;padding:0;border:0;border-radius:50%;background:var(--blue);align-items:center;justify-content:center;gap:0;cursor:pointer}.menu-toggle span{position:absolute;width:22px;height:2px;border-radius:2px;background:#fff;transform-origin:center;transition:transform .35s ease,opacity .22s ease}.menu-toggle span:nth-child(1){transform:translateY(-7px)}.menu-toggle span:nth-child(2){transform:none}.menu-toggle span:nth-child(3){transform:translateY(7px)}.menu-toggle[aria-expanded="true"] span:nth-child(1){transform:rotate(45deg)}.menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}.menu-toggle[aria-expanded="true"] span:nth-child(3){transform:rotate(-45deg)}.global-nav{position:fixed;z-index:102;inset:0;width:100%;height:100dvh;min-height:100%;display:flex;flex-direction:column;justify-content:center;align-items:stretch;padding:100px clamp(24px,8vw,76px) 44px;background:#f3f7fd;overflow-y:auto;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-100%);transition:transform .5s cubic-bezier(.22,.75,.25,1),opacity .35s ease,visibility .5s}.global-nav.is-open{opacity:1;visibility:visible;pointer-events:auto;transform:none}.global-nav>ul{display:flex!important;width:100%;height:auto;flex:none;flex-direction:column;align-items:stretch;margin:0;padding:0}.global-nav>ul>li{width:100%}.global-nav>ul>li>a{height:auto;padding:14px 0;border-bottom:1px solid var(--line);font-size:clamp(17px,3vw,21px)}.global-nav>ul>li>a::after{display:none}.global-nav .dropdown{position:static;width:100%;margin:0;padding:7px 0 7px 20px;background:transparent;box-shadow:none;opacity:1;visibility:visible;transform:none}.global-nav .dropdown a{padding:5px 7px;font-size:13px}.global-nav .header-contact{width:100%;min-width:0;min-height:58px;height:58px;flex:none;margin:20px 0 0;padding:0 22px;border-radius:4px}}
@media(max-width:720px){.hero{height:100svh;min-height:560px;display:grid;grid-template-rows:auto minmax(185px,1fr);align-content:stretch;padding:70px 0 0;background:var(--blue)}.hero-content{width:100%;padding:clamp(17px,3svh,25px) 23px 7px;color:#fff}.hero-eyebrow{margin-bottom:10px;color:#8ee8f1}.hero h1{font-size:clamp(30px,8.8vw,38px);line-height:1.2}.hero h1 em{color:#fff}.hero-copy{margin-top:11px;color:rgba(255,255,255,.9);font-size:clamp(10.5px,2.8vw,12px);line-height:1.7}.round-link{width:54px;height:54px;margin-top:9px;border-color:rgba(255,255,255,.62);color:#fff}.round-link b{font-size:14px}.hero-visual{position:relative;inset:auto;width:100%;height:auto;min-height:185px;align-self:stretch;background:#fff}.hero-visual::after{display:none}.hero-main-image{object-position:68% center}.hero-side-note{display:none}.menu-toggle{width:46px;height:46px;flex-basis:46px}.global-nav{padding:88px 22px 32px;justify-content:flex-start}.global-nav>ul>li>a{padding:12px 0;font-size:18px}.global-nav .dropdown{padding-block:5px}.global-nav .header-contact{margin-top:15px}}
@media(max-width:360px){.hero{min-height:540px}.hero-content{padding:14px 19px 5px}.hero h1{font-size:29px}.hero-copy{font-size:10px}.round-link{width:50px;height:50px;margin-top:7px}.hero-visual{min-height:170px}.global-nav>ul>li>a{padding:10px 0}}

/* 2026-09 responsive hero single-column balance */
@media(max-width:720px){.hero{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(175px,1fr)}.hero-content{grid-column:1;grid-row:1;max-width:none;min-width:0;padding:clamp(18px,3.2svh,27px) 22px 10px}.hero-visual{grid-column:1;grid-row:2;min-width:0;min-height:175px}.hero-main-image{object-position:69% center}}
@media(max-width:360px){.hero{grid-template-rows:auto minmax(165px,1fr)}.hero-content{padding:15px 19px 7px}.hero-visual{min-height:165px}}

/* 2026-09 philosophy and contact character visuals */
.philosophy-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center center;border-radius:12px 150px 12px 12px}.contact::before{z-index:0}.contact-shape{z-index:0}.contact-characters{position:absolute;z-index:1;right:clamp(210px,18vw,300px);bottom:-48px;width:clamp(390px,37vw,560px);height:auto;pointer-events:none;filter:drop-shadow(0 20px 28px rgba(4,35,77,.2))}.contact-inner{z-index:2}.contact-inner>div{position:relative;z-index:2}.contact-button{z-index:3}
@media(max-width:1020px){.philosophy-photo{border-radius:10px 110px 10px 10px}.contact-characters{right:150px;bottom:-28px;width:410px;opacity:.72}}
@media(max-width:720px){.philosophy-photo{border-radius:8px 80px 8px 8px;object-position:center center}.contact-characters{right:70px;bottom:-8px;width:310px;opacity:.24;filter:none}.contact-inner>div,.contact-button{position:relative;z-index:2}}

/* 2026-09 responsive typography, news action and footer balance */
.news-heading-row{display:block}.news-title-link{margin-top:24px}
@media(max-width:720px){.hero-eyebrow{gap:8px;margin-bottom:9px;font-size:9px;letter-spacing:.13em}.hero-eyebrow>span{width:20px}.hero-copy{font-size:clamp(11px,3.35vw,13.5px);line-height:1.65;letter-spacing:-.07em}.news-heading-row{display:flex;align-items:center;justify-content:space-between;gap:14px}.news-title-link{flex:none;min-height:42px;margin:0;padding:0 5px 0 14px;gap:12px;font-size:11px}.news-title-link span{width:32px;height:32px}.text-link{min-height:44px;padding:0 5px 0 15px;gap:14px;font-size:12px}.text-link span{width:34px;height:34px}.philosophy-copy>.text-link{margin-top:19px}.site-footer{padding:36px 0 14px}.footer-main{gap:32px}.footer-brand p{margin:22px 0 6px}.footer-nav{gap:18px 22px}.footer-nav a{padding-block:5px}.footer-bottom{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;margin-top:24px;padding-top:12px}.page-top-button{position:relative;z-index:2;display:inline-flex!important;min-width:116px;min-height:42px;padding:6px 7px 6px 14px;gap:10px;border-color:var(--yellow);background:var(--yellow);color:#08152d!important;font-size:11px;box-shadow:0 8px 20px rgba(0,0,0,.2)}.page-top-button b{width:28px;height:28px;background:#08152d;color:#fff}.page-top-button:hover{background:#fff;border-color:#fff}.footer-bottom p{font-size:8px;letter-spacing:.08em}}
@media(max-width:360px){.hero-copy{font-size:10.8px}.news-heading-row{gap:9px}.news-title-link{padding-left:11px;gap:8px;font-size:10px}.site-footer{padding-top:32px}.footer-bottom{gap:8px}.page-top-button{min-width:108px;padding-left:11px}.footer-bottom p{font-size:7.5px}}
.news-title-link{display:none}
@media(max-width:720px){.news-title-link{display:inline-flex}.news-more{display:none}}

/* 2026-09 seamless header and redesigned contact banner */
@media(min-width:1021px){.site-header{padding-bottom:0;margin-bottom:0}.global-nav{height:100%;align-self:stretch}.header-contact{height:100%;align-self:stretch;margin-top:0;margin-bottom:0}}
.hero{margin-top:0}.contact{min-height:430px;padding:clamp(62px,5.5vw,84px) 0;background:linear-gradient(118deg,#07245f 0%,#0954b7 42%,#079de0 100%)}.contact::before{z-index:0;background:radial-gradient(circle at 82% 18%,rgba(92,220,255,.34),transparent 28%),linear-gradient(110deg,rgba(5,26,86,.3),transparent 58%)}.contact::after{content:"";position:absolute;z-index:0;left:0;right:0;bottom:0;height:78px;background:linear-gradient(90deg,rgba(255,255,255,.05) 12%,transparent 12% 18%,rgba(255,255,255,.07) 18% 27%,transparent 27% 34%,rgba(255,255,255,.05) 34% 44%,transparent 44% 53%,rgba(255,255,255,.06) 53% 65%,transparent 65% 72%,rgba(255,255,255,.05) 72% 86%,transparent 86%);clip-path:polygon(0 62%,5% 62%,5% 35%,10% 35%,10% 55%,16% 55%,16% 18%,23% 18%,23% 48%,29% 48%,29% 30%,35% 30%,35% 65%,43% 65%,43% 40%,51% 40%,51% 16%,58% 16%,58% 55%,66% 55%,66% 26%,73% 26%,73% 50%,81% 50%,81% 12%,88% 12%,88% 58%,94% 58%,94% 34%,100% 34%,100% 100%,0 100%)}.contact-shape{z-index:0;right:-90px;top:-220px;width:520px;height:520px;border-width:95px;opacity:.7}.contact-inner{z-index:2;display:grid;grid-template-columns:minmax(330px,1fr) minmax(360px,.9fr);grid-template-rows:auto auto;column-gap:clamp(38px,6vw,82px);align-items:end;min-height:290px}.contact-inner>div{grid-column:2;grid-row:1}.contact h2{margin-bottom:15px;font-size:clamp(36px,3.8vw,54px);line-height:1.28;text-shadow:0 3px 18px rgba(2,24,77,.16)}.contact p{margin:0;color:#f4fbff}.contact-characters{z-index:1;left:max(0px,calc((100vw - 1180px)/2 - 34px));right:auto;bottom:-22px;width:min(52vw,690px);opacity:1;filter:drop-shadow(0 22px 24px rgba(2,22,69,.28))}.contact-button{grid-column:2;grid-row:2;justify-self:start;position:relative;z-index:3;width:min(100%,370px);height:66px;margin-top:25px;padding:0 11px 0 28px;border-radius:999px;flex-direction:row;justify-content:flex-start;background:var(--yellow);color:#08265f;box-shadow:0 18px 34px rgba(2,24,75,.24)}.contact-button span{font-size:16px}.contact-button small{margin:0 12px 0 auto;color:#41506b;font-size:8px}.contact-button b{position:static;width:44px;height:44px;flex:none;border-radius:50%;display:grid;place-items:center;background:#08265f;color:#fff;font-size:18px}.contact-button:hover{background:#fff;transform:translateY(-3px) rotate(0)}
@media(max-width:720px){.contact{min-height:0;padding:48px 0 0}.contact-inner{display:block;min-height:0;padding-bottom:clamp(245px,70vw,310px)}.contact h2{font-size:clamp(30px,8.4vw,40px)}.contact-button{width:min(100%,350px);height:58px;margin-top:22px;padding-left:21px}.contact-button span{font-size:14px}.contact-button b{width:40px;height:40px}.contact-characters{left:-7vw;right:auto;bottom:-15px;width:114vw;max-width:none;opacity:1;filter:drop-shadow(0 14px 16px rgba(2,22,69,.22))}.contact-shape{right:-180px;top:-210px;opacity:.45}.contact::after{height:58px}}

/* 2026-09 contact teal tone and exact two-line heading */
.contact{background:linear-gradient(118deg,#075a76 0%,#0d6f8e 48%,#1484a2 100%)}.contact h2{font-size:clamp(33px,3.15vw,44px);letter-spacing:-.06em}.contact h2 span{display:block;white-space:nowrap}.contact-characters{bottom:0;width:min(58vw,760px)}
@media(max-width:720px){.contact-inner{padding-bottom:clamp(165px,45vw,198px)}.contact h2{font-size:clamp(25px,7.2vw,34px);line-height:1.38;letter-spacing:-.075em}.contact-characters{left:-7vw;bottom:0;width:114vw}}
@media(max-width:360px){.contact h2{font-size:24px}.contact-characters{bottom:0}}

/* 2026-09 brighter contact balance */
.contact{background:linear-gradient(118deg,#0b7194 0%,#1186a8 52%,#25a9bd 100%)}
.contact::before{background:radial-gradient(circle at 82% 18%,rgba(116,232,255,.28),transparent 30%),linear-gradient(110deg,rgba(4,54,82,.1),transparent 58%)}
@media(min-width:1021px){.contact-inner{grid-template-columns:61.5% 38.5%;column-gap:0;align-items:start}.contact-inner>div{grid-column:2}.contact-characters{left:max(0px,calc((100vw - 1180px)/2 - 34px));right:auto;bottom:0;width:min(58vw,720px)}.contact-button{grid-column:2}}
@media(min-width:721px) and (max-width:1020px){.contact{min-height:0;padding:54px 0 0}.contact-inner{display:block;min-height:0;padding-bottom:280px}.contact-inner>div{width:min(100%,620px)}.contact-characters{left:50%;right:auto;bottom:0;width:min(100vw,760px);max-width:none;opacity:1;transform:translateX(-50%)}.contact-button{width:min(100%,370px)}}

/* 2026-09 contact office background and exact line control */
.company h2{font-size:clamp(28px,3.4vw,46px);letter-spacing:-.06em}
.company h2>span{display:block;white-space:nowrap}
.contact> .contact-inner>div>p:last-child{color:#fff;font-weight:600}
a.contact-button[rel~="noopener"]{margin-top:0}
.contact-office-background{display:none}
@media(min-width:1021px){.contact{min-height:390px;padding:clamp(46px,4.2vw,60px) 0}.contact-inner{grid-template-columns:55% 45%;min-height:270px}.contact-characters{left:max(0px,calc((100vw - 1180px)/2 - 34px));width:min(55vw,680px)}.contact> .contact-inner>div>p:last-child{font-size:clamp(12px,1vw,14px);letter-spacing:-.035em;white-space:nowrap}.contact-office-background{position:absolute;z-index:0;left:0;bottom:0;display:block;width:58%;height:100%;object-fit:cover;object-position:center center;opacity:.34;filter:saturate(.72) contrast(.94);mix-blend-mode:luminosity;pointer-events:none;mask-image:linear-gradient(90deg,#000 0%,#000 72%,transparent 100%);-webkit-mask-image:linear-gradient(90deg,#000 0%,#000 72%,transparent 100%)}}

/* 2026-09 responsive hero, news, contact and page-top refinements */
.round-link--mobile{display:none}
@media(min-width:721px) and (max-width:1020px){.contact> .contact-inner>div>p:last-child{font-size:13px;line-height:1.75}a.contact-button[rel~="noopener"]{margin-top:18px}}
@media(max-width:720px){.hero-content{padding:clamp(24px,4.5svh,36px) 23px clamp(17px,3svh,24px)}.round-link--desktop{display:none}.round-link--mobile{position:absolute;z-index:6;left:16px;top:14px;display:flex;width:58px;height:58px;margin:0;color:#fff;background:#07357d;border-color:#07357d;box-shadow:0 10px 24px rgba(4,28,76,.26)}.round-link--mobile b{font-size:14px}.news-item time{font-size:12px}.contact> .contact-inner>div>p:last-child{font-size:11.5px;line-height:1.75;letter-spacing:-.04em}a.contact-button[rel~="noopener"]{margin-top:18px}.page-top-button{top:-12px}}
@media(max-width:360px){.round-link--mobile{left:12px;top:12px;width:54px;height:54px}.news-item time{font-size:11px}.contact> .contact-inner>div>p:last-child{font-size:11px}a.contact-button[rel~="noopener"]{margin-top:16px}.page-top-button{top:-10px}}

/* Contact section refinements */
.contact .eyebrow{margin-bottom:26px}
.contact-button b{border:0;background:#08265f;color:#fff;overflow:visible}
@media(max-width:720px){.contact .eyebrow{margin-bottom:22px}.contact-button small{margin-left:auto;margin-right:9px}}
@media(min-width:1021px){.contact-characters{left:max(0px,calc((100vw - 1180px)/2 - 42px));bottom:0;width:min(62vw,770px);opacity:1;filter:drop-shadow(0 18px 22px rgba(2,34,55,.22))}}

/* CONTACT US desktop composition: separate the people and copy while keeping mobile unchanged. */
@media(min-width:1200px){
  .contact-inner>div,
  .contact-button{transform:translateX(32px)}
  .contact-characters{
    left:max(-8px,calc((100vw - 1180px)/2 - 150px));
    width:min(67vw,860px)
  }
}
@media(min-width:1021px) and (max-width:1199px){
  .contact-inner>div,
  .contact-button{transform:translateX(18px)}
  .contact-characters{
    left:-45px;
    width:min(64vw,650px)
  }
}

/* CONTACT US desktop flooring stage and eight supplied bustle marks. */
.contact-bustle-cloud{display:none}
@media(min-width:1021px){
  .contact-bustle-cloud{
    position:absolute;
    z-index:2;
    left:max(0px,calc((100vw - 1180px)/2 - 74px));
    top:2px;
    display:block;
    width:min(54vw,690px);
    height:80px;
    overflow:hidden;
    overflow:clip;
    contain:layout paint;
    clip-path:inset(0);
    pointer-events:none
  }
  .contact-bustle-mark{
    position:absolute;
    left:var(--mark-x,12%);
    top:var(--mark-y,18%);
    width:clamp(17px,1.85vw,26px);
    height:auto;
    max-height:calc(100% - 6px);
    object-fit:contain;
    opacity:0;
    visibility:hidden;
    filter:drop-shadow(0 7px 9px rgba(2,42,63,.16));
    transform:translate3d(0,6px,0) scale(.76);
    transform-origin:top left;
    will-change:opacity,transform
  }
  .contact-bustle-mark.is-popping{
    visibility:visible;
    animation:contact-bustle-pop 1s cubic-bezier(.22,.8,.25,1) both
  }
}
@keyframes contact-bustle-pop{
  0%{opacity:0;visibility:visible;filter:drop-shadow(0 7px 9px rgba(2,42,63,.16));transform:translate3d(0,6px,0) scale(.76)}
  18%{opacity:.96;visibility:visible;filter:drop-shadow(0 10px 13px rgba(2,42,63,.22));transform:translate3d(0,0,0) scale(var(--mark-scale,1))}
  42%{opacity:.96;visibility:visible;filter:drop-shadow(0 10px 13px rgba(2,42,63,.22));transform:translate3d(0,0,0) scale(var(--mark-scale,1))}
  72%{opacity:.42;visibility:visible;filter:drop-shadow(0 8px 10px rgba(2,42,63,.17));transform:translate3d(0,-2px,0) scale(var(--mark-scale,1))}
  100%{opacity:0;visibility:hidden;filter:drop-shadow(0 7px 9px rgba(2,42,63,.12));transform:translate3d(0,-4px,0) scale(var(--mark-scale,1))}
}
@media(min-width:1200px){
  .contact-bustle-cloud{top:46px;height:80px}
  .contact-characters{bottom:10px}
  .contact-button:hover{transform:translateX(32px) translateY(-3px) rotate(0)}
}
@media(min-width:1021px) and (max-width:1199px){
  .contact-bustle-cloud{top:120px;height:80px}
  .contact-characters{bottom:10px}
  .contact-button:hover{transform:translateX(18px) translateY(-3px) rotate(0)}
}
@media(prefers-reduced-motion:reduce) and (min-width:1021px){
  .contact-bustle-mark.is-popping{animation-name:contact-bustle-fade;animation-timing-function:linear}
}
@keyframes contact-bustle-fade{0%{opacity:0;visibility:visible}20%,60%{opacity:.94;visibility:visible}100%{opacity:0;visibility:hidden}}

/* ===== 企業理念「念」ランインアニメーション ===== */
.philosophy{position:relative}
.philosophy-copy{position:relative}
.philosophy-copy h2{position:relative;z-index:3} /* 文字をイラストより手前(上のレイヤー)にする */
.philosophy-copy h2 .drop-char{visibility:hidden}

.philosophy-flying-char{
  position:absolute;
  top:0;left:0;
  font-family:var(--font-jp);
  font-weight:700;
  font-size:clamp(38px,4vw,58px);
  line-height:1.45;
  color:var(--ink);
  white-space:nowrap;
  visibility:hidden;
  pointer-events:none;
  z-index:1;
}

.philosophy-runner{
  position:absolute;
  top:0;left:0;
  width:100px;
  aspect-ratio:584/846; /* 走行フレーム画像の縦横比。中の画像は絶対配置なのでここで高さを確保する */
  visibility:hidden;
  pointer-events:none;
  z-index:1; /* 文字(z-index:3)より下に配置 */
}
.philosophy-runner-img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  display:block;
  object-fit:contain;
  transform-origin:50% 92%;
  filter:drop-shadow(0 14px 16px rgba(4,35,77,.28));
  opacity:0; /* JSでどれか一枚だけ1にする(フェードではなく瞬時の切り替え) */
}

@media(max-width:1020px){
  .philosophy-runner{width:82px}
}
@media(max-width:720px){
  .philosophy-runner{width:68px}
}

/* ===== SERVICE SUBPAGE ===== */
.subpage{padding-top:90px}
.subpage .site-header{top:0;height:90px;margin:0;border-bottom:0}
.subpage .site-header.is-scrolled{height:90px}
.subpage .header-contact{height:100%;align-self:stretch;margin-top:0;margin-bottom:0}
.subpage main{display:block;margin:0;padding:0}
.global-nav>ul>li>a[aria-current="page"]::after{transform:scaleX(1)}
.sub-hero{height:200px;position:relative;overflow:hidden;background:linear-gradient(115deg,#061d4d 0%,#082b68 52%,#0a3b87 100%);color:#fff}
.sub-hero::before{content:"";position:absolute;inset:0;background-image:linear-gradient(135deg,rgba(255,255,255,.065) 0,rgba(255,255,255,.018) 44%,rgba(0,12,43,.16) 52%,rgba(0,12,43,.03) 100%),linear-gradient(rgba(255,255,255,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.055) 1px,transparent 1px);background-size:52px 52px;box-shadow:inset 0 12px 28px rgba(255,255,255,.035),inset 0 -16px 34px rgba(0,8,34,.16);opacity:.9}
.sub-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,19,54,.25),transparent 48%,rgba(31,94,166,.08));pointer-events:none}
.sub-hero-inner{height:100%;position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between}
.sub-hero-en{margin:0 0 8px;color:#65d6e4;font:600 11px var(--font-en);letter-spacing:.22em}
.sub-hero h1{margin:0;font-size:clamp(34px,4vw,52px);line-height:1.1;letter-spacing:-.045em}
.sub-hero-note{margin:0;align-self:flex-end;padding-bottom:24px;color:rgba(255,255,255,.6);font:500 9px var(--font-en);letter-spacing:.18em}
.breadcrumb{border-bottom:1px solid var(--line);background:#fff}.breadcrumb .container{display:flex;align-items:center;gap:10px;min-height:52px;color:#73809a;font-size:12px}.breadcrumb a{color:var(--blue);font-weight:600}.breadcrumb a:hover{text-decoration:underline}
.service-intro{padding:44px 0 47px;background:#fff}.service-intro-inner{display:grid;grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr);gap:clamp(42px,6vw,82px);align-items:center}.service-intro-heading{padding-right:clamp(25px,4vw,52px);border-right:1px solid #cedbea}.service-intro .eyebrow{margin-bottom:13px}.service-intro h2{margin:0;font-size:clamp(25px,2.5vw,34px);line-height:1.45;letter-spacing:-.035em}.service-intro-copy{margin:0;color:#536178;font-size:15px;line-height:2}
.service-detail-list{overflow:hidden}.service-detail{padding:clamp(42px,4.2vw,58px) 0;border-top:1px solid var(--line);background:#fff}.service-detail:nth-child(even){background:#f3f7fd}.service-detail-grid{display:grid;grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);gap:clamp(38px,4.4vw,58px);align-items:start}.service-detail-grid--reverse{grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr)}.service-detail-grid--reverse .service-detail-visual{order:2}.service-detail-grid--reverse .service-detail-copy{order:1}
.service-detail-visual{position:sticky;top:100px;min-width:0}.service-detail-visual::before{content:"";position:absolute;z-index:-1;left:-20px;bottom:-20px;width:64%;height:62%;background:linear-gradient(145deg,#c9f1f4,#dae7fb)}.service-detail-grid--reverse .service-detail-visual::before{left:auto;right:-20px}.service-detail-visual img{width:100%;height:clamp(330px,36vw,520px);object-fit:cover;border-radius:4px;box-shadow:0 22px 55px rgba(14,44,94,.13)}
.service-detail-copy{min-width:0}.service-detail-label{margin:0 0 13px!important;color:var(--blue2)!important;font:600 10px var(--font-en)!important;letter-spacing:.2em}.service-detail-copy h2{margin:0 0 22px;font-size:clamp(28px,3vw,42px);line-height:1.35;letter-spacing:-.045em}.service-detail-copy h3{margin:0 0 36px;padding:14px 18px;border-left:4px solid var(--cyan);background:#edf5ff;font-size:16px;line-height:1.65}.service-detail-copy h3 a{display:inline}.service-detail-copy h3 a:hover{color:var(--blue2)}.service-detail-copy h4{margin:30px 0 11px;color:var(--blue);font-size:18px;line-height:1.6}.service-detail-copy>p{margin:0 0 19px;color:#47566f;font-size:15px;line-height:2}.service-highlight{margin:27px 0;padding:23px 25px;border:1px solid #cadaef;border-radius:4px;background:#f8fbff;box-shadow:8px 8px 0 #e1effa}.service-highlight h4{margin:0 0 8px;color:var(--blue);font-size:17px}.service-highlight p{margin:0;color:#2d405e;font-weight:600;line-height:1.9}
.service-site-link{width:min(100%,520px);min-height:66px;margin-top:28px;padding:10px 14px 10px 24px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-radius:4px;color:#fff;background:var(--blue);font-size:14px;font-weight:600;transition:background .3s,transform .3s,box-shadow .3s}.service-site-link b{width:42px;height:42px;flex:none;display:grid;place-items:center;border-radius:50%;background:#fff;color:var(--blue2);font-size:18px;transition:transform .3s}.service-site-link:hover{background:var(--blue2);transform:translateY(-3px);box-shadow:0 15px 30px rgba(11,58,143,.18)}.service-site-link:hover b{transform:rotate(45deg)}
@media(max-width:1020px){.subpage{padding-top:90px}.subpage .site-header,.subpage .site-header.is-scrolled{height:90px}.subpage .global-nav .header-contact{height:58px;margin-top:20px;align-self:auto}.service-intro-inner{grid-template-columns:minmax(230px,.72fr) minmax(0,1.28fr);gap:36px}.service-detail-grid,.service-detail-grid--reverse{grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:38px}.service-detail-visual img{height:370px}.service-detail-copy h2{font-size:30px}.service-detail-copy>p{font-size:14px}.service-highlight{padding:19px 20px}}
@media(max-width:720px){.subpage{padding-top:70px}.subpage .site-header,.subpage .site-header.is-scrolled{height:70px}.subpage .global-nav .header-contact{height:58px;margin-top:15px}.sub-hero{height:200px}.sub-hero-note{display:none}.sub-hero::before{background-size:42px 42px}.breadcrumb .container{min-height:46px}.service-intro{padding:34px 0 38px}.service-intro-inner{display:block}.service-intro-heading{padding:0 0 18px;border-right:0;border-bottom:1px solid #cedbea}.service-intro .eyebrow{margin-bottom:11px}.service-intro h2{font-size:24px}.service-intro-copy{margin-top:17px;font-size:14px;line-height:1.9}.service-detail{padding:34px 0 40px}.service-detail-grid,.service-detail-grid--reverse{display:flex;flex-direction:column;gap:24px}.service-detail-grid--reverse .service-detail-visual,.service-detail-grid--reverse .service-detail-copy{order:initial}.service-detail-visual{position:relative;top:auto;width:100%}.service-detail-visual img{height:clamp(250px,68vw,340px)}.service-detail-visual::before{left:-10px;bottom:-10px}.service-detail-grid--reverse .service-detail-visual::before{right:-10px}.service-detail-copy h2{margin-bottom:18px;font-size:clamp(25px,7.2vw,31px)}.service-detail-copy h3{margin-bottom:28px;padding:12px 14px;font-size:14px}.service-detail-copy h4{font-size:16px}.service-detail-copy>p{font-size:14px;line-height:1.9}.service-highlight{margin:23px 0;padding:18px 16px;box-shadow:6px 6px 0 #e1effa}.service-highlight h4{font-size:15px}.service-highlight p{font-size:14px}.service-site-link{min-height:62px;padding-left:18px;font-size:13px}.service-site-link b{width:38px;height:38px}}
@media(max-width:360px){.sub-hero h1{font-size:30px}.service-intro h2{font-size:24px}.service-site-link{font-size:12px;gap:10px;padding-left:14px}.service-site-link b{width:36px;height:36px}}

/* ===== SERVICE DETAIL 2026-09 REDESIGN ===== */
.service-detail-list{overflow:visible}
.service-detail{--service-accent:var(--blue2);--service-soft:color-mix(in srgb,var(--service-accent) 9%,#fff);position:relative;isolation:isolate;background:linear-gradient(135deg,var(--service-soft) 0,#fff 38%,color-mix(in srgb,var(--service-accent) 4%,#fff) 100%)}
.service-detail--restroom{--service-accent:#c45642}
.service-detail--toilet-booth{--service-accent:#20a9bb}
.service-detail--furniture{--service-accent:#d99613}
.service-detail--sustainable{--service-accent:#33a35c}
.service-detail:nth-child(even){background:linear-gradient(225deg,var(--service-soft) 0,#fff 42%,color-mix(in srgb,var(--service-accent) 5%,#fff) 100%)}
.service-detail::before{content:"";position:absolute;z-index:-1;right:-90px;top:40px;width:240px;height:240px;border:52px solid color-mix(in srgb,var(--service-accent) 7%,transparent);border-radius:50%;pointer-events:none}
.service-detail:nth-child(even)::before{right:auto;left:-90px}
.service-detail-grid,.service-detail-grid--reverse{grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:clamp(42px,5.2vw,68px);padding:clamp(28px,3.2vw,45px);border:1px solid color-mix(in srgb,var(--service-accent) 22%,#dce5f1);border-top:5px solid var(--service-accent);border-radius:24px;background:rgba(255,255,255,.9);box-shadow:0 18px 46px rgba(15,46,93,.08)}
.service-detail-grid--reverse{grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr)}
.service-detail-visual{position:sticky;top:233px;min-width:0;align-self:start}
.service-detail-visual::before{content:none}
.service-device-stage{position:relative;display:block;width:100%;height:clamp(335px,32vw,455px);overflow:hidden;border-radius:20px;background:radial-gradient(circle at 22% 18%,rgba(255,255,255,.96),transparent 35%),linear-gradient(145deg,color-mix(in srgb,var(--service-accent) 13%,#f7faff),color-mix(in srgb,var(--service-accent) 5%,#fff));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--service-accent) 18%,#dce5f1);transition:transform .55s cubic-bezier(.2,.75,.25,1),box-shadow .55s ease}
.service-device-stage::before{content:"";position:absolute;right:-10%;bottom:-25%;width:58%;aspect-ratio:1;border:1px solid color-mix(in srgb,var(--service-accent) 20%,transparent);border-radius:50%}
.service-laptop{position:absolute;left:5%;top:13%;display:block;width:82%;filter:drop-shadow(0 20px 18px rgba(15,34,64,.18));transition:transform .55s cubic-bezier(.2,.75,.25,1)}
.service-laptop-camera{position:absolute;z-index:3;left:50%;top:5px;width:4px;height:4px;border-radius:50%;background:#667080;transform:translateX(-50%)}
.service-laptop-screen{position:relative;display:block;aspect-ratio:16/9;overflow:hidden;border:9px solid #252a33;border-bottom-width:13px;border-radius:12px 12px 5px 5px;background:#fff}
.service-laptop-screen img{display:block;width:100%;height:100%;max-width:none;object-fit:cover;object-position:center top;border-radius:0;box-shadow:none;transition:transform .8s cubic-bezier(.2,.75,.25,1),filter .5s ease}
.service-laptop-base{position:relative;display:block;width:108%;height:13px;margin-left:-4%;border-radius:2px 2px 12px 12px;background:linear-gradient(180deg,#dce0e5,#9ca5af 70%,#6d7580);box-shadow:inset 0 2px 0 rgba(255,255,255,.85)}
.service-laptop-base::after{content:"";position:absolute;left:42%;top:0;width:16%;height:4px;border-radius:0 0 5px 5px;background:#aeb6bf}
.service-phone{position:absolute;z-index:4;right:5%;bottom:8%;display:block;width:27%;aspect-ratio:9/18.5;padding:7px;border:2px solid #252a33;border-radius:18px;background:#252a33;box-shadow:0 17px 28px rgba(9,29,61,.25);transition:transform .55s cubic-bezier(.2,.75,.25,1)}
.service-phone-speaker{position:absolute;z-index:3;left:50%;top:6px;width:28%;height:4px;border-radius:6px;background:#525964;transform:translateX(-50%)}
.service-phone-screen{display:block;width:100%;height:100%;overflow:hidden;border-radius:11px;background:#f5f7fa}
.service-phone-screen img{display:block;width:100%;height:100%;max-width:none;object-fit:cover;object-position:center top;border-radius:0;box-shadow:none;filter:saturate(.96);transition:transform .8s cubic-bezier(.2,.75,.25,1),filter .5s ease}
.service-detail-copy{padding-top:4px;container-type:inline-size}.service-detail-label{color:var(--service-accent)!important}.service-detail-copy h2{position:relative;padding-bottom:17px}.service-detail-copy h2::after{content:"";position:absolute;left:0;bottom:0;width:46px;height:4px;border-radius:4px;background:var(--service-accent)}
.service-detail-copy h3{border-left-color:var(--service-accent);background:var(--service-soft)}
.service-detail-copy h4{color:color-mix(in srgb,var(--service-accent) 78%,#071b43)}
.service-highlight{border-color:color-mix(in srgb,var(--service-accent) 28%,#cadaef);background:var(--service-soft);box-shadow:7px 7px 0 color-mix(in srgb,var(--service-accent) 12%,#e1effa)}
.service-highlight h4{color:color-mix(in srgb,var(--service-accent) 82%,#071b43)}
.service-site-link{position:relative;isolation:isolate;overflow:hidden;background:color-mix(in srgb,var(--service-accent) 88%,#071b43);box-shadow:none;transition:transform .35s ease,color .3s ease}
.service-site-link::before{content:"";position:absolute;z-index:-1;inset:0;background:var(--service-accent);transform:scaleX(0);transform-origin:right center;transition:transform .48s cubic-bezier(.2,.72,.24,1)}
.service-site-link span,.service-site-link b{position:relative;z-index:1}.service-site-link b{color:var(--service-accent)}
@media(hover:hover) and (pointer:fine){.service-site-link:hover{background:color-mix(in srgb,var(--service-accent) 88%,#071b43);transform:translateY(-2px);box-shadow:none}.service-site-link:hover::before{transform:scaleX(1);transform-origin:left center}.service-site-link:hover b{transform:translate(2px,-2px) rotate(45deg)}}
@media(max-width:1020px){.service-detail-grid,.service-detail-grid--reverse{grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);gap:32px;padding:28px;border-radius:19px}.service-detail-grid--reverse{grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr)}.service-detail-visual{top:273px}.service-device-stage{height:320px}.service-laptop{left:4%;top:16%;width:84%}.service-phone{right:3%;bottom:9%;width:29%}}
@media(max-width:720px){.service-detail::before{display:none}.service-detail-grid,.service-detail-grid--reverse{display:flex;padding:20px;border-radius:16px;gap:32px}.service-detail-visual{position:relative;top:auto}.service-device-stage{height:clamp(255px,74vw,340px);border-radius:14px}.service-laptop{left:4%;top:13%;width:84%}.service-laptop-screen{border-width:6px;border-bottom-width:9px;border-radius:8px 8px 4px 4px}.service-laptop-base{height:9px}.service-phone{right:3%;bottom:8%;width:28%;padding:5px;border-radius:13px}.service-phone-speaker{top:4px;height:3px}.service-phone-screen{border-radius:8px}.service-detail-copy{padding-top:0}}

/* ===== SERVICE DETAIL REFINEMENT ===== */
.service-page,.service-page main{max-width:100%;overflow-x:clip}
.sub-hero::before{background:radial-gradient(ellipse at 82% 28%,rgba(91,169,230,.2),transparent 32%),radial-gradient(ellipse at 72% 115%,rgba(1,13,48,.58),transparent 54%),linear-gradient(164deg,rgba(255,255,255,.07) 0,rgba(255,255,255,0) 41%,rgba(0,8,37,.2) 42%,rgba(255,255,255,.025) 43%,rgba(255,255,255,0) 72%);background-size:auto;box-shadow:inset 0 1px 0 rgba(255,255,255,.12),inset 0 18px 44px rgba(255,255,255,.025),inset 0 -24px 48px rgba(0,7,35,.24);opacity:1}
.sub-hero::after{background:radial-gradient(ellipse at 88% 46%,transparent 0 23%,rgba(125,192,236,.07) 23.3%,rgba(125,192,236,.07) 23.8%,rgba(0,8,35,.2) 24.2%,rgba(0,8,35,.2) 24.7%,transparent 25.2%),radial-gradient(ellipse at 88% 46%,transparent 0 37%,rgba(125,192,236,.045) 37.3%,rgba(125,192,236,.045) 37.7%,rgba(0,8,35,.16) 38.1%,rgba(0,8,35,.16) 38.5%,transparent 39%),linear-gradient(90deg,rgba(3,19,54,.25),transparent 52%,rgba(31,94,166,.06));filter:none}
.service-detail-grid>*,.service-detail-copy,.service-detail-visual,.service-device-display,.service-device-stage{min-width:0;max-width:100%}
.service-device-display{display:block;width:100%}
.service-device-stage{overflow:visible;border-radius:0;background:none;box-shadow:none;transition:none}
.service-device-stage::before{content:none}
.service-laptop,.service-phone,.service-laptop-screen img,.service-phone-screen img{transition:none}
.service-detail-copy h2{max-width:100%;margin-bottom:24px;padding-bottom:15px;font-size:clamp(17px,5cqw,31px);line-height:1.35;letter-spacing:-.055em;white-space:nowrap;overflow-wrap:normal;word-break:keep-all}
.service-detail--restroom .service-detail-copy h2{font-size:clamp(11.5px,3.9cqw,27px);letter-spacing:-.075em}
.service-detail-copy h3{position:relative;margin-bottom:30px;padding:13px 46px 13px 17px;border-left-width:3px;border-radius:0 8px 8px 0;background:color-mix(in srgb,var(--service-accent) 6%,#fff);font-size:14px;font-weight:600;line-height:1.65}
.service-detail-copy h3::after{content:"LINK";position:absolute;right:13px;top:50%;color:var(--service-accent);font:700 9px var(--font-en);letter-spacing:.12em;transform:translateY(-50%)}
.service-detail-copy h4{display:flex;align-items:center;gap:10px;margin:27px 0 10px;color:var(--ink);font-size:17px;font-weight:700;line-height:1.6}
.service-detail-copy h4::before{content:"";width:5px;height:19px;flex:none;border-radius:5px;background:var(--service-accent)}
.service-detail-copy>p{margin-bottom:17px;color:#47566f;line-height:1.95}
.service-highlight{position:relative;overflow:hidden;margin:29px 0 31px;padding:25px 27px 25px 31px;border:0;border-radius:12px;color:#fff;background:linear-gradient(128deg,color-mix(in srgb,var(--service-accent) 80%,#071b43),color-mix(in srgb,var(--service-accent) 92%,#15274a));box-shadow:7px 7px 0 color-mix(in srgb,var(--service-accent) 13%,#e1e9f2)}
.service-highlight::after{content:"";position:absolute;right:-34px;top:-48px;width:145px;height:145px;border:28px solid rgba(255,255,255,.07);border-radius:50%;pointer-events:none}
.service-highlight h4{position:relative;z-index:1;margin:0 0 9px;color:#fff;font-size:17px}
.service-highlight h4::before{background:#fff}
.service-highlight p{position:relative;z-index:1;margin:0;color:#fff;font-size:15px;font-weight:650;line-height:1.85}
.service-site-link{max-width:100%;box-shadow:none}.service-site-link span{min-width:0;overflow-wrap:anywhere}.service-site-link b{width:42px;height:42px;flex:none}.service-site-link b svg{display:block;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
@media(hover:hover) and (pointer:fine){.service-site-link:hover b{transform:translate(2px,-2px)}}
@media(max-width:1020px){.service-device-stage{height:300px}}
@media(max-width:720px){.sub-hero::after{background:radial-gradient(ellipse at 105% 45%,transparent 0 27%,rgba(125,192,236,.07) 27.4%,rgba(0,8,35,.18) 28%,transparent 28.7%),linear-gradient(90deg,rgba(3,19,54,.22),transparent)}.service-detail-grid,.service-detail-grid--reverse{width:100%;max-width:100%}.service-device-stage{height:clamp(228px,67vw,305px)}.service-detail-copy h2{letter-spacing:-.06em}.service-detail--restroom .service-detail-copy h2{letter-spacing:-.08em}.service-detail-copy h3{padding:12px 42px 12px 14px;font-size:13px}.service-detail-copy h4{font-size:16px}.service-highlight{margin:25px 0 27px;padding:21px 19px 22px 22px;border-radius:10px;box-shadow:5px 5px 0 color-mix(in srgb,var(--service-accent) 13%,#e1e9f2)}.service-highlight h4{font-size:15px}.service-highlight p{font-size:14px}.service-site-link b{width:38px;height:38px}.service-site-link b svg{width:18px;height:18px}}
@media(max-width:360px){.service-site-link{padding-left:12px}.service-site-link span{font-size:11.5px}}

/* ===== SINGLE LINK / CONTENT HIERARCHY ===== */
.service-detail-copy{position:relative}
.service-detail-label{display:inline-flex;align-items:center;min-height:29px;margin-bottom:14px!important;padding:5px 12px;border-radius:100px;color:#fff!important;background:var(--service-accent);font-size:9px!important;letter-spacing:.16em!important;box-shadow:none}
.service-detail-copy h2{margin-bottom:27px;padding-bottom:19px}
.service-detail-copy h2::after{width:100%;height:1px;border-radius:0;background:linear-gradient(90deg,var(--service-accent) 0 58px,color-mix(in srgb,var(--service-accent) 20%,#dce5f1) 58px 100%)}
.service-detail-copy>h4{position:relative;display:block;margin:0 0 17px;padding:18px 58px 18px 22px;border:1px solid color-mix(in srgb,var(--service-accent) 17%,#dce5f1);border-left:4px solid var(--service-accent);border-radius:0 12px 12px 0;color:var(--ink);background:linear-gradient(100deg,var(--service-soft),rgba(255,255,255,.9));font-size:17px;line-height:1.6}
.service-detail-copy>h4::before{content:none}
.service-detail-copy>h4::after{content:"ABOUT";position:absolute;right:17px;top:50%;color:color-mix(in srgb,var(--service-accent) 72%,#8390a5);font:700 9px var(--font-en);letter-spacing:.15em;transform:translateY(-50%)}
.service-detail-copy>h4+p{margin-bottom:23px;color:#263955;font-size:16px;font-weight:500;line-height:2}
.service-detail-copy>p:not(.service-detail-label){padding-left:1px}
.service-highlight{margin-top:28px}
.service-site-link{margin-top:34px}
@media(max-width:720px){.service-detail-label{min-height:27px;margin-bottom:12px!important;padding:4px 10px}.service-detail-copy h2{margin-bottom:22px;padding-bottom:16px}.service-detail-copy>h4{margin-bottom:14px;padding:15px 49px 15px 16px;font-size:15px}.service-detail-copy>h4::after{right:12px;font-size:8px}.service-detail-copy>h4+p{margin-bottom:20px;font-size:14px;line-height:1.9}.service-site-link{margin-top:29px}}

/* ===== SERVICE PAGE NAVIGATION / LEAD CONTENT ===== */
.service-jump{position:sticky;z-index:80;top:90px;padding:16px 0 18px;border-top:1px solid rgba(220,229,241,.78);border-bottom:1px solid rgba(202,216,235,.95);background:rgba(255,255,255,.94);box-shadow:0 10px 24px rgba(15,46,93,.08);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.service-jump-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.service-jump-card{--jump-accent:var(--blue2);position:relative;min-width:0;overflow:hidden;border:1px solid color-mix(in srgb,var(--jump-accent) 22%,#dce5f1);border-radius:10px;background:#fff;transition:border-color .3s ease,transform .35s ease,box-shadow .35s ease}
.service-jump-card:nth-child(2){--jump-accent:#c45642}.service-jump-card:nth-child(3){--jump-accent:#20a9bb}.service-jump-card:nth-child(4){--jump-accent:#d99613}.service-jump-card:nth-child(5){--jump-accent:#33a35c}
.service-jump-card::before{content:"";position:absolute;z-index:2;left:0;top:0;bottom:0;width:4px;background:var(--jump-accent)}
.service-jump-image{display:block;height:50px;overflow:hidden;background:#f4f7fb}
.service-jump-image img{width:100%;height:100%;object-fit:cover;object-position:center top;transition:transform .5s cubic-bezier(.2,.75,.25,1)}
.service-jump-card strong{display:flex;align-items:center;min-height:43px;padding:7px 32px 7px 13px;color:var(--ink);font-size:11.5px;line-height:1.4;letter-spacing:-.025em}
.service-jump-card i{position:absolute;z-index:3;right:9px;bottom:10px;display:grid;place-items:center;width:21px;height:21px;border-radius:50%;color:#fff;background:var(--jump-accent);font-style:normal;font-size:10px;transition:transform .35s ease}
@media(hover:hover) and (pointer:fine){.service-jump-card:hover{border-color:var(--jump-accent);transform:translateY(-3px);box-shadow:0 10px 22px color-mix(in srgb,var(--jump-accent) 12%,transparent)}.service-jump-card:hover .service-jump-image img{transform:scale(1.035)}.service-jump-card:hover i{transform:translateY(3px)}}
.service-detail{scroll-margin-top:225px}
.service-lead{position:relative;margin:0 0 27px!important;padding:22px 24px 23px 27px!important;border-left:4px solid var(--service-accent);border-radius:0 12px 12px 0;color:#253954!important;background:linear-gradient(105deg,var(--service-soft),rgba(255,255,255,.94));font-size:16px!important;font-weight:600!important;line-height:2!important;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--service-accent) 15%,#e5ebf3)}
.service-lead::after{content:"";position:absolute;right:15px;top:15px;width:23px;height:23px;border-top:1px solid color-mix(in srgb,var(--service-accent) 28%,transparent);border-right:1px solid color-mix(in srgb,var(--service-accent) 28%,transparent)}
.service-detail-copy>.service-lead+p{padding-top:3px}
.service-detail-copy>p:not(.service-detail-label):not(.service-lead)+p{padding-top:17px;border-top:1px solid color-mix(in srgb,var(--service-accent) 13%,#e3e8ef)}

/* ===== TOP SERVICE LINKS ===== */
.services-head-side{position:relative;z-index:2;display:flex;align-items:center;gap:clamp(20px,3vw,38px)}
.services-head-side p{margin:0;color:#dce8ff;font-size:16px}
.services-list-link{display:flex;align-items:center;justify-content:space-between;gap:20px;min-width:208px;min-height:52px;padding:8px 9px 8px 20px;border:1px solid rgba(255,255,255,.52);border-radius:100px;color:#fff;background:rgba(255,255,255,.08);font-size:13px;font-weight:700;transition:color .3s ease,background .3s ease,border-color .3s ease}
.services-list-link b{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;color:var(--blue);background:#fff;font-size:16px;transition:transform .35s ease}
@media(hover:hover) and (pointer:fine){.services-list-link:hover{color:var(--blue);border-color:#fff;background:#fff}.services-list-link:hover b{color:#fff;background:var(--blue2);transform:translateX(3px)}}
.service-external-icon svg{display:block;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.85;stroke-linecap:round;stroke-linejoin:round}
.service-hover i.service-external-icon svg{width:25px;height:25px}
@media(hover:hover) and (pointer:fine){.service-card:hover .service-info i.service-external-icon,.service-card:focus-visible .service-info i.service-external-icon{transform:translate(2px,-2px) rotate(0)}.service-card:hover .service-hover i.service-external-icon,.service-card:focus-visible .service-hover i.service-external-icon{transform:translate(2px,-2px) rotate(0)}}
@media(max-width:1020px){.services-head-side{display:block}.services-list-link{width:208px;margin-top:16px}.service-jump{padding:6px 0 7px}.service-jump-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.service-jump-card{display:grid;grid-template-columns:64px minmax(0,1fr);height:48px}.service-jump-image{width:64px;height:48px}.service-jump-card strong{height:48px;min-height:0;padding:4px 23px 4px 8px;overflow:hidden;font-size:10px;line-height:1.2}.service-jump-card i{right:5px;bottom:14px;width:18px;height:18px;font-size:9px}.service-detail{scroll-margin-top:265px}}
@media(max-width:900px){.service-detail-grid,.service-detail-grid--reverse{display:flex;width:var(--container);height:auto;max-height:none;overflow:visible;flex-direction:column;align-items:stretch;gap:26px;padding:22px}.service-detail-grid.reveal.is-visible{opacity:1;visibility:visible;transform:none}.service-detail-grid>*,.service-detail-copy,.service-detail-copy>*{width:auto;max-width:100%;height:auto;max-height:none}.service-detail-copy{width:100%;overflow:visible}.service-detail-grid--reverse .service-detail-visual,.service-detail-grid--reverse .service-detail-copy{order:initial}.service-detail-visual{position:relative;top:auto;width:100%;overflow:visible}.service-device-stage{height:clamp(270px,52vw,390px)}}
@media(max-width:720px){.service-jump{top:70px;padding:5px 0}.service-jump-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}.service-jump-card,.service-jump-card:nth-child(5){display:grid;grid-template-columns:48px minmax(0,1fr);grid-column:auto;width:100%;height:44px}.service-jump-card:nth-child(5) .service-jump-image,.service-jump-image{width:48px;height:44px}.service-jump-card strong{height:44px;min-height:0;padding:3px 20px 3px 6px;font-size:8.5px;line-height:1.15}.service-jump-card i{right:4px;bottom:14px;width:16px;height:16px;font-size:8px}.service-detail{scroll-margin-top:230px}.service-detail-grid,.service-detail-grid--reverse{width:var(--container);padding:18px;gap:22px}.service-device-stage{height:clamp(222px,65vw,292px)}.service-detail-copy h2,.service-detail--restroom .service-detail-copy h2{max-width:100%;font-size:clamp(13px,5cqw,25px);white-space:nowrap;overflow:visible;word-break:keep-all}.service-detail-label{max-width:100%;white-space:normal}.service-lead{margin-bottom:23px!important;padding:18px 17px 19px 19px!important;font-size:14px!important;line-height:1.9!important}.services-head-side{margin-top:22px}.services-head-side p{font-size:14px}.services-list-link{width:100%;min-width:0;margin-top:15px}.service-external-icon svg{width:18px;height:18px}.service-hover i.service-external-icon svg{width:22px;height:22px}}
@media(max-width:360px){.service-jump-card strong{font-size:10px}.service-lead{padding-inline:16px!important}}

/* ===== SERVICE SECTION CHARACTERS ===== */
.service-detail-grid{position:relative;z-index:2}
.service-section-character{position:absolute;z-index:3;top:8px;display:block;width:118px;height:auto;max-width:none;pointer-events:none;user-select:none;filter:drop-shadow(0 13px 15px rgba(14,39,79,.18))}
.service-section-character--left{left:max(8px,calc((100vw - 1180px)/2 - 58px));transform-origin:left bottom}
.service-section-character--right{right:max(8px,calc((100vw - 1180px)/2 - 58px));transform-origin:right bottom}
.service-section-character--measure{width:126px;transform:rotate(-2deg)}
.service-section-character--consultant{top:14px;width:98px;transform:rotate(2deg)}
.service-section-character--inspection{width:116px;transform:rotate(-2deg)}
.service-section-character--furniture{top:3px;width:108px;transform:rotate(2deg)}
.service-section-character--sustainable{top:3px;width:100px;transform:rotate(-2deg)}
@media(max-width:1280px){.service-section-character--left{left:8px}.service-section-character--right{right:8px}}
@media(max-width:1020px){.service-section-character{top:5px;width:96px}.service-section-character--measure{width:108px}.service-section-character--consultant{top:9px;width:88px}.service-section-character--inspection{width:100px}.service-section-character--furniture{top:2px;width:92px}.service-section-character--sustainable{top:2px;width:88px}}
@media(max-width:720px){.service-section-character{top:2px;z-index:3;width:72px;filter:drop-shadow(0 8px 10px rgba(14,39,79,.16))}.service-section-character--left{left:5px}.service-section-character--right{right:5px}.service-section-character--measure{width:82px}.service-section-character--consultant{top:5px;width:66px}.service-section-character--inspection{width:76px}.service-section-character--furniture{top:1px;width:70px}.service-section-character--sustainable{top:1px;width:68px}}

/* ===== CORPORATE SUBPAGE ===== */
.corporate-page,.corporate-page main{max-width:100%;overflow-x:clip}
.corporate-page .corporate-section{scroll-margin-top:176px}
.corporate-section{position:relative;padding:clamp(56px,5.6vw,82px) 0}.corporate-section-heading{position:relative;margin-bottom:clamp(42px,5vw,68px);padding-left:82px}.corporate-section-heading .eyebrow{margin-bottom:12px}.corporate-section-heading h2{margin:0;font-size:clamp(38px,4.3vw,60px);line-height:1.2;letter-spacing:-.05em}.corporate-section-no{position:absolute;left:0;top:2px;margin:0;color:#d0dceb;font:600 42px/1 var(--font-en);letter-spacing:-.04em}
.corporate-philosophy{overflow:hidden;background:linear-gradient(145deg,#f6faff 0,#fff 55%,#eef6ff 100%)}.corporate-philosophy::after{content:"FUN AT WORK";position:absolute;right:-22px;top:128px;color:rgba(17,66,139,.04);font:700 clamp(70px,10vw,150px)/1 var(--font-en);letter-spacing:-.06em;white-space:nowrap;transform:rotate(90deg) translateX(100%);transform-origin:right top;pointer-events:none}
.philosophy-principles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:45px}.philosophy-principles p{position:relative;overflow:hidden;min-height:142px;margin:0;padding:38px 24px 25px;border-top:4px solid var(--blue2);border-radius:0 0 12px 12px;color:#fff;background:linear-gradient(135deg,#09275d,#0e438f);font-size:17px;font-weight:700;line-height:1.7;box-shadow:0 17px 35px rgba(13,49,104,.12)}.philosophy-principles p::after{content:"";position:absolute;right:-28px;bottom:-43px;width:110px;height:110px;border:21px solid rgba(255,255,255,.06);border-radius:50%}.philosophy-principles span{display:block;margin-bottom:13px;color:#6bd9e5;font:600 11px var(--font-en);letter-spacing:.14em}
.philosophy-statement{width:min(100%,860px);margin:0 auto;padding:45px 52px;border:1px solid #dce6f2;border-radius:16px;background:rgba(255,255,255,.92);box-shadow:0 22px 55px rgba(15,50,99,.07)}.philosophy-statement p{margin:0 0 10px;color:#42516a;font-size:15px;line-height:2}.philosophy-statement p:nth-child(6),.philosophy-statement p:nth-child(7),.philosophy-statement p:nth-child(8),.philosophy-statement p:nth-child(13){margin-top:27px}
.corporate-message{overflow:hidden;color:#fff;background:linear-gradient(145deg,#071b43 0,#0a2e69 60%,#0d4388 100%)}.corporate-message::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 85% 10%,rgba(61,197,220,.14),transparent 28%),linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:auto,56px 56px,56px 56px}.corporate-message>.container{position:relative;z-index:1}.corporate-section-heading--light .corporate-section-no{color:rgba(255,255,255,.15)}
.message-panel{border:1px solid rgba(255,255,255,.17);border-radius:18px;background:rgba(255,255,255,.97);color:var(--ink);box-shadow:0 28px 70px rgba(0,8,35,.28)}.message-switch{display:grid;grid-template-columns:1fr 1fr;padding:9px;border-bottom:1px solid #dce6f2;background:#edf4fc;border-radius:18px 18px 0 0}.message-switch button{min-height:57px;border:0;border-radius:11px;color:#60708a;background:transparent;font-family:inherit;font-size:15px;font-weight:700;cursor:pointer;transition:.3s}.message-switch button small{margin-left:8px;font:600 9px var(--font-en);letter-spacing:.15em}.message-switch button.is-active{color:#fff;background:var(--blue);box-shadow:0 8px 18px rgba(10,48,109,.2)}.message-switch button:focus-visible{outline:3px solid var(--cyan);outline-offset:2px}
.message-content{padding:clamp(38px,5vw,72px) clamp(28px,7vw,96px)}.message-content[hidden]{display:none}.message-kicker{position:relative;margin:0 0 38px;padding:0 0 20px;font-size:clamp(27px,3vw,40px);font-weight:700;letter-spacing:-.04em}.message-kicker::after{content:"";position:absolute;left:0;bottom:0;width:68px;height:4px;border-radius:4px;background:var(--cyan)}.message-body{columns:2;column-gap:clamp(42px,6vw,82px);column-rule:1px solid #e2e9f2}.message-body p{break-inside:avoid;margin:0 0 16px;color:#43516a;font-size:14px;line-height:1.95}.message-content[lang="en"] .message-body p{line-height:1.85}.message-signature{display:grid;justify-items:end;gap:5px;margin:38px 0 0;padding-top:24px;border-top:1px solid #dce5ef;text-align:right;color:var(--blue);font-size:18px;font-weight:700}.message-signature small{color:#65758d;font-size:12px;font-weight:600;letter-spacing:.04em}
.corporate-profile{background:#fff}
.company-table-wrap{overflow:hidden;border-top:4px solid var(--blue);border-radius:5px 5px 12px 12px;box-shadow:0 18px 50px rgba(15,47,95,.08)}.company-table{width:100%;border-collapse:collapse;background:#fff}.company-table th,.company-table td{padding:22px 25px;border-bottom:1px solid #dfe7f1;text-align:left;vertical-align:top;font-size:14px;line-height:1.9}.company-table th{width:250px;color:var(--blue);background:#f0f5fb;font-weight:700}.company-table td{color:#43516a}.company-table tr:last-child th,.company-table tr:last-child td{border-bottom:0}.company-table a{color:var(--blue2);font-weight:600;text-decoration:underline;text-underline-offset:3px}.company-table a:hover{color:var(--blue)}.company-table small{font-size:12px}.operated-sites a{display:inline-block;margin-right:7px}.operated-sites span{display:block;margin:1px 0 15px 1em;color:#66758c}.operated-sites span:last-child{margin-bottom:0}
@media(max-width:1020px){.corporate-page .corporate-section{scroll-margin-top:172px}.corporate-section{padding:62px 0}.corporate-section-heading{margin-bottom:48px}.philosophy-principles p{padding-inline:18px;font-size:15px}.company-table th{width:210px}}
@media(max-width:720px){.corporate-page .corporate-section{scroll-margin-top:132px}.corporate-section{padding:46px 0}.corporate-section-heading{margin-bottom:34px;padding-left:55px}.corporate-section-heading h2{font-size:34px}.corporate-section-no{font-size:31px}.philosophy-principles{grid-template-columns:1fr;gap:8px;margin-bottom:28px}.philosophy-principles p{min-height:0;padding:20px 19px 21px;font-size:15px}.philosophy-principles span{display:inline;margin:0 13px 0 0}.philosophy-statement{padding:27px 20px;border-radius:11px}.philosophy-statement p{font-size:14px;line-height:1.9}.message-panel{border-radius:13px}.message-switch{padding:6px;border-radius:13px 13px 0 0}.message-switch button{min-height:49px;font-size:14px}.message-switch button small{display:block;margin:3px 0 0;font-size:7px}.message-content{padding:30px 20px}.message-kicker{margin-bottom:28px;font-size:26px}.message-body{columns:1}.message-body p{font-size:14px;line-height:1.9}.message-signature{margin-top:28px}.company-table-wrap{overflow:visible;border-radius:0;box-shadow:none}.company-table,.company-table tbody,.company-table tr,.company-table th,.company-table td{display:block}.company-table tr{border-bottom:1px solid #dfe7f1}.company-table th,.company-table td{width:100%;padding:13px 16px;border:0;font-size:13px}.company-table th{padding-bottom:9px}.company-table td{padding-top:12px;padding-bottom:18px;overflow-wrap:anywhere}}

/* ===== 2026-09 CORPORATE / SERVICE REFINEMENT ===== */
.site-footer .footer-brand p,
.site-footer .footer-brand>a:last-child,
.site-footer .footer-nav a{color:#fff}

.service-section-fade{opacity:0;transition:opacity 1s ease}
.service-section-fade.is-visible{opacity:1}
.service-character-fade{opacity:0;transition:opacity 1.05s ease .22s}
.service-character-fade.is-visible{opacity:1}

.corporate-page .corporate-section{scroll-margin-top:104px}
.corporate-philosophy::before{content:"";position:absolute;z-index:0;inset:0;background:url("../image/hero-office-team-wide-v6.png") 44% center/cover no-repeat;opacity:.11;filter:saturate(.8);pointer-events:none}
.corporate-philosophy>.container{position:relative;z-index:1}
.philosophy-principles{display:block;margin:0 0 clamp(48px,6vw,76px);overflow:visible}
.philosophy-principles .philosophy-run-line{width:100%;min-height:0;margin:0;padding:clamp(8px,1.3vw,18px) 0;border:0;border-radius:0;background:linear-gradient(95deg,#071f52 0%,#0b3d86 24%,#1678bc 47%,#0b4f9c 70%,#08295f 100%);background-clip:text;-webkit-background-clip:text;color:transparent;box-shadow:none;text-align:center;font-size:clamp(28px,4.25vw,59px);font-weight:700;line-height:1.4;letter-spacing:-.055em;white-space:nowrap;will-change:transform,opacity;transition:transform 1.05s cubic-bezier(.14,.86,.22,1.08),opacity .45s ease}
.philosophy-principles .philosophy-run-line::after{content:none}
.philosophy-run-line--left{opacity:0;transform:translateX(-105vw)}
.philosophy-run-line--right{opacity:0;transform:translateX(105vw)}
.philosophy-run-group.is-visible .philosophy-run-line{opacity:1;transform:translateX(0)}
.philosophy-run-line:nth-child(2){transition-delay:.13s}
.philosophy-run-line:nth-child(3){transition-delay:.26s}
.philosophy-principles .philosophy-run-text{display:inline-block;margin:0;color:inherit;font:inherit;letter-spacing:inherit;will-change:transform}
.philosophy-run-group.is-visible .philosophy-run-line:nth-child(1) .philosophy-run-text{--float-y:-7px;animation:philosophy-soft-float 4.15s ease-in-out 1.08s infinite}
.philosophy-run-group.is-visible .philosophy-run-line:nth-child(2) .philosophy-run-text{--float-y:6px;animation:philosophy-soft-float 5.05s ease-in-out 1.32s infinite reverse}
.philosophy-run-group.is-visible .philosophy-run-line:nth-child(3) .philosophy-run-text{--float-y:-5px;animation:philosophy-soft-float 4.62s ease-in-out 1.55s infinite}
@keyframes philosophy-soft-float{0%,100%{transform:translateY(0)}50%{transform:translateY(var(--float-y,-6px))}}
.philosophy-final{margin:clamp(40px,5vw,68px) 0 0;text-align:center}
.philosophy-final-text{display:inline-block;background:linear-gradient(90deg,#1456d8,#16a7c7,#37a85a,#e6a719,#ef6f50,#b95ac7,#1456d8);background-size:240% 100%;background-clip:text;-webkit-background-clip:text;color:transparent;font-size:clamp(23px,3vw,38px);font-weight:700;line-height:1.55;letter-spacing:-.045em;will-change:transform,background-position}
.philosophy-final.is-visible .philosophy-final-text{animation:philosophy-color-flow 8s linear infinite,philosophy-final-float 4.8s ease-in-out infinite}
@keyframes philosophy-color-flow{to{background-position:240% center}}
@keyframes philosophy-final-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}

.message-panel{position:relative}
.message-switch{position:absolute;z-index:3;top:clamp(38px,5vw,72px);right:clamp(28px,7vw,96px);display:flex;grid-template-columns:none;gap:9px;padding:0;border:0;background:none;border-radius:0}
.message-switch button{display:flex;width:82px;min-height:0;aspect-ratio:1;align-items:center;justify-content:center;flex-direction:column;padding:8px;border:1px solid #ccd9e8;border-radius:15px;background:#fff;font-size:14px;box-shadow:0 8px 20px rgba(11,42,87,.08)}
.message-switch button small{display:block;margin:5px 0 0;font-size:7px}
.message-switch button.is-active{border-color:var(--blue);background:var(--blue);box-shadow:0 9px 22px rgba(10,48,109,.22)}
.message-content{padding-top:clamp(38px,5vw,72px)}

.company-map-cell{padding:22px 25px!important;background:#fff}
.company-map-cell iframe{display:block;width:100%;height:390px;border:0;border-radius:5px}
.company-exterior{padding:25px!important;background:#fff}
.company-exterior img{display:block;width:min(80%,704px);height:auto;margin:0;aspect-ratio:4/3;object-fit:cover;border-radius:5px;box-shadow:0 18px 42px rgba(15,48,96,.14)}

@media(max-width:1020px){.corporate-page .corporate-section{scroll-margin-top:104px}.philosophy-principles .philosophy-run-line{font-size:clamp(27px,4.6vw,44px)}.message-switch button{width:74px}.company-map-cell iframe{height:350px}}
@media(max-width:720px){.corporate-page .corporate-section{scroll-margin-top:78px}.corporate-philosophy::before{background-position:42% center;background-size:cover;opacity:.09}.philosophy-principles{margin-bottom:38px;overflow:hidden}.philosophy-principles .philosophy-run-line{padding:9px 0;font-size:clamp(19px,6.2vw,28px);line-height:1.5;letter-spacing:-.065em}.philosophy-final{margin-top:36px}.philosophy-final-text{font-size:clamp(20px,6.2vw,27px)}.message-switch{top:30px;right:20px;gap:6px;padding:0;background:none}.message-switch button{width:56px;min-height:0;padding:5px;border-radius:11px;font-size:11px}.message-switch button small{margin-top:3px;font-size:5.5px}.message-content{padding-top:30px}.message-kicker{width:calc(100% - 126px);font-size:clamp(19px,5.8vw,24px);white-space:nowrap}.company-map-cell{padding:12px 16px 18px!important;background:#fff}.company-map-cell iframe{height:300px}.company-exterior{padding:12px 16px 18px!important;background:#fff}.company-exterior img{width:80%;border-radius:3px}}
@media(prefers-reduced-motion:reduce){.service-section-fade,.service-character-fade,.philosophy-run-line{opacity:1;transform:none}.philosophy-run-text,.philosophy-final-text{animation:none}}

/* ===== CONTACT FULL-BODY IMAGE FIX ===== */
@media(min-width:1021px){.contact-characters{left:max(0px,calc((100vw - 1180px)/2 - 34px));bottom:0;width:auto;height:calc(100% - 12px);max-width:55vw;max-height:none;object-fit:contain;object-position:left bottom}.contact-button:hover{transform:translateY(-3px) rotate(0)}}
@media(min-width:1200px){.contact-inner>div,.contact-button{transform:translateX(32px)}.contact-button:hover{transform:translateX(32px) translateY(-3px) rotate(0)}}
@media(min-width:1021px) and (max-width:1199px){.contact-characters{left:0}.contact-button:hover{transform:translateX(18px) translateY(-3px) rotate(0)}}
@media(min-width:721px) and (max-width:1020px){.contact-characters{left:50%;right:auto;bottom:0;width:auto;height:270px;max-width:92vw;opacity:1;object-fit:contain;object-position:center bottom;transform:translateX(-50%)}}
@media(max-width:720px){.contact-inner{padding-bottom:clamp(245px,70vw,300px)}.contact-characters{left:50%;right:auto;bottom:0;width:min(110vw,500px);height:auto;max-width:none;opacity:1;object-fit:contain;object-position:center bottom;transform:translateX(-50%)}}

/* ===== MOBILE TYPOGRAPHY / EXTERIOR REFINEMENT ===== */
@media(max-width:720px){
  body{font-size:16px}
  .hero-copy{font-size:14.5px}
  .news-item p,
  .principles p,
  .service-intro-copy,
  .service-detail-copy>p,
  .service-detail-copy>h4+p,
  .service-highlight p,
  .philosophy-statement p,
  .message-body p{font-size:15px!important}
  .service-info p{font-size:14px}
  .company-table th,
  .company-table td{font-size:14px}
  .breadcrumb .container{font-size:13px}
  .footer-brand p,
  .footer-brand>a:last-child,
  .footer-nav a{font-size:14px}
  .contact>.contact-inner>div>p:last-child{font-size:13px;line-height:1.8;letter-spacing:-.025em}
  .company-exterior img{width:100%;max-width:none}
}

/* ===== CORPORATE MOTION / MOBILE SUB-HERO REFINEMENT ===== */
.corporate-philosophy::before{background-position:70% center}
.philosophy-principles .philosophy-run-line{display:flex;align-items:center;justify-content:center;text-align:center}
.philosophy-run-group.is-visible .philosophy-run-line:nth-child(1) .philosophy-run-text{--float-y:-9px;animation:philosophy-soft-float 4.35s ease-in-out 1.18s infinite}
.philosophy-run-group.is-visible .philosophy-run-line:nth-child(2) .philosophy-run-text{--float-y:8px;animation:philosophy-soft-float 5.75s ease-in-out 1.45s infinite reverse}
.philosophy-run-group.is-visible .philosophy-run-line:nth-child(3) .philosophy-run-text{--float-y:-7px;animation:philosophy-soft-float 5.08s ease-in-out 1.72s infinite}
.philosophy-final-text{font-size:clamp(30px,3.65vw,48px)}
.philosophy-final.is-visible .philosophy-final-text{animation:philosophy-color-flow 16s linear infinite,philosophy-final-float 5.2s ease-in-out infinite}
@media(max-width:720px){
  .sub-hero{height:150px}
  .corporate-philosophy::before{background-position:68% center}
  .philosophy-final-text{font-size:clamp(24px,7.2vw,34px)}
}

/* ===== TOP COPY / PHILOSOPHY POP REFINEMENT ===== */
.hero h1{font-size:clamp(38px,3.9vw,58px);letter-spacing:-.07em}
.hero h1>span:first-child{font-size:.86em;letter-spacing:-.08em}
.philosophy-principles .philosophy-run-line{background-size:220% 100%;transition:none;transform-origin:center center}
.philosophy-run-line--left,
.philosophy-run-line--right{opacity:0;transform:translateY(20px) scale(.78)}
.philosophy-run-group.is-visible .philosophy-run-line:nth-child(1){animation:philosophy-pop-in .95s cubic-bezier(.18,.88,.24,1.22) 0s both,philosophy-blue-flow 18s linear .95s infinite}
.philosophy-run-group.is-visible .philosophy-run-line:nth-child(2){animation:philosophy-pop-in .95s cubic-bezier(.18,.88,.24,1.22) .16s both,philosophy-blue-flow 19.5s linear 1.11s infinite reverse}
.philosophy-run-group.is-visible .philosophy-run-line:nth-child(3){animation:philosophy-pop-in .95s cubic-bezier(.18,.88,.24,1.22) .32s both,philosophy-blue-flow 17s linear 1.27s infinite}
@keyframes philosophy-pop-in{0%{opacity:0;transform:translateY(20px) scale(.78)}58%{opacity:1;transform:translateY(-4px) scale(1.065)}78%{opacity:1;transform:translateY(2px) scale(.975)}100%{opacity:1;transform:translateY(0) scale(1)}}
@keyframes philosophy-blue-flow{to{background-position:220% center}}
.philosophy-final-text{background:linear-gradient(90deg,#1456d8,#27c8d9,#785fd6,#1456d8);background-size:200% 100%}
.philosophy-final.is-visible .philosophy-final-text{animation:philosophy-color-flow 24s linear infinite,philosophy-final-float 5.2s ease-in-out infinite}
@media(max-width:720px){.hero h1{font-size:clamp(30px,8.7vw,38px);letter-spacing:-.075em}}
@media(prefers-reduced-motion:reduce){.philosophy-run-group.is-visible .philosophy-run-line,.philosophy-run-group.is-visible .philosophy-run-text,.philosophy-final.is-visible .philosophy-final-text{opacity:1;transform:none;animation:none}}

/* ===== PHILOSOPHY VISIBILITY / FLOAT REFINEMENT ===== */
.philosophy-principles .philosophy-run-line{font-size:clamp(25px,3.8vw,52px)}
.philosophy-run-group.is-visible .philosophy-run-line:nth-child(1) .philosophy-run-text{--float-y:-8px;animation:philosophy-soft-float 3.9s ease-in-out 1.05s infinite}
.philosophy-run-group.is-visible .philosophy-run-line:nth-child(2) .philosophy-run-text{--float-y:7px;animation:philosophy-soft-float 4.8s ease-in-out 1.26s infinite reverse}
.philosophy-run-group.is-visible .philosophy-run-line:nth-child(3) .philosophy-run-text{--float-y:-6px;animation:philosophy-soft-float 5.55s ease-in-out 1.48s infinite}
.philosophy-final-text{background:none!important;color:#1456d8;-webkit-text-fill-color:currentColor}
.philosophy-final.is-visible .philosophy-final-text{animation:philosophy-final-color 28s ease-in-out infinite,philosophy-final-float 5.2s ease-in-out infinite}
@keyframes philosophy-final-color{0%,100%{color:#1456d8}25%{color:#20a36b}50%{color:#e87928}75%{color:#7956c9}}
@media(max-width:720px){.philosophy-principles .philosophy-run-line{font-size:clamp(18px,5.5vw,25px)}}
@media(prefers-reduced-motion:reduce){.philosophy-run-group.is-visible .philosophy-run-text,.philosophy-final.is-visible .philosophy-final-text{animation:none}.philosophy-final-text{color:#1456d8;-webkit-text-fill-color:currentColor}}

/* ===== ROBUST GRADIENT TEXT LAYERS ===== */
.philosophy-principles .philosophy-run-text,
.philosophy-final-text{position:relative;background:none!important;color:#0b3d86!important;-webkit-text-fill-color:#0b3d86}
.philosophy-run-text::after,
.philosophy-final-text::after{content:attr(data-text);position:absolute;z-index:1;inset:0;display:block;background:linear-gradient(90deg,#08295f 0%,#1456d8 18%,#168fc3 34%,#20a36b 52%,#e87928 68%,#0b4f9c 84%,#08295f 100%);background-size:300% 100%;background-clip:text;-webkit-background-clip:text;color:transparent;-webkit-text-fill-color:transparent;font:inherit;line-height:inherit;letter-spacing:inherit;text-align:inherit;white-space:inherit;pointer-events:none}
.philosophy-run-group.is-visible .philosophy-run-line:nth-child(1){animation:philosophy-pop-in .95s cubic-bezier(.18,.88,.24,1.22) 0s both}
.philosophy-run-group.is-visible .philosophy-run-line:nth-child(2){animation:philosophy-pop-in .95s cubic-bezier(.18,.88,.24,1.22) .16s both}
.philosophy-run-group.is-visible .philosophy-run-line:nth-child(3){animation:philosophy-pop-in .95s cubic-bezier(.18,.88,.24,1.22) .32s both}
.philosophy-run-group.is-visible .philosophy-run-line:nth-child(1) .philosophy-run-text::after{animation:philosophy-gradient-shift 22s linear 1.05s infinite}
.philosophy-run-group.is-visible .philosophy-run-line:nth-child(2) .philosophy-run-text::after{animation:philosophy-gradient-shift 25s linear 1.26s infinite reverse}
.philosophy-run-group.is-visible .philosophy-run-line:nth-child(3) .philosophy-run-text::after{animation:philosophy-gradient-shift 23.5s linear 1.48s infinite}
.philosophy-final-text{color:#1456d8!important;-webkit-text-fill-color:#1456d8}
.philosophy-final-text::after{background:linear-gradient(90deg,#1456d8 0%,#168fc3 22%,#20a36b 46%,#e87928 68%,#0b4f9c 86%,#1456d8 100%);background-size:280% 100%}
.philosophy-final.is-visible .philosophy-final-text{animation:philosophy-final-float 5.2s ease-in-out infinite}
.philosophy-final.is-visible .philosophy-final-text::after{animation:philosophy-gradient-shift 32s linear infinite}
@keyframes philosophy-gradient-shift{to{background-position:300% center}}
@media(prefers-reduced-motion:reduce){.philosophy-run-group.is-visible .philosophy-run-line,.philosophy-run-group.is-visible .philosophy-run-text,.philosophy-run-group.is-visible .philosophy-run-text::after,.philosophy-final.is-visible .philosophy-final-text,.philosophy-final.is-visible .philosophy-final-text::after{opacity:1;transform:none;animation:none}}

/* ===== PHILOSOPHY RUN-IN / RANDOM CHARACTER LOOP ===== */
.philosophy-principles .philosophy-run-line{font-size:clamp(28px,4.15vw,56px);transition:opacity .32s ease,transform .92s cubic-bezier(.12,.8,.2,1.08)!important;animation:none!important}
.philosophy-run-line--left{opacity:0;transform:translateX(-110vw)!important}
.philosophy-run-line--right{opacity:0;transform:translateX(110vw)!important}
.philosophy-run-group.is-visible .philosophy-run-line{opacity:1;transform:translateX(0)!important;animation:none!important}
.philosophy-run-group.is-visible .philosophy-run-line:nth-child(1){transition-delay:0s!important}
.philosophy-run-group.is-visible .philosophy-run-line:nth-child(2){transition-delay:.13s!important}
.philosophy-run-group.is-visible .philosophy-run-line:nth-child(3){transition-delay:.26s!important}
.philosophy-principles .philosophy-run-text{background:none!important;color:#1456d8!important;-webkit-text-fill-color:#1456d8;animation:none!important}
.philosophy-run-text::after{content:attr(data-text)!important;background:linear-gradient(100deg,#061d4d 0%,#0a3180 16%,#1456d8 33%,#168fc3 50%,#0b66b2 67%,#0b4f9c 84%,#061d4d 100%);background-size:260% 100%;background-clip:text;-webkit-background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.philosophy-run-group.is-visible .philosophy-run-line:nth-child(1) .philosophy-run-text::after{animation:philosophy-catch-blue-flow 18s ease-in-out 1s infinite alternate!important}
.philosophy-run-group.is-visible .philosophy-run-line:nth-child(2) .philosophy-run-text::after{animation:philosophy-catch-blue-flow 22s ease-in-out 1.3s infinite alternate-reverse!important}
.philosophy-run-group.is-visible .philosophy-run-line:nth-child(3) .philosophy-run-text::after{animation:philosophy-catch-blue-flow 25s ease-in-out 1.6s infinite alternate!important}
@keyframes philosophy-catch-blue-flow{0%{background-position:0% center}45%{background-position:56% center}100%{background-position:100% center}}

.philosophy-final-text{display:inline-block;background:none!important;color:inherit!important;-webkit-text-fill-color:initial;animation:none!important}
.philosophy-final-text::after{content:none!important;display:none!important;animation:none!important}
.philosophy-final.is-visible .philosophy-final-text{animation:none!important}
.philosophy-final-char{display:inline-block;opacity:0;color:var(--char-color,#1456d8);-webkit-text-fill-color:currentColor;transform-origin:center bottom;will-change:opacity,transform,filter}
.philosophy-final-glyph{display:inline-block;will-change:transform}
.philosophy-final-char.is-showing{animation:philosophy-char-appear .62s cubic-bezier(.18,.86,.24,1.2) forwards}
.philosophy-final-char.is-showing .philosophy-final-glyph{animation:philosophy-char-rattle .34s steps(2,end) infinite}
.philosophy-final-text.is-settled .philosophy-final-glyph{animation:none!important}
.philosophy-final-char.is-falling{animation:philosophy-char-collapse .78s cubic-bezier(.46,.02,.72,.42) var(--fall-delay,0ms) forwards!important}
.philosophy-final-char.is-falling .philosophy-final-glyph{animation:none}
@keyframes philosophy-char-appear{0%{opacity:0;filter:blur(5px);transform:scale(.35) rotate(-10deg)}62%{opacity:1;filter:blur(0);transform:scale(1.16) rotate(4deg)}100%{opacity:1;filter:blur(0);transform:scale(1) rotate(0)}}
@keyframes philosophy-char-rattle{0%,100%{transform:translate(0,0) rotate(0)}25%{transform:translate(var(--rattle-offset,2px),-1px) rotate(1deg)}50%{transform:translate(calc(var(--rattle-offset,2px) * -1),1px) rotate(-1deg)}75%{transform:translate(1px,-1px) rotate(.6deg)}}
@keyframes philosophy-char-collapse{0%{opacity:1;filter:blur(0);transform:translate(0,0) rotate(0) scale(1)}35%{opacity:1;transform:translate(0,5px) rotate(0) scaleY(.82)}100%{opacity:0;filter:blur(3px);transform:translate(var(--fall-x,0),48px) rotate(var(--fall-rotate,12deg)) scale(.35)}}
@media(max-width:720px){.philosophy-principles .philosophy-run-line{font-size:clamp(20px,6.1vw,28px)}}
@media(prefers-reduced-motion:reduce){.philosophy-run-line--left,.philosophy-run-line--right,.philosophy-run-group.is-visible .philosophy-run-line{opacity:1;transform:none!important;transition:none!important}.philosophy-run-group.is-visible .philosophy-run-line .philosophy-run-text::after{animation:none!important}.philosophy-final-char,.philosophy-final-char.is-showing{opacity:1;transform:none;filter:none;animation:none}.philosophy-final-char .philosophy-final-glyph{animation:none}}

/* ===== CORPORATE SECTION CHARACTERS / REVEAL TIMING ===== */
.corporate-character{display:block;height:auto;max-width:none;pointer-events:none;user-select:none;filter:drop-shadow(0 14px 17px rgba(10,42,89,.18))}
.philosophy-statement{position:relative}
.corporate-character--statement{position:absolute;z-index:2;top:-100px;right:-68px;width:clamp(104px,11vw,148px);transform:rotate(4deg)}
.corporate-character--statement-mobile{display:none}
.philosophy-final{display:flex;align-items:center;justify-content:center;gap:clamp(5px,1.2vw,17px)}
.philosophy-final-text{min-width:0;font-size:clamp(28px,3.2vw,42px)}
.corporate-character--hammer{--hammer-lift:-8px;width:clamp(102px,11vw,148px);flex:0 0 auto;transform:rotate(-2deg);transform-origin:42% 88%;will-change:transform}
.corporate-character--drill{--drill-push:-7px;--drill-pull:3px;width:clamp(100px,10.5vw,142px);flex:0 0 auto;transform:rotate(2deg);transform-origin:78% 86%;will-change:transform}
.philosophy-final.is-visible .corporate-character--hammer{animation:corporate-hammer-strike 1.18s cubic-bezier(.42,0,.25,1) infinite}
.philosophy-final.is-visible .corporate-character--drill{animation:corporate-drill-push 1.36s ease-in-out .16s infinite}
@keyframes corporate-hammer-strike{
  0%,16%,100%{transform:translateY(0) rotate(-2deg)}
  38%{transform:translateY(var(--hammer-lift)) rotate(-5deg)}
  56%{transform:translateY(2px) rotate(1deg)}
  65%{transform:translateY(-2px) rotate(-3deg)}
  74%{transform:translateY(0) rotate(-2deg)}
}
@keyframes corporate-drill-push{
  0%,18%,100%{transform:translateX(var(--drill-pull)) rotate(2deg)}
  38%{transform:translateX(var(--drill-push)) rotate(1.2deg)}
  43%{transform:translateX(calc(var(--drill-push) + 1px)) translateY(-1px) rotate(2.2deg)}
  48%{transform:translateX(var(--drill-push)) translateY(1px) rotate(1.2deg)}
  53%{transform:translateX(calc(var(--drill-push) + 1px)) translateY(-1px) rotate(2.2deg)}
  62%{transform:translateX(var(--drill-push)) rotate(1.2deg)}
  82%{transform:translateX(var(--drill-pull)) rotate(2deg)}
}
.message-content{position:relative}
.corporate-character--message{position:absolute;z-index:2;left:-92px;bottom:0;width:clamp(250px,25vw,330px);filter:drop-shadow(0 12px 16px rgba(10,42,89,.18));pointer-events:none}
.company-table-wrap{position:relative;overflow:visible}
.company-table{position:relative;z-index:1}
.corporate-character--profile{position:absolute;z-index:2;top:-118px;right:-48px;width:clamp(88px,8.5vw,118px);transform:rotate(3deg)}
.company-table-wrap.reveal{transform:translateY(24px);transition-duration:.72s}
.company-table-wrap.reveal.is-visible{transform:none}
@media(max-width:1020px){
  .corporate-character--statement{top:-82px;right:-35px;width:112px}
  .corporate-character--message{left:-60px;width:260px}
  .corporate-character--profile{top:-102px;right:-22px;width:100px}
}
@media(max-width:720px){
  .corporate-character{filter:drop-shadow(0 8px 10px rgba(10,42,89,.15))}
  .corporate-philosophy .corporate-section-heading{padding-right:78px}
  .corporate-character--statement-body{display:none}
  .corporate-character--statement-mobile{display:block;top:-18px;right:2px;width:70px}
  .philosophy-final{gap:2px}
  .philosophy-final-text{max-width:calc(100% - 122px);font-size:clamp(21px,6vw,27px);line-height:1.48}
  .corporate-character--hammer{--hammer-lift:-5px;width:64px}
  .corporate-character--drill{--drill-push:-4px;--drill-pull:2px;width:58px}
  .corporate-character--message{left:-8px;bottom:2px;width:150px;opacity:.96}
  .message-signature{padding-left:138px}
  .corporate-character--profile{top:-70px;right:-6px;width:68px}
}
@media(prefers-reduced-motion:reduce){
  .philosophy-final.is-visible .corporate-character--hammer,
  .philosophy-final.is-visible .corporate-character--drill{animation:none}
}

/* ===== CONTACT SUBPAGE ===== */
.contact-page,.contact-page main{max-width:100%;overflow-x:clip}
.contact-sub-hero::after{background:radial-gradient(circle at 83% 42%,rgba(39,200,217,.24) 0 7px,transparent 8px),radial-gradient(circle at 88% 62%,rgba(245,200,66,.2) 0 4px,transparent 5px),linear-gradient(90deg,rgba(3,19,54,.25),transparent 48%,rgba(31,94,166,.08))}
.contact-form-section{position:relative;padding:clamp(64px,7vw,96px) 0 clamp(78px,8vw,118px);background:linear-gradient(145deg,#f5f9ff 0,#fff 48%,#eff7ff 100%)}
.contact-form-section::before{content:"CONTACT";position:absolute;right:-18px;top:26px;color:rgba(10,49,128,.035);font:700 clamp(82px,13vw,190px)/1 var(--font-en);letter-spacing:-.07em;pointer-events:none}
.contact-form-layout{position:relative;display:grid;grid-template-columns:minmax(260px,350px) minmax(0,1fr);gap:clamp(42px,6vw,82px);align-items:start}
.contact-form-guide{position:sticky;top:112px;padding-top:12px}
.contact-form-guide .eyebrow{margin-bottom:22px}
.contact-form-guide h2{margin:0;font-size:clamp(30px,3.2vw,44px);line-height:1.45;letter-spacing:-.05em}
.contact-form-intro{margin:28px 0 0;color:#536178;font-size:15px;line-height:2}
.contact-guide-note{display:flex;gap:14px;margin-top:32px;padding:20px 19px;border:1px solid #d7e4f3;border-radius:12px;background:rgba(255,255,255,.78)}
.contact-guide-note-icon{display:grid;place-items:center;width:32px;height:32px;flex:none;border-radius:50%;color:#fff;background:var(--blue2);font-weight:700}
.contact-guide-note b{display:block;color:#203656;font-size:14px}
.contact-guide-note p{margin:5px 0 0;color:#65738a;font-size:12px;line-height:1.7}
.contact-guide-note p span{color:#e4485e;font-weight:700}
.contact-direct{margin:28px 0 0;padding-top:24px;border-top:1px solid #cfdaea}
.contact-direct div+div{margin-top:15px}
.contact-direct dt{color:#738098;font-size:11px;font-weight:600;letter-spacing:.06em}
.contact-direct dd{margin:4px 0 0;color:var(--blue);font:600 14px var(--font-jp)}
.contact-direct dd a{font:700 25px var(--font-en);letter-spacing:.02em}
.contact-form-panel{position:relative;padding:clamp(30px,4.5vw,58px);padding-bottom:40px;border:1px solid #dce6f2;border-top:5px solid var(--blue2);border-radius:22px;background:rgba(255,255,255,.96);box-shadow:0 24px 65px rgba(14,48,97,.1)}
.contact-form-character{position:absolute;z-index:2;top:-91px;right:25px;width:112px;height:auto;max-width:none;pointer-events:none;user-select:none;filter:drop-shadow(0 12px 14px rgba(14,39,79,.18));transform:rotate(2deg)}
.contact-form-embed,.contact-form-embed .wpcf7{min-width:0;margin:0}
.contact-form-embed .wpcf7-form{display:grid;gap:29px;margin:0}
.contact-form-embed .form_box{width:100%;border-collapse:collapse}
.contact-form-embed .form_box th,.contact-form-embed .form_box td{padding:6px 8px!important;vertical-align:middle}
.contact-form-embed .form_box th{text-align:right;white-space:nowrap}
.contact-form-embed .form_box th p{margin:0;text-align:right}
.contact-form-embed .form_box th p>span,.contact-form-embed .form_box .required,.contact-form-embed .form_box .must,.contact-form-embed .form_box .asterisk{color:#e4485e}
.contact-form-embed .form_box th i{display:inline-flex;min-width:34px;min-height:19px;align-items:center;justify-content:center;margin-left:8px;padding:2px 7px;border-radius:100px;color:#fff;background:#e4485e;font-size:10px;font-style:normal;font-weight:700;line-height:1;letter-spacing:.02em;vertical-align:2px}
.contact-form-embed .wpcf7-form>p{min-width:0;margin:0}
.contact-form-embed .wpcf7-form label{display:block;color:#172947;font-size:14px;font-weight:700;line-height:1.7}
.contact-form-embed .wpcf7-form-control-wrap{display:block;margin-top:10px}
.contact-form-embed input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
.contact-form-embed textarea,
.contact-form-embed select{display:block;width:100%;max-width:100%;margin:0;border:1px solid #cdd9e8;border-radius:8px;outline:0;color:#192b47;background:#fafdff;font:500 15px var(--font-jp);transition:border-color .25s ease,box-shadow .25s ease,background .25s ease}
.contact-form-embed input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
.contact-form-embed select{height:58px;padding:0 17px}
.contact-form-embed textarea{min-height:190px;padding:15px 17px;line-height:1.8;resize:vertical}
.contact-form-embed input::placeholder,.contact-form-embed textarea::placeholder{color:#9aa6b7;font-weight:400}
.contact-form-embed input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]):focus,
.contact-form-embed textarea:focus,.contact-form-embed select:focus{border-color:var(--blue2);background:#fff;box-shadow:0 0 0 4px rgba(20,86,216,.1)}
.contact-form-embed .wpcf7-not-valid{border-color:#e4485e!important;box-shadow:0 0 0 3px rgba(228,72,94,.08)}
.contact-form-embed .wpcf7-list-item{margin:0 18px 0 0}
.contact-form-embed input[type="checkbox"],.contact-form-embed input[type="radio"]{width:18px;height:18px;margin:0 7px 0 0;vertical-align:-4px;accent-color:var(--blue2)}
.contact-form-embed input[type="submit"],.contact-form-embed button.wpcf7-submit{display:block;width:min(100%,420px);min-height:72px;margin:10px auto 0;padding:15px 30px;border:0;border-radius:100px;color:#fff;background:linear-gradient(110deg,#0a3180,#1456d8);box-shadow:0 15px 32px rgba(10,49,128,.2);font:700 15px var(--font-jp);letter-spacing:.03em;cursor:pointer;transition:transform .35s ease,box-shadow .35s ease,filter .35s ease}
.contact-form-embed input[type="submit"]:hover,.contact-form-embed button.wpcf7-submit:hover{transform:translateY(-3px);box-shadow:0 20px 38px rgba(10,49,128,.26);filter:brightness(1.08)}
.contact-form-embed input[type="submit"]:disabled,.contact-form-embed button.wpcf7-submit:disabled{cursor:not-allowed;opacity:.65;transform:none}
.contact-form-embed .wpcf7-response-output{margin:0!important;padding:20px 24px!important;border:0!important;border-radius:12px;color:#fff!important;background:#102c50;font-size:15px;font-weight:700;line-height:1.8;text-align:center;overflow-wrap:anywhere}
.contact-form-embed .wpcf7-not-valid-tip{margin-top:7px;color:#d9364e;font-size:12px;font-weight:600}
.contact-form-embed .wpcf7-spinner{display:none;margin:10px auto 0;vertical-align:middle}
.contact-form-embed .wpcf7-form.submitting .wpcf7-spinner{display:block}
.contact-form-embed .form_box p:has(input[type="submit"]),.contact-form-embed .form_box p:has(button[type="submit"]){margin-bottom:0}
.contact-form{display:grid;gap:29px}
.contact-field{min-width:0;margin:0;padding:0;border:0}
.contact-field label,.contact-field legend{display:flex;align-items:center;gap:10px;width:100%;margin:0 0 10px;color:#172947;font-size:14px;font-weight:700}
.field-required,.field-optional{display:inline-grid;place-items:center;min-width:38px;height:20px;padding:0 7px;border-radius:100px;font-size:10px;font-weight:700;line-height:1}
.field-required{color:#fff;background:#e4485e}
.field-optional{color:#637189;background:#e9eef5}
.contact-field input,.contact-field textarea{width:100%;border:1px solid #cdd9e8;border-radius:8px;outline:0;color:#192b47;background:#fafdff;font:500 15px var(--font-jp);transition:border-color .25s ease,box-shadow .25s ease,background .25s ease}
.contact-field input{height:58px;padding:0 17px}
.contact-field textarea{min-height:190px;padding:15px 17px;line-height:1.8;resize:vertical}
.contact-field input::placeholder,.contact-field textarea::placeholder{color:#9aa6b7;font-weight:400}
.contact-field input:focus,.contact-field textarea:focus{border-color:var(--blue2);background:#fff;box-shadow:0 0 0 4px rgba(20,86,216,.1)}
.contact-phone-inputs{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr);gap:10px;align-items:center}
.contact-phone-inputs span{color:#8290a5;font-weight:600;text-align:center}
.contact-phone-inputs input{text-align:center}
.contact-submit-wrap{padding-top:10px}
.contact-submit{position:relative;isolation:isolate;display:flex;align-items:center;justify-content:space-between;width:min(100%,420px);min-height:72px;margin:0 auto;padding:9px 10px 9px 29px;overflow:hidden;border:0;border-radius:100px;color:#fff;background:linear-gradient(110deg,#0a3180,#1456d8);box-shadow:0 15px 32px rgba(10,49,128,.2);font-size:15px;font-weight:700;letter-spacing:.03em;cursor:pointer;transition:transform .35s ease,box-shadow .35s ease}
.contact-submit::before{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(110deg,#1456d8,#159ab6);transform:scaleX(0);transform-origin:right center;transition:transform .5s cubic-bezier(.2,.72,.24,1)}
.contact-submit b{display:grid;place-items:center;width:52px;height:52px;flex:none;border-radius:50%;color:var(--blue);background:#fff;font-size:19px;transition:transform .35s ease}
@media(hover:hover) and (pointer:fine){.contact-submit:hover{transform:translateY(-3px);box-shadow:0 20px 38px rgba(10,49,128,.26)}.contact-submit:hover::before{transform:scaleX(1);transform-origin:left center}.contact-submit:hover b{transform:translateX(3px)}}
@media(max-width:900px){.contact-form-layout{grid-template-columns:1fr;gap:35px}.contact-form-guide{position:relative;top:auto;display:grid;grid-template-columns:1fr 1fr;gap:0 35px;padding-top:0}.contact-form-guide .eyebrow,.contact-form-guide h2{grid-column:1/-1}.contact-form-intro{margin-top:22px}.contact-guide-note{margin-top:22px}.contact-direct{grid-column:1/-1;display:flex;gap:42px}.contact-direct div+div{margin-top:0}}
@media(max-width:720px){.contact-form-section{padding:48px 0 72px}.contact-form-section::before{top:18px;font-size:78px}.contact-form-guide{display:block}.contact-form-guide h2{font-size:clamp(24px,7.6vw,28px);line-height:1.48;white-space:nowrap}.contact-form-intro{font-size:14px;line-height:1.9}.contact-guide-note{margin-top:24px}.contact-direct{display:block}.contact-direct div+div{margin-top:13px}.contact-form-panel{padding:28px 19px 24px;border-radius:16px}.contact-form-character{top:-58px;right:10px;width:72px}.contact-form-embed .wpcf7-form{gap:24px}.contact-form-embed .form_box tr{display:block;padding:9px 0;border-bottom:1px solid var(--line)}.contact-form-embed .form_box tr:first-child{padding-top:0}.contact-form-embed .form_box tr:last-child{padding-bottom:0;border-bottom:0}.contact-form-embed .form_box th,.contact-form-embed .form_box td{display:block;width:100%;padding:2px 5px!important}.contact-form-embed .form_box th{text-align:left;font-size:12px}.contact-form-embed .form_box th p{text-align:left;font-size:12px;line-height:1.45;white-space:normal;margin:0 0 2px}.contact-form-embed .form_box th i{min-width:30px;min-height:18px;margin-left:5px;padding:2px 5px;font-size:9px;vertical-align:1px}.contact-form-embed input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),.contact-form-embed select{height:54px;padding-inline:14px;font-size:14px}.contact-form-embed textarea{min-height:175px;padding:13px 14px;font-size:14px}.contact-form-embed input[type="submit"],.contact-form-embed button.wpcf7-submit{min-height:66px;padding:13px 22px;font-size:14px}.contact-form{gap:24px}.contact-field input{height:54px;padding-inline:14px;font-size:14px}.contact-field textarea{min-height:175px;padding:13px 14px;font-size:14px}.contact-phone-inputs{gap:5px}.contact-submit{min-height:66px;padding-left:22px;font-size:14px}.contact-submit b{width:48px;height:48px}}
@media(max-width:360px){.contact-form-panel{padding-inline:15px}.contact-phone-inputs{gap:3px}.contact-field input{padding-inline:8px}.contact-submit{padding-left:17px;font-size:13px}}

/* Header contact hover: let the submit gradient sweep from left to right. */
.header-contact{position:relative;isolation:isolate;overflow:hidden;background:var(--blue);transform:none}
.header-contact::before{content:"";position:absolute;z-index:0;inset:0;background:linear-gradient(110deg,#1456d8,#159ab6);transform:scaleX(0);transform-origin:right center;transition:transform .5s cubic-bezier(.2,.72,.24,1)}
.header-contact span,.header-contact b{position:relative;z-index:1}
.header-contact:hover,.header-contact:focus-visible{background:var(--blue);transform:none}
.header-contact:hover::before,.header-contact:focus-visible::before{transform:scaleX(1);transform-origin:left center}
.header-contact:hover b,.header-contact:focus-visible b{transform:none}

/* ===== PRIVACY POLICY SUBPAGE ===== */
.privacy-page,.privacy-page main{max-width:100%;overflow-x:clip}
.privacy-sub-hero::after{background:radial-gradient(ellipse at 86% 48%,transparent 0 18%,rgba(101,214,228,.1) 18.4%,rgba(101,214,228,.1) 19%,transparent 19.5%),radial-gradient(ellipse at 86% 48%,transparent 0 32%,rgba(101,214,228,.055) 32.4%,rgba(101,214,228,.055) 33%,transparent 33.5%),linear-gradient(90deg,rgba(3,19,54,.25),transparent 48%,rgba(31,94,166,.08))}
.privacy-section{padding:clamp(52px,5.5vw,78px) 0 clamp(62px,6.5vw,90px);background:linear-gradient(145deg,#f6f9fd 0,#fff 48%,#f1f7fd 100%)}
.privacy-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:clamp(45px,7vw,94px);align-items:start}
.privacy-index{position:sticky;top:104px;padding:25px 22px;border:1px solid #dae4f0;border-radius:14px;background:rgba(255,255,255,.94);box-shadow:0 15px 40px rgba(15,48,95,.07)}
.privacy-index-character{position:absolute;z-index:2;right:-48px;bottom:-112px;width:132px;height:auto;max-width:none;pointer-events:none;user-select:none;filter:drop-shadow(0 12px 15px rgba(14,39,79,.18));transform:rotate(2deg)}
.privacy-index-label{margin:0 0 15px;padding-bottom:13px;border-bottom:1px solid #dfe7f1;color:var(--blue2);font:700 10px var(--font-en);letter-spacing:.19em}
.privacy-index ol{margin:0;padding:0;list-style:none}
.privacy-index li+li{border-top:1px solid #edf1f6}
.privacy-index a{display:grid;grid-template-columns:25px 1fr;gap:7px;align-items:center;padding:9px 2px;color:#485873;font-size:12px;font-weight:600;line-height:1.5;transition:color .25s ease,padding-left .25s ease}
.privacy-index a span{color:#9aa9bd;font:600 9px var(--font-en);letter-spacing:.06em;transition:color .25s ease}
@media(hover:hover) and (pointer:fine){.privacy-index a:hover{padding-left:5px;color:var(--blue2)}.privacy-index a:hover span{color:var(--cyan)}}
.privacy-content{min-width:0}
.privacy-lead{margin-bottom:39px;padding:clamp(30px,4.5vw,55px);overflow:hidden;border:1px solid #dce6f2;border-top:5px solid var(--blue2);border-radius:20px;background:#fff;box-shadow:0 20px 55px rgba(15,48,96,.08)}
.privacy-lead .eyebrow{margin-bottom:17px}
.privacy-lead h2{margin:0 0 23px;color:#102748;font-size:clamp(28px,3.3vw,43px);line-height:1.48;letter-spacing:-.05em}
.privacy-lead>p:last-child{margin:0;color:#536178;font-size:15px;line-height:2}
.privacy-item{position:relative;margin-top:16px;padding:clamp(27px,3.6vw,43px) clamp(24px,4vw,48px);scroll-margin-top:102px;border:1px solid #dfe7f1;border-radius:14px;background:rgba(255,255,255,.96);box-shadow:0 12px 33px rgba(15,48,95,.045)}
.privacy-item-no{position:absolute;right:25px;top:21px;margin:0;color:#d4dfec;font:600 27px/1 var(--font-en);letter-spacing:-.03em}
.privacy-item h3{position:relative;margin:0 0 22px;padding:0 55px 16px 17px;border-bottom:1px solid #dde6f0;color:#142a4b;font-size:21px;line-height:1.5;letter-spacing:-.025em}
.privacy-item h3::before{content:"";position:absolute;left:0;top:4px;width:5px;height:25px;border-radius:5px;background:linear-gradient(180deg,var(--blue2),var(--cyan))}
.privacy-item>p:not(.privacy-item-no):not(.privacy-effective-date){margin:0;color:#4b5b73;font-size:14px;line-height:2}
.privacy-item>p+p{margin-top:16px!important}
.privacy-item ul{display:grid;gap:10px;margin:20px 0 0;padding:0;list-style:none}
.privacy-item li{position:relative;padding:11px 15px 11px 35px;border-radius:7px;color:#40516b;background:#f5f8fc;font-size:14px;line-height:1.75}
.privacy-item li::before{content:"";position:absolute;left:17px;top:22px;width:6px;height:6px;border-radius:50%;background:var(--blue2);box-shadow:0 0 0 4px rgba(20,86,216,.1)}
.privacy-contact-box{padding:25px 27px;border-radius:11px;color:#fff;background:linear-gradient(130deg,#08265d,#0c4b99);box-shadow:0 14px 30px rgba(9,43,96,.16)}
.privacy-contact-box p{margin:0;color:#dbe9fb;font-size:14px;line-height:1.85}
.privacy-contact-box p+p{margin-top:10px}
.privacy-contact-box p:first-child{color:#fff;font-size:17px}
.privacy-contact-box a:not(.privacy-contact-link){color:#fff;font-weight:700}
.privacy-contact-link{display:flex;align-items:center;justify-content:space-between;gap:20px;width:min(100%,330px);min-height:56px;margin-top:20px;padding:8px 9px 8px 19px;border:1px solid rgba(255,255,255,.52);border-radius:100px;color:#fff;background:rgba(255,255,255,.08);font-size:13px;font-weight:700;transition:color .3s ease,background .3s ease}
.privacy-contact-link b{display:grid;place-items:center;width:38px;height:38px;flex:none;border-radius:50%;color:var(--blue);background:#fff;font-size:16px;transition:transform .3s ease}
@media(hover:hover) and (pointer:fine){.privacy-contact-link:hover{color:var(--blue);background:#fff}.privacy-contact-link:hover b{color:#fff;background:var(--blue2);transform:translateX(3px)}}
.privacy-effective-date{margin:20px 0 0!important;color:#7b8799!important;font-size:12px!important;text-align:right}
@media(max-width:900px){.privacy-layout{grid-template-columns:1fr;gap:74px}.privacy-index{position:relative;top:auto}.privacy-index ol{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}.privacy-index li:nth-child(2){border-top:0}.privacy-index-character{right:12px;bottom:-62px;width:90px}.privacy-lead{margin-bottom:28px}}
@media(max-width:720px){.privacy-section{padding:40px 0 56px}.privacy-sub-hero h1{font-size:clamp(24px,7.4vw,30px);white-space:nowrap}.privacy-index{padding:20px 17px}.privacy-index ol{grid-template-columns:1fr}.privacy-index li:nth-child(2){border-top:1px solid #edf1f6}.privacy-index a{min-height:44px;padding-block:10px}.privacy-index-character{right:8px;bottom:-51px;width:76px}.privacy-lead{padding:28px 20px;border-radius:15px}.privacy-lead h2{font-size:clamp(21px,6.5vw,25px);line-height:1.5;white-space:nowrap}.privacy-lead>p:last-child{font-size:14px;line-height:1.9}.privacy-item{margin-top:12px;padding:25px 18px;scroll-margin-top:78px;border-radius:11px}.privacy-item-no{right:17px;top:20px;font-size:23px}.privacy-item h3{margin-bottom:18px;padding:0 43px 14px 15px;font-size:18px}.privacy-item h3::before{top:3px;height:22px}.privacy-item>p:not(.privacy-item-no):not(.privacy-effective-date),.privacy-item li{font-size:13px}.privacy-item ul{gap:8px;margin-top:17px}.privacy-item li{padding:10px 12px 10px 30px}.privacy-item li::before{left:14px;top:20px}.privacy-contact-box{padding:22px 18px}.privacy-contact-link{width:100%}}

/* ===== NEWS ARCHIVE / DETAIL ===== */
.news-page,.news-page main{max-width:100%;overflow-x:clip}
.news-sub-hero::after{background:radial-gradient(circle at 83% 42%,rgba(39,200,217,.17) 0 6px,transparent 7px),radial-gradient(circle at 88% 64%,rgba(245,200,66,.16) 0 4px,transparent 5px),linear-gradient(90deg,rgba(3,19,54,.25),transparent 48%,rgba(31,94,166,.08))}
.news-page-section{padding:clamp(54px,5.8vw,82px) 0 clamp(66px,7vw,96px);background:linear-gradient(145deg,#f6f9fd 0,#fff 52%,#f1f7fd 100%)}
.news-archive-head{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:clamp(28px,4vw,48px)}
.news-archive-head h2{margin:0;color:#102748;font-size:clamp(30px,3.5vw,46px);line-height:1.3;letter-spacing:-.05em}
.news-archive-year{margin:0;color:#9aa8ba;font:600 13px var(--font-en);letter-spacing:.14em}
.news-archive-list{border-top:1px solid #cfdbea}
.news-archive-item{position:relative;display:grid;grid-template-columns:150px 110px minmax(0,1fr) 48px;gap:22px;align-items:center;min-height:88px;padding:16px 9px;border-bottom:1px solid #d9e3ef;background:rgba(255,255,255,.01);transition:padding .35s ease,background .35s ease}
.news-archive-item time{color:#183b72;font:600 14px var(--font-en);letter-spacing:.04em}
.news-category{display:inline-grid;place-items:center;min-height:28px;padding:5px 11px;border:1px solid #bdd0e8;border-radius:999px;color:#1456d8;font-size:10px;font-weight:700;line-height:1.2;text-align:center}
.news-archive-item h3{margin:0;color:#1b2d49;font-size:clamp(14px,1.2vw,16px);line-height:1.65;letter-spacing:-.02em}
.news-archive-arrow{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;color:#fff;background:#0a3180;font-size:16px;transition:color .3s ease,background .3s ease,transform .3s ease}
@media(hover:hover) and (pointer:fine){.news-archive-item:hover{padding-inline:22px;background:#fff}.news-archive-item:hover .news-archive-arrow{color:#09265f;background:var(--yellow);transform:translateX(3px)}}
.news-pagination{display:flex;justify-content:center;gap:8px;margin-top:38px}.news-pagination ul{display:flex;justify-content:center;gap:8px;margin:0;padding:0;list-style:none}.news-pagination a,.news-pagination span{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;font:700 12px var(--font-en)}.news-pagination span{color:#fff;background:#0a3180}.news-pagination a{color:#0a3180;background:#fff;border:1px solid #c9d6e8;transition:color .25s ease,background .25s ease}.news-pagination a:hover{color:#fff;background:#0a3180}
.news-detail-section{padding:clamp(52px,5.8vw,80px) 0 clamp(66px,7vw,96px);background:linear-gradient(145deg,#f6f9fd 0,#fff 55%,#f1f7fd 100%)}
.news-article{width:min(100%,900px);margin-inline:auto;padding:clamp(34px,5vw,65px);border:1px solid #dce6f2;border-top:5px solid var(--blue2);border-radius:20px;background:#fff;box-shadow:0 20px 55px rgba(15,48,96,.08)}
.news-article-meta{display:flex;align-items:center;gap:16px;margin-bottom:20px}.news-article-meta time{color:#183b72;font:600 13px var(--font-en);letter-spacing:.05em}
.news-article h1{margin:0;padding-bottom:clamp(25px,3.5vw,38px);border-bottom:1px solid #dbe4ee;color:#102748;font-size:clamp(25px,3.25vw,42px);line-height:1.45;letter-spacing:-.045em}
.news-article-body{padding-top:clamp(26px,4vw,44px);color:#475a73}.news-article-body p{margin:0;font-size:15px;line-height:2}.news-article-body p+p{margin-top:20px}.news-article-body h2{position:relative;margin:clamp(38px,5vw,56px) 0 20px;padding:0 0 14px 18px;border-bottom:1px solid #dbe4ee;color:#142a4b;font-size:clamp(20px,2.2vw,27px);line-height:1.5}.news-article-body h2::before{content:"";position:absolute;left:0;top:4px;width:5px;height:27px;border-radius:5px;background:linear-gradient(180deg,var(--blue2),var(--cyan))}
.news-notice-box{margin:25px 0;padding:22px 25px;border-left:4px solid var(--blue2);border-radius:0 10px 10px 0;background:#f1f6fc}.news-notice-box b{display:block;margin-bottom:7px;color:#12366c;font-size:13px}.news-notice-box strong{display:block;color:#102748;font-size:clamp(18px,2.2vw,25px);line-height:1.55}.news-article-signature{margin-top:34px!important;color:#233957;font-weight:700;text-align:right}
.news-detail-nav{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:18px;width:min(100%,900px);margin:30px auto 0}.news-detail-nav a{display:flex;align-items:center;gap:10px;min-height:48px;color:#29415f;font-size:12px;font-weight:700;transition:color .25s ease}.news-detail-nav a:last-child{justify-content:flex-end}.news-detail-nav a:nth-child(2){justify-content:center;min-width:148px;padding:8px 18px;border:1px solid #c9d6e8;border-radius:999px;background:#fff}.news-detail-nav a:hover{color:var(--blue2)}
@media(max-width:720px){.news-page-section,.news-detail-section{padding:40px 0 56px}.news-archive-head{align-items:start;margin-bottom:25px}.news-archive-head h2{font-size:27px}.news-archive-year{padding-top:8px;font-size:11px}.news-archive-item{grid-template-columns:90px 1fr 32px;gap:6px 10px;min-height:82px;padding:12px 2px}.news-archive-item time{font-size:11px}.news-category{justify-self:start;min-height:22px;padding:3px 8px;font-size:9px}.news-archive-item h3{grid-column:1/3;font-size:12.5px;line-height:1.55}.news-archive-arrow{grid-column:3;grid-row:1/3;width:30px;height:30px;font-size:12px}.news-pagination{margin-top:28px}.news-pagination span{width:42px;height:42px}.news-article{padding:28px 19px;border-radius:14px}.news-article-meta{gap:10px;margin-bottom:16px}.news-article-meta time{font-size:11px}.news-article h1{font-size:clamp(22px,6.7vw,28px)}.news-article-body p{font-size:14px;line-height:1.95}.news-article-body h2{margin-top:34px;font-size:20px}.news-notice-box{padding:18px 16px}.news-notice-box strong{font-size:17px}.news-detail-nav{grid-template-columns:1fr 1fr;gap:8px;margin-top:22px}.news-detail-nav a{font-size:10px}.news-detail-nav a:nth-child(2){grid-column:1/-1;grid-row:2;min-width:0}.news-detail-nav a:last-child{justify-content:flex-end}.news-page .breadcrumb .container{min-width:0;flex-wrap:nowrap;gap:7px}.news-page .breadcrumb .container>*{flex:none}.news-page .breadcrumb .container>span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}

/* Footer copyright and PAGE TOP are independent elements. */
.site-footer{position:relative;overflow:visible}
.site-footer .footer-bottom{position:relative!important;display:block!important;min-height:52px;margin-top:42px!important;padding:16px 180px 0 0!important;overflow:visible!important;transform:none!important}
.site-footer .footer-bottom p{position:static!important;display:block!important;width:100%!important;margin:0!important;padding:0!important;color:#e4eaf5!important;font-size:9px!important;line-height:1.6!important;letter-spacing:.08em!important;white-space:nowrap!important;opacity:1!important;visibility:visible!important;transform:none!important}
.site-footer>.footer-page-top{position:absolute!important;z-index:3;top:auto!important;right:max(40px,calc((100vw - 1180px)/2));bottom:20px;left:auto!important;margin:0!important;transform:none!important}
@media(max-width:1020px){
  .site-footer{padding-bottom:calc(18px + env(safe-area-inset-bottom))!important}
  .site-footer .footer-bottom{width:min(900px,calc(100% - 50px))!important;min-height:58px;margin-top:24px!important;padding:15px 150px 0 0!important}
  .site-footer>.footer-page-top{right:25px;bottom:calc(60px + env(safe-area-inset-bottom))}
}
@media(max-width:720px){
  .site-footer .footer-bottom{width:calc(100% - 38px)!important;margin-top:10px!important; margin-bottom: 10px;}
  .site-footer>.footer-page-top{right:19px}
}

/* ===== CORPORATE HISTORY ===== */
.corporate-history{overflow:hidden;background:linear-gradient(145deg,#edf5ff 0%,#f8fbff 46%,#fff 100%)}
.corporate-history::before{content:"HISTORY";position:absolute;right:-.04em;top:.14em;color:rgba(10,55,126,.035);font:700 clamp(110px,18vw,260px)/1 var(--font-en);letter-spacing:-.08em;pointer-events:none}
.corporate-history>.container{position:relative;z-index:1}
.corporate-history-heading{min-height:130px;margin-bottom:0;padding-right:190px}
.corporate-history-visual{position:absolute;right:10px;top:-44px;width:170px;height:190px;pointer-events:none}
.corporate-character--history{position:absolute;z-index:3;right:4px;bottom:0;width:clamp(106px,12vw,210px);filter:drop-shadow(0 14px 17px rgba(10,42,89,.18));transform:rotate(1deg)}
.history-timeline{position:relative;width:min(100%,1000px);margin:0 auto;padding:4px 0 8px;list-style:none}
.history-timeline::before{content:"";position:absolute;z-index:0;left:215px;top:23px;bottom:45px;width:3px;border-radius:3px;background:linear-gradient(#1b90cf,#174b9b 78%,#f3c847);box-shadow:0 0 0 5px rgba(26,113,188,.08)}
.history-item{position:relative;z-index:1;display:grid;grid-template-columns:172px 86px minmax(0,1fr);align-items:center;min-height:112px}
.history-date{display:flex;align-items:baseline;justify-content:flex-end;gap:9px;padding-right:22px;color:var(--blue)}
.history-date strong{font:700 clamp(30px,3vw,42px)/1 var(--font-en);letter-spacing:-.06em}
.history-date span{font-size:14px;font-weight:700;white-space:nowrap}
.history-marker{position:relative;display:grid;place-items:center;width:64px;height:64px;margin:auto;border:5px solid #f3f8ff;border-radius:50%;background:#fff;transition:transform .35s ease}
.history-marker img{display:block;width:46px;height:46px;object-fit:contain;filter:drop-shadow(0 6px 6px rgba(15,52,100,.13))}
.history-card{position:relative;margin:13px 0;padding:22px 25px;border:1px solid #dce7f3;border-radius:11px;background:rgba(255,255,255,.9);box-shadow:0 13px 36px rgba(17,54,105,.075);transition:transform .35s ease,border-color .35s ease,box-shadow .35s ease}
.history-card::before{content:"";position:absolute;left:-8px;top:50%;width:14px;height:14px;border-left:1px solid #dce7f3;border-bottom:1px solid #dce7f3;background:#fff;transform:translateY(-50%) rotate(45deg)}
.history-card p{position:relative;margin:0;color:#43516a;font-size:14px;line-height:1.95}
.history-card a{color:#0d58a6;font-weight:700;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px;transition:color .25s ease}
.history-card a:hover{color:#d9662f}
.history-label{display:inline-flex;align-items:center;min-height:22px;margin:0 0 9px;padding:3px 9px;border-radius:100px;color:#fff;background:#164f9a;font:700 9px/1 var(--font-en);letter-spacing:.13em}
.history-card--founding{border-color:#bcd9ef;background:linear-gradient(135deg,#fff 0%,#f0f8ff 100%)}
.history-item--latest .history-marker{border-color:#fff8dc;background:#fffdf3}
.history-item--latest .history-card{border-color:#e7cd6c;background:linear-gradient(135deg,#fffdf4,#fff 70%)}
.history-item--latest .history-label{color:#24344e;background:var(--yellow)}
@media(hover:hover) and (pointer:fine){.history-item:hover .history-marker{transform:translateY(-4px) rotate(-3deg)}.history-item:hover .history-card{border-color:#afcce8;transform:translateX(5px);box-shadow:0 18px 40px rgba(17,54,105,.11)}}
@media(max-width:1020px){.corporate-history-heading{padding-right:170px}.corporate-history-visual{right:0;width:155px}.corporate-character--history{right:4px}.history-timeline::before{left:184px}.history-item{grid-template-columns:145px 78px minmax(0,1fr)}}
@media(max-width:720px){.corporate-history-heading{min-height:108px;padding-right:105px}.corporate-history-visual{top:-24px;right:-4px;width:110px;height:125px}.corporate-character--history{right:0;bottom:0}.history-timeline{padding-top:0}.history-timeline::before{left:29px;top:22px;bottom:37px;width:2px;box-shadow:0 0 0 4px rgba(26,113,188,.07)}.history-item{grid-template-columns:59px minmax(0,1fr);align-items:start;min-height:0;padding-bottom:20px}.history-date{grid-column:2;grid-row:1;justify-content:flex-start;gap:7px;padding:0 0 8px 13px}.history-date strong{font-size:29px}.history-date span{font-size:12px}.history-marker{grid-column:1;grid-row:1/3;width:48px;height:48px;margin:0 0 0 5px;border-width:4px;border-radius:50%}.history-marker img{width:35px;height:35px}.history-card{grid-column:2;grid-row:2;margin:0;padding:17px 17px;border-radius:9px}.history-card::before{top:21px}.history-card p{font-size:14px;line-height:1.85}.history-label{margin-bottom:7px}}
@media(prefers-reduced-motion:reduce){.history-marker,.history-card{transition:none}.history-item:hover .history-marker,.history-item:hover .history-card{transform:none}}
@media(max-width:360px){
  .site-footer .footer-bottom{width:calc(100% - 28px)!important;padding-right:125px!important}
  .site-footer .footer-bottom p{font-size:8px!important;letter-spacing:.06em!important}
  .site-footer>.footer-page-top{right:14px}
}

/* Keep hero scroll controls interactive above the decorative image. */
.hero .round-link{pointer-events:auto;touch-action:manipulation;cursor:pointer}
.hero-grid,.hero-orbit,.hero-main-image{pointer-events:none}
@media(prefers-reduced-motion:reduce){.global-nav{transition:none!important}}

/* CF7: replace the submit button only after successful delivery. */
.contact-form-embed .oc-contact-sent input[type="submit"],.contact-form-embed .oc-contact-sent button[type="submit"],.contact-form-embed .oc-contact-sent .wpcf7-spinner{display:none!important}
.contact-form-embed .oc-contact-sent .wpcf7-response-output{display:block!important;width:100%;box-sizing:border-box;margin:10px auto 0!important;padding:24px!important;background:linear-gradient(118deg,#0b7194 0%,#1186a8 52%,#25a9bd 100%);white-space:pre-line;box-shadow:0 12px 28px rgba(11,113,148,.2)}

.contact-form-embed .wpcf7-form.invalid .wpcf7-response-output,.contact-form-embed .wpcf7-form.unaccepted .wpcf7-response-output{background:#ffce57;color:#172947!important}
