:root {
  color-scheme: dark;
  --navy: #061321;
  --navy-deep: #040e18;
  --panel: #0b2133;
  --blue: #09aeeb;
  --silver: #e2e8ed;
  --text: #f1f5f8;
  --muted: #afbeca;
  --line: #bddeed30;
  --paper: #edf0f2;
  --ink: #122a3b;
  --sans: "Yu Gothic", YuGothic, "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  --serif: "Yu Mincho", "Hiragino Mincho ProN", Georgia, serif;
  --ease: cubic-bezier(.2,.7,.25,1);
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 100px; }
body { margin: 0; background: var(--navy); color: var(--text); font-family: var(--sans); font-size: 16px; -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; }
img { display: block; max-width: 100%; height: auto; }
h1,h2,h3,p,dl,dd { margin: 0; }
p { line-height: 1.95; }
h2 { font-family: var(--serif); font-size: clamp(32px,3.5vw,50px); font-weight: 500; line-height: 1.6; letter-spacing: .08em; }
a,button { -webkit-tap-highlight-color: #09aeeb33; }
a:focus-visible,button:focus-visible { outline: 3px solid #76d7ff; outline-offset: 5px; }
.section-light a:focus-visible { outline-color: #0078a8; }
.wrap { width: calc(100% - 112px); max-width: 1280px; margin-inline: auto; }
.eyebrow { font: 11px/1.7 Arial,sans-serif; font-weight: 500; letter-spacing: .2em; color: #8fc6dc; }
.section-heading .eyebrow,.section-top .eyebrow,.recruit .eyebrow,.company .eyebrow,.contact .eyebrow { margin-bottom: 22px; }
.section-space { padding-block: 112px; }
.section-light { background: var(--paper); color: var(--ink); color-scheme: light; }
.section-light .eyebrow { color: #426a7e; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link { position:fixed; top:8px; left:16px; z-index:100; padding:12px 18px; background:white; color:var(--ink); transform:translateY(-150%); }
.skip-link:focus { transform:none; }
.site-header { position:sticky; top:0; z-index:40; background:#061321f5; border-bottom:1px solid #d6ebf412; }
.header-inner { height:100px; display:flex; align-items:center; justify-content:space-between; gap:32px; }
.brand { display:block; width:105px; flex:none; }
.brand img { width:100%; height:auto; }
.primary-nav { display:flex; align-items:center; gap:30px; font-size:12px; font-weight:600; letter-spacing:.04em; }
.primary-nav>a { display:inline-flex; align-items:center; justify-content:center; gap:20px; min-height:46px; transition:color .2s,background .2s; }
.primary-nav>a:hover { color:#81d9fa; }
.primary-nav .nav-recruit { border-bottom:1px solid #7b9fae; }
.primary-nav .nav-contact { background:#e2e8ed; color:#102c3f; padding-inline:20px; }
.primary-nav .nav-contact:hover { background:white; color:#005e88; }
.menu-toggle,.mobile-recruit { display:none; }
.hero { position:relative; isolation:isolate; overflow:hidden; background:linear-gradient(110deg,#061321 20%,#07192b 70%,#0b2033); }
.hero-light { position:absolute; inset:0; z-index:-1; pointer-events:none; background:radial-gradient(ellipse at 77% 47%,#0f62804d,transparent 42%); }
.hero-contour { position:absolute; width:1000px; height:690px; right:-100px; top:40px; z-index:-1; border:1px solid #86b9d333; border-radius:50%; transform:rotate(-29deg); box-shadow:0 0 0 60px #7cadcb05,0 0 0 61px #86b9d316,0 0 0 150px #7cadcb03,0 0 0 151px #86b9d310; pointer-events:none; }
.hero-inner { min-height:650px; display:grid; grid-template-columns:1.1fr 1fr; align-items:center; gap:60px; padding-block:58px 66px; }
.hero-eyebrow { display:flex; align-items:center; gap:12px; margin-bottom:30px; }
.hero-eyebrow span { display:block; width:32px; height:1px; background:var(--blue); }
.hero h1 { font-family:var(--serif); font-size:clamp(68px,8.3vw,120px); font-weight:500; letter-spacing:.08em; line-height:1.16; text-shadow:0 2px 30px #e6f6ff08; }
.hero h1>span { display:block; padding-left:.64em; color:#d6e1e8; }
.hero-message { margin-top:34px; font-size:16px; line-height:1.95; letter-spacing:.09em; color:#c3d1db; }
.hero-actions { display:flex; gap:14px; margin-top:30px; }
.button { display:inline-flex; align-items:center; justify-content:space-between; gap:36px; min-height:54px; padding:15px 22px; font-size:13px; font-weight:700; letter-spacing:.06em; border:1px solid transparent; transition:background .25s,border-color .25s,transform .25s; }
.button>span { font-size:19px; font-weight:400; }
.button-blue { background:var(--blue); color:#032237; }
.button-blue:hover { background:#62d4fb; }
.button-outline { border-color:#6b889c; background:#09213755; }
.button-outline:hover { background:#163b52; border-color:#b9dbea; }
.button-silver { background:#e9eff3; color:#13334b; }
.button-silver:hover { background:#fff; }
.hero-brand { position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; padding-top:15px; }
.hero-brand img { width:min(100%,400px); position:relative; }
.hero-brand p { font-size:12px; letter-spacing:.28em; color:#b4c9d6; margin-top:38px; }
.brand-rule { position:absolute; left:4%; right:4%; top:56%; height:1px; background:linear-gradient(90deg,transparent,#9ac7d744,transparent); transform:rotate(-29deg); }
.hero-bottom { display:flex; align-items:center; justify-content:space-between; min-height:65px; border-top:1px solid var(--line); color:#aabfce; font-size:11px; letter-spacing:.12em; }
.hero-bottom a { display:flex; align-items:center; gap:28px; min-height:48px; font:10px Arial,sans-serif; letter-spacing:.14em; }
.hero-bottom a span { font-size:18px; color:var(--blue); }
.explore { position:relative; padding-block:30px 88px; }
.entry-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.interactive-card { position:relative; isolation:isolate; overflow:hidden; --light-x:50%; --light-y:25%; --rx:0deg; --ry:0deg; transition:transform .35s var(--ease),border-color .35s,box-shadow .35s,background-color .35s; }
.interactive-card::after { content:""; position:absolute; inset:0; z-index:-1; pointer-events:none; background:radial-gradient(circle 320px at var(--light-x) var(--light-y),#b7e9ff20,transparent 70%); opacity:0; transition:opacity .35s; }
.interactive-card:focus-visible::after { opacity:1; }
.entry-card { min-height:238px; padding:25px 28px 30px; display:flex; flex-direction:column; justify-content:space-between; gap:28px; border:1px solid #8dbbd533; background:linear-gradient(120deg,#0f283b,#091b2b); }
.entry-recruit { background:linear-gradient(120deg,#076b99,#07527d); border-color:#50b9de77; }
.entry-company { background:linear-gradient(120deg,#203341,#132534); }
.card-top { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.entry-card .eyebrow { font-size:10px; color:#c4dbe6; }
.circle-arrow { display:inline-flex; width:36px; height:36px; align-items:center; justify-content:center; border:1px solid #b6d7e74d; border-radius:50%; font:21px Arial,sans-serif; transition:background .25s,transform .25s; }
.entry-card h3 { font:500 30px/1.4 var(--serif); letter-spacing:.09em; }
.entry-card p { margin-top:12px; font-size:13px; line-height:1.75; color:#c7d6e1; }
.entry-recruit p { color:#e0eff7; }
.card-line { position:absolute; bottom:0; left:28px; right:28px; height:1px; background:linear-gradient(90deg,#79d5f6,transparent); transform:scaleX(.25); transform-origin:left; transition:transform .4s; }
.entry-card:focus-visible .card-line { transform:scaleX(1); }
.philosophy { padding-block:132px; position:relative; }
.philosophy-grid { display:grid; grid-template-columns:1.05fr 1fr; gap:9%; align-items:center; }
.philosophy h2 { font-size:clamp(30px,3.2vw,45px); line-height:1.8; letter-spacing:.07em; }
.philosophy h2>span { color:#08658c; }
.philosophy-copy { max-width:470px; }
.philosophy-copy p { color:#425866; font-size:16px; line-height:2.15; }
.philosophy-copy p+p { margin-top:20px; }
.fine-line { display:block; height:2px; width:50px; background:#3285a5; margin-bottom:28px; }
.text-link { display:inline-flex; align-items:center; justify-content:space-between; gap:44px; min-height:48px; padding-block:10px; border-bottom:1px solid #6a94ab; font-size:13px; font-weight:600; letter-spacing:.03em; }
.text-link span { font-size:22px; font-weight:400; transition:transform .25s; }
.text-link:hover span { transform:translate(3px,-3px); }
.philosophy .text-link { margin-top:25px; border-color:#628497; }
.business { background:#061726; }
.section-top { display:flex; align-items:flex-end; justify-content:space-between; gap:32px; }
.business-intro { display:grid; grid-template-columns:1fr 1.05fr; gap:10%; margin-top:50px; padding-top:40px; border-top:1px solid var(--line); }
.business-intro h3 { font:500 clamp(24px,2.4vw,33px)/1.7 var(--serif); letter-spacing:.04em; }
.business-intro p { color:#b6c7d2; font-size:15px; line-height:2; }
.business-intro p+p { margin-top:10px; }
.service-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; margin-top:48px; }
.service-card { border:1px solid #9cc9e12b; background:#0a2032; }
.service-image { overflow:hidden; aspect-ratio:1.35; background:#061727; }
.service-image img { width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease); }
.service-label { display:grid; grid-template-columns:19px 1fr 14px; align-items:center; gap:8px; padding:25px 17px; }
.service-no { font:10px Arial,sans-serif; color:#82bed7; align-self:start; padding-top:7px; }
.service-label h3 { font:500 clamp(18px,1.5vw,22px)/1.4 var(--serif); }
.service-label p { font:9px/1.5 Arial,sans-serif; margin-top:9px; letter-spacing:.04em; color:#9fbed1; }
.service-arrow { font-size:20px; color:#78c9e9; }
.recruit { position:relative; overflow:hidden; isolation:isolate; background:linear-gradient(115deg,#0a4d74,#063353 60%,#092a46); }
.recruit .eyebrow { color:#9ad9ee; }
.recruit-grid { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:10%; }
.recruit h2 { font-size:clamp(40px,4.4vw,64px); }
.recruit-lead { font-size:16px; color:#d0e3ed; margin-top:22px; }
.recruit .button { margin-top:34px; min-width:240px; }
.recruit-arc { position:absolute; z-index:-1; width:850px; height:430px; border:1px solid #addefb24; border-radius:50%; top:-120px; right:-180px; transform:rotate(-35deg); box-shadow:0 0 0 56px #a1dbf503,0 0 0 57px #addefb18; }
.recruit-facts { border-left:1px solid #d4eaff45; padding-left:56px; }
.recruit-facts dl>div { margin-bottom:28px; }
.recruit-facts dt { font-size:12px; color:#b9d5e4; margin-bottom:8px; }
.recruit-role { font:500 30px/1.4 var(--serif); letter-spacing:.08em; }
.salary { font:400 clamp(38px,4vw,58px)/1.2 Georgia,serif; letter-spacing:.01em; }
.salary span { font:500 20px var(--serif); margin-left:8px; white-space:nowrap; }
.recruit-facts .text-link { border-color:#9dcde577; }
.mobile-break { display:none; }
.company-grid { display:grid; grid-template-columns:.88fr 1.12fr; gap:12%; align-items:start; }
.company-card { margin-top:35px; min-height:180px; display:flex; align-items:flex-end; justify-content:space-between; padding:30px; background:linear-gradient(120deg,#14384e,#071e31); color:#eaf2f7; border:1px solid #315b71; }
.company-lines { position:absolute; width:290px; height:150px; right:-80px; top:-65px; border:1px solid #addefb35; border-radius:50%; transform:rotate(-35deg); box-shadow:0 0 0 30px #addefb08,0 0 0 31px #addefb18; pointer-events:none; }
.company-card-label { display:flex; flex-direction:column; gap:12px; font:20px var(--serif); letter-spacing:.04em; }
.company-card-label>span { font:12px var(--sans); color:#b3ccda; }
.company-facts>div { display:grid; grid-template-columns:105px 1fr; gap:20px; padding:25px 0; border-bottom:1px solid #17384e25; }
.company-facts>div:first-child { padding-top:0; }
.company-facts dt { font-size:13px; color:#526674; padding-top:3px; }
.company-facts dd { font-size:17px; line-height:1.85; }
.fact-note { font-size:13px; color:#526674; display:inline-block; }
.news { padding-bottom:84px; }
.news-inner { display:grid; grid-template-columns:200px 1fr; gap:55px; padding-top:36px; border-top:1px solid #17384e25; align-items:center; }
.news h2 { font-size:24px; margin-top:10px; }
.news-item { min-width:0; }
.news-meta { display:flex; align-items:center; flex-wrap:wrap; gap:15px; font:12px Arial,sans-serif; letter-spacing:.08em; color:#526674; }
.news-meta span { padding:4px 9px; border:1px solid #17384e40; font-size:11px; letter-spacing:.04em; }
.news-item h3 { margin-top:13px; font-size:18px; line-height:1.6; }
.news-item p { margin-top:9px; font-size:14px; line-height:1.9; color:#536875; }
.contact { background:radial-gradient(ellipse at 90% 45%,#123f59,transparent 65%),#081b2c; }
.contact-inner { display:flex; align-items:center; justify-content:space-between; gap:36px; padding-right:70px; }
.contact h2 { font-size:clamp(34px,4.7vw,66px); }
.contact p:not(.eyebrow) { margin-top:25px; font-size:15px; color:#b7cbd8; }
.contact-circle { width:180px; height:180px; border:1px solid #8fc5dfaa; border-radius:50%; display:flex; align-items:center; justify-content:center; flex-direction:column; flex:none; gap:10px; background:#c7edff06; }
.contact-circle>span:first-child { font:10px Arial,sans-serif; letter-spacing:.2em; color:#b7d8e8; }
.contact-arrow { font-size:56px; font-weight:300; line-height:1; }
.site-footer { padding-top:64px; background:var(--navy-deep); }
.footer-top { display:flex; justify-content:space-between; align-items:start; gap:60px; padding-bottom:45px; }
.footer-company .brand { width:108px; margin-bottom:26px; }
.footer-company p { color:#a9bfcd; font-size:12px; line-height:1.9; margin-top:14px; }
.footer-phone { display:inline-block; min-height:44px; padding-block:14px 8px; font-size:13px; color:#c4dce8; }
.footer-nav { display:grid; grid-template-columns:repeat(3,1fr); column-gap:32px; row-gap:8px; padding-top:12px; }
.footer-nav a { display:flex; align-items:center; min-height:44px; font-size:12px; color:#c1d0da; }
.footer-nav a:hover { color:white; }
.footer-bottom { border-top:1px solid var(--line); min-height:68px; display:flex; align-items:center; justify-content:space-between; gap:20px; font-size:10px; letter-spacing:.08em; color:#a3b9c8; }
.footer-bottom a { min-height:44px; display:flex; align-items:center; gap:20px; }
.mobile-actions { display:none; }
@media (hover:hover) and (pointer:fine) {
  .interactive-card:hover { border-color:#8ed1f080; box-shadow:0 16px 35px #0003; }
  .interactive-card:hover::after { opacity:1; }
  .entry-card:hover .card-line { transform:scaleX(1); }
  .entry-card:hover .circle-arrow { background:#bdeaff17; transform:translate(2px,-2px); }
  .service-card:hover .service-image img { transform:scale(1.035); }
}
@media (prefers-reduced-motion:no-preference) {
  .reveal.is-revealed { animation:reveal-in .65s var(--ease); }
  @keyframes reveal-in { from { opacity:0; transform:translateY(18px); } to { opacity:1; transform:none; } }
  .interactive-card.is-hovered { transform:perspective(900px) rotateX(var(--rx)) rotateY(var(--ry)) translateY(-4px); }
}
@media (min-width:1800px) {
  .hero-inner { min-height:740px; }
  .hero-contour { right:calc((100vw - 1400px)/2 - 80px); }
}
@media (max-width:1100px) {
  .wrap { width:calc(100% - 72px); }
  .primary-nav { gap:19px; font-size:11px; }
  .primary-nav .nav-contact { padding-inline:15px; }
  .header-inner { gap:22px; }
  .hero-inner { min-height:600px; gap:36px; }
  .hero h1 { font-size:clamp(68px,8vw,90px); }
  .hero-brand img { width:330px; }
  .entry-card { padding:22px; }
  .entry-card h3 { font-size:27px; }
  .service-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
  .service-image { aspect-ratio:1.8; }
  .service-label { padding:25px; grid-template-columns:22px 1fr 20px; gap:12px; }
  .service-label h3 { font-size:24px; }
  .recruit-facts { padding-left:35px; }
  .company-grid { gap:8%; }
  .contact-inner { padding-right:20px; }
}
@media (max-width:900px) {
  html { scroll-padding-top:88px; }
  .header-inner { height:84px; }
  .header-inner .brand { width:88px; }
  .mobile-recruit { display:flex; align-items:center; justify-content:center; min-height:44px; gap:12px; margin-left:auto; font-size:12px; color:#c2e4f4; }
  .menu-toggle { display:flex; align-items:center; justify-content:center; flex-direction:column; gap:7px; min-width:56px; min-height:52px; padding:6px 0; border:0; background:none; cursor:pointer; }
  .menu-icon { display:block; width:24px; height:10px; border-block:1px solid #c2d6e2; position:relative; }
  .menu-label { font-size:11px; line-height:1.5; letter-spacing:.04em; }
  .primary-nav { display:grid; grid-template-columns:1fr 1fr; padding:15px 24px 28px; gap:10px 18px; font-size:14px; }
  .primary-nav>a { min-height:50px; }
  .header-inner { flex-wrap:wrap; height:auto; min-height:84px; }
  .primary-nav { flex-basis:100%; }
  .menu-toggle { display:none; }
  .menu-enhanced .header-inner { height:84px; min-height:0; flex-wrap:nowrap; }
  .menu-enhanced .menu-toggle { display:flex; }
  .menu-enhanced .primary-nav { position:absolute; top:100%; left:0; right:0; background:#071a2bfC; border-bottom:1px solid #86b9d33b; box-shadow:0 20px 35px #0004; visibility:hidden; opacity:0; pointer-events:none; transform:translateY(-8px); transition:opacity .2s,transform .2s,visibility .2s; }
  .menu-enhanced.menu-open .primary-nav { visibility:visible; opacity:1; pointer-events:auto; transform:none; }
  .hero-inner { min-height:560px; grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); gap:22px; }
  .hero h1 { font-size:clamp(52px,7.8vw,70px); }
  .hero-actions { gap:9px; }
  .hero .button { padding-inline:14px; font-size:12px; gap:14px; }
  .hero-brand img { width:280px; }
  .hero-contour { right:-420px; opacity:.75; }
  .entry-card { min-height:230px; padding:20px; }
  .entry-card h3 { font-size:25px; }
  .entry-card p { font-size:12px; }
  .entry-card .eyebrow { font-size:9px; letter-spacing:.1em; }
  .circle-arrow { width:30px; height:30px; font-size:19px; }
  .philosophy { padding-block:100px; }
  .philosophy-grid { gap:6%; }
  .philosophy h2 { font-size:29px; }
  .section-space { padding-block:88px; }
  .business-intro { gap:7%; }
  .recruit-grid { gap:7%; }
  .company-facts>div { grid-template-columns:80px 1fr; gap:12px; }
  .company-facts dd { font-size:16px; }
  .company-card { padding:24px; }
  .footer-nav { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:640px) {
  .wrap { width:calc(100% - 40px); }
  .header-inner { gap:16px; }
  .header-inner .brand { width:80px; }
  .hero-inner { grid-template-columns:1fr; min-height:0; gap:22px; padding-block:40px 22px; }
  .hero-eyebrow { font-size:9px; margin-bottom:22px; letter-spacing:.17em; }
  .hero-eyebrow span { width:24px; }
  .hero h1 { font-size:clamp(53px,16vw,78px); line-height:1.17; letter-spacing:.06em; }
  .hero h1>span { padding-left:.7em; }
  .hero-message { margin-top:22px; font-size:14px; line-height:1.9; letter-spacing:.04em; }
  .hero-actions { margin-top:24px; gap:10px; }
  .hero .button { flex:1; padding-inline:16px; min-height:50px; font-size:12px; }
  .hero-brand { padding-top:6px; }
  .hero-brand img { width:175px; }
  .hero-brand p { margin-top:10px; font-size:9px; letter-spacing:.16em; }
  .brand-rule { left:10%; right:10%; }
  .hero-contour { width:650px; height:410px; right:-295px; top:175px; opacity:.65; }
  .hero-bottom { min-height:52px; font-size:9px; letter-spacing:.04em; }
  .hero-bottom a { font-size:8px; gap:12px; letter-spacing:.1em; }
  .explore { padding-block:20px 56px; }
  .entry-grid { grid-template-columns:1fr; gap:12px; }
  .entry-card { min-height:155px; display:grid; grid-template-columns:1fr 1.06fr; align-items:center; gap:18px; padding:24px; }
  .card-top { flex-direction:column; gap:23px; align-items:flex-start; }
  .entry-card .eyebrow { font-size:9px; }
  .entry-card h3 { font-size:27px; }
  .entry-card p { font-size:12px; margin-top:9px; line-height:1.8; }
  .entry-card .circle-arrow { width:32px; height:32px; }
  .philosophy { padding-block:70px; }
  .philosophy-grid { grid-template-columns:1fr; gap:36px; }
  .section-heading .eyebrow,.section-top .eyebrow,.recruit .eyebrow,.company .eyebrow,.contact .eyebrow { margin-bottom:20px; }
  .philosophy h2 { font-size:clamp(25px,7.2vw,35px); line-height:1.8; letter-spacing:.03em; }
  .philosophy-copy { max-width:none; }
  .philosophy-copy p { font-size:16px; line-height:2; }
  .fine-line { width:38px; margin-bottom:24px; }
  .section-space { padding-block:65px; }
  h2 { font-size:34px; }
  .section-top { display:block; }
  .section-top .text-link { margin-top:20px; font-size:12px; gap:35px; }
  .business-intro { grid-template-columns:1fr; gap:24px; margin-top:30px; padding-top:30px; }
  .business-intro h3 { font-size:24px; line-height:1.7; }
  .business-intro p { font-size:16px; line-height:1.95; }
  .service-grid { grid-template-columns:1fr; gap:16px; margin-top:32px; }
  .service-card { display:grid; grid-template-columns:110px minmax(0,1fr); align-items:center; }
  .service-image { height:138px; aspect-ratio:auto; }
  .service-image img { object-fit:cover; object-position:center; }
  .service-label { padding:18px 15px; grid-template-columns:1fr 16px; gap:7px; }
  .service-no { grid-column:1 / -1; padding-top:0; }
  .service-label h3 { font-size:23px; }
  .service-label p { font-size:9px; line-height:1.65; letter-spacing:.02em; }
  .recruit-grid { grid-template-columns:1fr; gap:42px; }
  .recruit h2 { font-size:43px; }
  .recruit-lead { font-size:16px; line-height:1.95; }
  .recruit .button { margin-top:26px; min-width:220px; }
  .recruit-facts { border-left:0; border-top:1px solid #d4eaff45; padding:28px 0 0; }
  .recruit-facts dl { display:grid; grid-template-columns:1fr; }
  .recruit-facts dl>div { margin-bottom:24px; }
  .salary { font-size:48px; }
  .salary span { font-size:19px; }
  .recruit-role { font-size:26px; }
  .recruit-facts .text-link { font-size:12px; gap:25px; }
  .recruit-arc { right:-590px; }
  .company-grid { grid-template-columns:1fr; gap:40px; }
  .company-card { margin-top:27px; min-height:150px; }
  .company-facts>div { grid-template-columns:80px minmax(0,1fr); padding-block:22px; gap:15px; }
  .company-facts dd { font-size:15px; overflow-wrap:anywhere; }
  .company-facts dt { font-size:12px; }
  .fact-note { display:block; font-size:12px; }
  .news { padding-bottom:55px; }
  .news-inner { grid-template-columns:1fr; gap:22px; padding-top:30px; }
  .news h2 { font-size:24px; }
  .contact-inner { padding-right:0; gap:25px; flex-wrap:wrap; }
  .contact h2 { font-size:34px; }
  .contact p:not(.eyebrow) { font-size:14px; margin-top:20px; }
  .contact-circle { width:112px; height:112px; margin-left:auto; gap:7px; }
  .contact-circle>span:first-child { font-size:8px; }
  .contact-arrow { font-size:36px; }
  .mobile-break { display:block; }
  .site-footer { padding-top:45px; padding-bottom:72px; }
  .footer-top { flex-direction:column; gap:28px; padding-bottom:25px; }
  .footer-nav { width:100%; gap:0 20px; }
  .footer-company p { font-size:13px; }
  .footer-nav a { min-height:48px; }
  .footer-bottom { min-height:62px; font-size:9px; }
  .mobile-actions { position:fixed; z-index:35; bottom:0; left:0; right:0; display:grid; grid-template-columns:1fr 1fr; gap:1px; padding:8px 12px calc(8px + env(safe-area-inset-bottom)); background:#051421f5; border-top:1px solid #91bdd636; opacity:0; visibility:hidden; transform:translateY(100%); transition:opacity .25s,transform .25s,visibility .25s; }
  .mobile-actions.is-visible { opacity:1; visibility:visible; transform:none; }
  .mobile-actions a { display:flex; align-items:center; justify-content:space-between; min-height:46px; padding-inline:20px; font-size:12px; font-weight:600; background:#dce7ee; color:#153248; }
  .mobile-actions a:first-child { background:#09aeeb; color:#032237; }
  .menu-open .mobile-actions { visibility:hidden; opacity:0; }
}
@media (max-width:360px) {
  .wrap { width:calc(100% - 32px); }
  .hero .button { padding-inline:12px; gap:8px; font-size:11px; }
  .entry-card { padding:20px; gap:12px; grid-template-columns:.85fr 1.15fr; }
  .entry-card h3 { font-size:25px; }
  .service-card { grid-template-columns:88px minmax(0,1fr); }
  .service-label { padding-inline:12px; }
  .service-label h3 { font-size:21px; }
  .hero-bottom>span { font-size:8px; }
  .hero-bottom a { font-size:7px; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
  .reveal { opacity:1; }
  .interactive-card.is-hovered { transform:none; }
  .service-card:hover .service-image img { transform:none; }
}

/* Preserve the previous logo light: identical mask, gradient, five-second path and timing. */
.hero-logo { display:block; position:relative; width:min(100%,400px); aspect-ratio:1130/744; overflow:visible; isolation:isolate; }
.hero-logo::before { content:""; display:block; position:absolute; inset:-17% -12%; z-index:-1; border-radius:50%; background:radial-gradient(ellipse,rgba(0,146,222,.23),rgba(0,107,176,.09) 42%,transparent 72%); filter:blur(18px); opacity:.85; pointer-events:none; }
.hero-logo::after { content:""; display:block; position:absolute; inset:0; z-index:2; background:radial-gradient(ellipse at center,rgba(171,232,255,.56) 0%,rgba(128,214,252,.30) 35%,rgba(91,193,238,.10) 62%,transparent 78%) no-repeat; background-size:36% 33%; background-position:48% 38%; pointer-events:none; -webkit-mask-image:url('../img/serias-mark-blue-mask.png'); -webkit-mask-repeat:no-repeat; -webkit-mask-position:center; -webkit-mask-size:100% 100%; mask-image:url('../img/serias-mark-blue-mask.png'); mask-repeat:no-repeat; mask-position:center; mask-size:100% 100%; }
.hero .hero-logo img { display:block; position:absolute; inset:0; width:100%; height:100%; object-fit:contain; filter:drop-shadow(0 15px 24px rgba(0,0,0,.32)); }
@media(prefers-reduced-motion:no-preference) { .hero-logo,.hero .hero-logo img { animation:none; } .hero-logo::after { animation:serias-mark-light 5s linear infinite; } }
@keyframes serias-mark-light{0%,100%{background-position:48% 38%;opacity:.45}13%{background-position:75% 15%;opacity:.82}26%{background-position:100% 0%;opacity:.74}39%{background-position:100% 34%;opacity:.6}51%{background-position:48% 40%;opacity:.46}65%{background-position:25% 62%;opacity:.8}79%{background-position:0% 63%;opacity:.78}90%{background-position:8% 46%;opacity:.55}}
@media(max-width:1100px) { .hero-logo { width:min(100%,330px); } }
@media(max-width:900px) { .hero-logo { width:min(100%,280px); } }
@media(max-width:640px) { .hero-logo { width:175px; max-width:100%; } .hero-logo::before { inset:-12% -8%; filter:blur(22px); opacity:.62; } .hero .hero-logo img { filter:drop-shadow(0 10px 17px rgba(0,0,0,.27)); } }
@media(prefers-reduced-motion:reduce) { .hero-logo::after { display:none; } }
