/* ==========================================================================
   Memento Vita — 先行予約ランディングセクション用スタイル
   前提: Bootstrap 5.3.3 (bootstrap.min.css) が既に読み込まれていること。
   このファイルは .mv-page 配下にのみ適用されるようスコープしてあるため、
   サイト側の既存スタイルとは競合しません。
   読み込み順: bootstrap.min.css → (Google Fonts) → memento-vita.css
   ========================================================================== */

.mv-page{
  /* ---- design tokens (このページ専用の名前空間) ---- */
  --mv-ink:#FBF8F2;
  --mv-ink-2:#F2ECDD;
  --mv-paper:#211E1A;
  --mv-paper-dim:#6B6558;
  --mv-gold:#A47C3D;
  --mv-gold-dim:#8C6B37;
  --mv-slate:#7B8A9B;
  --mv-wine:#7E3F3C;
  --mv-line: rgba(33,30,26,0.12);
  --mv-line-strong: rgba(33,30,26,0.22);
  --mv-serif-jp:'Shippori Mincho B1', serif;
  --mv-serif-en:'Cormorant Garamond', serif;
  --mv-sans-jp:'Zen Kaku Gothic New', sans-serif;

  background:var(--mv-ink);
  color:var(--mv-paper);
  font-family:var(--mv-sans-jp);
  line-height:1.9;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
.mv-page a{color:inherit;text-decoration:none;}
.mv-page p{margin:0;}
.mv-page h1,.mv-page h2,.mv-page h3{margin:0;}
.mv-page section{position:relative;}
.mv-page .container{max-width:960px;}

/* narrow hairline borders on Bootstrap grid cells (replaces the gap-line trick) */
.mv-page .mv-bordered-grid > [class*="col"]{
  border:1px solid var(--mv-line);
  background:var(--mv-ink-2);
}

/* ---------- HERO ---------- */
.mv-hero{
  min-height:100vh;
  padding:14vh 6vw 8vh;
  background:
    radial-gradient(ellipse at 50% -10%, rgba(164,124,61,0.08), transparent 55%),
    var(--mv-ink);
  overflow:hidden;
}
.mv-hero-swan{width:min(220px,42vw);opacity:0.92;margin-bottom:2.4rem;}
.mv-feather{animation:mv-drift 9s ease-in-out infinite;}
.mv-feather:nth-child(2){animation-delay:-2.4s;animation-duration:11s;}
.mv-feather:nth-child(3){animation-delay:-5.1s;animation-duration:10s;}
@keyframes mv-drift{
  0%,100%{transform:translate(0,0) rotate(0deg);}
  50%{transform:translate(-6px,10px) rotate(4deg);}
}
.mv-eyebrow{
  font-size:12.5px;
  letter-spacing:0.32em;
  color:var(--mv-gold);
  font-weight:500;
  margin-bottom:1.6rem;
}
.mv-hero h1{
  font-family:var(--mv-serif-en);
  font-weight:400;
  font-style:italic;
  font-size:clamp(2.6rem,8vw,5.4rem);
  letter-spacing:0.02em;
  color:var(--mv-paper);
  line-height:1.05;
}
.mv-hero-jp{
  font-family:var(--mv-serif-jp);
  font-weight:500;
  font-size:clamp(1rem,2.4vw,1.35rem);
  letter-spacing:0.5em;
  text-indent:0.5em;
  color:var(--mv-paper-dim);
  margin-top:1.3rem;
}
.mv-hero-note{
  margin-top:2.6rem;
  font-size:13.5px;
  color:var(--mv-paper-dim);
  letter-spacing:0.06em;
  line-height:2;
}
.mv-hero-datebar{
  margin-top:2.8rem;
  display:inline-flex;
  align-items:center;
  gap:1.1rem;
  padding:0.9rem 1.8rem;
  border:0.5px solid var(--mv-line-strong);
  border-radius:2px;
  font-size:13.5px;
  letter-spacing:0.04em;
  color:var(--mv-paper);
}
.mv-hero-datebar b{color:var(--mv-gold);font-weight:500;}
.mv-hero-datebar span.mv-sep{color:var(--mv-paper-dim);}
.mv-scroll-cue{
  position:absolute;
  bottom:2.6rem;
  left:50%;
  transform:translateX(-50%);
  font-size:11px;
  letter-spacing:0.3em;
  color:var(--mv-paper-dim);
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:0.6rem;
}
.mv-scroll-cue::after{
  content:'';
  width:0.5px;height:34px;
  background:linear-gradient(var(--mv-paper-dim),transparent);
}

/* ---------- MESSAGE ---------- */
.mv-message{padding:11vh 0 9vh;border-top:0.5px solid var(--mv-line);}
.mv-kicker{
  font-family:var(--mv-serif-en);
  font-style:italic;
  font-size:15px;
  color:var(--mv-gold-dim);
  margin-bottom:1.2rem;
}
.mv-lead{
  font-family:var(--mv-serif-jp);
  font-size:clamp(1.3rem,2.6vw,1.7rem);
  font-weight:500;
  line-height:1.95;
  max-width:34em;
  color:var(--mv-paper);
}
.mv-body-text{
  margin-top:2rem;
  font-size:15.5px;
  color:var(--mv-paper-dim);
  max-width:38em;
  line-height:2.05;
}
.mv-message-cols{
  display:grid;
  grid-template-columns:1fr;
}
@media (min-width:768px){
  .mv-message-cols{
    grid-template-columns:1fr 1fr;
    column-gap:3.2rem;
  }
  .mv-message-cols .mv-body-text,
  .mv-message-cols .mv-credit{
    max-width:none;
  }
}

.mv-threads{margin-top:5rem;border-top:0.5px solid var(--mv-line);}
.mv-thread{
  padding:2.1rem 1.6rem 2.1rem 0;
  border-bottom:0.5px solid var(--mv-line);
  display:flex;
  align-items:flex-start;
  gap:1rem;
}
.mv-thread svg{flex-shrink:0;margin-top:0.3rem;opacity:0.75;}
.mv-thread p{
  font-family:var(--mv-serif-jp);
  font-size:15px;
  color:var(--mv-paper);
  line-height:1.7;
}

.mv-message-cols--credit{
  margin-top:4.4rem;
  padding-top:3rem;
  border-top:0.5px solid var(--mv-line);
}
.mv-credit{
  font-size:15px;
  color:var(--mv-paper-dim);
  max-width:38em;
  line-height:2.05;
}
.mv-credit b{color:var(--mv-paper);font-weight:500;}
.mv-message-cols--credit .mv-body-text{margin-top:0;}

/* ---------- PERFORMANCE INFO ---------- */
.mv-info{padding:9vh 0;background:var(--mv-ink-2);}
.mv-info-cell{padding:2.2rem 2rem;}
.mv-info-label{
  font-size:11.5px;
  letter-spacing:0.24em;
  color:var(--mv-gold-dim);
  margin-bottom:0.8rem;
}
.mv-info-val{
  font-family:var(--mv-serif-jp);
  font-size:clamp(1.15rem,2.2vw,1.45rem);
  color:var(--mv-paper);
  font-weight:500;
  line-height:1.5;
}
.mv-info-val small{
  display:block;
  font-family:var(--mv-sans-jp);
  font-size:13px;
  color:var(--mv-paper-dim);
  margin-top:0.4rem;
  font-weight:400;
}

/* ---------- TIERS ---------- */
.mv-tiers{padding:9vh 0;background:var(--mv-ink-2);}
.mv-tier-cell{padding:2.2rem 2rem;}
.mv-tier-name{
  font-family:var(--mv-serif-jp);
  font-size:17px;
  color:var(--mv-paper);
  font-weight:500;
}
.mv-tier-name .mv-tier-sub{
  display:block;
  font-family:var(--mv-sans-jp);
  font-size:11.5px;
  color:var(--mv-gold-dim);
  font-weight:400;
  margin-top:0.4rem;
  letter-spacing:0.03em;
}
.mv-tier-detail{margin-top:1.2rem;font-size:14px;color:var(--mv-paper-dim);line-height:1.9;}
.mv-tier-detail span{display:block;font-size:12px;margin-top:0.2rem;opacity:0.85;}
.mv-tier-note{margin-top:1.2rem;font-size:12px;color:var(--mv-gold-dim);}

/* ---------- SECTION HEAD ---------- */
.mv-section-head{margin-bottom:3.4rem;}
.mv-section-head .mv-kicker{margin-bottom:0.8rem;}
.mv-section-head h2{
  font-family:var(--mv-serif-jp);
  font-size:clamp(1.5rem,3vw,2rem);
  font-weight:500;
  color:var(--mv-paper);
}

/* ---------- TICKETS ---------- */
.mv-tickets{padding:11vh 0 9vh;}
.mv-stub{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:2rem;
  padding:1.9rem 0;
  border-top:0.5px dashed var(--mv-line-strong);
}
.mv-stub:last-child{border-bottom:0.5px dashed var(--mv-line-strong);}
.mv-stub-seat{display:flex;align-items:baseline;gap:1rem;}
.mv-stub-seat .mv-letter{
  font-family:var(--mv-serif-en);
  font-style:italic;
  font-size:2.1rem;
  color:var(--mv-gold);
  min-width:2.2rem;
}
.mv-stub-seat .mv-seat-name{
  font-size:14px;
  color:var(--mv-paper-dim);
  letter-spacing:0.02em;
}
.mv-stub-seat .mv-seat-name small{display:block;font-size:11.5px;margin-top:0.2rem;color:var(--mv-paper-dim);opacity:0.8;}
.mv-stub-price{display:flex;align-items:baseline;gap:0.9rem;}
.mv-price-new{
  font-family:var(--mv-serif-en);
  font-size:clamp(1.4rem,3vw,1.9rem);
  color:var(--mv-paper);
  font-weight:500;
}
.mv-price-new::after{content:'円';font-family:var(--mv-sans-jp);font-size:13px;margin-left:0.3rem;color:var(--mv-paper-dim);}
.mv-stub-note{margin-top:1.6rem;font-size:12.5px;color:var(--mv-paper-dim);letter-spacing:0.02em;}

.mv-notice{
  margin-top:3rem;
  padding-top:2.4rem;
  border-top:0.5px solid var(--mv-line);
}
.mv-notice-title{
  font-family:var(--mv-serif-jp);
  font-size:13px;
  font-weight:500;
  letter-spacing:0.1em;
  color:var(--mv-paper);
  margin-bottom:1.1rem;
}
.mv-notice-list{
  list-style:none;
  margin:0;
  padding:0;
}
.mv-notice-list li{
  position:relative;
  padding-left:1.3em;
  font-size:12.5px;
  color:var(--mv-paper-dim);
  line-height:1.95;
}
.mv-notice-list li::before{
  content:'\25CF';
  position:absolute;
  left:0;
  top:0.5em;
  font-size:6px;
  color:var(--mv-gold);
}
.mv-notice-star{
  margin-top:1.4rem;
  font-size:12px;
  color:var(--mv-paper-dim);
  line-height:1.9;
}
.mv-notice-contact{
  margin-top:1rem;
  font-size:13.5px;
  color:var(--mv-paper);
  letter-spacing:0.02em;
}
.mv-notice-contact a{
  color:inherit;
  border-bottom:0.5px solid var(--mv-line-strong);
}

/* ---------- DEADLINE ---------- */
.mv-deadline{
  padding:6.5vh 0;
  background:var(--mv-wine);
  text-align:center;
}
.mv-deadline-eyebrow{
  font-size:12px;
  letter-spacing:0.3em;
  color:rgba(251,248,242,0.75);
  margin-bottom:1rem;
}
.mv-deadline-date{
  font-family:var(--mv-serif-jp);
  font-size:clamp(1.8rem,5vw,2.6rem);
  font-weight:800;
  color:#FBF8F2;
  letter-spacing:0.02em;
}
.mv-deadline-sub{
  margin-top:1.1rem;
  font-size:14px;
  color:rgba(251,248,242,0.82);
  max-width:32em;
  margin-left:auto;
  margin-right:auto;
  line-height:1.9;
}

/* ---------- APPLY ---------- */
.mv-apply{padding:11vh 0;}
.mv-apply .container{max-width:1080px;}
.mv-apply-cell{padding:2.4rem 1.8rem;}
.mv-apply-cell .mv-info-label{margin-bottom:1rem;}
.mv-apply-cell a.mv-contact-link{
  font-family:var(--mv-serif-en);
  font-size:clamp(1.5rem,2.6vw,1.9rem);
  color:var(--mv-paper);
  text-decoration:none;
  letter-spacing:0.02em;
  display:inline-block;
}
.mv-apply-cell span.mv-contact-link{
  font-family:var(--mv-serif-en);
  font-size:clamp(1.5rem,2.6vw,1.9rem);
  color:var(--mv-paper);
  letter-spacing:0.02em;
  display:inline-block;
}
.mv-apply-cell a.mv-contact-link--form{
  font-family:var(--mv-serif-jp);
  font-size:clamp(1.05rem,1.8vw,1.25rem);
  font-weight:500;
  border-bottom:1px solid var(--mv-line-strong);
  padding-bottom:0.35rem;
  transition:border-color 0.2s ease, opacity 0.2s ease;
}
.mv-apply-cell a.mv-contact-link--form::after{content:'\2192';margin-left:0.5em;color:var(--mv-gold);}
.mv-apply-cell a.mv-contact-link--form:hover{opacity:0.7;}
.mv-apply-cell p.mv-hint{margin-top:0.9rem;font-size:12.5px;color:var(--mv-paper-dim);line-height:1.8;}
.mv-apply-note{
  margin-top:2.6rem;
  display:grid;
  grid-template-columns:1fr;
  font-size:13.5px;
  color:var(--mv-paper-dim);
  line-height:2;
}
.mv-apply-note p{max-width:38em;}
@media (min-width:768px){
  .mv-apply-note{
    grid-template-columns:1fr 1fr;
    column-gap:3.2rem;
  }
  .mv-apply-note p{max-width:none;}
}

/* ---------- FORM ---------- */
.mv-form{padding:9vh 0 11vh;border-top:0.5px solid var(--mv-line);}
.mv-form-frame{
  border:1px solid var(--mv-line);
  background:var(--mv-ink-2);
  padding:1.6rem;
}

/* ---------- SUPPORT ---------- */
.mv-support{
  padding:6vh 0 1vh;
  border-top:0.5px solid var(--mv-line);
  text-align:center;
}
.mv-support .container{
  display:flex;
  flex-direction:column;
  align-items:center;
}
.mv-support-title{
  font-family:var(--mv-serif-jp);
  font-size:12px;
  font-weight:500;
  letter-spacing:0.25em;
  color:var(--mv-paper-dim);
  margin-bottom:1.1rem;
}
.mv-support-text{
  font-size:11.5px;
  color:var(--mv-paper-dim);
  line-height:2.2;
  max-width:52em;
  word-break:keep-all;
  overflow-wrap:normal;
}

/* ---------- FOOTER ---------- */
.mv-footer{
  padding:6vh 0 5vh;
  border-top:0.5px solid var(--mv-line);
}
.mv-foot-mark{display:flex;align-items:center;gap:0.9rem;}
.mv-foot-mark svg{width:26px;height:26px;opacity:0.8;}
.mv-foot-name{font-family:var(--mv-serif-jp);font-size:14px;color:var(--mv-paper);}
.mv-foot-meta{font-size:12px;color:var(--mv-paper-dim);line-height:1.9;}
.mv-foot-meta a{text-decoration:none;border-bottom:0.5px solid var(--mv-line-strong);}

@media (prefers-reduced-motion:reduce){
  .mv-feather{animation:none;}
}
