
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&family=Noto+Serif+JP:wght@400;700&family=M+PLUS+Rounded+1c:wght@400;700&family=Zen+Maru+Gothic:wght@400;700&family=Shippori+Mincho:wght@400;700&family=Klee+One:wght@400;600&family=DotGothic16&family=Yuji+Syuku&display=swap');
*{box-sizing:border-box}
body{margin:0;font-family:'Hiragino Sans','Yu Gothic',sans-serif;color:#222;min-height:100vh;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"palt"}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.page{max-width:480px;margin:0 auto;padding:24px 16px 80px;min-height:100vh;position:relative;z-index:1}
.bg-video{position:fixed;inset:0;width:100%;height:100%;object-fit:cover;background:#000;z-index:0}

.profile-head{text-align:center;padding:14px 0 8px}
.profile-head h1{font-size:22px;margin:0}
.ph-sub{color:#888;font-size:13px;margin-top:4px}

.blocks{display:flex;flex-wrap:wrap;align-items:flex-start;column-gap:12px;row-gap:18px;margin-top:14px}
.blk{width:100%}
.blk.w-lg{width:100%}
.blk.w-md{width:calc(50% - 6px)}
.blk.w-sm{width:calc(33.333% - 8px)}
.empty-pub{text-align:center;color:#999;padding:40px 0;width:100%}

/* profile image */
.pi-wrap{text-align:center}
.pi-cap{margin-top:8px;color:#555;font-size:14px}

/* link banner */
.lb{display:block;overflow:hidden}
.lb-text{padding:10px 12px;font-weight:600;text-align:center}

/* buttons */
.btn-wrap{text-align:center;width:100%}
.btn-block{display:inline-block;max-width:100%;box-sizing:border-box;padding:15px 24px;text-align:center;border-radius:14px;font-weight:700;font-size:16px;letter-spacing:.02em;text-decoration:none;box-shadow:0 1px 0 rgba(255,255,255,.18) inset,0 6px 16px rgba(20,30,50,.10),0 1px 2px rgba(20,30,50,.06);transition:transform .15s ease,box-shadow .15s ease,filter .15s ease;cursor:pointer}
.btn-block:hover{transform:translateY(-1px);box-shadow:0 1px 0 rgba(255,255,255,.20) inset,0 10px 22px rgba(20,30,50,.14),0 2px 4px rgba(20,30,50,.07);filter:brightness(1.03)}
.btn-block:active{transform:translateY(0);filter:brightness(.97)}
.btn-block:focus-visible{outline:2px solid rgba(31,111,235,.55);outline-offset:3px}
.btn-block.call{font-size:18px}

/* blog titles */
.bt{background:#fff;border-radius:16px;padding:6px 16px;box-shadow:0 1px 2px rgba(20,30,50,.04),0 6px 18px rgba(20,30,50,.06);border:1px solid rgba(20,30,50,.04)}
.bt-h{font-size:16px;margin:12px 4px;letter-spacing:.02em}
.bt-item{display:flex;justify-content:space-between;align-items:center;padding:14px 4px;border-bottom:1px solid #f0f2f5;gap:10px;transition:background .15s ease}
.bt-item:last-of-type{border-bottom:0}
.bt-item:hover{background:#fafbfc}
.bt-title{font-weight:600;font-size:15px}
.bt-date{color:#aaa;font-size:12px;flex:0 0 auto}
.bt-more{display:block;text-align:right;color:#1f6feb;font-size:13px;padding:10px 4px;font-weight:600}
.bt-empty{padding:14px 4px;color:#aaa}

/* carousel */
.carousel{overflow:hidden;border-radius:16px;box-shadow:0 6px 18px rgba(20,30,50,.08)}
.car-track{display:flex;transition:transform .4s ease}
.car-slide{flex:0 0 100%}
.car-slide img{width:100%;border-radius:0}

/* sns */
.sns-row{display:flex;flex-wrap:wrap;gap:14px;justify-content:center}
.sns-btn{display:flex;align-items:center;justify-content:center;border-radius:50%;color:#fff;font-weight:700;box-shadow:0 1px 0 rgba(255,255,255,.25) inset,0 -2px 6px rgba(0,0,0,.12) inset,0 6px 14px rgba(20,30,50,.18);transition:transform .15s ease,box-shadow .15s ease;position:relative}
.sns-btn:hover{transform:translateY(-2px);box-shadow:0 1px 0 rgba(255,255,255,.28) inset,0 -2px 6px rgba(0,0,0,.12) inset,0 10px 20px rgba(20,30,50,.22)}
.sns-btn:active{transform:translateY(0)}
.sns-btn:focus-visible{outline:2px solid rgba(255,255,255,.85);outline-offset:3px}
.sns-glyph{font-size:15px;line-height:1}
.sns-svg{width:54%;height:54%;display:block;color:#fff}

/* 店舗情報・地図 */
.store-card{background:#fff;border-radius:16px;padding:18px;box-shadow:0 1px 2px rgba(20,30,50,.04),0 8px 22px rgba(20,30,50,.06);border:1px solid rgba(20,30,50,.04)}
.store-row{font-size:14px;line-height:1.8;color:#333;padding:4px 0}
.store-row+.store-row{border-top:1px dashed #eef1f5}
.store-row a{color:#1f6feb}
.store-map{margin-top:12px;border-radius:12px;overflow:hidden;aspect-ratio:16/10;box-shadow:0 2px 8px rgba(20,30,50,.05) inset}
.store-map iframe{width:100%;height:100%;border:0;display:block}

/* クーポン（切符風ノッチ） */
.coupon{position:relative;background:#fff;border-radius:16px;padding:22px 18px 18px;text-align:center;box-shadow:0 1px 2px rgba(20,30,50,.04),0 10px 26px rgba(20,30,50,.08);border:1px solid rgba(20,30,50,.05)}
.coupon::before,.coupon::after{content:"";position:absolute;top:50%;width:18px;height:18px;background:radial-gradient(circle at center,transparent 9px,#fff 9.5px);transform:translateY(-50%);box-shadow:0 1px 2px rgba(20,30,50,.04)}
.coupon::before{left:-9px;clip-path:inset(0 0 0 9px)}
.coupon::after{right:-9px;clip-path:inset(0 9px 0 0)}
.coupon-badge{position:absolute;top:-12px;left:50%;transform:translateX(-50%);color:#fff;font-size:12px;font-weight:700;padding:4px 14px;border-radius:20px;white-space:nowrap;box-shadow:0 4px 10px rgba(0,0,0,.14);letter-spacing:.04em}
.coupon-title{font-size:19px;font-weight:700;margin:6px 0 4px;letter-spacing:.02em}
.coupon-detail{font-size:14px;color:#555;line-height:1.7}
.coupon-code{display:inline-block;margin-top:12px;font-family:ui-monospace,monospace;font-size:17px;font-weight:700;letter-spacing:3px;background:linear-gradient(180deg,#f7f9fc,#eef2f8);border:1px dashed #cdd6e2;border-radius:10px;padding:8px 18px;color:#33415c}
.coupon-note{font-size:11px;color:#aaa;margin-top:10px;line-height:1.6}

/* event */
.event-card{background:#fff;border-radius:16px;padding:18px;box-shadow:0 1px 2px rgba(20,30,50,.04),0 8px 22px rgba(20,30,50,.06);border:1px solid rgba(20,30,50,.04)}
.ev-date{color:#1f6feb;font-size:13px;font-weight:700;letter-spacing:.04em}
.ev-title{font-size:17px;font-weight:700;margin:6px 0;letter-spacing:.02em}
.ev-detail{color:#555;font-size:14px;line-height:1.75}
.ev-link{display:inline-block;margin-top:10px;color:#1f6feb;font-weight:700;font-size:14px}
.ev-empty{color:#999;text-align:center}

/* survey / mail form */
.survey-form,.mail-form{background:#fff;border-radius:16px;padding:18px;box-shadow:0 1px 2px rgba(20,30,50,.04),0 8px 22px rgba(20,30,50,.06);border:1px solid rgba(20,30,50,.04);display:flex;flex-direction:column;gap:14px}
.sv-h,.mf-h{font-size:17px;margin:0;letter-spacing:.02em}
.sv-q{display:flex;flex-direction:column;gap:7px}
.sv-qt{font-weight:600}
.sv-opt{display:flex;align-items:center;gap:8px;font-weight:400}
.survey-form input[type=text],.mail-form input,.mail-form textarea{width:100%;padding:12px;border:1px solid #d9dee6;border-radius:10px;font-size:16px;font-family:inherit;background:#fff;transition:border-color .15s ease,box-shadow .15s ease}
.survey-form input[type=text]:focus,.mail-form input:focus,.mail-form textarea:focus{outline:0;border-color:#1f6feb;box-shadow:0 0 0 3px rgba(31,111,235,.18)}
.mf-row{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:600}
.lead-msg{font-size:14px;color:#555;line-height:1.7;margin:0}
.req{color:#d0454c;margin-left:3px}
.survey-closed{background:#fff;border-radius:14px;padding:24px;text-align:center;color:#999;border:1px dashed #e0e6ef}

/* blog article */
.blog-article{background:#fff;border-radius:16px;padding:22px;box-shadow:0 1px 2px rgba(20,30,50,.04),0 8px 22px rgba(20,30,50,.06);border:1px solid rgba(20,30,50,.04)}
.ba-title{font-size:21px;margin:0 0 6px}
.ba-date{color:#aaa;font-size:12px;margin-bottom:16px}
.ba-body{line-height:1.85;font-size:16px}
.ba-body img{border-radius:8px;margin:10px 0}
.ba-body h2{font-size:19px}
.back-link{display:inline-block;margin-top:20px;color:#1f6feb;font-size:14px}
.ba-part{margin:26px 0}
.ba-part img{width:100%;border-radius:12px;display:block}
.ba-part.ba-rich{line-height:1.8;font-size:15px}
.ba-part.ba-rich img{border-radius:8px;margin:8px 0}

/* 公開ページ用モーダル（アンケート等） */
button.btn-block{border:0;cursor:pointer;font-family:inherit}
.pf-modal{position:fixed;inset:0;background:rgba(15,20,30,.55);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:16px;animation:pfFadeIn .18s ease}
.pf-modal[hidden]{display:none}
.pf-modal-inner{background:#fff;border-radius:18px;padding:20px;width:100%;max-width:440px;max-height:88vh;overflow-y:auto;position:relative;box-shadow:0 30px 80px rgba(15,20,30,.35);animation:pfPopIn .22s cubic-bezier(.2,.9,.3,1.2)}
.pf-modal-x{position:absolute;top:10px;right:12px;background:none;border:0;font-size:26px;color:#8a94a6;cursor:pointer;line-height:1;width:34px;height:34px;border-radius:50%;transition:background .15s ease,color .15s ease}
.pf-modal-x:hover{background:#f4f6f8;color:#33415c}
@keyframes pfFadeIn{from{opacity:0}to{opacity:1}}
@keyframes pfPopIn{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}

/* schedule (Googleカレンダー連携・空きスロット) */
.cal-dates{display:flex;gap:8px;overflow-x:auto;padding:4px 2px 10px;margin-bottom:14px;-webkit-overflow-scrolling:touch}
.cal-day-btn{flex:0 0 auto;background:#fff;border:1px solid #d9dee6;border-radius:12px;padding:8px 14px;cursor:pointer;font-family:inherit;display:flex;flex-direction:column;align-items:center;gap:2px;min-width:54px;transition:all .15s ease;box-shadow:0 1px 2px rgba(20,30,50,.04)}
.cal-day-btn .cal-day-md{font-weight:700;font-size:15px;line-height:1.1}
.cal-day-btn .cal-day-w{font-size:11px;color:#7a8597}
.cal-day-btn:hover{border-color:#1f6feb}
.cal-day-btn.on{background:#1f6feb;border-color:#1f6feb;color:#fff;box-shadow:0 4px 12px rgba(31,111,235,.28)}
.cal-day-btn.on .cal-day-w{color:rgba(255,255,255,.85)}
.cal-day-btn.full{opacity:.45}
.cal-slots-wrap{margin-bottom:14px}
.cal-slots{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.cal-slots[hidden]{display:none}
.cal-slot{background:#fff;border:1px solid #d9dee6;border-radius:10px;padding:11px 12px;cursor:pointer;font-family:inherit;display:flex;justify-content:space-between;align-items:center;gap:8px;transition:all .15s ease;box-shadow:0 1px 2px rgba(20,30,50,.04)}
.cal-slot:hover{border-color:#1f6feb;transform:translateY(-1px);box-shadow:0 4px 10px rgba(31,111,235,.14)}
.cal-slot.busy{background:#f4f6f8;color:#999;cursor:not-allowed;border-style:dashed}
.cal-slot.busy:hover{border-color:#d9dee6;transform:none;box-shadow:0 1px 2px rgba(20,30,50,.04)}
.cal-slot .slot-time{font-weight:600;font-size:15px}
.cal-slot .slot-tag{font-size:11px;background:#eef2f8;color:#7a8597;border-radius:20px;padding:2px 8px;font-weight:600}
.cal-slot .slot-tag.ok{background:#e6f7ec;color:#1c7a3f}

/* schedule (従来モード) */
.sched-lead{color:#555;font-size:14px;line-height:1.7}
.sched-form{background:#fff;border-radius:16px;padding:18px;display:flex;flex-direction:column;gap:14px;box-shadow:0 1px 2px rgba(20,30,50,.04),0 8px 22px rgba(20,30,50,.06);border:1px solid rgba(20,30,50,.04)}
.sched-form label{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:600}
.sched-form input,.sched-form textarea{padding:12px;border:1px solid #d9dee6;border-radius:10px;font-size:16px;font-family:inherit;transition:border-color .15s ease,box-shadow .15s ease}
.sched-form input:focus,.sched-form textarea:focus{outline:0;border-color:#1f6feb;box-shadow:0 0 0 3px rgba(31,111,235,.18)}
.cand{display:flex;align-items:center;gap:6px;margin-bottom:8px}
.cand input{flex:1;min-width:0}
.sched-cands{display:flex;flex-direction:column}

/* footer */
.profile-foot{text-align:center;margin-top:36px}
.foot-link{display:inline-block;color:#1f6feb;font-size:14px;padding:10px;font-weight:600}
.powered{color:#bbb;font-size:11px;margin-top:18px;letter-spacing:.06em}

/* opening slides */
.opening{position:fixed;inset:0;background:#000;z-index:1000;overflow:hidden;transition:opacity .35s}
.opening.hide{opacity:0}
.op-track{display:flex;height:100%;transition:transform .4s ease}
.op-slide{flex:0 0 100%;height:100%;background-size:cover;background-position:center}
.op-skip{position:absolute;top:16px;right:16px;background:rgba(0,0,0,.5);color:#fff;border:0;border-radius:20px;padding:8px 14px;font-size:13px;z-index:2}
.op-dots{position:absolute;bottom:24px;left:0;right:0;display:flex;gap:8px;justify-content:center;z-index:2}
.op-dots span{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.45)}
.op-dots span.on{background:#fff}

/* thanks */
.thanks{text-align:center;padding:60px 20px}
.th-mark{width:64px;height:64px;border-radius:50%;background:#28a745;color:#fff;font-size:32px;display:flex;align-items:center;justify-content:center;margin:0 auto 20px}

/* embed (YouTube/Spotify/Vimeo) */
.embed-wrap{width:100%;border-radius:14px;overflow:hidden;background:#000;box-shadow:0 4px 14px rgba(20,30,50,.08)}
.embed-wrap iframe{width:100%;height:100%;display:block;border:0}
.embed-wrap.embed-fixed{aspect-ratio:auto}
.embed-err{padding:12px;background:#fdecec;color:#c0392b;border-radius:10px;font-size:13px;text-align:center}

/* download */
.dl-card{display:flex;align-items:center;gap:12px;background:#fff;border:1.5px solid #d9dee6;border-radius:14px;padding:14px;text-decoration:none;color:#222;box-shadow:0 2px 8px rgba(20,30,50,.05);transition:transform .15s ease,box-shadow .15s ease}
.dl-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(20,30,50,.12)}
.dl-icon{flex:0 0 auto;width:48px;height:48px;border-radius:12px;color:#fff;display:flex;align-items:center;justify-content:center;font-size:22px;box-shadow:0 2px 6px rgba(0,0,0,.12)}
.dl-body{flex:1;min-width:0}
.dl-title{font-weight:700;font-size:15px;letter-spacing:.02em}
.dl-desc{color:#666;font-size:13px;line-height:1.6;margin-top:2px}
.dl-action{color:#1f6feb;font-size:12px;font-weight:700;margin-top:4px}

/* timeline */
.timeline{background:#fff;border-radius:16px;padding:20px 18px;box-shadow:0 1px 2px rgba(20,30,50,.04),0 8px 22px rgba(20,30,50,.06);border:1px solid rgba(20,30,50,.04)}
.tl-h{font-size:17px;margin:0 0 14px;letter-spacing:.02em}
.tl-list{position:relative;padding-left:18px}
.tl-list::before{content:"";position:absolute;left:5px;top:6px;bottom:6px;width:2px;background:var(--tl-line,#1f6feb);opacity:.25}
.tl-item{position:relative;padding-bottom:18px}
.tl-item:last-child{padding-bottom:0}
.tl-dot{position:absolute;left:-18px;top:6px;width:12px;height:12px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px rgba(0,0,0,.06)}
.tl-date{font-size:12px;font-weight:700;letter-spacing:.04em;margin-bottom:2px}
.tl-title{font-size:15px;font-weight:700}
.tl-desc{color:#555;font-size:14px;line-height:1.7;margin-top:2px}

/* faq */
.faq{display:flex;flex-direction:column;gap:8px}
.faq-h{font-size:17px;margin:0 0 6px;letter-spacing:.02em}
.faq-item{background:#fff;border:1px solid rgba(20,30,50,.06);border-radius:12px;padding:0;box-shadow:0 1px 2px rgba(20,30,50,.04);overflow:hidden}
.faq-item summary{cursor:pointer;padding:14px 16px;font-weight:600;font-size:14px;display:flex;justify-content:space-between;align-items:center;list-style:none;gap:10px}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::marker{display:none}
.faq-mark{flex:0 0 auto;color:#1f6feb;font-size:18px;font-weight:700;transition:transform .2s ease}
.faq-item[open] .faq-mark{transform:rotate(45deg)}
.faq-a{padding:0 16px 14px;color:#555;font-size:14px;line-height:1.75;white-space:pre-wrap}

/* pricing */
.pricing{display:flex;flex-direction:column}
.pr-h{font-size:17px;margin:0 0 12px;letter-spacing:.02em;text-align:center}
.pr-list{display:grid;grid-template-columns:1fr;gap:12px}
@media (min-width:380px){.pr-list{grid-template-columns:1fr 1fr}}
.pr-card{background:#fff;border:1.5px solid rgba(20,30,50,.08);border-radius:14px;padding:18px 14px;text-align:center;position:relative;box-shadow:0 1px 2px rgba(20,30,50,.04),0 6px 18px rgba(20,30,50,.05);display:flex;flex-direction:column}
.pr-card.on{border-width:2px;transform:scale(1.02);box-shadow:0 4px 12px rgba(31,111,235,.18),0 12px 28px rgba(20,30,50,.10)}
.pr-badge{position:absolute;top:-10px;left:50%;transform:translateX(-50%);color:#fff;font-size:11px;font-weight:700;padding:3px 12px;border-radius:20px;letter-spacing:.04em;white-space:nowrap}
.pr-name{font-size:14px;color:#666;font-weight:600}
.pr-price{font-size:24px;font-weight:700;margin:4px 0 10px;letter-spacing:.02em}
.pr-feats{list-style:none;padding:0;margin:0 0 12px;text-align:left;font-size:13px;line-height:1.8;color:#444}
.pr-feats li{padding-left:18px;position:relative}
.pr-feats li::before{content:"✓";position:absolute;left:0;color:#28a745;font-weight:700}
.pr-btn{display:inline-block;padding:10px 16px;color:#fff;border-radius:10px;font-size:13px;font-weight:700;text-decoration:none;margin-top:auto;box-shadow:0 4px 10px rgba(0,0,0,.12)}

/* works（実績一覧モーダル） */
.works-modal{max-width:560px}
.works-h{font-size:18px;margin:4px 0 16px;text-align:center;font-weight:700;letter-spacing:.04em;color:#222}
.works-list{display:flex;flex-direction:column;gap:16px}
.works-item{background:#fff;border-radius:14px;overflow:hidden;border:1px solid rgba(20,30,50,.06);box-shadow:0 1px 2px rgba(20,30,50,.04),0 4px 12px rgba(20,30,50,.04);transition:transform .15s ease,box-shadow .15s ease}
.works-item:hover{transform:translateY(-1px);box-shadow:0 4px 10px rgba(20,30,50,.06),0 10px 22px rgba(20,30,50,.08)}
.works-img{aspect-ratio:16/10;overflow:hidden;background:#11151c}
.works-img img{width:100%;height:100%;object-fit:cover;display:block}
.works-body{padding:14px 16px 16px}
.works-title{font-size:15px;font-weight:700;margin-bottom:6px;letter-spacing:.02em;color:#222}
.works-desc{font-size:13px;color:#555;line-height:1.75;white-space:pre-wrap;margin-bottom:10px}
.works-link{color:#1f6feb;font-size:13px;font-weight:700;display:inline-block;margin-top:2px}
.works-link:hover{text-decoration:underline}

/* testimonial */
.testimonial{display:flex;flex-direction:column}
.ts-h{font-size:17px;margin:0 0 12px;letter-spacing:.02em;text-align:center}
.ts-list{display:flex;flex-direction:column;gap:12px}
.ts-card{background:#fff;border-radius:16px;padding:18px;box-shadow:0 1px 2px rgba(20,30,50,.04),0 6px 18px rgba(20,30,50,.06);border:1px solid rgba(20,30,50,.04);position:relative}
.ts-card::before{content:"\201C";position:absolute;top:6px;left:14px;font-size:42px;color:rgba(31,111,235,.18);font-family:Georgia,serif;line-height:1}
.ts-quote{color:#444;font-size:14px;line-height:1.8;padding-left:8px;white-space:pre-wrap}
.ts-foot{display:flex;align-items:center;gap:10px;margin-top:12px;padding-top:12px;border-top:1px dashed #eef1f5}
.ts-photo{width:42px;height:42px;border-radius:50%;object-fit:cover;flex:0 0 auto;background:#1f6feb;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px}
.ts-photo.ts-initial{font-family:'Hiragino Sans','Yu Gothic',sans-serif}
.ts-meta{line-height:1.4}
.ts-name{font-weight:700;font-size:14px}
.ts-role{color:#888;font-size:12px}

/* ===== ファーストビュー（Hero）ブロック ===== */

/* .fv-page-hero: 先頭 hero を .page 内で全幅化するラッパー */
.fv-page-hero{
  margin-top:-24px; /* .page の padding-top 補正 */
  margin-left:calc(50% - 50vw);
  width:100vw;
  box-sizing:border-box;
  line-height:0;
}
.fv-page-hero .blk{width:100%;margin:0;padding:0;max-width:none}

/* .blocks 内の hero（先頭以外） */
.blocks .blk.blk-hero{
  width:100vw;
  margin-left:calc(50% - 50vw);
  box-sizing:border-box;
  max-width:none;
}

/* コア：全画面ビジュアルコンテナ */
.fv-hero{
  width:100%;
  position:relative;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
}

/* 背景画像 */
.fv-bg-img{
  position:absolute;inset:0;
  width:100%;height:100%;
  object-fit:cover;
  z-index:0;
  display:block;
}

/* 背景動画（MP4） */
.fv-bg-video{
  position:absolute;inset:0;
  width:100%;height:100%;
  object-fit:cover;
  z-index:0;
  display:block;
  pointer-events:none;
}

/* YouTube iframe cover（16:9比率の動画を全画面に拡大） */
.fv-yt{
  position:absolute;
  top:50%;left:50%;
  transform:translate(-50%,-50%);
  width:177.78vh;   /* 16/9 × 100vh */
  height:56.25vw;  /* 9/16 × 100vw */
  min-width:100%;
  min-height:100%;
  object-fit:cover;
  z-index:0;
}

/* 暗幕オーバーレイ */
.fv-overlay{position:absolute;inset:0;z-index:1}

/* テキストコンテナ */
.fv-inner{
  position:relative;
  z-index:2;
  text-align:center;
  padding:24px 20px;
  max-width:680px;
  width:100%;
}

/* ロゴ画像 */
.fv-logo{
  max-width:min(80vw,360px);
  max-height:200px;
  height:auto;
  width:auto;
  object-fit:contain;
  margin:0 auto 20px;
  display:block;
}

/* メインテキスト */
.fv-text{
  font-size:clamp(22px,5vw,44px);
  font-weight:700;
  letter-spacing:.02em;
  line-height:1.25;
  margin:0 0 8px;
  text-shadow:0 2px 14px rgba(0,0,0,.32);
}

/* サブテキスト */
.fv-subtext{
  font-size:clamp(13px,2.5vw,18px);
  font-weight:400;
  letter-spacing:.04em;
  line-height:1.55;
  margin:0;
  opacity:.88;
  text-shadow:0 1px 8px rgba(0,0,0,.28);
}

/* スクロールヒント */
.fv-scroll{
  position:absolute;
  bottom:28px;left:50%;
  transform:translateX(-50%);
  z-index:3;
  color:rgba(255,255,255,.72);
  animation:fvScrollBounce 1.8s ease-in-out infinite;
  line-height:0;
}
.fv-scroll svg{width:28px;height:28px;display:block}

/* カルーセルトラック */
.fv-car-track{
  position:absolute;inset:0;
  display:flex;
  z-index:0;
  transition:transform .85s cubic-bezier(.45,0,.55,1);
}
.fv-slide{
  flex:0 0 100%;
  background-size:cover;
  background-position:center;
}

/* ===== トランジションアニメーション（ロゴ登場） ===== */
@keyframes fvFade       {from{opacity:0}         to{opacity:1}}
@keyframes fvSlideRight {from{opacity:0;transform:translateX(-56px)} to{opacity:1;transform:none}}
@keyframes fvSlideDown  {from{opacity:0;transform:translateY(-40px)} to{opacity:1;transform:none}}
@keyframes fvZoomIn     {from{opacity:0;transform:scale(.86)}        to{opacity:1;transform:scale(1)}}
@keyframes fvBlurIn     {from{opacity:0;filter:blur(20px)}           to{opacity:1;filter:blur(0)}}
@keyframes fvScrollBounce{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(9px)}}

.fv-enter-fade       {animation:fvFade       .9s ease both}
.fv-enter-slide-right{animation:fvSlideRight .9s cubic-bezier(.2,.9,.3,1.05) both}
.fv-enter-slide-down {animation:fvSlideDown  .9s cubic-bezier(.2,.9,.3,1.05) both}
.fv-enter-zoom-in    {animation:fvZoomIn    1.1s cubic-bezier(.2,.9,.3,1)    both}
.fv-enter-blur-in    {animation:fvBlurIn     .9s ease both}

/* ===== PC対応（769px以上） ===== */
@media(min-width:769px){
  /* ページ幅を1140pxに拡大 */
  .page{max-width:1140px;padding:40px 40px 120px}
  .blocks{column-gap:24px;row-gap:28px}

  /* スマホ用の幅クラスをPC向けに更新 */
  .blk.w-md{width:calc(50% - 12px)}
  .blk.w-sm{width:calc(33.333% - 16px)}

  /* PC幅クラス（wpc-*）— スマホ設定を上書き */
  .blk.wpc-lg{width:100%!important}
  .blk.wpc-md{width:calc(50% - 12px)!important}
  .blk.wpc-sm{width:calc(33.333% - 16px)!important}
  .blk.wpc-xs{width:calc(25% - 18px)!important}

  /* プロフィール画像 PCサイズ */
  .pi-wrap.pi-pc-S  img{width:90px!important;height:90px!important}
  .pi-wrap.pi-pc-M  img{width:140px!important;height:140px!important}
  .pi-wrap.pi-pc-L  img{width:200px!important;height:200px!important}
  .pi-wrap.pi-pc-XL img{width:300px!important;height:300px!important}
  .pi-wrap.pi-pc-full img{width:100%!important;height:auto!important}

  /* 料金表 → 3カラム自動対応 */
  .pr-list{grid-template-columns:repeat(3,1fr)}

  /* お客様の声 → 2カラムグリッド */
  .ts-list{display:grid;grid-template-columns:1fr 1fr;gap:16px}

  /* 実績モーダル 幅拡大 */
  .works-modal{max-width:800px}

  /* ファーストビュー PC補正 */
  .fv-page-hero{margin-top:-40px} /* .page PC padding-top 補正 */
  .fv-logo{max-width:min(60vw,480px);max-height:280px}
  .fv-inner{max-width:860px}
}
