@import url('https://fonts.googleapis.com/css2?family=Rajdhani:wght@300;400;500;600;700&display=swap');
:root {
   --blue:#1043c8;
   --cyan:#12c8f4;
   --ink:#081636;
   --muted:#5d6678;
   --line:rgba(16,67,200,.16);
   --glass:rgba(255,255,255,.68);
   --shadow:0 28px 70px rgba(7,46,100,.13)
}

 * {
   box-sizing:border-box;
   forced-color-adjust:none
}

 html {
   scroll-behavior:smooth;
   background:#fff;
   color:var(--ink);
   color-scheme:light only
}

 body {
   margin:0;
   font-family:"Rajdhani",rajdhani,"Segoe UI","Yu Gothic",YuGothic,"Hiragino Kaku Gothic ProN",Meiryo,sans-serif;
   background:#fff;
   overflow-x:hidden;
   color:var(--ink)
}

 a {
   text-decoration:none;
   color:inherit
}

 img {
   display:block;
   max-width:100%
}

 #backgroundParticleCanvas,#particleCanvas {
   position:fixed;
   inset:0;
   width:100vw;
   height:100vh;
   pointer-events:none
}

 #backgroundParticleCanvas {
   z-index:0;
   background:#fff
}

 #particleCanvas {
   z-index:2;
   background:transparent
}

 #heroFx {
   position:fixed;
   left:0;
   top:0;
   width:0;
   height:0;
   z-index:3;
   pointer-events:none
}

 #heroLogo {
   position:absolute;
   left:0;
   top:0;
   width:min(40vw,570px);
   height:auto;
   transform:translate(-50%,-50%) scale(1);
   opacity:0;
   will-change:transform,opacity;
   filter:drop-shadow(0 22px 44px rgba(12,45,90,.12))
}

 .site-header {
   position:fixed;
   top:0;
   left:0;
   right:0;
   z-index:20;
   display:flex;
   justify-content:space-between;
   align-items:center;
   padding:34px clamp(24px,6vw,96px);
   pointer-events:none;
   mix-blend-mode:multiply;
   transition:padding .35s ease,background .35s ease,box-shadow .35s ease
}

 .site-header.is-scrolled {
   padding-top:18px;
   padding-bottom:18px;
   background:rgba(255,255,255,.80);
   box-shadow:0 12px 38px rgba(7,46,100,.08);
   backdrop-filter:blur(16px);
   mix-blend-mode:normal
}

 .logo {
   pointer-events:auto
}

 .logo img {
   width:150px
}

 .nav {
   display:flex;
   gap:30px;
   pointer-events:auto
}

 .nav a {
   color:rgba(8,22,54,.72);
   font-size:14px;
   text-decoration:none;
   letter-spacing:.04em
}

 .nav a:hover {
   color:var(--blue)
}

 .menu-button {
   display:none
}

 main {
   position:relative;
   z-index:4
}

 .section {
   position:relative;
   min-height:105vh;
   padding:150px clamp(28px,8vw,140px) 110px;
   display:grid;
   align-items:center
}

 .hero {
   min-height:118vh
}

 .hero-words {
   position:relative;
   z-index:3;
   display:grid;
   grid-template-columns:minmax(240px,.8fr) minmax(420px,1.2fr);
   gap:6vw;
   align-items:start;
   width:100%
}

 .kicker {
   font-size:clamp(50px,7vw,112px);
   line-height:.98;
   letter-spacing:.13em;
   margin:0;
   color:rgba(8,22,54,.96);
   font-weight:300
}

 #top h1 {
   font-size:clamp(58px,8vw,136px);
   font-weight:300;
   line-height:.95;
   letter-spacing:.09em;
   margin:0;
   color:rgba(8,22,54,.96);
   text-align:right
}

 #top h1 span {
   display:block
}

 .lead {
   position:absolute;
   left:0;
   bottom:-150px;
   font-size:clamp(18px,2vw,28px);
   font-weight:800;
   line-height:1.55;
   margin:0;
   color:var(--ink)
}

 .scroll-label {
   position:absolute;
   z-index:3;
   left:clamp(28px,8vw,140px);
   bottom:72px;
   writing-mode:vertical-rl;
   color:var(--blue);
   font-size:11px;
   letter-spacing:.22em
}

 .scroll-label:before {
   content:"";
   display:inline-block;
   width:1px;
   height:64px;
   background:var(--blue);
   margin-bottom:12px;
   opacity:.55
}

 .section-title {
   align-self:start
}

 .section-label {
   display:inline-flex;
   min-width:142px;
   height:34px;
   align-items:center;
   justify-content:center;
   padding:0 24px;
   background:linear-gradient(90deg,var(--blue),#075bd4);
   color:#fff;
   font-size:12px;
   font-weight:700;
   letter-spacing:.08em;
   box-shadow:0 12px 24px rgba(10,114,232,.18);
   margin-bottom:22px
}

 .section-title h2 {
   margin:0;
   color:var(--blue);
   font-size:clamp(54px,6.4vw,104px);
   line-height:1;
   font-weight:300;
   letter-spacing:.04em
}

 .center {
   align-self:center
}

 .message {
   grid-template-columns:minmax(240px,.45fr) minmax(320px,1fr);
   gap:8vw
}

 .vertical-copy {
   justify-self:end;
   writing-mode:vertical-rl;
   text-orientation:mixed;
   font-size:clamp(30px,3.2vw,48px);
   font-weight:800;
   line-height:1.72;
   letter-spacing:.08em
}

 .body-copy {
   position:absolute;
   left:clamp(28px,8vw,140px);
   bottom:70px;
   width:min(680px,70vw);
   font-size:15px;
   line-height:2.2;
   color:var(--ink)
}

 .about {
   text-align:center;
   justify-items:center
}

 .wide-copy {
   width:min(860px,80vw);
   font-size:clamp(17px,1.5vw,22px);
   line-height:2.35;
   margin-top:28vh
}

 .business-grid {
   display:grid;
   grid-template-columns:repeat(4,minmax(0,1fr));
   gap:22px;
   width:min(1280px,100%);
   margin-top:86px;
   text-align:left
}

 .business-grid article {
   padding:30px 26px;
   border-top:1px solid var(--line);
   background:rgba(255,255,255,.52);
   backdrop-filter:blur(10px)
}

 .business-grid span {
   display:block;
   color:var(--blue);
   font-size:13px;
   margin-bottom:18px
}

 .business-grid strong {
   display:block;
   font-size:24px;
   font-weight:300;
   margin-bottom:16px
}

 .business-grid p {
   margin:0;
   color:var(--muted);
   line-height:1.9;
   font-size:14px
}

 .parallax-showcase {
   position:relative;
   z-index:4;
   min-height:82vh;
   display:flex;
   align-items:center;
   overflow:hidden;
   background:#1c347c;
   color:#fff
}

 .parallax-copy {
   position:relative;
   z-index:2;
   margin-left:clamp(28px,8vw,140px)
}

 .parallax-copy span {
   display:block;
   color:var(--cyan);
   font-size:14px;
   letter-spacing:.14em;
   margin-bottom:22px
}

 .parallax-copy strong {
   font-size:clamp(38px,5vw,82px);
   line-height:1.22;
   font-weight:300
}

 .parallax-track {
   position:absolute;
   left:42%;
   top:8%;
   display:flex;
   gap:34px;
   align-items:center;
   will-change:transform
}

 .parallax-panel {
   width:300px;
   height:420px;
   border-radius:22px;
   overflow:hidden;
   box-shadow:0 34px 90px rgba(0,0,0,.34);
   opacity:.82
}

 .parallax-panel.is-large {
   width:420px;
   height:540px
}

 .parallax-panel.is-tall {
   width:250px;
   height:610px
}

 .parallax-panel img {
   width:100%;
   height:100%;
   object-fit:cover
}

 .works {
   grid-template-columns:minmax(260px,.35fr) minmax(360px,.72fr);
   gap:6vw;
   align-items:start
}

 .work-card {
   align-self:center;
   width:min(980px,100%);
   padding-top:8vh
}

 .scroller-head {
   display:flex;
   align-items:flex-end;
   justify-content:space-between;
   gap:28px;
   margin-bottom:24px
}

 .scroller-head p {
   margin:0;
   max-width:560px;
   line-height:2;
   color:var(--muted)
}

 .card-controls {
   display:flex;
   gap:12px
}

 .card-controls button {
   width:54px;
   height:54px;
   border-radius:50%;
   border:1px solid rgba(16,67,200,.35);
   background:rgba(255,255,255,.80);
   color:var(--blue);
   font-size:20px;
   cursor:pointer
}

 .card-scroller {
   display:flex;
   gap:24px;
   overflow-x:auto;
   scroll-snap-type:x mandatory;
   padding:6px 0 24px;
   cursor:default;
   scrollbar-width:none
}

 .card-scroller img {
   cursor:grab;
   touch-action:pan-y
}

 .card-scroller::-webkit-scrollbar {
   display:none
}

 .card-scroller.is-dragging img {
   cursor:grabbing
}

 .service-card,.site-card {
   scroll-snap-align:start;
   flex:0 0 390px;
   width:390px;
   background:#fff;
   border:0;
   outline:1px solid rgba(16,67,200,.13);
   box-shadow:var(--shadow);
   overflow:hidden
}

 .service-card img,.site-card img {
   display:block;
   width:390px;
   height:228px;
   max-width:none
}

 .service-card h3,.site-card h3 {
   font-size:28px;
   font-weight:300;
   margin:26px 26px 12px
}

 .service-card p,.site-card p {
   margin:0 26px 24px;
   color:var(--muted);
   line-height:1.9
}

 .service-card a,.site-card a {
   display:inline-block;
   margin:0 26px 28px;
   color:var(--blue);
   font-size:12px;
   font-weight:700;
   letter-spacing:.08em
}


 .operated {
   padding-top:90px
}

 .workflow {
   align-items:start
}

 .steps {
   display:grid;
   grid-template-columns:repeat(5,minmax(190px,1fr));
   gap:20px;
   margin-top:24vh
}

 .steps div {
   border-top:1px solid var(--line);
   padding-top:28px;
   background:rgba(255,255,255,.42)
}

 .steps span {
   display:block;
   color:var(--blue);
   font-size:14px;
   margin-bottom:18px
}

 .steps strong {
   display:block;
   font-size:30px;
   font-weight:300;
   margin-bottom:18px
}

 .steps p {
   color:var(--muted);
   line-height:1.9;
   font-size:14px
}

 .project-copy {
   font-size:clamp(38px,7vw,118px);
   font-weight:300;
   letter-spacing:.07em;
   line-height:1.05;
   margin:26vh 0 0;
   max-width:1100px
}

 .project-lead {
   width:min(760px,80vw);
   font-size:16px;
   line-height:2.2;
   color:var(--muted);
   margin-top:42px
}

 .news {
   min-height:auto
}

 .news-list {
   width:min(980px,100%);
   margin-top:90px
}

 .news-list a {
   display:grid;
   grid-template-columns:150px 1fr;
   gap:28px;
   padding:28px 0;
   border-top:1px solid var(--line);
   color:var(--ink)
}

 .news-list a:last-child {
   border-bottom:1px solid var(--line)
}

 .news-list time {
   color:var(--blue);
   font-size:13px
}

 .contact {
   text-align:center;
   justify-items:center
}

 .contact-copy {
   width:min(760px,80vw);
   line-height:2.2;
   color:var(--muted);
   margin-top:60px
}

 .contact-button {
   margin-top:70px;
   width:190px;
   height:190px;
   border-radius:50%;
   background:var(--blue);
   color:#fff;
   display:inline-grid;
   place-items:center;
   text-decoration:none;
   font-size:20px;
   letter-spacing:.08em;
   box-shadow:0 24px 90px rgba(16,67,200,.22)
}

 .footer {
   position:relative;
   z-index:5;
   background:#07142a;
   color:#fff;
   padding:80px clamp(28px,8vw,140px);
   display:flex;
   align-items:end;
   justify-content:space-between;
   gap:40px
}

 .footer img {
   width:170px;
   filter:brightness(0) invert(1)
}

 .footer p {
   line-height:2;
   color:rgba(255,255,255,.70)
}

 .footer small {
   color:rgba(255,255,255,.52)
}

 .reveal {
   opacity:0;
   transform:translateY(34px);
   transition:opacity .8s ease,transform .8s ease
}

 .reveal.is-visible {
   opacity:1;
   transform:translateY(0)
}

 .delay-1 {
   transition-delay:.12s
}

 .delay-2 {
   transition-delay:.24s
}

 @media(max-width:980px) {
   .site-header {
     padding:24px
  }

   .nav {
     display:none
  }

   .menu-button {
     display:grid;
     gap:6px;
     width:42px;
     height:42px;
     border:0;
     background:transparent;
     pointer-events:auto
  }

   .menu-button span {
     display:block;
     height:2px;
     background:var(--ink)
  }

   .section {
     padding:128px 24px 86px
  }

   .hero-words,.message,.works {
     grid-template-columns:1fr
  }

   #top .kicker,#top h1 {
     font-size:56px;
     text-align:left
  }

   .lead {
     position:relative;
     bottom:auto;
     margin-top:42px
  }

   .vertical-copy {
     writing-mode:horizontal-tb;
     justify-self:start;
     font-size:28px
  }

   .body-copy {
     position:relative;
     left:auto;
     bottom:auto;
     width:auto;
     margin-top:80px
  }

   .business-grid,.steps {
     grid-template-columns:1fr;
     margin-top:80px
  }

   .wide-copy,.project-copy,.contact-button {
     margin-top:130px
  }

   .parallax-track {
     left:22%;
     opacity:.55
  }

   .scroller-head {
     display:block
  }

   .card-controls {
     margin-top:18px
  }

   .footer {
     display:block
  }

   #heroLogo {
     width:min(68vw,360px)
  }

}

/* v17 UI refinements */
#heroLogo {
   display:none!important;

}

 .hero {
   place-items:center;

}

 .hero-logo-stage {
   position:relative;
   z-index:3;
   display:grid;
   place-items:center;
   width:100%;
   min-height:48vh;
   text-align:center;
   pointer-events:none;

}

 .hero-logo-stage img {
   width:min(42vw,560px);
   max-width:78vw;
   height:auto;
   filter:drop-shadow(0 24px 58px rgba(7,46,100,.14));
   opacity:1;
   animation:heroLogoBlink 1.72s cubic-bezier(.2,.7,.2,1) both;

}

 @keyframes heroLogoBlink {
   0% {
     opacity:0;
     transform:scale(.92);
     filter:blur(7px) drop-shadow(0 24px 58px rgba(7,46,100,.08));

  }

   8% {
     opacity:1;
     transform:scale(1.015);
     filter:blur(0) drop-shadow(0 24px 58px rgba(7,46,100,.16));

  }

   14% {
     opacity:.16;
     transform:scale(.985);

  }

   22% {
     opacity:1;
     transform:scale(1.025);

  }

   29% {
     opacity:.22;
     transform:scale(.995);

  }

   38% {
     opacity:1;
     transform:scale(1.018);

  }

   48% {
     opacity:.55;

  }

   62% {
     opacity:1;
     transform:scale(1.005);

  }

   100% {
     opacity:1;
     transform:scale(1);
     filter:blur(0) drop-shadow(0 24px 58px rgba(7,46,100,.14));

  }

}

 .section-title h2 {
   font-size:clamp(42px,5.25vw,84px)!important;
   font-weight:700!important;
   letter-spacing:.025em;

}

 .parallax-copy strong {
   font-size:clamp(34px,4.3vw,70px);
   font-weight:700;

}

 .project-copy {
   font-size:clamp(34px,5.8vw,96px);
   font-weight:700;

}

 .business-grid strong,.service-card h3,.site-card h3,.steps strong {
   font-weight:700;

}

 p,.lead,.body-copy,.wide-copy,.business-grid p,.scroller-head p,.service-card p,.site-card p,.steps p,.project-lead,.contact-copy,.news-list span,.footer p,.footer li {
   font-weight:500;

}

 .parallax-showcase {
   opacity:0;
   transform:translateY(28px);
   transition:opacity .9s ease,transform .9s ease;

}

 .parallax-showcase.is-visible {
   opacity:1;
   transform:translateY(0);

}

 .parallax-panel {
   opacity:0;
   transform:translateY(26px) scale(.96);

}

 .parallax-showcase.is-visible .parallax-panel {
   animation:panelFlickerIn 1.08s cubic-bezier(.16,.8,.22,1) both;

}

 .parallax-showcase.is-visible .parallax-panel:nth-child(1) {
   animation-delay:.10s;

}

 .parallax-showcase.is-visible .parallax-panel:nth-child(2) {
   animation-delay:.22s;

}

 .parallax-showcase.is-visible .parallax-panel:nth-child(3) {
   animation-delay:.34s;

}

 .parallax-showcase.is-visible .parallax-panel:nth-child(4) {
   animation-delay:.46s;

}

 .parallax-showcase.is-visible .parallax-panel:nth-child(5) {
   animation-delay:.58s;

}

 .parallax-panel img {
   will-change:opacity,transform;

}

 .parallax-showcase.is-visible .parallax-panel img {
   animation:panelImageBlink 1.16s ease both;

}

 @keyframes panelFlickerIn {
   0% {
     opacity:0;
     filter:brightness(1.8) blur(8px);
     transform:translateY(34px) scale(.94);

  }

   10% {
     opacity:.95;
     filter:brightness(1.55) blur(0);

  }

   17% {
     opacity:.20;

  }

   28% {
     opacity:.90;

  }

   35% {
     opacity:.34;

  }

   48% {
     opacity:.88;

  }

   100% {
     opacity:.82;
     filter:brightness(1) blur(0);
     transform:translateY(0) scale(1);

  }

}

 @keyframes panelImageBlink {
   0% {
     opacity:0;
     transform:scale(1.04);

  }

   12% {
     opacity:1;

  }

   20% {
     opacity:.24;

  }

   32% {
     opacity:1;

  }

   43% {
     opacity:.58;

  }

   56% {
     opacity:1;

  }

   100% {
     opacity:1;
     transform:scale(1);

  }

}

 .card-scroller {
   scroll-snap-type:none!important;
   scroll-behavior:smooth;
   -webkit-overflow-scrolling:touch;
   padding-left:2px;
   padding-right:clamp(28px,8vw,140px);

}

 .service-card,.site-card {
   scroll-snap-align:none!important;

}

 .card-scroller.is-dragging {
   scroll-behavior:auto;
   user-select:none;

}

 .steps div {
   padding:30px 24px 26px!important;

}

 .footer {
   position:relative;
   z-index:5;
   background:#07142a;
   color:#fff;
   margin-top:60px;
   padding:60px clamp(28px,7vw,110px) 34px;
   display:block;

}

 .footer-main {
   display:grid;
   grid-template-columns:minmax(220px,1.25fr) repeat(4,minmax(150px,.75fr));
   gap:34px;
   align-items:start;

}

 .footer-logo {
   width:170px;
   filter:none!important;
   margin-bottom:24px;

}

 .footer-brand p {
   line-height:2;
   color:rgba(255,255,255,.72);
   margin:0;

}

 .footer-col h3 {
   font-size:12px;
   letter-spacing:.16em;
   margin:0 0 18px;
   color:#fff;
   font-weight:700;

}

 .footer-col ul {
   list-style:none;
   margin:0;
   padding:0;
   display:grid;
   gap:9px;

}

 .footer-col li {
   font-size:13px;
   line-height:1.5;
   color:rgba(255,255,255,.62);

}

 .footer-bottom {
   border-top:1px solid rgba(255,255,255,.12);
   margin-top:54px;
   padding-top:22px;
   display:flex;
   justify-content:space-between;
   gap:24px;
   align-items:center;
   color:rgba(255,255,255,.50);

}

 .footer-bottom div {
   display:flex;
   flex-wrap:wrap;
   gap:18px 28px;
   font-size:12px;

}

 .footer-bottom small {
   color:rgba(255,255,255,.50);
   white-space:nowrap;

}

 @media(max-width:980px) {
   .hero-logo-stage img {
     width:min(70vw,420px);

  }

   .section-title h2 {
     font-size:clamp(34px,10vw,58px)!important
  }

   .footer-main {
     grid-template-columns:1fr 1fr
  }

   .footer-brand {
     grid-column:1/-1
  }

   .footer-bottom {
     display:block
  }

   .footer-bottom small {
     display:block;
     margin-top:20px
  }

   .steps div {
     padding:28px 22px!important
  }

}

 @media(max-width:640px) {
   .footer-main {
     grid-template-columns:1fr
  }

   .footer-col ul {
     grid-template-columns:1fr 1fr
  }

   .footer-bottom div {
     display:grid;
     gap:10px
  }

   .card-scroller {
     padding-right:24px
  }

}

/* v18 requested layout refinements */
.hero {
   min-height:100vh!important;
   height:100vh!important;
   padding:0!important;
   display:block!important;
   position:relative;
   overflow:hidden;

}

 .hero-logo-stage {
   position:absolute!important;
   left:50%!important;
   top:50%!important;
   transform:translate(-50%,-50%)!important;
   z-index:3;
   display:grid;
   place-items:center;
   width:min(72vw,760px);
   min-height:auto!important;
   text-align:center;
   pointer-events:none;

}

 .hero-logo-stage img {
   width:min(38vw,520px)!important;
   max-width:72vw;
   height:auto;

}

 .hero-left-copy {
   position:absolute;
   z-index:3;
   left:clamp(42px,7.8vw,148px);
   top:clamp(94px,16vh,170px);
   color:rgba(8,22,54,.38);
   font-size:clamp(13px,1.15vw,18px);
   line-height:1.55;
   font-weight:700;
   letter-spacing:.045em;
   text-align:left;
   pointer-events:none;

}

 .hero-left-copy span:not(.letter-space) {
   display:inline-block;
   opacity:0;
   animation:heroLetterBlink .95s cubic-bezier(.18,.72,.23,1) forwards;
   animation-delay:calc(.32s + var(--i) * .032s);

}

 .hero-left-copy .letter-space {
   display:inline-block;
   width:.42em;

}

 @keyframes heroLetterBlink {
   0% {
     opacity:0;
     filter:blur(5px);
     transform:translateY(5px);

  }

   14% {
     opacity:.85;
     filter:blur(0);

  }

   24% {
     opacity:.10;

  }

   38% {
     opacity:.78;

  }

   48% {
     opacity:.22;

  }

   64% {
     opacity:.64;

  }

   100% {
     opacity:.58;
     filter:blur(0);
     transform:translateY(0);

  }

}

 .scroll-label {
   left:auto!important;
   right:clamp(28px,6.8vw,112px)!important;
   bottom:54px!important;
   top:auto!important;
   z-index:4;

}

 .scroll-label:before {
   height:54px!important;

}

 .section-title h2 {
   font-size:clamp(32px,4vw,64px)!important;
   font-weight:800!important;
   letter-spacing:.018em!important;
   line-height:1.12!important;

}

 .parallax-copy strong {
   font-size:clamp(30px,3.75vw,60px)!important;
   font-weight:800!important;

}

 .project-copy {
   font-size:clamp(28px,4.4vw,72px)!important;
   font-weight:800!important;
   letter-spacing:.045em!important;
   margin:8vh 0 0!important;
   max-width:820px!important;

}

 .wide-copy {
   margin-top:10vh!important;
   font-weight:600;

}

 #service,#sites {
   padding-top:210px!important;

}

 #sites {
   padding-top:190px!important;

}

 .workflow {
   min-height:auto!important;
   padding-bottom:80px!important;

}

 .steps {
   margin-top:9vh!important;

}

 .steps div {
   padding:30px 26px 26px!important;

}

 .project-with-character {
   display:grid!important;
   grid-template-columns:minmax(0,1fr) minmax(320px,.55fr);
   gap:clamp(22px,4vw,70px);
   align-items:center;
   min-height:88vh!important;
   padding-top:110px!important;
   padding-bottom:80px!important;
   overflow:hidden;

}

 .project-content {
   position:relative;
   z-index:2;
   min-width:0;

}

 .project-lead {
   margin-top:28px!important;
   font-weight:600;

}

 .project-character {
   position:relative;
   z-index:1;
   justify-self:end;
   align-self:end;
   width:min(44vw,520px);
   max-height:84vh;
   object-fit:contain;
   filter:drop-shadow(0 28px 58px rgba(9,61,148,.16));
   pointer-events:none;

}

 .news-list {
   margin-top:56px!important;

}

 .contact-copy {
   margin-top:38px!important;

}

 @media(max-width:980px) {
   .hero-logo-stage img {
     width:min(64vw,420px)!important;

  }

   .hero-left-copy {
     left:24px;
     top:112px;
     font-size:12px;

  }

   .scroll-label {
     right:24px!important;
     bottom:38px!important;

  }

   #service,#sites {
     padding-top:150px!important;

  }

   .project-with-character {
     grid-template-columns:1fr;
     min-height:auto!important;
     padding-top:120px!important;

  }

   .project-character {
     width:min(78vw,420px);
     justify-self:center;
     max-height:none;
     margin-top:24px;

  }

   .project-copy {
     margin-top:64px!important;

  }

}

/* v19 refinements */
.hero-logo-stage {
   top:50%!important;
   transform:translate(-50%,-50%)!important;

}

 .hero-logo-stage img {
   width:min(36vw,500px)!important;

}

 .hero-left-copy {
   left:clamp(38px,7vw,132px)!important;
   top:clamp(92px,13vh,148px)!important;
   color:rgba(8,22,54,.34)!important;
   font-size:clamp(10px,.80vw,12px)!important;
   line-height:1.72!important;
   font-weight:400!important;
   letter-spacing:.12em!important;
   max-width:min(42vw,640px);
   text-transform:uppercase;
   white-space:pre-line;

}

 .hero-left-copy span:not(.letter-space) {
   display:inline-block;
   opacity:0;
   animation:heroLetterBlink .95s cubic-bezier(.18,.72,.23,1) forwards;
   animation-delay:calc(.22s + var(--i) * .018s);

}

 .hero-left-copy .letter-space {
   display:inline-block;
   width:.38em;

}

 @keyframes heroLetterBlink {
   0% {
     opacity:0;
     filter:blur(4px);
     transform:translateY(4px);

  }

   14% {
     opacity:.84;
     filter:blur(0);

  }

   24% {
     opacity:.10;

  }

   38% {
     opacity:.76;

  }

   50% {
     opacity:.20;

  }

   68% {
     opacity:.56;

  }

   100% {
     opacity:.52;
     filter:blur(0);
     transform:translateY(0);

  }

}

 .section-title .section-label {
   font-size:12px!important;
   letter-spacing:.18em!important;
   font-weight:700!important;

}

 .section-title h2 {
   font-size:clamp(28px,3.35vw,52px)!important;
   font-weight:800!important;

}

 p,.lead,.body-copy,.wide-copy,.business-grid p,.scroller-head p,.service-card p,.site-card p,.steps p,.project-lead,.contact-copy,.news-list span,.footer p,.footer li {
   font-size:16px!important;
   font-weight:600!important;
   line-height:1.95!important;

}

 .service-card h3,.site-card h3 {
   font-size:22px!important;
   line-height:1.25!important;
   font-weight:700!important;

}

 .scroller-head p {
   font-size:15px!important;

}

 #service .section-title h2, #sites .section-title h2 {
   font-size:clamp(24px,2.8vw,42px)!important;

}

 #service .section-title .section-label, #sites .section-title .section-label {
   font-size:11px!important;

}

 .project-with-character {
   grid-template-columns:minmax(0,1fr) minmax(360px,.74fr)!important;
   gap:clamp(10px,2vw,26px)!important;
   overflow:visible!important;

}

 .project-content {
   z-index:3!important;
   position:relative!important;

}

 .project-copy {
   position:relative;
   z-index:4;
   font-size:clamp(26px,4vw,70px)!important;
   max-width:760px!important;

}

 .project-lead {
   position:relative;
   z-index:4;
   max-width:720px;

}

 .project-character {
   width:min(58vw,760px)!important;
   max-height:96vh!important;
   justify-self:end!important;
   align-self:end!important;
   margin-right:-4vw!important;
   margin-bottom:-22px!important;
   z-index:2!important;

}

 @media (max-width:1100px) {
   .project-character {
     width:min(62vw,620px)!important;
     margin-right:-3vw!important;

  }

}

 @media(max-width:980px) {
   .hero-left-copy {
     font-size:10px!important;
     line-height:1.66!important;
     max-width:70vw;
     left:24px!important;
     top:96px!important;

  }

   .hero-logo-stage img {
     width:min(60vw,400px)!important;

  }

   .section-title h2 {
     font-size:clamp(24px,8.2vw,42px)!important;

  }

   p,.lead,.body-copy,.wide-copy,.business-grid p,.scroller-head p,.service-card p,.site-card p,.steps p,.project-lead,.contact-copy,.news-list span,.footer p,.footer li {
     font-size:15px!important;

  }

   .service-card h3,.site-card h3 {
     font-size:20px!important;

  }

   .project-with-character {
     grid-template-columns:1fr!important;

  }

   .project-character {
     width:min(92vw,560px)!important;
     justify-self:center!important;
     margin-right:0!important;
     margin-top:-28px!important;

  }

}

/* v20 refinements */
.hero-logo-stage img {
   animation:heroLogoFadeIn 1.45s ease-out both !important;

}

 @keyframes heroLogoFadeIn {
   0% {
     opacity:0;
     transform:scale(.965);
     filter:blur(6px) drop-shadow(0 20px 48px rgba(7,46,100,.06));

  }

   55% {
     opacity:.72;
     transform:scale(.992);
     filter:blur(1px) drop-shadow(0 22px 52px rgba(7,46,100,.10));

  }

   100% {
     opacity:1;
     transform:scale(1);
     filter:blur(0) drop-shadow(0 24px 58px rgba(7,46,100,.14));

  }

}

 .vertical-copy {
   font-size:clamp(30px,3.2vw,48px)!important;
   font-weight:800!important;
   line-height:1.72!important;

}

 #message .section-title {
   margin-top:4vh!important;

}

 #message .body-copy {
   bottom:100px!important;

}

 #service .section-title, #sites .section-title {
   margin-top:62px!important;

}

 .project-copy {
   font-size:clamp(34px,5vw,90px)!important;
   max-width:980px!important;

}

 .project-character {
   width:min(66vw,920px)!important;
   max-height:112vh!important;
   margin-right:-8vw!important;
   margin-bottom:-44px!important;

}

 @media (max-width:1100px) {
   .project-character {
     width:min(70vw,700px)!important;
     margin-right:-5vw!important;

  }

}

 @media(max-width:980px) {
   #message .section-title {
     margin-top:0!important;

  }

   #message .body-copy {
     bottom:auto!important;
     margin-top:42px!important;

  }

   #service .section-title, #sites .section-title {
     margin-top:36px!important;

  }

   .project-copy {
     font-size:clamp(30px,7.2vw,58px)!important;

  }

   .project-character {
     width:min(96vw,620px)!important;
     margin-right:0!important;
     margin-bottom:-28px!important;

  }

}

/* v21 refinements */
.hero-logo-stage img {
   animation: heroLogoFadeInSlow 3.25s cubic-bezier(.18,.72,.2,1) both !important;

}

 @keyframes heroLogoFadeInSlow {
   0% {
     opacity:0;
     transform:scale(.955);
     filter:blur(8px) drop-shadow(0 12px 34px rgba(7,46,100,.04));

  }

   22% {
     opacity:0;
     transform:scale(.965);
     filter:blur(6px) drop-shadow(0 16px 40px rgba(7,46,100,.05));

  }

   55% {
     opacity:.28;
     transform:scale(.985);
     filter:blur(2px) drop-shadow(0 20px 48px rgba(7,46,100,.08));

  }

   82% {
     opacity:.72;
     transform:scale(.997);
     filter:blur(.5px) drop-shadow(0 22px 54px rgba(7,46,100,.11));

  }

   100% {
     opacity:1;
     transform:scale(1);
     filter:blur(0) drop-shadow(0 24px 58px rgba(7,46,100,.14));

  }

}

 #message .body-copy {
   bottom:160px !important;

}

 #service .section-title, #sites .section-title {
   margin-top:110px !important;

}

 .project-copy {
   font-size:clamp(44px,6vw,108px) !important;
   line-height:.92 !important;
   letter-spacing:.02em !important;
   max-width:1180px !important;
   white-space:nowrap;

}

 .project-character {
   width:min(76vw,1080px) !important;
   max-height:118vh !important;
   margin-right:-14vw !important;
   margin-bottom:-54px !important;
   transform:translateX(-8vw);

}

 .project-with-character {
   gap:clamp(6px,1.5vw,18px) !important;

}

 .project-content {
   max-width:none !important;

}

 @media (max-width:1280px) {
   .project-copy {
     font-size:clamp(40px,5.4vw,92px) !important;
     max-width:1040px !important;

  }

   .project-character {
     width:min(74vw,920px) !important;
     margin-right:-10vw !important;
     transform:translateX(-5vw);

  }

}

 @media(max-width:980px) {
   #message .body-copy {
     bottom:auto !important;
     margin-top:28px !important;

  }

   #service .section-title, #sites .section-title {
     margin-top:48px !important;

  }

   .project-copy {
     white-space:normal;
     font-size:clamp(34px,8vw,64px) !important;
     line-height:.96 !important;
     max-width:100% !important;

  }

   .project-character {
     width:min(108vw,720px) !important;
     transform:none;
     margin-right:0 !important;
     margin-bottom:-30px !important;

  }

}

/* v22 project layout refinements */
.project-with-character {
   overflow: visible !important;
   align-items: end !important;
   padding-bottom: 24px !important;

}

 .project-content {
   position: relative;
   z-index: 4 !important;
   padding-bottom: 6vh;

}

 .project-copy {
   font-size: clamp(36px, 5.1vw, 88px) !important;
   line-height: .90 !important;
   letter-spacing: .015em !important;
   white-space: nowrap !important;
   max-width: 1200px !important;

}

 .project-copy br {
   display: block;
   content: "";
   margin-top: .08em;

}

 .project-character {
   position: relative;
   z-index: 2 !important;
   width: min(82vw, 1180px) !important;
   max-height: 128vh !important;
   justify-self: end !important;
   align-self: end !important;
   margin-right: -10vw !important;
   margin-bottom: -220px !important;
   transform: translateX(-18vw) !important;

}

 #news {
   position: relative;
   z-index: 1;

}

 @media (max-width: 1280px) {
   .project-copy {
     font-size: clamp(34px, 4.9vw, 74px) !important;

  }

   .project-character {
     width: min(82vw, 980px) !important;
     margin-right: -8vw !important;
     margin-bottom: -180px !important;
     transform: translateX(-14vw) !important;

  }

}

 @media (max-width: 980px) {
   .project-copy {
     white-space: normal !important;
     font-size: clamp(30px, 7.6vw, 56px) !important;
     line-height: .94 !important;

  }

   .project-character {
     width: min(114vw, 760px) !important;
     margin-right: 0 !important;
     margin-bottom: -76px !important;
     transform: translateX(-8vw) !important;

  }

}

/* v24 minimal requested edits only */
.orchestration-copy {
   position: relative;
   z-index: 4;
   font-size: clamp(34px, 3.8vw, 64px) !important;
   font-weight: 800 !important;
   line-height: .90 !important;
   letter-spacing: .015em !important;
   margin: 8vh 0 0 !important;
   max-width: 1200px !important;
   white-space: nowrap !important;

}

 .service-card, .site-card, .business-grid article, .steps div {
   border-radius: 10px !important;

}

 .project-character {
   margin-right: -15vw !important;
   margin-bottom: -400px !important;

}


/* v25 parallax motion refinements */
.project-character{
  --project-character-scroll-y: 0px;
  transform: translateX(-18vw) translateY(var(--project-character-scroll-y)) !important;
  will-change: transform;
}
@media (max-width: 1280px){
  .project-character{
    transform: translateX(-14vw) translateY(var(--project-character-scroll-y)) !important;
  }
}
@media (max-width: 980px){
  .project-character{
    transform: translateX(-8vw) translateY(var(--project-character-scroll-y)) !important;
  }
}

/* v26 stronger and smoother scroll motion */
.parallax-track,
.parallax-panel,
.project-character{
  will-change: transform;
  backface-visibility: hidden;
  transform-style: preserve-3d;
}


/* v27 parallax start timing + project character base position */
.project-character{
  --project-character-scroll-y: 0px;
  transform: translateX(-18vw) translateY(var(--project-character-scroll-y)) !important;
  will-change: transform;
  backface-visibility: hidden;
  transform-style: preserve-3d;
  opacity: 1 !important;
}
.project-character.reveal,
.project-character.delay-2{
  opacity: 1 !important;
  transition: none !important;
  transition-delay: 0s !important;
}
.parallax-track,
.parallax-panel{
  will-change: transform;
  backface-visibility: hidden;
  transform-style: preserve-3d;
}
@media (max-width: 1280px){
  .project-character{
    transform: translateX(-14vw) translateY(var(--project-character-scroll-y)) !important;
  }
}
@media (max-width: 980px){
  .project-character{
    transform: translateX(-8vw) translateY(var(--project-character-scroll-y)) !important;
  }
}


/* v28 motion tuning */
.project-character{
  transform: translateX(-18vw) translateY(calc(var(--project-character-scroll-y) + 72px)) !important;
}
@media (max-width: 1280px){
  .project-character{
    transform: translateX(-14vw) translateY(calc(var(--project-character-scroll-y) + 58px)) !important;
  }
}
@media (max-width: 980px){
  .project-character{
    transform: translateX(-8vw) translateY(calc(var(--project-character-scroll-y) + 42px)) !important;
  }
}

/* v29 adjustments */
.parallax-track{
  left: 56%;
}
.project-character{
  transform: translateX(-18vw) translateY(calc(var(--project-character-scroll-y) + 170px)) !important;
}
@media (max-width: 1280px){
  .project-character{
    transform: translateX(-14vw) translateY(calc(var(--project-character-scroll-y) + 130px)) !important;
  }
}
@media (max-width: 980px){
  .project-character{
    transform: translateX(-8vw) translateY(calc(var(--project-character-scroll-y) + 92px)) !important;
  }
}


/* v31 service/site title copy and carousel controls */
#service .section-title,
#sites .section-title{
  align-self:center;
}
#service .section-title-copy,
#sites .section-title-copy{
  margin:22px 0 0;
  max-width:620px;
  color:var(--muted);
  font-size:15px !important;
  line-height:1.95 !important;
  font-weight:600 !important;
  letter-spacing:.02em;
}
#service .work-card .card-controls,
#sites .work-card .card-controls{
  justify-content:flex-end;
  margin-top:18px;
}
#service .work-card .card-scroller,
#sites .work-card .card-scroller{
  padding-bottom:10px;
}
@media(max-width:980px){
  #service .section-title-copy,
  #sites .section-title-copy{
    max-width:100%;
    margin-top:18px;
    font-size:14px !important;
  }
  #service .work-card .card-controls,
  #sites .work-card .card-controls{
    justify-content:flex-start;
    margin-top:16px;
  }
}


/* v32 title alignment only */
#service .section-title,
#sites .section-title{
  align-self:start !important;
}
#service .section-title-copy,
#sites .section-title-copy{
  margin-top:34px !important;
}
@media(max-width:980px){
  #service .section-title-copy,
  #sites .section-title-copy{
    margin-top:26px !important;
  }
}


/* v33 section View More buttons */
.section-view-more{
  margin-top:36px;
  width:150px;
  height:150px;
  border-radius:50%;
  background:var(--blue);
  color:#fff;
  display:inline-grid;
  place-items:center;
  text-decoration:none;
  font-size:16px;
  font-weight:700;
  letter-spacing:.08em;
  box-shadow:0 22px 70px rgba(16,67,200,.20);
  transition:transform .55s cubic-bezier(.16,.84,.22,1), box-shadow .55s ease, filter .55s ease;
  will-change:transform,box-shadow,filter;
}
.section-view-more:hover,
.contact-button:hover{
  transform:translateY(-12px) scale(1.035);
  filter:brightness(1.08);
  box-shadow:0 34px 95px rgba(16,67,200,.34), 0 0 34px rgba(18,200,244,.26);
}
.contact-button{
  transition:transform .55s cubic-bezier(.16,.84,.22,1), box-shadow .55s ease, filter .55s ease;
  will-change:transform,box-shadow,filter;
}
@media(max-width:980px){
  .section-view-more{
    width:132px;
    height:132px;
    margin-top:28px;
    font-size:14px;
  }
}


/* v35 View More button position/text weight fix */
#service .section-view-more,
#sites .section-view-more{
  display:grid !important;
  margin:36px auto 0 !important;
  font-weight:500 !important;
}
@media(max-width:980px){
  #service .section-view-more,
  #sites .section-view-more{
    margin:28px auto 0 !important;
    font-weight:500 !important;
  }
}

/* v36 View More text font tuning */
#service .section-view-more,
#sites .section-view-more{
  font-family: rajdhani, sans-serif !important;
  font-weight:400 !important;
}


/* v37 View More font visible tuning */
#service .section-view-more,
#sites .section-view-more{
  font-family:'Rajdhani', rajdhani, sans-serif !important;
  font-weight:300 !important;
  letter-spacing:.075em !important;
}


/* v38 alphabet font unification */
body,
button,
input,
textarea,
select{
  font-family:"Rajdhani",rajdhani,"Segoe UI","Yu Gothic",YuGothic,"Hiragino Kaku Gothic ProN",Meiryo,sans-serif !important;
}


/* v39 typography refinements */
#message .orchestration-copy{
  font-size:clamp(46px,5.4vw,92px) !important;
  line-height:.88 !important;
}

.project-copy{
  font-size:clamp(50px,6.6vw,118px) !important;
  line-height:.88 !important;
}

.section-label,
.section-title .section-label,
.parallax-copy span{
  font-weight:500 !important;
}

.business-grid strong,
.steps strong{
  font-family:"Rajdhani",rajdhani,sans-serif !important;
  font-weight:400 !important;
}

.news-list time{
  font-size:16px !important;
  font-weight:800 !important;
  letter-spacing:.04em !important;
}

.business-grid span,
.steps span{
  font-size:17px !important;
  font-weight:700 !important;
  letter-spacing:.06em !important;
}

@media(max-width:980px){
  #message .orchestration-copy{
    font-size:clamp(36px,10vw,64px) !important;
  }
  .project-copy{
    font-size:clamp(40px,10.5vw,76px) !important;
  }
  .business-grid span,
  .steps span{
    font-size:16px !important;
  }
}


/* v40 card typography refinements only */
.business-grid strong,
.steps strong{
  font-weight:500 !important;
}

.business-grid span,
.steps span{
  font-size:20px !important;
  font-weight:700 !important;
}

@media(max-width:980px){
  .business-grid span,
  .steps span{
    font-size:18px !important;
  }
}


/* v41 card/title typography refinements */
.section-title h2{
  font-weight:600 !important;
}

.business-grid span,
.steps span{
  font-size:26px !important;
  font-weight:600 !important;
}

.business-grid strong,
.steps strong{
  color:var(--ink) !important;
  font-size:28px !important;
  font-weight:500 !important;
}

.business-grid article,
.steps div{
  border-top:3px solid var(--blue) !important;
}


/* v42 card underline and paragraph weight fix */
.business-grid article,
.steps div{
  border-top:0 !important;
  border-bottom:3px solid var(--blue) !important;
}

.business-grid p,
.steps p{
  font-weight:400 !important;
}


/* v45 project overlay cards */
.delay-3 {
  transition-delay: .36s;
}

.project-float-card {
  position: absolute;
  z-index: 3;
  opacity: 0;
  transform: translateY(42px);
  transition: opacity .9s ease, transform .9s cubic-bezier(.22,1,.36,1);
  pointer-events: none;
}

.project-float-card.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.project-float-card__inner {
  transform: translate3d(0, calc(var(--project-character-scroll-y, 0px) * .82), 0);
  will-change: transform;
}

.project-float-card img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 18px;
  box-shadow: 0 18px 42px rgba(7, 24, 60, .18);
}

.project-float-card--hokusai {
  right: clamp(36px, 8vw, 126px);
  top: clamp(208px, 30vh, 286px);
  width: min(22vw, 300px);
}

.project-float-card--movira {
  right: clamp(250px, 24vw, 420px);
  top: clamp(334px, 45vh, 420px);
  width: min(18vw, 250px);
}

.project-float-card--movira .project-float-card__inner {
  transform: translate3d(0, calc(var(--project-character-scroll-y, 0px) * .96), 0);
}

@media (max-width: 1280px) {
  .project-float-card--hokusai {
    right: 42px;
    top: 248px;
    width: min(26vw, 270px);
  }

  .project-float-card--movira {
    right: 220px;
    top: 384px;
    width: min(21vw, 220px);
  }
}

@media (max-width: 980px) {
  .project-float-card {
    position: relative;
    justify-self: end;
    margin-top: -28px;
  }

  .project-float-card--hokusai,
  .project-float-card--movira {
    top: auto;
    right: auto;
    width: min(62vw, 290px);
  }

  .project-float-card--hokusai {
    grid-column: 1;
    margin-left: auto;
    margin-right: 10px;
  }

  .project-float-card--movira {
    grid-column: 1;
    width: min(54vw, 230px);
    margin-left: auto;
    margin-right: 72px;
    margin-top: -40px;
  }
}


/* v46 project overlay card position/size adjustment */
.project-float-card--hokusai{
  right: clamp(44px, 8vw, 118px) !important;
  top: clamp(360px, 49vh, 468px) !important;
  width: 300px !important;
}

.project-float-card--movira{
  right: clamp(300px, 24vw, 430px) !important;
  top: clamp(432px, 58vh, 548px) !important;
  width: 300px !important;
}

@media (max-width: 1280px) {
  .project-float-card--hokusai{
    right: 40px !important;
    top: 392px !important;
    width: 300px !important;
  }

  .project-float-card--movira{
    right: 248px !important;
    top: 470px !important;
    width: 300px !important;
  }
}

@media (max-width: 980px) {
  .project-float-card--hokusai,
  .project-float-card--movira{
    width: 300px !important;
    max-width: calc(100vw - 56px);
  }

  .project-float-card--hokusai{
    margin-top: -6px !important;
    margin-right: 8px !important;
  }

  .project-float-card--movira{
    margin-right: 52px !important;
    margin-top: -18px !important;
  }
}


/* v47 project overlay cards: lower placement, more left, wider gap */
.project-float-card--hokusai{
  right: clamp(96px, 12vw, 168px) !important;
  top: clamp(468px, 60vh, 592px) !important;
  width: 300px !important;
}

.project-float-card--movira{
  right: clamp(420px, 31vw, 560px) !important;
  top: clamp(520px, 67vh, 654px) !important;
  width: 300px !important;
}

@media (max-width: 1280px) {
  .project-float-card--hokusai{
    right: 92px !important;
    top: 500px !important;
    width: 300px !important;
  }

  .project-float-card--movira{
    right: 390px !important;
    top: 560px !important;
    width: 300px !important;
  }
}

@media (max-width: 980px) {
  .project-float-card--hokusai,
  .project-float-card--movira{
    width: 300px !important;
    max-width: calc(100vw - 56px);
  }

  .project-float-card--hokusai{
    margin-top: 22px !important;
    margin-right: 12px !important;
  }

  .project-float-card--movira{
    margin-right: 108px !important;
    margin-top: 4px !important;
  }
}


/* v48 project overlay cards: move both cards further down */
.project-float-card--hokusai{
  top: clamp(548px, 69vh, 688px) !important;
}

.project-float-card--movira{
  top: clamp(604px, 76vh, 752px) !important;
}

@media (max-width: 1280px) {
  .project-float-card--hokusai{
    top: 586px !important;
  }

  .project-float-card--movira{
    top: 648px !important;
  }
}

@media (max-width: 980px) {
  .project-float-card--hokusai{
    margin-top: 48px !important;
  }

  .project-float-card--movira{
    margin-top: 26px !important;
  }
}


/* v49 project overlay cards: move whole 2-card group further down and left */
.project-float-card--hokusai{
  right: clamp(168px, 15vw, 248px) !important;
  top: clamp(620px, 78vh, 760px) !important;
}

.project-float-card--movira{
  right: clamp(588px, 41vw, 760px) !important;
  top: clamp(676px, 85vh, 824px) !important;
}

@media (max-width: 1280px) {
  .project-float-card--hokusai{
    right: 156px !important;
    top: 656px !important;
  }

  .project-float-card--movira{
    right: 476px !important;
    top: 716px !important;
  }
}

@media (max-width: 980px) {
  .project-float-card--hokusai{
    margin-right: 36px !important;
    margin-top: 84px !important;
  }

  .project-float-card--movira{
    margin-right: 138px !important;
    margin-top: 58px !important;
  }
}


/* v50 project overlay cards: move whole group up, move left card right */
.project-float-card--hokusai{
  top: clamp(540px, 68vh, 680px) !important;
}

.project-float-card--movira{
  right: clamp(468px, 33vw, 640px) !important;
  top: clamp(596px, 75vh, 744px) !important;
}

@media (max-width: 1280px) {
  .project-float-card--hokusai{
    top: 576px !important;
  }

  .project-float-card--movira{
    right: 356px !important;
    top: 636px !important;
  }
}

@media (max-width: 980px) {
  .project-float-card--hokusai{
    margin-top: 4px !important;
  }

  .project-float-card--movira{
    margin-right: 18px !important;
    margin-top: -22px !important;
  }
}


/* v51 move left overlay card 50px left and 60px down */
.project-float-card--movira{
  right: calc(clamp(468px, 33vw, 640px) + 50px) !important;
  top: calc(clamp(596px, 75vh, 744px) + 60px) !important;
}

@media (max-width: 1280px) {
  .project-float-card--movira{
    right: 406px !important;
    top: 696px !important;
  }
}

@media (max-width: 980px) {
  .project-float-card--movira{
    margin-right: 68px !important;
    margin-top: 38px !important;
  }
}


/* v52 move left overlay card 20px right */
.project-float-card--movira{
  right: calc(clamp(468px, 33vw, 640px) + 30px) !important;
}

@media (max-width: 1280px) {
  .project-float-card--movira{
    right: 386px !important;
  }
}

@media (max-width: 980px) {
  .project-float-card--movira{
    margin-right: 48px !important;
  }
}



/* v65 smartphone responsive consolidation */
@media (max-width: 980px) {
  html, body {
    width:100%;
    max-width:100%;
    overflow-x:hidden;
  }

  .site-header {
    position:fixed !important;
    top:0;
    left:0;
    right:0;
    height:64px;
    padding:0 20px !important;
    background:rgba(255,255,255,.94) !important;
    box-shadow:0 8px 28px rgba(7,46,100,.08);
    backdrop-filter:blur(12px);
    mix-blend-mode:normal !important;
    pointer-events:auto;
  }

  .site-header .logo img {
    width:104px !important;
  }

  .menu-button {
    display:flex !important;
    width:42px;
    height:42px;
    border:0;
    background:transparent;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    gap:7px;
    padding:0;
    pointer-events:auto;
    z-index:2;
  }

  .menu-button span {
    display:block;
    width:24px;
    height:1px;
    background:var(--ink);
    transition:transform .25s ease;
  }

  .nav {
    position:fixed;
    top:64px;
    left:0;
    right:0;
    display:flex !important;
    flex-direction:column;
    gap:0;
    padding:12px 20px 22px;
    background:rgba(255,255,255,.98);
    border-top:1px solid rgba(16,67,200,.1);
    box-shadow:0 18px 36px rgba(7,46,100,.08);
    transform:translateY(-120%);
    opacity:0;
    visibility:hidden;
    transition:transform .28s ease, opacity .28s ease, visibility .28s ease;
  }

  .nav a {
    padding:13px 2px;
    font-size:15px;
    border-bottom:1px solid rgba(16,67,200,.08);
  }

  body.is-menu-open .nav {
    transform:translateY(0);
    opacity:1;
    visibility:visible;
  }

  body.is-menu-open .menu-button span:first-child {
    transform:translateY(4px) rotate(45deg);
  }

  body.is-menu-open .menu-button span:last-child {
    transform:translateY(-4px) rotate(-45deg);
  }

  .section {
    min-height:auto !important;
    padding:92px 24px 72px !important;
    display:block !important;
  }

  .hero {
    min-height:100svh !important;
    height:100svh !important;
    padding:64px 24px 24px !important;
    overflow:hidden !important;
  }

  .hero-logo-stage {
    top:30% !important;
    left:50% !important;
    width:100% !important;
  }

  .hero-logo-stage img {
    width:190px !important;
    max-width:66vw !important;
  }

  .hero-left-copy {
    left:24px !important;
    right:24px !important;
    top:auto !important;
    bottom:110px !important;
    width:auto !important;
    font-size:9px !important;
    line-height:1.7 !important;
    letter-spacing:.035em !important;
    color:rgba(8,22,54,.34) !important;
    white-space:normal !important;
    overflow-wrap:anywhere;
  }

  .scroll-label {
    right:20px !important;
    left:auto !important;
    bottom:34px !important;
  }

  #message .body-copy {
    position:static !important;
    width:100% !important;
    margin-top:28px !important;
    transform:translateY(-40px);
  }

  .message,
  .about,
  .works,
  .workflow,
  .project,
  .news,
  .contact {
    grid-template-columns:1fr !important;
    gap:0 !important;
  }

  .vertical-copy {
    writing-mode:horizontal-tb !important;
    justify-self:start !important;
    margin:30px 0 0 !important;
    font-size:30px !important;
    line-height:1.65 !important;
    letter-spacing:.04em !important;
  }

  .section-title,
  .section-title.center {
    text-align:left !important;
    align-self:auto !important;
    justify-self:auto !important;
  }

  .section-title h2 {
    font-size:clamp(32px,10vw,44px) !important;
    line-height:1.2 !important;
  }

  .section-title-copy,
  .wide-copy,
  .project-lead,
  .contact-copy {
    width:100% !important;
    margin-top:28px !important;
    line-height:1.9 !important;
  }

  #business,
  #service,
  #sites,
  #workflow,
  #contact {
    padding-top:72px !important;
  }

  #business .section-title { transform:translateY(-80px); }
  #business .wide-copy { margin-top:-48px !important; }
  #service .section-title { transform:translateY(-50px); }
  #sites .section-title { transform:translateY(-100px); }
  #workflow .section-title { transform:translateY(-68px); }
  #contact .section-title { transform:translateY(-68px); }

  .business-grid,
  .steps {
    grid-template-columns:1fr !important;
    gap:20px !important;
    width:100% !important;
    margin-top:38px !important;
  }

  .business-grid article,
  .steps div {
    padding:22px 0 0 !important;
    background:transparent !important;
    backdrop-filter:none !important;
  }

  .parallax-showcase {
    min-height:620px !important;
    padding:72px 0 64px !important;
    align-items:flex-start !important;
  }

  .parallax-copy {
    position:relative !important;
    left:auto !important;
    top:auto !important;
    z-index:5;
    padding:0 24px;
  }

  .parallax-copy strong {
    font-size:clamp(34px,10vw,48px) !important;
    line-height:1.25 !important;
  }

  .parallax-track {
    position:absolute !important;
    left:0 !important;
    top:210px !important;
    width:max-content !important;
    min-width:900px;
    gap:18px !important;
    padding:0 24px !important;
  }

  .parallax-panel,
  .parallax-panel.is-large,
  .parallax-panel.is-tall {
    flex:0 0 220px !important;
    width:220px !important;
    height:300px !important;
  }

  .work-card {
    width:100% !important;
    max-width:100% !important;
    padding-top:0 !important;
    margin-top:-70px !important;
    overflow:visible !important;
  }

  #service .work-card,
  #sites .work-card {
    transform:translateY(-50px);
  }

  .card-scroller {
    width:calc(100vw - 24px) !important;
    margin-left:0 !important;
    padding:6px 24px 28px 0 !important;
    gap:16px !important;
    scroll-padding-left:0;
    scroll-padding-right:24px;
  }

  .service-card,
  .site-card {
    flex:0 0 min(84vw,390px) !important;
    width:min(84vw,390px) !important;
  }

  .service-card img,
  .site-card img {
    width:100% !important;
    height:auto !important;
    aspect-ratio:390/228;
  }

  .card-controls {
    justify-content:flex-end;
    padding-right:0;
    margin-top:4px;
  }

  .steps { margin-top:-24px !important; }

  .project {
    min-height:auto !important;
    padding-bottom:86px !important;
    overflow:hidden;
  }

  .project-content {
    position:relative;
    z-index:4;
  }

  .project-copy {
    margin:44px 0 0 !important;
    font-size:42px !important;
  }

  .project-character {
    position:relative !important;
    display:block !important;
    width:86vw !important;
    max-width:360px !important;
    height:auto !important;
    margin:52px auto 0 !important;
    transform:none !important;
    right:auto !important;
    left:auto !important;
    bottom:auto !important;
  }

  .project-float-card {
    position:relative !important;
    top:auto !important;
    right:auto !important;
    left:auto !important;
    width:min(64vw,250px) !important;
    max-width:none !important;
    margin:0 !important;
    transform:none !important;
    opacity:1 !important;
  }

  .project-float-card__inner {
    transform:none !important;
  }

  .project-float-card--hokusai {
    margin:-360px 14px 0 auto !important;
    z-index:6;
  }

  .project-float-card--movira {
    margin:28px auto 0 12px !important;
    z-index:6;
  }

  .news-list {
    width:100% !important;
    margin-top:34px !important;
  }

  .news-list a {
    display:block !important;
    padding:22px 0 !important;
    text-align:left !important;
  }

  .news-list time {
    display:block;
    margin-bottom:10px;
  }

  .contact-copy { margin-top:-30px !important; }
  .contact-button {
    width:140px !important;
    height:140px !important;
    margin-top:34px !important;
  }

  .footer-main {
    grid-template-columns:1fr !important;
    gap:36px !important;
  }
}

/* v66 smartphone spacing and project visual refinements */
@media (max-width: 980px) {
  .section-title,
  .section-title.center,
  .section-label,
  .section-title h2 {
    text-align:left !important;
    justify-content:flex-start !important;
    justify-self:start !important;
    align-self:auto !important;
  }

  .section-title h2,
  #service .section-title h2,
  #sites .section-title h2 {
    font-size:34px !important;
    line-height:1.25 !important;
  }

  .section-title-copy,
  .wide-copy,
  .project-lead,
  .contact-copy {
    margin-top:80px !important;
  }

  #service,
  #sites {
    padding:130px 24px 28px 0 !important;
  }

  #service .section-title,
  #sites .section-title {
    transform:none !important;
    padding-left:24px !important;
  }

  #service .work-card,
  #sites .work-card {
    margin-top:0 !important;
    transform:none !important;
  }

  #service .card-scroller,
  #sites .card-scroller {
    padding:130px 24px 28px 0 !important;
  }

  .project-character {
    margin-top:20px !important;
  }

  .project-float-card--hokusai {
    margin:-390px 14px 0 auto !important;
  }

  .project-float-card--movira {
    margin:8px auto 0 12px !important;
  }
}

/* v67 smartphone position refinements */
@media (max-width: 980px) {
  .site-header .logo {
    display:flex !important;
    align-items:center !important;
    height:100% !important;
  }

  .site-header .logo img {
    margin:0 !important;
  }

  .hero-left-copy {
    bottom:58px !important;
  }

  .parallax-copy strong {
    font-size:clamp(30px,8.8vw,42px) !important;
  }

  #service .work-card,
  #sites .work-card {
    transform:translateY(-30px) !important;
  }

  .project-character {
    margin-top:-8px !important;
  }

  .project-float-card {
    width:min(56vw,220px) !important;
  }

  .project-float-card--hokusai {
    margin:-408px 16px 0 auto !important;
  }

  .project-float-card--movira {
    margin:34px auto 0 10px !important;
  }

  .contact-copy {
    margin-top:-58px !important;
  }
}

/* v68 smartphone refinements */
@media (max-width: 980px) {
  .site-header .logo {
    transform:translateY(5px) !important;
  }

  #message .body-copy {
    margin-top:42px !important;
    transform:none !important;
  }

  #business .wide-copy {
    text-align:left !important;
    margin-left:0 !important;
    margin-right:0 !important;
  }

  .project-character {
    margin-top:-28px !important;
  }

  .project-float-card {
    width:min(50vw,196px) !important;
  }

  .project-float-card--hokusai {
    margin:-438px 14px 0 auto !important;
  }

  .project-float-card--movira {
    margin:42px auto 0 10px !important;
  }

  #contact {
    padding-top:130px !important;
  }

  .contact-copy {
    margin-top:34px !important;
    text-align:left !important;
  }

  .nav a {
    border-bottom:0 !important;
  }
}

/* v69 smartphone alignment refinements */
@media (max-width: 980px) {
  .hero-logo-stage {
    top:50% !important;
    transform:translate(-50%,-50%) !important;
  }

  .parallax-showcase {
    display:flex !important;
    align-items:center !important;
  }

  .parallax-copy {
    position:relative !important;
    top:auto !important;
    transform:none !important;
    width:100% !important;
  }

  #business,
  #service,
  #sites,
  #workflow,
  #contact {
    padding-top:130px !important;
  }

  #business .section-title,
  #service .section-title,
  #sites .section-title,
  #workflow .section-title,
  #contact .section-title {
    transform:none !important;
    margin-top:0 !important;
  }

  #service .card-scroller,
  #sites .card-scroller {
    width:100vw !important;
    margin-left:-24px !important;
    padding-left:30px !important;
    padding-right:30px !important;
    scroll-padding-left:30px !important;
    scroll-padding-right:30px !important;
  }

  .project-float-card--movira {
    margin-top:32px !important;
  }
}

/* v70 smartphone spacing refinements */
@media (max-width: 980px) {
  #business .wide-copy {
    margin-top:28px !important;
  }

  #news {
    padding-bottom:0 !important;
  }

  #contact {
    padding-top:80px !important;
  }

  #workflow .steps {
    margin-top:56px !important;
  }

  .parallax-showcase {
    min-height:460px !important;
    height:auto !important;
    padding:64px 0 !important;
    margin-top:72px !important;
    margin-bottom:72px !important;
  }
}

/* v71 smartphone alignment refinements */
@media (max-width: 980px) {
  .parallax-track {
    top:50% !important;
    margin-top:-150px !important;
  }

  .parallax-panel img {
    object-position:center center !important;
  }

  #service .card-scroller,
  #sites .card-scroller {
    margin-left:-24px !important;
    padding-left:24px !important;
    padding-right:24px !important;
    scroll-padding-left:24px !important;
    scroll-padding-right:24px !important;
  }

  #service .card-controls,
  #sites .card-controls {
    padding-left:0 !important;
    padding-right:0 !important;
    margin-left:0 !important;
  }

  #business .section-title,
  #service .section-title,
  #sites .section-title,
  #workflow .section-title,
  #project .section-title,
  #news .section-title {
    transform:translateY(-20px) !important;
  }

  #contact {
    padding-top:100px !important;
    padding-bottom:106px !important;
  }

  #contact .section-title {
    transform:translateY(20px) !important;
  }
}

/* v72 smartphone spacing corrections */
@media (max-width: 980px) {
  /* Move section headings up reliably without transform conflicts */
  #business .section-title,
  #service .section-title,
  #sites .section-title,
  #workflow .section-title,
  #project .section-title,
  #news .section-title {
    transform:none !important;
    position:relative !important;
    top:-20px !important;
  }

  /* Bring the first workflow item 20px closer to its heading */
  #workflow .steps {
    margin-top:36px !important;
  }

  /* Align cards and carousel controls with the 24px title inset */
  #service .card-scroller,
  #sites .card-scroller {
    width:100vw !important;
    margin-left:0 !important;
    padding-left:24px !important;
    padding-right:24px !important;
    scroll-padding-left:24px !important;
    scroll-padding-right:24px !important;
  }

  #service .card-controls,
  #sites .card-controls {
    box-sizing:border-box !important;
    width:100% !important;
    margin-left:0 !important;
    padding-left:24px !important;
    padding-right:24px !important;
  }
}

/* v73 smartphone project-card size and motion refinements */
@media (max-width: 980px) {
  .project-float-card {
    width:min(44vw,172px) !important;
  }

  .project-float-card__inner {
    transform:translate3d(0, calc(var(--project-character-scroll-y, 0px) * .18), 0) !important;
    will-change:transform;
    transition:transform .18s linear !important;
  }

  .project-float-card--hokusai {
    margin-right:18px !important;
  }

  .project-float-card--movira {
    margin-left:14px !important;
  }
}

/* v74 smartphone girl character motion */
@media (max-width: 980px) {
  .project-character {
    transform: translate3d(0, calc(var(--project-character-scroll-y, 0px) * .34), 0) !important;
    will-change: transform;
    transition: transform .18s linear !important;
  }
}

/* v75 smartphone project visual position refinements */
@media (max-width: 980px) {
  .project-character {
    margin-top: -8px !important;
  }

  .project-float-card--hokusai {
    margin: -452px 14px 0 auto !important;
  }

  .project-float-card--movira {
    margin: 24px auto 0 10px !important;
  }
}


/* v83 unified footer typography */
.footer,
.footer h3,
.footer li,
.footer a,
.footer p,
.footer span,
.footer small{
  font-family:"Noto Sans JP", sans-serif !important;
}

.footer-col h3,
.footer-col li,
.footer-col li a{
  font-size:14px !important;
  line-height:1.85 !important;
}

.footer-col h3{
  font-weight:700 !important;
  letter-spacing:.06em !important;
}

.footer-col li,
.footer-col li a{
  font-weight:400 !important;
}

.footer-col li a{
  color:rgba(255,255,255,.62) !important;
  transition:color .2s ease !important;
}

.footer-col li a:hover,
.footer-col li a:focus-visible{
  color:#fff !important;
}

.footer-bottom a{
  color:rgba(255,255,255,.50) !important;
  text-decoration:none !important;
  transition:color .2s ease !important;
}

.footer-bottom a:hover,
.footer-bottom a:focus-visible{
  color:#fff !important;
}

/* =========================================================
   WORDPRESS / ELEMENTOR HEADER OVERRIDE
   Shortcode: [nexus_header]
   JavaScript-free hamburger menu
========================================================= */

.elementor-location-header,
.elementor-location-header .elementor,
.elementor-location-header .elementor-element,
.elementor-location-header .elementor-widget,
.elementor-location-header .elementor-widget-shortcode,
.elementor-location-header .elementor-widget-container,
.elementor-location-header .elementor-shortcode,
.elementor-location-header .e-con,
.elementor-location-header .e-con-inner {
  width: 100% !important;
  max-width: none !important;
}

.elementor-location-header .elementor-widget-shortcode,
.elementor-location-header .elementor-widget-shortcode > .elementor-widget-container,
.elementor-location-header .elementor-shortcode {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

.site-header {
  position: relative !important;
  inset: auto !important;
  z-index: 20 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  width: 100% !important;
  max-width: none !important;
  min-height: 96px !important;
  margin: 0 !important;
  padding: 28px clamp(24px, 6vw, 96px) !important;
  background: transparent !important;
  pointer-events: auto !important;
  mix-blend-mode: normal !important;
  box-sizing: border-box !important;
}

.site-header .logo {
  display: flex !important;
  align-items: center !important;
  flex: 0 0 auto !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  pointer-events: auto !important;
}

.site-header .logo .custom-logo-link {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 0 !important;
}

.site-header .logo .custom-logo,
.site-header .logo img {
  display: block !important;
  width: 150px !important;
  max-width: 100% !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
}

.site-header .logo .nexus-site-name {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  color: var(--ink, #081636) !important;
  font-family: "Rajdhani", "Segoe UI", sans-serif !important;
  font-size: 24px !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  text-decoration: none !important;
}

.site-header .nexus-menu-toggle {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.site-header .nav {
  display: flex !important;
  align-items: center !important;
  flex: 0 1 auto !important;
  gap: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  pointer-events: auto !important;
}

.site-header .nexus-header-menu {
  display: flex !important;
  align-items: center !important;
  gap: 30px !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.site-header .nexus-header-menu > li {
  position: relative !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.site-header .nexus-header-menu > li > a {
  position: relative !important;
  display: block !important;
  margin: 0 !important;
  padding: 8px 0 !important;
  color: rgba(8, 22, 54, 0.72) !important;
  font-family: "Rajdhani", "Segoe UI", "Yu Gothic", YuGothic, Meiryo, sans-serif !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  line-height: 1.4 !important;
  letter-spacing: 0.04em !important;
  text-decoration: none !important;
}

.site-header .nexus-header-menu > li > a:hover,
.site-header .nexus-header-menu > li.current-menu-item > a,
.site-header .nexus-header-menu > li.current-menu-parent > a,
.site-header .nexus-header-menu > li.current-menu-ancestor > a {
  color: var(--blue, #1043c8) !important;
}

.site-header .nexus-header-menu .sub-menu {
  position: absolute !important;
  top: 100% !important;
  left: 50% !important;
  z-index: 100 !important;
  min-width: 200px !important;
  margin: 8px 0 0 !important;
  padding: 12px 0 !important;
  background: rgba(255, 255, 255, 0.98) !important;
  box-shadow: 0 18px 42px rgba(7, 46, 100, 0.12) !important;
  list-style: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  transform: translate(-50%, 10px) !important;
  transition: opacity .25s ease, visibility .25s ease, transform .25s ease !important;
}

.site-header .nexus-header-menu li:hover > .sub-menu,
.site-header .nexus-header-menu li:focus-within > .sub-menu {
  opacity: 1 !important;
  visibility: visible !important;
  transform: translate(-50%, 0) !important;
}

.site-header .nexus-header-menu .sub-menu li {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.site-header .nexus-header-menu .sub-menu a {
  display: block !important;
  padding: 10px 18px !important;
  color: rgba(8, 22, 54, 0.76) !important;
  font-size: 14px !important;
  line-height: 1.5 !important;
  white-space: nowrap !important;
  text-decoration: none !important;
}

.site-header .menu-button {
  position: relative !important;
  display: none !important;
  flex: 0 0 auto !important;
  width: 42px !important;
  height: 42px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  cursor: pointer !important;
  pointer-events: auto !important;
}

.site-header .menu-button span {
  position: absolute !important;
  left: 50% !important;
  display: block !important;
  width: 24px !important;
  height: 1px !important;
  margin: 0 !important;
  padding: 0 !important;
  background: var(--ink, #081636) !important;
  transform: translateX(-50%) !important;
  transition: top .25s ease, transform .25s ease !important;
}

.site-header .menu-button span:first-child {
  top: 16px !important;
}

.site-header .menu-button span:last-child {
  top: 25px !important;
}

@media (min-width: 981px) {
#masthead,
  .elementor-location-header {
    position: sticky !important;
    top: 0 !important;
    z-index: 9999 !important;
    width: 100% !important;
    background: rgba(255,255,255,.96) !important;
    box-shadow: 0 8px 28px rgba(7,46,100,.06) !important;
    -webkit-backdrop-filter: blur(12px) !important;
    backdrop-filter: blur(12px) !important;
    overflow: visible !important;
  }

  #masthead .site-header,
  .elementor-location-header .site-header {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
  }
}

@media (max-width: 980px) {
  .site-header {
    min-height: 64px !important;
    padding: 0 20px !important;
    background: rgba(255, 255, 255, 0.96) !important;
    box-shadow: 0 8px 28px rgba(7, 46, 100, 0.08) !important;
    -webkit-backdrop-filter: blur(12px) !important;
    backdrop-filter: blur(12px) !important;
  }

  .site-header .logo {
    height: 64px !important;
  }

  .site-header .logo .custom-logo,
  .site-header .logo img {
    width: 104px !important;
    max-width: 104px !important;
    max-height: 42px !important;
    object-fit: contain !important;
  }

  .site-header .menu-button {
    z-index: 102 !important;
    display: block !important;
  }

  .site-header .nav {
    position: absolute !important;
    top: 100% !important;
    right: 0 !important;
    left: 0 !important;
    z-index: 101 !important;
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    max-height: calc(100vh - 64px) !important;
    margin: 0 !important;
    padding: 12px 20px 22px !important;
    overflow-y: auto !important;
    background: rgba(255, 255, 255, 0.98) !important;
    border-top: 1px solid rgba(16, 67, 200, 0.1) !important;
    box-shadow: 0 18px 36px rgba(7, 46, 100, 0.08) !important;
    opacity: 0 !important;
    visibility: hidden !important;
    transform: translateY(-10px) !important;
    pointer-events: none !important;
    transition: opacity .25s ease, visibility .25s ease, transform .25s ease !important;
    box-sizing: border-box !important;
  }

  .site-header .nexus-header-menu {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0 !important;
    width: 100% !important;
  }

  .site-header .nexus-header-menu > li {
    width: 100% !important;
  }

  .site-header .nexus-header-menu > li > a {
    width: 100% !important;
    padding: 13px 2px !important;
    color: var(--ink, #081636) !important;
    font-size: 15px !important;
    line-height: 1.5 !important;
  }

  .site-header .nexus-header-menu .sub-menu {
    position: static !important;
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 0 6px 16px !important;
    background: transparent !important;
    box-shadow: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
  }

  .site-header .nexus-header-menu .sub-menu a {
    padding: 9px 2px !important;
    white-space: normal !important;
  }

  .site-header .nexus-menu-toggle:checked ~ .nav {
    opacity: 1 !important;
    visibility: visible !important;
    transform: translateY(0) !important;
    pointer-events: auto !important;
  }

  .site-header .nexus-menu-toggle:checked + .menu-button span:first-child {
    top: 21px !important;
    transform: translateX(-50%) rotate(45deg) !important;
  }

  .site-header .nexus-menu-toggle:checked + .menu-button span:last-child {
    top: 21px !important;
    transform: translateX(-50%) rotate(-45deg) !important;
  }
}

@media (max-width: 640px) {
  .site-header {
    padding-right: 16px !important;
    padding-left: 16px !important;
  }

  .site-header .nav {
    padding-right: 16px !important;
    padding-left: 16px !important;
  }

  .site-header .logo .custom-logo,
  .site-header .logo img {
    width: 96px !important;
    max-width: 96px !important;
  }
}

/* =========================================================
   MOBILE MENU CLIPPING FIX
========================================================= */

/* Elementor・ヘッダープラグイン側でメニューを切らせない */
.elementor-location-header,
.elementor-location-header .elementor,
.elementor-location-header .elementor-element,
.elementor-location-header .elementor-widget,
.elementor-location-header .elementor-widget-container,
.elementor-location-header .elementor-shortcode,
.elementor-location-header .e-con,
.elementor-location-header .e-con-inner,
#masthead,
#masthead .elementor,
#masthead .elementor-element,
#masthead .elementor-widget,
#masthead .elementor-widget-container,
#masthead .elementor-shortcode,
#masthead .e-con,
#masthead .e-con-inner {
  overflow: visible !important;
}

/* ヘッダー本体も展開部分を切らない */
.site-header {
  overflow: visible !important;
}

/* スマホメニューをヘッダー直下へ表示 */
@media screen and (max-width: 980px) {
  .site-header .nav {
    position: absolute !important;

    top: 100% !important;
    right: 0 !important;
    left: 0 !important;

    z-index: 99999 !important;

    display: block !important;

    width: 100% !important;
    max-width: none !important;
    min-height: 0 !important;
    max-height: calc(100vh - 64px) !important;

    margin: 0 !important;
    padding: 18px 20px 24px !important;

    overflow-x: hidden !important;
    overflow-y: auto !important;

    background: #ffffff !important;

    border-top: 1px solid rgba(16, 67, 200, 0.12) !important;
    box-shadow: 0 18px 36px rgba(7, 46, 100, 0.12) !important;

    opacity: 0 !important;
    visibility: hidden !important;

    transform: translateY(-8px) !important;

    pointer-events: none !important;
  }

  /* チェック時に表示 */
  .site-header .nexus-menu-toggle:checked ~ .nav {
    opacity: 1 !important;
    visibility: visible !important;

    transform: translateY(0) !important;

    pointer-events: auto !important;
  }

  /* メニュー本体 */
  .site-header .nexus-header-menu {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;

    width: 100% !important;

    margin: 0 !important;
    padding: 0 !important;

    list-style: none !important;
  }

  .site-header .nexus-header-menu > li {
    display: block !important;

    width: 100% !important;

    margin: 0 !important;
    padding: 0 !important;
  }

  .site-header .nexus-header-menu > li > a {
    display: block !important;

    width: 100% !important;

    padding: 14px 2px !important;

    color: #081636 !important;

    font-size: 15px !important;
    line-height: 1.5 !important;

    visibility: visible !important;
    opacity: 1 !important;
  }
}


/* =========================================================
   SUBPAGE CONTENT WIDTH — v93
========================================================= */

body:not(.home) main#content.site-main:not(:has(.product-page)) > .page-content {
  width: 100% !important;
  max-width: none !important;
  margin-right: auto !important;
  margin-left: auto !important;
  padding-right: clamp(28px, 8vw, 140px) !important;
  padding-left: clamp(28px, 8vw, 140px) !important;
}

body:not(.home) main#content.site-main:not(:has(.product-page)) > .page-content > :where(:not(.alignleft):not(.alignright):not(.alignfull):not(.nexus-news-list)) {
  width: 100% !important;
  max-width: none !important;
  margin-right: 0 !important;
  margin-left: 0 !important;
}

@media (max-width: 980px) {
  body:not(.home) main#content.site-main:not(:has(.product-page)) > .page-content {
    padding-right: 24px !important;
    padding-left: 24px !important;
  }
}

/* =========================================================
   NEXUS MOBILE MENU — BODY OVERLAY
   スマホ時はJSでボタンとナビをbody直下へ移動する
========================================================= */

@media (min-width: 981px) {
  body > #nexus-header-navigation,
  body > .menu-button {
    display: none !important;
  }
}

@media (max-width: 980px) {
  body.is-menu-open {
    overflow: hidden !important;
  }

  body > .menu-button.is-mobile-overlay-button {
    position: fixed !important;
    top: 20px !important;
    right: 24px !important;
    z-index: 2147483647 !important;
    display: flex !important;
    width: 48px !important;
    height: 48px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 50% !important;
    background: rgba(255,255,255,.96) !important;
    box-shadow: 0 10px 30px rgba(8,22,54,.12) !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    appearance: none !important;
    mix-blend-mode: normal !important;
  }

  body > .menu-button.is-mobile-overlay-button span {
    position: absolute !important;
    left: 13px !important;
    width: 22px !important;
    height: 2px !important;
    margin: 0 !important;
    background: #081636 !important;
    opacity: 1 !important;
    visibility: visible !important;
    transition: transform .3s ease !important;
  }

  body > .menu-button.is-mobile-overlay-button span:first-child {
    transform: translateY(-4px) !important;
  }

  body > .menu-button.is-mobile-overlay-button span:last-child {
    transform: translateY(4px) !important;
  }

  body > .menu-button.is-mobile-overlay-button.is-active span:first-child {
    transform: rotate(45deg) !important;
  }

  body > .menu-button.is-mobile-overlay-button.is-active span:last-child {
    transform: rotate(-45deg) !important;
  }

  body > #nexus-header-navigation.is-mobile-overlay {
    position: fixed !important;
    inset: 0 !important;
    z-index: 2147483646 !important;
    display: flex !important;
    width: 100vw !important;
    height: 100vh !important;
    height: 100dvh !important;
    margin: 0 !important;
    padding: 100px 28px 40px !important;
    border: 0 !important;
    background: #fff !important;
    color: #081636 !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: none !important;
    clip: auto !important;
    clip-path: none !important;
    filter: none !important;
    mix-blend-mode: normal !important;
    isolation: isolate !important;
    transition: opacity .25s ease, visibility .25s ease !important;
  }

  body.is-menu-open > #nexus-header-navigation.is-mobile-overlay {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
  }

  body > #nexus-header-navigation.is-mobile-overlay .nexus-header-menu {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    gap: 0 !important;
    list-style: none !important;
    opacity: 1 !important;
    visibility: visible !important;
  }

  body > #nexus-header-navigation.is-mobile-overlay .nexus-header-menu > li {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    border-bottom: 1px solid rgba(16,67,200,.14) !important;
    opacity: 1 !important;
    visibility: visible !important;
  }

  body > #nexus-header-navigation.is-mobile-overlay .nexus-header-menu > li > a {
    display: flex !important;
    width: 100% !important;
    min-height: 64px !important;
    margin: 0 !important;
    padding: 16px 4px !important;
    align-items: center !important;
    color: #081636 !important;
    -webkit-text-fill-color: #081636 !important;
    font-size: 24px !important;
    font-weight: 600 !important;
    line-height: 1.35 !important;
    letter-spacing: .04em !important;
    text-decoration: none !important;
    opacity: 1 !important;
    visibility: visible !important;
  }

  body > #nexus-header-navigation.is-mobile-overlay .sub-menu {
    position: static !important;
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 0 12px 18px !important;
    background: transparent !important;
    box-shadow: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
  }
}
/* =========================================================
   NEXUS MOBILE MENU — VISUAL/POSITION ADJUSTMENT
========================================================= */
@media (max-width: 980px) {

  /* 固定ヘッダー分だけスマホの本文開始位置を下げる */
  main#content.site-main {
    padding-top: 62px !important;
  }

  /* 読み込み直後から移動後まで、ボタン位置を完全固定 */
  .site-header .menu-button,
  body > .menu-button.is-mobile-overlay-button {
    position: fixed !important;
    top: 12px !important;
    right: 20px !important;
    z-index: 2147483647 !important;
    display: flex !important;
    width: 40px !important;
    height: 40px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    align-items: center !important;
    justify-content: center !important;
  }

  .site-header .menu-button span,
  body > .menu-button.is-mobile-overlay-button span {
    left: 9px !important;
    width: 22px !important;
    height: 1px !important;
    background: #081636 !important;
  }

  /* ヘッダーとロゴを常に最前面へ */
  .site-header {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 2147483645 !important;
    min-height: 64px !important;
    background: rgba(255,255,255,.96) !important;
    mix-blend-mode: normal !important;
  }

  .site-header .logo {
    position: relative !important;
    z-index: 2147483646 !important;
  }

  /* オーバーレイはヘッダー下から開始 */
  body > #nexus-header-navigation.is-mobile-overlay {
    top: 64px !important;
    right: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    width: 100vw !important;
    height: calc(100vh - 64px) !important;
    height: calc(100dvh - 64px) !important;
    padding: 20px 20px 36px !important;
  }

  /* PCメニューと同等の文字サイズ・太さへ */
  body > #nexus-header-navigation.is-mobile-overlay .nexus-header-menu > li > a {
    min-height: 50px !important;
    padding: 12px 2px !important;
    font-size: 14px !important;
    font-weight: 400 !important;
    line-height: 1.4 !important;
    letter-spacing: .04em !important;
  }
}
/* =========================================================
   MOBILE MENU INITIAL FLASH FIX
========================================================= */
@media (max-width: 980px) {
  .site-header .menu-button,
  body > .menu-button.is-mobile-overlay-button {
    opacity: 0 !important;
    visibility: hidden !important;
  }

  body.nexus-mobile-menu-ready .site-header .menu-button,
  body.nexus-mobile-menu-ready > .menu-button.is-mobile-overlay-button {
    opacity: 1 !important;
    visibility: visible !important;
  }
}

/* =========================================================
   TOP HEADER STATE
   トップのみ初期透過、スクロール後に白背景
========================================================= */

body.home #masthead,
body.home .elementor-location-header {
  position: fixed !important;
  top: 0 !important;
  right: 0 !important;
  left: 0 !important;
  z-index: 9999 !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  overflow: visible !important;
}

body.home #masthead .site-header,
body.home .elementor-location-header .site-header,
body.home .site-header {
  position: relative !important;
  top: auto !important;
  right: auto !important;
  left: auto !important;
  background: transparent !important;
  box-shadow: none !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  mix-blend-mode: multiply !important;
}

body.home .site-header.is-scrolled {
  background: rgba(255,255,255,.80) !important;
  box-shadow: 0 12px 38px rgba(7,46,100,.08) !important;
  -webkit-backdrop-filter: blur(16px) !important;
  backdrop-filter: blur(16px) !important;
  mix-blend-mode: normal !important;
}

body.home.is-menu-open .site-header {
  background: #fff !important;
  box-shadow: 0 12px 38px rgba(7,46,100,.08) !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  mix-blend-mode: normal !important;
}

@media (max-width: 980px) {
  body.home.is-menu-open .site-header,
  body.home.is-menu-open > .menu-button.is-mobile-overlay-button,
  body.home.is-menu-open > #nexus-header-navigation.is-mobile-overlay {
    background: #fff !important;
    mix-blend-mode: normal !important;
  }
}
/* =========================================================
   TOP HEADER SIZE — v93 EXACT
========================================================= */

body.home #masthead,
body.home .elementor-location-header,
body.home #masthead .elementor,
body.home #masthead .elementor-element,
body.home #masthead .elementor-widget,
body.home #masthead .elementor-widget-container,
body.home #masthead .elementor-shortcode,
body.home .elementor-location-header .elementor,
body.home .elementor-location-header .elementor-element,
body.home .elementor-location-header .elementor-widget,
body.home .elementor-location-header .elementor-widget-container,
body.home .elementor-location-header .elementor-shortcode {
  min-height: 0 !important;
  height: auto !important;
}

body.home .site-header {
  min-height: 0 !important;
  height: auto !important;
  padding: 34px clamp(24px,6vw,96px) !important;
}

body.home .site-header.is-scrolled {
  min-height: 0 !important;
  height: auto !important;
  padding-top: 18px !important;
  padding-bottom: 18px !important;
}

body.home .site-header .logo img,
body.home .site-header .logo .custom-logo {
  width: 150px !important;
  height: auto !important;
}
/* =========================================================
   TOP HEADER SCROLLED — OPAQUE FIX
========================================================= */

body.home #masthead .site-header.is-scrolled,
body.home .elementor-location-header .site-header.is-scrolled {
  background: rgba(255,255,255,.80) !important;
  box-shadow: 0 12px 38px rgba(7,46,100,.08) !important;
  -webkit-backdrop-filter: blur(16px) !important;
  backdrop-filter: blur(16px) !important;
  mix-blend-mode: normal !important;
}

body.home.is-menu-open #masthead .site-header,
body.home.is-menu-open .elementor-location-header .site-header {
  background: #fff !important;
  box-shadow: 0 12px 38px rgba(7,46,100,.08) !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  mix-blend-mode: normal !important;
}
/* =========================================================
   TOP MOBILE HEADER — FINAL FIX
   スマホのみ元の位置・サイズへ戻す
========================================================= */
@media (max-width: 980px) {

  body.home #masthead,
  body.home .elementor-location-header {
    height: 64px !important;
    min-height: 64px !important;
  }

  body.home #masthead .site-header,
  body.home .elementor-location-header .site-header,
  body.home .site-header {
    position: fixed !important;
    top: 0 !important;
    right: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 64px !important;
    min-height: 64px !important;
    padding: 0 20px !important;
    background: transparent !important;
    box-shadow: none !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    mix-blend-mode: multiply !important;
  }

  body.home .site-header .logo {
    position: relative !important;
    z-index: 2147483646 !important;
    display: flex !important;
    align-items: center !important;
    width: auto !important;
    height: 64px !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  body.home .site-header .logo .custom-logo-link {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 0 !important;
  }

  body.home .site-header .logo .custom-logo,
  body.home .site-header .logo img {
    display: block !important;
    width: 104px !important;
    max-width: 104px !important;
    height: auto !important;
    max-height: 42px !important;
    margin: 0 !important;
    padding: 0 !important;
    object-fit: contain !important;
  }

  body.home #masthead .site-header.is-scrolled,
  body.home .elementor-location-header .site-header.is-scrolled,
  body.home .site-header.is-scrolled {
    background: rgba(255,255,255,.80) !important;
    box-shadow: 0 12px 38px rgba(7,46,100,.08) !important;
    -webkit-backdrop-filter: blur(16px) !important;
    backdrop-filter: blur(16px) !important;
    mix-blend-mode: normal !important;
  }

  body.home.is-menu-open #masthead .site-header,
  body.home.is-menu-open .elementor-location-header .site-header,
  body.home.is-menu-open .site-header,
  body.home.is-menu-open > .menu-button.is-mobile-overlay-button,
  body.home.is-menu-open > #nexus-header-navigation.is-mobile-overlay {
    background: #fff !important;
    box-shadow: none !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    mix-blend-mode: normal !important;
  }
}
/* =========================================================
   V93 PC HEADER — EXACT FINAL
========================================================= */
@media (min-width: 981px) {
  body.home #masthead,
  body.home .elementor-location-header {
    position: fixed !important;
    top: 0 !important;
    right: 0 !important;
    left: 0 !important;
    z-index: 20 !important;
    width: 100% !important;
    height: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    overflow: visible !important;
  }

  body.home #masthead .elementor,
  body.home #masthead .elementor-element,
  body.home #masthead .elementor-widget,
  body.home #masthead .elementor-widget-container,
  body.home #masthead .elementor-shortcode,
  body.home .elementor-location-header .elementor,
  body.home .elementor-location-header .elementor-element,
  body.home .elementor-location-header .elementor-widget,
  body.home .elementor-location-header .elementor-widget-container,
  body.home .elementor-location-header .elementor-shortcode {
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  body.home #masthead .site-header,
  body.home .elementor-location-header .site-header,
  body.home .site-header {
    position: fixed !important;
    top: 0 !important;
    right: 0 !important;
    left: 0 !important;
    z-index: 20 !important;
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 34px clamp(24px, 6vw, 96px) !important;
    background: transparent !important;
    box-shadow: none !important;
    pointer-events: none !important;
    mix-blend-mode: multiply !important;
    transition: padding .35s ease, background .35s ease, box-shadow .35s ease !important;
  }

  body.home #masthead .site-header.is-scrolled,
  body.home .elementor-location-header .site-header.is-scrolled,
  body.home .site-header.is-scrolled {
    padding-top: 18px !important;
    padding-bottom: 18px !important;
    background: rgba(255,255,255,.80) !important;
    box-shadow: 0 12px 38px rgba(7,46,100,.08) !important;
    -webkit-backdrop-filter: blur(16px) !important;
    backdrop-filter: blur(16px) !important;
    mix-blend-mode: normal !important;
  }

  body.home .site-header .logo {
    display: block !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    pointer-events: auto !important;
    line-height: 0 !important;
  }

  body.home .site-header .logo a {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 0 !important;
  }

  body.home .site-header .logo img,
  body.home .site-header .logo .custom-logo {
    display: block !important;
    width: 150px !important;
    max-width: 150px !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  body.home .site-header .nav {
    display: flex !important;
    gap: 30px !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    pointer-events: auto !important;
  }

  body.home .site-header .nexus-header-menu {
    display: flex !important;
    align-items: center !important;
    gap: 30px !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
  }

  body.home .site-header .nexus-header-menu > li {
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  body.home .site-header .nexus-header-menu > li > a {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    color: rgba(8,22,54,.72) !important;
    font-size: 14px !important;
    font-weight: 400 !important;
    line-height: 1 !important;
    letter-spacing: .04em !important;
    text-decoration: none !important;
  }

  body.home .site-header .nexus-header-menu > li > a:hover {
    color: var(--blue) !important;
  }
}
/* =========================================================
   NEWS LIST PAGE
   下層コンテンツ幅いっぱいで表示
========================================================= */

body:not(.home) main#content.site-main {
  width: 100% !important;
  max-width: none !important;
  margin-right: 0 !important;
  margin-left: 0 !important;
}

body:not(.home) .page-content:has(.nexus-news-list) > .wp-block-heading {
  width: 100% !important;
  max-width: none !important;
  margin-right: 0 !important;
  margin-left: 0 !important;
  text-align: left !important;
}

body:not(.home) .nexus-news-list {
  width: 100% !important;
  max-width: none !important;
  margin-top: 0 !important;
  margin-right: 0 !important;
  margin-left: 0 !important;
}

body:not(.home) .nexus-news-list .nexus-news-item {
  display: grid !important;
  grid-template-columns: 150px minmax(0, 1fr) !important;
  gap: 28px !important;
  align-items: start !important;
  padding: 28px 0 !important;
  border-top: 1px solid var(--line) !important;
}

body:not(.home) .nexus-news-list .nexus-news-item:last-child {
  border-bottom: 1px solid var(--line) !important;
}

body:not(.home) .nexus-news-list .nexus-news-item time {
  position: relative !important;
  top: 2px !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  color: var(--blue) !important;
  text-decoration: none !important;
}

body:not(.home) .nexus-news-list .nexus-news-title {
  display: block !important;
  width: fit-content !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  color: var(--ink) !important;
  grid-template-columns: none !important;
  gap: 0 !important;
}

@media (max-width: 980px) {
  body:not(.home) .page-content:has(.nexus-news-list) > .wp-block-heading {
    width: 100% !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
  }

  body:not(.home) .nexus-news-list {
    width: 100% !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
  }

  body:not(.home) .nexus-news-list .nexus-news-item {
    display: block !important;
    padding: 22px 0 !important;
  }

  body:not(.home) .nexus-news-list .nexus-news-item time {
    top: 0 !important;
    margin-bottom: 10px !important;
  }
}
/* =========================================================
   SINGLE POST
========================================================= */

.nexus-single-post {
  width: 100%;
  padding: 65px clamp(24px, 8vw, 140px) 90px;
}

.nexus-single-post__article {
  width: 100%;
  max-width: none;
  margin: 0;
}

.nexus-single-post__header {
  margin: 0 0 42px;
}

.nexus-single-post__meta {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 0 0 18px;
}

.nexus-single-post__category {
  display: inline-block;
  margin: 0;
  padding: 6px 12px;
  background: var(--blue);
  color: #fff;
  font-size: 12px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: .08em;
}

.nexus-single-post__date {
  display: inline-block;
  margin: 0;
  color: rgba(8, 22, 54, .62);
  font-size: 16px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: .06em;
}

.nexus-single-post__title {
  margin: 0;
  color: var(--ink);
  font-size: clamp(24px, 2.4vw, 32px);
  font-weight: 600;
  line-height: 1.45;
  letter-spacing: .02em;
}

.nexus-single-post__content {
  color: var(--ink);
  font-size: 16px;
  line-height: 2;
}

.nexus-single-post__content p {
  margin: 0 0 1.6em;
  font: inherit;
}

.nexus-single-post__content p:last-child {
  margin-bottom: 0;
}

.nexus-single-post__content h2 {
  margin: 2.4em 0 .9em;
  font-size: 1.5em;
  line-height: 1.5;
}

.nexus-single-post__content h3 {
  margin: 2em 0 .8em;
  font-size: 1.25em;
  line-height: 1.5;
}

.nexus-single-post__content ul,
.nexus-single-post__content ol {
  margin: 0 0 1.6em 1.4em;
}

.nexus-single-post__content img {
  max-width: 100%;
  height: auto;
}

@media (max-width: 980px) {
  .nexus-single-post {
    padding: calc(64px + 65px) 24px 70px;
  }

  .nexus-single-post__header {
    margin-bottom: 34px;
  }

  .nexus-single-post__meta {
    gap: 12px;
    margin-bottom: 16px;
  }

  .nexus-single-post__title {
    font-size: clamp(22px, 6vw, 28px);
  }

  .nexus-single-post__content {
    font-size: 15px;
    line-height: 1.9;
  }
}
