
body{margin:0;background:#fbf8f1;font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN",sans-serif;color:#1a1a1a;-webkit-font-smoothing:antialiased;font-size:17px;overflow-x:clip}
html{overflow-x:clip}
a{color:#0d8fe8}
a:hover{color:#f2760a}
* { box-sizing: border-box; }
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.faq-card > div:last-child{border-bottom:none !important}
.facet-bg{background-color:#eef2f8;background-image:linear-gradient(135deg,rgba(255,255,255,.75) 25%,transparent 25%),linear-gradient(225deg,rgba(255,255,255,.75) 25%,transparent 25%),linear-gradient(45deg,rgba(18,58,112,.08) 25%,transparent 25%),linear-gradient(315deg,rgba(18,58,112,.08) 25%,transparent 25%);background-position:44px 0,44px 0,0 0,0 0;background-size:88px 88px}
.facet-bg-dark{background-color:#0f2a6b;background-image:linear-gradient(135deg,rgba(255,255,255,.06) 25%,transparent 25%),linear-gradient(225deg,rgba(255,255,255,.06) 25%,transparent 25%),linear-gradient(45deg,rgba(255,255,255,.04) 25%,transparent 25%),linear-gradient(315deg,rgba(255,255,255,.04) 25%,transparent 25%);background-position:44px 0,44px 0,0 0,0 0;background-size:88px 88px}
@keyframes shine-sweep{0%{transform:translateX(-160%) skewX(-20deg)}35%{transform:translateX(260%) skewX(-20deg)}100%{transform:translateX(260%) skewX(-20deg)}}
img{backface-visibility:hidden}
.rv{opacity:0;transform:translate3d(0,40px,0);transition:opacity 1.1s cubic-bezier(.16,1,.3,1),transform 1.3s cubic-bezier(.16,1,.3,1),translate .5s cubic-bezier(.16,1,.3,1),box-shadow .5s ease,border-color .5s ease}
.rv.rv-from-top{transform:translate3d(0,-40px,0)}
.rv.rv-in{opacity:1;transform:none}
@media (hover:hover){.grid-3 > .rv-in:hover,.grid-4 > .rv-in:hover{translate:0 -6px;box-shadow:0 26px 60px rgba(15,42,107,.12) !important;border-color:rgba(168,129,47,.6) !important}}
.lx-head > span:first-child{opacity:0;letter-spacing:.7em;transition:opacity 1.2s ease,letter-spacing 1.6s cubic-bezier(.16,1,.3,1)}
.lx-head.rv-in > span:first-child{opacity:1;letter-spacing:.02em}
.lx-head > h2{clip-path:inset(0 100% 0 0);transition:clip-path 1.3s cubic-bezier(.77,0,.18,1) .2s}
.lx-head.rv-in > h2{clip-path:inset(-10% -2% -10% -2%)}
.lx-head > span:nth-child(3){transform:scaleX(0);transition:transform 1s cubic-bezier(.77,0,.18,1) .8s}
.lx-head.rv-in > span:nth-child(3){transform:none}
.lx-head > p{opacity:0;transform:translateY(14px);transition:opacity 1s ease .9s,transform 1.1s cubic-bezier(.16,1,.3,1) .9s}
.lx-head.rv-in > p{opacity:1;transform:none}
.lx-frame{position:relative;clip-path:inset(10% 10% 10% 10% round 22px);transition:clip-path 1.6s cubic-bezier(.77,0,.18,1)}
.lx-frame.rv-in{clip-path:inset(-14px -14px -14px -14px round 30px)}
.lx-frame > img{transform:scale(1.2);transition:transform 2.4s cubic-bezier(.16,1,.3,1)}
.lx-frame.rv-in > img{transform:none}
.lx-frame::after{content:"";position:absolute;inset:0;border-radius:22px;background:linear-gradient(110deg,rgba(255,246,220,0) 30%,rgba(255,246,220,.6) 50%,rgba(255,246,220,0) 70%);transform:translateX(-130%);pointer-events:none}
.lx-frame.rv-in::after{transform:translateX(130%);transition:transform 1.8s cubic-bezier(.6,0,.3,1) .9s}
.rv .card-img{transform:scale(1.22);transition:transform 1.8s cubic-bezier(.16,1,.3,1)}
.rv.rv-in .card-img{transform:scale(1)}
.rv-wipe{clip-path:inset(0 100% 0 0 round 12px);transition:clip-path 1.1s cubic-bezier(.77,0,.18,1)}
.rv-wipe.rv-in{clip-path:inset(0 0 0 0 round 12px)}
.rv-wipe h2{opacity:0;transform:translateY(60%);transition:opacity .6s ease .5s,transform .9s cubic-bezier(.16,1,.3,1) .5s}
.rv-wipe.rv-in h2{opacity:1;transform:none}
.rv-pop{opacity:0;transform:scale(0) rotate(-120deg);transition:transform .8s cubic-bezier(.34,1.7,.5,1),opacity .3s ease}
.rv-in .rv-pop{opacity:1;transform:none}
.rv-pop-soft{opacity:0;transform:scale(.3) translateY(20px);transition:transform .9s cubic-bezier(.34,1.6,.5,1),opacity .4s ease}
.rv-in .rv-pop-soft{opacity:1;transform:none}
@keyframes lxTrack{from{opacity:0;letter-spacing:1.1em;filter:blur(6px)}to{opacity:1;letter-spacing:.42em;filter:none}}
@keyframes lxFade{from{opacity:0;transform:translateY(18px);filter:blur(8px)}to{opacity:1;transform:none;filter:none}}
@keyframes lxUnveil{from{-webkit-mask-position:100% 0;mask-position:100% 0;letter-spacing:.3em;opacity:.2}to{-webkit-mask-position:0 0;mask-position:0 0;letter-spacing:.06em;opacity:1}}
@keyframes lxShine{0%,55%{background-position:100% 0}100%{background-position:-150% 0}}
@keyframes lxLine{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes lxRing{0%{transform:translate(-50%,-50%) scale(.2);opacity:0}15%{opacity:.8}100%{transform:translate(-50%,-50%) scale(1);opacity:0}}
@keyframes lxDust{0%{transform:translateY(0);opacity:0}15%{opacity:.9}85%{opacity:.6}100%{transform:translateY(-70vh);opacity:0}}
@keyframes lxSpin{to{transform:rotate(360deg)}}
@keyframes lxBeam{0%,100%{transform:translateX(-30%) rotate(18deg);opacity:.25}50%{transform:translateX(30%) rotate(18deg);opacity:.5}}
@keyframes lxIn{from{opacity:0;transform:scale(.9)}to{opacity:1;transform:none}}
.lx-track{animation:lxTrack 1.6s cubic-bezier(.16,1,.3,1) .1s both}
.lx-fade{animation:lxFade 1.4s cubic-bezier(.16,1,.3,1) both}
.lx-main{-webkit-mask-image:linear-gradient(90deg,#000 40%,transparent 60%);mask-image:linear-gradient(90deg,#000 40%,transparent 60%);-webkit-mask-size:260% 100%;mask-size:260% 100%;-webkit-mask-position:0 0;mask-position:0 0;animation:lxUnveil 2s cubic-bezier(.65,0,.2,1) 1s both,lxShine 7s ease-in-out 3.2s infinite}
.lx-shine{animation:lxShine 7s ease-in-out 4s infinite}
.lx-line{transform-origin:left;animation:lxLine 1.4s cubic-bezier(.77,0,.18,1) 2s both}
.lx-ring{position:absolute;left:78%;top:44%;width:1100px;height:1100px;border-radius:50%;border:1px solid rgba(168,129,47,.3);pointer-events:none;animation:lxRing 9s cubic-bezier(.2,.6,.3,1) infinite;will-change:transform,opacity}
.lx-dust{position:absolute;bottom:-10px;border-radius:50%;background:#d9b66a;box-shadow:0 0 6px rgba(217,182,106,.7);pointer-events:none;animation:lxDust 14s linear infinite;will-change:transform,opacity}
.lx-beam{position:absolute;top:-20%;left:20%;width:40%;height:140%;background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.7),rgba(255,255,255,0));pointer-events:none;animation:lxBeam 14s ease-in-out infinite}
.lx-emblem{animation:lxIn 1.8s cubic-bezier(.16,1,.3,1) .8s both}
.lx-spin{animation:lxSpin 40s linear infinite}
@keyframes lxKen{from{transform:scale(1.02)}to{transform:scale(1.12)}}
@keyframes lxSig{0%{transform:translate(-50%,-50%) scale(.08);opacity:1}100%{transform:translate(-50%,-50%) scale(1);opacity:0}}
@keyframes lxBar{0%,100%{transform:scaleY(.25);opacity:.5}50%{transform:scaleY(1);opacity:1}}
.lx-photo{transform-origin:60% 18%;animation:lxKen 18s ease-in-out infinite alternate;will-change:transform}
.lx-sig{position:absolute;left:60%;top:18%;width:340px;height:340px;border-radius:50%;border:1.5px solid rgba(255,246,220,.9);box-shadow:0 0 12px rgba(233,211,154,.5);pointer-events:none;animation:lxSig 3.6s cubic-bezier(.2,.6,.3,1) infinite;will-change:transform,opacity}
.lx-bar{transform-origin:bottom;animation:lxBar 1.6s ease-in-out infinite}
@keyframes lxMarquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.lx-marquee{animation:lxMarquee 80s linear infinite;will-change:transform}
@media (max-width:768px){
  .lx-grid{grid-template-columns:1fr !important;padding:24px 20px 20px !important;gap:24px !important}
  .lx-emblem{max-width:none !important;padding:0 6px;order:-1}
  .lx-arch{aspect-ratio:2/1 !important;border-radius:120px 120px 14px 14px !important;outline-offset:6px !important}
  .lx-badge{display:none !important}
  .lx-sig{left:70% !important;top:15% !important}
  .lx-photo{transform-origin:70% 15% !important}
  .lx-main{font-size:clamp(36px,11vw,64px) !important}
  .lx-ring{left:90%;top:18%;width:700px;height:700px}
  .lx-feats > div{padding:0 14px !important}
  .lx-feats > div span span:first-child{font-size:38px !important}
  .lx-beam{display:none}
  .lx-marquee{bottom:auto !important;top:30%}
}
@media (prefers-reduced-motion: reduce){.lx-photo,.lx-sig,.lx-bar,.lx-marquee,.lx-track,.lx-fade,.lx-main,.lx-shine,.lx-line,.lx-ring,.lx-dust,.lx-beam,.lx-emblem,.lx-spin{animation:none !important;opacity:1 !important;-webkit-mask-image:none !important;mask-image:none !important}.lx-dust,.lx-ring{display:none !important}}
@keyframes heroZoom{from{transform:scale(1.12)}to{transform:scale(1)}}
@keyframes heroUp{from{opacity:0;transform:translateY(40px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion: reduce){.rv,.rv-wipe,.rv-wipe h2,.rv-pop,.rv-pop-soft,.rv .card-img{opacity:1 !important;transform:none !important;filter:none !important;clip-path:none !important;transition:none !important}}
.card-img{transform:translateZ(0)}
.shine-btn{position:relative;flex-shrink:0 !important;flex-grow:0 !important;flex-basis:auto !important}
.service-icon-box{width:100%;height:150px;display:flex;align-items:center;justify-content:center;background:#f2f6f8;color:#0f2a6b;isolation:isolate;contain:paint}
.sticky-cta-btn{flex:1 !important}
.shine-layer{position:absolute;inset:0;overflow:hidden;border-radius:inherit;pointer-events:none;contain:strict;isolation:isolate}
.shine-layer::after{content:'';position:absolute;top:0;left:0;width:35%;height:100%;background:linear-gradient(115deg,transparent,rgba(255,255,255,.65),transparent);will-change:transform;animation:shine-sweep 3s ease-in-out infinite}
@media (max-width: 1150px){
  .header-inner{flex-wrap:nowrap !important;flex-direction:column !important;gap:10px !important;padding:10px 20px !important;justify-content:center !important;max-width:100% !important}
  .header-inner > div[style*="flex:1"]{display:none !important}
  .header-cta-group{justify-content:center !important}
}
@media (max-width: 768px){
  header{backdrop-filter:none !important;-webkit-backdrop-filter:none !important;background:#fbf8f1 !important}
  .hero-img-pc{display:none !important}
  .hero-mobile{display:block !important}
  .header-inner{flex-wrap:nowrap !important;overflow-x:visible !important;padding:2px 14px !important;flex-direction:column !important;gap:8px !important;max-width:100% !important;box-sizing:border-box !important}
  .header-inner img{width:160px !important;height:auto !important}
  .service-icon-box{height:104px !important}
  .service-icon{width:82px !important;height:82px !important}
  .service-label{padding:10px 8px !important}
  .service-label > div{font-size:16px !important}
  .hero-cta-row{flex-direction:column !important;gap:10px !important}
  .hero-cta-row > a{flex:none !important;min-width:0 !important;width:100% !important;font-size:17px !important;padding:16px 12px !important}
  .hero-cta-row > a > span:last-child{flex-direction:row !important;align-items:center !important;gap:8px !important}
  .header-cta-group{position:fixed !important;bottom:0 !important;left:0 !important;right:0 !important;width:100% !important;z-index:80 !important;gap:0 !important;box-shadow:0 -2px 12px rgba(0,0,0,.18) !important;padding:0 !important}
  .header-cta-btn{flex:1 1 0 !important;min-width:0 !important;white-space:normal !important;font-size:15px !important;padding:16px 6px !important;border-radius:0 !important}
  .cta-form-btn{display:none !important}
  .cta-tel-btn{display:flex !important}
  body{padding-bottom:0 !important}
  footer{padding-bottom:110px !important}
  .header-inner > div[style*="flex:1"]{display:none !important}
  .grid-4{grid-template-columns:repeat(2,1fr) !important}
  .grid-3{grid-template-columns:1fr !important}
  .grid-2{grid-template-columns:1fr !important}
  .grid-2{grid-template-columns:1fr !important}
  .grid-3{flex-direction:column !important}
  .section-pad{padding:44px 18px !important}
  .service-icon-box{background:#fff !important}
  .service-icon{mix-blend-mode:normal !important}
  .shine-layer{display:none !important}
  .facet-bg{background-image:none !important;background-color:#eef2f8 !important}
  .section-pad h2{font-size:22px !important;text-wrap:balance}
  .section-pad p{text-wrap:pretty}
  .section-pad a.shine-btn{min-width:0 !important;width:100% !important;font-size:16px !important;white-space:normal !important}
  .header-mid{display:none !important}
  .header-inner{padding:2px 14px !important}
  p[style*="font-weight:900;color:#fff;margin:0 0 18px"]{font-size:17px !important}
  .header-inner > div:last-child a{padding:8px 12px !important;font-size:12px !important;min-width:0 !important}
  section#contact a.shine-btn{min-width:0 !important;font-size:18px !important}
  section#contact a.shine-btn span[style*="44px"]{width:32px !important;height:32px !important;font-size:16px !important}
}
@media (min-width: 769px){
  .sticky-cta{display:none !important}
}

[data-faq-q]{-webkit-tap-highlight-color:transparent}
@media (max-width:768px){.lx-dust:nth-of-type(n+7){display:none}.lx-ring{animation-duration:12s}}

.grid-3 > div > span[style*="position:absolute"],.grid-3 > div > span[style*="position: absolute"]{white-space:nowrap}
span[style*="border-radius:999px"]{white-space:nowrap}
