@charset "UTF-8";

:root {
  --navy: #122A4A;
  --gold: #F4B400;
  --gold-deep: #C98A00;
  --yellow: #FFD84D;
  --yellow-deep: #F5C518;
  --red: #C0392B;
  --line-green: #06C755;
  --paper: #FFFFFF;
  --cream: #FFF9E8;
  --ink: #262117;
  --ink-soft: #6E6653;
  --line: #F0E2B8;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  background: #E7E0D2;
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  color: var(--ink);
  padding: 40px 12px 70px;
  position: relative;
}


.wrap { max-width: 960px; margin: 0 auto; }

.frame {
  width: 100%;
  margin: 0 auto;
  overflow: hidden;
  position: relative;
}

.frame-inner {
  padding-bottom: 64px;
  min-height: 600px;
  position: relative;
}
.eyebrow{display:flex; margin-bottom:14px;}
.section-ribbon{
display:inline-flex; align-items:center; position:relative;
background:linear-gradient(135deg,var(--gold-deep) 0%,#8F5E28 100%); color:#fff; font-weight:700; font-size:12px; letter-spacing:.03em;
padding:6px 14px; border-radius:4px; box-shadow:0 3px 8px rgba(60,35,10,.25);
}
section{padding:30px 20px;}
.sec-title{font-size:18px; line-height:1.6; font-weight:700; color:var(--ink); margin:0 0 12px;}
.sec-lead{font-size:12px; color:var(--ink-soft); line-height:1.8; margin:0 0 16px;}
.badge-priority{
display:inline-block; background:var(--red); color:#fff; font-size:10px; font-weight:700;
padding:3px 9px; border-radius:10px; margin-bottom:8px; letter-spacing:.05em;
}



/* --- Header --- */
header.site {
  background: #114a97;
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 100;
}
header.site .wrap{
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 14px;
}

header.site .logo {
  display: flex;
  align-items: center;
  width: 280px;
  border-radius: 4px;
}

header.site .logo img {
  width: 100%;
  height: auto;
}

.hdr-right {
  display: flex;
  align-items: center;
  gap: 10px;
}

.hdr-phone {
  display: flex;
  align-items: center;
  gap: 4px;
  background: var(--yellow, #ff0); /* 変数がない場合のために予備色 */
  color: var(--navy, #1652A6);
  font-weight: 700;
  font-size: 18px;
  padding: 6px 10px;
  border-radius: 14px 4px 14px 4px;
  text-decoration: none;
  white-space: nowrap;
}

/* --- Hamburger Button --- */
.hdr-burger {
  width: 30px;
  height: 24px;
  background: none;
  border: none;
  cursor: pointer;
  position: relative;
  padding: 0;
  z-index: 101; /* メニューより上に表示 */
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.hdr-burger i {
  display: block;
  width: 100%;
  height: 3px;
  background: #fff;
  border-radius: 2px;
  transition: all 0.3s ease;
}

/* Open State (X) */
.hdr-burger.is-active i:nth-child(1) { transform: translateY(10.5px) rotate(45deg); }
.hdr-burger.is-active i:nth-child(2) { opacity: 0; }
.hdr-burger.is-active i:nth-child(3) { transform: translateY(-10.5px) rotate(-45deg); }

/* --- Slide Menu (Mobile) --- */
.nav-menu {
  position: fixed;    /* absoluteからfixedに変更（画面全体を覆うため） */
  top: 0;
  right: -100%;
  width: 100%;
  height: 100vh;      /* 100%から100vhに変更（画面の高さ一杯にする） */
  background: #1652A6; /* 変数 var(--navy) の代わりに直接指定（念のため） */
  z-index: 90;
  transition: right 0.4s cubic-bezier(0.25, 1, 0.5, 1);
  padding: 80px 30px 40px;
  box-sizing: border-box;
}

.nav-menu.is-active {
  right: 0;
}

.nav-menu ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.nav-menu ul li a {
  display: block;
  padding: 15px 0;
  color: #fff;
  text-decoration: none;
  font-weight: 700;
  font-size: 16px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.nav-menu .btn-reserve {
  margin-top: 20px;
  background: var(--yellow-deep, #f0ad4e);
  color: #1652A6;
  text-align: center;
  border-radius: 8px;
  border-bottom: none;
}


/* --- Other Parts --- */
section { padding: 30px 20px; }
.sec-title { font-size: 18px; line-height: 1.6; font-weight: 700; margin: 0 0 12px; }
.sec-lead { font-size: 12px; color: var(--ink-soft); line-height: 1.8; }
.badge-priority {
  display: inline-block;
  background: var(--red);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  padding: 3px 9px;
  border-radius: 10px;
  margin-bottom: 8px;
}

/* HERO */
.hero{position:relative; background:var(--gold); padding:0 20px 8px; margin-top: 67px;}
.hero-photo{width:calc(100% + 40px); margin-left:-20px; margin-right:-20px; overflow:hidden; margin-top:0; position:relative; height:490px;}
.hero-photo img{
  width:100%; height:100%; object-fit:cover; display:block;
}
.campaign-overlay{
  position:absolute; inset:0; z-index:2; display:flex; flex-direction:column; justify-content:flex-start;
  padding:26px 18px 28px;
}
.hero-heading{color:#fff; font-weight:900; font-size:33px; line-height:1.35; margin:8px 0 10px; text-shadow:0 2px 8px rgba(0,0,0,.5);}
.hero-badge-row{display:flex; flex-wrap:nowrap; gap:5px; margin-bottom:10px;}
.hero-badge-row .campaign-badge{flex:1; text-align:center; font-size:9.5px; padding:6px 4px; margin-bottom:0; white-space:normal; line-height:1.3;}
.strength-badge{
  display:inline-flex; align-items:center; gap:6px; background:rgba(255,255,255,.92); color:var(--navy); font-size:11px; font-weight:700;
  padding:5px 12px; border-radius:20px; margin-bottom:10px; align-self:flex-start;
}
.strength-badge b{color:#C0392B; font-size:12.5px;}
.campaign-connector{color:#fff; font-size:12px; font-weight:700; margin:0 0 10px; text-shadow:0 1px 4px rgba(0,0,0,.45);}
.stat-strip{display:flex; gap:6px; margin-bottom:12px;}
.stat-cell{flex:1; background:rgba(255,255,255,.95); border-radius:8px; overflow:hidden; text-align:center;}
.stat-cell .lbl{background:#C0392B; color:#fff; font-size:9px; font-weight:700; padding:4px 2px; line-height:1.3;}
.stat-cell .val{padding:6px 2px 7px; color:var(--navy);}
.stat-cell .val b{display:block; font-size:15px; font-weight:900; line-height:1.1;}
.stat-cell .val span{font-size:8.5px; font-weight:700; color:var(--ink-soft);}
.campaign-badge{
  display:inline-block; background:#8F5E28; color:#fff; font-size:11px; font-weight:700;
  padding:5px 12px; border-radius:3px; margin-bottom:12px; align-self:flex-start; writing-mode:horizontal-tb;
}
.campaign-title{color:#fff; font-size:22px; font-weight:900; margin:0 0 10px; text-shadow:0 2px 6px rgba(0,0,0,.45);}
.campaign-sub{color:#fff; font-size:13px; font-weight:700; margin:0 0 4px; text-shadow:0 1px 4px rgba(0,0,0,.45);}
.campaign-amount{ color:#fff; font-weight:900; font-size:46px; line-height:1; margin:0 0 4px; text-shadow:0 2px 8px rgba(0,0,0,.55);}
.campaign-amount span{font-size:21px; margin-left:2px;}
.price-block{margin:2px 0 14px; display:flex; align-items:center; gap:10px;}
.hero-price-label{
  flex:none; text-align:center;
  border:1.5px solid #fff; color:#fff; font-size:12px; font-weight:700;
  padding:6px 6px; border-radius:4px; line-height:1.7; background:rgba(0,0,0,.2);
}
.price-nums{display:flex; flex-direction:column;}
.lineup-btn{text-decoration:none; display:inline-block; font-size:10.5px; line-height:1.5; margin-left:auto; border-radius:0 !important;}
.hero-price-main{display:block;  color:#FFD84D; font-weight:900; font-size:53px; line-height:1; text-shadow:0 2px 10px rgba(0,0,0,.6);}
.hero-price-main small{font-size:22px; font-weight:700; margin-left:2px;}
.price-tax{display:block; color:#fff; font-size:13px; font-weight:700; margin-top:4px; text-shadow:0 1px 4px rgba(0,0,0,.5);}
.price-cta{display:inline-block; margin-top:10px; background:#fff; color:var(--navy); font-size:13px; font-weight:900; padding:9px 22px; border-radius:24px; box-shadow:0 3px 8px rgba(0,0,0,.3);}
.campaign-gift{color:#fff; font-weight:900; font-size:22px; margin:0 0 12px; text-shadow:0 2px 6px rgba(0,0,0,1.45);}
.campaign-note{color:#F0E2C8; font-size:10.5px; margin:0;}
.campaign-teaser{margin-top:6px; padding-top:14px; border-top:1px solid rgba(255,255,255,.35); display:flex; flex-wrap:wrap; align-items:center; gap:12px;}
.teaser-badge{
  flex:none; width:84px; height:84px; border-radius:10px; background:linear-gradient(160deg, #C08A3E 0%, #8F5E28 100%);
  color:#fff; display:flex; flex-direction:column; align-items:center; justify-content:center;
  font-weight:900; font-size:13px; line-height:1.35; text-align:center;
  box-shadow:0 3px 8px rgba(0,0,0,.35);
}
.teaser-info{flex:1; min-width:0; display:flex; flex-direction:column; justify-content:center; text-align:center;}
.campaign-teaser .campaign-sub{font-size:11px; margin:0 0 4px;}
.campaign-teaser .campaign-amount{font-size:54px; margin:0 0 2px;}
.campaign-teaser .campaign-amount span{font-size:20px;}
.campaign-teaser .campaign-gift{font-size:13px; margin:0 0 8px;}
.teaser-cta{display:inline-block; background:#fff; color:var(--navy); font-size:9.5px; font-weight:900; padding:5px 11px; border-radius:16px; box-shadow:0 3px 8px rgba(0,0,0,.3); white-space:nowrap;}
.teaser-cta-row{display:flex; flex-wrap:wrap; justify-content:center; gap:8px; margin-top:10px; flex-basis:100%; width:100%;}
.survey{background:linear-gradient(160deg,#FF7A63 0%,#F0503C 100%); border-radius:0; padding:22px 18px 26px; margin:0; color:#fff;}
.survey-eyebrow{font-size:11px; font-weight:700; opacity:.85; margin:0 0 10px; text-align:center;}
.survey-head{display:flex; align-items:flex-end; justify-content:space-between; gap:10px; border-bottom:2px dashed rgba(255,255,255,.5); padding-bottom:16px; margin-bottom:16px;}
.survey-head h2{font-size:17px; line-height:1.5; margin:0; font-weight:900;}
.survey-pct{font-size:40px; font-weight:900; white-space:nowrap; }
.survey-pct span{font-size:20px; margin-left:2px;}
.bubble-row{display:flex; flex-direction:column; gap:14px; margin-bottom:22px;}
.bubble{position:relative; background:#fff; color:var(--ink); border-radius:16px; padding:12px 14px; font-size:12.5px; line-height:1.6; font-weight:700; box-shadow:0 3px 8px rgba(0,0,0,.15); display:flex; gap:10px; align-items:flex-start;}
.bubble:before{content:""; position:absolute; top:14px; width:0; height:0; border:7px solid transparent;}
.bubble:not(.right):before{left:-10px; border-right-color:#fff;}
.bubble.right:before{right:-10px; border-left-color:#fff;}
.bubble .icon{flex:none; width:34px; height:34px; border-radius:50%; background:var(--cream); display:flex; align-items:center; justify-content:center; font-size:18px;}
.bubble.right{align-self:flex-end; width:88%; flex-direction:row-reverse;}
.survey-cta{display:block; text-align:center; background:linear-gradient(180deg,var(--yellow) 0%,var(--yellow-deep) 100%); color:var(--navy); font-weight:900; font-size:16px; padding:16px; border-radius:30px; border:none; text-decoration:none; box-shadow:0 6px 14px rgba(0,0,0,.35); margin-top:4px;}
.hero-photo svg{display:block; width:100%; height:auto;}
.ribbon{
  display:inline-flex; align-items:center; gap:6px; background:var(--red); color:#fff;
  font-size:12px; font-weight:700; padding:6px 16px 6px 12px; border-radius:2px 10px 10px 2px;
  position:relative; margin-bottom:12px;
}
.ribbon::after{
  content:""; position:absolute; right:-9px; top:0; border-top:14px solid transparent;
  border-bottom:14px solid transparent; border-left:9px solid #8E2A1F;
}
.badge-row{display:flex; align-items:center; gap:14px; margin-bottom:12px;}
.no1-badge{width:80px; height:80px; flex:none;}
.no1-main{ font-weight:900; line-height:.95;}
.no1-main .l1{font-size:13px; color:var(--navy); font-weight:700; display:block; margin-bottom:2px;}
.no1-main .l2{font-size:15px; color:var(--navy); font-weight:700; display:block;}
.no1-huge{font-weight:900; font-size:56px; color:#fff;
  -webkit-text-stroke:2px var(--navy); line-height:1; margin:6px 0 10px; letter-spacing:-1px;
  display:flex; align-items:center; justify-content:center; gap:6px;}
.no1-huge .wreath{width:34px; height:52px; flex:none;}
.line-banner{
  display:flex; align-items:center; gap:10px; background:var(--line-green); border-radius:12px;
  padding:12px 14px; margin-bottom:10px; box-shadow:0 4px 10px rgba(0,0,0,.15); text-decoration:none;
}
.line-banner.campaign{background:linear-gradient(135deg,var(--red),#8E2A1F);}
.line-banner .ico{width:30px; height:30px; flex:none; background:#fff; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:16px;}
.line-banner .txt{color:#fff; font-weight:700; font-size:12.5px; line-height:1.5;}
.line-banner .txt small{display:block; font-weight:500; font-size:10px; color:#E6FFF0;}
.line-banner .arrow{margin-left:auto; color:#fff; font-size:16px;}

.terms-card{background:#fff; border:1.5px solid var(--line); border-radius:14px; padding:14px; margin:14px 0 4px;}
.terms-ribbon{
  display:inline-block; background:#4BA3A3; color:#fff; font-size:11.5px; font-weight:700;
  padding:5px 16px; border-radius:4px; margin-bottom:10px;
}
.terms-warn{color:#C0392B; font-weight:700; font-size:11.5px; margin:0 0 8px;}
.terms-list{margin:0; padding-left:18px; font-size:11px; color:var(--ink); line-height:1.9;}

.line-tag{
  display:inline-flex; align-items:center; gap:6px; background:var(--navy); color:var(--yellow);
  font-size:11px; font-weight:700; padding:5px 12px; border-radius:16px; margin-bottom:10px;
}
.hero-offer{font-size:15px; font-weight:700; color:var(--navy); line-height:1.6; margin:0 0 4px;}
.hero-offer b{font-size:22px; color:var(--red);}

/* dual CTA (used repeatedly) */
.dual-cta{display:flex; flex-direction:column; gap:10px; margin-top:14px;}
.btn{
  display:flex; align-items:center; justify-content:center; gap:8px;
  padding:15px 16px; border-radius:28px; font-size:14.5px; font-weight:700;
  text-decoration:none; text-align:center; width:100%;
}
.btn-navy{background:var(--navy); color:#fff;}
.btn-line{background:var(--line-green); color:#fff;}
.btn-outline-navy{background:#fff; border:2px solid var(--navy); color:var(--navy);}
.microcopy{font-size:10.5px; color:var(--ink-soft); text-align:center; margin-top:8px;}

/* mini CTA used mid-page */
.mini-cta{
  display:flex; align-items:center; justify-content:center; text-align:center;
  background:var(--navy); color:#fff; text-decoration:none;
  font-size:12.5px; font-weight:700; padding:12px 16px; border-radius:24px; margin-top:16px;
  width:100%;
}
.mini-cta.line{background:var(--line-green);}
.mini-cta.on-dark{background:var(--navy); border:2px solid #fff;}

.card-logo{
  position:absolute; top:-9px; left:12px; background:#fff; padding:3px 8px;
  border-radius:6px; box-shadow:0 2px 6px rgba(0,0,0,.15); margin:0; z-index:2;
}
.card-logo img{display:block;}

/* H2-1 flow: 来場予約の流れ（案3 新設） */
section.flow{background:#fff;}
.flow-list{position:relative; padding-left:38px;}
.flow-list::before{content:""; position:absolute; left:17px; top:6px; bottom:6px; width:2px; background:var(--line);}
.flow-item{position:relative; margin-bottom:22px;}
.flow-item:last-child{margin-bottom:0;}
.flow-num{
  position:absolute; left:-38px; top:0; width:36px; height:36px; border-radius:50%;
  background:var(--navy); color:var(--yellow);  font-weight:700;
  font-size:10px; display:flex; flex-direction:column; align-items:center; justify-content:center; line-height:1.1; z-index:1;
}
.flow-num b{font-size:14px;}
.flow-body h4{margin:0 0 4px; font-size:13px; font-weight:700; color:var(--ink);}
.flow-body p{margin:0; font-size:11px; line-height:1.7; color:var(--ink-soft);}
.flow-item:last-child .flow-num{background:var(--gold); color:var(--navy);}

/* H2-1 anshin -> Merit cards (photo-forward, minimal text) */
section.anshin{background:#fff; padding-bottom:24px;}
.merit-card{border-radius:14px; overflow:hidden; margin-bottom:16px; box-shadow:0 4px 14px rgba(0,0,0,.1);}
.merit-card:last-child{margin-bottom:0;}
.merit-photo{display:block; width:100%; height:220px; object-fit:cover;}
.merit-body{background:#1652A6; padding:14px 16px 16px;}
.merit-tag{display:inline-block; font-size:11px; font-weight:700; color:#FFD84D; letter-spacing:.06em; margin-bottom:6px;}
.merit-body h4{margin:0 0 6px; font-size:14.5px; font-weight:700; color:#fff; line-height:1.5;}
.merit-body p{margin:0; font-size:11px; line-height:1.7; color:#D7E4F5;}

/* H2-1 offer: 来場予約キャンペーン */
section.offer{background:linear-gradient(160deg,#FFF3D0,var(--cream));}
.step-card{background:#fff; border:1.5px solid var(--line); border-radius:14px; padding:14px; margin-bottom:12px; display:flex; gap:12px; align-items:center;}
.step-card .step-num{
  flex:none; width:40px; height:40px; border-radius:50%; background:var(--navy); color:var(--yellow); font-weight:700; font-size:11px; display:flex; flex-direction:column;
  align-items:center; justify-content:center; line-height:1.1;
}
.step-card .step-num b{font-size:14px;}
.step-card h4{margin:0 0 2px; font-size:12.5px; font-weight:700; color:var(--ink);}
.step-card p{margin:0; font-size:11px; color:var(--ink-soft);}
.step-card .yen{color:var(--red); font-weight:700;}
.total-banner{
  background:linear-gradient(135deg,var(--gold-deep) 0%,#8F5E28 100%); color:#fff; text-align:center; border-radius:12px; padding:14px 18px; margin:14px 0; box-shadow:0 3px 8px rgba(60,35,10,.25);
}
.total-banner .amount{font-weight:900; font-size:26px; color:#fff;}
.total-banner span{font-size:10.5px; display:block; margin-top:4px; line-height:1.6; color:#fff;}

/* H2-3 stats */
section.stats{background:#fff;}
.stat-grid{display:grid; grid-template-columns:1fr 1fr; gap:10px;}
.stat-card{position:relative; background:var(--cream); border-radius:14px; padding:20px 8px 16px; text-align:center; margin-top:9px;}
.stat-card b{display:block;  font-size:22px; color:var(--gold-deep); line-height:1.2;}
.stat-card span{font-size:10.5px; color:var(--ink); font-weight:700; display:block; margin-top:4px;}
.stat-card small{font-size:9px; color:var(--ink-soft); display:block; margin-top:2px;}

/* H2-4 points */
section.points{background:var(--cream);}
.point-card{position:relative; background:#fff; border:1px solid var(--line); border-radius:14px; padding:18px 14px 14px; margin-bottom:12px; margin-top:9px;}
.point-card:last-child{margin-bottom:0;}
.point-tag{display:inline-block; background:var(--navy); color:var(--yellow); font-size:10px; font-weight:700; padding:3px 10px; border-radius:10px; margin-bottom:8px;}
.point-card h4{margin:0 0 4px; font-size:12.5px; font-weight:700; color:var(--ink);}
.point-card p{margin:0; font-size:11px; line-height:1.7; color:var(--ink-soft);}

/* 強み（voice下に配置） */
section.strengths{background:linear-gradient(180deg,var(--yellow) 0%, var(--gold) 100%); padding:34px 20px 30px; text-align:center;}
.strengths-title{ font-size:19px; font-weight:900; color:var(--navy); margin:0 0 22px;}
.strength-card{position:relative; background:var(--navy); border-radius:20px; padding:58px 18px 24px; margin-bottom:22px; box-shadow:0 8px 18px rgba(0,0,0,.15);}
.strength-card:last-child{margin-bottom:0;}
.strength-photo{position:absolute; top:-42px; left:50%; transform:translateX(-50%); width:108px; height:108px; border-radius:50%; overflow:hidden; border:4px solid var(--yellow); box-shadow:0 6px 14px rgba(0,0,0,.25);}
.strength-photo img{width:100%; height:100%; object-fit:cover; display:block;}
.strength-card h3{color:#fff;  font-weight:900; font-size:15px; margin:0 0 10px;}
.strength-card p{color:#EAF0F7; font-size:11.5px; line-height:1.9; margin:0;}

/* H2-5 voice - photo background + speech bubbles */
section.voice{position:relative; padding:0; overflow:hidden;}
.voice-bg{position:relative; padding:34px 20px 30px;}
.voice-bg .bgphotos{position:absolute; inset:0; display:flex; flex-direction:column;}
.voice-bg .bgphotos img{width:100%; height:33.34%; object-fit:cover; display:block; filter:brightness(0.55);}
.voice-bg .overlay{position:absolute; inset:0; background:linear-gradient(180deg, rgba(18,42,74,.35), rgba(18,42,74,.65));}
.voice-stat{position:relative; z-index:2; text-align:center; margin-bottom:18px;}
.voice-stat .label{color:#fff;  font-weight:700; font-size:15px; letter-spacing:.15em; margin-bottom:6px;}
.voice-stat .crown{width:42px; height:42px; margin:0 auto 2px;}
.voice-stat .no1-row{display:flex; align-items:center; justify-content:center; gap:8px; flex-wrap:nowrap;}
.voice-stat .no1-text{ font-weight:900; color:#fff; white-space:nowrap;}
.voice-stat .no1-text .yrs{font-size:31px;}
.voice-stat .no1-text .yrs .num{font-size:37px;}
.voice-stat .no1-text .big{font-size:41px;}

.voice-head{position:relative; z-index:2; text-align:center; margin-bottom:22px;}
.voice-head h2{color:#fff;  font-size:12.5px; font-weight:700; margin:0 0 4px; letter-spacing:.02em;}
.voice-head h2.big{font-size:18px; margin-bottom:10px;}
.voice-head p{color:#EAF0F7; font-size:11px; line-height:1.8; margin:0;}
.voice .frame{
  width: 100%;
  display: grid;
  grid-template-columns: repeat(1, 3fr);
  margin: 0 auto;
  gap: 24px;
}
.testi{position:relative; z-index:2; background:#fff; border-radius:14px; padding:18px 16px 14px; width: 100%; margin-bottom:52px; box-shadow:0 6px 18px rgba(0,0,0,.25);}
.testi:last-child{margin-bottom:6px;}
.testi::after{
  content:""; position:absolute; left:34px; bottom:-16px; width:0; height:0;
  border-left:14px solid transparent; border-right:0 solid transparent; border-top:18px solid #fff;
}
.testi:nth-child(even)::after{left:auto; right:34px;}
.testi p.quote{font-size:12.5px; line-height:1.9; color:var(--ink); margin:0 0 10px; text-align:center; font-weight:500;}
.testi p.quote b{color:#2C5F8A; font-weight:700;}
.testi .who{display:block; text-align:center; font-size:11px; color:var(--ink-soft); font-weight:700;}

/* H2-6 areas */
section.areas{background:var(--cream);}
.booking-banner{display:flex; align-items:center; justify-content:space-between; gap:10px; margin:18px 0 22px; padding:16px 14px; background:#fff; border-radius:14px;}
.booking-text h3{ font-size:17px; font-weight:900; line-height:1.4; margin:0 0 10px; color:var(--ink);}
.booking-highlight{display:inline-block; background:#fff2a3; padding:5px 9px; font-size:11.5px; font-weight:700; color:var(--ink); line-height:1.4;}
.booking-illust{flex-shrink:0;}
.booking-illust img{width:130px; height:auto; display:block;}
.booking-caption{text-align:center; font-size:11px; color:var(--ink-soft); margin:-8px 0 20px;}
.area-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:8px;}
.area-card{background:#fff; border:1px solid var(--line); border-radius:12px; padding:18px 4px; text-align:center; display:flex; align-items:center; justify-content:center; min-height:52px;}
.area-card span{font-size:13px; color:var(--ink); font-weight:700; display:block;}

/* H2-7 FAQ */
/* gallery */
section.gallery{background:#fff; padding:30px 0;}
.gallery-head{padding:0 20px;}
.gal-photo{margin-bottom:0; position:relative; overflow:hidden;}
.gal-photo img{display:block; width:100%; height:auto;}
.gal-photo::after{content:""; position:absolute; left:0; right:0; bottom:0; height:60%;  pointer-events:none;}
.mh-badge{position:absolute; top:16px; left:16px; z-index:2; background:#1a3d8f; color:#fff;  font-size:11px; font-weight:700; letter-spacing:.03em; padding:7px 16px; border-radius:2px;}
.mh-title{ font-weight:900; font-size:19px; line-height:1.3; margin: 10px 0;}
.gal-cap{font-size:11px; color:var(--ink-soft); line-height:1.7; margin:0; padding:0px 0 26px;}
.gal-cap b{color:var(--navy);}
.gallery-cta{margin:16px 20px 0; width: 90%;}

/* lineup */
section.lineup{background:var(--cream);}
.lineup-card{background:#fff; border-radius:12px; overflow:hidden; margin-bottom:10px; box-shadow:0 4px 12px rgba(0,0,0,.08);}
.lineup-card:last-child{margin-bottom:0;}
.lineup-photo{position:relative; width:100%; aspect-ratio:8/3; overflow:hidden;}
.lineup-photo img{width:100%; height:100%; object-fit:cover; display:block;}
.lineup-photo::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,0) 35%, rgba(0,0,0,.35) 70%, rgba(0,0,0,.72) 100%);}
.lineup-photo .overlay{position:absolute; z-index:2; left:0; right:0; bottom:0; padding:8px 12px 9px;}
.lineup-photo .brand{color:#fff;  font-weight:900; font-size:30px; text-shadow:0 2px 8px rgba(0,0,0,.55); line-height:1.15; margin:0 0 3px;}
.lineup-photo .brand small{display:inline-block; margin-left:6px; font-size:14px; font-weight:700; letter-spacing:.06em; opacity:.9;}
.lineup-photo .catch{color:#fff; font-size:10.5px; font-weight:700; line-height:1.45; margin:0; text-shadow:0 1px 5px rgba(0,0,0,.55);}
.lineup-band{padding:14px 14px 12px; color:#fff; text-align:center;}
.lineup-band .price-row{display:flex; align-items:baseline; justify-content:center; gap:7px; flex-wrap:wrap;}
.lineup-band .price-label{font-size:12px; font-weight:700; opacity:.9;}
.lineup-band .price-main{font-size:42px; font-weight:900;  line-height:1;}
.lineup-band .price-unit{font-size:13px; font-weight:700;}
.lineup-band .price-sub{font-size:11px; opacity:.85; margin:3px 0 0;}
.lineup-band a.detail .caret{font-size:8px; line-height:1;}
.band-blue{background:linear-gradient(135deg,#4A90D9,#3A75B5);}
.band-green{background:linear-gradient(135deg,#6FAE7C,#568E62);}
.band-coral{background:linear-gradient(135deg,#DE8A6E,#C46B4F);}
.band-orange{background:linear-gradient(135deg,#E8963A,#C97A22);}
.band-purple{background:linear-gradient(135deg,#9683B0,#7B6796);}
.band-navy{background:linear-gradient(135deg,#556086,#3E4766);}

section.faqsec{background:#fff;}
.faq-item{border-bottom:1px solid var(--line); padding:13px 0;}
.faq-item:last-child{border-bottom:none;}
.faq-q{display:flex; align-items:flex-start; gap:9px; font-size:12px; font-weight:700;}
.faq-q .mark{width:19px; height:19px; border-radius:50%; background:var(--navy); color:#fff; flex:none; display:flex; align-items:center; justify-content:center; font-size:10.5px; font-weight:700;}
.faq-a{display:flex; gap:9px; margin-top:7px;}
.faq-a .mark{width:19px; height:19px; border-radius:50%; border:1.5px solid var(--navy); color:var(--navy); flex:none; display:flex; align-items:center; justify-content:center; font-size:10.5px; font-weight:700;}
.faq-a p{margin:0; font-size:11px; line-height:1.7; color:var(--ink-soft);}

/* H2-8 final CTA */
section.cta-sec{background:linear-gradient(150deg,var(--yellow),var(--gold)); text-align:center;}
section.cta-sec .eyebrow{justify-content:center;}
#merit .eyebrow{justify-content:center;}
section.areas .eyebrow{justify-content:center;}
section.areas .sec-title{text-align:center;}
section.faqsec .eyebrow{justify-content:center;}
section.faqsec .sec-title{text-align:center;}
section.flow .eyebrow{justify-content:center;}
section.flow .sec-title{text-align:center;}
section.offer .eyebrow{justify-content:center;}
section.offer .sec-title{text-align:center;}
section.gallery .gallery-head .eyebrow{justify-content:center;}
section.gallery .gallery-head .sec-title{text-align:center;}
section.lineup .eyebrow{justify-content:center;}
section.lineup .sec-title{text-align:center;}
section.cta-sec h2{font-size:17px; line-height:1.6; margin:0 0 10px; color:var(--navy);}
section.cta-sec p{font-size:11.5px; color:var(--navy); margin:0 0 16px;}
.link-down{display:inline-block; margin-top:10px; font-size:11px; color:var(--navy); text-decoration:none; border-bottom:1px solid var(--navy); padding-bottom:2px;}

section.form-sec{background:#fff;}
.field-group{margin-bottom:12px;}
.field-label{display:block; font-size:11px; color:var(--ink-soft); margin-bottom:5px;}
.f{width:100%; border:1px solid var(--line); border-radius:10px; padding:10px; font-size:12px; font-family:inherit; background:var(--cream);}
.privacy{font-size:10px; color:var(--ink-soft); margin:8px 0 14px;}

footer.site{background:#fff; color:var(--ink); padding:26px 20px 24px; text-align:center; border-top:1px solid var(--line); margin-bottom: 75px;}
footer.site .logo-block{display:flex; flex-direction:column; align-items:center; gap:10px; width: 200px; justify-content: center; margin: 0 auto;}
footer.site .logo-block img{
  width: 100%;
}

#footer .boxF01{ text-align:center;}
#footer .logoF{
	width:250px;
	margin:0 auto;
	display:block;
}
#footer .txtArea{
	text-align:center;
	font-size:13px;
	line-height:25px;
	padding-top:25px;
}
#footer .aTelF{
	font-size:35px;
	font-weight:700;
	position:relative;
	line-height:25px;
	margin-top:30px;
	display:inline-block;
	color:#000;
	text-decoration:none;
	padding-left:45px;
}
#footer .aTelF::after{
	content:"";
	position:absolute;
	top:0;
	left:0;
	background:url(../img/iconTel.gif) no-repeat;
	width:43px;
	height:25px;
	background-size:cover;
}
#footer .txtArea02{
	text-align:center;
	font-size:13px;
	line-height:26px;
	padding-top:20px;
}
#footer .txtArea02 .aArea{ 
	display:inline-block;
	color:#000;
}
/* STICKY CTA BAR */
.sticky-bar{
  position:fixed; left:0; right:0; bottom:0; display:flex; box-shadow:0 -4px 14px rgba(0,0,0,.15); z-index:20;
}
.sticky-bar a{
  flex:1; text-align:center; font-size:11.5px; font-weight:700; padding:12px 2px 10px;
  text-decoration:none; display:flex; flex-direction:column; align-items:center; gap:4px; line-height:1.3;
}
.sticky-bar svg{width:20px; height:20px;}
.sticky-bar .s1{background:var(--navy); color:#fff;}
.sticky-bar .s2{background:var(--yellow); color:var(--navy);}
.sticky-bar .s3{background:#4a4a4a; color:#fff;}
.sticky-bar .s4{background:#1a1a1a; color:#fff;}

.note{font-size:10.5px; color:#5c6a72; margin:10px auto 0; max-width:390px; text-align:center; line-height:1.7;}

/* ============ PC layout ============ */
@media (min-width:900px){
  body{padding:32px 28px 40px; background:#EEE9DF;}
  .wrap{max-width:1200px;}
  .frame{width:100%; max-width:1200px; }
  .frame-inner{padding-bottom:0;}

  header.site{height:76px; padding:0 48px;}
  header.site .logo{gap:16px;}
  header.site .logo .brand{font-size:22px;}
  header.site .logo .sub svg{width:14px; height:14px;}
  header.site .logo .sub span{font-size:11px;}
  .hdr-right{gap:20px;}
  .hdr-phone{font-size:20px; padding:9px 20px;}
  .nav-menu{
    width: 300px;
  }
  section{padding:64px 80px;}
  .section-ribbon{font-size:13px; padding:7px 18px;}
  .sec-title{font-size:27px; line-height:1.5; margin-bottom:22px;}

  /* HERO */
  .hero{padding:0 64px 40px; margin-top: 76px;}
  .hero-photo{width:calc(100% + 128px); margin-left:-64px; margin-right:-64px; height:560px;}
  .campaign-overlay{align-items:center; padding:48px 8%;}
  .campaign-overlay > *{max-width:1020px; width:100%;}
  .hero-heading{font-size:52px;}
  .hero-badge-row .campaign-badge{font-size:20px; padding:8px 6px;}
	.hero-price-label{
		font-size:16px;
	}
  .hero-price-main{font-size:64px;}
  .hero-price-main small{font-size:22px;}
	.lineup-btn{font-size: 16px;}
	.price-tax{font-size: 20px;}
  .hero-main-row{display:flex; align-items:stretch; gap:20px; max-width:1020px; width:100%;}
  .hero-main-row .price-block{flex:6; margin:0; padding-top:0; border-top:none;}
  .hero-main-row .campaign-teaser{flex:4; margin-top:0; padding-top:0; border-top:none; border-left:1px solid rgba(255,255,255,.35); padding-left:20px;}
  .teaser-badge{width:80px; height:80px; font-size:12px;}
	.campaign-teaser .campaign-sub{font-size: 15px;}
  .campaign-teaser .campaign-amount{font-size:42px;}
	.campaign-teaser .campaign-gift{
		font-size: 20px;
	}
  .teaser-cta-row{justify-content:center;}
	.teaser-cta {
		font-size: 13px;
	}
  .hero > .dual-cta{max-width:420px; margin-left:auto; margin-right:auto;}
  .mini-cta{max-width:420px; margin-left:auto; margin-right:auto; font-size:14.5px; padding:15px 16px;}
  .hero > .microcopy{max-width:720px; margin-left:auto; margin-right:auto;}

  /* survey */
  .survey{padding:44px 64px 50px;}
  .survey-head{max-width:640px; margin-left:auto; margin-right:auto; justify-content:center; text-align:center;}
  .bubble-row{max-width:960px; margin-left:auto; margin-right:auto; flex-direction:row; flex-wrap:nowrap; gap:20px; align-items:stretch;}
  .bubble{width:calc(33.333% - 14px); align-self:auto !important; flex-direction:row !important; align-items:flex-start;}
  .bubble.right{width:calc(33.333% - 14px); flex-direction:row !important;}
  .bubble.right:before{right:auto; left:-10px; border-left-color:transparent; border-right-color:#fff;}
  .survey-cta{max-width:420px; margin-left:auto; margin-right:auto;}

  /* offer */
  section.offer > .eyebrow, section.offer > .sec-title,
  section.offer > .total-banner, section.offer > .dual-cta,
  section.offer > .microcopy{grid-column:1 / -1;}
  .total-banner{max-width:560px; width:100%; margin-left:auto; margin-right:auto;}
  .dual-cta{max-width:420px; width:100%; margin-left:auto; margin-right:auto;}

  /* merit cards */
  section.anshin .frame{display:grid; grid-template-columns:repeat(3,1fr); gap:22px; align-items:start;}
  section.anshin > .eyebrow, section.anshin > .sec-title, section.anshin > .mini-cta{grid-column:1 / -1;}
  .merit-card{margin-bottom:0; display:flex; flex-direction:column; height:100%;}
  .merit-photo{height:200px;}
  .merit-body{flex:1;}

  /* flow: horizontal timeline */
  .flow-list{display:grid; grid-template-columns:repeat(4,1fr); gap:24px; padding-left:0; padding-top:44px;}
  .flow-list::before{left:12%; right:12%; top:18px; bottom:auto; width:auto; height:2px;}
  .flow-item{margin-bottom:0; text-align:center;}
  .flow-num{position:static; margin:0 auto 14px;}

  /* voice */
  .voice-bg{padding:60px 64px;}
  .voice-bg .bgphotos{flex-direction:row;}
  .voice-bg .bgphotos img{width:33.34%; height:100%;}
  .voice-stat, .voice-head, .voice-bg > .mini-cta{column-span:all;}
  .voice .frame{
    grid-template-columns: repeat(3, 1fr);
  }
  .testi{break-inside:avoid; margin-bottom:24px; height: fit-content;}

  /* gallery: masonry-like columns */
  section.gallery{padding:64px 80px;}
  .gallery-head{padding:0; margin-bottom:8px;}
  section.gallery .frame{display: grid; grid-template-columns: repeat(3, 1fr); column-gap:20px;}
  section.gallery .gallery-head, section.gallery .gallery-cta{column-span:all;}
  section.gallery .gal-photo, section.gallery .gal-cap{break-inside:avoid;}
  section.gallery .gal-photo img{
    aspect-ratio: 388 / 170;
    object-fit: cover;
  }

  /* lineup */
  section.lineup .frame{display:grid; grid-template-columns:repeat(3,1fr); gap:20px; align-items:start;}
  section.lineup > .eyebrow, section.lineup > .sec-title,
  section.lineup > .mini-cta{grid-column:1 / -1;}
  .lineup-card{margin-bottom:0;}

  /* areas */
  .booking-banner{max-width:400px; margin-left:auto; margin-right:auto;}
  .area-grid{grid-template-columns:repeat(5,1fr);}

  /* faq: 2 columns */
  section.faqsec .frame{column-count:2; column-gap:40px;}
  section.faqsec > .eyebrow, section.faqsec > .sec-title{column-span:all;}
  .faq-item{break-inside:avoid;}

  /* final CTA */
  section.cta-sec{padding-left:max(80px,calc((100% - 700px)/2)); padding-right:max(80px,calc((100% - 700px)/2));}
  section.cta-sec .dual-cta{max-width:420px; margin-left:auto; margin-right:auto;}

  footer.site .brand-big{font-size:38px;}
  footer.site .logo-block{
    width: 400px;
  }
  .sticky-bar{
    position:fixed; left:50%; right:auto; bottom:20px; transform:translateX(-50%);
    width:min(900px,calc(100% - 56px)); border-radius:16px; overflow:hidden;
    box-shadow:0 -4px 24px rgba(0,0,0,.22); z-index:100;
  }
}