:root{
  --navy:#073b67;
  --blue:#075baa;
  --blue-dark:#03437f;
  --yellow:#ffd400;
  --orange:#ef6c24;
  --red:#e7462b;
  --line:#06c755;
  --ink:#172f43;
  --light:#f1f7fc;
  --rule:#c8d9e8;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  padding-bottom:66px;
  background:#e7ecef;
  color:var(--ink);
  font-family:"Hiragino Sans","Yu Gothic",Meiryo,sans-serif;
  font-size:16px;
  font-weight:500;
  line-height:1.8;
}
.lp{
  width:100%;
  max-width:1080px;
  margin:auto;
  overflow:hidden;
  background:#fff;
  box-shadow:0 0 18px rgba(0,33,65,.12);
}
img{display:block;width:100%;height:auto}
.visual,.visual picture{display:block;width:100%;margin:0;line-height:0;background:#fff}
.site-head{
  min-height:72px;
  display:flex;
  align-items:center;
  padding:10px 28px;
  background:#fff;
  border-bottom:5px solid var(--yellow);
}
.brand{display:flex;align-items:center;gap:16px;color:var(--navy);font-weight:900;text-decoration:none}
.brand img{width:220px;height:auto}
.brand span{padding-left:16px;border-left:2px solid var(--rule);font-size:18px;white-space:nowrap}

.cta-block,.campaign-card,.content-block{padding:48px clamp(22px,6vw,70px)}
.cta-block{
  position:relative;
  text-align:center;
  background:#fff;
  border-top:8px solid var(--yellow);
}
.cta-block::before{
  content:"";
  position:absolute;
  top:0;left:0;
  width:28%;
  height:8px;
  background:var(--blue);
}
.availability{margin:0 0 16px;color:var(--navy);font-size:clamp(16px,2.4vw,22px);font-weight:900}
.availability span{
  display:inline-block;
  padding:4px 14px;
  color:var(--navy);
  background:var(--yellow);
  border:2px solid var(--navy);
}
.availability strong{display:block;margin-top:8px;color:var(--red)}
.offer-mini{display:flex;align-items:end;justify-content:center;gap:10px;flex-wrap:wrap;margin:0 auto 22px}
.offer-mini>span{width:100%;color:var(--navy);font-weight:900}
.offer-mini del{font-weight:800}
.offer-mini strong{color:var(--red);font-size:clamp(44px,8vw,70px);font-weight:900;line-height:1}
.offer-mini small{font-size:.38em}
.offer-mini em{padding:1px 7px;border:1px solid var(--orange);color:#9b3f0b;background:#fff;font-size:12px;font-style:normal;font-weight:800}
.btn{
  position:relative;
  display:flex;
  min-height:64px;
  align-items:center;
  justify-content:center;
  padding:13px 54px 13px 22px;
  border:2px solid rgba(0,0,0,.08);
  border-radius:6px;
  color:#fff;
  text-decoration:none;
  font-size:clamp(18px,2.5vw,24px);
  font-weight:900;
  line-height:1.25;
  box-shadow:0 4px 0 rgba(0,0,0,.22);
  transition:transform .12s;
}
.btn::after{
  content:"›";
  position:absolute;
  right:20px;
  top:50%;
  transform:translateY(-52%);
  color:#fff;
  font-size:30px;
  line-height:1;
}
.btn:hover{transform:translateY(-1px)}
.btn:active{transform:translateY(3px);box-shadow:0 1px 0 rgba(0,0,0,.22)}
.btn--wide{max-width:700px;margin:12px auto;flex-direction:column}
.btn--wide span{margin-top:3px;font-size:.53em}
.btn--line{background:var(--line);border-color:#049844}
.btn--web{background:#1676bd;border-color:#0d5d99}
.dummy-note,.disclaimer{color:#687884;font-size:12px;text-align:center}
.dummy-note{margin:16px 0 0}
.disclaimer{margin:0;padding:14px 24px 30px;background:#fff}

.campaign-card{
  text-align:center;
  background:#fff;
  border-top:12px solid var(--navy);
  border-bottom:12px solid var(--navy);
}
.campaign-label{
  display:table;
  margin:0 auto 12px;
  padding:5px 18px;
  color:var(--navy);
  background:var(--yellow);
  border:2px solid var(--navy);
  font-weight:900;
}
.campaign-card h2,.content-block h2,.cta-block h2{
  margin:8px 0 22px;
  color:var(--navy);
  font-size:clamp(27px,4.5vw,42px);
  font-weight:900;
  line-height:1.35;
}
.campaign-price{display:flex;align-items:end;justify-content:center;gap:13px;flex-wrap:wrap}
.campaign-price del{font-size:18px}
.campaign-price strong{color:var(--red);font-size:clamp(58px,10vw,86px);font-weight:900;line-height:1}
.campaign-price small{font-size:.4em}
.campaign-price span{padding:2px 6px;border:1px solid var(--orange);color:#98430e;font-size:12px;font-weight:800}
.campaign-card ul{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;list-style:none;margin:25px auto 18px;padding:0}
.campaign-card li{padding:8px 14px;border:2px solid var(--blue);color:var(--navy);background:#fff;font-weight:800}
.deadline{color:var(--red);font-weight:900}
.cta-pair{display:grid;grid-template-columns:1fr 1fr;gap:16px;max-width:760px;margin:28px auto 0}

.content-block{background:#fff;text-align:center;border-top:1px solid var(--rule)}
.content-block:nth-of-type(odd){background:var(--light)}
.eyebrow{
  display:table;
  margin:0 auto 12px;
  padding:0 12px;
  color:var(--blue);
  background:transparent;
  border-left:8px solid var(--yellow);
  border-right:8px solid var(--yellow);
  border-radius:0;
  font-size:14px;
  font-weight:900;
  letter-spacing:.04em;
}
.method-copy{border-top:8px solid var(--blue)}
.method-copy>p:not(.eyebrow){max-width:760px;margin:0 auto;text-align:left}
.flow ol{display:grid;gap:12px;max-width:780px;margin:30px auto 0;padding:0;list-style:none}
.flow li{
  display:flex;
  align-items:center;
  gap:18px;
  padding:18px;
  border:2px solid var(--blue);
  border-radius:0;
  background:#fff;
  text-align:left;
}
.flow li>span{
  display:grid;
  flex:0 0 62px;
  height:62px;
  place-items:center;
  color:var(--yellow);
  background:var(--navy);
  font-size:27px;
  font-weight:900;
}
.flow strong{display:block;color:var(--navy);font-size:20px}
.flow p{margin:2px 0 0}
.staff-bios{display:grid;grid-template-columns:1fr 1fr;gap:18px;background:var(--light)}
.staff-bios article{padding:25px;border:2px solid var(--blue);border-top-width:8px;background:#fff;text-align:left}
.staff-bios h3{margin:0 0 8px;color:var(--navy);font-size:23px}
.staff-bios p{margin:0}
.faq details{max-width:830px;margin:10px auto;border:2px solid var(--blue);border-radius:0;background:#fff;text-align:left}
.faq summary{
  position:relative;
  padding:16px 54px 16px 56px;
  cursor:pointer;
  list-style:none;
  color:var(--navy);
  font-weight:900;
}
.faq summary::before{
  content:"Q";
  position:absolute;
  left:14px;
  top:13px;
  display:grid;
  width:30px;
  height:30px;
  place-items:center;
  color:var(--yellow);
  background:var(--navy);
}
.faq summary::after{content:"＋";position:absolute;right:17px;color:var(--orange);font-size:22px}
.faq details[open] summary::after{content:"−"}
.faq details p{margin:0;padding:0 26px 18px 56px}
.access{background:#fff;border-top:8px solid var(--blue)}
.access-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:26px;max-width:900px;margin:28px auto;text-align:left}
.access dl{margin:0}
.access dt{color:var(--blue);font-weight:900}
.access dd{margin:0 0 12px}
.access a{color:var(--navy);font-weight:900}
.access iframe{width:100%;min-height:350px;border:2px solid var(--blue)}
.tel-link{display:inline-block;margin-top:20px;color:var(--navy);font-size:clamp(18px,3vw,25px);font-weight:900}

footer{padding:34px 24px 95px;color:#fff;background:var(--navy);text-align:center;font-size:13px}
footer p{margin:5px 0}
footer a{color:#fff}
.foot-note{opacity:.85}
.fixed-cta{
  position:fixed;
  z-index:100;
  left:0;
  right:0;
  bottom:0;
  display:flex;
  justify-content:center;
  gap:8px;
  min-height:66px;
  padding:7px 12px;
  background:var(--yellow);
  border-top:2px solid #d4ad00;
}
.fixed-cta a{
  display:flex;
  width:min(42vw,360px);
  min-height:48px;
  align-items:center;
  justify-content:center;
  border-radius:5px;
  color:#fff;
  text-decoration:none;
  font-size:16px;
  font-weight:900;
  box-shadow:0 3px 0 rgba(0,0,0,.22);
}
.fixed-line{background:var(--line)}
.fixed-web{background:#1676bd}

@media(max-width:640px){
  .site-head{min-height:56px;padding:7px 13px;border-bottom-width:4px}
  .brand{gap:10px}
  .brand img{width:138px}
  .brand span{padding-left:10px;font-size:13px}
  .split-visual{display:grid;grid-template-columns:1fr}
  .cta-block,.campaign-card,.content-block{padding:34px 16px}
  .btn{min-height:58px;padding:12px 42px 12px 14px;font-size:18px}
  .btn::after{right:14px}
  .cta-pair{grid-template-columns:1fr;gap:10px}
  .campaign-card ul{display:grid}
  .staff-bios{grid-template-columns:1fr}
  .access-grid{grid-template-columns:1fr}
  .access iframe{min-height:280px}
  .availability strong{font-size:14px}
  .offer-mini{gap:7px}
  .flow li{gap:12px;padding:14px}
  .flow li>span{flex-basis:48px;height:48px;font-size:22px}
  .flow strong{font-size:17px}
  .faq summary{padding-right:42px}
  .disclaimer{padding-bottom:24px}
  .fixed-cta{min-height:62px;padding:7px}
  .fixed-cta a{width:50%;min-height:46px;font-size:14px}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
