*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#fff;color:#1A1A1A;font-family:"Hiragino Kaku Gothic ProN","Hiragino Sans","Noto Sans JP","Yu Gothic",Meiryo,sans-serif;font-size:20px;line-height:1.7;font-weight:500;-webkit-text-size-adjust:100%}
main{max-width:480px;margin:0 auto}
img,video{display:block;width:100%;height:auto}
h2{font-size:28px;line-height:1.5;margin:0 0 32px;font-weight:700;text-align:center}
.img-sec{margin:0;padding:0 0 72px}
.img-sec:first-child{padding-top:0}
.cta-wrap{margin:40px 20px 0;text-align:center}
.btn{display:block;background:#2B4C7E;color:#fff;text-decoration:none;font-weight:700;font-size:20px;line-height:1.4;min-height:60px;padding:16px;display:flex;align-items:center;justify-content:center;border-radius:4px;border:0;text-align:center;cursor:pointer;box-shadow:none;font-family:inherit}
.btn:hover{background:#1F3A63}
.btn:focus-visible,a:focus-visible,summary:focus-visible,button:focus-visible{outline:3px solid #1A1A1A;outline-offset:2px}
.btn-block{width:100%;margin-top:32px}
.video-sec{padding:72px 0 120px}
.vstage{position:relative;aspect-ratio:4/5;background:#fff}
.vstage video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;pointer-events:none}
.vstage video.on{opacity:1}
.vsub{margin:-16px 20px 24px;text-align:center;font-size:20px;line-height:1.7}
.vlabel{margin:16px 0 8px;text-align:center;font-size:20px;color:#4A4A4A}
.vdots{display:flex;justify-content:center;gap:4px}
.vdots button{width:44px;height:44px;border:0;background:none;padding:0;cursor:pointer;position:relative}
.vdots button::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;background:#C9C9C9}
.vdots button[aria-current="true"]::after{background:#2B4C7E}
.video-sec h2,.gallery-sec h2{padding:0 20px}
.gallery-sec{padding:0 16px 72px}
.gallery{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:40px 12px}
.gallery li{margin:0}
.gallery .pair{display:grid;grid-template-columns:1fr 1fr;gap:4px;width:100%;border:0;background:none;padding:0;cursor:zoom-in;position:relative;font:inherit;color:inherit}
.gallery .pair span{position:absolute;left:4px;top:4px;font-size:14px;line-height:1.5;background:#1A1A1A;color:#fff;padding:0 6px;border-radius:2px}
.gallery .pair span+span{display:none}
.gallery .pair .a span{background:#2B4C7E}
.gallery .pair div{position:relative}
.gallery .pair img{aspect-ratio:2/3;object-fit:cover}
.gallery .cap{margin:8px 0 0;text-align:center;font-size:20px}
.note{margin:32px 0 0;text-align:center;color:#4A4A4A;font-size:20px}
.gallery-sec .cta-wrap{margin-left:4px;margin-right:4px}
.text-sec{padding:0 20px 72px}
.text-sec p{margin:0 0 16px}
.strong{font-weight:700;font-size:22px}
.nw{white-space:nowrap}
.faq details{border-top:1px solid #E5E5E5}
.faq details:last-child{border-bottom:1px solid #E5E5E5}
.faq summary{list-style:none;cursor:pointer;padding:20px 40px 20px 0;position:relative;font-weight:700;min-height:56px;font-size:22px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:8px;top:18px;font-size:24px;color:#2B4C7E;font-weight:400}
.faq details[open] summary::after{content:"−"}
.faq details p{margin:0 0 20px;color:#1A1A1A}
form label{display:block;margin:0 0 24px;font-weight:700}
form input[type=text],form input[type=email],form select,form textarea,form input[type=file]{display:block;width:100%;margin-top:8px;padding:12px;font-size:20px;font-family:inherit;color:#1A1A1A;border:1px solid #595959;border-radius:4px;background:#fff;line-height:1.5}
form input[type=file]{padding:10px}
fieldset{border:0;padding:0;margin:0 0 24px}
legend{font-weight:700;padding:0;margin-bottom:4px}
label.chk{display:flex;align-items:center;gap:12px;margin:0;font-weight:500;min-height:56px}
label.chk input{width:24px;height:24px;accent-color:#2B4C7E;margin:0}
.form-msg{margin:16px 0 0;font-weight:700;color:#2B4C7E;min-height:1.8em}
footer{max-width:480px;margin:0 auto;padding:24px 20px 140px;color:#4A4A4A;border-top:1px solid #E5E5E5;text-align:center}
footer p{margin:0 0 8px}
footer .strong{color:#1A1A1A}
.sticky-cta{position:fixed;left:50%;bottom:16px;width:min(448px,calc(100% - 32px));transform:translate(-50%,24px);opacity:0;visibility:hidden;transition:opacity .2s,transform .2s,visibility .2s;z-index:20}
.sticky-cta.show{transform:translate(-50%,0);opacity:1;visibility:visible}
.lb{position:fixed;inset:0;background:rgba(255,255,255,.98);z-index:100;display:flex;align-items:center;justify-content:center}
.lb[hidden]{display:none}
.lb-body{width:min(960px,calc(100% - 112px));max-height:100%;overflow:auto;padding:56px 0 24px}
.lb-pair{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.lb-pair figure{margin:0}
.lb-pair img{max-height:70vh;width:100%;object-fit:contain}
.lb-pair figcaption{text-align:center;color:#4A4A4A;font-size:20px}
.lb-cap{text-align:center;margin:12px 0 0;font-weight:700}
.lb-x{position:absolute;right:8px;top:8px;width:48px;height:48px;border:0;background:none;font-size:36px;line-height:1;cursor:pointer;color:#1A1A1A}
.lb-nav{position:absolute;top:50%;width:48px;height:64px;margin-top:-32px;border:0;background:none;font-size:48px;line-height:1;cursor:pointer;color:#1A1A1A}
.lb-prev{left:2px}.lb-next{right:2px}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.sticky-cta{transition:none}}

.ph{display:inline-block}
.video-sec{padding-top:128px}
.faq-sec{padding-top:72px}
.faq-sec h2{padding-top:32px}
#contact{padding-bottom:150px}
.gallery-sec{padding-bottom:110px}
.vbadge{margin:0 20px 12px;text-align:center;font-size:20px;font-weight:700;line-height:1.4;padding:6px 12px;border-radius:4px;color:#fff}
.vbadge.before{background:#6B6B6B}
.vbadge.after{background:#2B4C7E}
.hero,.btn-sub{display:none}
.sp-strip-ttl{margin:48px 20px 16px;text-align:center;font-size:20px;line-height:1.5;font-weight:700}
.sp-strip{overflow:hidden;width:100%;margin:0}
.sp-strip .strip-track{display:flex;gap:12px;width:max-content;animation:stripL 50s linear infinite}
.sp-strip:hover .strip-track,.sp-strip:active .strip-track,.sp-strip.paused .strip-track{animation-play-state:paused}
.sp-strip img{width:120px;height:180px;flex:none;object-fit:cover;border:1px solid #E5E5E5}
@keyframes stripL{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(min-width:1024px){
  #fv,.sp-strip-ttl,.sp-strip{display:none}
  .hero{display:block;padding:72px 0 56px;text-align:center;background:#fff;overflow:hidden}
  .hero h1{margin:0 0 16px;font-size:48px;line-height:1.4;font-weight:800;padding:0 40px}
  .hero-sub{margin:0 0 32px;font-size:22px;padding:0 40px}
  .hero-btns{display:flex;justify-content:center;gap:20px;margin:0 0 48px}
  .hero-btns .btn{width:280px}
  .hero-btns .btn-sub{display:flex;background:#fff;color:#2B4C7E;border:2px solid #2B4C7E}
  .hero-btns .btn-sub:hover{background:#EEF2F8}
  .strip{overflow:hidden;margin:0 0 16px;width:100%}
  .strip-track{display:flex;gap:16px;width:max-content;animation:stripL 60s linear infinite}
  .strip-r .strip-track{animation-name:stripR}
  .strip:hover .strip-track{animation-play-state:paused}
  .strip-track img{width:160px;height:240px;flex:none;object-fit:cover;border:1px solid #E5E5E5}
  @keyframes stripL{from{transform:translateX(0)}to{transform:translateX(-50%)}}
  @keyframes stripR{from{transform:translateX(-50%)}to{transform:translateX(0)}}
}
@media(prefers-reduced-motion:reduce){.strip-track,.sp-strip .strip-track{animation:none!important}}

.vh-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.contact-head img{display:block;width:100%;height:auto;margin:0 0 32px}

/* ===== CTA（2026-10-15 押したくなるボタン） ===== */
.cta{position:relative;display:block;max-width:440px;margin:44px auto 0;text-decoration:none;color:#fff;font-family:inherit;text-align:center;-webkit-tap-highlight-color:transparent}
.cta-badge{position:relative;display:inline-block;margin:0 auto 12px;padding:6px 16px;border-radius:999px;background:#fff;color:#C2412D;border:2px solid #C2412D;font-size:16px;font-weight:700;line-height:1.3}
.cta-badge::after{content:"";position:absolute;left:50%;bottom:-8px;width:12px;height:12px;background:#fff;border-right:2px solid #C2412D;border-bottom:2px solid #C2412D;transform:translateX(-50%) rotate(45deg)}
.cta-body{position:relative;display:flex;align-items:center;justify-content:center;gap:14px;min-height:76px;padding:12px 64px 12px 24px;border-radius:999px;overflow:hidden;transition:transform .08s ease,box-shadow .08s ease,background .2s}
.cta-text{display:flex;flex-direction:column;align-items:center;line-height:1.25}
.cta-main{font-size:24px;font-weight:800;letter-spacing:.04em}
.cta-sub{margin-top:4px;font-size:15px;font-weight:600;opacity:.92}
.cta-arrow{position:absolute;right:12px;top:50%;width:44px;height:44px;margin-top:-22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:800;transition:transform .2s}
.cta:hover .cta-arrow{transform:translateX(4px)}
.cta-body::before{content:"";position:absolute;top:0;left:-60%;width:40%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.35),transparent);transform:skewX(-20deg);animation:cta-shine 4.5s ease-in-out infinite}
@keyframes cta-shine{0%,70%{left:-60%}100%{left:130%}}
@media (prefers-reduced-motion:reduce){.cta-body::before{animation:none;display:none}}
/* A: 藍の立体 */
.cta--a .cta-body{background:#2B4C7E;box-shadow:0 6px 0 #1B3256}
.cta--a .cta-arrow{background:#fff;color:#2B4C7E}
.cta--a:hover .cta-body{background:#30558C}
.cta--a:active .cta-body{transform:translateY(6px);box-shadow:0 0 0 #1B3256}
/* B: 茜の立体（あたたかい赤） */
.cta--b .cta-body{background:#B8442F;box-shadow:0 6px 0 #7E2A1C}
.cta--b .cta-arrow{background:#fff;color:#B8442F}
.cta--b:hover .cta-body{background:#C24D37}
.cta--b:active .cta-body{transform:translateY(6px);box-shadow:0 0 0 #7E2A1C}
/* C: 白地に藍の縁（落ち着いた二段） */
.cta--c{color:#2B4C7E}
.cta--c .cta-body{background:#fff;border:3px solid #2B4C7E;box-shadow:0 6px 0 #2B4C7E}
.cta--c .cta-body::before{background:linear-gradient(100deg,transparent,rgba(43,76,126,.10),transparent)}
.cta--c .cta-arrow{background:#2B4C7E;color:#fff}
.cta--c:active .cta-body{transform:translateY(6px);box-shadow:0 0 0 #2B4C7E}
.cta{padding-bottom:6px}
/* 固定ボタン・フォーム送信・PC のヒーローも立体にそろえる */
.btn{border-radius:999px;box-shadow:0 5px 0 #1B3256;transition:transform .08s ease,box-shadow .08s ease,background .2s}
.btn:active{transform:translateY(5px);box-shadow:0 0 0 #1B3256}
.hero-btns .btn-sub{box-shadow:0 5px 0 #2B4C7E}
