/*!
 * Le Diaphane (Royal Chester Saga) - Landing Page Styles
 * Copyright (c) Memolead. All rights reserved.
 * Produced by LINK-UP Management
 */

:root{
  --c-bg:#FAF6EF;
  --c-bg-alt:#F2EBE0;
  --c-ink:#2A241D;
  --c-ink-soft:#5C544A;
  --c-gold:#A88A4F;
  --c-gold-deep:#856B38;
  --c-rose:#C9A39A;
  --c-rose-soft:#EAD8D2;
  --c-green:#3F4A3A;
  --c-line:#06C755;
  --c-cta:#A88A4F;
  --c-cta-hover:#856B38;
  --c-urgent:#B8423B;
  --f-display:'Cormorant Garamond',serif;
  --f-en:'Cinzel',serif;
  --f-jp:'Noto Serif JP',serif;
  --shadow-soft:0 10px 40px rgba(42,36,29,0.08);
  --shadow-card:0 20px 60px rgba(42,36,29,0.12);
}

*{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}

/* === キャンペーン緊急性バー === */
.urgency-bar{
  background:linear-gradient(90deg,var(--c-urgent),#8C2F2A);
  color:#fff;
  padding:10px 16px;
  text-align:center;
  font-size:12px;
  letter-spacing:.05em;
  position:relative;
  overflow:hidden;
}
.urgency-bar::before{
  content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);
  animation:shine 3s infinite;
}
@keyframes shine{to{left:100%}}
.urgency-bar strong{font-weight:600;color:#FFD9A3}
.urgency-bar .countdown{
  display:inline-flex;gap:4px;margin-left:8px;
  font-family:var(--f-en);font-size:13px;
}
.urgency-bar .countdown b{
  background:rgba(0,0,0,.3);padding:2px 6px;border-radius:3px;
  font-weight:500;min-width:22px;display:inline-block;
}
@media(min-width:768px){
  .urgency-bar{font-size:14px;padding:12px 24px}
  .urgency-bar .countdown{font-size:15px}
}

/* === ヘッダー === */
.site-header{
  position:sticky;top:0;z-index:90;
  background:rgba(250,246,239,.95);
  backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(168,138,79,.15);
}
.header-inner{
  max-width:1200px;margin:0 auto;
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 20px;
}
.brand{display:flex;flex-direction:column;line-height:1.1}
.brand-en{font-family:var(--f-en);font-size:11px;letter-spacing:.2em;color:var(--c-gold)}
.brand-jp{font-family:var(--f-display);font-size:18px;font-weight:500;color:var(--c-ink);margin-top:2px}
.header-cta{display:none}
@media(min-width:768px){
  .header-cta{
    display:inline-flex;align-items:center;gap:8px;
    background:var(--c-cta);color:#fff;
    padding:12px 24px;border-radius:2px;
    font-size:13px;letter-spacing:.1em;font-weight:500;
    transition:all .3s;
  }
  .header-cta:hover{background:var(--c-cta-hover);transform:translateY(-1px)}
  .brand-jp{font-size:22px}
  .brand-en{font-size:12px}
}

/* === ヒーロー === */
.hero{
  position:relative;
  min-height:calc(100vh - 100px);
  background:linear-gradient(135deg,#1f1a14 0%,#2A241D 100%);
  color:#fff;
  overflow:hidden;
  display:flex;align-items:center;
  padding:60px 20px 120px;
}
@media(min-width:768px){
  .hero{padding:60px 20px 80px}
}
.hero::before{
  content:'';position:absolute;inset:0;
  background-image:url('https://bridal-campaign.web.app/rcs_lediafane/_assets/img/top.png');
  background-size:cover;background-position:center;
  opacity:.55;
}
.hero::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(31,26,20,.3) 0%,rgba(31,26,20,.1) 40%,rgba(31,26,20,.85) 100%);
}
.hero-inner{position:relative;z-index:2;max-width:1100px;margin:0 auto;width:100%}
.hero-eyebrow{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--f-en);font-size:10px;letter-spacing:.3em;
  color:var(--c-gold);margin-bottom:24px;
  opacity:0;animation:fadeUp .8s .2s forwards;
}
.hero-eyebrow::before,.hero-eyebrow::after{
  content:'';width:30px;height:1px;background:var(--c-gold);
}
.hero h1{
  font-family:var(--f-display);
  font-size:clamp(28px,7vw,56px);
  font-weight:400;line-height:1.3;
  letter-spacing:.02em;
  margin-bottom:20px;
  opacity:0;animation:fadeUp .8s .4s forwards;
}
.hero h1 em{
  font-style:italic;color:var(--c-gold);font-weight:500;
  display:block;font-size:.6em;letter-spacing:.1em;margin-bottom:4px;
}
.hero h1 strong{font-weight:500;color:#fff}
.hero-sub{
  font-size:clamp(14px,3.5vw,17px);
  line-height:1.9;color:rgba(255,255,255,.9);
  margin-bottom:36px;max-width:560px;
  opacity:0;animation:fadeUp .8s .6s forwards;
}
.hero-features{
  display:flex;flex-wrap:wrap;gap:8px 16px;
  margin-bottom:36px;
  opacity:0;animation:fadeUp .8s .7s forwards;
}
.hero-features span{
  font-size:12px;letter-spacing:.05em;
  padding:6px 14px;border:1px solid rgba(168,138,79,.5);
  border-radius:100px;color:#F2EBE0;
}
.hero-cta-group{
  display:flex;flex-direction:column;gap:14px;max-width:420px;
  opacity:0;animation:fadeUp .8s .8s forwards;
}
.cta-primary{
  display:inline-flex;align-items:center;justify-content:center;gap:12px;
  background:linear-gradient(135deg,var(--c-gold),var(--c-gold-deep));
  color:#fff;padding:20px 28px;
  font-size:15px;font-weight:600;letter-spacing:.1em;
  border-radius:2px;
  box-shadow:0 12px 32px rgba(168,138,79,.4);
  transition:all .3s;text-align:center;line-height:1.5;
  position:relative;overflow:hidden;
}
.cta-primary::after{
  content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);
  transition:left .6s;
}
.cta-primary:hover{transform:translateY(-2px);box-shadow:0 16px 40px rgba(168,138,79,.5)}
.cta-primary:hover::after{left:100%}
.cta-primary small{display:block;font-size:11px;letter-spacing:.2em;opacity:.85;font-weight:400;margin-bottom:4px}
.cta-secondary{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  background:#fff;color:var(--c-ink);
  padding:16px 24px;font-size:13px;font-weight:500;letter-spacing:.08em;
  border-radius:2px;transition:all .3s;
}
.cta-secondary:hover{background:var(--c-bg-alt)}
.cta-line{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  background:var(--c-line);color:#fff;
  padding:16px 24px;font-size:13px;font-weight:600;letter-spacing:.05em;
  border-radius:2px;transition:all .3s;
}
.cta-line:hover{background:#04a647}
.hero-trust{
  display:grid;grid-template-columns:repeat(2,1fr);
  gap:16px 20px;margin-top:32px;padding-top:24px;
  padding-bottom:20px;
  border-top:1px solid rgba(255,255,255,.15);
  opacity:0;animation:fadeUp .8s 1s forwards;
}
@media(min-width:768px){
  .hero-trust{display:flex;gap:24px;padding-bottom:0}
}
.hero-trust-item{display:flex;flex-direction:column}
.hero-trust-num{
  font-family:var(--f-display);font-size:26px;font-weight:500;
  color:var(--c-gold);line-height:1;
  display:flex;align-items:baseline;
}
.hero-trust-num span{font-size:13px;margin-left:3px}
.hero-trust-label{font-size:11px;letter-spacing:.05em;color:rgba(255,255,255,.7);margin-top:6px;line-height:1.4}

@keyframes fadeUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}

/* === 共通セクション === */
section{padding:80px 20px;position:relative}
.container{max-width:1100px;margin:0 auto}
.sec-eyebrow{
  display:flex;align-items:center;justify-content:center;gap:14px;
  font-family:var(--f-en);font-size:11px;letter-spacing:.3em;
  color:var(--c-gold);margin-bottom:20px;text-transform:uppercase;
}
.sec-eyebrow::before,.sec-eyebrow::after{
  content:'';width:24px;height:1px;background:var(--c-gold);
}
.sec-title{
  font-family:var(--f-display);
  font-size:clamp(26px,5vw,42px);
  font-weight:500;line-height:1.4;
  text-align:center;color:var(--c-ink);
  margin-bottom:20px;
}
.sec-title em{font-style:italic;color:var(--c-gold);font-weight:500}
.sec-lead{
  font-size:15px;line-height:2;color:var(--c-ink-soft);
  text-align:center;max-width:680px;margin:0 auto 60px;
}
@media(min-width:768px){
  section{padding:120px 24px}
  .sec-title{font-size:42px;margin-bottom:24px}
}

/* === 不安・悩み解決セクション === */
.problems{background:var(--c-bg-alt);padding:60px 20px}
.problems-title{
  font-family:var(--f-display);
  font-size:clamp(20px,4.5vw,30px);
  text-align:center;margin-bottom:32px;line-height:1.6;
  color:var(--c-ink);font-weight:500;
}
.problems-list{
  display:grid;gap:14px;max-width:680px;margin:0 auto 32px;
}
.problem-item{
  background:#fff;padding:20px 24px;border-radius:4px;
  display:flex;align-items:flex-start;gap:14px;
  font-size:14px;line-height:1.7;
  box-shadow:var(--shadow-soft);
}
.problem-item::before{
  content:'✓';color:var(--c-rose);font-weight:700;font-size:18px;flex-shrink:0;
  font-family:var(--f-en);
}
.problems-arrow{
  text-align:center;font-family:var(--f-en);
  color:var(--c-gold);letter-spacing:.3em;font-size:13px;
  margin:32px 0 24px;
}
.problems-arrow::before{
  content:'';display:block;width:1px;height:40px;
  background:var(--c-gold);margin:0 auto 16px;
}
.problems-conclusion{
  text-align:center;font-family:var(--f-display);
  font-size:clamp(20px,4.5vw,30px);
  line-height:1.6;color:var(--c-gold-deep);
  font-weight:500;
}
.problems-conclusion em{font-style:italic;color:var(--c-rose);font-weight:600}

/* === 4つのこだわり === */
.concepts{background:var(--c-bg)}
.concept-grid{
  display:grid;gap:32px;
  grid-template-columns:1fr;
}
@media(min-width:768px){
  .concept-grid{grid-template-columns:repeat(2,1fr);gap:48px}
}
.concept-card{
  background:#fff;border-radius:4px;overflow:hidden;
  box-shadow:var(--shadow-card);
  transition:transform .4s;
  position:relative;
}
.concept-card:hover{transform:translateY(-6px)}
.concept-num{
  position:absolute;top:20px;left:20px;z-index:3;
  background:var(--c-ink);color:var(--c-gold);
  width:48px;height:48px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-family:var(--f-en);font-size:14px;letter-spacing:.05em;
}
.concept-img{
  height:240px;background:var(--c-bg-alt);
  background-size:cover;background-position:center;
  position:relative;
}
.concept-img::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 50%,rgba(0,0,0,.3));
}
.concept-body{padding:32px 28px}
.concept-tag{
  display:inline-block;font-family:var(--f-en);font-size:10px;
  letter-spacing:.2em;color:var(--c-gold);margin-bottom:12px;
}
.concept-title{
  font-family:var(--f-display);font-size:24px;font-weight:500;
  line-height:1.4;color:var(--c-ink);margin-bottom:16px;
}
.concept-title em{color:var(--c-gold);font-style:italic;font-weight:500}
.concept-desc{font-size:14px;line-height:2;color:var(--c-ink-soft)}
.concept-highlight{
  margin-top:20px;padding-top:20px;border-top:1px dashed rgba(168,138,79,.3);
  display:flex;gap:14px;flex-wrap:wrap;
}
.concept-highlight span{
  font-size:11px;padding:4px 10px;background:var(--c-bg-alt);
  color:var(--c-ink);border-radius:100px;letter-spacing:.05em;
}

/* === ガーデン／会場ギャラリー === */
.gallery{
  background:linear-gradient(180deg,var(--c-bg) 0%,var(--c-bg-alt) 100%);
  padding:80px 0;
}
.gallery .container{padding:0 20px}
.gallery-grid{
  display:grid;gap:8px;
  grid-template-columns:repeat(2,1fr);
  margin-top:48px;
}
@media(min-width:768px){
  .gallery-grid{grid-template-columns:repeat(4,1fr);gap:12px}
}
.gallery-item{
  aspect-ratio:1/1.2;background:var(--c-ink);
  background-size:cover;background-position:center;
  position:relative;overflow:hidden;
  transition:all .5s;
}
.gallery-item:nth-child(1){background-image:url('https://bridal-campaign.web.app/rcs_lediafane/_assets/img/koda003-3.png')}
.gallery-item:nth-child(2){background-image:url('https://bridal-campaign.web.app/rcs_lediafane/_assets/img/merit001.png')}
.gallery-item:nth-child(3){background-image:url('https://bridal-campaign.web.app/rcs_lediafane/_assets/img/koda004-1.png')}
.gallery-item:nth-child(4){background-image:url('https://bridal-campaign.web.app/rcs_lediafane/_assets/img/koda003-2.png')}
.gallery-item::after{
  content:'';position:absolute;inset:0;
  background:rgba(42,36,29,0);transition:background .3s;
}
.gallery-item:hover::after{background:rgba(42,36,29,.2)}

/* === 価格・特典セクション === */
.offer{
  background:linear-gradient(135deg,#2A241D 0%,#1f1a14 100%);
  color:#fff;position:relative;overflow:hidden;
}
.offer::before{
  content:'';position:absolute;top:-100px;right:-100px;
  width:400px;height:400px;
  background:radial-gradient(circle,rgba(168,138,79,.15) 0%,transparent 70%);
}
.offer .sec-title{color:#fff}
.offer .sec-title em{color:var(--c-gold)}
.offer .sec-eyebrow{color:var(--c-gold)}
.offer-card{
  background:rgba(255,255,255,.03);
  border:1px solid rgba(168,138,79,.3);
  border-radius:6px;padding:40px 28px;
  max-width:680px;margin:0 auto;
  position:relative;backdrop-filter:blur(10px);
}
.offer-badge{
  position:absolute;top:-20px;left:50%;transform:translateX(-50%);
  background:linear-gradient(135deg,var(--c-urgent),#8C2F2A);
  color:#fff;padding:8px 24px;border-radius:100px;
  font-size:11px;letter-spacing:.2em;font-weight:600;
  white-space:nowrap;
  box-shadow:0 8px 24px rgba(184,66,59,.4);
}
.offer-headline{
  text-align:center;font-family:var(--f-display);
  font-size:clamp(22px,5vw,32px);
  margin:16px 0 28px;line-height:1.5;
  color:#fff;font-weight:500;
}
.offer-percent{
  text-align:center;margin-bottom:32px;
  font-family:var(--f-display);
}
.offer-percent strong{
  font-size:clamp(80px,18vw,140px);
  font-weight:500;color:var(--c-gold);line-height:1;
  display:inline-block;
  background:linear-gradient(135deg,#D4B26A,#A88A4F);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;
  letter-spacing:-.02em;
}
.offer-percent span{
  font-size:32px;color:var(--c-gold);margin-left:4px;
}
.offer-percent small{
  display:block;font-size:13px;letter-spacing:.15em;
  color:rgba(255,255,255,.7);margin-top:8px;
  font-family:var(--f-jp);
}
.offer-list{
  display:grid;gap:14px;margin:32px 0;
  list-style:none;
}
.offer-list li{
  display:flex;justify-content:space-between;align-items:center;
  padding:16px 20px;
  background:rgba(255,255,255,.04);
  border-left:3px solid var(--c-gold);
  font-size:14px;
}
.offer-list li b{color:var(--c-gold);font-family:var(--f-display);font-size:18px;font-weight:500}
.offer-deadline{
  text-align:center;padding:16px;margin-top:24px;
  background:rgba(184,66,59,.15);
  border:1px dashed rgba(184,66,59,.5);
  border-radius:4px;font-size:13px;letter-spacing:.05em;
}
.offer-deadline b{color:#FFB8B3;font-weight:600}

/* === お客様の声 === */
.voice{background:var(--c-bg)}
.voice-grid{
  display:grid;gap:24px;
  grid-template-columns:1fr;
  margin-top:48px;
}
@media(min-width:768px){
  .voice-grid{grid-template-columns:repeat(3,1fr);gap:28px}
}
.voice-card{
  background:#fff;padding:32px 28px;border-radius:4px;
  box-shadow:var(--shadow-soft);
  position:relative;
}
.voice-card::before{
  content:'"';position:absolute;top:8px;left:20px;
  font-family:var(--f-display);font-size:80px;
  color:var(--c-gold);opacity:.2;line-height:1;font-style:italic;
}
.voice-stars{
  color:var(--c-gold);font-size:14px;letter-spacing:.1em;
  margin-bottom:16px;position:relative;z-index:2;
}
.voice-text{
  font-size:14px;line-height:2;color:var(--c-ink);
  margin-bottom:20px;position:relative;z-index:2;
}
.voice-meta{
  display:flex;align-items:center;gap:12px;
  padding-top:20px;border-top:1px solid rgba(168,138,79,.2);
}
.voice-avatar{
  width:44px;height:44px;border-radius:50%;
  background:linear-gradient(135deg,var(--c-rose-soft),var(--c-rose));
  display:flex;align-items:center;justify-content:center;
  font-family:var(--f-display);font-size:18px;color:#fff;font-weight:500;
}
.voice-name{font-size:13px;font-weight:600;color:var(--c-ink)}
.voice-detail{font-size:11px;color:var(--c-ink-soft);margin-top:2px}

/* === ブライダルフェア === */
.fair{background:var(--c-bg-alt);padding:80px 20px}
.fair-grid{
  display:grid;gap:20px;
  grid-template-columns:1fr;
  max-width:980px;margin:48px auto 0;
}
@media(min-width:768px){
  .fair-grid{grid-template-columns:repeat(2,1fr)}
}
.fair-card{
  background:#fff;border-radius:4px;overflow:hidden;
  box-shadow:var(--shadow-soft);
  display:flex;flex-direction:column;
  transition:transform .3s;
}
.fair-card:hover{transform:translateY(-4px)}
.fair-img{
  height:200px;background-size:cover;background-position:center;
  position:relative;
}
.fair-img:nth-of-type(1){background-image:url('https://bridal-campaign.web.app/rcs_lediafane/_assets/img/fair001.png')}
.fair-card:nth-child(1) .fair-img{background-image:url('https://bridal-campaign.web.app/rcs_lediafane/_assets/img/koda003-1.png')}
.fair-card:nth-child(2) .fair-img{background-image:url('https://bridal-campaign.web.app/rcs_lediafane/_assets/img/koda004.png')}
.fair-tag{
  position:absolute;top:16px;left:16px;
  background:var(--c-gold);color:#fff;
  padding:6px 14px;font-size:11px;letter-spacing:.1em;
  border-radius:100px;
}
.fair-body{padding:28px;flex:1;display:flex;flex-direction:column}
.fair-time{
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--f-en);font-size:12px;letter-spacing:.1em;
  color:var(--c-gold);margin-bottom:12px;
}
.fair-title{
  font-family:var(--f-display);font-size:22px;font-weight:500;
  margin-bottom:12px;color:var(--c-ink);line-height:1.4;
}
.fair-desc{
  font-size:13px;line-height:1.9;color:var(--c-ink-soft);
  margin-bottom:20px;flex:1;
}
.fair-features{
  list-style:none;display:grid;gap:8px;margin-bottom:24px;
}
.fair-features li{
  font-size:12px;color:var(--c-ink);
  padding-left:20px;position:relative;
}
.fair-features li::before{
  content:'';position:absolute;left:0;top:8px;
  width:12px;height:1px;background:var(--c-gold);
}
.fair-cta{
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--c-ink);color:#fff;
  padding:14px 20px;font-size:13px;letter-spacing:.1em;
  border-radius:2px;transition:all .3s;
  margin-top:auto;
}
.fair-cta:hover{background:var(--c-gold)}

/* === FAQ === */
.faq{background:var(--c-bg)}
.faq-list{max-width:760px;margin:48px auto 0}
.faq-item{
  background:#fff;border-radius:4px;margin-bottom:12px;
  box-shadow:var(--shadow-soft);overflow:hidden;
}
.faq-q{
  width:100%;text-align:left;
  padding:20px 24px;display:flex;align-items:center;gap:16px;
  font-size:14px;font-weight:500;color:var(--c-ink);
  transition:background .2s;line-height:1.6;
}
.faq-q:hover{background:var(--c-bg-alt)}
.faq-q::before{
  content:'Q';font-family:var(--f-en);
  color:var(--c-gold);font-size:18px;flex-shrink:0;
  width:28px;height:28px;border:1px solid var(--c-gold);
  border-radius:50%;display:flex;align-items:center;justify-content:center;
}
.faq-q::after{
  content:'+';margin-left:auto;font-size:24px;color:var(--c-gold);
  transition:transform .3s;flex-shrink:0;font-weight:300;
}
.faq-item.open .faq-q::after{transform:rotate(45deg)}
.faq-a{
  max-height:0;overflow:hidden;transition:max-height .4s;
  font-size:14px;color:var(--c-ink-soft);line-height:1.9;
}
.faq-item.open .faq-a{max-height:300px}
.faq-a-inner{padding:0 24px 24px 68px}

/* === フォームセクション === */
.form-section{
  background:linear-gradient(180deg,var(--c-bg-alt) 0%,var(--c-bg) 100%);
  padding:80px 20px;
}
.form-wrap{
  max-width:680px;margin:0 auto;
  background:#fff;padding:48px 32px;
  border-radius:4px;box-shadow:var(--shadow-card);
  border-top:4px solid var(--c-gold);
}
.form-steps{
  display:flex;justify-content:center;gap:8px;margin-bottom:32px;
}
.form-step{
  display:flex;align-items:center;gap:8px;
  font-size:12px;color:var(--c-ink-soft);
}
.form-step b{
  width:24px;height:24px;border-radius:50%;
  background:var(--c-gold);color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-family:var(--f-en);font-size:12px;font-weight:500;
}
.form-step + .form-step::before{
  content:'—';color:var(--c-gold);margin-right:4px;
}
.form-headline{
  text-align:center;font-family:var(--f-display);
  font-size:clamp(22px,5vw,30px);
  font-weight:500;margin-bottom:8px;color:var(--c-ink);
}
.form-sub{
  text-align:center;font-size:13px;color:var(--c-ink-soft);
  margin-bottom:32px;
}
.form-time{
  display:inline-flex;align-items:center;gap:6px;
  background:var(--c-rose-soft);color:var(--c-ink);
  padding:6px 14px;border-radius:100px;
  font-size:12px;font-weight:500;margin:0 auto 32px;
  display:flex;width:fit-content;
}
.form-group{margin-bottom:20px}
.form-label{
  display:flex;align-items:center;gap:8px;
  font-size:13px;font-weight:600;margin-bottom:8px;color:var(--c-ink);
}
.form-label .req{
  background:var(--c-urgent);color:#fff;font-size:10px;
  padding:2px 6px;border-radius:2px;font-weight:500;letter-spacing:.05em;
}
.form-label .opt{
  background:var(--c-bg-alt);color:var(--c-ink-soft);font-size:10px;
  padding:2px 6px;border-radius:2px;font-weight:500;letter-spacing:.05em;
}
.form-input,.form-select,.form-textarea{
  width:100%;padding:14px 16px;
  border:1px solid rgba(168,138,79,.3);
  border-radius:2px;font-size:15px;
  font-family:var(--f-jp);background:var(--c-bg);
  transition:all .2s;
}
.form-input:focus,.form-select:focus,.form-textarea:focus{
  outline:none;border-color:var(--c-gold);
  background:#fff;box-shadow:0 0 0 3px rgba(168,138,79,.15);
}
.form-radio-group{display:grid;gap:8px;grid-template-columns:repeat(2,1fr)}
.form-radio{position:relative}
.form-radio input{position:absolute;opacity:0;pointer-events:none}
.form-radio label{
  display:block;padding:12px;text-align:center;
  border:1px solid rgba(168,138,79,.3);border-radius:2px;
  font-size:13px;cursor:pointer;transition:all .2s;background:var(--c-bg);
}
.form-radio input:checked + label{
  border-color:var(--c-gold);background:var(--c-gold);color:#fff;
}
.form-submit{
  width:100%;background:linear-gradient(135deg,var(--c-gold),var(--c-gold-deep));
  color:#fff;padding:20px;font-size:16px;font-weight:600;letter-spacing:.1em;
  border-radius:2px;margin-top:12px;
  box-shadow:0 12px 32px rgba(168,138,79,.4);
  transition:all .3s;cursor:pointer;
}
.form-submit:hover{transform:translateY(-2px);box-shadow:0 16px 40px rgba(168,138,79,.5)}
.form-submit small{display:block;font-size:11px;font-weight:400;letter-spacing:.15em;opacity:.85;margin-top:4px}
.form-divider{
  text-align:center;margin:32px 0 24px;
  font-size:12px;color:var(--c-ink-soft);
  position:relative;letter-spacing:.1em;
}
.form-divider::before,.form-divider::after{
  content:'';position:absolute;top:50%;width:35%;height:1px;
  background:rgba(168,138,79,.3);
}
.form-divider::before{left:0}
.form-divider::after{right:0}
.form-line-btn{
  width:100%;background:var(--c-line);color:#fff;
  padding:18px;font-size:15px;font-weight:600;letter-spacing:.05em;
  border-radius:2px;display:flex;align-items:center;justify-content:center;gap:10px;
  transition:all .3s;
}
.form-line-btn:hover{background:#04a647;transform:translateY(-2px)}
.form-tel{
  text-align:center;margin-top:24px;
  padding-top:24px;border-top:1px dashed rgba(168,138,79,.3);
}
.form-tel-label{font-size:12px;color:var(--c-ink-soft);margin-bottom:8px;letter-spacing:.1em}
.form-tel-num{
  font-family:var(--f-display);font-size:32px;font-weight:500;
  color:var(--c-ink);letter-spacing:.05em;
  display:flex;align-items:center;justify-content:center;gap:10px;
}
.form-tel-num::before{
  content:'☎';font-size:24px;color:var(--c-gold);
}
.form-tel-time{font-size:11px;color:var(--c-ink-soft);margin-top:6px}

/* === フッター === */
.site-footer{
  background:var(--c-ink);color:rgba(255,255,255,.6);
  padding:60px 20px 40px;text-align:center;
}
.footer-brand{margin-bottom:32px}
.footer-brand .brand-en{font-size:11px;color:var(--c-gold);margin-bottom:8px;display:block}
.footer-brand .brand-jp{
  font-family:var(--f-display);font-size:24px;color:#fff;font-weight:500;
}
.footer-info{
  font-size:13px;line-height:2;margin-bottom:32px;
}
.footer-copy{
  font-size:11px;letter-spacing:.1em;
  padding-top:24px;border-top:1px solid rgba(255,255,255,.1);
}

/* === スティッキー底部CTA(モバイル) === */
.sticky-cta{
  position:fixed;bottom:0;left:0;right:0;
  background:rgba(42,36,29,.97);backdrop-filter:blur(10px);
  padding:12px 16px;display:flex;gap:8px;
  z-index:100;border-top:1px solid rgba(168,138,79,.3);
  box-shadow:0 -4px 20px rgba(0,0,0,.2);
}
.sticky-cta a{
  flex:1;display:flex;align-items:center;justify-content:center;gap:6px;
  padding:14px 8px;border-radius:2px;
  font-size:13px;font-weight:600;letter-spacing:.05em;
  transition:all .2s;
}
.sticky-cta .sticky-tel{background:#fff;color:var(--c-ink)}
.sticky-cta .sticky-line{background:var(--c-line);color:#fff}
.sticky-cta .sticky-form{background:linear-gradient(135deg,var(--c-gold),var(--c-gold-deep));color:#fff}
@media(min-width:768px){
  .sticky-cta{display:none}
}

/* === フローティングCTA(PC) === */
.floating-cta{
  display:none;
}
@media(min-width:1024px){
  .floating-cta{
    display:flex;flex-direction:column;gap:12px;
    position:fixed;right:24px;bottom:24px;z-index:50;
  }
  .floating-cta a{
    display:flex;align-items:center;gap:10px;
    padding:16px 20px;border-radius:100px;
    font-size:13px;font-weight:600;letter-spacing:.05em;
    box-shadow:0 8px 24px rgba(0,0,0,.2);
    transition:all .3s;
  }
  .floating-cta .float-form{
    background:linear-gradient(135deg,var(--c-gold),var(--c-gold-deep));color:#fff;
  }
  .floating-cta .float-form:hover{transform:translateX(-4px);box-shadow:0 12px 32px rgba(168,138,79,.4)}
  .floating-cta .float-line{background:var(--c-line);color:#fff}
  .floating-cta .float-line:hover{transform:translateX(-4px)}
}

/* === スクロール出現アニメ === */
/* デフォルトは表示。JS有効ブラウザでのみフェードイン演出を有効化 */
.js-reveal-ready .reveal{opacity:0;transform:translateY(30px);transition:all .8s ease-out}
.js-reveal-ready .reveal.in{opacity:1;transform:translateY(0)}

/* アクセシビリティ: モーション削減を希望するユーザーには即表示 */
@media (prefers-reduced-motion: reduce){
  .js-reveal-ready .reveal{opacity:1;transform:none;transition:none}
}

/* === デコレーティブな仕切り === */
.divider-ornament{
  display:flex;align-items:center;justify-content:center;gap:14px;
  margin:0 auto;color:var(--c-gold);
}
.divider-ornament::before,.divider-ornament::after{
  content:'';width:60px;height:1px;background:currentColor;opacity:.5;
}
.divider-ornament span{font-size:8px;letter-spacing:.5em;font-family:var(--f-en)}

/* === ▼ プロ施策追加CSS ▼ === */

/* 来館特典セクション (Hero直下) */
.gift-banner{
  background:linear-gradient(135deg,#FFF8EC 0%,#FBEFD9 100%);
  border-top:1px solid rgba(168,138,79,.2);
  border-bottom:1px solid rgba(168,138,79,.2);
  padding:32px 20px;
}
.gift-inner{
  max-width:1100px;margin:0 auto;
  display:grid;gap:20px;
  grid-template-columns:1fr;
  align-items:center;
}
@media(min-width:768px){
  .gift-inner{grid-template-columns:auto 1fr;gap:36px}
}
.gift-icon{
  width:80px;height:80px;border-radius:50%;
  background:linear-gradient(135deg,var(--c-gold),var(--c-gold-deep));
  color:#fff;display:flex;align-items:center;justify-content:center;
  font-size:36px;margin:0 auto;
  box-shadow:0 12px 28px rgba(168,138,79,.35);
  position:relative;flex-shrink:0;
}
.gift-icon::after{
  content:'GIFT';position:absolute;bottom:-8px;left:50%;transform:translateX(-50%);
  background:var(--c-urgent);color:#fff;font-family:var(--f-en);
  font-size:9px;letter-spacing:.15em;padding:2px 8px;border-radius:100px;
  white-space:nowrap;
}
.gift-text{text-align:center}
@media(min-width:768px){.gift-text{text-align:left}}
.gift-label{
  font-family:var(--f-en);font-size:11px;letter-spacing:.25em;
  color:var(--c-gold-deep);margin-bottom:8px;
}
.gift-headline{
  font-family:var(--f-display);font-size:clamp(20px,4.5vw,28px);
  font-weight:600;color:var(--c-ink);line-height:1.5;
  margin-bottom:8px;
}
.gift-headline strong{color:var(--c-urgent);font-weight:700}
.gift-headline em{
  font-style:normal;background:linear-gradient(transparent 60%,#FFE9A8 60%);
  font-weight:600;
}
.gift-detail{
  font-size:12px;color:var(--c-ink-soft);line-height:1.6;
}

/* メディア掲載・受賞バッジバー */
.media-bar{
  background:#fff;padding:32px 20px;
  border-bottom:1px solid rgba(168,138,79,.1);
}
.media-inner{max-width:1100px;margin:0 auto;text-align:center}
.media-label{
  font-family:var(--f-en);font-size:10px;letter-spacing:.3em;
  color:var(--c-ink-soft);margin-bottom:18px;
}
.media-logos{
  display:flex;justify-content:center;align-items:center;
  gap:16px 32px;flex-wrap:wrap;
}
.media-logo{
  font-family:var(--f-display);font-size:16px;font-weight:500;
  color:var(--c-ink-soft);opacity:.7;letter-spacing:.05em;
  padding:6px 14px;border:1px solid rgba(42,36,29,.15);
  border-radius:2px;font-style:italic;
  white-space:nowrap;
}
.media-logo b{font-style:normal;font-weight:600;color:var(--c-gold)}
@media(min-width:768px){
  .media-logo{font-size:18px;padding:8px 20px}
}

/* リアルタイム予約状況 */
.realtime-bar{
  background:var(--c-bg-alt);
  padding:14px 20px;
  display:flex;align-items:center;justify-content:center;gap:10px;
  font-size:13px;text-align:center;
  border-bottom:1px solid rgba(168,138,79,.15);
}
.realtime-bar .pulse{
  width:8px;height:8px;border-radius:50%;background:#22A06B;
  position:relative;flex-shrink:0;
}
.realtime-bar .pulse::after{
  content:'';position:absolute;inset:0;border-radius:50%;
  background:#22A06B;animation:pulse 2s infinite;
}
@keyframes pulse{
  0%{transform:scale(1);opacity:.7}
  100%{transform:scale(2.5);opacity:0}
}
.realtime-bar b{color:var(--c-urgent);font-weight:700}

/* お見積もり例セクション */
.estimate{background:#fff}
.estimate-grid{
  display:grid;gap:24px;grid-template-columns:1fr;
  margin-top:48px;
}
@media(min-width:768px){
  .estimate-grid{grid-template-columns:repeat(3,1fr);gap:24px}
}
.estimate-card{
  border:1px solid rgba(168,138,79,.25);
  border-radius:6px;padding:32px 24px;
  background:linear-gradient(180deg,#fff 0%,var(--c-bg) 100%);
  position:relative;overflow:hidden;
  transition:all .3s;
}
.estimate-card:hover{
  border-color:var(--c-gold);
  box-shadow:var(--shadow-card);
  transform:translateY(-4px);
}
.estimate-card.popular{
  border:2px solid var(--c-gold);
  background:linear-gradient(180deg,#FFFCF6 0%,#FBEFD9 100%);
}
.estimate-card.popular::before{
  content:'★ 人気';position:absolute;top:0;right:0;
  background:var(--c-gold);color:#fff;
  padding:6px 14px;font-size:11px;letter-spacing:.1em;
  border-radius:0 0 0 4px;
}
.estimate-people{
  font-family:var(--f-en);font-size:11px;letter-spacing:.2em;
  color:var(--c-gold);margin-bottom:8px;
}
.estimate-name{
  font-family:var(--f-display);font-size:22px;font-weight:500;
  color:var(--c-ink);margin-bottom:20px;
}
.estimate-price{
  display:flex;align-items:baseline;gap:6px;
  margin-bottom:12px;
}
.estimate-price-original{
  font-size:14px;color:var(--c-ink-soft);
  text-decoration:line-through;
}
.estimate-price-final{
  font-family:var(--f-display);font-size:36px;font-weight:600;
  color:var(--c-ink);
}
.estimate-price-final span{font-size:18px;font-weight:500}
.estimate-monthly{
  font-size:12px;color:var(--c-gold-deep);
  margin-bottom:20px;font-weight:500;
}
.estimate-monthly b{font-size:16px;font-family:var(--f-display);font-weight:600}
.estimate-included{
  list-style:none;padding-top:20px;
  border-top:1px dashed rgba(168,138,79,.3);
  display:grid;gap:8px;
}
.estimate-included li{
  font-size:12px;color:var(--c-ink-soft);
  padding-left:18px;position:relative;line-height:1.6;
}
.estimate-included li::before{
  content:'✓';position:absolute;left:0;color:var(--c-gold);font-weight:600;
}
.estimate-note{
  background:var(--c-bg);padding:20px;border-radius:4px;
  margin-top:32px;text-align:center;
  font-size:12px;color:var(--c-ink-soft);
}
.estimate-note b{color:var(--c-ink);font-weight:600}

/* 来館の流れタイムライン */
.flow{
  background:linear-gradient(180deg,var(--c-bg) 0%,var(--c-bg-alt) 100%);
}
.flow-timeline{
  max-width:760px;margin:48px auto 0;
  position:relative;
}
.flow-timeline::before{
  content:'';position:absolute;left:24px;top:30px;bottom:30px;
  width:2px;background:linear-gradient(180deg,var(--c-gold),rgba(168,138,79,.2));
}
@media(min-width:768px){
  .flow-timeline::before{left:32px}
}
.flow-item{
  display:flex;gap:20px;margin-bottom:28px;
  position:relative;
}
.flow-num{
  width:50px;height:50px;border-radius:50%;
  background:#fff;border:2px solid var(--c-gold);
  color:var(--c-gold);font-family:var(--f-en);
  font-size:14px;font-weight:600;
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;position:relative;z-index:2;
  box-shadow:0 4px 12px rgba(168,138,79,.2);
}
@media(min-width:768px){
  .flow-num{width:66px;height:66px;font-size:16px}
}
.flow-body{
  background:#fff;padding:20px 24px;border-radius:4px;
  flex:1;box-shadow:var(--shadow-soft);
}
.flow-time{
  display:inline-block;font-family:var(--f-en);
  font-size:11px;letter-spacing:.1em;color:var(--c-gold);
  margin-bottom:6px;
}
.flow-title{
  font-family:var(--f-display);font-size:20px;font-weight:500;
  color:var(--c-ink);margin-bottom:8px;line-height:1.4;
}
.flow-desc{font-size:13px;color:var(--c-ink-soft);line-height:1.8}
.flow-tag{
  display:inline-block;font-size:11px;
  background:var(--c-rose-soft);color:var(--c-ink);
  padding:3px 10px;border-radius:100px;margin-top:10px;
}
.flow-promise{
  margin-top:32px;background:#fff;
  border:2px dashed var(--c-gold);
  border-radius:4px;padding:24px;text-align:center;
}
.flow-promise-label{
  font-family:var(--f-en);font-size:11px;letter-spacing:.25em;
  color:var(--c-gold);margin-bottom:10px;
}
.flow-promise-text{
  font-family:var(--f-display);font-size:clamp(18px,4vw,24px);
  font-weight:500;color:var(--c-ink);line-height:1.6;
}
.flow-promise-text em{color:var(--c-gold);font-style:italic}

/* 競合比較表 */
.compare{background:var(--c-bg)}
.compare-table-wrap{
  max-width:880px;margin:48px auto 0;
}
.compare-table{
  width:100%;border-collapse:separate;
  border-spacing:0;background:#fff;
  border-radius:6px;overflow:hidden;
  box-shadow:var(--shadow-card);
}
.compare-table th,.compare-table td{
  padding:16px 10px;text-align:center;
  font-size:12px;border-bottom:1px solid rgba(168,138,79,.15);
}
@media(min-width:768px){
  .compare-table th,.compare-table td{padding:22px 18px;font-size:14px}
}
.compare-table thead th{
  background:var(--c-bg-alt);
  font-family:var(--f-display);font-weight:500;font-size:13px;
}
@media(min-width:768px){
  .compare-table thead th{font-size:14px}
}
.compare-table .item-col{
  text-align:left;font-weight:500;color:var(--c-ink);
  background:var(--c-bg);
}
.compare-table .ours{
  background:linear-gradient(180deg,#FFFCF6,#FBEFD9);
  position:relative;
}
.compare-table .ours-header{
  background:var(--c-ink);color:var(--c-gold);
  font-family:var(--f-display);
  font-size:11px;
}
@media(min-width:768px){
  .compare-table .ours-header{font-size:14px}
}
.compare-table .ours-header small{
  display:block;font-family:var(--f-en);font-size:9px;
  letter-spacing:.2em;opacity:.7;margin-bottom:2px;
}
.compare-yes{color:var(--c-gold-deep);font-weight:700;font-size:16px}
.compare-no{color:#C9A39A;font-weight:600;font-size:16px}
.compare-na{color:var(--c-ink-soft);font-size:11px}
@media(min-width:768px){
  .compare-yes{font-size:18px}
  .compare-no{font-size:18px}
  .compare-na{font-size:12px}
}
.compare-table .ours .compare-yes{font-size:18px}
@media(min-width:768px){
  .compare-table .ours .compare-yes{font-size:22px}
}

/* Instagram風セクション */
.insta{
  background:#fff;padding:80px 20px;
}
.insta-handle{
  display:inline-flex;align-items:center;gap:10px;
  background:var(--c-bg);padding:10px 20px;border-radius:100px;
  font-size:13px;font-weight:500;margin:0 auto 16px;
  color:var(--c-ink);
}
.insta-handle::before{
  content:'';width:24px;height:24px;border-radius:7px;
  background:linear-gradient(135deg,#F09433,#E6683C,#DC2743,#CC2366,#BC1888);
  display:flex;align-items:center;justify-content:center;
  position:relative;
}
.insta-handle::after{
  content:'';position:absolute;width:14px;height:14px;
  border:2px solid #fff;border-radius:5px;
  margin-left:-19px;
}
.insta-grid{
  display:grid;gap:8px;
  grid-template-columns:repeat(3,1fr);
  max-width:880px;margin:32px auto 0;
}
@media(min-width:768px){
  .insta-grid{grid-template-columns:repeat(6,1fr);gap:12px}
}
.insta-item{
  aspect-ratio:1/1;background-size:cover;background-position:center;
  background-color:var(--c-bg-alt);
  position:relative;overflow:hidden;cursor:pointer;
}
.insta-item::after{
  content:'';position:absolute;inset:0;
  background:rgba(42,36,29,0);transition:background .3s;
}
.insta-item:hover::after{background:rgba(42,36,29,.4)}
.insta-item:nth-child(1){background-image:url('https://bridal-campaign.web.app/rcs_lediafane/_assets/img/koda003-3.png')}
.insta-item:nth-child(2){background-image:url('https://bridal-campaign.web.app/rcs_lediafane/_assets/img/merit001.png')}
.insta-item:nth-child(3){background-image:url('https://bridal-campaign.web.app/rcs_lediafane/_assets/img/koda004-1.png')}
.insta-item:nth-child(4){background-image:url('https://bridal-campaign.web.app/rcs_lediafane/_assets/img/koda003-2.png')}
.insta-item:nth-child(5){background-image:url('https://bridal-campaign.web.app/rcs_lediafane/_assets/img/koda003-1.png')}
.insta-item:nth-child(6){background-image:url('https://bridal-campaign.web.app/rcs_lediafane/_assets/img/top.png')}
.insta-cta{
  text-align:center;margin-top:32px;
}
.insta-cta a{
  display:inline-flex;align-items:center;gap:8px;
  font-size:14px;color:var(--c-ink);font-weight:500;
  border-bottom:1px solid var(--c-gold);padding-bottom:4px;
}

/* タグクラウド (検索キーワード対応) */
.tags{
  background:var(--c-bg-alt);padding:48px 20px;
}
.tags-inner{max-width:880px;margin:0 auto;text-align:center}
.tags-label{
  font-family:var(--f-en);font-size:11px;letter-spacing:.25em;
  color:var(--c-gold);margin-bottom:20px;
}
.tags-list{
  display:flex;flex-wrap:wrap;justify-content:center;gap:8px;
}
.tags-list span{
  background:#fff;padding:8px 16px;border-radius:100px;
  font-size:12px;color:var(--c-ink);
  border:1px solid rgba(168,138,79,.25);
}
.tags-list span b{color:var(--c-gold-deep);font-weight:600}

/* 離脱意図モーダル */
.exit-modal{
  position:fixed;inset:0;background:rgba(42,36,29,.85);
  z-index:200;display:none;align-items:center;justify-content:center;
  padding:20px;backdrop-filter:blur(6px);
}
.exit-modal.show{display:flex;animation:modalFade .3s}
@keyframes modalFade{from{opacity:0}to{opacity:1}}
.exit-modal-inner{
  background:#fff;max-width:480px;width:100%;
  border-radius:6px;padding:36px 28px;
  position:relative;text-align:center;
  border-top:6px solid var(--c-gold);
  animation:modalSlide .4s ease-out;
}
@keyframes modalSlide{from{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}
.exit-close{
  position:absolute;top:12px;right:14px;
  width:32px;height:32px;border-radius:50%;
  background:var(--c-bg);font-size:20px;color:var(--c-ink-soft);
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;transition:all .2s;
}
.exit-close:hover{background:var(--c-bg-alt);color:var(--c-ink)}
.exit-icon{font-size:48px;margin-bottom:12px}
.exit-eyebrow{
  font-family:var(--f-en);font-size:11px;letter-spacing:.25em;
  color:var(--c-urgent);margin-bottom:8px;
}
.exit-headline{
  font-family:var(--f-display);font-size:24px;font-weight:600;
  color:var(--c-ink);margin-bottom:14px;line-height:1.5;
}
.exit-headline em{color:var(--c-gold-deep);font-style:italic}
.exit-text{
  font-size:13px;color:var(--c-ink-soft);line-height:1.8;
  margin-bottom:24px;
}
.exit-line-btn{
  display:flex;width:100%;background:var(--c-line);color:#fff;
  padding:18px;font-size:15px;font-weight:600;
  border-radius:2px;align-items:center;justify-content:center;gap:10px;
  transition:all .2s;
}
.exit-line-btn:hover{background:#04a647}
.exit-mini{
  font-size:11px;color:var(--c-ink-soft);margin-top:14px;
}

/* アクセスマップ */
.access{background:#fff;padding:80px 20px}
.access-grid{
  display:grid;gap:32px;
  grid-template-columns:1fr;max-width:1000px;margin:48px auto 0;
}
@media(min-width:768px){
  .access-grid{grid-template-columns:1fr 1fr;gap:48px}
}
.access-info{display:flex;flex-direction:column;justify-content:center}
.access-info h3{
  font-family:var(--f-display);font-size:24px;font-weight:500;
  margin-bottom:20px;color:var(--c-ink);
}
.access-info dl{display:grid;gap:14px}
.access-info dt{
  font-family:var(--f-en);font-size:11px;letter-spacing:.2em;
  color:var(--c-gold);margin-bottom:4px;
}
.access-info dd{font-size:14px;line-height:1.7;color:var(--c-ink)}
.access-map-placeholder{
  background:linear-gradient(135deg,#E8E0D0,#D4C8B0);
  height:280px;border-radius:6px;
  display:flex;align-items:center;justify-content:center;
  position:relative;overflow:hidden;
  font-family:var(--f-display);color:rgba(0,0,0,.4);
  font-size:14px;
}
.access-map-placeholder::before{
  content:'📍';font-size:48px;position:absolute;
  top:50%;left:50%;transform:translate(-50%,-65%);
}
.access-map-placeholder span{
  position:absolute;bottom:20px;
  background:#fff;padding:6px 14px;border-radius:100px;
  font-size:12px;color:var(--c-ink);
  box-shadow:var(--shadow-soft);
}

/* === ▼ 「花嫁さまのリアルな1日」ストーリーセクション ▼ === */
.insta-intro{
  text-align:center;max-width:640px;margin:0 auto 40px;
  font-size:14px;line-height:2;color:var(--c-ink-soft);
}
.insta-stories{
  display:grid;gap:20px;
  grid-template-columns:1fr;
  max-width:1100px;margin:0 auto;
}
@media(min-width:640px){
  .insta-stories{grid-template-columns:repeat(2,1fr);gap:24px}
}
@media(min-width:1024px){
  .insta-stories{grid-template-columns:repeat(4,1fr);gap:20px}
}
.story-card{
  background:#fff;border-radius:6px;overflow:hidden;
  box-shadow:var(--shadow-soft);
  display:flex;flex-direction:column;
  transition:all .4s;
  border:1px solid rgba(168,138,79,.12);
}
.story-card:hover{
  transform:translateY(-6px);
  box-shadow:var(--shadow-card);
}
.story-header{
  display:flex;align-items:center;gap:10px;
  padding:14px 16px;border-bottom:1px solid rgba(168,138,79,.12);
}
.story-avatar{
  width:36px;height:36px;border-radius:50%;
  background:linear-gradient(135deg,#F09433,#DC2743,#BC1888);
  padding:2px;flex-shrink:0;
}
.story-avatar-inner{
  width:100%;height:100%;border-radius:50%;
  background:linear-gradient(135deg,var(--c-rose-soft),var(--c-rose));
  display:flex;align-items:center;justify-content:center;
  font-family:var(--f-display);font-size:14px;color:#fff;
  font-weight:600;border:2px solid #fff;
}
.story-meta{flex:1;line-height:1.3}
.story-handle{
  font-size:12px;font-weight:600;color:var(--c-ink);
  display:flex;align-items:center;gap:4px;
}
.story-handle::after{
  content:'';width:12px;height:12px;border-radius:50%;
  background:#3897F0;display:inline-block;
  position:relative;
}
.story-time{
  font-size:10px;color:var(--c-ink-soft);
  font-family:var(--f-en);letter-spacing:.05em;
}
.story-img{
  aspect-ratio:1/1;
  background-size:cover;background-position:center;
  background-color:var(--c-bg-alt);
  position:relative;
}
.story-time-badge{
  position:absolute;top:12px;left:12px;z-index:2;
  background:rgba(0,0,0,.65);color:#fff;
  padding:6px 12px;border-radius:100px;
  font-family:var(--f-en);font-size:11px;
  letter-spacing:.1em;font-weight:500;
  backdrop-filter:blur(10px);
}
.story-scene-badge{
  position:absolute;bottom:12px;left:12px;right:12px;z-index:2;
  background:linear-gradient(135deg,rgba(168,138,79,.95),rgba(133,107,56,.95));
  color:#fff;padding:8px 14px;border-radius:4px;
  font-family:var(--f-display);font-size:14px;font-weight:500;
  backdrop-filter:blur(10px);text-align:center;
  letter-spacing:.05em;
}
.story-actions{
  display:flex;align-items:center;gap:14px;
  padding:12px 16px 8px;
}
.story-action-icon{
  font-size:22px;color:var(--c-ink);
  cursor:pointer;line-height:1;
  transition:transform .2s;
}
.story-action-icon:hover{transform:scale(1.15)}
.story-action-icon.heart.liked{color:#ED4956}
.story-likes{
  padding:0 16px;
  font-size:12px;font-weight:600;color:var(--c-ink);
  margin-bottom:6px;
}
.story-caption{
  padding:0 16px 12px;
  font-size:13px;line-height:1.8;color:var(--c-ink);
}
.story-caption b{font-weight:600}
.story-tags{
  padding:0 16px 14px;
  display:flex;flex-wrap:wrap;gap:4px;
  font-size:11px;
}
.story-tags span{color:#385185;font-weight:500}
.story-date{
  padding:0 16px 14px;
  font-size:10px;color:var(--c-ink-soft);
  letter-spacing:.05em;text-transform:uppercase;
  font-family:var(--f-en);
}
.story-cta{
  text-align:center;margin-top:48px;
  padding:28px 24px;
  background:linear-gradient(135deg,#FAF6EF,#F2EBE0);
  border-radius:6px;
  max-width:680px;margin-left:auto;margin-right:auto;
}
.story-cta-text{
  font-family:var(--f-display);font-size:clamp(18px,3.5vw,22px);
  color:var(--c-ink);font-weight:500;line-height:1.6;
  margin-bottom:18px;
}
.story-cta-text em{color:var(--c-gold-deep);font-style:italic}
.story-cta a{
  display:inline-flex;align-items:center;gap:8px;
  background:var(--c-ink);color:#fff;
  padding:14px 28px;border-radius:2px;
  font-size:13px;font-weight:600;letter-spacing:.1em;
  transition:all .3s;
}
.story-cta a:hover{background:var(--c-gold-deep);transform:translateY(-2px)}

/* === ▼ スタッフ紹介セクション ▼ === */
.team{
  background:linear-gradient(180deg,#fff 0%,var(--c-bg) 100%);
}
.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:all .4s;
  position:relative;
  border:1px solid rgba(168,138,79,.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%);
}
.team-photo{
  position:absolute;inset:0;
  background-size:cover;background-position:center top;
  background-repeat:no-repeat;
  background-color:transparent;
}
.team-photo-placeholder{
  position:absolute;inset:0;
  display:flex;align-items:flex-start;justify-content:center;
  flex-direction:column;
  padding:60px 24px 0;
  color:rgba(255,255,255,.95);
  font-family:var(--f-display);
  text-align:center;
}
.team-photo-placeholder .pp-initial{
  font-size:56px;font-weight:300;line-height:1;
  letter-spacing:.05em;
  width:100%;
  text-shadow:0 4px 16px rgba(0,0,0,.15);
  color:rgba(255,255,255,.85);
}
.team-photo-placeholder .pp-label{
  font-family:var(--f-en);font-size:9px;
  letter-spacing:.25em;margin-top:12px;
  color:rgba(255,255,255,.6);
  width:100%;
}
.team-photo-overlay{
  position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 30%,rgba(42,36,29,.4) 65%,rgba(42,36,29,.95) 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(168,138,79,.4);
}
.team-experience b{font-size:18px;font-weight:600}
.team-experience small{font-size:8px;letter-spacing:.1em;margin-top:2px}
.team-name-block{
  position:absolute;bottom:18px;left:18px;right:18px;z-index:3;
  color:#fff;
  text-shadow:0 2px 8px rgba(0,0,0,.5);
}
.team-position{
  font-family:var(--f-en);font-size:10px;
  letter-spacing:.2em;color:var(--c-gold);
  margin-bottom:4px;font-weight:600;
}
.team-name-jp{
  font-family:var(--f-display);font-size:28px;font-weight:600;
  letter-spacing:.05em;line-height:1.2;color:#fff;
}
.team-name-en{
  font-family:var(--f-en);font-size:11px;
  letter-spacing:.2em;color:rgba(255,255,255,.85);
  margin-top:4px;font-weight:500;
}
.team-body{padding:24px 22px}
.team-message{
  font-size:13px;line-height:1.9;color:var(--c-ink);
  margin-bottom:18px;
  position:relative;padding-left:14px;
}
.team-message::before{
  content:'';position:absolute;left:0;top:8px;bottom:8px;
  width:2px;background:var(--c-gold);
}
.team-info{
  display:grid;gap:8px;
  padding-top:16px;
  border-top:1px dashed rgba(168,138,79,.3);
}
.team-info-row{
  display:flex;font-size:12px;line-height:1.5;
}
.team-info-label{
  color:var(--c-gold-deep);font-weight:600;
  width:70px;flex-shrink:0;
  font-family:var(--f-en);font-size:10px;
  letter-spacing:.1em;padding-top:2px;
}
.team-info-value{color:var(--c-ink-soft);flex:1}
.team-tags{
  display:flex;flex-wrap:wrap;gap:4px;
  margin-top:14px;
}
.team-tags span{
  font-size:10px;
  background:var(--c-bg-alt);color:var(--c-ink);
  padding:3px 9px;border-radius:100px;
  letter-spacing:.05em;
}

/* スタッフからのメッセージブロック */
.team-promise{
  max-width:820px;margin:64px auto 0;
  padding:48px 32px;
  background:linear-gradient(135deg,#2A241D 0%,#1f1a14 100%);
  color:#fff;border-radius:6px;
  text-align:center;position:relative;overflow:hidden;
}
.team-promise::before{
  content:'';position:absolute;
  top:-50px;left:50%;transform:translateX(-50%);
  width:200px;height:200px;border-radius:50%;
  background:radial-gradient(circle,rgba(168,138,79,.15) 0%,transparent 70%);
}
.team-promise-eyebrow{
  font-family:var(--f-en);font-size:11px;letter-spacing:.3em;
  color:var(--c-gold);margin-bottom:16px;
  position:relative;z-index:2;
}
.team-promise-text{
  font-family:var(--f-display);
  font-size:clamp(20px,4.5vw,28px);
  font-weight:400;line-height:1.7;
  margin-bottom:24px;
  position:relative;z-index:2;
}
.team-promise-text em{
  color:var(--c-gold);font-style:italic;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;
}
