/* ============================================================
   カラオケ WAVE 江ノ島店 LP — デザイン再現
   ============================================================ */

:root{
  --navy:        #1b3a68;
  --navy-deep:   #10254a;
  --navy-night:  #0d1f42;
  --gold:        #b8912f;
  --gold-bright: #c9a24b;
  --gold-pale:   #e6d9b6;
  --gold-deep:   #a07c22;
  --cream:       #fdfbf4;
  --white:       #ffffff;
  --sky:         #eaf4fb;
  --sky-deep:    #d9ecf7;
  --text:        #1b3a68;
  --line-gold:   #dccf9f;
  --shadow:      0 6px 20px rgba(27,58,104,.08);
  --serif: "Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:var(--serif);
  color:var(--text);
  background:var(--white);
  line-height:1.8;
  letter-spacing:.04em;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
.site-return{display:flex;justify-content:space-between;gap:20px;padding:12px max(20px,calc((100% - 1180px)/2));color:#fff;background:#10254a;font-size:.82rem;font-weight:700}.site-return a{color:inherit}.site-return a:hover{text-decoration:underline}
.footer-legal{margin-top:20px;color:#eef3fa;font-size:.75rem}.footer-legal a{color:inherit;text-decoration:underline;text-underline-offset:3px}
img{max-width:100%;height:auto;display:block}
ul,ol{list-style:none}
a{text-decoration:none;color:inherit}
.container{max-width:1080px;margin:0 auto;padding:0 24px}

.em-gold{color:var(--gold);font-weight:700}

/* ---------- ボタン ---------- */
.btn{
  display:inline-flex;align-items:center;gap:.55em;
  padding:.9em 2.1em;
  border-radius:999px;
  font-weight:700;font-size:1rem;letter-spacing:.06em;
  transition:transform .2s ease,box-shadow .2s ease,opacity .2s ease;
  box-shadow:0 4px 14px rgba(16,37,74,.22);
  white-space:nowrap;
}
.btn:hover{transform:translateY(-2px);opacity:.92}
.btn__icon{width:1.15em;height:1.15em;flex:none}
.btn__arrow{font-family:sans-serif;font-weight:400;margin-left:.2em;transform:translateY(-.05em)}
.btn--navy{background:var(--navy);color:#fff;border:1px solid rgba(255,255,255,.35)}
.btn--gold{background:linear-gradient(180deg,#cfa84e,#b8912f);color:#fff}
.btn--outline{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.85);box-shadow:none}
.btn--sm{padding:.7em 1.6em;font-size:.92rem}

/* ---------- セクション見出し ---------- */
.sec{padding:72px 0}
.sec-title{
  display:flex;align-items:center;justify-content:center;gap:18px;
  font-size:clamp(1.35rem,2.6vw,1.75rem);
  font-weight:700;color:var(--navy);
  text-align:center;line-height:1.5;
  margin-bottom:44px;
}
.sec-title__arrow{width:56px;flex:none;color:var(--gold-bright);display:inline-flex}
.sec-title__arrow svg{width:100%}
.sec-title__arrow--flip{transform:scaleX(-1)}
.sec-title--sparkle .sparkle{
  color:var(--gold-bright);font-size:1.05em;line-height:1;position:relative;flex:none;
}
.sec-title--sparkle .sparkle i{
  font-style:normal;font-size:.55em;position:absolute;top:-0.7em;left:1.1em;opacity:.8;
}
.sec-title--sparkle .sparkle--r i{left:auto;right:1.1em}

/* ============================================================
   HERO
============================================================ */
.hero{
  position:relative;
  background:
    linear-gradient(90deg,rgba(243,250,254,.95) 0%,rgba(243,250,254,.82) 28%,rgba(243,250,254,.35) 52%,rgba(243,250,254,0) 68%),
    url("../assets/karaoke_fv.png") right 32%/cover no-repeat;
  overflow:hidden;
}
.hero__inner{
  max-width:1160px;margin:0 auto;
  padding:90px 24px 130px;
}
.hero__photo-sp{display:none}
.hero__text{max-width:600px}
.hero__title{
  font-size:clamp(1.8rem,4.2vw,3rem);
  font-weight:900;color:var(--navy);
  line-height:1.45;letter-spacing:.05em;
  text-shadow:0 1px 0 rgba(255,255,255,.8),0 0 18px rgba(255,255,255,.7);
  margin-bottom:22px;
}
.hero__title-sub{font-size:.82em;white-space:nowrap}
.hero__lead-strong{
  font-size:clamp(1.05rem,1.8vw,1.3rem);
  font-weight:700;color:var(--navy);margin-bottom:6px;
}
.hero__lead{
  font-size:clamp(.85rem,1.3vw,.98rem);
  color:var(--navy);margin-bottom:22px;
}
.hero__badges{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:28px}
.badge{
  display:inline-flex;align-items:center;gap:.5em;
  background:rgba(255,255,255,.88);
  border:1px solid var(--gold-bright);
  border-radius:8px;
  padding:.45em 1em;
  font-size:.86rem;font-weight:600;color:var(--navy);
  box-shadow:0 2px 8px rgba(27,58,104,.06);
}
.badge__icon{width:1.2em;height:1.2em;color:var(--navy);flex:none}
.badge__icon--wave{color:#3b82c4}
.hero__cta{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:14px}
.hero__hours{font-size:.88rem;color:var(--navy);letter-spacing:.08em}
.hero__wave{position:absolute;left:0;right:0;bottom:-1px;line-height:0;z-index:2}
.hero__wave svg{width:100%;height:64px;display:block}
.hero__notes{position:absolute;inset:0;pointer-events:none;color:var(--gold-bright);z-index:0}
.note{position:absolute;opacity:.7}
.note--1{width:34px;top:9%;right:6%}
.note--2{width:24px;top:22%;right:14%;opacity:.5}
.note--3{width:26px;top:6%;left:55%;opacity:.4}

/* ============================================================
   悩みセクション
============================================================ */
.sec--concerns{background:var(--white);padding-top:64px}
.concern-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:20px;
  margin-bottom:40px;
}
.concern-card{
  background:var(--white);
  border:1px solid #e8e2cf;
  border-radius:12px;
  box-shadow:var(--shadow);
  padding:34px 16px 26px;
  text-align:center;
}
.concern-card__icon{display:inline-flex;width:56px;height:56px;color:var(--navy);margin-bottom:16px}
.concern-card__icon svg{width:100%;height:100%}
.concern-card p{font-size:.95rem;font-weight:600;line-height:1.7}
.concerns__lead{
  text-align:center;
  font-size:clamp(1rem,1.9vw,1.2rem);
  font-weight:600;
}
.concerns__lead .em-gold{font-size:1.12em}

/* ============================================================
   理由（ベネフィット）セクション
============================================================ */
.sec--benefits{background:var(--cream);padding-bottom:64px}
.benefit-grid{
  display:grid;grid-template-columns:repeat(5,1fr);gap:16px;
  margin-bottom:28px;
}
.benefit-card{
  background:var(--white);
  border:1px solid #eee6d2;
  border-radius:12px;
  box-shadow:var(--shadow);
  padding:28px 12px 24px;
  text-align:center;
}
.benefit-card__icon{display:inline-flex;width:54px;height:54px;color:var(--gold-bright);margin-bottom:14px}
.benefit-card__icon svg{width:100%;height:100%}
.benefit-card h3{font-size:1.02rem;font-weight:700;color:var(--gold-deep);margin-bottom:8px}
.benefit-card p{font-size:.84rem;line-height:1.75}
.benefits__note{text-align:center;font-size:.8rem;color:#6d7ea0}

/* ============================================================
   12:00から、江ノ島へ。
============================================================ */
.sec--noon{
  background:linear-gradient(180deg,#e7f3fb 0%,#dcedf8 100%);
  padding:80px 0;
}
.noon__grid{
  display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  gap:44px;align-items:start;margin-bottom:52px;
}
.noon__title{
  font-size:clamp(1.7rem,3.6vw,2.6rem);
  font-weight:900;color:var(--navy);
  letter-spacing:.05em;margin-bottom:12px;
}
.noon__time{font-size:1.3em;letter-spacing:.02em}
.noon__lead{font-size:1rem;font-weight:600;margin-bottom:24px}
.noon__chips{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:26px;max-width:460px}
.chip{
  background:var(--white);
  border:1px solid var(--line-gold);
  border-radius:10px;
  padding:16px 6px 12px;
  text-align:center;
  font-size:.85rem;font-weight:600;
  box-shadow:0 3px 10px rgba(27,58,104,.06);
  display:flex;flex-direction:column;align-items:center;gap:8px;
}
.chip__icon{display:inline-flex;width:34px;height:34px;color:var(--gold-bright)}
.chip__icon svg{width:100%;height:100%}
.noon__desc{font-size:.95rem;line-height:2.05}
.noon__visual{position:relative;padding:26px 10px 40px 0}
.noon__photo{
  width:100%;aspect-ratio:650/380;border-radius:14px;
  background-image:url("../assets/karaoke_fv.png");
  background-size:275% auto;
  background-position:18.8% 52%;
  box-shadow:0 14px 34px rgba(27,58,104,.22);
}
.noon__clock{
  position:absolute;top:-22px;right:-6px;width:128px;
  filter:drop-shadow(0 8px 16px rgba(27,58,104,.25));
}
.noon__coffee{
  position:absolute;bottom:-6px;right:8px;width:150px;
  filter:drop-shadow(0 8px 14px rgba(27,58,104,.2));
}
.noon-steps{
  background:var(--white);
  border-radius:16px;
  box-shadow:var(--shadow);
  padding:26px 36px;
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  max-width:900px;margin:0 auto;
}
.noon-steps__item{display:flex;align-items:center;gap:14px}
.noon-steps__num{
  flex:none;width:34px;height:34px;border-radius:50%;
  background:var(--navy);color:#fff;
  display:inline-flex;align-items:center;justify-content:center;
  font-size:1rem;font-weight:700;font-family:Georgia,serif;
}
.noon-steps__icon{flex:none;width:44px;height:44px;color:var(--navy)}
.noon-steps__icon svg{width:100%;height:100%}
.noon-steps__item:first-child .noon-steps__icon{color:#3b82c4}
.noon-steps__label{font-size:.92rem;font-weight:600;line-height:1.6}
.noon-steps__sep{flex:none;width:38px;color:var(--gold-bright)}
.noon-steps__sep svg{width:100%}

/* ============================================================
   安心フロー
============================================================ */
.sec--flow{background:var(--white)}
.flow-grid{
  display:grid;
  grid-template-columns:1fr 20px 1fr 20px 1fr 20px 1fr;
  gap:8px;align-items:stretch;margin-bottom:36px;
}
.flow-card{
  background:#fffdf8;
  border:1px solid #ece5d0;
  border-radius:12px;
  box-shadow:var(--shadow);
  padding:24px 12px 22px;
  text-align:center;
}
.flow-card__title{
  display:flex;align-items:center;justify-content:center;gap:8px;
  font-size:1.02rem;font-weight:700;color:var(--navy);
  margin-bottom:16px;white-space:nowrap;
}
.flow-card__num{
  flex:none;width:26px;height:26px;border-radius:50%;
  background:var(--navy);color:#fff;
  display:inline-flex;align-items:center;justify-content:center;
  font-size:.85rem;font-family:Georgia,serif;
}
.flow-card__icon{display:inline-flex;width:52px;height:52px;color:var(--navy);margin-bottom:14px}
.flow-card__icon svg{width:100%;height:100%}
.flow-card p{font-size:.88rem;line-height:1.75}
.flow-sep{align-self:center;color:var(--gold-bright);width:20px}
.flow-sep svg{width:100%}
.assure-list{
  display:flex;flex-wrap:wrap;justify-content:center;gap:14px;
}
.assure{
  display:inline-flex;align-items:center;gap:.6em;
  background:#fbf8ef;
  border:1px solid var(--line-gold);
  border-radius:999px;
  padding:.55em 1.4em;
  font-size:.88rem;font-weight:600;
}
.assure__check{flex:none;width:1.1em;height:1.1em;color:var(--gold-bright)}
.assure__check svg{width:100%;height:100%;display:block}

/* ============================================================
   店舗情報
============================================================ */
.sec--shop{background:var(--cream);padding:64px 0}
.shop__grid{
  display:grid;grid-template-columns:1fr 1.15fr 1fr;
  gap:32px;align-items:start;
}
.shop__photo img{
  border-radius:12px;
  box-shadow:0 12px 28px rgba(27,58,104,.18);
}
.shop__name{
  font-size:clamp(1.3rem,2.4vw,1.6rem);
  font-weight:900;color:var(--navy);
  margin-bottom:18px;letter-spacing:.04em;
}
.shop__branch{font-size:.82em}
.shop__list{margin-bottom:24px}
.shop__list li{
  display:flex;align-items:flex-start;gap:.6em;
  font-size:.95rem;font-weight:500;
  padding:.35em 0;
}
.shop__li-icon{flex:none;width:1.25em;height:1.25em;margin-top:.28em;color:var(--navy)}
.shop__cta{display:flex;flex-wrap:wrap;gap:12px}
.shop__map img{
  border-radius:12px;border:1px solid #e3ddc9;
  box-shadow:0 8px 20px rgba(27,58,104,.1);
  margin-bottom:14px;
}
.shop__access li{
  font-size:.85rem;line-height:1.9;
  padding-left:1em;text-indent:-1em;
}
.shop__access li::before{content:"・"}

/* ============================================================
   フッターCTA
============================================================ */
.footer-cta{
  position:relative;
  background:
    linear-gradient(180deg,rgba(11,26,56,.18) 0%,rgba(9,22,48,.38) 60%,rgba(7,18,42,.55) 100%),
    url("../assets/karaoke_footer.png") center 38%/cover no-repeat;
  color:#fff;
  padding:110px 24px 78px;
  overflow:hidden;
  text-align:center;
}
.footer-cta__inner{position:relative;max-width:820px;margin:0 auto;text-shadow:0 2px 14px rgba(5,14,32,.55)}
.footer-cta__catch{
  font-size:clamp(1.5rem,3.6vw,2.4rem);
  font-weight:900;letter-spacing:.05em;line-height:1.5;
  margin-bottom:10px;
}
.footer-cta__time{
  color:var(--gold-bright);
  font-size:1.5em;font-family:Georgia,"Noto Serif JP",serif;
  padding:0 .06em;
}
.footer-cta__time-unit{font-size:.62em}
.footer-cta__sub{font-size:clamp(.9rem,1.6vw,1.05rem);margin-bottom:34px;opacity:.95}
.footer-cta__brand{
  font-size:clamp(1rem,1.9vw,1.2rem);
  font-weight:600;letter-spacing:.2em;
  margin-bottom:30px;
}
.footer-cta__brand-en{
  font-family:"Cormorant Garamond",Georgia,serif;
  font-size:2.1em;font-weight:700;letter-spacing:.12em;
  padding:0 .15em;vertical-align:-.08em;
}
.footer-cta__buttons{
  display:flex;flex-wrap:wrap;justify-content:center;gap:18px;
  margin-bottom:16px;
}
.footer-cta__hours{font-size:.85rem;opacity:.85;letter-spacing:.1em}

/* ============================================================
   Reveal アニメーション
============================================================ */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}
.reveal.is-visible{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  html{scroll-behavior:auto}
}
@media(max-width:600px){.site-return{display:block}.site-return a{display:block;padding:4px 0}}

/* ============================================================
   レスポンシブ
============================================================ */
@media (max-width:1020px){
  .benefit-grid{grid-template-columns:repeat(3,1fr)}
  .shop__grid{grid-template-columns:1fr 1fr}
  .shop__map{grid-column:1/-1;max-width:520px;margin:0 auto}
}

@media (max-width:860px){
  .hero{background:
    radial-gradient(900px 400px at 78% -60px,#ffffff 0%,rgba(255,255,255,0) 55%),
    linear-gradient(165deg,#f3f9fd 0%,#dceef9 38%,#cfe7f6 62%,#e8f4fb 100%)}
  .hero__inner{padding-top:48px;padding-bottom:104px}
  .hero__photo-sp{
    display:block;width:100%;border-radius:16px;
    box-shadow:0 14px 30px rgba(27,58,104,.22);
    margin-bottom:28px;
  }
  .hero__text{max-width:none}
  .concern-grid{grid-template-columns:repeat(2,1fr)}
  .noon__grid{grid-template-columns:1fr;gap:56px}
  .noon__visual{max-width:520px;margin:0 auto;padding-top:30px}
  .noon-steps{flex-direction:column;align-items:flex-start;gap:18px;padding:26px 28px}
  .noon-steps__sep{transform:rotate(90deg);align-self:center;width:30px}
  .flow-grid{grid-template-columns:1fr;gap:12px}
  .flow-sep{transform:rotate(90deg);justify-self:center;height:20px}
  .shop__grid{grid-template-columns:1fr}
  .shop__photo{max-width:480px;margin:0 auto}
}

@media (max-width:560px){
  .sec{padding:56px 0}
  .sec-title{gap:10px;margin-bottom:32px}
  .sec-title__arrow{width:34px}
  .concern-grid{grid-template-columns:1fr 1fr;gap:12px}
  .concern-card{padding:24px 10px 18px}
  .concern-card p{font-size:.85rem}
  .benefit-grid{grid-template-columns:repeat(2,1fr);gap:12px}
  .benefit-card:last-child{grid-column:1/-1;max-width:60%;margin:0 auto;width:100%}
  .noon__chips{grid-template-columns:repeat(2,1fr)}
  .noon__clock{width:96px;top:-14px}
  .noon__coffee{width:110px}
  .hero__cta .btn{width:100%;justify-content:center}
  .footer-cta__buttons{flex-direction:column;align-items:center}
  .footer-cta__buttons .btn{width:min(320px,100%);justify-content:center}
}
