*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#fffefa;color:#0b281c;font-family:"Yu Mincho","Hiragino Mincho ProN",serif}
main{max-width:1672px;margin:auto}
.visual{position:relative;overflow:hidden}
.visual picture,.visual img{display:block;width:100%;height:auto}
.hotspot{position:absolute;display:block;border-radius:999px}
.hotspot:focus-visible{outline:4px solid #f4bf53;outline-offset:4px}
.hero .hotspot{left:3.5%;top:72.1%;width:29.2%;height:10.5%}
.schedule .hotspot{left:20.3%;top:85.45%;width:59.4%;height:8.9%;border-radius:4px}
.final .hotspot{left:3.8%;top:61.9%;width:48%;height:12.6%}
.contact-band{position:absolute;left:0;right:0;bottom:0;height:14%;display:flex;flex-direction:column;justify-content:center;gap:.45em;padding:0 4%;background:linear-gradient(90deg,#001d13,#00281a);color:#fff;font-size:clamp(13px,1.65vw,26px);line-height:1.3;letter-spacing:.03em}
.contact-band span+span{font-size:.78em}
.contact-band a{color:inherit;text-decoration:none;font-size:.78em}
.contact-band .contact-phone{font-size:.78em}
.contact-band .contact-phone a{font-size:1em}
.contact-band a:focus-visible{outline:3px solid #f4bf53;outline-offset:3px}
.content-section{padding:clamp(48px,6vw,96px) clamp(22px,5vw,84px);background:#fffefa}
.content-section.alt{background:#f4f6ed}
.section-inner{max-width:1200px;margin:auto}
.eyebrow{display:block;margin:0 0 12px;color:#a67b2a;letter-spacing:.27em;text-align:center;font:600 1rem Georgia,serif}
.content-section h2{margin:0 0 24px;text-align:center;font-size:clamp(2.3rem,4.6vw,4.6rem);line-height:1.32}
.heading-chunk{display:inline-block;white-space:nowrap}
.section-lead{max-width:800px;margin:0 auto 38px;text-align:center;font-size:clamp(1rem,1.8vw,1.3rem);line-height:1.9}
.media-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:clamp(24px,4vw,64px);align-items:stretch}
.media-grid.single{grid-template-columns:1fr}
.product-placeholder,.media-frame{min-height:320px;border:1px solid #b59a5d;background:linear-gradient(145deg,#173d2b,#062b1e);color:#fff;display:grid;place-items:center;text-align:center;overflow:hidden}
.product-placeholder{height:clamp(360px,40vw,580px);background:#fff}
.product-placeholder:has(img){display:block}
.product-placeholder img{display:block;width:100%;height:100%;object-fit:contain;background:#fff}
.media-frame{aspect-ratio:16/9;min-height:0}
.media-frame iframe,.media-frame video{display:block;width:100%;height:100%;border:0;background:#082c20}
.placeholder-text{padding:24px;line-height:1.8;font-size:clamp(1.05rem,2vw,1.35rem)}
.media-caption{margin:14px 0 0;color:#4f6657;font-size:.95rem;line-height:1.7}
@media(min-width:901px){
  .media-grid:not(.single){grid-template-columns:1fr 1fr;align-items:start}
  .media-grid:not(.single) .product-placeholder,.media-grid:not(.single) .media-frame{height:auto;aspect-ratio:16/10}
}
@media(min-width:701px) and (max-width:900px){
  .media-grid:not(.single){grid-template-columns:1fr}
  .media-grid:not(.single) .product-placeholder{height:420px}
}
.policy-footer{padding:28px 22px;text-align:center;background:#082f20;color:#fff;font-family:"Yu Gothic",sans-serif;font-size:.9rem;line-height:2}
.policy-footer a{color:#fff;text-underline-offset:.2em}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:700px){
  .hero .hotspot{left:8.6%;top:84.2%;width:83%;height:7.1%}
  .schedule .hotspot{left:11.8%;top:90%;width:76.4%;height:4.65%}
  .final .hotspot{left:6.8%;top:77.7%;width:86.4%;height:7.8%}
  .contact-band{height:10%;align-items:center;text-align:center;gap:.2em;padding:0 5%;background:#002017;font-size:clamp(12px,3.5vw,15px);line-height:1.3}
  .contact-band span+span{font-size:.82em}
  .contact-band a{font-size:.9em}
  .contact-band .contact-phone{font-size:.9em}
  .media-grid{grid-template-columns:1fr}
  .product-placeholder{min-height:280px}
  .content-section{padding:56px 20px}
}
@media(max-width:460px){
  #product-title,#program-title{font-size:clamp(1.9rem,8vw,2.3rem)}
}
