:root{
  /* 夜空 × 花火 × ゴールドのパレット */
  --c-bg:#FAF6EF;
  --c-bg-alt:#F2EBE0;
  --c-night:#0A1530;        /* 深い夜空 */
  --c-night-deep:#050B1F;   /* 漆黒に近い夜 */
  --c-night-soft:#1A2548;
  --c-ink:#2A241D;
  --c-ink-soft:#5C544A;
  --c-gold:#C9A95A;          /* シャンパンゴールド */
  --c-gold-deep:#9C7E37;
  --c-gold-light:#E8D89E;
  --c-spark:#FFE9A8;         /* スパーク色 */
  --c-rose:#D8A8A0;
  --c-line:#06C755;
  --c-cta:#C9A95A;
  --c-cta-hover:#9C7E37;
  --c-urgent:#C84F4A;
  --f-display:'Cormorant Garamond',serif;
  --f-en:'Cinzel',serif;
  --f-script:'Italianno',cursive;
  --f-jp:'Noto Serif JP',serif;
  --shadow-soft:0 10px 40px rgba(10,21,48,0.15);
  --shadow-card:0 20px 60px rgba(10,21,48,0.2);
  --shadow-gold:0 10px 40px rgba(201,169,90,0.3);
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:var(--f-jp);
  color:var(--c-ink);
  background:var(--c-bg);
  line-height:1.8;
  font-weight:400;
  letter-spacing:.02em;
  overflow-x:hidden;
  padding-bottom:88px;
}
@media(min-width:768px){body{padding-bottom:0}}

img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:none;background:none}

.container{width:min(1100px,92%);margin-inline:auto}

/* ===== 緊急性バー ===== */
.urgent-bar{
  background:linear-gradient(135deg,var(--c-urgent) 0%,#A03934 100%);
  color:#fff;
  padding:10px 16px;
  text-align:center;
  font-size:13px;
  letter-spacing:.05em;
  position:relative;
  overflow:hidden;
}
.urgent-bar::before{
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.15) 50%,transparent 100%);
  animation:shimmer 3s infinite;
}
@keyframes shimmer{
  0%{transform:translateX(-100%)}
  100%{transform:translateX(100%)}
}
.urgent-bar__inner{
  position:relative;display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;
}
.urgent-bar__pulse{
  width:8px;height:8px;border-radius:50%;background:#FFE9A8;
  box-shadow:0 0 10px #FFE9A8;
  animation:pulse 1.5s infinite;
}
@keyframes pulse{
  0%,100%{opacity:1;transform:scale(1)}
  50%{opacity:.5;transform:scale(1.3)}
}
.countdown{display:inline-flex;gap:6px;font-weight:600}
.countdown b{
  background:rgba(255,255,255,.2);
  padding:2px 8px;
  border-radius:4px;
  min-width:32px;
  display:inline-block;
  text-align:center;
  font-variant-numeric:tabular-nums;
}
@media(max-width:600px){
  .urgent-bar{font-size:11px;padding:8px 10px}
  .countdown b{padding:2px 6px;min-width:26px;font-size:11px}
}

/* ===== ヘッダー ===== */
.header{
  position:sticky;top:0;z-index:100;
  background:rgba(10,21,48,.92);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(201,169,90,.25);
}
.header__inner{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 0;
}
.brand{
  display:flex;flex-direction:column;line-height:1.1;
}
.brand__name{
  font-family:var(--f-en);
  font-size:13px;letter-spacing:.18em;color:var(--c-gold);
  font-weight:500;
}
.brand__sub{
  font-family:var(--f-jp);
  font-size:10px;letter-spacing:.2em;color:rgba(255,255,255,.7);
  margin-top:2px;
}
.header__cta{
  display:flex;gap:8px;align-items:center;
}
.btn-tel-mini{
  display:none;
  align-items:center;gap:6px;
  padding:8px 14px;
  border:1px solid rgba(201,169,90,.5);
  border-radius:50px;
  color:var(--c-gold-light);
  font-size:13px;letter-spacing:.05em;
}
.btn-tel-mini:hover{background:rgba(201,169,90,.15)}
.btn-cta-mini{
  display:inline-flex;align-items:center;gap:6px;
  padding:10px 18px;
  background:linear-gradient(135deg,var(--c-gold) 0%,var(--c-gold-deep) 100%);
  color:#fff;
  border-radius:50px;
  font-size:13px;letter-spacing:.05em;font-weight:500;
  box-shadow:0 4px 15px rgba(201,169,90,.4);
  transition:transform .2s;
}
.btn-cta-mini:hover{transform:translateY(-2px)}
@media(min-width:768px){
  .btn-tel-mini{display:inline-flex}
}

/* ===== ヒーロー ===== */
.hero{
  position:relative;
  background:var(--c-night-deep);
  color:#fff;
  padding:60px 0 90px;
  overflow:hidden;
}
.hero__stars{
  position:absolute;inset:0;
  background-image:
    radial-gradient(2px 2px at 20% 30%,rgba(255,255,255,.7),transparent 50%),
    radial-gradient(1.5px 1.5px at 60% 70%,rgba(255,233,168,.6),transparent 50%),
    radial-gradient(1px 1px at 80% 20%,rgba(255,255,255,.5),transparent 50%),
    radial-gradient(2px 2px at 35% 80%,rgba(201,169,90,.6),transparent 50%),
    radial-gradient(1.5px 1.5px at 90% 50%,rgba(255,255,255,.4),transparent 50%),
    radial-gradient(1px 1px at 10% 60%,rgba(255,255,255,.5),transparent 50%),
    radial-gradient(1.5px 1.5px at 50% 15%,rgba(255,233,168,.5),transparent 50%);
  background-size:100% 100%;
  opacity:.8;
  animation:twinkle 4s ease-in-out infinite;
}
@keyframes twinkle{
  0%,100%{opacity:.5}
  50%{opacity:1}
}
.hero__glow{
  position:absolute;
  top:-100px;left:50%;transform:translateX(-50%);
  width:800px;height:800px;
  background:radial-gradient(circle,rgba(201,169,90,.2) 0%,rgba(201,169,90,0) 70%);
  pointer-events:none;
}
.hero__inner{
  position:relative;z-index:2;
  display:grid;
  grid-template-columns:1fr;
  gap:30px;
  align-items:center;
}
@media(min-width:900px){
  .hero{padding:90px 0 110px}
  .hero__inner{grid-template-columns:1.05fr 1fr;gap:50px}
}

.hero__copy{text-align:center}
@media(min-width:900px){.hero__copy{text-align:left}}

.hero__badge{
  display:inline-flex;align-items:center;gap:8px;
  padding:6px 16px;
  background:linear-gradient(135deg,rgba(201,169,90,.2) 0%,rgba(201,169,90,.05) 100%);
  border:1px solid rgba(201,169,90,.4);
  border-radius:50px;
  font-family:var(--f-en);
  font-size:11px;letter-spacing:.2em;
  color:var(--c-gold-light);
  margin-bottom:20px;
}
.hero__badge::before{content:"✦";color:var(--c-gold)}

.hero__anniv{
  display:block;
  font-family:var(--f-script);
  font-size:42px;
  color:var(--c-gold-light);
  line-height:1;
  margin-bottom:6px;
}
.hero__anniv-en{
  display:block;
  font-family:var(--f-en);
  font-size:11px;letter-spacing:.3em;
  color:var(--c-gold);
  margin-bottom:24px;
}

.hero__title{
  font-family:var(--f-jp);
  font-weight:300;
  font-size:clamp(28px,5.5vw,46px);
  line-height:1.35;
  letter-spacing:.04em;
  margin-bottom:18px;
}
.hero__title em{
  font-style:normal;
  display:inline-block;
  background:linear-gradient(135deg,var(--c-gold-light) 0%,var(--c-gold) 50%,var(--c-spark) 100%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;
  font-weight:500;
  position:relative;
}
.hero__title em::after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:-4px;
  height:1px;
  background:linear-gradient(90deg,transparent 0%,var(--c-gold) 50%,transparent 100%);
}

.hero__lead{
  font-size:15px;color:rgba(255,255,255,.85);
  margin-bottom:28px;
  letter-spacing:.05em;
}

.hero__metrics{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:12px;
  margin-bottom:30px;
}
.metric{
  background:rgba(255,255,255,.05);
  border:1px solid rgba(201,169,90,.2);
  padding:14px 12px;
  border-radius:8px;
  text-align:center;
  backdrop-filter:blur(4px);
}
.metric__num{
  font-family:var(--f-display);
  font-size:28px;font-weight:600;
  color:var(--c-gold-light);
  line-height:1;
  display:block;
  margin-bottom:4px;
}
.metric__label{
  font-size:10px;letter-spacing:.1em;
  color:rgba(255,255,255,.7);
}

.hero__cta-group{
  display:flex;flex-direction:column;gap:12px;
  align-items:center;
}
@media(min-width:900px){.hero__cta-group{align-items:flex-start}}

.btn-primary{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:18px 36px;
  background:linear-gradient(135deg,var(--c-gold) 0%,var(--c-gold-deep) 100%);
  color:#fff;
  font-size:16px;letter-spacing:.08em;font-weight:600;
  border-radius:50px;
  box-shadow:0 10px 30px rgba(201,169,90,.4);
  transition:transform .25s,box-shadow .25s;
  position:relative;overflow:hidden;
  width:100%;max-width:340px;
}
.btn-primary::before{
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(135deg,#fff 0%,transparent 50%);
  opacity:0;transition:opacity .3s;
}
.btn-primary:hover{
  transform:translateY(-3px);
  box-shadow:0 15px 40px rgba(201,169,90,.55);
}
.btn-primary:hover::before{opacity:.15}
.btn-primary span{position:relative;z-index:1}

.btn-secondary{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:14px 28px;
  border:1px solid rgba(201,169,90,.5);
  color:var(--c-gold-light);
  border-radius:50px;
  font-size:13px;letter-spacing:.08em;
  width:100%;max-width:340px;
  transition:background .2s;
}
.btn-secondary:hover{background:rgba(201,169,90,.1)}

.hero__visual{
  position:relative;
}
.hero__video{
  width:100%;
  border-radius:12px;
  box-shadow:0 30px 80px rgba(0,0,0,.5);
  border:1px solid rgba(201,169,90,.3);
  aspect-ratio:9/12;
  object-fit:cover;
  background:#000;
}
@media(min-width:900px){
  .hero__video{aspect-ratio:9/13}
}
.hero__visual-deco{
  position:absolute;
  font-family:var(--f-script);
  color:var(--c-gold);
  font-size:50px;
  top:-15px;right:-10px;
  opacity:.85;
  text-shadow:0 0 20px rgba(201,169,90,.5);
  pointer-events:none;
  transform:rotate(-8deg);
}

/* ===== 抽選バナー ===== */
.lottery-bar{
  background:linear-gradient(135deg,var(--c-night) 0%,var(--c-night-soft) 100%);
  color:#fff;
  padding:30px 20px;
  text-align:center;
  position:relative;overflow:hidden;
}
.lottery-bar::before,.lottery-bar::after{
  content:"";
  position:absolute;
  width:200px;height:200px;
  background:radial-gradient(circle,rgba(201,169,90,.2) 0%,transparent 70%);
}
.lottery-bar::before{top:-100px;left:-50px}
.lottery-bar::after{bottom:-100px;right:-50px}
.lottery-bar__inner{position:relative;z-index:1}
.lottery-bar__sub{
  font-family:var(--f-en);
  font-size:11px;letter-spacing:.3em;
  color:var(--c-gold);
  margin-bottom:10px;
}
.lottery-bar__title{
  font-size:clamp(20px,4vw,28px);
  font-weight:400;
  letter-spacing:.05em;
  line-height:1.5;
}
.lottery-bar__title b{
  color:var(--c-gold-light);
  font-weight:600;
  font-size:1.2em;
}
.lottery-bar__remain{
  display:inline-flex;align-items:center;gap:8px;
  margin-top:14px;
  padding:8px 18px;
  background:rgba(200,79,74,.25);
  border:1px solid rgba(200,79,74,.5);
  border-radius:50px;
  font-size:13px;letter-spacing:.05em;
}
.lottery-bar__remain::before{
  content:"";width:8px;height:8px;border-radius:50%;
  background:var(--c-urgent);
  animation:pulse 1.5s infinite;
}

/* ===== セクション共通 ===== */
.sec{padding:80px 0}
@media(max-width:768px){.sec{padding:60px 0}}

.sec-head{text-align:center;margin-bottom:50px}
.sec-head__en{
  font-family:var(--f-en);
  font-size:11px;letter-spacing:.35em;
  color:var(--c-gold-deep);
  margin-bottom:14px;
  display:block;
}
.sec-head__en::before,.sec-head__en::after{
  content:"";
  display:inline-block;
  width:24px;height:1px;
  background:var(--c-gold);
  vertical-align:middle;
  margin:0 12px;
}
.sec-head__jp{
  font-family:var(--f-jp);
  font-weight:400;
  font-size:clamp(24px,4vw,36px);
  line-height:1.5;
  letter-spacing:.04em;
  color:var(--c-night);
}
.sec-head__jp b{
  color:var(--c-gold-deep);
  font-weight:600;
  position:relative;
  background:linear-gradient(transparent 65%,rgba(201,169,90,.25) 65%);
  padding:0 4px;
}
.sec-head__lead{
  font-size:14px;color:var(--c-ink-soft);
  margin-top:16px;
  line-height:1.9;
}

/* ===== 共感→解決 ===== */
.empathy{
  background:linear-gradient(180deg,var(--c-bg) 0%,var(--c-bg-alt) 100%);
  position:relative;
}
.empathy__grid{
  display:grid;grid-template-columns:1fr;gap:14px;
  margin-bottom:50px;
}
@media(min-width:768px){
  .empathy__grid{grid-template-columns:repeat(3,1fr);gap:16px}
}
.worry-card{
  background:#fff;
  padding:24px 22px;
  border-radius:8px;
  position:relative;
  border-left:3px solid var(--c-gold);
  box-shadow:var(--shadow-soft);
}
.worry-card__icon{
  font-size:24px;
  margin-bottom:10px;
  display:block;
}
.worry-card__title{
  font-size:15px;font-weight:600;
  color:var(--c-night);
  margin-bottom:8px;
  line-height:1.5;
}
.worry-card__text{
  font-size:13px;color:var(--c-ink-soft);
  line-height:1.8;
}
.empathy__answer{
  background:linear-gradient(135deg,var(--c-night) 0%,var(--c-night-soft) 100%);
  color:#fff;
  padding:40px 30px;
  border-radius:12px;
  text-align:center;
  position:relative;overflow:hidden;
}
.empathy__answer::before{
  content:"";
  position:absolute;
  top:-50%;left:-10%;
  width:120%;height:200%;
  background:radial-gradient(ellipse,rgba(201,169,90,.15) 0%,transparent 60%);
}
.empathy__answer-label{
  position:relative;
  font-family:var(--f-en);
  font-size:11px;letter-spacing:.3em;
  color:var(--c-gold);
  margin-bottom:14px;
}
.empathy__answer-title{
  position:relative;
  font-size:clamp(20px,4vw,28px);
  font-weight:400;
  line-height:1.6;
  letter-spacing:.04em;
}
.empathy__answer-title b{
  color:var(--c-gold-light);
  font-weight:600;
}

/* ===== 4つの特典（こだわり） ===== */
.benefits{background:var(--c-bg)}
.benefits__grid{
  display:grid;grid-template-columns:1fr;gap:20px;
}
@media(min-width:768px){.benefits__grid{grid-template-columns:repeat(2,1fr);gap:24px}}

.benefit{
  background:#fff;
  border-radius:12px;
  overflow:hidden;
  box-shadow:var(--shadow-soft);
  position:relative;
  transition:transform .3s,box-shadow .3s;
}
.benefit:hover{transform:translateY(-4px);box-shadow:var(--shadow-card)}
.benefit__num{
  position:absolute;top:18px;left:20px;
  font-family:var(--f-display);font-style:italic;
  font-size:48px;font-weight:300;
  color:var(--c-gold);
  opacity:.7;
  line-height:1;z-index:2;
}
.benefit__img{
  width:100%;height:180px;
  object-fit:cover;
  background:var(--c-bg-alt);
}
.benefit__body{padding:24px 22px}
.benefit__cat{
  font-family:var(--f-en);font-size:10px;
  letter-spacing:.25em;
  color:var(--c-gold-deep);
  margin-bottom:8px;
}
.benefit__title{
  font-size:18px;font-weight:600;
  color:var(--c-night);
  margin-bottom:10px;
  line-height:1.5;
}
.benefit__text{
  font-size:13px;color:var(--c-ink-soft);
  line-height:1.85;
}
.benefit__price{
  display:inline-block;
  margin-top:14px;
  padding:6px 14px;
  background:linear-gradient(135deg,var(--c-gold-light) 0%,var(--c-gold) 100%);
  border-radius:50px;
  font-size:12px;font-weight:600;
  color:#fff;
}

/* ===== ¥0円バナー ===== */
.zero-banner{
  background:linear-gradient(135deg,var(--c-night-deep) 0%,var(--c-night) 50%,var(--c-night-soft) 100%);
  color:#fff;
  padding:60px 0;
  position:relative;overflow:hidden;
}
.zero-banner::before{
  content:"";
  position:absolute;inset:0;
  background-image:
    radial-gradient(2px 2px at 15% 25%,rgba(201,169,90,.6),transparent 50%),
    radial-gradient(1.5px 1.5px at 85% 65%,rgba(255,255,255,.5),transparent 50%),
    radial-gradient(1px 1px at 50% 40%,rgba(255,233,168,.5),transparent 50%),
    radial-gradient(2px 2px at 70% 15%,rgba(201,169,90,.5),transparent 50%);
  animation:twinkle 5s infinite;
}
.zero-banner__inner{
  position:relative;z-index:1;
  text-align:center;
}
.zero-banner__sub{
  font-family:var(--f-en);
  font-size:12px;letter-spacing:.3em;
  color:var(--c-gold);
  margin-bottom:16px;
}
.zero-banner__title{
  font-size:clamp(28px,5vw,42px);
  font-weight:300;
  line-height:1.4;
  letter-spacing:.05em;
  margin-bottom:30px;
}
.zero-banner__price{
  display:flex;align-items:center;justify-content:center;gap:24px;
  margin-bottom:24px;flex-wrap:wrap;
}
.zero-banner__price-old{
  font-family:var(--f-display);
  font-size:30px;
  color:rgba(255,255,255,.4);
  text-decoration:line-through;
  text-decoration-color:var(--c-urgent);
  text-decoration-thickness:2px;
}
.zero-banner__price-new{
  font-family:var(--f-display);
  font-size:90px;font-weight:600;
  color:var(--c-gold-light);
  line-height:1;
  letter-spacing:-.02em;
  text-shadow:0 0 30px rgba(201,169,90,.5);
}
.zero-banner__price-new sub{
  font-size:.4em;
  color:var(--c-gold);
  font-weight:400;
  letter-spacing:.05em;
  margin-left:4px;
}
.zero-banner__caption{
  font-size:14px;
  color:rgba(255,255,255,.85);
  margin-bottom:30px;
  letter-spacing:.05em;
}

/* ===== ギャラリー ===== */
.gallery{background:var(--c-bg-alt)}
.gallery__grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:10px;
}
@media(min-width:768px){
  .gallery__grid{
    grid-template-columns:repeat(4,1fr);
    grid-auto-rows:180px;
    gap:14px;
  }
  .gallery__item:nth-child(1){grid-column:span 2;grid-row:span 2}
  .gallery__item:nth-child(4){grid-row:span 2}
}
.gallery__item{
  position:relative;
  border-radius:8px;
  overflow:hidden;
  aspect-ratio:1;
  background:var(--c-night);
  cursor:pointer;
  transition:transform .4s;
}
@media(min-width:768px){
  .gallery__item{aspect-ratio:auto}
}
.gallery__item:hover{transform:scale(1.02)}
.gallery__item img{
  width:100%;height:100%;
  object-fit:cover;
  transition:transform .6s;
}
.gallery__item:hover img{transform:scale(1.08)}

/* ===== 当日の流れ ===== */
.process{
  background:linear-gradient(180deg,var(--c-bg) 0%,var(--c-bg-alt) 100%);
}
.process__wrap{
  display:grid;
  grid-template-columns:1fr;
  gap:30px;
  align-items:center;
}
@media(min-width:900px){
  .process__wrap{grid-template-columns:.8fr 1fr;gap:50px}
}
.process__img{
  width:100%;
  border-radius:12px;
  box-shadow:var(--shadow-card);
}
.process__steps{
  display:flex;flex-direction:column;gap:16px;
  position:relative;
}
.process__steps::before{
  content:"";
  position:absolute;
  left:24px;top:30px;bottom:30px;
  width:1px;
  background:linear-gradient(180deg,var(--c-gold) 0%,transparent 100%);
}
.step{
  display:flex;gap:16px;
  position:relative;z-index:1;
  background:#fff;
  padding:18px 20px;
  border-radius:8px;
  box-shadow:var(--shadow-soft);
}
.step__num{
  flex-shrink:0;
  width:40px;height:40px;
  border-radius:50%;
  background:linear-gradient(135deg,var(--c-gold) 0%,var(--c-gold-deep) 100%);
  color:#fff;
  font-family:var(--f-display);
  font-size:18px;font-weight:600;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 4px 12px rgba(201,169,90,.4);
}
.step__title{
  font-size:14px;font-weight:600;
  color:var(--c-night);
  margin-bottom:4px;
}
.step__text{
  font-size:12px;color:var(--c-ink-soft);
  line-height:1.7;
}

/* ===== 対象条件 ===== */
.eligibility{background:var(--c-bg)}
.eligibility__card{
  background:#fff;
  border-radius:12px;
  padding:36px 30px;
  box-shadow:var(--shadow-card);
  border-top:3px solid var(--c-gold);
}
.eligibility__row{
  display:grid;
  grid-template-columns:1fr;
  gap:20px;
}
@media(min-width:768px){
  .eligibility__row{grid-template-columns:auto 1fr;gap:30px;align-items:start}
}
.eligibility__label{
  font-family:var(--f-en);
  font-size:11px;letter-spacing:.3em;
  color:var(--c-gold-deep);
  padding-top:4px;
  position:relative;
  white-space:nowrap;
}
.eligibility__content p{
  font-size:14px;
  line-height:1.9;
  color:var(--c-ink);
  margin-bottom:8px;
}
.eligibility__content p:last-child{margin-bottom:0}
.eligibility__note{
  background:var(--c-bg-alt);
  padding:14px 16px;
  border-radius:6px;
  font-size:12.5px !important;
  color:var(--c-ink-soft) !important;
  margin-top:10px !important;
  line-height:1.8 !important;
}
.eligibility__divider{
  height:1px;
  background:linear-gradient(90deg,transparent 0%,var(--c-gold) 50%,transparent 100%);
  margin:24px 0;
}

/* ===== お客様の声 ===== */
.voices{background:var(--c-bg-alt)}
.voices__grid{
  display:grid;grid-template-columns:1fr;gap:18px;
}
@media(min-width:768px){.voices__grid{grid-template-columns:repeat(3,1fr)}}

.voice{
  background:#fff;
  padding:26px 22px;
  border-radius:8px;
  box-shadow:var(--shadow-soft);
  position:relative;
}
.voice::before{
  content:"❝";
  position:absolute;top:10px;right:18px;
  font-family:var(--f-display);
  font-size:50px;
  color:var(--c-gold);
  opacity:.3;
  line-height:1;
}
.voice__rating{
  color:var(--c-gold);
  font-size:14px;
  letter-spacing:.1em;
  margin-bottom:10px;
}
.voice__title{
  font-size:14px;font-weight:600;
  color:var(--c-night);
  margin-bottom:10px;
  line-height:1.5;
}
.voice__text{
  font-size:13px;color:var(--c-ink-soft);
  line-height:1.85;
  margin-bottom:14px;
}
.voice__name{
  font-size:11px;color:var(--c-ink-soft);
  letter-spacing:.05em;
  border-top:1px solid var(--c-bg-alt);
  padding-top:10px;
}

/* ===== ブライダルフェア ===== */
.fair{background:var(--c-bg)}
.fair__grid{
  display:grid;grid-template-columns:1fr;gap:20px;
}
@media(min-width:768px){.fair__grid{grid-template-columns:repeat(2,1fr)}}

.fair-card{
  background:linear-gradient(180deg,#fff 0%,var(--c-bg) 100%);
  border-radius:12px;
  overflow:hidden;
  box-shadow:var(--shadow-soft);
  border:1px solid rgba(201,169,90,.15);
}
.fair-card__head{
  background:linear-gradient(135deg,var(--c-night) 0%,var(--c-night-soft) 100%);
  color:#fff;
  padding:20px 24px;
}
.fair-card__cat{
  font-family:var(--f-en);
  font-size:10px;letter-spacing:.3em;
  color:var(--c-gold);
  margin-bottom:6px;
}
.fair-card__title{
  font-size:18px;font-weight:500;
  letter-spacing:.04em;
}
.fair-card__body{padding:22px 24px}
.fair-card__list{list-style:none;margin-bottom:18px}
.fair-card__list li{
  font-size:13px;color:var(--c-ink-soft);
  padding:6px 0 6px 22px;
  position:relative;
  line-height:1.7;
}
.fair-card__list li::before{
  content:"✦";
  position:absolute;left:0;top:6px;
  color:var(--c-gold);
}
.fair-card__time{
  display:flex;gap:12px;align-items:center;
  font-size:12px;color:var(--c-ink-soft);
  margin-bottom:14px;
  padding:8px 12px;
  background:var(--c-bg-alt);
  border-radius:6px;
}
.fair-card__time b{color:var(--c-night);font-weight:600}

/* ===== FAQ ===== */
.faq{background:var(--c-bg-alt)}
.faq__list{max-width:800px;margin:0 auto}
.faq-item{
  background:#fff;
  border-radius:8px;
  margin-bottom:10px;
  overflow:hidden;
  box-shadow:var(--shadow-soft);
}
.faq-q{
  width:100%;
  padding:20px 56px 20px 24px;
  display:flex;align-items:start;gap:14px;
  text-align:left;
  position:relative;
  background:#fff;
  transition:background .2s;
}
.faq-q:hover{background:var(--c-bg)}
.faq-q__icon{
  flex-shrink:0;
  width:30px;height:30px;
  background:linear-gradient(135deg,var(--c-gold) 0%,var(--c-gold-deep) 100%);
  color:#fff;
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-family:var(--f-display);
  font-size:14px;font-weight:700;
}
.faq-q__text{
  flex:1;
  font-size:14px;font-weight:500;
  color:var(--c-night);
  line-height:1.6;
}
.faq-q__toggle{
  position:absolute;right:20px;top:50%;
  transform:translateY(-50%);
  width:24px;height:24px;
  border-radius:50%;
  background:var(--c-bg);
  display:flex;align-items:center;justify-content:center;
  color:var(--c-gold-deep);
  font-size:18px;font-weight:300;
  transition:transform .3s;
}
.faq-item.open .faq-q__toggle{transform:translateY(-50%) rotate(45deg)}
.faq-a{
  max-height:0;overflow:hidden;
  transition:max-height .35s ease;
  background:var(--c-bg);
}
.faq-item.open .faq-a{max-height:400px}
.faq-a__inner{
  padding:18px 24px 22px 68px;
  font-size:13px;color:var(--c-ink-soft);
  line-height:1.85;
}

/* ===== CTAセクション ===== */
.cta-final{
  background:linear-gradient(135deg,var(--c-night-deep) 0%,var(--c-night) 50%,var(--c-night-soft) 100%);
  color:#fff;
  padding:80px 0;
  position:relative;overflow:hidden;
}
.cta-final::before{
  content:"";
  position:absolute;inset:0;
  background-image:
    radial-gradient(2px 2px at 10% 20%,rgba(201,169,90,.6),transparent 50%),
    radial-gradient(1.5px 1.5px at 75% 65%,rgba(255,255,255,.5),transparent 50%),
    radial-gradient(1px 1px at 40% 35%,rgba(255,233,168,.5),transparent 50%),
    radial-gradient(2px 2px at 90% 25%,rgba(201,169,90,.5),transparent 50%),
    radial-gradient(1.5px 1.5px at 25% 80%,rgba(255,255,255,.4),transparent 50%);
  animation:twinkle 5s infinite;
}
.cta-final__inner{
  position:relative;z-index:1;
  text-align:center;max-width:720px;margin:0 auto;
  padding:0 20px;
}
.cta-final__sub{
  font-family:var(--f-en);
  font-size:11px;letter-spacing:.3em;
  color:var(--c-gold);
  margin-bottom:14px;
}
.cta-final__title{
  font-size:clamp(24px,4.5vw,38px);
  font-weight:300;
  line-height:1.5;
  letter-spacing:.04em;
  margin-bottom:14px;
}
.cta-final__title b{
  color:var(--c-gold-light);
  font-weight:600;
}
.cta-final__lead{
  font-size:14px;
  color:rgba(255,255,255,.85);
  margin-bottom:30px;
  letter-spacing:.04em;
}
.cta-final__deadline{
  display:inline-flex;align-items:center;gap:10px;
  margin-bottom:30px;
  padding:10px 20px;
  background:rgba(200,79,74,.2);
  border:1px solid rgba(200,79,74,.5);
  border-radius:50px;
  font-size:13px;letter-spacing:.05em;
}
.cta-final__deadline b{
  color:var(--c-spark);
  font-weight:600;
  font-size:15px;
}
.cta-final__buttons{
  display:flex;flex-direction:column;gap:14px;
  align-items:center;
}
.cta-final__contact{
  display:flex;gap:12px;justify-content:center;flex-wrap:wrap;
  margin-top:24px;font-size:13px;
  color:rgba(255,255,255,.7);
}
.cta-final__contact a{
  color:var(--c-gold-light);
  display:inline-flex;align-items:center;gap:6px;
}
.cta-final__contact a:hover{text-decoration:underline}

/* ===== アクセス・フッター ===== */
.access{
  background:var(--c-bg);
  padding:60px 0;
}
.access__grid{
  display:grid;
  grid-template-columns:1fr;
  gap:30px;
  align-items:center;
}
@media(min-width:768px){.access__grid{grid-template-columns:1.2fr 1fr}}

.access__map{
  border-radius:12px;
  overflow:hidden;
  box-shadow:var(--shadow-soft);
  aspect-ratio:16/10;
  border:1px solid rgba(201,169,90,.2);
}
.access__map iframe{width:100%;height:100%;border:0}
.access__info h3{
  font-family:var(--f-en);
  font-size:11px;letter-spacing:.3em;
  color:var(--c-gold-deep);
  margin-bottom:10px;
}
.access__info p{
  font-size:14px;line-height:1.9;
  color:var(--c-ink);
  margin-bottom:8px;
}
.access__info b{color:var(--c-night);font-weight:600;font-size:18px}
.access__info-item{margin-bottom:16px}
.access__hours{
  background:#fff;padding:14px 18px;border-radius:8px;
  font-size:13px;color:var(--c-ink-soft);
  border-left:3px solid var(--c-gold);
}

footer{
  background:var(--c-night-deep);
  color:rgba(255,255,255,.7);
  padding:40px 0 30px;
  text-align:center;
}
footer .container{display:flex;flex-direction:column;gap:14px;align-items:center}
.footer__brand{
  font-family:var(--f-en);
  font-size:14px;letter-spacing:.2em;
  color:var(--c-gold);
}
.footer__sns{
  display:flex;gap:14px;
  margin-top:6px;
}
.footer__sns a{
  width:36px;height:36px;
  border:1px solid rgba(201,169,90,.4);
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  color:var(--c-gold);
  transition:background .2s;
}
.footer__sns a:hover{background:rgba(201,169,90,.15)}
.footer__copy{
  font-size:11px;letter-spacing:.05em;
  color:rgba(255,255,255,.4);
  margin-top:14px;
}

/* ===== 固定SP CTA ===== */
.sticky-cta{
  position:fixed;bottom:0;left:0;right:0;
  background:rgba(10,21,48,.96);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  border-top:1px solid rgba(201,169,90,.3);
  padding:10px 12px;
  z-index:50;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}
.sticky-cta__btn{
  padding:12px 8px;
  border-radius:50px;
  font-size:12px;letter-spacing:.05em;font-weight:600;
  text-align:center;
  display:flex;align-items:center;justify-content:center;gap:5px;
  line-height:1.2;
}
.sticky-cta__btn--tel{
  background:rgba(255,255,255,.1);
  color:#fff;
  border:1px solid rgba(201,169,90,.4);
}
.sticky-cta__btn--apply{
  background:linear-gradient(135deg,var(--c-gold) 0%,var(--c-gold-deep) 100%);
  color:#fff;
  box-shadow:0 4px 12px rgba(201,169,90,.4);
}
@media(min-width:768px){.sticky-cta{display:none}}

/* ===== スクロール出現 ===== */
.fade-up{
  opacity:0;transform:translateY(20px);
  transition:opacity .8s ease,transform .8s ease;
}
.fade-up.visible{opacity:1;transform:translateY(0)}
/* ========================================
   OUR TEAM スタッフ紹介セクション
   ======================================== */
.team{
  background:linear-gradient(180deg,#fff 0%,var(--c-bg) 100%);
  padding:80px 0;
}
@media(max-width:768px){.team{padding:60px 0}}

.team .sec-head{margin-bottom:40px}

.team-intro{
  text-align:center;max-width:680px;margin:0 auto 48px;
  font-size:14px;line-height:2;color:var(--c-ink-soft);
}

.team-grid{
  display:grid;gap:24px;
  grid-template-columns:1fr;
  max-width:1100px;margin:0 auto;
}
@media(min-width:640px){
  .team-grid{grid-template-columns:repeat(2,1fr);gap:28px}
}
@media(min-width:1024px){
  .team-grid{grid-template-columns:repeat(3,1fr);gap:32px}
}

.team-card{
  background:#fff;border-radius:6px;overflow:hidden;
  box-shadow:var(--shadow-soft);
  transition:transform .4s,box-shadow .4s;
  position:relative;
  border:1px solid rgba(201,169,90,.12);
}
.team-card:hover{
  transform:translateY(-6px);
  box-shadow:var(--shadow-card);
}

.team-photo-wrap{
  position:relative;
  aspect-ratio:4/5;
  overflow:hidden;
  background:linear-gradient(135deg,#E8DCC8 0%,#D4C0A0 100%);
}

/* 実写真（img） */
.team-photo{
  position:absolute;inset:0;
  width:100%;height:100%;
  object-fit:cover;
  object-position:center 25%;
  display:block;
  transition:transform .6s ease;
}
.team-card:hover .team-photo{transform:scale(1.04)}
.team-photo[data-staff="chief"]{object-position:center 35%}
.team-photo[data-staff="planner"]{object-position:center 28%}
.team-photo[data-staff="chef"]{object-position:center 22%}
.team-photo[data-staff="stylist"]{object-position:38% center}
.team-photo[data-staff="haimake"]{object-position:center 30%}
.team-photo[data-staff="florist"]{object-position:center 30%}

/* SVGイラストポートレート用背景（フォールバック） */
.team-portrait{
  position:absolute;inset:0;
  width:100%;height:100%;
  display:block;
}
.team-portrait svg{width:100%;height:100%;display:block}
.team-portrait-bg-1{background:linear-gradient(165deg,#F5E6DC 0%,#E8C5B4 100%)}
.team-portrait-bg-2{background:linear-gradient(165deg,#E8E5D0 0%,#C8D4B8 100%)}
.team-portrait-bg-3{background:linear-gradient(165deg,#3D332A 0%,#2A241D 100%)}
.team-portrait-bg-4{background:linear-gradient(165deg,#E8DCE8 0%,#C8B8D4 100%)}
.team-portrait-bg-5{background:linear-gradient(165deg,#F5DCD0 0%,#D4A88C 100%)}
.team-portrait-bg-6{background:linear-gradient(165deg,#E0E8DC 0%,#B8C8B0 100%)}

.team-photo-overlay{
  position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 50%,rgba(10,21,48,.85) 100%);
  z-index:2;
}

.team-position-badge{
  position:absolute;top:14px;left:14px;z-index:3;
  background:rgba(255,255,255,.95);
  color:var(--c-ink);
  padding:6px 12px;border-radius:100px;
  font-family:var(--f-en);font-size:10px;
  letter-spacing:.15em;font-weight:600;
  backdrop-filter:blur(10px);
}

.team-experience{
  position:absolute;top:14px;right:14px;z-index:3;
  background:linear-gradient(135deg,var(--c-gold),var(--c-gold-deep));
  color:#fff;width:48px;height:48px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  flex-direction:column;line-height:1;
  font-family:var(--f-display);
  box-shadow:0 4px 12px rgba(201,169,90,.4);
}
.team-experience b{font-size:18px;font-weight:600}
.team-experience small{font-size:7px;letter-spacing:.1em;margin-top:2px;font-family:var(--f-en)}

.team-name-block{
  position:absolute;left:0;right:0;bottom:0;z-index:3;
  padding:18px 18px 18px;
  color:#fff;
}
.team-position{
  font-family:var(--f-en);font-size:13px;
  letter-spacing:.22em;color:var(--c-gold-light);
  font-weight:500;
  text-shadow:0 1px 8px rgba(0,0,0,.4);
}
.team-name-jp{
  font-family:var(--f-jp);font-size:22px;font-weight:600;
  letter-spacing:.05em;line-height:1.2;
}
.team-name-en{
  font-family:var(--f-en);font-size:10px;
  letter-spacing:.2em;color:rgba(255,255,255,.75);
  margin-top:4px;font-weight:400;
}

.team-body{
  padding:22px 22px 24px;
}
.team-message{
  font-size:13px;color:var(--c-ink);
  line-height:1.95;letter-spacing:.02em;
  position:relative;
  padding-left:14px;
  margin-bottom:18px;
  border-left:2px solid var(--c-gold);
}
.team-info{
  background:var(--c-bg);
  border-radius:4px;
  padding:12px 14px;
  margin-bottom:14px;
}
.team-info-row{
  display:flex;gap:10px;
  font-size:11.5px;
  line-height:1.7;
  padding:3px 0;
}
.team-info-label{
  flex-shrink:0;
  font-family:var(--f-en);
  font-size:9px;letter-spacing:.18em;
  color:var(--c-gold-deep);
  font-weight:600;
  padding-top:3px;
  width:54px;
}
.team-info-value{
  flex:1;
  color:var(--c-ink);
}
.team-tags{
  display:flex;flex-wrap:wrap;gap:6px;
}
.team-tags span{
  font-size:10.5px;
  padding:3px 9px;
  background:rgba(201,169,90,.1);
  color:var(--c-gold-deep);
  border-radius:50px;
  letter-spacing:.02em;
}

/* チーム宣言ブロック */
.team-promise{
  margin-top:60px;
  background:linear-gradient(135deg,var(--c-night) 0%,var(--c-night-soft) 100%);
  color:#fff;
  padding:50px 30px;
  border-radius:12px;
  text-align:center;
  position:relative;overflow:hidden;
}
.team-promise::before{
  content:"";
  position:absolute;
  top:-50%;left:-10%;
  width:120%;height:200%;
  background:radial-gradient(ellipse,rgba(201,169,90,.15) 0%,transparent 60%);
  z-index:1;
}
.team-promise-eyebrow{
  position:relative;z-index:2;
  font-family:var(--f-en);
  font-size:10px;letter-spacing:.35em;
  color:var(--c-gold);
  margin-bottom:18px;
}
.team-promise-text{
  position:relative;z-index:2;
  font-size:clamp(15px,2.4vw,18px);
  line-height:2.2;letter-spacing:.05em;
  font-weight:300;
  margin-bottom:24px;
}
.team-promise-text em{
  color:var(--c-gold-light);font-style:normal;font-weight:500;
}
.team-promise-signature{
  font-family:var(--f-display);font-size:13px;
  color:rgba(255,255,255,.7);
  font-style:italic;letter-spacing:.05em;
  position:relative;z-index:2;
}
.team-promise-signature::before{
  content:'';display:block;width:40px;height:1px;
  background:var(--c-gold);margin:0 auto 12px;
}

/* ========================================
   CV強化追加CSS
   ======================================== */

/* ===== 総額特典バッジ（ヒーロー直下） ===== */
.value-banner{
  background:linear-gradient(135deg,#0A1530 0%,#1A2548 50%,#0A1530 100%);
  color:#fff;padding:30px 0;
  position:relative;overflow:hidden;
  border-top:1px solid rgba(201,169,90,.2);
  border-bottom:1px solid rgba(201,169,90,.2);
}
.value-banner::before{
  content:"";
  position:absolute;inset:0;
  background-image:
    radial-gradient(2px 2px at 20% 50%,rgba(201,169,90,.5),transparent 50%),
    radial-gradient(1.5px 1.5px at 75% 30%,rgba(255,233,168,.5),transparent 50%),
    radial-gradient(1px 1px at 90% 70%,rgba(255,255,255,.4),transparent 50%);
  opacity:.6;
}
.value-banner__inner{
  position:relative;z-index:1;
  display:grid;
  grid-template-columns:1fr;
  gap:24px;
  align-items:center;
  text-align:center;
}
@media(min-width:768px){
  .value-banner__inner{grid-template-columns:auto 1fr;gap:40px;text-align:left}
}
.value-banner__sum{
  display:flex;flex-direction:column;align-items:center;
  background:linear-gradient(135deg,var(--c-gold) 0%,var(--c-gold-deep) 100%);
  padding:18px 28px;border-radius:8px;
  box-shadow:0 10px 30px rgba(201,169,90,.4);
}
.value-banner__sum-label{
  font-family:var(--f-en);font-size:10px;
  letter-spacing:.25em;color:#fff;
  margin-bottom:4px;
}
.value-banner__sum-num{
  font-family:var(--f-display);
  font-weight:600;color:#fff;
  font-size:42px;line-height:1;
  text-shadow:0 2px 8px rgba(0,0,0,.3);
}
.value-banner__sum-num small{font-size:.5em;font-weight:400;margin-left:4px}
.value-banner__list{
  display:grid;grid-template-columns:1fr 1fr;
  gap:8px 16px;
  font-size:13px;
}
@media(min-width:768px){.value-banner__list{font-size:14px}}
.value-banner__list li{
  list-style:none;padding-left:20px;position:relative;
  color:rgba(255,255,255,.9);letter-spacing:.03em;
}
.value-banner__list li::before{
  content:"✓";position:absolute;left:0;top:0;
  color:var(--c-gold-light);font-weight:600;
}
.value-banner__list li b{color:var(--c-gold-light);font-weight:600}

/* ===== 残数メーター（抽選バナー内） ===== */
.lottery-meter{
  margin-top:18px;
  max-width:400px;margin-left:auto;margin-right:auto;
  padding:12px 18px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(201,169,90,.3);
  border-radius:8px;
  backdrop-filter:blur(4px);
}
.lottery-meter__label{
  display:flex;justify-content:space-between;
  font-size:12px;letter-spacing:.05em;
  color:#fff;margin-bottom:8px;
}
.lottery-meter__label b{
  color:var(--c-spark);
  font-family:var(--f-display);font-size:18px;font-weight:600;
}
.lottery-meter__bar{
  height:8px;
  background:rgba(0,0,0,.3);
  border-radius:50px;overflow:hidden;
  position:relative;
}
.lottery-meter__fill{
  height:100%;
  background:linear-gradient(90deg,var(--c-urgent) 0%,#E07060 100%);
  border-radius:50px;
  position:relative;overflow:hidden;
  animation:meter-pulse 2s infinite;
}
.lottery-meter__fill::after{
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.4) 50%,transparent 100%);
  animation:shimmer 2.5s infinite;
}
@keyframes meter-pulse{
  0%,100%{box-shadow:0 0 8px rgba(200,79,74,.4)}
  50%{box-shadow:0 0 16px rgba(200,79,74,.7)}
}

/* ===== LINEボタン ===== */
.btn-line{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:14px 28px;
  background:linear-gradient(135deg,#06C755 0%,#04A94C 100%);
  color:#fff;
  border-radius:50px;
  font-size:14px;font-weight:600;letter-spacing:.05em;
  box-shadow:0 6px 20px rgba(6,199,85,.35);
  transition:transform .25s,box-shadow .25s;
  width:100%;max-width:340px;
}
.btn-line:hover{
  transform:translateY(-2px);
  box-shadow:0 10px 28px rgba(6,199,85,.5);
}
.btn-line svg{flex-shrink:0}
.btn-line__sub{
  display:block;font-size:10px;font-weight:400;
  letter-spacing:.1em;opacity:.85;margin-top:2px;
}
.header__cta .btn-line-mini{
  display:none;
  align-items:center;gap:5px;
  padding:8px 14px;
  background:#06C755;color:#fff;
  border-radius:50px;
  font-size:12px;font-weight:500;
}
@media(min-width:900px){.header__cta .btn-line-mini{display:inline-flex}}

/* ===== 強引営業ゼロ保証 ===== */
.no-pressure{
  background:var(--c-bg-alt);
  padding:60px 0;
}
.no-pressure__card{
  background:#fff;
  border-radius:12px;
  padding:40px 30px;
  box-shadow:var(--shadow-card);
  border:2px solid var(--c-gold);
  position:relative;
  max-width:900px;margin:0 auto;
}
.no-pressure__card::before{
  content:"PROMISE";
  position:absolute;
  top:-14px;left:50%;
  transform:translateX(-50%);
  background:linear-gradient(135deg,var(--c-gold),var(--c-gold-deep));
  color:#fff;
  font-family:var(--f-en);
  font-size:11px;letter-spacing:.3em;font-weight:600;
  padding:6px 18px;border-radius:50px;
}
.no-pressure__title{
  text-align:center;
  font-size:clamp(20px,3.5vw,26px);
  font-weight:400;
  color:var(--c-night);
  margin-bottom:8px;
  letter-spacing:.04em;
}
.no-pressure__title b{
  color:var(--c-gold-deep);font-weight:600;
}
.no-pressure__sub{
  text-align:center;
  font-size:13px;color:var(--c-ink-soft);
  margin-bottom:28px;
}
.no-pressure__list{
  display:grid;
  grid-template-columns:1fr;
  gap:14px;
  list-style:none;
}
@media(min-width:640px){
  .no-pressure__list{grid-template-columns:1fr 1fr;gap:16px}
}
.no-pressure__list li{
  display:flex;align-items:start;gap:12px;
  padding:14px 16px;
  background:var(--c-bg);
  border-radius:6px;
  border-left:3px solid var(--c-gold);
}
.no-pressure__check{
  flex-shrink:0;width:24px;height:24px;
  background:linear-gradient(135deg,var(--c-gold) 0%,var(--c-gold-deep) 100%);
  color:#fff;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:13px;font-weight:700;
  margin-top:1px;
}
.no-pressure__text{
  flex:1;font-size:14px;color:var(--c-ink);
  line-height:1.7;letter-spacing:.02em;
}
.no-pressure__text b{color:var(--c-gold-deep);font-weight:600}

/* ===== プロセス強化（タイミングバッジ） ===== */
.step__time{
  display:inline-block;
  margin-top:6px;
  padding:3px 10px;
  background:linear-gradient(135deg,rgba(201,169,90,.15) 0%,rgba(201,169,90,.05) 100%);
  border:1px solid rgba(201,169,90,.4);
  border-radius:50px;
  font-family:var(--f-en);font-size:10px;
  letter-spacing:.1em;
  color:var(--c-gold-deep);font-weight:600;
}
.step__notice{
  display:block;margin-top:6px;
  font-size:11px;color:var(--c-gold-deep);
  font-weight:600;letter-spacing:.03em;
}
.step__notice::before{content:"✓ ";color:var(--c-gold)}

/* ===== 比較表 ===== */
.compare{
  background:var(--c-bg);
  padding:80px 0;
}
.compare__wrap{
  max-width:900px;margin:0 auto;
  background:#fff;
  border-radius:12px;
  overflow:hidden;
  box-shadow:var(--shadow-card);
}
.compare__table{
  width:100%;
  border-collapse:collapse;
  font-size:13px;
}
@media(min-width:768px){.compare__table{font-size:14px}}
.compare__table thead th{
  padding:18px 12px;
  font-family:var(--f-jp);font-weight:600;
  letter-spacing:.05em;
  text-align:center;
}
.compare__table thead th:nth-child(1){
  background:#fff;color:var(--c-ink-soft);
  font-size:11px;letter-spacing:.15em;
  font-family:var(--f-en);
}
.compare__table thead th:nth-child(2){
  background:#E8E5E0;color:var(--c-ink-soft);
  font-size:13px;
}
.compare__table thead th:nth-child(3){
  background:linear-gradient(135deg,var(--c-night) 0%,var(--c-night-soft) 100%);
  color:#fff;
  font-size:13px;
  position:relative;
}
.compare__table thead th:nth-child(3)::before{
  content:"OURS";
  display:block;
  font-family:var(--f-en);font-size:9px;
  letter-spacing:.3em;color:var(--c-gold);
  margin-bottom:3px;font-weight:500;
}
.compare__table tbody td{
  padding:16px 12px;
  border-top:1px solid var(--c-bg-alt);
  vertical-align:middle;
}
.compare__table tbody td:nth-child(1){
  font-weight:600;color:var(--c-night);
  background:var(--c-bg);
  font-size:12.5px;
}
.compare__table tbody td:nth-child(2){
  text-align:center;color:var(--c-ink-soft);
  font-size:12px;
}
.compare__table tbody td:nth-child(3){
  text-align:center;
  background:rgba(201,169,90,.08);
  color:var(--c-gold-deep);font-weight:600;
}
.compare__table tbody td:nth-child(3) b{
  color:var(--c-night);font-weight:700;
}
.compare__check{color:var(--c-gold);font-weight:700;font-size:16px}
.compare__cross{color:#C84F4A;font-weight:600}

/* ===== 人気挙式日カレンダー ===== */
.calendar-section{
  background:var(--c-bg-alt);
  padding:80px 0;
}
.calendar-wrap{
  max-width:900px;margin:0 auto;
  background:#fff;
  border-radius:12px;
  padding:30px 24px 36px;
  box-shadow:var(--shadow-soft);
}
.calendar-months{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:20px;
}
@media(min-width:768px){
  .calendar-months{grid-template-columns:repeat(3,1fr);gap:24px}
}
.calendar-month{
  text-align:center;
}
.calendar-month__title{
  font-family:var(--f-display);
  font-size:20px;font-weight:600;
  color:var(--c-night);
  margin-bottom:4px;letter-spacing:.05em;
}
.calendar-month__title small{
  display:block;font-family:var(--f-en);
  font-size:9px;letter-spacing:.3em;
  color:var(--c-gold-deep);font-weight:500;margin-top:2px;
}
.calendar-month__remain{
  font-size:11px;color:var(--c-ink-soft);
  margin-bottom:14px;
}
.calendar-month__remain b{
  color:var(--c-urgent);font-weight:600;font-size:13px;
}
.calendar-grid{
  display:grid;
  grid-template-columns:repeat(7,1fr);
  gap:3px;
  margin-bottom:8px;
}
.calendar-grid__head{
  font-family:var(--f-en);font-size:9px;
  letter-spacing:.05em;
  color:var(--c-ink-soft);
  font-weight:500;
  padding:4px 0;
}
.calendar-grid__head:first-child{color:var(--c-urgent)}
.calendar-grid__head:last-child{color:#3D5BA0}
.calendar-grid__cell{
  aspect-ratio:1;
  display:flex;align-items:center;justify-content:center;
  font-size:10px;color:var(--c-ink-soft);
  border-radius:3px;
}
.calendar-grid__cell--saturday{
  background:rgba(201,169,90,.12);
  color:var(--c-night);font-weight:600;
}
.calendar-grid__cell--sunday{
  color:var(--c-urgent);
  background:rgba(200,79,74,.08);
}
.calendar-grid__cell--booked{
  background:#E0E0E0;
  color:#999;
  text-decoration:line-through;
  text-decoration-color:#999;
}
.calendar-grid__cell--limited{
  background:linear-gradient(135deg,var(--c-urgent) 0%,#A03934 100%);
  color:#fff;font-weight:700;
  position:relative;
}
.calendar-grid__cell--limited::after{
  content:"";
  position:absolute;
  bottom:-3px;left:50%;
  transform:translateX(-50%);
  width:4px;height:4px;
  background:var(--c-urgent);
  border-radius:50%;
  animation:pulse 1.5s infinite;
}
.calendar-legend{
  display:flex;flex-wrap:wrap;
  justify-content:center;gap:14px;
  margin-top:20px;
  font-size:11px;color:var(--c-ink-soft);
  letter-spacing:.03em;
}
.calendar-legend__item{
  display:inline-flex;align-items:center;gap:5px;
}
.calendar-legend__chip{
  width:12px;height:12px;border-radius:3px;
}

/* ===== 卒花動画 ===== */
.testimonial-video{
  background:var(--c-bg-alt);
  padding:60px 0 0;
}
.testimonial-video__wrap{
  max-width:680px;margin:0 auto;
  background:#fff;
  border-radius:12px;
  overflow:hidden;
  box-shadow:var(--shadow-card);
}
.testimonial-video__player{
  position:relative;
  aspect-ratio:16/9;
  background:linear-gradient(135deg,#0A1530 0%,#1A2548 100%);
  overflow:hidden;
  cursor:pointer;
}
.testimonial-video__poster{
  position:absolute;inset:0;
  width:100%;height:100%;
  object-fit:cover;
  opacity:.7;
}
.testimonial-video__overlay{
  position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(10,21,48,.3) 0%,rgba(10,21,48,.7) 100%);
  display:flex;align-items:center;justify-content:center;
  flex-direction:column;
}
.testimonial-video__play{
  width:72px;height:72px;
  background:rgba(255,255,255,.95);
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  margin-bottom:14px;
  box-shadow:0 10px 30px rgba(0,0,0,.3);
  transition:transform .25s;
}
.testimonial-video__player:hover .testimonial-video__play{
  transform:scale(1.08);
}
.testimonial-video__play svg{
  margin-left:4px;
  color:var(--c-night);
}
.testimonial-video__caption{
  color:#fff;
  font-size:13px;letter-spacing:.05em;
  text-align:center;
  text-shadow:0 1px 8px rgba(0,0,0,.5);
  padding:0 20px;
}
.testimonial-video__caption b{font-size:18px;display:block;margin-bottom:4px}
.testimonial-video__body{
  padding:24px 26px;
}
.testimonial-video__quote{
  font-size:14px;line-height:1.9;color:var(--c-ink);
  font-style:italic;
  margin-bottom:14px;
  position:relative;
}
.testimonial-video__quote::before{
  content:"\""; 
  font-family:var(--f-display);font-size:60px;
  position:absolute;top:-15px;left:-10px;
  color:var(--c-gold);opacity:.3;
}
.testimonial-video__name{
  font-size:11px;color:var(--c-ink-soft);
  letter-spacing:.05em;
  text-align:right;
}

/* ===== ヒーローCTAグループ拡張 ===== */
.hero__cta-group .btn-line{
  background:linear-gradient(135deg,#06C755 0%,#04A94C 100%);
}

/* ===== 固定SP CTA 3ボタン化 ===== */
.sticky-cta--3btn{
  grid-template-columns:1fr 1fr 1.3fr;
  gap:6px;
  padding:8px 8px;
}
.sticky-cta__btn--line{
  background:#06C755;color:#fff;
}
.sticky-cta__btn{
  font-size:11px;
  padding:11px 4px;
}

