
/* Display type is distinct from the Noto Sans JP used for reading text. */
:root{--font-heading:'Zen Kaku Gothic New','Noto Sans JP',sans-serif}
body[data-page] :is(.page,main,.subpage-hero) :is(h1,h2,.h-display){font-family:var(--font-heading)!important;font-weight:900!important;font-synthesis:none}
body[data-page] :is(.page,main) h3{font-family:var(--font-heading)!important;font-weight:700!important}
body[data-page] .cost strong{font-family:var(--font-heading)!important;font-weight:900!important}

/* Shared tactile button treatment; colors retain the primary/secondary roles. */
body[data-page] :is(.btn,.gt-btn,.subpage-action,.shell-contact,.shell-footer-cta),
body[data-page] .page .gt-btn,
body[data-page] .gt-home-hero a.gt-btn{
 --button-fill:linear-gradient(155deg,#34778b 0%,#23546b 54%,#15394f 100%);
 --button-ink:#fff;--button-edge:#0b293b;
 background:var(--button-fill)!important;color:var(--button-ink)!important;
 border:1px solid #ffffff32!important;border-radius:10px!important;
 box-shadow:inset 0 1px 0 #ffffff42,0 3px 0 var(--button-edge),0 7px 15px #0a243225!important;
 text-decoration:none;transform:translateY(0);font-weight:700;
 transition:transform .18s ease,box-shadow .18s ease,filter .18s ease!important;
}
body[data-page] :is(.subpage-action:not(.subpage-action-secondary),.shell-contact,.shell-footer-cta,.btn-orange),
body[data-page] .page .gt-btn.coral,
body[data-page] .gt-home-hero a.gt-btn.coral,
body[data-page] :is(.hero,.ais-hero,.op-hero,.tools-hero) .btn-primary{
 --button-fill:linear-gradient(155deg,#ffb27a 0%,#f58b49 52%,#e66c2b 100%);
 --button-ink:#102b3b;--button-edge:#a84d28;
}
body[data-page] :is(.btn-outline),
body[data-page] .page .gt-btn:not(.coral):not(.primary){
 --button-fill:linear-gradient(155deg,#fff,#edf3f4);
 --button-ink:#244b60;--button-edge:#a3b9c2;
 border-color:#b6c9d0!important;
}
body[data-page] .subpage-action-secondary,
body[data-page] .gt-home-hero a.gt-btn:not(.coral){
 --button-fill:linear-gradient(155deg,#ffffff17,#ffffff06);
 --button-ink:#edf6f6;--button-edge:#092a3c;
 border-color:#a6c6cd!important;
}
body[data-page] .subpage-action-secondary{padding:13px 18px}
body[data-page] :is(.btn,.gt-btn,.subpage-action,.shell-contact,.shell-footer-cta):hover,
body[data-page] .page .gt-btn:hover,
body[data-page] .gt-home-hero a.gt-btn:hover{
 transform:translateY(-2px)!important;filter:brightness(1.04);
 box-shadow:inset 0 1px 0 #ffffff55,0 5px 0 var(--button-edge),0 11px 20px #0a24322e!important;
}
body[data-page] :is(.btn,.gt-btn,.subpage-action,.shell-contact,.shell-footer-cta):active,
body[data-page] .page .gt-btn:active,
body[data-page] .gt-home-hero a.gt-btn:active{
 transform:translateY(2px)!important;filter:none;
 box-shadow:inset 0 1px 0 #ffffff24,0 1px 0 var(--button-edge),0 3px 8px #0a243222!important;
}
body[data-page] :is(.btn,.gt-btn,.subpage-action,.shell-contact,.shell-footer-cta):focus-visible{outline:3px solid #94ced1;outline-offset:5px}

/* Parallax moves the image/background layers, leaving reading and controls still. */
.b-parallax-target{transform:translate3d(var(--parallax-x,0px),var(--parallax-y,0px),0) rotate(var(--parallax-rotate,0deg)) scale(var(--parallax-scale,1))!important;transform-origin:center;will-change:transform;transition:none!important}
.subpage-hero.b-parallax-surface::before{transform:translate3d(0,var(--parallax-background-y,0px),0)}
.home-carousel.b-parallax-surface .carousel-slide::after{transform:translate3d(0,var(--parallax-background-y,0px),0);will-change:transform}
.home-carousel .carousel-photo{inset:-16%;width:132%;height:132%;max-width:none}
/* Each body section has a clipped background plane; it never captures input. */
.b-depth-section{position:relative;isolation:isolate}
.b-depth-layer{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none;user-select:none;--depth-color:57,123,139}
.b-depth-layer i{position:absolute;display:block;width:clamp(260px,36vw,580px);aspect-ratio:1;border:1px solid rgba(var(--depth-color),.13);border-radius:50%;right:-13%;top:12%;background:radial-gradient(circle at 35% 35%,rgba(var(--depth-color),.065),transparent 68%);transform:translate3d(var(--depth-x,0px),var(--depth-y,0px),0);will-change:transform}
.b-depth-layer i+i{width:clamp(180px,25vw,380px);right:auto;left:-10%;top:auto;bottom:8%;border-color:rgba(var(--depth-color),.08);transform:translate3d(calc(var(--depth-x,0px)*-1),calc(var(--depth-y,0px)*-.65),0)}
.b-depth-section[data-depth-variant="1"]>.b-depth-layer i{border-radius:28px;rotate:-18deg}
.b-depth-section[data-depth-variant="2"]>.b-depth-layer i{border-radius:0;border-width:1px 0;aspect-ratio:1.6;rotate:-24deg}
body[data-page="about"] .b-depth-layer,body[data-page="business"] .b-depth-layer{--depth-color:63,128,112}
body[data-page="tools"] .b-depth-layer,body[data-page="meishi"] .b-depth-layer{--depth-color:70,105,163}
body[data-page="fde"] .b-depth-layer,body[data-page="service"] .b-depth-layer{--depth-color:40,133,151}
body[data-page="recruit"] .b-depth-layer,body[data-page="news"] .b-depth-layer{--depth-color:168,115,71}
.b-body-parallax{transform:translate3d(0,var(--body-depth-y,0px),0);will-change:transform}
.ais-figure.b-parallax-background::before{background-position:center calc(50% + var(--parallax-y,0px))!important}
body[data-page="role"] .gt-hero-sec.b-parallax-background::after,.news-main.b-parallax-background::before{background-position:center calc(50% + var(--parallax-y,0px))!important}
@media(max-width:500px){body[data-page] .subpage-action-secondary{padding:12px 16px}}
@media(prefers-reduced-motion:reduce){
 .b-parallax-target{transform:none!important;will-change:auto}
 .b-body-parallax,.b-depth-layer i{transform:none!important;will-change:auto}
 .subpage-hero.b-parallax-surface::before,.home-carousel.b-parallax-surface .carousel-slide::after{transform:none;will-change:auto}
 body[data-page] :is(.btn,.gt-btn,.subpage-action,.shell-contact,.shell-footer-cta){transition:none!important}
}
