/* 全体 */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap');
html,body,main,div,p,a,ul,li,h1,h2,h3,h4,h5,h6,span,b,dl,dt,dd,th,td{
font-family: "Noto Sans JP", sans-serif;
}
body{
	width:100%;
	max-width:621px;
	margin:0 auto;
}
main{
		padding:0 .25rem;
}
p {
    margin-top: 0;
    margin-bottom:0rem;
    font-weight: 500;
    line-height: 180%;
	letter-spacing: 1px;
}
img{
	width:100%;
}
a{
	color:#FF0A5D !important;
}
a:hover{
	text-decoration:none;
}
header a {
    margin-top: -7rem;
}
footer{
	color:#fff;
	background:#FF0A5D;
	padding:1rem;
	text-align:center;
}
footer img{
	width:50%;
}
 .accordion-toggle a:after {
	font-family: "Font Awesome 5 Free";
    content: "\f00d";
    float: right;
    color: #FF0A5D;
	background: none;
    padding: 10px;
    border-top-right-radius: 10px;
    border-bottom-right-radius: 10px;
    position: absolute;
    right: 20px;
    top: 10px;
	 font-weight: 700;
}
.accordion-toggle a.collapsed:after {
    font-family: "Font Awesome 5 Free";
    content: "\f107";
    float: right;
    color: #FF0A5D;
    padding: 10px;
    border-top-right-radius: 10px;
    border-bottom-right-radius: 10px;
    position: absolute;
    right: 20px;
    top: 10px;
	font-weight: 700;
}
h2{
    background: #FF0A5D;
    color: #fff;
    text-align: center;
    padding: 1rem;
    margin-bottom: 1rem;
}
h4 {
    padding: 20px;
    border-radius: 200px;
    font-size: 1rem;
    color: #021460 !important;
    position: relative;
    text-align: center;
    border: 3px solid #FF0A5D;
}
.footer {
    padding-top: 1rem;
    padding-bottom: 1rem;
    background-color: #5aa4e1;
    color: #fff;
}
.panel-default{background:url(../../img/stripe-bg.png); border-radius:10px;}
.panel-body{padding:10px 20px;}
.c-button._shiny {
    display: block;
    position: relative;
    border-radius: 4px;
    font-weight: bold;
    font-size: 16px;
    text-align: center;
    text-decoration: none;
    overflow: hidden;
    transition: 300ms;
	animation: yureru-j 2s infinite;
}
.c-button._shiny::before {
    position: absolute;
    content: '';
    display: inline-block;
    top: -180px;
    left: 0;
    width: 30px;
    height: 100%;
    background-color: #fff;
    transition: 300ms;
    animation: shinyshiny 2.5s ease-in-out infinite;
}

.c-button._shiny:hover {
    text-decoration: none;
    color: #fff;
    box-shadow: none;
    -webkit-transform: translateY(3px);
}
.menu{
  position: fixed;
  display: flex;
  left: 0;
  bottom: 0;
  width: 100%;
  /* 1. メニューを画面下へ隠す */
  transform: translateY(100%);
  /* 2. 0.3秒かけて表示する */
  transition: .3s;
		z-index: 11;
}
.active{
  /* 3. メニューを定位置へ戻す */
  transform: translate(0);
}
.menu a{
		width:100%;
	max-width:621px;
	margin:0 auto 2rem;
}
.show2 {
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
    animation-name: floating;
    animation-duration: 0.5s;
    animation-fill-mode: forwards;
    opacity: 0;
}
.cta{
	width:100%;
	position:relative;
}
.cta a img{
	width:95%;
}
footer ul{
	list-style:none;
	padding-left:0;
}
footer li {
    display: inline-block;
    padding: .25rem;
}
footer a{
	color:#fff !important;
}
#c2{
    position: relative;
    z-index: 10;
    margin-top: -4rem;
}
#c4{
	margin:3rem 0;
}
@keyframes floating {
  from {
    opacity: 0;
    transform: translateY(100px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes yureru-j {
    0% {
        transform: translate(0px, 2px);
    }
    5% {
        transform: translate(0px, -2px);
    }
    10% {
        transform: translate(0px, 2px);
    }
    15% {
        transform: translate(0px, -2px);
    }
    20% {
        transform: translate(0px, 2px);
    }
    25% {
        transform: translate(0px, -2px);
    }
    30% {
        transform: translate(0px, 0px);
    }
}
@-webkit-keyframes shinyshiny {
    0% { -webkit-transform: scale(0) rotate(45deg); opacity: 0; }
    80% { -webkit-transform: scale(0) rotate(45deg); opacity: 0.5; }
    81% { -webkit-transform: scale(4) rotate(45deg); opacity: 1; }
    100% { -webkit-transform: scale(50) rotate(45deg); opacity: 0; }
}
@media (min-width: 992px){
}

/* タブレット・スマホ */
@media (max-width: 992px){
}


/* ============================================================
   ここから予約フォーム（.efo-block）
   ------------------------------------------------------------
   ・すべて .efo-block 配下のみに効くようにスコープしています
   ・上部(#entry-top)・下部(#entry)の2か所に同じスタイルが適用されます
   ・色を変えるときは下の変数だけ書き換えてください
   ============================================================ */
.efo-block{
  --efo-brand:#FF0A5D;        /* LP本体と同じピンク */
  --efo-brand-dark:#D50049;
  --efo-pale:#FFF0F5;         /* 選択肢ホバー時の淡いピンク */
  --efo-line:#FFB1C9;         /* 選択肢・入力欄の枠線 */
  --efo-ink:#333333;
  --efo-gray:#7A7A7A;
  --efo-wash:#FFF5F8;         /* セクション背景 */
  --efo-green:#06C755;        /* LINEカラー */
  --efo-warn:#D32F2F;

  background:var(--efo-wash);
  padding:2rem .75rem 3.5rem;  /* 最下部に配置。下は余裕をもたせる */
  color:var(--efo-ink);
  line-height:1.7;
}
.efo-block *{box-sizing:border-box;}
/* body側のh2/pの共通指定を打ち消す */
.efo-block p{letter-spacing:normal;line-height:1.7;}
.efo-block .efo-wrap{width:100%;}

/* --- 見出し --- */
.efo-block .efo-head{text-align:center;margin-bottom:1.25rem;}
.efo-block .efo-head__en{
  display:block;font-size:12px;letter-spacing:.28em;color:var(--efo-brand);
  font-weight:700;margin-bottom:4px;
}
.efo-block .efo-head__ja{
  font-size:23px;font-weight:700;line-height:1.45;color:var(--efo-ink);
  background:none;padding:0;margin:0;
}
.efo-block .efo-head__ja b{color:var(--efo-brand);}

/* --- 「たった30秒」吹き出し --- */
.efo-block .efo-balloon{
  position:relative;width:max-content;margin:0 auto 11px;
  border:2px solid var(--efo-ink);border-radius:6px;background:#fff;
  padding:2px 26px;font-size:14px;font-weight:700;line-height:1.6;
}
.efo-block .efo-balloon::after{content:"";position:absolute;left:50%;bottom:-9px;transform:translateX(-50%);
  border:9px solid transparent;border-top-color:var(--efo-ink);border-bottom:0;}
.efo-block .efo-balloon::before{content:"";position:absolute;left:50%;bottom:-6px;transform:translateX(-50%);
  border:7px solid transparent;border-top-color:#fff;border-bottom:0;z-index:1;}

/* --- 既存のCTA画像を見出しとして使用 --- */
.efo-block .efo-bar-img{text-align:center;line-height:0;}
.efo-block .efo-bar-img img{width:95%;height:auto;}

/* --- カード --- */
.efo-block .efo-card{
  background:#fff;border-radius:16px;padding:1.4rem 1.1rem 1.5rem;margin-top:1rem;
  box-shadow:0 6px 20px rgba(255,10,93,.10);
}

/* --- ステップドット --- */
.efo-block .efo-dots{display:flex;justify-content:center;gap:6px;margin-bottom:1rem;}
.efo-block .efo-dot{
  width:29px;height:29px;border-radius:50%;border:1.5px solid var(--efo-brand);
  background:#fff;color:var(--efo-brand);font-size:13px;font-weight:700;
  display:flex;align-items:center;justify-content:center;transition:.2s;flex:0 0 auto;
}
.efo-block .efo-dot.is-current{background:var(--efo-brand);color:#fff;}

/* --- 設問（この中だけが切り替わります） --- */
.efo-block .efo-q{
  font-size:20px;font-weight:700;text-align:center;margin:0 0 1.1rem;line-height:1.5;
  background:none;color:var(--efo-ink);padding:0;
}
.efo-block .efo-stage{min-height:290px;}
.efo-block .efo-stage.is-swap{animation:efoSwap .22s ease;}
@keyframes efoSwap{from{opacity:0;transform:translateX(14px);}to{opacity:1;transform:none;}}
@media(prefers-reduced-motion:reduce){.efo-block .efo-stage.is-swap{animation:none;}}

/* --- 選択肢 --- */
.efo-block .efo-opts{display:grid;gap:10px;}
.efo-block .efo-opts--2{grid-template-columns:1fr 1fr;}
.efo-block .efo-opt{
  padding:13px 8px;border:1px solid var(--efo-line);border-radius:8px;background:#fff;
  color:var(--efo-brand);font-size:15px;font-weight:600;cursor:pointer;transition:.15s;
  text-align:center;width:100%;line-height:1.4;letter-spacing:normal;
  font-family:"Noto Sans JP",sans-serif;
}
.efo-block .efo-opt:hover{background:var(--efo-pale);border-color:var(--efo-brand);}
.efo-block .efo-opt.is-on{background:var(--efo-brand);border-color:var(--efo-brand);color:#fff;}

/* --- 入力欄 --- */
.efo-block .efo-f{margin-bottom:15px;}
.efo-block .efo-f__label{font-size:14px;font-weight:700;margin-bottom:6px;}
.efo-block .efo-f__in{
  width:100%;padding:12px 13px;border:1px solid var(--efo-line);border-radius:8px;
  background:#fff;color:var(--efo-ink);font-size:16px;   /* iOSの自動ズーム防止 */
  font-family:"Noto Sans JP",sans-serif;
}
.efo-block .efo-f__in::placeholder{color:#B9B9B9;}
.efo-block .efo-f__in:focus,
.efo-block .efo-sel:focus,
.efo-block .efo-opt:focus-visible,
.efo-block .efo-btn:focus-visible{
  outline:3px solid rgba(255,10,93,.25);outline-offset:1px;border-color:var(--efo-brand);
}
.efo-block .efo-f__err{font-size:12.5px;color:var(--efo-warn);font-weight:700;margin:5px 0 0;display:none;}
.efo-block .efo-f.is-err .efo-f__in{border-color:var(--efo-warn);background:#FFF5F5;}
.efo-block .efo-f.is-err .efo-f__err{display:block;}

.efo-block .efo-birth{display:flex;align-items:center;gap:6px;margin-bottom:1.1rem;}
.efo-block .efo-sel{
  padding:11px 8px;border:1px solid var(--efo-line);border-radius:8px;background:#fff;
  color:var(--efo-ink);font-size:16px;font-family:"Noto Sans JP",sans-serif;
}
.efo-block .efo-birth span{font-size:14px;}

/* --- 同意チェック --- */
.efo-block .efo-agree{
  display:flex;align-items:center;justify-content:center;gap:9px;
  margin:1.1rem 0 0;font-size:14px;font-weight:400;
}
.efo-block .efo-agree input{width:19px;height:19px;accent-color:var(--efo-brand);margin:0;}
.efo-block .efo-agree a{text-decoration:underline;}

/* --- 下部ボタン --- */
.efo-block .efo-nav{display:flex;gap:10px;margin-top:1.25rem;}
.efo-block .efo-btn{
  flex:1;padding:13px;border:0;border-radius:8px;font-size:15px;font-weight:700;
  cursor:pointer;transition:.15s;font-family:"Noto Sans JP",sans-serif;
}
.efo-block .efo-btn--back{background:var(--efo-gray);color:#fff;}
.efo-block .efo-btn--next{background:var(--efo-brand);color:#fff;}
.efo-block .efo-btn--next:hover{background:var(--efo-brand-dark);color:#fff;}
.efo-block .efo-btn--next:disabled{background:#FFC3D6;cursor:not-allowed;}

/* --- 完了画面 --- */
.efo-block .efo-done{text-align:center;padding:1.5rem .25rem .5rem;}
.efo-block .efo-done__mark{
  width:60px;height:60px;border-radius:50%;background:var(--efo-brand);
  color:#fff;font-size:30px;line-height:60px;margin:0 auto 1rem;
}
.efo-block .efo-done__t{font-size:20px;font-weight:700;margin:0 0 10px;}
.efo-block .efo-done__p{font-size:14px;color:var(--efo-gray);margin:0 0 1.25rem;}
.efo-block .efo-done__line{
  display:block;background:var(--efo-green);text-decoration:none;
  font-weight:700;font-size:16px;padding:15px;border-radius:999px;
  box-shadow:0 4px 0 #04A548;
  color:#fff !important;   /* a{color:#FF0A5D !important} を上書き */
}
.efo-block .efo-done__line:hover{opacity:.92;text-decoration:none;}
.efo-block .efo-note{font-size:11.5px;color:var(--efo-gray);text-align:center;margin:.9rem 0 0;line-height:1.6;}

/* --- ファーストビュー直下のフォームは余白を詰める --- */
.efo-block--top{
  padding:1.5rem .75rem 2rem;
  margin-top:0;   /* ヘッダーCTA画像との間隔。詰めたい場合は -1rem などに調整 */
  position:relative;
  z-index:9;
}
.efo-block--top .efo-head{margin-bottom:1rem;}
.efo-block--top .efo-head__ja{font-size:21px;}