:root{--ink:#151719;--muted:#63686b;--cyan:#0badd3;--cyan-dark:#007c99;--paper:#fff;--line:#dfe3e5;--soft:#f2f5f5;--gutter:clamp(24px,5.6vw,104px);--font:"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;--latin:"Arial Narrow","Helvetica Neue",Arial,sans-serif}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:112px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased}
body.menu-open{overflow:hidden}
h1,h2,h3,p,ul,figure{margin:0}ul{padding:0;list-style:none}
a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}
button,summary,a{-webkit-tap-highlight-color:transparent}
button{border:0}img{display:block;max-width:100%;height:auto}svg{display:block;width:24px;height:24px}
::selection{background:#b4ecf7;color:#141719}
:focus-visible{outline:3px solid var(--cyan-dark);outline-offset:6px}
[hidden]{display:none!important}
.shell{max-width:1600px;margin-inline:auto;padding-inline:var(--gutter)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;top:12px;left:24px;z-index:200;background:var(--ink);color:#fff;padding:16px;transform:translateY(-160%)}
.skip-link:focus{transform:translateY(0)}
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);backdrop-filter:blur(16px);border-bottom:1px solid rgba(0,0,0,.055)}
.header-inner{height:104px;display:flex;align-items:center;gap:32px}
.brand{display:block;flex:none;width:163px}.brand img{width:163px;height:auto}
.desktop-nav{margin-left:auto;display:flex;align-items:center;gap:clamp(22px,2.5vw,40px)}
.nav-link{font:700 14px/1.4 var(--latin);letter-spacing:.07em;white-space:nowrap;position:relative;padding-block:17px}
.nav-link::after{content:"";position:absolute;left:0;bottom:7px;width:100%;height:2px;background:var(--cyan);transform:scaleX(0);transform-origin:left;transition:transform .25s}
.nav-link:hover::after{transform:scaleX(1)}
.contact-small{display:flex;align-items:center;gap:22px;background:var(--ink);color:#fff;padding:20px 24px;font:700 13px/1 var(--latin);letter-spacing:.07em;white-space:nowrap;transition:background .25s}
.contact-small svg{width:18px;height:18px}.contact-small:hover{background:var(--cyan-dark)}
.language-menu{position:relative;margin-left:0}
.language-menu summary{cursor:pointer;display:flex;align-items:center;gap:7px;font-size:13px;list-style:none;white-space:nowrap}
.language-menu summary::-webkit-details-marker{display:none}
.language-menu summary::after{content:"";width:5px;height:5px;border-right:1px solid;border-bottom:1px solid;transform:rotate(45deg);margin-left:4px;margin-top:-3px}
.language-menu svg{width:16px;height:16px}
.language-menu ul{position:absolute;right:0;top:38px;min-width:220px;padding:12px;background:white;border:1px solid var(--line);box-shadow:0 10px 26px #0000000d}
.language-menu li{font-size:14px;line-height:1.6}
.language-menu a,.language-menu .current{display:block;padding:12px}
.language-menu a:hover{background:var(--soft)}.language-menu .current{color:var(--cyan-dark)}
.menu-toggle,.mobile-nav{display:none}
.hero{position:relative;isolation:isolate;overflow:hidden;min-height:760px;background:#fafbfb}
.hero::before{content:"";position:absolute;inset:0;background:var(--ink);clip-path:polygon(77% 0,100% 0,100% 100%,58% 100%);z-index:-2}
.hero::after{content:"";position:absolute;top:0;bottom:0;left:85%;width:1px;background:#69ddf766;transform:rotate(-20deg);transform-origin:top;z-index:-1}
.hero-inner{position:relative;padding-top:85px;padding-bottom:48px;min-height:760px}
.hero-eyebrow{display:flex;align-items:center;gap:12px;font-size:15px;font-weight:700;letter-spacing:.08em;margin-bottom:40px}
.hero-eyebrow::before{content:"";width:9px;height:9px;background:var(--cyan);flex:none}
.hero-title{font-size:clamp(39px,4.65vw,72px);line-height:1.55;letter-spacing:-.055em;font-weight:800;position:relative;z-index:2;width:max-content;max-width:100%}
.hero-title .title-line{display:block}
.hero-title em{font-style:normal;color:var(--cyan-dark)}
.hero-title .punctuation{font-size:.7em}
.hero-description{max-width:560px;margin-top:28px;font-size:16px;line-height:2;letter-spacing:.05em}
.hero-services{display:flex;gap:32px;margin-top:40px;max-width:700px;border-top:1px solid #ccd3d5;padding-top:22px}
.hero-services a{display:flex;align-items:center;gap:12px;font-size:14px;font-weight:700;white-space:nowrap}
.hero-services a:hover{color:var(--cyan-dark)}
.hero-services span{color:var(--cyan-dark);font:500 13px var(--latin)}
.hero-art{position:absolute;width:40%;right:-1%;top:102px;pointer-events:none;z-index:0}
.hero-art>svg{height:auto;width:100%;overflow:visible}
.hero-art .orbit{transform-origin:300px 300px;animation:orbit 70s linear infinite}
.hero-art .cube{transform-origin:300px 300px}
.hero-art .glow{transition:opacity .6s}
.hero-art .orbit-dashes{stroke-dasharray:2 15}
.hero-art .spark{animation:spark 4s ease-in-out infinite alternate}
.hero-down{position:absolute;bottom:52px;right:var(--gutter);display:flex;align-items:center;gap:20px;color:#d3d7d9}
.hero-down span{font:600 12px var(--latin);letter-spacing:.16em;writing-mode:vertical-rl}
.hero-down .circle{display:grid;place-items:center;width:48px;height:48px;border:1px solid #626769;border-radius:50%;transition:background .25s,color .25s}
.hero-down svg{transform:rotate(90deg);width:18px}
.hero-down:hover .circle{background:var(--cyan);color:#111;border-color:var(--cyan)}
.hero-index{position:absolute;right:var(--gutter);top:45px;color:#9aa2a5;font:500 12px var(--latin);letter-spacing:.18em}
.hero-index::before{content:"";display:inline-block;width:28px;height:1px;background:var(--cyan);vertical-align:middle;margin-right:12px}
.section{padding-block:112px}
.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:55px}
.section-title{font:800 clamp(52px,6.1vw,94px)/.96 var(--latin);letter-spacing:-.055em}
.section-title .dot{color:var(--cyan)}
.section-caption{font-size:16px;font-weight:700;line-height:1.9;letter-spacing:.06em}
.section-heading .section-caption{padding-bottom:4px}
.service-overview{max-width:480px;text-align:right}
.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px}
.service-card{display:flex;flex-direction:column;position:relative;border-top:1px solid var(--ink);padding-top:19px}
.service-number{font:500 14px var(--latin);letter-spacing:.1em;color:var(--cyan-dark);display:flex;align-items:center;justify-content:space-between;margin-bottom:19px}
.service-number::after{content:"+";font-size:19px;font-weight:300}
.service-image{overflow:hidden;aspect-ratio:306/185;background:#e8edee;position:relative}
.service-image img{width:100%;height:100%;object-fit:cover;filter:grayscale(1);transition:transform .55s ease}
.service-card:hover .service-image img{transform:scale(1.045)}
.service-card h3{margin:26px 0 16px;font-size:clamp(20px,1.7vw,26px);letter-spacing:-.035em;line-height:1.7;font-weight:700}
.service-lead{font-size:16px;line-height:1.9;font-weight:700;margin-bottom:12px}
.service-body{font-size:14px;line-height:2;color:var(--muted);margin-bottom:30px}
.service-link{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding:19px 0;font-size:14px;font-weight:700}
.service-link::after{content:"";position:absolute;inset:0}
.service-link:focus-visible{outline-offset:4px}
.service-link .round-arrow{width:40px;height:40px;display:grid;place-items:center;border:1px solid #c9d3d6;border-radius:50%;transition:background .25s,color .25s,transform .25s}
.round-arrow svg{width:18px;height:18px}
.service-card:hover .round-arrow{background:var(--cyan-dark);color:white;border-color:var(--cyan-dark);transform:translateX(3px)}
.works{background:var(--ink);color:#fff;position:relative;overflow:hidden}
.works::before{content:"";position:absolute;right:11%;top:-100px;width:1px;height:580px;background:#ffffff12;transform:rotate(22deg)}
.works .section-heading{position:relative;align-items:center;margin-bottom:59px}
.works .section-title{font-size:clamp(50px,5.7vw,88px)}
.works .section-caption{margin-top:20px;color:#d7dddf}
.works-copy{font-size:14px;color:#b2b9bc;line-height:2;margin-top:6px;font-weight:400}
.text-link{display:flex;align-items:center;gap:43px;font:600 14px var(--latin);letter-spacing:.08em;border-bottom:1px solid currentColor;padding:18px 0;transition:color .25s;white-space:nowrap}
.text-link:hover{color:var(--cyan)}.text-link svg{width:28px}
.work-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px}
.work{display:block}
.work-image{padding:27px;background:#eceff0;overflow:hidden;transition:background .4s}
.work-image img{width:100%;aspect-ratio:306/244;object-fit:cover;box-shadow:0 6px 20px #10171915;transition:transform .5s}
.work:hover .work-image{background:#c2e9ef}.work:hover img{transform:translateY(-5px)}
.work-category{display:block;margin-top:24px;color:#adb6b9;font-size:13px;letter-spacing:.03em}
.work strong{display:block;margin-top:8px;font-size:17px;line-height:1.8;letter-spacing:-.02em}
.work-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:18px;border-top:1px solid #ffffff29;padding-top:18px}
.work-bottom span{font:600 12px var(--latin);letter-spacing:.1em}
.work-bottom svg{width:18px;height:18px;transition:transform .25s}
.work:hover .work-bottom svg{transform:translate(3px,-3px);color:var(--cyan)}
.news-heading{display:flex;align-items:baseline;gap:24px;margin-bottom:50px}
.news-heading .section-caption{font-size:18px}
.news-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:66px;align-items:start}
.news-filters{display:flex;flex-direction:column;gap:0;position:sticky;top:135px;border-top:1px solid var(--ink)}
.filter{background:none;width:100%;display:flex;justify-content:space-between;align-items:center;text-align:left;border-bottom:1px solid var(--line);padding:20px 0;font-size:15px;line-height:1.5}
.filter::after{content:"";width:6px;height:6px;flex:none;border-radius:50%;background:#c5ced1;transition:transform .2s}
.filter[aria-pressed=true]{color:var(--cyan-dark);font-weight:700}
.filter[aria-pressed=true]::after{background:var(--cyan-dark);transform:scale(1.4)}
.filter:hover{color:var(--cyan-dark)}
.news-list{border-top:1px solid var(--ink)}
.news-item{border-bottom:1px solid var(--line);position:relative;display:grid;grid-template-columns:170px minmax(0,1fr) 20px;gap:27px;padding:30px 0;align-items:start}
.news-image{overflow:hidden;background:var(--soft);aspect-ratio:306/155}
.news-image img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.news-item:hover img{transform:scale(1.05)}
.news-item h3{font-size:17px;line-height:1.8;letter-spacing:.01em;font-weight:700;margin-top:-5px}
.news-item h3 a::after{content:"";position:absolute;inset:0}
.news-item p{margin-top:12px;color:var(--muted);font-size:13px;line-height:1.9}
.news-item:hover h3{color:var(--cyan-dark)}
.news-arrow{padding-top:1px}.news-arrow svg{width:19px;height:19px}
.news-more{margin-top:33px;display:flex;justify-content:flex-end}
.news-more .text-link{gap:50px}
.contact-section{background:#e8f5f8;overflow:hidden;position:relative}
.contact-section::before{content:"";position:absolute;background:#d2edf3;inset:0 0 0 60%;clip-path:polygon(24% 0,100% 0,76% 100%,0 100%)}
.contact-link{position:relative;padding-block:65px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.contact-label{font:800 clamp(43px,7.2vw,112px)/1.15 var(--latin);letter-spacing:-.065em}
.contact-link .contact-arrow{display:grid;place-items:center;width:84px;height:84px;border:1px solid #91abb2;border-radius:50%;transition:background .25s,color .25s,transform .25s;flex:none}
.contact-arrow svg{width:34px;height:34px}
.contact-link:hover .contact-arrow{background:var(--ink);border-color:var(--ink);color:white;transform:rotate(-40deg)}
.site-footer{padding-top:58px}
.footer-top{display:flex;align-items:center;justify-content:space-between;gap:28px;padding-bottom:44px}
.footer-brand img{width:155px}
.footer-nav{display:flex;align-items:center;gap:34px;font:700 13px var(--latin);letter-spacing:.07em}
.footer-nav a:hover{color:var(--cyan-dark)}
.footer-bottom{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-block:24px;gap:20px}
.copyright{font:400 12px/1.8 var(--latin);letter-spacing:.06em;color:var(--muted)}
.back-top{width:35px;height:35px;display:grid;place-items:center;border:1px solid var(--line)}
.back-top svg{transform:rotate(-90deg);width:16px}
@keyframes orbit{to{transform:rotate(360deg)}}
@keyframes float{0%,100%{transform:translateY(0) rotate(-5deg)}50%{transform:translateY(-12px) rotate(0)}}
@keyframes spark{from{opacity:.3}to{opacity:1}}
@keyframes arrive{from{opacity:.25;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
.hero-title{animation:arrive .85s cubic-bezier(.2,.6,.2,1) both}
@media(min-width:1600px){.hero::before{clip-path:polygon(72% 0,100% 0,100% 100%,57% 100%)}}
@media(max-width:1150px){
.header-inner{height:88px;gap:21px}.brand,.brand img{width:140px}.desktop-nav{gap:23px}.nav-link{font-size:12px}.contact-small{padding:16px;gap:14px;font-size:12px}.language-menu summary{font-size:12px}.language-menu summary svg{display:none}
.hero,.hero-inner{min-height:690px}.hero-inner{padding-top:72px}.hero-title{font-size:4.85vw}.hero-eyebrow{font-size:13px;margin-bottom:34px}.hero-description{max-width:460px;font-size:14px}.hero-services{gap:20px;max-width:57%;flex-wrap:wrap;margin-top:32px;padding-top:17px}.hero-services a{font-size:12px;gap:8px}.hero-art{top:115px;width:42%;right:-2%}
.section{padding-block:88px}.service-grid,.work-grid{gap:24px}.section-heading{margin-bottom:42px}.service-lead{font-size:14px}.service-body{font-size:13px}.service-card h3{font-size:19px}.work-image{padding:18px}.work strong{font-size:15px}.news-layout{grid-template-columns:150px 1fr;gap:42px}.news-item{grid-template-columns:135px minmax(0,1fr) 16px;gap:21px}.news-item h3{font-size:15px}
}
@media(max-width:900px){
html{scroll-padding-top:90px}.header-inner{height:80px}.desktop-nav{display:none}.header-inner>.contact-small{margin-left:auto}.language-menu{margin-left:5px}
.menu-toggle{display:flex;flex-direction:column;justify-content:center;gap:6px;background:transparent;width:35px;height:44px;padding:4px;position:relative;z-index:70}
.menu-toggle span{width:26px;height:1px;background:var(--ink);transition:transform .25s}
.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(3.5px) rotate(45deg)}
.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-3.5px) rotate(-45deg)}
.mobile-nav{display:block;position:fixed;inset:80px 0 0;background:#fff;height:calc(100dvh - 80px);overflow:auto;padding:30px var(--gutter);border-top:1px solid var(--line)}
.mobile-nav>a{display:flex;justify-content:space-between;padding:23px 0;border-bottom:1px solid var(--line);font:700 25px var(--latin);letter-spacing:-.025em}
.mobile-nav>a svg{width:25px}
.mobile-languages{display:flex;flex-wrap:wrap;gap:22px;padding-top:32px;font-size:12px}.mobile-languages .current{color:var(--cyan-dark)}
.hero,.hero-inner{min-height:655px}.hero-inner{padding-top:70px}.hero::before{clip-path:polygon(81% 0,100% 0,100% 100%,65% 100%)}.hero-title{font-size:5.3vw}.hero-art{right:-11%;width:46%;top:140px}.hero-description{max-width:52%}.hero-services{max-width:59%;gap:15px}.hero-eyebrow{font-size:12px;letter-spacing:.03em}.hero-index{font-size:10px}.hero-down{bottom:38px}
.service-grid{gap:20px}.service-card h3{font-size:17px;min-height:54px}.service-lead{font-size:13px}.service-body{font-size:12px}.service-link{font-size:12px}.section-title{font-size:58px}.service-overview{max-width:320px;font-size:13px}
.news-layout{grid-template-columns:1fr;gap:24px}.news-filters{position:static;flex-direction:row;flex-wrap:wrap;border-top:none;gap:8px 24px}.filter{width:auto;padding:9px 0;gap:14px;font-size:13px}.news-item{grid-template-columns:160px minmax(0,1fr) 20px}
.footer-nav{gap:23px;font-size:12px}
}
@media(max-width:600px){
:root{--gutter:24px}
html{scroll-padding-top:85px}.header-inner{height:74px;gap:14px}.brand,.brand img{width:124px}.header-inner>.contact-small{font-size:10px;padding:12px 12px;gap:8px}.header-inner>.contact-small svg{width:14px;height:14px}.language-menu{display:none}.menu-toggle{width:30px;padding:2px}
.mobile-nav{top:74px;height:calc(100dvh - 74px)}
.hero,.hero-inner{min-height:820px}.hero-inner{padding-top:47px;padding-bottom:35px}
.hero::before{clip-path:polygon(82% 43%,100% 40%,100% 100%,22% 100%)}
.hero::after{top:47%;left:88%;bottom:-20%;transform:rotate(25deg)}
.hero-eyebrow{font-size:11px;letter-spacing:.02em;gap:7px;margin-bottom:24px;white-space:nowrap}
.hero-eyebrow::before{width:5px;height:5px}
.hero-title{font-size:clamp(29px,7.7vw,46px);line-height:1.65;letter-spacing:-.055em}
.hero-description{font-size:14px;max-width:95%;line-height:1.95;margin-top:20px}
.hero-services{margin-top:24px;max-width:92%;padding-top:14px;gap:10px 18px}
.hero-services a{font-size:12px}
.hero-art{width:79%;top:429px;right:-4%}
.hero-index{top:auto;bottom:31px;left:24px;right:auto;color:#525c61;font-size:8px;writing-mode:vertical-rl}
.hero-index::before{width:1px;height:25px;margin-right:0;margin-bottom:12px}
.hero-down{right:24px;bottom:29px;gap:14px}.hero-down span{font-size:8px}
.hero-down .circle{width:40px;height:40px}
.section{padding-block:66px}.section-heading{display:block;margin-bottom:34px}
.section-title{font-size:52px}.section-caption{font-size:14px}.service-overview{margin-top:21px;max-width:100%;text-align:left;font-size:13px}
.service-grid{grid-template-columns:1fr;gap:40px}
.service-card{padding-top:16px}.service-number{margin-bottom:15px;font-size:11px}
.service-image{aspect-ratio:306/160}.service-card h3{font-size:21px;min-height:0;margin-top:22px;margin-bottom:12px}
.service-lead{font-size:15px}.service-body{font-size:13px;margin-bottom:15px}.service-link{font-size:13px;padding-block:15px}
.works .section-heading{display:flex;gap:12px;align-items:flex-end;margin-bottom:35px}
.works .section-title{font-size:44px;line-height:1.02}.works .section-caption{margin-top:16px;font-size:14px}.works-copy{font-size:12px}
.works .section-heading .text-link{font-size:11px;gap:17px;padding-block:12px;margin-bottom:3px}.text-link svg{width:22px}
.work-grid{grid-template-columns:1fr;gap:40px}.work-image{padding:25px 29px}.work-image img{max-width:360px;margin:auto}
.work-category{margin-top:20px;font-size:12px}.work strong{font-size:15px}.work-bottom{padding-top:14px;margin-top:16px}
.news-heading{gap:18px;margin-bottom:26px}.news-heading .section-caption{font-size:15px}
.news-layout{gap:27px}.news-filters{gap:4px 21px}.filter{font-size:13px;padding-block:11px;gap:8px}
.news-item{grid-template-columns:85px minmax(0,1fr);gap:17px;padding-block:24px}.news-image{aspect-ratio:1/1}.news-image img{object-fit:contain;background:#f3f5f5}.news-item h3{font-size:14px;line-height:1.8;margin-top:-4px}.news-item p{font-size:12px;line-height:1.8;margin-top:10px}.news-arrow{display:none}
.news-more{margin-top:22px}.news-more .text-link{font-size:12px;gap:40px}
.contact-link{padding-block:44px;gap:18px}.contact-label{font-size:clamp(35px,9.1vw,56px)}.contact-link .contact-arrow{width:48px;height:48px}.contact-arrow svg{width:24px;height:24px}
.site-footer{padding-top:39px}.footer-top{align-items:flex-start;gap:27px;padding-bottom:30px}.footer-brand img{width:126px}
.footer-nav{display:grid;grid-template-columns:1fr;gap:19px;font-size:12px}
.footer-bottom{flex-wrap:wrap;gap:17px;padding-block:20px}.copyright{font-size:10px}.back-top{margin-left:auto;width:32px;height:32px}
}
@media(max-width:365px){:root{--gutter:19px}.hero-eyebrow{font-size:10px}.header-inner{gap:11px}.brand,.brand img{width:110px}.hero-title{font-size:7.6vw}.hero-services{gap:11px}.hero-services a{font-size:11px}.hero,.hero-inner{min-height:775px}.hero-art{top:437px}.contact-label{font-size:9vw}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

/* =========================================================
   Sub pages (same design language as the top page)
   ========================================================= */
.page-inner{max-width:1180px;margin-inline:auto}
.page-head{padding-block:56px 34px}
.breadcrumb ul{display:flex;flex-wrap:wrap;gap:4px 10px;font:500 11px/1.6 var(--latin);letter-spacing:.06em;color:var(--muted);margin-bottom:34px}
.breadcrumb a:hover{color:var(--cyan-dark)}
.page-eyebrow{display:flex;align-items:center;gap:12px;font-size:14px;font-weight:700;letter-spacing:.08em;margin-bottom:22px}
.page-eyebrow::before{content:"";width:9px;height:9px;background:var(--cyan);flex:none}
.page-title{font-size:clamp(30px,3.8vw,54px);line-height:1.35;letter-spacing:-.045em;font-weight:800;max-width:22em}
.page-title.latin{font:800 clamp(46px,6.2vw,88px)/.98 var(--latin);letter-spacing:-.055em}
.page-title.latin .dot{color:var(--cyan)}
.page-meta{margin-top:18px;font-size:13px;color:var(--muted)}
.page-meta a{border-bottom:1px solid currentColor}
.page-meta a:hover{color:var(--cyan-dark)}
.page-body{padding-block:0 96px}
.page-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:64px}
.page-grid.has-side{grid-template-columns:minmax(0,1fr) 280px}
.content{min-width:0;font-size:15px;line-height:2;letter-spacing:.03em}
.content .wrap{margin:0 0 56px}
.content .wrap:last-child{margin-bottom:0}
.content h2{font-size:clamp(21px,2.3vw,28px);font-weight:800;line-height:1.5;letter-spacing:-.03em;margin:0 0 18px;position:relative;padding-left:24px}
.content h2::before{content:"";position:absolute;left:0;top:.6em;width:9px;height:9px;background:var(--cyan)}
.content h2 strong{color:var(--cyan-dark)}
.content h3{font-size:18px;font-weight:700;margin:32px 0 12px}
.content p{margin:0 0 1.3em;color:#2b2f31}
.content p:last-child{margin-bottom:0}
.content a{color:var(--cyan-dark);text-decoration:underline;text-underline-offset:3px}
.content a:hover{color:var(--ink)}
.content ul,.content ol{padding-left:1.4em;margin:0 0 1.4em}
.content ul{list-style:disc}.content ol{list-style:decimal}
.content li{margin:0 0 .4em}
.content img{height:auto;max-width:100%}
.content .catch{font-size:16px;margin-bottom:40px}
.content .caution{font-size:13px;color:var(--muted);margin-top:12px}
.content .mb0{margin-bottom:0}
.content .h1_title{font-size:clamp(20px,2.2vw,26px);font-weight:800;letter-spacing:-.03em;margin:0 0 20px;position:relative;padding-left:24px}
.content .h1_title::before{content:"";position:absolute;left:0;top:.6em;width:9px;height:9px;background:var(--cyan)}
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 0 20px}
.btn-dark{display:inline-flex;align-items:center;gap:22px;background:var(--ink);color:#fff!important;padding:18px 24px;font:700 13px/1 var(--latin);letter-spacing:.07em;text-decoration:none!important;transition:background .25s}
.btn-dark svg{width:18px;height:18px}.btn-dark:hover{background:var(--cyan-dark)}
/* dl.info */
dl.info{display:grid;grid-template-columns:minmax(120px,200px) 1fr;border-top:1px solid var(--ink);margin:0}
dl.info dt,dl.info dd{padding:18px 8px;border-bottom:1px solid var(--line);margin:0}
dl.info dt{font-weight:700;font-size:13px;letter-spacing:.06em;color:var(--muted)}
.wrap_contact{background:var(--soft);padding:clamp(28px,4vw,48px);margin-top:24px;position:relative;overflow:hidden}
.wrap_contact::after{content:"";position:absolute;background:#e3f0f3;inset:0 0 0 70%;clip-path:polygon(30% 0,100% 0,70% 100%,0 100%)}
.wrap_contact>*{position:relative}
.wrap_contact dl.info{border-top-color:var(--ink)}
.wrap_contact dd.tel{font:700 30px/1.2 var(--latin);letter-spacing:-.02em;padding-top:12px}
/* 33 languages */
div.gengo{overflow-x:auto;margin:20px 0 8px}
table.gengo{width:100%;border-collapse:collapse}
table.gengo td{padding:14px 18px;border:1px solid var(--line);font-size:14px;transition:background .25s,color .25s}
table.gengo td:hover{background:var(--ink);color:#fff}
/* plan table */
table.menu{width:100%;border-collapse:collapse;min-width:560px;margin-top:12px}
table.menu th,table.menu td{border:1px solid var(--line);padding:16px 18px;vertical-align:top;text-align:left;font-size:14px}
table.menu thead th{text-align:center;font-size:16px;font-weight:700;letter-spacing:.06em;padding:22px 18px;background:var(--ink);color:#fff;border-color:#333}
table.menu .odd td{background:var(--soft)}
table.menu td dl{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:0}
table.menu td dl dt{font-weight:700;white-space:nowrap;color:var(--muted)}
table.menu td dl dd{margin:0}
table.menu .small{font-size:80%}
table.menu tbody tr.btn td{text-align:center;padding:24px 18px}
table.menu tbody tr.btn td a{display:inline-flex;align-items:center;gap:16px;background:var(--ink);color:#fff;text-decoration:none;padding:14px 28px;font-weight:700;font-size:13px;letter-spacing:.1em;transition:background .25s}
table.menu tbody tr.btn td a:hover{background:var(--cyan-dark);color:#fff}
/* CMS */
.cms{display:grid;grid-template-columns:minmax(200px,300px) 1fr;gap:clamp(24px,4vw,48px);align-items:start}
.cms::before{content:"";display:block;aspect-ratio:1;background:center/contain no-repeat;grid-column:1;grid-row:1/span 30}
#cms01::before{background-image:url(../img/cms_img01.png)}
#cms02::before{background-image:url(../img/cms_img02.png)}
#cms03::before{background-image:url(../img/cms_img03.png)}
.cms>*{grid-column:2;min-width:0}
.cms>h2{margin-top:0}
/* SERVICES page list */
ul.service_list{list-style:none;padding:0;margin:0 0 56px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px}
ul.service_list li{margin:0;border-top:1px solid var(--ink);padding-top:18px;display:flex;flex-direction:column}
ul.service_list li .image{overflow:hidden;aspect-ratio:470/190;background:#e8edee}
ul.service_list li .image img{width:100%;height:100%;object-fit:cover;filter:grayscale(1);transition:transform .55s ease,filter .4s}
ul.service_list li:hover .image img{transform:scale(1.045);filter:grayscale(0)}
ul.service_list li .wrap{margin:0;padding-top:22px}
ul.service_list li h2{font-size:20px;margin:0 0 12px;padding-left:0}
ul.service_list li h2::before{display:none}
ul.service_list li h2 a{color:inherit;text-decoration:none}
ul.service_list li h2 a:hover{color:var(--cyan-dark)}
ul.service_list li p{font-size:14px;color:var(--muted);margin:0}
/* CONTACT page */
ul.contact_us{list-style:none;padding:0;margin:0 0 56px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
ul.contact_us li{margin:0;text-align:center;padding:36px 20px;border:1px solid var(--line);font:700 20px/1.4 var(--latin);letter-spacing:.02em}
ul.contact_us li img{margin:0 auto 14px}
ul.contact_us li a{color:inherit;text-decoration:none}
ul.contact_us li a:hover{color:var(--cyan-dark)}
.contact_form dl{margin:0}
.contact_form dt{font-weight:700;font-size:14px;margin:22px 0 8px}
.contact_form dd{margin:0}
.contact_form input[type=text],.contact_form textarea{width:100%;padding:14px 16px;border:1px solid #cfd5d7;background:#fff;font:inherit;font-size:15px;border-radius:0;-webkit-appearance:none;transition:border-color .25s,box-shadow .25s}
.contact_form input[type=text]:focus,.contact_form textarea:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px #0badd32e}
.contact_form textarea{min-height:200px;resize:vertical}
.contact_form .submit{margin-top:32px}
.contact_form .submit input{display:inline-block;min-width:240px;padding:20px 30px;border:0;background:var(--ink);color:#fff;cursor:pointer;font:700 13px/1 var(--latin);letter-spacing:.12em;text-transform:uppercase;transition:background .25s}
.contact_form .submit input:hover{background:var(--cyan-dark)}
.wpcf7-response-output{margin-top:16px;padding:12px;border:1px solid var(--line)}
.wpcf7-display-none{display:none}
.screen-reader-response{position:absolute;overflow:hidden;clip:rect(1px,1px,1px,1px);height:1px;width:1px;margin:-1px}
/* Blog entry */
.wrap_entry .entry-header{display:none}
.entry-content h2{margin-top:56px}
.entry-content h3{margin-top:40px}
.entry-content img{margin:24px 0}
.entry-content blockquote{margin:24px 0;padding:20px 24px;border-left:3px solid var(--cyan);background:var(--soft);color:#444}
.entry-content pre{overflow-x:auto;background:#151719;color:#eee;padding:20px;font-size:13px;line-height:1.7}
.entry-content table{border-collapse:collapse;width:100%;margin:20px 0}
.entry-content th,.entry-content td{border:1px solid var(--line);padding:10px 12px;text-align:left}
.wrap_social{margin-top:64px;padding:28px 32px;background:var(--soft)}
.wrap_social .ttl{font:700 12px/1.6 var(--latin);letter-spacing:.1em;margin-bottom:8px}
.wrap_social p{font-size:14px;color:#444}
.wrap_social .social{display:block}
.wp_social_bookmarking_light{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:12px}
.wp_social_bookmarking_light>div{display:flex;align-items:center;min-height:24px}
.wrap_mainbtm{margin-top:56px}
.wrap_mainbtm .ttl,.wrap_navi .ttl{display:flex;align-items:center;gap:10px;font:700 12px/1.6 var(--latin);letter-spacing:.1em;margin-bottom:10px}
.wrap_mainbtm .ttl::before,.wrap_navi .ttl::before{content:"";width:7px;height:7px;background:var(--cyan)}
.wrap_mainbtm ul,.wrap_mainbtm ol,.wrap_navi ul{list-style:none;padding:0;margin:0}
.wrap_mainbtm ol li,.wrap_navi li{margin:0;border-bottom:1px solid var(--line)}
.wrap_mainbtm ol li a,.wrap_navi li a{display:block;padding:13px 0;color:inherit;text-decoration:none;font-size:14px;transition:color .25s,padding-left .25s}
.wrap_mainbtm ol li a:hover,.wrap_navi li a:hover{color:var(--cyan-dark);padding-left:8px}
.wrap_navi{margin-bottom:44px;border-top:1px solid var(--ink);padding-top:14px}
/* Blog list */
.entry-list{display:flex;gap:28px;align-items:flex-start;padding:26px 0;border-bottom:1px solid var(--line)}
.entry-list:first-child{border-top:1px solid var(--ink)}
.entry-date{flex:none;width:72px;text-align:center;font-family:var(--latin);line-height:1;padding-top:2px}
.entry-date .day{display:block;font-size:34px;font-weight:800;letter-spacing:-.04em}
.entry-date .month{display:block;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-top:6px}
.entry-info{min-width:0}
.entry-info .entry-title{font-size:17px;font-weight:700;line-height:1.6}
.entry-info .entry-title a{color:inherit;text-decoration:none}
.entry-info .entry-title a:hover{color:var(--cyan-dark)}
.entry-info .entry-meta{font-size:12px;color:var(--muted);margin-top:8px}
.entry-info .entry-meta a{color:inherit;text-decoration:none;border-bottom:1px solid #ccc}
.wp-pagenavi{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:40px;font:600 12px var(--latin);letter-spacing:.1em}
.wp-pagenavi .pages{color:var(--muted);margin-right:12px}
.wp-pagenavi a,.wp-pagenavi span.current{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:44px;padding:0 14px;border:1px solid var(--ink);color:var(--ink);text-decoration:none;transition:background .25s,color .25s}
.wp-pagenavi span.current,.wp-pagenavi a:hover{background:var(--ink);color:#fff}
/* work grid on light pages (SUCCESS STORIES) */
.page .work-grid{list-style:none;padding:0;margin:0}
.page .work{color:var(--ink);text-decoration:none}
.page .work-category{color:var(--muted)}
.page .work-bottom{border-top-color:var(--line)}
.page .work:hover .work-bottom svg{color:var(--cyan-dark)}
/* category pages reuse top-page sections */
.page-sections .section{padding-top:0}
.page-sections .section+.section{padding-top:88px}
.page-sections .works{padding-top:88px}
@media (max-width:1000px){.page-grid.has-side{grid-template-columns:1fr}ul.contact_us{grid-template-columns:1fr}}
@media (max-width:760px){ul.service_list{grid-template-columns:1fr}.cms{grid-template-columns:1fr}.cms::before{max-width:260px}dl.info{grid-template-columns:1fr}dl.info dt{padding-bottom:4px;border-bottom:0}dl.info dd{padding-top:0}.entry-list{gap:18px}.entry-date{width:56px}.entry-date .day{font-size:28px}.page-head{padding-block:36px 24px}}
/* locale / category tweaks */
html:lang(en) .hero-title,html:lang(th) .hero-title{font-size:clamp(28px,3.3vw,54px);line-height:1.4;letter-spacing:-.03em;max-width:58%}
html:lang(th) .hero-title{font-size:clamp(26px,3vw,48px)}
.language-menu .unavailable,.mobile-languages .unavailable{display:block;padding:12px;color:#aab1b4}
.mobile-languages .unavailable{padding:0}
.sub-caption{display:flex;align-items:center;gap:12px;font-size:16px}
.sub-caption::before{content:"";width:9px;height:9px;background:var(--cyan)}
.news-layout.single{grid-template-columns:minmax(0,1fr)}
@media(max-width:900px){html:lang(en) .hero-title,html:lang(th) .hero-title{max-width:60%}}
@media(max-width:600px){html:lang(en) .hero-title,html:lang(th) .hero-title{max-width:100%;font-size:clamp(24px,6.4vw,34px)}}
