/* =====================================================
   VIVAMOE — static rebuild of BASE "OVERDRIVE" theme
   ===================================================== */

@charset "UTF-8";

:root{
  --key-color: #e61a23;
  --key-text-color: #fff;
  --text-color: #f2f1ed;
  --bg-color: #f2f1ed;
  --font-family: "Noto Sans JP", YakuHanJP, "Hiragino Sans", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  --caption-font-family: "Zen Old Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
  --max-width: 1080px;
}

*{ margin:0; padding:0; box-sizing:border-box; }
html{ scroll-behavior:smooth; overflow-x:hidden; }
body{
  margin:0;
  font-family:var(--font-family);
  color:var(--text-color);
  background:var(--bg-color);
  line-height:1.8;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:inherit; text-decoration:none; }
ul,ol{ list-style:none; }
button{ font:inherit; background:none; border:0; cursor:pointer; color:inherit; }

.u-frame{ max-width:var(--max-width); margin:0 auto; padding:0 24px; }
.u-preline{ white-space:pre-line; }

/* ===== scroll fade-in (is-ev) ===== */
.is-ev{
  opacity:0;
  transform:translateY(24px);
  transition:opacity .8s cubic-bezier(.23,1,.32,1), transform .8s cubic-bezier(.23,1,.32,1);
}
.is-ev.is-inview{
  opacity:1;
  transform:none;
}
@media (prefers-reduced-motion: reduce){
  .is-ev{ opacity:1; transform:none; transition:none; }
}

/* ===== opening loader ===== */
.c-load{
  position:fixed; inset:0; z-index:9999;
  display:flex; align-items:center; justify-content:center;
  background:var(--key-color); color:var(--key-text-color);
  transition:opacity .6s ease, visibility .6s ease;
}
.c-load__logo{ font-family:var(--caption-font-family); font-size:clamp(20px,4vw,32px); letter-spacing:.1em; opacity:0; animation: loadFade 1.4s ease forwards; }
.c-load.is-done{ opacity:0; visibility:hidden; pointer-events:none; }
@keyframes loadFade{
  0%{ opacity:0; transform:translateY(8px); }
  40%{ opacity:1; transform:none; }
  100%{ opacity:1; transform:none; }
}

/* ===== header / menu ===== */
.l-header{
  position:absolute; top:0; left:0; width:100%; z-index:200;
  background:transparent;
}
.l-header__inner{
  display:flex; align-items:center; justify-content:space-between;
  padding-top:16px; padding-bottom:16px;
}
.c-logo a{ font-family:var(--caption-font-family); font-size:20px; font-weight:700; letter-spacing:.05em; }

.c-menubtn{
  display:flex; align-items:center; gap:10px;
  padding:10px 18px; border-radius:999px;
  background:#fff;
  color:var(--key-color);
  border:1px solid #fff;
  transition: background .3s ease, color .3s ease;
}
.c-menubtn:hover{
  background:transparent;
  color:#fff;
  border-color:#fff;
}
.c-menubtn__icon{ position:relative; width:18px; height:12px; }
.c-menubtn__icon .line{ position:absolute; left:0; width:100%; height:2px; background:currentColor; border-radius:2px; }
.c-menubtn__icon .line--1{ top:0; }
.c-menubtn__icon .line--2{ top:5px; }
.c-menubtn__icon .line--3{ top:10px; }
.c-menubtn__label--close{ display:none; }
.is-menu-active .c-menubtn__label--open{ display:none; }
.is-menu-active .c-menubtn__label--close{ display:inline; }
.is-menu-active .c-menubtn__icon .line--1{ transform:translateY(5px) rotate(45deg); }
.is-menu-active .c-menubtn__icon .line--2{ opacity:0; }
.is-menu-active .c-menubtn__icon .line--3{ transform:translateY(-5px) rotate(-45deg); }

.c-menu{
  position:fixed; top:0; right:0; z-index:300;
  width:min(420px,88vw); height:100vh; height:100dvh;
  background:var(--key-color); color:var(--key-text-color);
  padding:110px 40px 40px;
  transform:translateX(100%);
  transition:transform .5s cubic-bezier(.23,1,.32,1);
  overflow-y:auto;
}
.is-menu-active .c-menu{ transform:none; }
.c-menu__list{ display:flex; flex-direction:column; gap:28px; }
.c-menu__item{
  display:flex; align-items:baseline; gap:16px;
  opacity:0; transform:translateX(20px);
  transition:opacity .5s ease, transform .5s ease;
}
.is-menu-active .c-menu__item{ opacity:1; transform:none; }
.c-menu__item:nth-child(1){ transition-delay:.05s; }
.c-menu__item:nth-child(2){ transition-delay:.1s; }
.c-menu__item:nth-child(3){ transition-delay:.15s; }
.c-menu__item:nth-child(4){ transition-delay:.2s; }
.c-menu__item:nth-child(5){ transition-delay:.25s; }
.c-menu__item__main{ font-family:var(--caption-font-family); font-size:22px; font-weight:700; }
.c-menu__item__sub{ font-size:12px; opacity:.7; }

.c-overlay{
  position:fixed; inset:0; z-index:250;
  background:rgba(0,0,0,.5);
  opacity:0; visibility:hidden;
  transition:opacity .4s ease, visibility .4s ease;
}
.is-menu-active .c-overlay{ opacity:1; visibility:visible; }

/* ===== hero / MV ===== */
.c-mv{
  position:relative; width:100%; min-height:64vw; max-height:720px; overflow:hidden; background:var(--key-color);
  --next-bg: #00A0B0;
}
.c-mv__image{
  position:absolute;
  inset:0;
}
.c-mv__image picture{
  display:block;
  width:100%;
  height:100%;
}
.c-mv__sweep{
  position:absolute; top:0; left:50%; width:100%; height:100%;
  transform: translateX(-50%);
  z-index:2;
  pointer-events:none;
  overflow:hidden;
}
.c-mv__sweep::before{
  content:"";
  position:absolute; top:-10%; left:50%;
  width:60%; height:140%;
  background:linear-gradient(to bottom, rgba(255,255,255,0.35), transparent 70%);
  clip-path: polygon(45% 0%, 55% 0%, 100% 100%, 0% 100%);
  transform-origin: top center;
  animation: lightSway 5s ease-in-out infinite;
}
@keyframes lightSway{
  0%, 100%{ transform: translateX(-50%) rotate(-4deg); }
  50%{ transform: translateX(-50%) rotate(4deg); }
}

.c-mv__image img{
  width:100%; height:100%; object-fit:cover; opacity:.7;
}

.c-mv__inner{
  position:relative; z-index:2; height:100%; min-height:64vw; max-height:720px;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center; color:#fff; padding:40px 24px;
}
.c-mv__eyebrow{ font-size:13px; letter-spacing:.2em; opacity:.85; }
.c-mv__title{
  margin-top:16px; font-family:var(--caption-font-family);
  font-size:clamp(28px,5.5vw,52px); line-height:1.4; font-weight:700;
}
.c-mv__desc{ margin-top:20px; font-size:15px; line-height:2; max-width:520px; opacity:.9; }
.c-mv__cta{
  margin-top:32px; display:inline-flex; align-items:center; gap:10px;
  padding:16px 36px; border-radius:999px;
  background:#fff; color:var(--key-color); font-weight:700; letter-spacing:.05em;
  transition:transform .3s ease;
}
.c-mv__cta:hover{ transform:scale(1.05); }

/* ===== section captions ===== */
.c-caption{
  font-family:var(--caption-font-family);
  font-size:clamp(24px,4vw,36px);
  line-height:1.4;
  text-align:center;
}
.c-caption--sub{ margin-top:8px; font-size:13px; letter-spacing:.1em; opacity:.6; text-align:center; }

/* ===== 弧形分割线（共用） ===== */
.c-wave-top{ position:relative; }
.c-wave-top::before{
  content:"";
  position:absolute;
  top:-1px; left:0; width:100%; height:64px;
  background:var(--section-bg, #fff);
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 80' preserveAspectRatio='none'%3E%3Cpath d='M0,40 C240,90 480,0 720,20 C960,40 1200,90 1440,40 L1440,80 L0,80 Z'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 80' preserveAspectRatio='none'%3E%3Cpath d='M0,40 C240,90 480,0 720,20 C960,40 1200,90 1440,40 L1440,80 L0,80 Z'/%3E%3C/svg%3E");
  -webkit-mask-size:100% 100%;
  mask-size:100% 100%;
  z-index:2;
}
@media (max-width:767px){
  .c-mv{ min-height: 100vh; max-height: none; }
  .c-pickup__list{ grid-template-columns:repeat(3,1fr); gap:10px; }
  .c-pickup__avatar__img{ width:88px; height:88px; }
  .c-flow{ padding:56px 0; }
  .c-flow__num{ width:44px; height:44px; font-size:12px; }
  .c-flow__list::before{ left:21px; }
  .c-flow__item{ gap:16px; padding-bottom:32px; }
  .c-float-entry{ right:12px; bottom:20%; width:100px; height:100px; }
  .c-mv__title{ font-size:28px; }
}

/* ===== about ===== */
.c-about{
  padding:40px 0;
  --section-bg: #00A0B0;
  --section-text: #f2f1ed;
  background: var(--section-bg);
  color: var(--section-text);
  position: sticky;
  top: 0;
  z-index: 1;
}
.c-about__inner{
  max-width:900px; margin:0 auto; padding:0 24px;
  text-align:center;
}
.c-about__text{ margin-top:32px; font-size:15px; line-height:2.1; text-align:left; }
.c-about__para{ margin-top: 20px; }
.c-about__para:first-child{ margin-top: 0; }

.c-about__list{
  list-style:none;
  margin-top: 24px;
  margin-bottom: 24px;
  padding: 24px;
  background: rgba(255,255,255,0.12);
  border-radius: 12px;
}
.c-about__list li{
  position:relative;
  padding-left: 28px;
  margin-top: 14px;
  font-size:15px;
  line-height:1.8;
}
.c-about__list li:first-child{ margin-top: 0; }
.c-about__list li::before{
  content:"✓";
  position:absolute;
  left:0; top:0;
  font-weight:700;
  color:#fff;
}

.c-more{
  display:inline-flex; align-items:center; gap:10px;
  margin-top:32px;
  font-family:var(--caption-font-family); font-size:15px; font-weight:700;
  transition: opacity .3s ease;
}
.c-more:hover{ opacity:.6; }
.c-more__arrow{ width:26px; height:8px; transition: transform .3s ease; }
.c-more:hover .c-more__arrow{ transform: translateX(8px); }

.c-more--about{
  position:relative;
  display:inline-flex; align-items:center; gap:14px;
  margin-top:5px;
  padding: 16px 36px;
  border-radius: 999px;
  background: rgba(255,255,255,0.15);
  border: 1px solid rgba(255,255,255,0.4);
  overflow:hidden;
  transition: background .35s ease, transform .35s ease, box-shadow .35s ease;
}
.c-more--about::before{
  content:"";
  position:absolute; inset:0;
  background:#fff;
  transform:translateX(-101%);
  transition:transform .4s cubic-bezier(.23,1,.32,1);
  z-index:0;
}
.c-more--about:hover::before{ transform:translateX(0); }
.c-more--about span{
  position:relative; z-index:1;
  transition:color .4s ease;
}
.c-more--about:hover span{ color: var(--section-bg, var(--key-color)); }
.c-more--about .c-more__arrow{
  position:relative; z-index:1;
  transition: transform .4s ease;
}
.c-more--about:hover .c-more__arrow{ transform: translateX(6px); }
.c-more--about:hover{
  transform: translateY(-2px);
  box-shadow: 0 10px 28px rgba(0,0,0,0.2);
}

/* ===== pickup (コラボ絵師) ===== */
.c-pickup{
  padding:60px 0;
  --section-bg: #F98603;
  --section-text: #161616;
  background: var(--section-bg);
  color: var(--section-text);
  border-radius: 48px 48px 0 0;
  box-shadow: 0 -20px 60px rgba(0,0,0,.15);
  position: sticky;
  top: 0;
  z-index: 2;
}
.c-pickup__list{
  margin-top:32px;
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px 24px;
  max-width:var(--max-width); margin-inline:auto; padding:0 24px;
}
.c-pickup__avatar{
  display:flex; flex-direction:column; align-items:center; gap:16px;
}
.c-pickup__avatar__img{
  width:160px; height:160px;
  border-radius:50%;
  object-fit:cover;
  border: 4px solid #fff;
  box-shadow: 0 6px 16px rgba(0,0,0,.12);
  transition: transform .4s ease, box-shadow .4s ease;
  will-change: transform;
}
.c-pickup__avatar:hover .c-pickup__avatar__img{
  transform: scale(1.08) !important;
  box-shadow: 0 10px 24px rgba(0,0,0,.18);
}
.c-pickup__avatar__name{
  font-size:13px;
  font-weight:600;
  letter-spacing:.03em;
}
.c-pickup__avatar.pickup-2.is-inview{ transition-delay:.06s; }
.c-pickup__avatar.pickup-3.is-inview{ transition-delay:.12s; }
.c-pickup__avatar.pickup-4.is-inview{ transition-delay:.18s; }
.c-pickup__avatar.pickup-5.is-inview{ transition-delay:.24s; }
.c-pickup__avatar.pickup-6.is-inview{ transition-delay:.3s; }

/* ===== Reasons: TikTok LIVE一択の理由（日系可爱玻璃卡・静态版） ===== */
.c-reasons{
  position: relative;
  z-index: 4;
  padding: 100px 24px;
  overflow: hidden;
  background: #B39EFF;
  color: #fff;
}
.c-reasons__stars{
  position:absolute; inset:0;
  background-image:
    radial-gradient(1.5px 1.5px at 10% 20%, rgba(255,255,255,0.9), transparent),
    radial-gradient(1.5px 1.5px at 80% 15%, rgba(255,255,255,0.7), transparent),
    radial-gradient(1px 1px at 60% 70%, rgba(255,255,255,0.8), transparent),
    radial-gradient(1.5px 1.5px at 30% 85%, rgba(255,255,255,0.6), transparent),
    radial-gradient(1px 1px at 90% 60%, rgba(255,255,255,0.7), transparent),
    radial-gradient(1px 1px at 45% 40%, rgba(255,255,255,0.6), transparent);
  pointer-events:none;
}
.c-reasons__inner{
  position: relative;
  z-index: 1;
  max-width: var(--max-width);
  margin: 0 auto;
  text-align: center;
}
.c-reasons .c-caption{ color:#161616; letter-spacing: 0.06em; }
.c-reasons .c-caption--sub{
  color: rgba(26,26,26,0.7);
  opacity:1;
  margin-bottom: 48px;
  font-size: 13px;
  letter-spacing: 0.08em;
}
.c-reasons__grid{
  margin-top: 56px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px 20px;
  text-align: left;
}
@media (max-width: 900px){
  .c-reasons__grid{ grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px){
  .c-reasons__grid{ grid-template-columns: 1fr; max-width: 280px; margin-left:auto; margin-right:auto; }
}

.c-glass-card{
  position: relative;
  padding: 32px 20px 40px;
  border-radius: 20px 20px 8px 8px;
  background: rgba(255,255,255,0.3);
  border: 2px solid rgba(255,255,255,0.75);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  box-shadow:
    0 6px 0 rgba(255,255,255,0.35),
    0 12px 28px rgba(177,76,255,0.22);
  color: #1a1a1a;
  overflow: visible;
  min-height: 360px;
  transition: transform .35s cubic-bezier(.34,1.56,.64,1), box-shadow .35s ease;
  will-change: transform;
  cursor: pointer;
}
.c-glass-card:hover{
  transform: translateY(-10px) rotate(-2deg) scale(1.03);
  box-shadow:
    0 10px 0 rgba(255,255,255,0.4),
    0 24px 40px rgba(177,76,255,0.32);
}
.c-glass-card:nth-child(even):hover{
  transform: translateY(-10px) rotate(2deg) scale(1.03);
}
.c-glass-card::before{
  content:"";
  position:absolute;
  top: -10px; left: 50%;
  transform: translateX(-50%);
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: rgba(255,255,255,0.25);
  border: 2.5px solid rgba(255,255,255,0.8);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}
.c-glass-card::after{
  content:"";
  position:absolute;
  bottom: -16px; left: 0;
  width: 100%; height: 20px;
  background: rgba(255,255,255,0.3);
  border-left: 2px solid rgba(255,255,255,0.75);
  border-right: 2px solid rgba(255,255,255,0.75);
  clip-path: polygon(0 0, 100% 0, 100% 40%, 50% 100%, 0 40%);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}
.c-glass-card__num{
  display:inline-flex; align-items:center; justify-content:center;
  width: 28px; height: 28px;
  border-radius: 50%;
  background: rgba(0,0,0,0.06);
  border: 1px solid rgba(0,0,0,0.15);
  font-size: 10px; font-weight: 700;
  letter-spacing: 0.03em;
  margin-bottom: 14px;
  color: #1a1a1a;
}
.c-glass-card__kicker{
  font-family: var(--caption-font-family);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.02em;
  margin-bottom: 10px;
  color: #1a1a1a;
}
.c-glass-card__stat{
  font-family: var(--caption-font-family);
  font-size: 26px;
  font-weight: 700;
  line-height: 1.2;
  margin-bottom: 4px;
  color: #1a1a1a;
}
.c-glass-card__stat--sm{ font-size: 17px; letter-spacing: 0.05em; }
.c-glass-card__stat--flow{ font-size: 18px; }
.c-glass-card__statlabel{
  font-size: 10.5px;
  opacity: 0.7;
  margin-bottom: 16px;
  line-height: 1.6;
  color: #1a1a1a;
}
.c-glass-card__text{
  font-size: 12px;
  line-height: 1.85;
  opacity: 0.85;
  margin-bottom: 12px;
  color: #1a1a1a;
}
.c-glass-card__text strong{
  color: #1a1a1a;
  font-weight: 700;
  text-decoration: underline;
}
.c-glass-card__quote{
  font-size: 11.5px;
  line-height: 1.75;
  font-weight: 600;
  padding-top: 12px;
  border-top: 1px solid rgba(0,0,0,0.15);
  color: rgba(26,26,26,0.85);
}
.c-glass-card__note{
  font-size: 10px;
  opacity: 0.6;
  margin-top: 8px;
  color: #1a1a1a;
}
.c-glass-card__flow{ list-style: none; margin: 0 0 14px; padding: 0; }
.c-glass-card__flow li{
  position: relative;
  padding: 7px 0 7px 22px;
  font-size: 12px;
  font-weight: 600;
  color: #1a1a1a;
}
.c-glass-card__flow li::before{
  content: "↓";
  position: absolute;
  left: 2px; top: 6px;
  opacity: 0.5;
  font-size: 10px;
  color: #1a1a1a;
}
.c-glass-card__flow li:first-child::before{ content: "✦"; opacity: 0.8; }
.c-glass-card__flow li:first-child{ padding-top: 0; }

.c-reasons__final{
  margin-top: 56px;
  padding: 40px 32px;
  border-radius: 24px;
  background: rgba(255,255,255,0.65);
  border: 1px solid rgba(255,255,255,0.8);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow:
    0 8px 24px rgba(255,111,165,0.15),
    inset 0 1px 0 rgba(255,255,255,0.9);
  text-align: center;
  color: #3d2b4f;
}
.c-reasons__final__lead{ font-size: 13px; opacity: 0.7; letter-spacing: 0.08em; margin-bottom: 8px; color: #6b5a75; }
.c-reasons__final__main{
  font-family: var(--caption-font-family);
  font-size: clamp(26px, 4.5vw, 38px);
  font-weight: 700;
  color: #e0568f;
  margin-bottom: 22px;
}
.c-reasons__final__tags{
  display: flex; flex-wrap: wrap; justify-content: center; gap: 12px;
  margin-bottom: 22px;
}
.c-reasons__final__tags span{
  padding: 8px 18px;
  border-radius: 999px;
  background: rgba(255,111,165,0.12);
  border: 1px solid rgba(255,111,165,0.25);
  font-size: 12px;
  font-weight: 600;
  color: #b04a7a;
}
.c-reasons__final__sub{ font-size: 13px; opacity: 0.8; color: #6b5a75; }

/* ===== flow (オーディションの流れ) — 正常滚动，不参与叠层 ===== */
.c-flow{
  padding:60px 0;
  --section-bg: #E63A7A;
  --section-text: #f2f1ed;
  background: var(--section-bg);
  color: var(--section-text);
  position: relative;
  z-index: 5;
}
.c-flow__inner{ max-width:820px; margin:0 auto; padding:0 24px; }
.c-flow__list{ position:relative; list-style:none; margin-top:56px; }
.c-flow__list::before{
  content:""; position:absolute; top:8px; bottom:8px; left:27px; width:2px;
  background:currentColor; opacity:.3;
}
.c-flow__item{ position:relative; display:flex; align-items:flex-start; gap:24px; padding-bottom:40px; }
.c-flow__item:last-child{ padding-bottom:0; }
.c-flow__num{
  flex-shrink:0; width:56px; height:56px; border-radius:50%;
  background:#fff; color:var(--section-bg);
  display:flex; align-items:center; justify-content:center;
  font-size:14px; font-weight:700; letter-spacing:.05em;
  position:relative; z-index:1; transition:transform .3s ease;
}
.c-flow__item:hover .c-flow__num{ transform:scale(1.1); }
.c-flow__content{ padding-top:12px; }
.c-flow__title{ font-size:18px; font-weight:700; margin-bottom:6px; line-height:1.4; }
.c-flow__text{ font-size:14px; line-height:1.8; opacity:.85; }

/* ===== gallery (先輩ライバー) ===== */
.c-gallery{ padding:80px 0; }
.c-gallery__container{ margin-top:48px; overflow:hidden; }
.swiper{ overflow:hidden; }
.swiper-wrapper{ display:flex; }
.swiper-slide{ flex-shrink:0; width:60%; max-width:420px; margin-right:16px; overflow:hidden; border-radius:6px; }
.swiper-slide img{ width:100%; aspect-ratio:3/2; object-fit:cover; transition:transform .6s ease; }
.swiper-slide:hover img{ transform:scale(1.06); }

/* ===== FAQ button (inline) ===== */
.c-faq{
  padding:96px 24px;
  display:flex; justify-content:center;
  --section-bg: #f7f5f0;
  background: var(--section-bg);
  position: relative;
  z-index: 6;
}
.c-faq-btn{
  position:relative;
  display:inline-flex; align-items:center; gap:16px;
  padding:20px 48px;
  border-radius:999px;
  background:var(--key-color);
  color:#fff;
  font-family:var(--caption-font-family);
  font-size:16px;
  letter-spacing:.05em;
  overflow:hidden;
  transition: transform .35s cubic-bezier(.23,1,.32,1), box-shadow .35s ease;
  box-shadow:0 8px 24px rgba(15,4,49,.25);
}
.c-faq-btn::before{
  content:"";
  position:absolute; inset:0;
  background:#fff;
  transform:translateX(-101%);
  transition:transform .4s cubic-bezier(.23,1,.32,1);
  z-index:0;
}
.c-faq-btn:hover::before{ transform:translateX(0); }
.c-faq-btn__text{ position:relative; z-index:1; transition:color .4s ease; }
.c-faq-btn:hover .c-faq-btn__text{ color:var(--key-color); }
.c-faq-btn__circle{
  position:relative; z-index:1;
  flex-shrink:0; width:32px; height:32px; border-radius:50%;
  background:rgba(255,255,255,.2);
  display:flex; align-items:center; justify-content:center;
  transition: background .4s ease, transform .4s cubic-bezier(.23,1,.32,1);
}
.c-faq-btn:hover .c-faq-btn__circle{
  background:var(--key-color); color:#fff; transform:rotate(90deg);
}
.c-faq-btn:hover{
  transform:translateY(-3px);
  box-shadow:0 14px 32px rgba(15,4,49,.32);
}

/* ===== FAQ modal (共用弹窗) ===== */
.p-faq{
  position:fixed; inset:0; z-index:2000;
  display:flex; align-items:center; justify-content:center;
  opacity:0; visibility:hidden;
  transition:opacity .4s ease, visibility .4s ease;
}
.is-faq-active .p-faq{ opacity:1; visibility:visible; }
.p-faq__bg{ position:absolute; inset:0; background:rgba(0,0,0,.6); }
.p-faq__inner{
  position:relative; z-index:2; width:min(680px,92vw); max-height:80vh;
  background:#fff; border-radius:12px; padding:40px 32px;
  overflow-y:auto;
  transform:translateY(20px);
  transition:transform .4s cubic-bezier(.23,1,.32,1);
}
.is-faq-active .p-faq__inner{ transform:none; }
.p-faq__caption{ font-family:var(--caption-font-family); font-size:26px; color:#111; }
.p-faq__list{ margin-top:24px; }
.p-faq__item{ padding:20px 0; border-bottom:1px solid #eee; }
.p-faq__item:first-child{ border-top:1px solid #eee; }
.p-faq__row{ display:flex; gap:14px; }
.p-faq__row--a{ margin-top:10px; }
.p-faq__icon{
  flex-shrink:0; width:28px; height:28px; border-radius:6px;
  display:flex; align-items:center; justify-content:center;
  font-size:13px; font-weight:700;
}
.p-faq__icon--q{ background:var(--key-color); color:#fff; }
.p-faq__icon--a{ background:#f2f2f2; color:#111; }
.p-faq__text{ align-self:center; font-size:14px; line-height:1.8; }
.p-faq__text--q{ color:#111; font-weight:600; }
.p-faq__text--a{ color:#444; }
.p-faq__close{
  position:absolute; top:-14px; right:-14px; width:36px; height:36px; border-radius:50%;
  background:var(--key-color); color:#fff;
}
.p-faq__close::before,.p-faq__close::after{
  content:""; position:absolute; inset:0; margin:auto; width:14px; height:1px; background:currentColor;
}
.p-faq__close::before{ transform:rotate(45deg); }
.p-faq__close::after{ transform:rotate(-45deg); }

/* ===== sub-page header ===== */
.c-sv{ background:var(--key-color); color:#fff; padding:64px 24px; text-align:center; }
.c-sv__breadcrumbs{ font-size:12px; opacity:.7; }
.c-sv__breadcrumbs a{ text-decoration:underline; text-underline-offset:3px; }
.c-sv__title{ margin-top:16px; font-family:var(--caption-font-family); font-size:clamp(24px,4vw,34px); }

/* ===== contact page ===== */
.p-contact{ padding:96px 24px; text-align:center; }
.p-contact .c-more{ font-size:18px; padding:18px 40px; border-radius:999px; background:var(--key-color); color:#fff; }
.p-contact .c-more:hover{ opacity:.9; }

/* ===== floating entry button ===== */
.c-float-entry{
  position:fixed; right:20px; bottom:30%; z-index:999;
  display:block; width:180px; height:180px;
  border-radius:50%;
  transition:transform .3s ease;
  animation: breatheGlow 2s ease-in-out infinite;
}
.c-float-entry__img{
  display:block;
  width:70%; height:70%;
  border-radius:50%;
  position:absolute; top:50%; left:50%;
  transform:translate(-50%,-50%);
  object-fit:cover;
}
.c-float-entry__ring{
  position:absolute; top:0; left:0;
  width:100%; height:100%;
  animation: spinRing 8s linear infinite;
}
.c-float-entry:hover{ transform:scale(1.1); }

@keyframes breatheGlow{
  0%, 100%{ box-shadow: 0 0 0 0 rgba(230, 26, 35, 0.6); }
  50%{ box-shadow: 0 0 0 16px rgba(230, 26, 35, 0); }
}
@keyframes spinRing{
  from{ transform: rotate(0deg); }
  to{ transform: rotate(360deg); }
}

/* ===== footer ===== */
.l-footer{ margin-top:0; padding:64px 24px 48px; text-align:center; background:#0c0c0f; color:rgba(255,255,255,.8); position:relative; z-index:7; }
.l-footer__logo{ font-family:var(--caption-font-family); font-size:20px; font-weight:700; color:#fff; }
.l-footer__nav{ margin-top:24px; display:flex; justify-content:center; gap:24px; flex-wrap:wrap; font-size:12px; }
.l-footer__nav a{ opacity:.8; }
.l-footer__nav a:hover{ opacity:1; text-decoration:underline; }
.l-footer__copyright{ margin-top:32px; font-size:12px; opacity:.5; }

/* ===== responsive ===== */
@media (max-width:767px){
  .c-pickup__list{ grid-template-columns:repeat(3,1fr); gap:10px; }
  .c-pickup__avatar__img{ width:88px; height:88px; }
  .c-flow{ padding:56px 0; }
  .c-flow__num{ width:44px; height:44px; font-size:12px; }
  .c-flow__list::before{ left:21px; }
  .c-flow__item{ gap:16px; padding-bottom:32px; }
  .c-float-entry{ right:12px; bottom:20%; width:100px; height:100px; }
  .c-mv__title{ font-size:28px; }
}