:root { --blue:#1195bd; --ink:#091b27; --paper:#f7f4ee; --line:rgba(9,27,39,.14); --soft:#e5f4f8; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:#fff; color:var(--ink); font-family:"Yu Gothic","Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif; letter-spacing:.035em; }
a { color:inherit; text-decoration:none; }
img,video { display:block; width:100%; height:100%; object-fit:cover; }
button,input,select,textarea { font:inherit; }
.site-header { position:fixed; inset:0 0 auto; z-index:50; height:80px; display:flex; align-items:center; justify-content:space-between; padding:8px clamp(20px,3.7vw,64px); background:rgba(255,255,255,.985); border-bottom:1px solid rgba(18,37,44,.08); }
.brand img { width:176px; height:58px; object-fit:contain; }
.header-actions { display:flex; align-items:center; gap:clamp(24px,3vw,48px); }
.desktop-nav { display:flex; align-items:center; gap:clamp(22px,2.7vw,46px); font-size:16px; font-weight:700; white-space:nowrap; }
.desktop-nav a { position:relative; padding:12px 0; }
.desktop-nav a::after { content:""; position:absolute; left:0; right:100%; bottom:4px; height:2px; background:var(--blue); transition:.35s; }
.desktop-nav a:hover::after,.desktop-nav a.active::after { right:0; }
.header-phone { display:flex; align-items:center; justify-content:center; gap:11px; min-width:190px; height:50px; padding:0 24px; border-radius:999px; color:#fff; background:var(--blue); font-family:Arial,"Helvetica Neue",sans-serif; font-size:16px; font-weight:400; letter-spacing:.055em; }
.header-phone img { width:21px; height:21px; object-fit:contain; filter:brightness(0) invert(1); transition:transform .32s cubic-bezier(.2,.8,.2,1); }
.header-phone:hover img { transform:scale(1.28); }
.menu-button { display:none; width:50px; height:50px; padding:0; border:1px solid rgba(9,27,39,.13); border-radius:50%; background:#fff; color:var(--ink); cursor:pointer; align-items:center; justify-content:center; transition:transform .25s cubic-bezier(.16,1,.3,1),border-color .25s ease; -webkit-tap-highlight-color:transparent; }
.menu-button:active { transform:scale(.96); }
.menu-button:focus-visible { outline:2px solid var(--blue); outline-offset:3px; }
.menu-button:not(.is-open) { color:var(--blue); }
.menu-button__icon { position:relative; display:block; width:25px; height:16px; }
.menu-button__icon span { position:absolute; left:0; width:100%; height:1.5px; border-radius:999px; background:currentColor; transition:transform .36s cubic-bezier(.16,1,.3,1),top .36s cubic-bezier(.16,1,.3,1); }
.menu-button__icon span:first-child { top:1px; }
.menu-button__icon span:nth-child(2) { top:7px; transition:opacity .2s ease,transform .28s ease; }
.menu-button__icon span:last-child { top:13px; }
.menu-button.is-open .menu-button__icon span:first-child { top:7px; transform:rotate(45deg); }
.menu-button.is-open .menu-button__icon span:nth-child(2) { opacity:0; transform:scaleX(.25); }
.menu-button.is-open .menu-button__icon span:last-child { top:7px; transform:rotate(-45deg); }
.mobile-menu { display:none; }
body.menu-open { overflow:hidden; }
main { overflow:hidden; }
.eyebrow { margin:0 0 24px; color:var(--blue); font-size:13px; font-weight:800; letter-spacing:.18em; }
.text-link { display:inline-flex; align-items:center; gap:20px; margin-top:28px; font-family:Georgia,"Times New Roman",serif; font-size:16px; font-weight:400; letter-spacing:.03em; }
.text-link::before { content:""; width:30px; height:1px; background:var(--blue); transition:width .35s ease; }
.text-link:hover::before { width:46px; }
.home-hero { position:relative; padding-top:80px; background:#fff; }
.hero-collage { height:calc(100svh - 80px); min-height:520px; display:grid; grid-template-columns:1.1fr 1fr 1.25fr .9fr; grid-template-rows:1fr 1fr; gap:6px; }
.hero-tile { position:relative; overflow:hidden; background:#cde9f1; }
.hero-tile img,.hero-tile video { transition:transform 1.4s cubic-bezier(.2,.8,.2,1); }
.hero-tile:hover img,.hero-tile:hover video { transform:scale(1.045); }
.hero-tile-a { grid-row:1/3; }
.hero-tile-b { grid-column:2; grid-row:1; }
.hero-tile-c { grid-column:2; grid-row:2; }
.hero-tile-c video { position:absolute; inset:0; opacity:1; visibility:visible; object-position:center; transform:translateZ(0); -webkit-transform:translateZ(0); }
.hero-tile-d { grid-column:3; grid-row:1/3; }
.hero-tile-e { grid-column:4; grid-row:1/3; }
.hero-tag { position:absolute; z-index:3; padding:7px 10px; color:var(--ink); background:rgba(255,255,255,.88); font-size:11px; font-weight:800; letter-spacing:.06em; transition:color .3s ease,background-color .3s ease,transform .3s ease; }
.hero-tag:hover { color:var(--blue); background:rgba(255,255,255,.98); transform:translateY(-2px); }
.hero-tag:focus-visible { outline:2px solid var(--blue); outline-offset:3px; }
.hero-tile-a>.hero-tag { right:16px; bottom:14px; }
.hero-tile-b>.hero-tag { top:14px; left:14px; }
.hero-tile-c>.hero-tag { right:14px; bottom:12px; }
.hero-tile-d>.hero-tag { right:14px; bottom:12px; }
.hero-tile-e>.hero-tag { top:14px; right:14px; }
.snow-canvas { position:absolute; inset:0; z-index:2; width:100%; height:100%; pointer-events:none; }
.reveal { opacity:0; transform:translateY(28px); transition:opacity .82s ease,transform .82s cubic-bezier(.16,1,.3,1); }
.reveal.is-visible { opacity:1; transform:none; }
.intro-section { display:grid; grid-template-columns:minmax(250px,.7fr) minmax(0,1.3fr); column-gap:clamp(64px,7vw,112px); row-gap:0; width:min(1200px,calc(100% - 80px)); margin:0 auto; padding:clamp(110px,9vw,145px) 0 clamp(135px,12vw,190px); }
.section-marker { display:flex; flex-direction:column; align-items:flex-start; gap:34px; }
.section-marker span { color:var(--blue); font-size:13px; font-weight:800; letter-spacing:.15em; }
.section-marker b { color:transparent; -webkit-text-stroke:1px var(--blue); font-size:clamp(70px,9vw,150px); line-height:.85; writing-mode:vertical-rl; opacity:.23; }
.intro-copy { display:grid; grid-template-columns:auto minmax(0,1fr); gap:clamp(34px,4vw,58px); align-items:start; padding-top:26px; }
.intro-lead { height:430px; margin:0; writing-mode:vertical-rl; text-orientation:mixed; font-size:clamp(22px,1.75vw,26px); line-height:1.9; letter-spacing:.08em; font-weight:700; }
.intro-break-mobile { display:none; }
.intro-copy>div { width:min(520px,100%); margin:0; padding-left:30px; border-left:1px solid rgba(17,149,189,.3); }
.intro-copy>div p { margin:0 0 20px; line-height:2.1; font-size:15px; }
.world-connect-section { position:relative; isolation:isolate; min-height:650px; overflow:hidden; background:#fff; }
.world-simple-content,.about-title-block { position:relative; z-index:1; }
.about-column { grid-column:1; align-self:start; display:flex; flex-direction:column; align-items:flex-start; }
.world-simple-content { grid-column:2; }
.world-map-watermark { position:relative; z-index:0; width:min(100%,340px); height:auto; margin:0 0 0 -8px; object-fit:contain; opacity:.14; filter:saturate(.42) brightness(1.08); pointer-events:none; user-select:none; }
.intro-copy .text-link { color:var(--ink); }
.section-title { position:relative; width:min(100%,420px); min-height:184px; padding:18px 0 0; }
.section-title h1,.section-title h2 { position:relative; z-index:1; margin:0; font-family:Georgia,"Times New Roman",serif; font-size:clamp(54px,5.3vw,76px); font-weight:400; line-height:1; letter-spacing:-.025em; }
.title-initial,.title-word-rest { display:inline-block; }
.title-initial { color:#1195bd; transform-origin:center bottom; }
.section-title h1.is-letter-ready .title-initial,.section-title h2.is-letter-ready .title-initial { opacity:0; clip-path:inset(0 100% 0 0); transform:translateX(-12px) scaleX(.9); }
.section-title h1.is-letter-ready .title-word-rest,.section-title h2.is-letter-ready .title-word-rest { opacity:0; clip-path:inset(0 100% 0 0); transform:translateX(-10px); }
.section-title h1.is-letter-animated .title-initial,.section-title h2.is-letter-animated .title-initial { animation:title-initial-reveal 1.18s cubic-bezier(.16,1,.3,1) forwards; }
.section-title h1.is-letter-animated .title-word-rest,.section-title h2.is-letter-animated .title-word-rest { animation:title-word-reveal 1.12s .18s cubic-bezier(.16,1,.3,1) forwards; }
@keyframes title-initial-reveal { 0%{opacity:0;clip-path:inset(0 100% 0 0);transform:translateX(-12px) scaleX(.9)} 100%{opacity:1;clip-path:inset(0);transform:translateX(0) scaleX(1)} }
@keyframes title-word-reveal { 0%{opacity:0;clip-path:inset(0 100% 0 0);transform:translateX(-10px)} 100%{opacity:1;clip-path:inset(0);transform:translateX(0)} }
.section-title p { position:relative; z-index:1; margin:26px 0 0 4px; font-size:clamp(19px,1.65vw,25px); font-weight:700; letter-spacing:.08em; }
.section-title>span { display:block; width:42px; height:1px; margin:30px 0 0 6px; background:var(--ink); }
.section-title-dark>span { background:var(--blue); }
.section-title-dark { color:#fff; }
.business-stage { background:#091b27; color:#fff; padding:0; }
.business-heading { display:grid; grid-template-columns:.82fr 1.18fr; gap:clamp(64px,7vw,112px); align-items:center; width:min(1200px,calc(100% - 80px)); min-height:300px; margin:0 auto; padding:54px 0 48px; }
.business-title-block,.news-title-block { position:relative; align-self:center; min-width:0; }
.title-accessible { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.business-introduction { align-self:start; justify-self:end; max-width:760px; padding-top:calc(64px + clamp(54px,5.3vw,76px)); text-align:right; }
.business-introduction p { margin:0; color:rgba(255,255,255,.86); font-size:16px; font-weight:400; line-height:1.8; letter-spacing:.055em; white-space:nowrap; }
.business-introduction a { display:inline-flex; align-items:center; gap:20px; margin-top:20px; font-family:Georgia,"Times New Roman",serif; font-size:16px; letter-spacing:.03em; }
.business-introduction a::before { content:""; width:30px; height:1px; background:var(--blue); transition:width .35s ease; }
.business-introduction a:hover::before { width:46px; }
.business-grid { position:relative; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); overflow:hidden; background:#091b27; }
.business-grid-backgrounds { position:absolute; inset:0; z-index:0; overflow:hidden; pointer-events:none; }
.business-grid-backgrounds img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; filter:brightness(.82) saturate(.92) contrast(.98); transform:scale(1.01); transition:opacity .45s ease,transform 1.2s cubic-bezier(.2,.7,.2,1); }
.business-grid-backgrounds img.is-active { opacity:1; transform:scale(1.035); }
.business-card { position:relative; z-index:1; min-height:clamp(310px,24vw,430px); overflow:hidden; color:#fff; }
.business-card[data-business-card="1"] { transition-delay:.06s; }
.business-card[data-business-card="2"] { transition-delay:.12s; }
.business-card[data-business-card="3"] { transition-delay:.18s; }
.business-card a { position:absolute; inset:0; display:grid; place-items:center; overflow:hidden; color:#fff; }
.business-card>a>img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.78; filter:brightness(.84) saturate(1) contrast(1) blur(.9px); transform:scale(1.015); transition:opacity .45s ease,filter .45s ease,transform 1.15s cubic-bezier(.2,.7,.2,1); }
.business-card-shade { position:absolute; inset:0; z-index:1; background:linear-gradient(0deg,rgba(3,14,20,.62),rgba(3,14,20,.08) 68%); transition:background .45s ease; }
.business-card-copy { position:relative; z-index:2; display:flex; flex-direction:column; align-items:center; justify-content:center; width:100%; height:100%; padding:40px 7%; text-align:center; text-shadow:0 2px 18px rgba(0,0,0,.48); transition:opacity .45s ease,background-color .45s ease; }
.business-card-copy small { margin-bottom:22px; font-family:Georgia,"Times New Roman",serif; font-size:clamp(14px,1.15vw,18px); letter-spacing:.05em; }
.business-card-copy strong { max-width:500px; font-size:clamp(23px,2vw,33px); font-weight:700; line-height:1.55; letter-spacing:.07em; }
.business-card[data-business-card="1"] .business-card-copy strong,.business-card[data-business-card="3"] .business-card-copy strong { max-width:none; font-size:clamp(20px,1.75vw,29px); white-space:nowrap; }
.business-card-copy em { margin-top:18px; font-size:clamp(12px,.92vw,15px); line-height:1.7; font-style:normal; font-weight:400; }
.business-grid.is-hovering .business-card>a>img { opacity:0; }
.business-grid.is-hovering .business-card.is-passive .business-card-copy { opacity:0; }
.business-grid.is-hovering .business-card.is-active .business-card-shade { background:linear-gradient(0deg,rgba(3,14,20,.5),rgba(9,27,39,.08) 72%); }
.business-grid.is-hovering .business-card.is-active .business-card-copy { background:radial-gradient(ellipse at center,rgba(9,27,39,.38) 0%,rgba(9,27,39,.12) 40%,transparent 72%); text-shadow:0 2px 5px rgba(0,0,0,.92),0 8px 28px rgba(0,0,0,.72); }
.business-card:hover>a>img,.business-card:focus-within>a>img { transform:scale(1.06); }
.vision-section { position:relative; height:500px; min-height:500px; color:#fff; background:#091b27; overflow:hidden; }
home-vision { display:block; }
.vision-section>video { position:absolute; inset:0; object-position:center 58%; transform:scale(1.025); }
.vision-overlay { position:absolute; inset:0; z-index:1; background:linear-gradient(90deg,rgba(9,27,39,.82),rgba(9,27,39,.53) 52%,rgba(9,27,39,.38)); }
.vision-layout { position:relative; z-index:3; display:grid; grid-template-columns:minmax(0,.95fr) minmax(450px,1.05fr); gap:clamp(72px,7vw,112px); align-items:center; width:min(1200px,calc(100% - 80px)); height:100%; margin:0 auto; }
.vision-promo { position:relative; }
.vision-promo-label { margin:0 0 30px; color:rgba(255,255,255,.62); font-family:Arial,"Helvetica Neue",sans-serif; font-size:12px; font-weight:700; line-height:1; letter-spacing:.2em; }
.vision-promo h2 { margin:0; font-size:clamp(32px,2.7vw,42px); font-weight:500; line-height:1.5; letter-spacing:-.025em; }
.vision-promo h2 span,.vision-promo h2 strong { display:block; font:inherit; white-space:nowrap; }
.vision-promo h2 strong { margin-top:4px; }
.vision-promo-more { display:inline-flex; align-items:center; gap:20px; margin-top:34px; font-family:Georgia,"Times New Roman",serif; font-size:16px; letter-spacing:.03em; }
.vision-promo-more::before { content:""; width:30px; height:1px; background:var(--blue); transition:width .35s ease; }
.vision-promo-more:hover::before { width:46px; }
.vision-contact { display:block; min-width:0; color:var(--blue); filter:drop-shadow(0 24px 42px rgba(9,27,39,.3)); }
.vision-contact-form { position:relative; display:flex; gap:2px; height:78px; overflow:hidden; color:var(--blue); }
.vision-contact-label,.vision-contact-icon,.vision-contact-tel { border:1px solid rgba(255,255,255,.72); border-radius:4px; background:linear-gradient(135deg,rgba(255,255,255,.94),rgba(239,249,252,.9)); box-shadow:inset 0 1px 0 rgba(255,255,255,.78); }
.vision-contact-label { display:grid; flex:1; place-items:center; min-width:0; font-size:17px; font-weight:800; letter-spacing:.07em; transition:transform .65s cubic-bezier(.76,0,.24,1),background-color .35s ease; }
.vision-contact-text-switch { position:relative; display:block; overflow:hidden; line-height:1.3; }
.vision-contact-text-base,.vision-contact-text-hover { display:block; transition:opacity .65s cubic-bezier(.76,0,.24,1),transform .65s cubic-bezier(.76,0,.24,1); }
.vision-contact-text-base { opacity:1; transform:translateY(0); }
.vision-contact-text-hover { position:absolute; inset:0; opacity:0; transform:translateY(100%); }
.vision-contact-icon { display:grid; flex:0 0 78px; place-items:center; width:78px; height:78px; transition:transform .65s cubic-bezier(.76,0,.24,1),background-color .35s ease; }
.vision-contact-icon img { width:24px; height:23px; object-fit:contain; filter:invert(46%) sepia(92%) saturate(1028%) hue-rotate(153deg) brightness(91%) contrast(91%); }
.vision-contact-icon-hover { position:absolute; top:0; left:-80px; }
.vision-contact-form:hover .vision-contact-label,.vision-contact-form:hover .vision-contact-icon-base { transform:translateX(80px); }
.vision-contact-form:hover .vision-contact-icon-hover { transform:translateX(80px); }
.vision-contact-form:hover .vision-contact-text-base { opacity:0; transform:translateY(-100%); }
.vision-contact-form:hover .vision-contact-text-hover { opacity:1; transform:translateY(0); }
.vision-contact-form:active,.vision-contact-tel:active { transform:translateY(1px); }
.vision-contact-form:focus-visible,.vision-contact-tel:focus-visible { outline:2px solid var(--blue); outline-offset:4px; }
.vision-contact-tel { display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:122px; margin-top:3px; padding:22px 24px; }
.vision-contact-number { display:flex; align-items:center; justify-content:center; gap:10px; }
.vision-contact-number img { width:28px; height:28px; object-fit:contain; filter:invert(46%) sepia(92%) saturate(1028%) hue-rotate(153deg) brightness(91%) contrast(91%); }
.vision-contact-number b { font-family:Arial,"Helvetica Neue",sans-serif; font-size:clamp(29px,2.4vw,36px); font-weight:400; line-height:1; letter-spacing:.045em; white-space:nowrap; }
.vision-contact-time { margin-top:12px; color:#4d5b61; font-size:12px; line-height:1.55; letter-spacing:.04em; text-align:center; }
@media (prefers-reduced-transparency:reduce) { .vision-contact-label,.vision-contact-icon,.vision-contact-tel { background:#f7fbfc; -webkit-backdrop-filter:none; backdrop-filter:none; } }
.news-section { background:#fff; color:var(--ink); }
.news-heading { display:grid; grid-template-columns:.82fr 1.18fr; gap:clamp(64px,7vw,112px); align-items:center; width:min(1200px,calc(100% - 80px)); min-height:300px; margin:0 auto; padding:54px 0 48px; color:#091b27; background:#fff; }
.news-introduction { align-self:start; justify-self:end; max-width:760px; padding-top:calc(64px + clamp(54px,5.3vw,76px)); text-align:right; }
.news-introduction-ja { margin:0; font-size:16px; font-weight:400; line-height:1.8; letter-spacing:.055em; white-space:nowrap; }
.news-introduction a { display:inline-flex; align-items:center; gap:20px; margin-top:20px; font-family:Georgia,"Times New Roman",serif; font-size:16px; letter-spacing:.03em; }
.news-introduction a::before { content:""; width:30px; height:1px; background:var(--blue); transition:width .35s ease; }
.news-introduction a:hover::before { width:46px; }
.home-news-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); width:min(1200px,calc(100% - 80px)); margin:0 auto; padding:0 0 clamp(100px,9vw,145px); border-bottom:1px solid rgba(18,37,44,.17); }
.home-news-item { position:relative; display:grid; grid-template-columns:minmax(0,1fr) 46px; grid-template-rows:auto 1fr; gap:24px 28px; align-items:start; min-height:230px; padding:34px 42px 38px; border-top:1px solid rgba(18,37,44,.17); }
.home-news-item:nth-child(odd) { border-right:1px solid rgba(18,37,44,.13); }
@media (min-width:901px) { .home-news-item:nth-last-child(-n+2) { border-bottom:1px solid rgba(18,37,44,.17); } }
.home-news-item::before { content:""; position:absolute; left:0; top:30px; bottom:30px; width:3px; background:var(--blue); transform:scaleY(0); transform-origin:center; transition:transform .4s cubic-bezier(.16,1,.3,1); }
.home-news-item:hover,.home-news-item:focus-visible { color:var(--ink); }
.home-news-item:hover::before,.home-news-item:focus-visible::before { transform:scaleY(1); }
.home-news-meta { display:flex; align-items:center; gap:14px; }
.home-news-meta time { font-size:12px; font-weight:700; letter-spacing:.06em; }
.home-news-meta i { padding:5px 9px; color:var(--blue); background:var(--soft); font-size:10px; font-style:normal; font-weight:800; letter-spacing:.08em; }
.home-news-content { display:flex; flex-direction:column; gap:11px; grid-column:1; }
.home-news-content b { font-size:clamp(16px,1.25vw,19px); line-height:1.75; transition:color .35s ease; }
.home-news-content small { color:#687980; font-size:12px; line-height:1.8; }
.home-news-item:hover .home-news-content b,.home-news-item:focus-visible .home-news-content b { color:#087da1; }
.home-news-arrow { display:flex; grid-column:2; grid-row:1/3; align-items:flex-start; justify-content:flex-end; width:42px; height:auto; color:var(--blue); font-family:Georgia,"Times New Roman",serif; font-size:25px; line-height:1; transition:transform .42s cubic-bezier(.16,1,.3,1); }
.home-news-item:hover .home-news-arrow,.home-news-item:focus-visible .home-news-arrow { transform:translateX(6px); }
.footer { color:#fff; background:var(--ink); padding:76px clamp(24px,6vw,96px) 24px; }
.footer-main { display:grid; grid-template-columns:minmax(210px,.9fr) minmax(310px,1.35fr) minmax(210px,.9fr) minmax(120px,.5fr); gap:clamp(42px,5vw,86px); width:min(1280px,100%); margin:0 auto; }
.footer-brand img { width:210px; height:auto; filter:brightness(0) invert(1); object-fit:contain; }
.footer-brand p { margin:24px 0 0; color:rgba(255,255,255,.7); font-size:12px; line-height:1.9; white-space:nowrap; }
.footer-heading { margin:0 0 24px!important; color:#60c5df; font-family:Arial,"Helvetica Neue",sans-serif; font-size:14px!important; font-weight:700; letter-spacing:.14em; }
.footer-offices { display:grid; gap:20px; }
.footer-offices address { display:grid; grid-template-columns:100px 1fr; gap:5px 16px; margin:0; font-size:14px; font-style:normal; line-height:1.8; }
.footer-offices address strong { grid-row:1/3; color:#fff; }
.footer-offices address span { color:rgba(255,255,255,.65); }
.footer-address-reserved { opacity:.62; }
.footer-contact-list { display:grid; align-content:start; gap:15px; }
.footer-contact-list>p:not(.footer-heading) { display:grid; grid-template-columns:66px 1fr; gap:14px; margin:0; font-size:14px; line-height:1.7; }
.footer-contact-list strong { color:rgba(255,255,255,.58); font-size:14px; letter-spacing:.06em; }
.footer-contact-list a { overflow-wrap:anywhere; }
.footer-links { display:grid; gap:16px; align-content:start; font-weight:700; font-size:14px; }
.footer-links a { width:max-content; color:rgba(255,255,255,.78); transition:color .3s ease; }
.footer-links a:hover { color:#60c5df; }
.footer-legal { display:flex; align-items:center; justify-content:space-between; width:min(1280px,100%); margin:58px auto 0; padding-top:24px; border-top:1px solid rgba(255,255,255,.14); color:rgba(255,255,255,.58); font-size:14px; }
.footer-legal a { transition:color .3s ease; }
.footer-legal a:hover { color:#fff; }
.copyright { margin:0; }
.page-hero { position:relative; min-height:690px; padding:190px clamp(20px,9vw,160px) 110px; background:var(--paper); overflow:hidden; }
.page-hero .eyebrow,.page-hero h1,.page-hero-text { position:relative; z-index:2; }
.page-hero h1 { margin:0; font-size:clamp(56px,7.5vw,118px); line-height:1.12; letter-spacing:-.06em; }
.page-hero-text { width:min(520px,70vw); margin:38px 0 0 auto; line-height:2; }
.page-hero-orbit { position:absolute; width:58vw; height:33vw; right:-13vw; top:70px; border:70px solid var(--soft); border-radius:50%; transform:rotate(-17deg); }
.message-section,.profile-section,.contact-section { display:grid; grid-template-columns:.72fr 1.28fr; gap:9vw; padding:clamp(90px,10vw,160px) clamp(20px,8vw,140px); }
.message-title h2,.profile-section h2,.contact-aside h2 { margin:0; font-size:clamp(34px,4vw,62px); line-height:1.4; letter-spacing:-.035em; }
.message-body p { margin:0 0 24px; line-height:2.15; }
.message-body .signature { margin-top:50px; text-align:right; font-weight:700; }
.company-philosophy { min-height:640px; display:grid; place-items:center; padding:100px 20px; color:#fff; background:var(--blue); text-align:center; clip-path:ellipse(95% 50% at 50% 50%); }
.company-philosophy h2 { margin:0; font-size:clamp(42px,6vw,86px); line-height:1.35; letter-spacing:-.05em; }
.company-philosophy p:last-child { max-width:680px; margin:35px auto 0; line-height:2; }
.company-philosophy .eyebrow { color:#fff; }
.strength-section { padding:clamp(90px,10vw,160px) clamp(20px,8vw,140px); }
.strength-grid { display:grid; grid-template-columns:repeat(2,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.strength-grid article { min-height:300px; padding:45px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.strength-grid span { color:var(--blue); font-size:13px; font-weight:800; }
.strength-grid h3 { margin:55px 0 18px; font-size:25px; }
.strength-grid p { line-height:2; font-size:14px; }
.profile-section { background:var(--paper); }
.profile-section dl { margin:0; }
.profile-section dl>div { display:grid; grid-template-columns:170px 1fr; padding:24px 0; border-top:1px solid var(--line); }
.profile-section dt { font-weight:800; }
.profile-section dd { margin:0; line-height:1.9; }
.profile-section dd span { display:block; }
.business-index { padding:clamp(90px,10vw,150px) clamp(20px,7vw,120px); }
.business-index-card { margin-bottom:110px; }
.business-index-card a { display:grid; grid-template-columns:1.2fr .8fr; align-items:center; gap:6vw; }
.business-index-card:nth-child(even) .index-image { order:2; }
.index-image { position:relative; aspect-ratio:16/10; overflow:hidden; }
.index-image img { transition:transform 1s; }
.business-index-card:hover img { transform:scale(1.04); }
.index-image span { position:absolute; left:24px; top:15px; color:#fff; font-size:clamp(70px,10vw,150px); line-height:1; font-weight:800; opacity:.82; }
.index-copy>p { color:var(--blue); font-weight:800; }
.index-copy h2 { margin:26px 0 60px; font-size:clamp(30px,4vw,58px); line-height:1.35; }
.index-meta { display:flex; justify-content:space-between; align-items:center; padding:18px 0; border-top:1px solid var(--line); font-size:13px; font-weight:800; }
.detail-hero { position:relative; height:min(90vh,900px); color:#fff; }
.detail-shade { position:absolute; inset:0; background:linear-gradient(0deg,rgba(6,26,33,.8),rgba(6,26,33,.05) 65%); }
.detail-copy { position:absolute; z-index:2; left:clamp(20px,7vw,120px); right:clamp(20px,7vw,120px); bottom:70px; }
.detail-copy>span { float:right; font-size:clamp(80px,13vw,210px); line-height:.7; font-weight:800; opacity:.65; }
.detail-copy>p { color:#b8edf9; font-size:13px; font-weight:800; }
.detail-copy h1 { width:min(800px,80%); margin:10px 0 22px; font-size:clamp(38px,5.5vw,82px); line-height:1.18; letter-spacing:-.05em; }
.detail-copy strong { font-size:17px; }
.detail-body { display:grid; grid-template-columns:.9fr 1.1fr; gap:10vw; padding:clamp(100px,12vw,180px) clamp(20px,9vw,160px); }
.detail-intro h2 { margin:0; font-size:clamp(32px,4vw,58px); line-height:1.5; }
.detail-text p { margin:0 0 25px; line-height:2.2; }
.detail-video { position:relative; height:min(65vw,720px); margin:0 clamp(20px,5vw,90px); overflow:hidden; }
.detail-video span { position:absolute; left:20px; bottom:20px; padding:10px 14px; color:#fff; background:var(--blue); font-size:12px; font-weight:800; }
.service-points { padding:clamp(90px,10vw,150px) clamp(20px,9vw,160px); background:var(--paper); }
.service-points>div { display:grid; grid-template-columns:repeat(2,1fr); border-left:1px solid var(--line); border-top:1px solid var(--line); }
.service-points article { min-height:180px; padding:34px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.service-points article span { color:var(--blue); font-weight:800; }
.service-points article h3 { margin:55px 0 0; font-size:21px; }
.detail-navigation { display:flex; justify-content:space-between; gap:30px; padding:60px clamp(20px,9vw,160px); }
.detail-navigation a { display:flex; align-items:center; gap:12px; font-weight:800; font-size:13px; }
.news-list { padding:clamp(90px,10vw,150px) clamp(20px,14vw,240px); }
.news-list article { padding:45px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.news-list time { margin-right:25px; font-size:13px; }
.news-list span { display:inline-block; padding:6px 10px; color:var(--blue); background:var(--soft); font-size:11px; font-weight:800; }
.news-list h2 { margin:30px 0 18px; font-size:clamp(24px,3vw,42px); line-height:1.5; }
.news-list p { max-width:800px; line-height:2; }
.privacy-hero { min-height:560px; }
.privacy-content { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 clamp(70px,8vw,130px); width:min(1060px,calc(100% - 80px)); margin:0 auto; padding:clamp(90px,10vw,150px) 0; }
.privacy-content article { padding:34px 0 38px; border-top:1px solid var(--line); }
.privacy-content h2 { margin:0 0 18px; font-size:20px; line-height:1.6; }
.privacy-content p { margin:0; color:#556870; font-size:14px; line-height:2; }
.privacy-content a { color:#087da1; text-decoration:underline; text-underline-offset:4px; }
.contact-section { align-items:start; }
.contact-aside .phone { display:block; margin:45px 0 12px; color:var(--blue); font-size:clamp(30px,4vw,52px); font-weight:800; letter-spacing:-.03em; }
.contact-aside>p:not(.eyebrow) { color:#65747a; font-size:12px; }
.contact-aside dl { margin-top:55px; }
.contact-aside dl>div { padding:18px 0; border-top:1px solid var(--line); }
.contact-aside dt { margin-bottom:8px; color:#65747a; font-size:12px; }
.contact-aside dd { margin:0; font-weight:700; }
.contact-form { display:grid; gap:28px; padding:48px; background:var(--paper); }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.contact-form label { display:grid; gap:10px; font-size:13px; font-weight:800; }
.contact-form label>span { display:inline-block; width:max-content; margin-left:8px; padding:2px 6px; color:#fff; background:var(--blue); font-size:9px; }
.contact-form input,.contact-form select,.contact-form textarea { width:100%; border:0; border-bottom:1px solid #9aabae; background:transparent; padding:13px 4px; outline:none; }
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus { border-color:var(--blue); }
.contact-form .agreement { display:flex; grid-template-columns:auto 1fr; align-items:center; font-size:12px; font-weight:500; }
.contact-form .agreement input { width:18px; height:18px; }
.contact-form button { display:flex; align-items:center; justify-content:space-between; width:100%; padding:20px 24px; border:0; color:#fff; background:var(--blue); font-weight:800; cursor:pointer; transition:.3s; }
.contact-form button:hover { background:var(--ink); }
.contact-form button:disabled { opacity:.4; cursor:not-allowed; }
@media (max-width:900px) {
  .site-header { height:72px; padding-right:14px; } .brand img { width:140px; height:50px; } .header-actions { display:none; } .menu-button { position:relative; z-index:2; display:flex; }
  .mobile-menu { position:fixed; inset:0; z-index:49; padding-top:72px; display:block; color:#fff; background:linear-gradient(155deg,#091b27 0%,#0a2431 68%,#0d3544 100%); transform:translateY(-105%); visibility:hidden; transition:transform .58s cubic-bezier(.76,0,.24,1),visibility 0s .58s; overflow:hidden; }
  .mobile-menu::after { content:""; position:absolute; right:-58px; bottom:-28px; width:300px; height:170px; background:url("assets/fukuda-logo.png") center/contain no-repeat; filter:brightness(0) invert(1); opacity:.035; pointer-events:none; }
  .mobile-menu.open { transform:none; visibility:visible; transition-delay:0s; }
  .mobile-menu-inner { position:relative; z-index:1; display:flex; flex-direction:column; justify-content:flex-start; width:min(100% - 48px,440px); min-height:calc(100dvh - 72px); margin:0 auto; padding:32px 0 28px; overflow-y:auto; }
  .mobile-menu-label { margin:0 0 18px; color:rgba(255,255,255,.44); font-family:Arial,"Helvetica Neue",sans-serif; font-size:11px; font-weight:700; letter-spacing:.24em; }
  .mobile-menu nav { display:grid; width:100%; border-top:1px solid rgba(255,255,255,.13); }
  .mobile-menu nav a { position:relative; display:flex; align-items:center; min-height:54px; padding:14px 4px; border-bottom:1px solid rgba(255,255,255,.13); color:rgba(255,255,255,.88); font-size:clamp(18px,4.8vw,22px); font-weight:600; line-height:1.35; letter-spacing:.075em; opacity:0; transform:translateY(16px); transition:color .3s ease,opacity .42s ease,transform .48s cubic-bezier(.16,1,.3,1); }
  .mobile-menu nav a::after { content:""; position:absolute; right:5px; width:18px; height:1px; background:rgba(255,255,255,.32); transition:width .3s ease,background-color .3s ease; }
  .mobile-menu nav a.active { color:#67cce3; }
  .mobile-menu nav a.active::after { width:30px; background:var(--blue); }
  .mobile-menu.open nav a { opacity:1; transform:none; }
  .mobile-menu.open nav a:nth-child(1) { transition-delay:.16s; }
  .mobile-menu.open nav a:nth-child(2) { transition-delay:.2s; }
  .mobile-menu.open nav a:nth-child(3) { transition-delay:.24s; }
  .mobile-menu.open nav a:nth-child(4) { transition-delay:.28s; }
  .mobile-menu.open nav a:nth-child(5) { transition-delay:.32s; }
  .mobile-phone-link { display:grid; grid-template-columns:46px 1fr; gap:14px; align-items:center; width:100%; margin-top:26px; padding:14px 16px; border:1px solid rgba(255,255,255,.15); border-radius:16px; background:rgba(255,255,255,.075); box-shadow:inset 0 1px 0 rgba(255,255,255,.06); opacity:0; transform:translateY(18px); transition:background-color .3s ease,border-color .3s ease,opacity .45s .34s ease,transform .5s .34s cubic-bezier(.16,1,.3,1); }
  .mobile-menu.open .mobile-phone-link { opacity:1; transform:none; }
  .mobile-phone-icon { display:grid; place-items:center; width:46px; height:46px; border-radius:50%; background:var(--blue); }
  .mobile-phone-icon img { width:20px; height:20px; object-fit:contain; filter:brightness(0) invert(1); }
  .mobile-phone-copy { display:flex; min-width:0; flex-direction:column; gap:5px; }
  .mobile-phone-copy small { color:rgba(255,255,255,.58); font-size:11px; line-height:1.3; letter-spacing:.055em; }
  .mobile-phone-copy strong { color:#63c5dd; font-family:Arial,"Helvetica Neue",sans-serif; font-size:21px; font-weight:400; line-height:1; letter-spacing:.055em; white-space:nowrap; }
  .home-hero { padding-top:72px; }
  .hero-collage { height:calc(100svh - 72px); min-height:560px; grid-template-columns:1.1fr .9fr; grid-template-rows:1.3fr .8fr .9fr; }
  .hero-tile-a { grid-column:2; grid-row:3; } .hero-tile-b { grid-column:2; grid-row:1; } .hero-tile-c { grid-column:2; grid-row:2; } .hero-tile-d { grid-column:1; grid-row:3; } .hero-tile-e { grid-column:1; grid-row:1/3; }
  .intro-section,.message-section,.profile-section,.contact-section,.detail-body { grid-template-columns:1fr; }
  .intro-section { width:calc(100% - 56px); column-gap:0; row-gap:22px; }
  .section-marker b { display:none; }
  .intro-copy { grid-template-columns:1fr; gap:28px; padding-top:0; }
  .intro-lead { height:auto; writing-mode:horizontal-tb; text-orientation:mixed; line-height:1.65; letter-spacing:-.018em; }
  .intro-copy>div { width:100%; margin:0; padding:28px 0 0; border-top:1px solid rgba(17,149,189,.3); border-left:0; }
  .about-column,.world-simple-content { grid-column:1; }
  .world-map-watermark { width:min(100%,420px); max-width:100%; margin:0 0 0 -8px; opacity:.12; }
  .world-connect-section { min-height:0; padding-bottom:120px; }
  .business-grid { grid-template-columns:1fr; }
  .business-grid-backgrounds { display:none; }
  .business-grid.is-hovering .business-card>a>img { opacity:.68; }
  .business-grid.is-hovering .business-card.is-passive .business-card-copy { opacity:1; }
  .business-grid.is-hovering .business-card.is-active .business-card-copy { background:transparent; }
  .business-card { min-height:clamp(300px,62vw,430px); }
  .business-heading { grid-template-columns:1fr; gap:30px; width:calc(100% - 56px); min-height:0; }
  .business-introduction { justify-self:start; max-width:620px; padding-top:0; text-align:left; }
  .business-introduction p { white-space:normal; }
  .vision-section { height:auto; min-height:620px; }
  .vision-layout { grid-template-columns:1fr; gap:36px; width:calc(100% - 56px); height:auto; min-height:620px; padding:62px 0; }
  .vision-contact { width:min(560px,100%); }
  .news-heading { grid-template-columns:1fr; gap:30px; width:calc(100% - 56px); min-height:0; }
  .news-introduction { justify-self:start; padding-top:0; padding-left:0; text-align:left; }
  .news-introduction-ja { white-space:normal; }
  .home-news-list { grid-template-columns:1fr; width:calc(100% - 56px); }
  .home-news-item:nth-child(odd) { border-right:0; }
  .home-news-item:last-child { border-bottom:1px solid rgba(18,37,44,.17); }
  .footer-main { grid-template-columns:1fr 1fr; }
  .footer-brand { grid-column:1/3; }
  .footer-links { grid-column:2; grid-row:2; }
  .page-hero { min-height:570px; padding-top:150px; }
  .business-index-card a { grid-template-columns:1fr; } .business-index-card:nth-child(even) .index-image { order:0; }
  .privacy-content { grid-template-columns:1fr; width:calc(100% - 56px); }
}
@media (max-width:600px) {
  .intro-section { width:calc(100% - 40px); row-gap:0; padding-top:80px; padding-bottom:104px; }
  .section-title { min-height:0; padding-top:0; }
  .section-title h2 { font-size:50px; }
  .section-title p { margin-top:20px; font-size:18px; }
  .section-title>span { width:34px; margin-top:22px; }
  .intro-lead { margin:0 0 28px; font-size:clamp(24px,7vw,28px); line-height:1.7; letter-spacing:0; }
  .intro-break-mobile { display:none; }
  .intro-copy { gap:0; }
  .intro-copy>div { margin-left:0; padding-top:24px; }
  .intro-copy>div p { margin-bottom:16px; font-size:14px; line-height:1.95; }
  .intro-copy .text-link { margin-top:14px; }
  .world-map-watermark { width:100%; margin:28px 0 36px -4px; opacity:.1; }
  .world-simple-content .intro-lead { position:relative; z-index:2; margin:-210px 0 82px; }
  .business-heading { width:calc(100% - 40px); gap:0; padding:72px 0 48px; }
  .business-introduction,.news-introduction { display:none; }
  .business-introduction p { font-size:15px; line-height:1.75; }
  .business-introduction a { margin-top:18px; }
  .business-card { min-height:clamp(285px,76vw,330px); }
  .business-card.reveal { opacity:0; transform:translateY(64px) scale(.95); transition:opacity 1s ease,transform 1.05s cubic-bezier(.16,1,.3,1); }
  .business-card.reveal.is-visible { opacity:1; transform:none; }
  .business-card.reveal>a>img { transform:scale(1.12); transition-duration:1.35s; }
  .business-card.reveal.is-visible>a>img { transform:scale(1.015); }
  .business-card-copy { padding:28px 20px; }
  .business-card.reveal .business-card-copy { opacity:0; transform:translateY(22px); transition:opacity .78s .2s ease,transform .82s .2s cubic-bezier(.16,1,.3,1); }
  .business-card.reveal.is-visible .business-card-copy { opacity:1; transform:none; }
  .business-card-copy small { margin-bottom:14px; font-size:14px; }
  .business-card-copy strong { font-size:20px; line-height:1.5; }
  .business-card-copy em { margin-top:12px; font-size:13px; line-height:1.65; }
  .business-card[data-business-card="1"] .business-card-copy strong,.business-card[data-business-card="3"] .business-card-copy strong { white-space:normal; }
  .news-heading { width:calc(100% - 40px); gap:0; padding:72px 0 48px; }
  .news-introduction-ja { font-size:15px; line-height:1.75; }
  .news-introduction a { margin-top:18px; }
  .home-news-list { width:calc(100% - 40px); padding-bottom:76px; }
  .home-news-item { grid-template-columns:minmax(0,1fr) 30px; grid-template-rows:auto auto; gap:10px 12px; min-height:0; padding:24px 2px 26px; }
  .home-news-meta { flex-wrap:wrap; gap:10px; }
  .home-news-meta { grid-column:1/3; }
  .home-news-content { gap:8px; }
  .home-news-content b { font-size:16px; line-height:1.65; }
  .home-news-content small { font-size:13px; line-height:1.75; }
  .home-news-arrow { grid-column:2; grid-row:2; width:30px; height:auto; font-size:22px; }
  .home-news-item::before { top:24px; bottom:26px; }
  .vision-section { height:auto; min-height:0; }
  .vision-section>video { object-position:58% center; }
  .vision-overlay { background:rgba(9,27,39,.64); }
  .vision-layout { gap:34px; width:calc(100% - 40px); min-height:0; padding:68px 0 72px; }
  .vision-promo-label { margin-bottom:22px; font-size:11px; }
  .vision-promo h2 { font-size:clamp(24px,7vw,29px); line-height:1.52; }
  .vision-promo-more { margin-top:26px; }
  .vision-contact { width:100%; filter:drop-shadow(0 20px 34px rgba(9,27,39,.24)); }
  .vision-contact-label,.vision-contact-icon,.vision-contact-tel { background:rgba(247,251,252,.88); }
  .vision-contact-form { height:64px; }
  .vision-contact-label { font-size:15px; }
  .vision-contact-icon { flex-basis:64px; width:64px; height:64px; }
  .vision-contact-icon img { width:21px; height:20px; }
  .vision-contact-icon-hover { left:-67px; }
  .vision-contact-form:hover .vision-contact-label,.vision-contact-form:hover .vision-contact-icon-base,.vision-contact-form:hover .vision-contact-icon-hover { transform:none; }
  .vision-contact-form:hover .vision-contact-text-base { opacity:1; transform:none; }
  .vision-contact-form:hover .vision-contact-text-hover { opacity:0; transform:translateY(100%); }
  .vision-contact-tel { min-height:102px; padding:17px 14px; }
  .vision-contact-number img { width:21px; height:21px; }
  .vision-contact-number b { font-size:28px; }
  .vision-contact-time { margin-top:10px; font-size:11px; }
  .strength-grid,.service-points>div { grid-template-columns:1fr; } .strength-grid article { min-height:240px; padding:30px; } .profile-section dl>div { grid-template-columns:1fr; gap:10px; }
  .footer { padding:54px 20px 22px; }
  .footer-main { grid-template-columns:1fr; gap:38px; }
  .footer-brand,.footer-links { grid-column:auto; grid-row:auto; }
  .footer-brand { text-align:center; }
  .footer-brand img { margin:0 auto; }
  .footer-brand p { margin-top:18px; text-align:center; }
  .footer-links { display:none; }
  .footer-offices address { grid-template-columns:100px 1fr; }
  .footer-legal { align-items:flex-start; flex-direction:column-reverse; gap:14px; margin-top:48px; }
  .detail-copy>span { float:none; position:absolute; right:0; top:-80px; } .detail-copy h1 { width:100%; font-size:38px; } .detail-navigation { flex-direction:column; }
  .privacy-content { width:calc(100% - 40px); padding:76px 0; }
  .form-row { grid-template-columns:1fr; } .contact-form { padding:28px 20px; }
}
@media (prefers-reduced-motion:reduce) { html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none;transition-delay:0s}.hero-tile img,.hero-tile video,.business-card img,.home-news-item,.home-news-item::before,.home-news-arrow,.header-phone,.header-phone img,.vision-contact-label,.vision-contact-icon,.vision-contact-text-base,.vision-contact-text-hover{transition:none}.header-phone:hover img{transform:none}.snow-canvas{display:none}.vision-contact-form:hover .vision-contact-label,.vision-contact-form:hover .vision-contact-icon-base,.vision-contact-form:hover .vision-contact-icon-hover{transform:none}.vision-contact-form:hover .vision-contact-text-base{opacity:1;transform:none}.vision-contact-form:hover .vision-contact-text-hover{opacity:0;transform:translateY(100%)} }
@media (prefers-reduced-motion:reduce) { .vision-promo-more::before { transition:none; } }
@media (prefers-reduced-motion:reduce) { .section-title h1.is-letter-ready .title-initial,.section-title h1.is-letter-ready .title-word-rest,.section-title h1.is-letter-animated .title-initial,.section-title h1.is-letter-animated .title-word-rest,.section-title h2.is-letter-ready .title-initial,.section-title h2.is-letter-ready .title-word-rest,.section-title h2.is-letter-animated .title-initial,.section-title h2.is-letter-animated .title-word-rest { animation:none; opacity:1; clip-path:none; transform:none; } }
@media (prefers-reduced-motion:reduce) { .hero-tag { transition:none; } .hero-tag:hover { transform:none; } }
@media (prefers-reduced-motion:reduce) { .business-card.reveal,.business-card.reveal>a>img,.business-card.reveal .business-card-copy { opacity:1; transform:none; transition:none; } }
@media (prefers-reduced-motion:reduce) { .mobile-menu,.mobile-menu nav a,.mobile-phone-link { transition:none; } .mobile-menu.open nav a,.mobile-menu.open .mobile-phone-link { opacity:1; transform:none; } }

/* Company page — aligned with the home page visual system */
.company-page { background:#fff; }
.company-hero { position:relative; height:clamp(420px,34vw,500px); padding-top:80px; color:#fff; background:var(--ink); overflow:hidden; }
.company-hero-copy { position:absolute; z-index:2; inset:80px 0 0; display:flex; align-items:center; width:min(1280px,calc(100% - 80px)); margin:0 auto; pointer-events:none; }
.company-hero-map { position:absolute; z-index:-1; left:-14%; bottom:-24%; width:92%; height:auto; object-fit:contain; opacity:.075; filter:brightness(0) invert(1); pointer-events:none; }
.company-title-block { min-height:0; padding-top:0; text-shadow:0 3px 24px rgba(0,0,0,.68); }
.company-title-block h2 { font-size:clamp(42px,4vw,58px); }
.company-title-block p { margin-top:20px; font-size:clamp(18px,1.45vw,22px); }
.company-title-block>span { margin-top:24px; background:var(--blue); }
.company-hero-statement { margin:42px 0 58px; }
.company-hero-label { margin:0 0 22px; color:var(--blue); font-family:Georgia,"Times New Roman",serif; font-size:14px; letter-spacing:.16em; }
.company-hero-statement h1 { margin:0; font-size:clamp(42px,4.6vw,72px); font-weight:700; line-height:1.34; letter-spacing:-.045em; }
.company-hero-statement>p:last-child { max-width:580px; margin:30px 0 0; color:rgba(255,255,255,.72); font-size:15px; line-height:2.05; }
.company-hero-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; margin:0; border-top:1px solid rgba(255,255,255,.19); }
.company-hero-facts>div { padding:20px 18px 0 0; }
.company-hero-facts dt { margin-bottom:8px; color:rgba(255,255,255,.45); font-family:Georgia,"Times New Roman",serif; font-size:13px; letter-spacing:.08em; }
.company-hero-facts dd { margin:0; color:rgba(255,255,255,.9); font-size:14px; line-height:1.5; }
.company-hero-visual { position:absolute; inset:80px 0 0; min-width:0; margin:0; overflow:hidden; }
.company-hero-visual::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(9,27,39,.82) 0%,rgba(9,27,39,.52) 32%,rgba(9,27,39,.08) 68%,rgba(9,27,39,.12)); pointer-events:none; }
.company-hero-visual img { object-position:center center; }
.company-hero-visual img { transition:transform 1.8s cubic-bezier(.2,.7,.2,1); }
.company-hero:hover .company-hero-visual img { transform:scale(1.025); }
.company-hero-visual figcaption { position:absolute; z-index:2; left:clamp(26px,4vw,64px); right:clamp(26px,4vw,64px); bottom:44px; display:flex; align-items:flex-end; justify-content:space-between; gap:24px; padding-top:18px; border-top:1px solid rgba(255,255,255,.45); }
.company-hero-visual figcaption span { font-family:Georgia,"Times New Roman",serif; font-size:20px; }
.company-hero-visual figcaption small { color:rgba(255,255,255,.68); font-size:12px; letter-spacing:.06em; }

.company-message { display:grid; grid-template-columns:minmax(230px,.68fr) minmax(260px,.72fr) minmax(360px,1.1fr); gap:clamp(44px,6vw,100px); width:min(1280px,calc(100% - 80px)); margin:0 auto; padding:clamp(110px,12vw,180px) 0; }
.company-section-heading { min-width:0; }
.company-message-lead { padding-top:24px; border-left:1px solid var(--line); }
.company-message-lead h2 { margin:0 0 0 clamp(22px,3vw,48px); font-size:clamp(30px,3vw,46px); line-height:1.62; letter-spacing:-.035em; }
.company-message-body { padding-top:22px; }
.company-message-body>p { margin:0 0 25px; color:#364a52; font-size:15px; line-height:2.15; }
.company-signature { display:flex; align-items:baseline; justify-content:flex-end; gap:18px; margin-top:46px!important; color:var(--ink)!important; }
.company-signature small { color:#74848a; font-size:12px; font-weight:400; }
.company-signature strong { font-size:17px; letter-spacing:.1em; }

.company-mission { position:relative; isolation:isolate; overflow:hidden; color:#fff; background:var(--ink); }
.company-mission::before { content:""; position:absolute; inset:0 auto 0 0; width:7px; background:var(--blue); }
.company-mission-map { position:absolute; z-index:-1; right:-7%; bottom:-30%; width:min(62vw,900px); height:auto; object-fit:contain; opacity:.07; filter:brightness(0) invert(1); pointer-events:none; }
.company-mission-inner { display:grid; grid-template-columns:.72fr 1.28fr; align-items:center; gap:clamp(60px,9vw,150px); width:min(1280px,calc(100% - 80px)); min-height:650px; margin:0 auto; padding:100px 0; }
.company-mission-copy { max-width:760px; padding-left:clamp(0px,3vw,44px); border-left:1px solid rgba(255,255,255,.16); }
.company-mission-en { margin:0 0 30px; color:var(--blue); font-family:Georgia,"Times New Roman",serif; font-size:15px; letter-spacing:.08em; }
.company-mission-copy h2 { margin:0; font-size:clamp(38px,4.5vw,68px); line-height:1.45; letter-spacing:-.045em; }
.company-mission-copy>p:last-child { max-width:660px; margin:38px 0 0; color:rgba(255,255,255,.7); font-size:15px; line-height:2.1; }

.company-strengths { padding:clamp(110px,11vw,170px) 0; }
.company-strengths-heading { display:grid; grid-template-columns:.8fr 1.2fr; align-items:end; gap:clamp(60px,9vw,140px); width:min(1280px,calc(100% - 80px)); margin:0 auto 76px; }
.company-strengths-heading>p { max-width:620px; margin:0 0 16px auto; color:#566970; font-size:15px; line-height:2; }
.company-strength-list { width:min(1280px,calc(100% - 80px)); margin:0 auto; border-top:1px solid var(--line); }
.company-strength-list article { position:relative; display:grid; grid-template-columns:90px minmax(260px,.82fr) minmax(360px,1.18fr); align-items:center; gap:clamp(24px,5vw,82px); min-height:150px; padding:28px 8px; border-bottom:1px solid var(--line); overflow:hidden; }
.company-strength-list article::before { content:""; position:absolute; inset:0 auto 0 0; width:3px; background:var(--blue); transform:scaleY(0); transform-origin:bottom; transition:transform .38s cubic-bezier(.16,1,.3,1); }
.company-strength-list article:hover::before { transform:scaleY(1); }
.company-strength-list article>span { color:var(--blue); font-family:Georgia,"Times New Roman",serif; font-size:15px; }
.company-strength-list h3 { margin:0; font-size:clamp(21px,2vw,28px); letter-spacing:.02em; }
.company-strength-list p { margin:0; color:#566970; font-size:14px; line-height:1.95; }

.company-profile { display:grid; grid-template-columns:.72fr 1.28fr; gap:clamp(70px,9vw,150px); padding:clamp(110px,11vw,170px) max(40px,calc((100% - 1280px)/2)); background:#f3f7f8; }
.company-profile-heading { align-self:start; position:sticky; top:120px; }
.company-profile-heading>p { max-width:330px; margin:26px 0 0; color:#687a81; font-size:14px; line-height:1.9; }
.company-profile-list { margin:0; border-top:1px solid rgba(9,27,39,.19); }
.company-profile-list>div { display:grid; grid-template-columns:170px 1fr; gap:28px; padding:23px 4px; border-bottom:1px solid rgba(9,27,39,.14); }
.company-profile-list dt { color:#5d7077; font-size:13px; font-weight:700; }
.company-profile-list dd { margin:0; font-size:15px; line-height:1.9; }
.company-profile-list dd span { display:block; }
.company-profile-list a { text-underline-offset:5px; }
.company-profile-list a:hover { color:var(--blue); text-decoration:underline; }

/* Company content — restrained corporate typography */
.company-content { position:relative; width:100%; margin:0; padding:0; }
.company-section-nav { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); width:min(1180px,calc(100% - 80px)); margin:54px auto 0; border-top:1px solid rgba(9,27,39,.14); border-bottom:1px solid rgba(9,27,39,.14); }
.company-section-nav a { position:relative; display:flex; align-items:center; justify-content:space-between; min-height:68px; padding:0 22px; font-size:15px; font-weight:700; letter-spacing:.045em; transition:color .3s ease,background-color .3s ease; }
.company-section-nav a+a { border-left:1px solid rgba(9,27,39,.12); }
.company-section-nav b { display:grid; flex:0 0 28px; place-items:center; width:28px; height:28px; border-radius:50%; color:#fff; background:var(--blue); font-family:Arial,"Helvetica Neue",sans-serif; font-size:14px; font-weight:400; line-height:1; transition:transform .35s cubic-bezier(.16,1,.3,1); }
.company-section-nav a:hover,.company-section-nav a:focus-visible { color:var(--blue); background:rgba(17,149,189,.045); }
.company-section-nav a:hover b,.company-section-nav a:focus-visible b { transform:translateY(4px); }
.company-section-nav a:focus-visible { outline:2px solid var(--blue); outline-offset:3px; }
.company-content-section { scroll-margin-top:105px; }
.company-content-section { position:relative; display:grid; grid-template-columns:220px minmax(0,1fr); gap:clamp(55px,8vw,120px); padding:110px max(40px,calc((100vw - 1180px)/2)) 140px; border:0; }
.company-content-heading { position:relative; z-index:2; align-self:start; }
.company-content-heading p { margin:0 0 10px; color:var(--blue); font-family:Georgia,"Times New Roman",serif; font-size:15px; letter-spacing:.06em; }
.company-content-heading h2 { margin:0; font-size:25px; font-weight:700; line-height:1.45; letter-spacing:.04em; }
.company-content-heading::after { content:""; display:block; width:34px; height:1px; margin-top:24px; background:var(--blue); }
.company-content-body { position:relative; z-index:2; max-width:790px; }
.company-content-body>p { margin:0 0 22px; color:#354a52; font-size:15px; line-height:2.05; }
.company-name-block { display:flex; align-items:baseline; justify-content:flex-end; gap:28px; margin:42px 0 0; padding:0; border:0; }
.company-name-block strong { font-size:18px; letter-spacing:.08em; }
.company-name-block span { color:#5e7077; font-size:14px; }
.company-about { padding-top:110px; padding-bottom:170px; background:#fff; }
.company-about .company-content-heading::after { display:none; }
.company-strength-section { isolation:isolate; grid-template-columns:1fr; gap:54px; margin:0; padding-top:45px; padding-bottom:130px; background:#edf5f7; }
.company-strength-section::before { content:""; position:absolute; z-index:0; left:0; right:0; top:-126px; height:128px; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 160' preserveAspectRatio='none'%3E%3Cpath fill='%23edf5f7' d='M0 118C118 116 154 88 235 90C340 92 360 24 460 28C555 30 558 104 642 94C718 85 740 50 812 57C896 65 884 117 975 111C1090 104 1120 82 1217 92C1320 100 1338 112 1440 104V160H0Z'/%3E%3C/svg%3E") center bottom/100% 100% no-repeat; pointer-events:none; }
.company-strength-section .company-content-heading { width:min(1180px,100%); }
.company-strength-cards { position:relative; z-index:2; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; background:transparent; }
.company-strength-cards article { position:relative; min-height:310px; padding:30px 38px 38px; border:1px solid rgba(17,149,189,.1); border-radius:18px; background:rgba(255,255,255,.9); box-shadow:0 16px 42px rgba(35,91,108,.055); overflow:hidden; transition:border-color .35s ease,box-shadow .35s ease,transform .35s cubic-bezier(.16,1,.3,1); }
.company-strength-cards article::after { content:""; position:absolute; top:-54px; right:-52px; width:148px; height:148px; border-radius:48% 52% 58% 42%; background:rgba(17,149,189,.055); transform:rotate(-14deg); pointer-events:none; }
.company-strength-cards article:hover { z-index:1; border-color:rgba(17,149,189,.24); box-shadow:0 23px 54px rgba(35,91,108,.1); transform:translateY(-5px); }
.company-strength-card-top { position:relative; z-index:1; display:flex; align-items:center; justify-content:space-between; min-height:66px; margin-bottom:27px; }
.company-strength-kicker { color:var(--blue); font-family:Georgia,"Times New Roman",serif; font-size:13px; letter-spacing:.08em; }
.company-strength-icon { display:grid; flex:0 0 62px; place-items:center; width:62px; height:62px; border-radius:17px; color:var(--blue); background:linear-gradient(145deg,rgba(17,149,189,.16),rgba(17,149,189,.045)); transition:transform .4s cubic-bezier(.16,1,.3,1),background-color .35s ease; }
.company-strength-icon img { display:block; width:31px; height:31px; color:inherit; filter:invert(49%) sepia(89%) saturate(712%) hue-rotate(149deg) brightness(85%) contrast(94%); }
.company-strength-cards article:hover .company-strength-icon { transform:scale(1.08) rotate(3deg); background:rgba(17,149,189,.15); }
.company-strength-cards h3 { min-height:62px; margin:0 0 18px; font-size:20px; line-height:1.55; letter-spacing:.03em; }
.company-strength-cards p { margin:0; color:#52666e; font-size:14px; line-height:2; }
.company-vision-section { isolation:isolate; margin:0; padding-top:45px; padding-bottom:130px; color:#fff; background:var(--ink); overflow:visible; }
.company-vision-section::before { content:""; position:absolute; z-index:0; left:0; right:0; top:-136px; height:138px; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 170' preserveAspectRatio='none'%3E%3Cpath fill='%23091b27' d='M0 112C92 116 132 92 220 96C310 100 345 55 430 62C510 69 534 118 620 105C710 92 730 20 830 28C930 36 922 105 1010 98C1108 90 1136 58 1224 70C1324 83 1348 112 1440 106V170H0Z'/%3E%3C/svg%3E") center bottom/100% 100% no-repeat; pointer-events:none; }
.company-vision-section::after { content:""; position:absolute; z-index:0; inset:0; background:url("assets/world-map.webp") no-repeat 90% 48%/min(58vw,820px) auto; opacity:.055; filter:brightness(0) invert(1); pointer-events:none; }
.company-vision-section .company-content-heading h2 { color:#fff; }
.company-vision-section .company-content-heading::after { background:var(--blue); }
.company-vision-section .company-content-body>p { color:rgba(255,255,255,.72); }
.company-vision-body h3 { margin:0 0 34px; font-size:clamp(24px,2.2vw,31px); font-weight:700; line-height:1.7; letter-spacing:.015em; }
.company-vision-sign { display:flex; align-items:baseline; justify-content:space-between; gap:30px; margin-top:48px; padding-top:24px; border-top:1px solid rgba(255,255,255,.2); }
.company-vision-sign strong { font-size:16px; letter-spacing:.08em; }
.company-vision-sign span { color:rgba(255,255,255,.6); font-size:14px; }
.company-overview-section { isolation:isolate; padding-top:45px; padding-bottom:150px; background:#fff; }
.company-overview-section::before { content:""; position:absolute; z-index:0; left:0; right:0; top:-104px; height:106px; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 140' preserveAspectRatio='none'%3E%3Cpath fill='%23ffffff' d='M0 95C120 100 150 76 245 80C360 85 382 28 482 36C575 44 588 100 680 88C780 75 800 48 900 54C1002 60 1020 96 1112 90C1232 82 1300 66 1440 78V140H0Z'/%3E%3C/svg%3E") center bottom/100% 100% no-repeat; pointer-events:none; }
.company-overview-body { position:relative; z-index:2; max-width:820px; }
.company-overview-list { margin:0; border-top:1px solid rgba(9,27,39,.18); }
.company-overview-list>div { display:grid; grid-template-columns:170px minmax(0,1fr); gap:28px; padding:21px 2px; border-bottom:1px solid rgba(9,27,39,.13); }
.company-overview-list dt { color:#52666e; font-size:14px; font-weight:700; line-height:1.8; letter-spacing:.045em; }
.company-overview-list dd { margin:0; font-size:15px; line-height:1.85; letter-spacing:.03em; }
.company-overview-list dd span { display:block; }
.company-overview-list a { transition:color .3s ease; }
.company-overview-list a:hover { color:var(--blue); }
.company-overview-pending { color:#7d8d93; }
.company-overview-business dd { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px 28px; }


@media (max-width:1050px) {
  .company-hero-copy { width:calc(100% - 56px); }
  .company-message { grid-template-columns:.85fr 1.15fr; }
  .company-message-body { grid-column:2; }
  .company-mission-inner,.company-profile { grid-template-columns:1fr; }
  .company-mission-copy { padding:48px 0 0; border-top:1px solid rgba(255,255,255,.16); border-left:0; }
  .company-profile-heading { position:static; }
  .company-strength-list article { grid-template-columns:60px minmax(230px,.8fr) 1.2fr; }
  .company-content-section { grid-template-columns:180px minmax(0,1fr); gap:55px; }
  .company-strength-section { grid-template-columns:1fr; }
}

@media (max-width:700px) {
  .company-hero { height:350px; padding-top:72px; }
  .company-hero-copy { inset:72px 0 0; width:calc(100% - 40px); }
  .company-title-block { min-height:0; }
  .company-title-block h2 { font-size:40px; }
  .company-hero-statement { margin:30px 0 44px; }
  .company-hero-statement h1 { font-size:clamp(35px,10.2vw,46px); line-height:1.42; }
  .company-hero-statement>p:last-child { margin-top:24px; font-size:14px; line-height:1.95; }
  .company-hero-facts>div { padding-right:8px; }
  .company-hero-facts dt { font-size:11px; }
  .company-hero-facts dd { font-size:12px; }
  .company-hero-visual { inset:72px 0 0; }
  .company-hero-visual img { object-position:58% center; }
  .company-message { grid-template-columns:1fr; gap:32px; width:calc(100% - 40px); padding:90px 0 105px; }
  .company-message-lead { padding:0 0 0 20px; }
  .company-message-lead h2 { margin:0; font-size:30px; }
  .company-message-body { grid-column:auto; padding-top:5px; }
  .company-message-body>p { font-size:14px; line-height:2; }
  .company-mission::before { width:4px; }
  .company-mission-inner { width:calc(100% - 40px); min-height:0; padding:90px 0 105px; }
  .company-mission-copy h2 { font-size:clamp(32px,9vw,42px); }
  .company-mission-copy>p:last-child { font-size:14px; }
  .company-strengths { padding:90px 0 105px; }
  .company-strengths-heading { grid-template-columns:1fr; gap:26px; width:calc(100% - 40px); margin-bottom:52px; }
  .company-strengths-heading>p { margin:0; font-size:14px; }
  .company-strength-list { width:calc(100% - 40px); }
  .company-strength-list article { grid-template-columns:44px 1fr; gap:8px 14px; min-height:0; padding:30px 4px; }
  .company-strength-list h3 { font-size:21px; }
  .company-strength-list p { grid-column:2; font-size:14px; }
  .company-profile { grid-template-columns:1fr; gap:52px; padding:90px 20px 105px; }
  .company-profile-list>div { grid-template-columns:1fr; gap:8px; padding:20px 2px; }
  .company-profile-list dd { font-size:14px; overflow-wrap:anywhere; }
  .company-content { width:100%; padding:0; }
  .company-section-nav { grid-template-columns:1fr; width:calc(100% - 40px); margin-top:32px; }
  .company-section-nav a { min-height:58px; padding:0 12px 0 4px; font-size:14px; }
  .company-section-nav a+a { border-top:1px solid rgba(9,27,39,.12); border-left:0; }
  .company-section-nav b { width:26px; height:26px; flex-basis:26px; }
  .company-content-section { grid-template-columns:1fr; gap:36px; padding:76px 20px 100px; }
  .company-content-heading h2 { font-size:23px; }
  .company-content-body>p { font-size:14px; line-height:2; }
  .company-name-block { align-items:flex-end; flex-direction:column; gap:7px; margin:34px 0 0; }
  .company-name-block strong { font-size:18px; }
  .company-about { padding-top:76px; padding-bottom:125px; }
  .company-strength-section { width:100%; margin:0; padding:104px 20px 100px; }
  .company-strength-section::before { top:-82px; height:84px; }
  .company-strength-cards { grid-template-columns:1fr; gap:16px; }
  .company-strength-cards article { min-height:0; padding:26px 24px 30px; border-radius:16px; }
  .company-strength-card-top { min-height:54px; margin-bottom:22px; }
  .company-strength-icon { width:52px; height:52px; flex-basis:52px; border-radius:15px; }
  .company-strength-icon img { width:27px; height:27px; }
  .company-strength-cards h3 { min-height:0; font-size:19px; }
  .company-vision-section { width:100%; margin:0; padding:110px 20px 100px; }
  .company-vision-section::before { top:-90px; height:92px; }
  .company-vision-section::after { background-position:120% 38%; background-size:125% auto; }
  .company-vision-body h3 { font-size:22px; line-height:1.65; }
  .company-vision-sign { align-items:flex-start; flex-direction:column; gap:10px; }
  .company-overview-section { width:100%; margin:0; padding:96px 20px 100px; }
  .company-overview-section::before { top:-72px; height:74px; }
  .company-overview-list>div { grid-template-columns:1fr; gap:7px; padding:18px 2px; }
  .company-overview-list dd { font-size:14px; overflow-wrap:anywhere; }
  .company-overview-business dd { grid-template-columns:1fr; gap:4px; }
}

@media (prefers-reduced-motion:reduce) {
  .company-hero-visual img,.company-strength-list article::before,.company-strength-cards article,.company-strength-icon { transition:none; }
  .company-hero:hover .company-hero-visual img { transform:none; }
  .company-strength-cards article:hover,.company-strength-cards article:hover .company-strength-icon { transform:none; }
}

/* Shared inner pages: news, article, contact and privacy */
.inner-page { background:#fff; }
.inner-hero { position:relative; height:clamp(420px,34vw,500px); padding-top:80px; color:#fff; background:var(--ink); overflow:hidden; }
.inner-hero-visual { position:absolute; inset:80px 0 0; margin:0; overflow:hidden; }
.inner-hero-visual::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(9,27,39,.84) 0%,rgba(9,27,39,.52) 34%,rgba(9,27,39,.08) 68%,rgba(9,27,39,.15)); pointer-events:none; }
.inner-hero-visual img { object-position:center; transition:transform 1.8s cubic-bezier(.2,.7,.2,1); }
.inner-hero:hover .inner-hero-visual img { transform:scale(1.025); }
.inner-hero-copy { position:absolute; z-index:2; inset:80px 0 0; display:flex; align-items:center; width:min(1280px,calc(100% - 80px)); margin:0 auto; pointer-events:none; }
.inner-title-block { min-height:0; padding-top:0; text-shadow:0 3px 24px rgba(0,0,0,.68); }
.inner-title-block h1 { font-size:clamp(42px,4vw,58px); }
.contact-page .inner-title-block h1,.privacy-page .inner-title-block h1 { text-shadow:none; }
.inner-title-block p { margin-top:20px; font-size:clamp(18px,1.45vw,22px); }
.inner-title-block>span { margin-top:24px; background:var(--blue); }

.inner-section-intro { display:grid; grid-template-columns:minmax(260px,.75fr) minmax(360px,1.25fr); align-items:end; gap:clamp(60px,9vw,140px); }
.inner-section-intro>div>p,.contact-page-aside header>p,.privacy-aside>p:first-child { margin:0 0 15px; color:var(--blue); font-family:Georgia,"Times New Roman",serif; font-size:15px; letter-spacing:.06em; }
.inner-section-intro h2,.contact-page-aside h2,.privacy-aside h2 { margin:0; font-size:clamp(27px,2.6vw,38px); line-height:1.55; letter-spacing:.02em; }
.inner-section-intro>p { max-width:590px; margin:0 0 7px; color:#53666e; font-size:15px; line-height:2; }

.news-index-section { width:min(1180px,calc(100% - 80px)); margin:0 auto; padding:110px 0 150px; }
.news-index-section .inner-section-intro { display:block; }
.news-archive { margin-top:72px; border-top:1px solid rgba(9,27,39,.17); }
.news-archive-item { position:relative; display:grid; grid-template-columns:150px minmax(0,1fr) 44px; align-items:center; gap:36px; min-height:154px; padding:28px 6px; border-bottom:1px solid rgba(9,27,39,.15); transition:color .35s ease; }
.news-archive-item:focus-visible { outline:2px solid var(--blue); outline-offset:4px; }
.news-archive-item time { color:#53666e; font-family:Arial,"Helvetica Neue",sans-serif; font-size:17px; letter-spacing:.065em; }
.news-archive-copy { display:flex; flex-direction:column; gap:11px; }
.news-archive-copy strong { font-size:clamp(17px,1.5vw,21px); line-height:1.7; letter-spacing:.035em; transition:color .35s ease; }
.news-archive-copy small { color:#687980; font-size:13px; line-height:1.75; }
.news-archive-arrow { justify-self:end; color:var(--blue); font-family:Georgia,"Times New Roman",serif; font-size:25px; transition:transform .42s cubic-bezier(.16,1,.3,1); }
.news-archive-item:hover .news-archive-copy strong,.news-archive-item:focus-visible .news-archive-copy strong { color:#087da1; }
.news-archive-item:hover .news-archive-arrow,.news-archive-item:focus-visible .news-archive-arrow { transform:translateX(7px); }
.news-pagination { display:flex; align-items:center; justify-content:center; gap:12px; margin-top:58px; }
.news-pagination-pages { display:flex; align-items:center; gap:10px; }
.news-pagination button { display:grid; place-items:center; width:42px; height:42px; padding:0; border:1px solid rgba(9,27,39,.18); border-radius:50%; color:#304850; background:#fff; font-family:Arial,"Helvetica Neue",sans-serif; font-size:14px; cursor:pointer; transition:color .3s ease,border-color .3s ease,background-color .3s ease,transform .3s cubic-bezier(.16,1,.3,1); }
.news-pagination button:hover:not(:disabled),.news-pagination button:focus-visible { color:#fff; border-color:var(--blue); background:var(--blue); transform:translateY(-2px); }
.news-pagination button:focus-visible { outline:2px solid rgba(17,149,189,.35); outline-offset:3px; }
.news-pagination button.is-current { color:#fff; border-color:var(--blue); background:var(--blue); cursor:default; }
.news-pagination button:disabled { color:#a8b4b8; border-color:rgba(9,27,39,.09); background:#f5f7f7; cursor:not-allowed; }

.news-article { width:min(1100px,calc(100% - 80px)); margin:0 auto; padding:42px 0 150px; }
.breadcrumb { display:flex; flex-wrap:wrap; gap:10px; align-items:center; color:#74848a; font-size:12px; line-height:1.7; }
.breadcrumb a { transition:color .3s ease; }
.breadcrumb a:hover { color:var(--blue); }
.news-article-header { max-width:860px; padding:78px 0 70px; border-bottom:1px solid rgba(9,27,39,.17); }
.news-article-header time { color:var(--blue); font-family:Arial,"Helvetica Neue",sans-serif; font-size:13px; letter-spacing:.09em; }
.news-article-header h2 { margin:25px 0 24px; font-size:clamp(28px,2.75vw,39px); line-height:1.55; letter-spacing:.015em; }
.news-article-header p { max-width:720px; margin:0; color:#52666e; font-size:15px; line-height:2; }
.news-article-body { max-width:820px; padding-top:66px; }
.news-article-body p { margin:0 0 25px; color:#354a52; font-size:15px; line-height:2.15; }
.news-article-body h3 { margin:58px 0 24px; padding-left:20px; border-left:3px solid var(--blue); font-size:24px; line-height:1.65; letter-spacing:.025em; }
.article-back-link { display:inline-flex; align-items:center; gap:18px; margin-top:45px; color:var(--ink); font-family:Georgia,"Times New Roman",serif; font-size:15px; }
.article-back-link::before { content:""; width:32px; height:1px; background:var(--blue); transition:width .35s ease; }
.article-back-link:hover::before { width:48px; }

.contact-page-section { display:grid; grid-template-columns:minmax(300px,.78fr) minmax(480px,1.22fr); gap:clamp(70px,9vw,145px); width:min(1180px,calc(100% - 80px)); margin:0 auto; padding:110px 0 150px; }
.contact-page-aside { align-self:start; }
.contact-page-lead { max-width:440px; margin:34px 0 0; color:#52666e; font-size:14px; line-height:2; }
.contact-channels { display:grid; gap:0; margin-top:50px; border-top:1px solid rgba(9,27,39,.16); }
.contact-channels a { display:flex; flex-direction:column; gap:7px; padding:23px 2px; border-bottom:1px solid rgba(9,27,39,.14); transition:color .3s ease,padding-left .35s cubic-bezier(.16,1,.3,1); }
.contact-channels a:hover { padding-left:10px; color:var(--blue); }
.contact-channels small { color:#728289; font-family:Georgia,"Times New Roman",serif; font-size:12px; letter-spacing:.08em; }
.contact-channels strong { font-family:Arial,"Helvetica Neue",sans-serif; font-size:clamp(19px,2vw,25px); font-weight:400; line-height:1.25; letter-spacing:.035em; overflow-wrap:anywhere; }
.contact-channels span { color:#728289; font-size:11px; }
.refined-contact-form { gap:30px; padding:42px 46px 48px; border:1px solid rgba(9,27,39,.08); border-radius:18px; background:#f2f7f8; box-shadow:0 20px 54px rgba(35,91,108,.06); }
.refined-contact-form .form-note { margin:0 0 4px; color:#64767d; font-size:12px; text-align:right; }
.refined-contact-form .form-note span { margin-right:6px; color:var(--blue); font-weight:700; }
.refined-contact-form label { gap:11px; font-size:14px; }
.refined-contact-form input,.refined-contact-form select,.refined-contact-form textarea { min-height:48px; padding:13px 12px; border:1px solid rgba(9,27,39,.16); border-radius:8px; background:#fff; transition:border-color .25s ease,box-shadow .25s ease; }
.refined-contact-form textarea { min-height:180px; resize:vertical; }
.refined-contact-form input:focus,.refined-contact-form select:focus,.refined-contact-form textarea:focus { border-color:var(--blue); box-shadow:0 0 0 3px rgba(17,149,189,.12); }
.refined-contact-form .agreement { display:flex; align-items:flex-start; gap:12px; line-height:1.8; }
.refined-contact-form .agreement input { flex:0 0 18px; min-height:0; margin-top:4px; padding:0; }
.refined-contact-form .agreement>span { width:auto; margin:0; padding:0; color:#52666e; background:transparent; font-size:13px; font-weight:500; }
.refined-contact-form .agreement a { color:#087da1; text-decoration:underline; text-underline-offset:4px; }
.refined-contact-form button { min-height:64px; border-radius:999px; font-size:15px; letter-spacing:.06em; transition:background-color .3s ease,transform .3s cubic-bezier(.16,1,.3,1); }
.refined-contact-form button:not(:disabled):hover { background:#087da1; transform:translateY(-2px); }
.refined-contact-form button:focus-visible { outline:2px solid var(--blue); outline-offset:4px; }
.contact-honeypot { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.contact-form-status { margin:-10px 0 0; color:#a13f35; font-size:13px; font-weight:700; line-height:1.7; }
.contact-form-status:empty { display:none; }
body.contact-dialog-open { overflow:hidden; }
.contact-success-dialog { width:min(520px,calc(100% - 40px)); max-width:none; padding:0; border:0; border-radius:18px; color:var(--ink); background:transparent; box-shadow:0 28px 80px rgba(9,27,39,.24); }
.contact-success-dialog::backdrop { background:rgba(9,27,39,.7); backdrop-filter:blur(3px); }
.contact-success-panel { display:flex; flex-direction:column; align-items:center; padding:50px 46px 40px; border-top:5px solid var(--blue); border-radius:18px; background:#fff; text-align:center; }
.contact-success-icon { position:relative; display:block; width:66px; height:66px; margin-bottom:27px; border:3px solid var(--blue); border-radius:50%; background:var(--soft); }
.contact-success-icon::after { content:""; position:absolute; left:19px; top:16px; width:20px; height:11px; border-left:3px solid var(--blue); border-bottom:3px solid var(--blue); transform:rotate(-45deg); }
.contact-success-panel h2 { margin:0; font-size:clamp(20px,2vw,26px); line-height:1.55; letter-spacing:.025em; }
.contact-success-panel button { width:100%; min-height:54px; margin-top:32px; border:0; border-radius:999px; color:#fff; background:var(--ink); font-size:14px; font-weight:800; letter-spacing:.08em; cursor:pointer; transition:background-color .25s ease,transform .25s cubic-bezier(.16,1,.3,1); }
.contact-success-panel button:hover { background:var(--blue); transform:translateY(-2px); }
.contact-success-panel button:active { transform:translateY(1px); }
.contact-success-panel button:focus-visible { outline:3px solid rgba(17,149,189,.35); outline-offset:3px; }

.privacy-layout { display:grid; grid-template-columns:280px minmax(0,1fr); gap:clamp(70px,9vw,145px); width:min(1120px,calc(100% - 80px)); margin:0 auto; padding:110px 0 150px; }
.privacy-aside { position:sticky; top:118px; align-self:start; }
.privacy-aside h2 { font-size:32px; letter-spacing:0; }
.privacy-aside>p:nth-of-type(2) { margin:28px 0 0; color:#52666e; font-size:14px; line-height:2; }
.privacy-aside small { display:block; margin-top:35px; color:#75858b; font-size:12px; line-height:1.9; }
.privacy-articles { border-top:1px solid rgba(9,27,39,.17); }
.privacy-articles article { display:grid; grid-template-columns:210px minmax(0,1fr); gap:45px; padding:32px 0 36px; border-bottom:1px solid rgba(9,27,39,.14); }
.privacy-articles h3 { margin:0; font-size:17px; line-height:1.65; letter-spacing:.035em; }
.privacy-articles p { margin:0; color:#52666e; font-size:14px; line-height:2; }
.privacy-articles a { color:#087da1; text-decoration:underline; text-underline-offset:4px; overflow-wrap:anywhere; }

@media (max-width:900px) {
  .inner-hero-copy { width:calc(100% - 56px); }
  .inner-section-intro { grid-template-columns:1fr; gap:24px; }
  .news-archive-item { grid-template-columns:120px minmax(0,1fr) 34px; gap:24px; }
  .contact-page-section { grid-template-columns:1fr; }
  .contact-page-aside { max-width:680px; }
  .privacy-layout { grid-template-columns:1fr; gap:60px; }
  .privacy-aside { position:static; }
}

@media (max-width:600px) {
  .inner-hero { height:330px; padding-top:72px; }
  .inner-hero-visual { inset:72px 0 0; }
  .inner-hero-visual img { object-position:center; }
  .inner-hero-copy { inset:72px 0 0; width:calc(100% - 40px); }
  .inner-title-block h1 { font-size:40px; }
  .inner-title-block p { margin-top:17px; font-size:18px; }
  .inner-title-block>span { margin-top:20px; }
  .privacy-title-block h1 { font-size:36px; }
  .news-index-section { width:calc(100% - 40px); padding:76px 0 100px; }
  .inner-section-intro h2,.contact-page-aside h2,.privacy-aside h2 { font-size:27px; }
  .inner-section-intro>p { font-size:14px; }
  .news-archive { margin-top:46px; }
  .news-archive-item { grid-template-columns:minmax(0,1fr) 30px; gap:10px 12px; min-height:0; padding:24px 2px 26px; }
  .news-archive-item time { grid-column:1/3; font-size:15px; }
  .news-archive-copy { grid-column:1; gap:8px; }
  .news-archive-copy strong { font-size:16px; line-height:1.65; }
  .news-archive-copy small { font-size:13px; }
  .news-archive-arrow { grid-column:2; grid-row:2; font-size:22px; }
  .news-pagination { margin-top:42px; }
  .news-pagination button { width:38px; height:38px; font-size:13px; }
  .news-article { width:calc(100% - 40px); padding:30px 0 100px; }
  .news-article-header { padding:58px 0 52px; }
  .news-article-header h2 { font-size:24px; line-height:1.65; }
  .news-article-header p { font-size:14px; }
  .news-article-body { padding-top:48px; }
  .news-article-body p { font-size:14px; line-height:2; }
  .news-article-body h3 { margin-top:46px; font-size:21px; }
  .contact-page-section { width:calc(100% - 40px); padding:76px 0 100px; gap:50px; }
  .contact-page-lead { font-size:14px; }
  .contact-channels { margin-top:36px; }
  .refined-contact-form { gap:25px; padding:28px 20px 32px; border-radius:16px; }
  .refined-contact-form .form-note { text-align:left; }
  .contact-success-panel { padding:40px 22px 28px; }
  .contact-success-icon { width:60px; height:60px; margin-bottom:23px; }
  .contact-success-icon::after { left:17px; top:14px; }
  .contact-success-panel button { margin-top:27px; }
  .privacy-layout { width:calc(100% - 40px); padding:76px 0 100px; gap:48px; }
  .privacy-articles article { grid-template-columns:1fr; gap:12px; padding:25px 0 28px; }
  .privacy-articles h3 { font-size:17px; }
}

@media (prefers-reduced-motion:reduce) {
  .inner-hero-visual img,.news-archive-arrow,.contact-channels a,.refined-contact-form button,.contact-success-panel button { transition:none; }
  .inner-hero:hover .inner-hero-visual img,.news-archive-item:hover .news-archive-arrow,.contact-channels a:hover,.refined-contact-form button:not(:disabled):hover { transform:none; }
  .contact-success-panel button:hover,.contact-success-panel button:active { transform:none; }
}

/* Business index page */
.business-page-intro { display:grid; grid-template-columns:minmax(300px,.82fr) minmax(420px,1.18fr); gap:clamp(70px,9vw,145px); width:min(1180px,calc(100% - 80px)); margin:0 auto; padding:110px 0 175px; }
.business-page-intro-heading>p,.business-services-heading>div>p { margin:0 0 15px; color:var(--blue); font-family:Georgia,"Times New Roman",serif; font-size:15px; letter-spacing:.06em; }
.business-page-intro-heading h2 { margin:0; font-size:clamp(29px,2.55vw,36px); line-height:1.55; letter-spacing:.005em; }
.business-page-intro-copy { padding-top:25px; }
.business-page-intro-copy p { max-width:680px; margin:0 0 22px; color:#354a52; font-size:15px; line-height:2.1; }
.business-services-section { position:relative; isolation:isolate; padding:55px max(40px,calc((100vw - 1180px)/2)) 150px; background:#edf5f7; }
.business-services-section::before { content:""; position:absolute; z-index:0; left:0; right:0; top:-108px; height:110px; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 150' preserveAspectRatio='none'%3E%3Cpath fill='%23edf5f7' d='M0 106C116 108 154 84 238 88C342 92 370 36 468 40C560 44 588 106 680 94C772 82 802 48 898 55C1002 62 1020 103 1116 96C1236 88 1300 70 1440 82V150H0Z'/%3E%3C/svg%3E") center bottom/100% 100% no-repeat; pointer-events:none; }
.business-services-heading { position:relative; z-index:1; display:grid; grid-template-columns:minmax(260px,.72fr) minmax(390px,1.28fr); align-items:end; gap:clamp(60px,9vw,140px); margin-bottom:64px; }
.business-services-heading h2 { margin:0; font-size:clamp(28px,2.7vw,40px); line-height:1.5; letter-spacing:.025em; }
.business-services-heading>p { max-width:620px; margin:0 0 6px; color:#52666e; font-size:14px; line-height:2; }
.business-service-grid { position:relative; z-index:1; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.business-service-card { min-width:0; }
.business-service-card>a { display:block; height:100%; border:1px solid rgba(17,149,189,.09); border-radius:18px; background:rgba(255,255,255,.92); box-shadow:0 16px 42px rgba(35,91,108,.055); overflow:hidden; transition:border-color .35s ease,box-shadow .35s ease,transform .4s cubic-bezier(.16,1,.3,1); }
.business-service-card figure { position:relative; aspect-ratio:16/8.7; margin:0; overflow:hidden; background:#dcecef; }
.business-service-card figure::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(9,27,39,.2),rgba(9,27,39,0) 55%); pointer-events:none; }
.business-service-card figure img { transition:transform 1.1s cubic-bezier(.2,.7,.2,1),filter .45s ease; }
.business-service-copy { display:flex; min-height:295px; flex-direction:column; padding:32px 36px 34px; }
.business-service-copy small { color:var(--blue); font-family:Georgia,"Times New Roman",serif; font-size:13px; letter-spacing:.075em; }
.business-service-copy h3 { margin:18px 0 17px; font-size:clamp(21px,2vw,28px); line-height:1.55; letter-spacing:.035em; }
.business-service-copy p { margin:0; color:#52666e; font-size:14px; line-height:1.95; }
.business-service-copy>span { display:flex; align-items:center; justify-content:space-between; margin-top:auto; padding-top:26px; border-top:1px solid rgba(9,27,39,.13); font-family:Georgia,"Times New Roman",serif; font-size:15px; }
.business-service-copy>span b { color:var(--blue); font-size:22px; font-weight:400; transition:transform .35s cubic-bezier(.16,1,.3,1); }
.business-service-card>a:hover,.business-service-card>a:focus-visible { border-color:rgba(17,149,189,.24); box-shadow:0 24px 56px rgba(35,91,108,.1); transform:translateY(-5px); }
.business-service-card>a:hover figure img,.business-service-card>a:focus-visible figure img { transform:scale(1.035); }
.business-service-card>a:hover .business-service-copy>span b,.business-service-card>a:focus-visible .business-service-copy>span b { transform:translateX(7px); }
.business-service-card>a:focus-visible { outline:2px solid var(--blue); outline-offset:4px; }

@media (max-width:900px) {
  .business-page-intro { grid-template-columns:1fr; gap:34px; }
  .business-page-intro-copy { max-width:720px; padding-top:0; }
  .business-services-heading { grid-template-columns:1fr; gap:25px; }
}

@media (max-width:600px) {
  .business-page-intro { width:calc(100% - 40px); padding:76px 0 130px; gap:28px; }
  .business-page-intro-heading h2 { font-size:28px; }
  .business-page-intro-copy p { font-size:14px; line-height:2; }
  .business-services-section { padding:46px 20px 100px; }
  .business-services-section::before { top:-78px; height:80px; }
  .business-services-heading { margin-bottom:42px; }
  .business-services-heading h2 { font-size:27px; }
  .business-services-heading>p { font-size:14px; }
  .business-service-grid { grid-template-columns:1fr; gap:16px; }
  .business-service-card>a { border-radius:16px; }
  .business-service-card figure { aspect-ratio:16/9.4; }
  .business-service-copy { min-height:0; padding:26px 24px 28px; }
  .business-service-copy h3 { margin-top:15px; font-size:21px; }
  .business-service-copy p { font-size:14px; }
  .business-service-copy>span { margin-top:24px; padding-top:21px; }
}

@media (prefers-reduced-motion:reduce) {
  .business-service-card>a,.business-service-card figure img,.business-service-copy>span b { transition:none; }
  .business-service-card>a:hover,.business-service-card>a:focus-visible,.business-service-card>a:hover figure img,.business-service-card>a:focus-visible figure img,.business-service-card>a:hover .business-service-copy>span b,.business-service-card>a:focus-visible .business-service-copy>span b { transform:none; }
}

/* Business page: wide visual and overlapping editorial panel */
.business-section-nav { margin-top:42px; }
.business-page-intro { padding-bottom:110px; }
.business-groups { padding:74px max(28px,calc((100vw - 1380px)/2)) 150px; background:#d9f3f8; }
.business-group { scroll-margin-top:110px; margin:0 auto 120px; }
.business-group:last-child { margin-bottom:0; }
.business-group-visual { position:relative; height:clamp(390px,34vw,515px); margin:0; border-radius:30px 30px 0 0; background:#bcdde5; overflow:hidden; }
.business-group-visual::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(255,255,255,.02),rgba(9,27,39,.12)); pointer-events:none; }
.business-group-visual img { width:100%; height:100%; object-fit:cover; transition:transform 1.35s cubic-bezier(.2,.7,.2,1); }
.business-group:nth-child(1) .business-group-visual img { object-position:center 48%; }
.business-group:nth-child(2) .business-group-visual img { object-position:center 42%; }
.business-group:nth-child(3) .business-group-visual img { object-position:center 52%; }
.business-group:nth-child(4) .business-group-visual img { object-position:center 54%; }
.business-group:hover .business-group-visual img { transform:scale(1.018); }
.business-group-panel { position:relative; z-index:2; display:grid; grid-template-columns:minmax(0,1.18fr) minmax(270px,.82fr); gap:clamp(40px,6vw,95px); width:86%; min-height:420px; margin:-90px 0 0 auto; padding:62px clamp(48px,5.2vw,82px) 56px; border-radius:30px 0 0 0; background:#fff; box-shadow:0 28px 64px rgba(28,93,111,.08); }
.business-group:nth-child(even) .business-group-panel { margin-right:auto; margin-left:0; border-radius:0 30px 0 0; }
.business-group-copy { position:relative; z-index:2; }
.business-group-meta { display:flex; align-items:center; gap:17px; margin-bottom:38px; color:#079dce; font-family:Arial,"Helvetica Neue",sans-serif; }
.business-group-meta b { padding-right:17px; border-right:1px solid currentColor; font-size:40px; font-weight:700; line-height:1; letter-spacing:.01em; }
.business-group-meta span { font-size:12px; font-weight:700; line-height:1.45; letter-spacing:.045em; }
.business-group-copy h2 { margin:0; color:#263d47; font-size:clamp(28px,2.4vw,36px); line-height:1.48; letter-spacing:.035em; }
.business-group-lead { margin:24px 0 13px!important; color:#183640!important; font-size:16px!important; font-weight:600; line-height:1.8!important; }
.business-group-copy>p:not(.business-group-lead) { max-width:720px; margin:0; color:#53666e; font-size:14px; line-height:2; }
.business-group-services { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 22px; margin:32px 0 0; padding:0; border-top:1px solid rgba(9,27,39,.13); list-style:none; }
.business-group-services li { position:relative; padding:14px 5px 13px 19px; border-bottom:1px solid rgba(9,27,39,.1); color:#39515a; font-size:13px; line-height:1.55; }
.business-group-services li::before { content:""; position:absolute; left:1px; top:22px; width:8px; height:1px; background:#1195bd; }
.business-group-symbol { position:relative; align-self:stretch; display:grid; place-items:center; min-height:250px; overflow:hidden; }
.business-group-symbol::before,.business-group-symbol::after { content:""; position:absolute; z-index:-1; border:1px solid rgba(17,149,189,.18); border-radius:50%; }
.business-group-symbol::before { width:330px; height:145px; transform:rotate(-10deg); }
.business-group-symbol::after { width:260px; height:105px; transform:rotate(14deg); }
.business-group-symbol img { width:min(56%,190px); height:auto; filter:invert(48%) sepia(90%) saturate(1507%) hue-rotate(155deg) brightness(88%) contrast(92%); }

@media (max-width:900px) {
  .business-groups { padding-right:24px; padding-left:24px; }
  .business-group-panel { grid-template-columns:minmax(0,1fr) 200px; width:92%; padding:48px 42px 46px; }
  .business-group-symbol::before { width:240px; height:110px; }
  .business-group-symbol::after { width:190px; height:80px; }
}

@media (max-width:600px) {
  .business-section-nav { margin-top:30px; }
  .business-page-intro { padding-bottom:92px; }
  .business-groups { padding:44px 14px 96px; }
  .business-group { margin-bottom:72px; scroll-margin-top:86px; }
  .business-group-visual { height:auto; aspect-ratio:4/3; border-radius:20px 20px 0 0; }
  .business-group-panel,.business-group:nth-child(even) .business-group-panel { grid-template-columns:1fr; gap:18px; width:calc(100% - 14px); min-height:0; margin:-36px 0 0 auto; padding:34px 24px 32px; border-radius:20px 0 0 0; }
  .business-group:nth-child(even) .business-group-panel { margin-right:auto; margin-left:0; border-radius:0 20px 0 0; }
  .business-group-meta { gap:13px; margin-bottom:25px; }
  .business-group-meta b { padding-right:13px; font-size:32px; }
  .business-group-meta span { font-size:10px; }
  .business-group-copy h2 { padding-right:0; font-size:23px; line-height:1.55; }
  .business-group-lead { margin-top:19px!important; font-size:14px!important; }
  .business-group-copy>p:not(.business-group-lead) { font-size:14px; line-height:1.95; }
  .business-group-services { grid-template-columns:1fr; margin-top:25px; }
  .business-group-services li { font-size:13px; }
  .business-group-symbol { position:absolute; top:25px; right:22px; display:block; min-height:0; width:66px; height:66px; opacity:.2; overflow:visible; }
  .business-group-symbol::before,.business-group-symbol::after { display:none; }
  .business-group-symbol img { width:100%; }
}

@media (prefers-reduced-motion:reduce) {
  .business-group-visual img { transition:none; }
  .business-group:hover .business-group-visual img { transform:none; }
}

/* Business page color-block rhythm and client reference galleries */
.business-groups { position:relative; padding:0; background:#fff; overflow:visible; }
.business-groups::before { content:""; position:absolute; z-index:2; top:-112px; left:0; right:0; height:114px; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 160' preserveAspectRatio='none'%3E%3Cpath fill='%23d9f3f8' d='M0 118C118 116 154 88 235 90C340 92 360 24 460 28C555 30 558 104 642 94C718 85 740 50 812 57C896 65 884 117 975 111C1090 104 1120 82 1217 92C1320 100 1338 112 1440 104V160H0Z'/%3E%3C/svg%3E") center bottom/100% 100% no-repeat; pointer-events:none; }
.business-group { position:relative; isolation:isolate; margin:0; padding:92px max(28px,calc((100vw - 1380px)/2)) 160px; background:#d9f3f8; }
.business-group:nth-child(even) { background:#fff; }
.business-group+.business-group { padding-top:118px; }
.business-group+.business-group::before { content:""; position:absolute; z-index:0; top:-112px; left:0; right:0; height:114px; pointer-events:none; }
.business-group:nth-child(even)::before { background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 160' preserveAspectRatio='none'%3E%3Cpath fill='%23ffffff' d='M0 112C92 116 132 92 220 96C310 100 345 55 430 62C510 69 534 118 620 105C710 92 730 20 830 28C930 36 922 105 1010 98C1108 90 1136 58 1224 70C1324 83 1348 112 1440 106V160H0Z'/%3E%3C/svg%3E") center bottom/100% 100% no-repeat; }
.business-group:nth-child(odd):not(:first-child)::before { background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 160' preserveAspectRatio='none'%3E%3Cpath fill='%23d9f3f8' d='M0 118C118 116 154 88 235 90C340 92 360 24 460 28C555 30 558 104 642 94C718 85 740 50 812 57C896 65 884 117 975 111C1090 104 1120 82 1217 92C1320 100 1338 112 1440 104V160H0Z'/%3E%3C/svg%3E") center bottom/100% 100% no-repeat; }
.business-group-visual,.business-group-panel,.business-client-gallery { position:relative; z-index:1; }
.business-group-visual { width:min(1380px,100%); margin-right:auto; margin-left:auto; }
.business-group-panel { width:min(1180px,86%); }
.business-group:nth-child(even) .business-group-panel { background:#f2f8f9; box-shadow:0 28px 64px rgba(28,93,111,.07); }
.business-client-gallery { grid-column:1/-1; display:grid; justify-self:start; gap:15px; margin:8px 0 0; padding-top:25px; border-top:1px solid rgba(9,27,39,.1); }
.business-client-gallery-two { grid-template-columns:repeat(2,minmax(0,1fr)); width:min(540px,62%); }
.business-client-gallery-three { grid-template-columns:repeat(3,minmax(0,1fr)); width:min(720px,72%); }
.business-client-gallery-four { grid-template-columns:repeat(4,minmax(0,1fr)); width:min(860px,82%); }
.business-client-gallery figure { min-width:0; margin:0; }
.business-client-gallery img { display:block; width:100%; aspect-ratio:4/3; border-radius:13px; object-fit:cover; background:#e8f0f2; box-shadow:0 12px 28px rgba(22,72,88,.08); transition:transform .55s cubic-bezier(.16,1,.3,1),box-shadow .4s ease; }
.business-client-gallery-four img { object-fit:contain; background:#fff; }
.business-client-gallery figure:hover img { transform:translateY(-4px); box-shadow:0 18px 34px rgba(22,72,88,.13); }
.business-client-gallery figcaption { margin-top:9px; color:#53666e; font-size:11px; line-height:1.55; letter-spacing:.04em; }
.business-page-hero .inner-title-block { text-shadow:0 1px 8px rgba(9,27,39,.3); }
.business-page-hero .inner-title-block h1,
.business-page-hero .inner-title-block h1 span { background:transparent; }
.business-gallery-button { display:block; width:100%; margin:0; padding:0; border:0; border-radius:13px; background:transparent; cursor:zoom-in; overflow:hidden; }
.business-gallery-button:focus-visible { outline:3px solid var(--blue); outline-offset:4px; }
.business-lightbox { width:min(1180px,calc(100vw - 72px)); max-width:none; height:min(86vh,820px); max-height:none; margin:auto; padding:0; border:0; border-radius:18px; color:#fff; background:#071821; box-shadow:0 30px 90px rgba(2,14,21,.42); overflow:hidden; }
.business-lightbox::backdrop { background:rgba(3,15,22,.82); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); }
.business-lightbox[open] { display:grid; place-items:center; }
.business-lightbox figure { display:grid; grid-template-rows:minmax(0,1fr) auto; width:100%; height:100%; margin:0; padding:34px; }
.business-lightbox img { width:100%; height:100%; min-height:0; object-fit:contain; }
.business-lightbox figcaption { min-height:44px; padding:16px 58px 0 0; color:rgba(255,255,255,.78); font-size:14px; line-height:1.7; }
.business-lightbox-close { position:absolute; z-index:2; top:18px; right:18px; display:grid; place-items:center; width:48px; height:48px; padding:0 0 4px; border:1px solid rgba(255,255,255,.32); border-radius:50%; color:#fff; background:rgba(9,27,39,.74); font-family:Arial,"Helvetica Neue",sans-serif; font-size:31px; font-weight:300; line-height:1; cursor:pointer; transition:color .3s ease,border-color .3s ease,background-color .3s ease,transform .3s cubic-bezier(.16,1,.3,1); }
.business-lightbox-close:hover { color:var(--ink); border-color:#fff; background:#fff; transform:rotate(5deg); }
.business-lightbox-close:focus-visible { outline:3px solid var(--blue); outline-offset:3px; }
body.lightbox-open { overflow:hidden; }

@media (max-width:900px) {
  .business-group { padding-right:24px; padding-left:24px; }
  .business-group-panel { width:92%; }
  .business-client-gallery-two,.business-client-gallery-three,.business-client-gallery-four { width:82%; }
  .business-client-gallery-four { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width:600px) {
  .business-group { padding:54px 14px 108px; }
  .business-groups::before { top:-64px; height:66px; }
  .business-group+.business-group { padding-top:72px; }
  .business-group+.business-group::before { top:-64px; height:66px; }
  .business-group-panel { width:calc(100% - 14px); }
  .business-client-gallery-two,.business-client-gallery-three,.business-client-gallery-four { display:flex; width:100%; gap:11px; margin-top:10px; padding:22px 0 5px; overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x mandatory; scrollbar-width:none; }
  .business-client-gallery::-webkit-scrollbar { display:none; }
  .business-client-gallery figure { flex:0 0 64%; scroll-snap-align:start; }
  .business-client-gallery img { border-radius:11px; }
  .business-client-gallery figcaption { font-size:12px; }
  .business-gallery-button { border-radius:11px; }
  .business-lightbox { width:calc(100vw - 24px); height:min(78dvh,680px); border-radius:14px; }
  .business-lightbox figure { padding:54px 12px 18px; }
  .business-lightbox figcaption { min-height:38px; padding:12px 48px 0 4px; font-size:14px; }
  .business-lightbox-close { top:10px; right:10px; width:44px; height:44px; font-size:28px; }
}

@media (prefers-reduced-motion:reduce) {
  .business-client-gallery img,.business-lightbox-close { transition:none; }
  .business-client-gallery figure:hover img,.business-lightbox-close:hover { transform:none; }
}

/* Content pages: unified mobile layout */
@media (max-width:700px) {
  .company-page,
  .inner-page,
  body[data-page="business"] main { font-size:14px; }

  /* Shared content-page hero */
  .inner-hero { height:300px; padding-top:72px; }
  .inner-hero-visual { inset:72px 0 0; }
  .inner-hero-visual::after { background:linear-gradient(90deg,rgba(9,27,39,.82),rgba(9,27,39,.34) 74%,rgba(9,27,39,.12)); }
  .inner-hero-copy { inset:72px 0 0; width:calc(100% - 40px); }
  .inner-title-block h1,
  .privacy-title-block h1 { font-size:36px; line-height:1; }
  .inner-title-block p { margin-top:16px; font-size:17px; }
  .inner-title-block>span { width:32px; margin-top:18px; }

  /* Compact page-anchor navigation shared by Company and Business */
  .company-section-nav,
  .business-section-nav { grid-template-columns:repeat(2,minmax(0,1fr)); width:calc(100% - 40px); margin-top:26px; }
  .company-section-nav a { min-height:58px; padding:0 10px 0 12px; border-bottom:1px solid rgba(9,27,39,.12); font-size:14px; line-height:1.45; }
  .company-section-nav a+a { border-top:0; border-left:0; }
  .company-section-nav a:nth-child(even) { border-left:1px solid rgba(9,27,39,.12); }
  .company-section-nav a:nth-last-child(-n+2) { border-bottom:0; }
  .company-section-nav b { width:25px; height:25px; flex-basis:25px; font-size:13px; }

  /* Company */
  .company-hero { height:300px; padding-top:72px; }
  .company-hero-visual { inset:72px 0 0; }
  .company-hero-visual::after { background:linear-gradient(90deg,rgba(9,27,39,.8),rgba(9,27,39,.28) 76%,rgba(9,27,39,.12)); }
  .company-hero-visual img { object-position:58% center; }
  .company-hero-copy { inset:72px 0 0; width:calc(100% - 40px); }
  .company-title-block h2 { font-size:36px; }
  .company-title-block p { margin-top:16px; font-size:17px; }
  .company-title-block>span { width:32px; margin-top:18px; }
  .company-content-section { gap:28px; padding-right:20px; padding-left:20px; }
  .company-about { padding-top:64px; padding-bottom:112px; }
  .company-content-heading p { margin-bottom:8px; font-size:14px; }
  .company-content-heading h2 { font-size:22px; }
  .company-content-heading::after { margin-top:18px; }
  .company-content-body>p { margin-bottom:18px; font-size:14px; line-height:1.95; }
  .company-name-block { align-items:flex-end; gap:7px; margin-top:30px; }
  .company-name-block span { font-size:14px; }
  .company-strength-section { gap:32px; padding:86px 20px 84px; }
  .company-strength-section::before { top:-66px; height:68px; }
  .company-strength-cards { gap:14px; }
  .company-strength-cards article { padding:24px 22px 27px; }
  .company-strength-kicker { font-size:14px; }
  .company-strength-cards h3 { margin-bottom:14px; font-size:19px; }
  .company-strength-cards p { font-size:14px; line-height:1.9; }
  .company-vision-section { padding:88px 20px 84px; }
  .company-vision-section::before { top:-68px; height:70px; }
  .company-vision-body h3 { margin-bottom:24px; font-size:21px; line-height:1.6; }
  .company-vision-sign { margin-top:34px; padding-top:20px; }
  .company-vision-sign strong,
  .company-vision-sign span { font-size:14px; line-height:1.7; }
  .company-overview-section { padding:82px 20px 86px; }
  .company-overview-section::before { top:-60px; height:62px; }
  .company-overview-list>div { gap:6px; padding:17px 2px; }
  .company-overview-list dt,
  .company-overview-list dd { font-size:14px; line-height:1.75; }

  /* Business index */
  .business-page-intro { width:calc(100% - 40px); padding:64px 0 102px; gap:24px; }
  .business-page-intro-heading>p { margin-bottom:12px; font-size:14px; }
  .business-page-intro-heading h2 { font-size:25px; line-height:1.55; }
  .business-page-intro-copy p { margin-bottom:17px; font-size:14px; line-height:1.95; }
  .business-groups::before { top:-56px; height:58px; }
  .business-group { padding:48px 14px 94px; }
  .business-group+.business-group { padding-top:62px; }
  .business-group+.business-group::before { top:-56px; height:58px; }
  .business-group-visual { aspect-ratio:16/10.5; border-radius:18px 18px 0 0; }
  .business-group-panel,
  .business-group:nth-child(even) .business-group-panel { gap:14px; width:calc(100% - 12px); margin-top:-28px; padding:30px 21px 28px; border-radius:18px 0 0 0; }
  .business-group:nth-child(even) .business-group-panel { border-radius:0 18px 0 0; }
  .business-group-meta { margin-bottom:21px; }
  .business-group-meta b { font-size:29px; }
  .business-group-meta span { font-size:12px; }
  .business-group-copy h2 { padding-right:50px; font-size:21px; line-height:1.5; }
  .business-group-lead { margin-top:17px!important; font-size:14px!important; line-height:1.75!important; }
  .business-group-copy>p:not(.business-group-lead) { font-size:14px; line-height:1.9; }
  .business-group-services { margin-top:22px; }
  .business-group-services li { padding-top:13px; padding-bottom:12px; font-size:14px; }
  .business-group-symbol { top:27px; right:20px; width:52px; height:52px; }
  .business-client-gallery-two,
  .business-client-gallery-three,
  .business-client-gallery-four { gap:10px; padding-top:19px; }
  .business-client-gallery figure { flex-basis:72%; }
  .business-client-gallery figcaption { font-size:14px; line-height:1.55; }

  /* Business detail pages */
  .detail-hero { height:420px; padding-top:72px; overflow:hidden; }
  .detail-hero>img { object-position:center; }
  .detail-shade { background:linear-gradient(0deg,rgba(6,26,33,.84),rgba(6,26,33,.12) 72%); }
  .detail-copy { left:20px; right:20px; bottom:34px; }
  .detail-copy>span { position:absolute; top:-54px; right:0; float:none; font-size:52px; line-height:1; opacity:.42; }
  .detail-copy>p { margin:0 0 8px; font-size:14px; }
  .detail-copy h1 { width:100%; margin:0 0 14px; padding-right:8px; font-size:clamp(27px,8vw,33px); line-height:1.36; letter-spacing:-.025em; }
  .detail-copy strong { display:block; max-width:92%; font-size:14px; font-weight:600; line-height:1.7; }
  .detail-body { gap:28px; padding:64px 20px 72px; }
  .detail-intro .eyebrow,
  .service-points>.eyebrow { margin-bottom:16px; font-size:14px; }
  .detail-intro h2 { font-size:24px; line-height:1.6; letter-spacing:-.015em; }
  .detail-text p { margin-bottom:18px; font-size:14px; line-height:2; }
  .detail-video { width:calc(100% - 40px); height:auto; aspect-ratio:4/3; margin:0 auto; border-radius:14px; }
  .detail-video video { object-position:center; }
  .detail-video span { left:12px; right:12px; bottom:12px; padding:9px 11px; font-size:14px; line-height:1.5; text-align:center; }
  .service-points { padding:64px 20px 72px; }
  .service-points>div { grid-template-columns:1fr; }
  .service-points article { min-height:112px; padding:22px 24px; }
  .service-points article span { font-size:14px; }
  .service-points article h3 { margin:27px 0 0; font-size:18px; line-height:1.55; }
  .detail-navigation { flex-direction:column; gap:0; padding:24px 20px 54px; }
  .detail-navigation a { min-height:54px; padding:8px 0; border-bottom:1px solid var(--line); font-size:14px; line-height:1.55; }
  .detail-navigation a:last-child { justify-content:flex-end; text-align:right; }

  /* News list and article */
  .news-index-section { width:calc(100% - 40px); padding:64px 0 86px; }
  .inner-section-intro>div>p { margin-bottom:11px; font-size:14px; }
  .inner-section-intro h2 { font-size:25px; }
  .news-archive { margin-top:38px; }
  .news-archive-item { padding:22px 1px 24px; }
  .news-archive-item time { font-size:15px; }
  .news-archive-copy strong { font-size:16px; line-height:1.6; }
  .news-archive-copy small { font-size:14px; line-height:1.7; }
  .news-archive-arrow { font-size:21px; }
  .news-pagination { gap:9px; margin-top:36px; }
  .news-pagination-pages { gap:8px; }
  .news-pagination button { width:42px; height:42px; font-size:14px; }
  .news-article { width:calc(100% - 40px); padding:24px 0 84px; }
  .breadcrumb { gap:7px; font-size:14px; }
  .news-article-header { padding:44px 0 42px; }
  .news-article-header time { font-size:14px; }
  .news-article-header h2 { margin:18px 0; font-size:23px; line-height:1.58; }
  .news-article-header p { font-size:14px; line-height:1.9; }
  .news-article-body { padding-top:40px; }
  .news-article-body p { margin-bottom:20px; font-size:14px; line-height:2; }
  .news-article-body h3 { margin:40px 0 19px; padding-left:15px; font-size:20px; line-height:1.55; }
  .article-back-link { min-height:44px; margin-top:34px; font-size:14px; }

  /* Contact */
  .contact-page-section { width:calc(100% - 40px); gap:42px; padding:64px 0 86px; }
  .contact-page-aside header>p { margin-bottom:11px; font-size:14px; }
  .contact-page-aside h2 { font-size:25px; }
  .contact-page-lead { margin-top:22px; font-size:14px; line-height:1.9; }
  .contact-channels { margin-top:30px; }
  .contact-channels a { gap:6px; padding:19px 2px; }
  .contact-channels small,
  .contact-channels span { font-size:14px; line-height:1.55; }
  .contact-channels strong { font-size:20px; }
  .refined-contact-form { gap:22px; padding:25px 18px 28px; border-radius:14px; }
  .refined-contact-form .form-note,
  .refined-contact-form label,
  .refined-contact-form .agreement>span { font-size:14px; }
  .refined-contact-form input,
  .refined-contact-form select,
  .refined-contact-form textarea { min-height:50px; font-size:16px; }
  .refined-contact-form textarea { min-height:150px; }
  .refined-contact-form button { min-height:58px; font-size:15px; }
  .refined-contact-form button:disabled { color:#49636c; background:#d7e9ed; opacity:1; }

  /* Privacy */
  .privacy-layout { width:calc(100% - 40px); gap:38px; padding:64px 0 86px; }
  .privacy-aside>p:first-child { margin-bottom:11px; font-size:14px; }
  .privacy-aside h2 { font-size:25px; }
  .privacy-aside>p:nth-of-type(2) { margin-top:20px; font-size:14px; line-height:1.9; }
  .privacy-aside small { margin-top:24px; font-size:14px; line-height:1.8; }
  .privacy-articles article { gap:10px; padding:22px 0 25px; }
  .privacy-articles h3 { font-size:17px; line-height:1.55; }
  .privacy-articles p { font-size:14px; line-height:1.9; }
}
