@font-face { font-family:"Noto Sans JP"; font-style:normal; font-weight:400; font-display:swap; src:url("../assets/fonts/noto-sans-jp-400.ttf") format("truetype"); }
@font-face { font-family:"Noto Sans JP"; font-style:normal; font-weight:700; font-display:swap; src:url("../assets/fonts/noto-sans-jp-700.ttf") format("truetype"); }
:root { color-scheme: light; font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif; color: #fff; background: #fff; }
* { box-sizing: border-box; }
body { margin: 0; color: #1d1d1d; background: #fff; }
.site-header { position: relative; z-index: 10; display: flex; width: 100%; min-height: 174px; align-items: flex-start; gap: 2rem; padding: 50px 50px 21px; background: #029c3e url('../assets/brand/header-bg.webp') left top repeat; }
.brand { display: block; width: 500px; max-width: 42vw; }
.brand img { display: block; width: 100%; height: auto; }
.site-nav { display: flex; align-items: center; gap: clamp(1rem, 2.5vw, 2.5rem); margin-top: 14px; margin-left: auto; color: #fff; font-size: .9rem; font-weight: 700; letter-spacing: .05em; text-shadow: 0 1px 5px #00391d99; }
.site-nav a { color: inherit; text-decoration: none; }
.site-nav > a:not(.reservation) { position: relative; padding: .55rem 0 .7rem; opacity: .9; transition: opacity .2s ease, color .2s ease; }
.site-nav > a:not(.reservation):hover, .site-nav > a:not(.reservation):focus-visible { opacity: 1; color: #fff; }
.site-nav > a[aria-current="page"] { opacity: 1; color: #fff; }
.site-nav > a[aria-current="page"]::after { position: absolute; right: 0; bottom: 0; left: 0; height: 1px; border-radius: 99px; background: #ffe05a; content: ""; }
.site-nav .reservation, .hero-cta { border: 0; border-radius: .35rem; padding: .9rem 1.2rem; background: linear-gradient(110deg, #f6a128, #c92737); color: #fff; box-shadow: 0 5px 14px #005d2480; }
.menu-toggle { display: none; }
.hero { position: relative; isolation: isolate; display: block; min-height: min(726px, calc(100svh - 174px)); overflow: hidden; }
.hero-slides { position: absolute; z-index: 0; inset: 0; }
.hero-shade { position: absolute; z-index: 1; inset: 0; }
.hero-slide { position: absolute; inset: 0; opacity: 0; overflow: hidden; }
.hero-slide img { display: block; width: 100%; height: 100%; object-fit: cover; }
.hero-slide.is-active { z-index: 2; opacity: 1; animation: hero-fade-in 1s ease-in both; }
.hero-slide.is-active img { animation: hero-arrive 1s ease-in both, hero-drift 5s 1s linear forwards; }
.hero-slide.is-leaving { z-index: 1; opacity: 1; animation: hero-fade-out 1s ease-in both; }
.hero-slide.is-leaving img { animation: hero-depart 1s ease-in both; }
.hero-shade { background: transparent; }
.hero-content { position: relative; z-index: 2; width: 100%; padding: 410px 50px 50px; color: #fff; text-shadow: 0 2px 16px #0009; }
.eyebrow { margin: 0 0 .7rem; font-weight: 700; letter-spacing: .16em; }
h1 { margin: 0; font-size: clamp(3rem, 5vw, 5rem); font-weight: 800; line-height: 1.35; letter-spacing: .08em; }
h1 span { padding-left: .5em; }
.hero-cta { display: inline-block; margin-top: 5.75rem; color: #fff; font-weight: 700; line-height: 1.35; text-align: center; text-decoration: none; text-shadow: none; transition: filter .2s; }
.hero-cta:hover, .hero-cta:focus-visible { color: #fff; filter: brightness(1.12); }
.image-cta { display: inline-block; padding: 0 !important; border: 0 !important; background: transparent !important; box-shadow: none !important; line-height: 0; }
.image-cta img { display: block; width: 223px; max-width: 100%; height: auto; }
.mobile-booking { display: none; }
.intro { margin: 0; padding: 5rem max(1.25rem, calc((100% - 1100px) / 2)); color: #1d1d1d; background: #fff; }
.intro:nth-of-type(even) { background: #f4f4f4; }
.intro h2 { margin-top: 0; }
.home-social { display:grid; justify-items:center; gap:3rem; padding:4rem 1.25rem 2rem; background:#fff; }
.home-video { display:block; width:400px; max-width:100%; height:600px; border:0; }
.home-instagram { display:block; line-height:0; }.home-instagram img{display:block;width:753px;max-width:100%;height:auto}
.home-calendar { display: grid; padding: 3rem 1.25rem 4rem; place-items: center; background: #fff; }
.home-calendar h2{max-width:1100px;margin:0 0 2rem;color:#111;font-size:1.15rem;line-height:1.7;text-align:center}.home-calendar img { display: block; width:800px; max-width:100%; height: auto; }
.home-notice { max-width:1100px; margin:0 auto; padding:5.25rem 1.25rem 4rem; color:#1d1d1d; }
.home-notice h2 { display:inline; margin:0 1rem 0 0; color:#00843d; font-size:2.6rem;letter-spacing:.06em }.home-notice h2::after{content:' /　NEWS';color:#111;font-size:.82rem;font-weight:400;letter-spacing:.08em}.home-notice p{margin:1rem 0 0;font-size:1.25rem;font-weight:700;line-height:1.8}.home-notice p:first-of-type{margin-top:5.5rem}.home-notice a{color:#0645ad}
.home-feature-lead { padding:5.25rem 1.875rem; color:#fff; background:#029c3e url('../assets/brand/header-bg.webp') center / cover no-repeat; }
.home-feature-lead > div { max-width:1170px; margin:0 auto; }
.home-feature-lead img { display:block; width:min(627px,100%); height:auto; }
.home-feature-lead h2 { margin:3rem 0 2.2rem; font-size:clamp(1.7rem,3vw,2.7rem);line-height:1.85; }
.home-feature-lead p { margin:0; font-size:1.15rem;line-height:1.9;font-weight:700; }
.home-features, .home-guide, .home-faq { max-width: 1160px; margin: 0 auto; padding: 5rem 1.25rem; color: #1d1d1d; }
.home-features > h2, .home-guide > h2, .home-faq h2 { color: #00843d; font-size: clamp(1.6rem, 2.4vw, 2.3rem); }
.home-features article { display: grid; grid-template-columns: 41.67% minmax(0, 1fr); align-items: center; gap: 1.5rem; margin-top: 4.5rem; }
.home-features .feature-number { display: block; width: auto; max-width: 160px; height: 74px; margin-bottom: 1.6rem; aspect-ratio: auto; object-fit: contain; object-position: left center; }
.home-features h3 { margin: 0 0 1.7rem; color: #111; font-size:1.55rem; font-weight:700; line-height:1.5; }
.home-features p { margin:0; font-size:1rem; line-height:1.95; letter-spacing:-.01em; }
.home-guide p, .home-faq p { line-height: 1.9; }
.home-features > article > img { width: 100%; height: auto; aspect-ratio: auto; object-fit: contain; }
.home-guide { width:100%; max-width:none; margin:0; padding:0 0 120px; }
.usage-title-sp{display:none}
.home-guide > h2{grid-column:1/-1;margin:0 0 3.25rem;color:#00843d;font-size:2.6rem;letter-spacing:.08em;text-align:center}.home-guide > h2 .usage-title-pc,.home-guide > h2 .usage-title-sp{color:#00843d}.home-guide h3 { margin:0 0 1.5rem; color:#006036; font-size:clamp(1rem,1.15vw,1.25rem); white-space:nowrap; }.home-guide img{display:block;width:80%;height:auto;margin:0 auto;object-fit:contain}.home-guide p{font-size:1.12rem;line-height:1.9}.home-guide span{color:#c00}
.no-break{white-space:nowrap}.home-usage{max-width:1100px;margin:0 auto;padding:6rem 1.25rem;color:#1d1d1d}.home-usage .section-title{display:flex;align-items:baseline;gap:1.1rem}.home-usage header h2,.home-usage>h3{margin:0;color:#00843d}.home-usage header h2{font-size:2.45rem;letter-spacing:.06em}.home-usage .section-title p{margin:0;font-size:.82rem;letter-spacing:.08em}.home-usage header ul{margin:5.5rem 0 0;padding-left:1.35em;font-size:1.25rem;font-weight:700;line-height:1.85}.home-usage header li+li{margin-top:.45rem}.home-usage>h3{text-align:center;font-size:2.6rem;letter-spacing:.08em;margin:7rem 0 3.25rem}.home-usage>div{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));width:90%;max-width:none;margin:0 auto;padding:30px;gap:2%}.home-usage h4{color:#006036;margin:0 0 2rem;font-size:1.25rem}.home-usage img{display:block;width:80%;max-width:100%;height:auto;margin:0 auto;object-fit:contain}.home-usage p{font-size:1.12rem;line-height:1.9}
.home-faq { max-width:1150px; }.home-faq header{display:flex;align-items:baseline;gap:1rem;margin-bottom:6rem}.home-faq h2{color:#00843d;font-size:2.45rem;letter-spacing:.06em}.home-faq header p{margin:0;font-size:.82rem;letter-spacing:.08em}.faq-list{padding:0;color:#fff;background:#222}.faq-list details{border:0;background:#222}.faq-list summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:9px 12px 8px;cursor:pointer;color:#fff;background:#222;font-weight:700;line-height:1.7;transition:background-color .2s ease}.faq-list summary:hover,.faq-list details[open]>summary{color:#fff;background:#164db9}.faq-list summary:focus-visible{color:#fff;background:#164db9;outline:3px solid #fff;outline-offset:-3px}.faq-list summary::marker,.faq-list summary::-webkit-details-marker{display:none}.faq-list summary::after{content:"＋";flex:0 0 auto;font-size:1.15em;font-weight:400;line-height:1}.faq-list details[open]>summary::after{content:"−"}.faq-list details p{margin:0;padding:24px 12px 16px;color:#222;background:#e0e0e0;font-size:1.1rem;font-weight:700;line-height:1.9}.faq-list details[open] .staff-calendar{padding:0 12px 16px;background:#e0e0e0}
/* 原本 FAQ 見出し bk25107 のPC余白。 */
@media (min-width:761px) { .home-faq { max-width:none; margin:0; padding:0; } .home-faq header { box-sizing:border-box; width:1170px; max-width:100%; margin:0 auto; padding:85px 30px 60px; } }
@media (min-width:761px) { .home-faq .faq-list { box-sizing:border-box; width:1170px; max-width:100%; margin:0 auto; padding:0 30px; background:transparent; } }
/* 原本 FAQ 見出し bk25107 のSP余白。 */
@media (max-width:760px) { .home-faq { width:100%; max-width:none; margin:0; padding:0; } .home-faq header { box-sizing:border-box; width:100%; margin:0; padding:55px 20px 20px; } }
.site-footer{padding:4rem 1.25rem 2rem;text-align:center;color:#666}.site-footer nav{display:flex;flex-wrap:wrap;justify-content:center;gap:0}.site-footer a{padding:0 1.5rem;border-right:1px solid #aaa;color:inherit;font-size:.75rem;text-decoration:none}.site-footer p{font-size:.65rem}
/* 原本フッター bk23911（メニュー）／bk23920（コピーライト）の個別余白。 */
@media (min-width:761px){.site-footer{padding:0}.site-footer nav{box-sizing:border-box;width:1170px;max-width:100%;margin:0 auto;padding:50px 30px 30px}.site-footer p{box-sizing:border-box;width:1170px;max-width:100%;margin:0 auto;padding:0 30px 50px}}
@media (max-width:760px){.site-footer{padding:0}.site-footer nav{padding:80px 15px 30px}.site-footer p{margin:0;padding:15px 15px 50px}}
.staff-calendar{padding:3rem 1rem 2rem;text-align:center;background:#ddd}.staff-calendar img{display:inline-block;width:784px;max-width:100%;height:auto}
.home-compare{width:78%;max-width:1180px;margin:0 auto;padding:4rem 0;color:#333;text-align:center}.home-compare h2{margin:0 0 .5rem;color:#1a5c36;font-size:1.5rem}.home-compare p{line-height:1.6}.home-compare>div{overflow-x:auto;box-shadow:0 2px 8px #0000000d}.home-compare table{width:100%;min-width:760px;border-collapse:collapse;background:#fff}.home-compare th,.home-compare td{padding:16px 12px;border:1px solid #ddd;font-size:.875rem;line-height:1.6;text-align:center;vertical-align:middle}.home-compare thead th{background:#f5f5f5}.home-compare thead th:last-child{background:#1a5c36;color:#fff}.home-compare tbody td:last-child{color:#1a5c36;background:#f0f8f3;font-weight:700}.home-compare small{display:block;margin-top:4px;color:#777;font-size:.75rem;font-weight:400}.home-compare tbody td:last-child small{color:#2e7d4c}.home-compare strong{display:block;font-size:1rem}
.home-access{max-width:1170px;margin:0 auto;padding:5rem 1.25rem}.home-access header{display:flex;align-items:baseline;gap:1rem;margin-bottom:3rem}.home-access h2{margin:0;color:#00843d;font-size:2.3rem}.home-access header p{margin:0}.access-info{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center}.access-info img{display:block;width:100%;height:auto}.access-info p{margin:0;font-size:1rem;font-weight:700;line-height:1.9}.access-map{display:block;width:100%;height:450px;margin-top:3rem;border:0}
/* 原本 bk25145–bk25147: 見出しは1170px、2列本文と地図は親幅90%。 */
@media (min-width:761px){.home-access{max-width:none;margin:0;padding:0}.home-access header{box-sizing:border-box;width:1170px;max-width:100%;margin:0 auto;padding:85px 30px 60px}.home-access .access-info,.home-access .access-map{box-sizing:border-box;width:90%;max-width:none;margin-right:auto;margin-left:auto}.home-access .access-map{margin-top:0}}
@media (max-width:760px){.home-social{padding:3rem 1.25rem}.home-video{width:min(400px,100%);height:600px}.home-calendar{padding-right:.9375rem;padding-left:.9375rem}.home-calendar h2{font-size:1rem;text-align:left}.home-feature-lead{padding:3.5rem 1.25rem}.home-faq header,.home-access header{margin-bottom:3rem}.staff-calendar img{width:100%}.home-compare{width:auto;padding:3rem 1.25rem}.usage-title-pc{display:none}.usage-title-sp{display:inline}.home-usage .section-title{gap:.6rem}.home-usage header h2{font-size:clamp(1.8rem,9vw,2.45rem);letter-spacing:.02em;white-space:nowrap}.home-usage .section-title p{flex:0 0 auto}.home-usage>div{grid-template-columns:1fr;justify-content:stretch;width:100%;padding:15px;gap:15px}.home-usage img{width:90%;height:auto}.home-guide{grid-template-columns:1fr;width:100%;padding:15px 15px 150px;gap:15px}.home-guide>h2{margin-bottom:1.5rem}.home-guide h3{white-space:normal}.home-guide img{width:90%;height:auto;max-height:none}.home-guide p{font-size:1.12rem;line-height:1.9}.home-features{padding-right:.9375rem;padding-left:.9375rem}.access-info{grid-template-columns:1fr;gap:1.5rem}.access-map{height:320px}}
.page-hero { display: grid; min-height: 330px; padding: 3rem max(1.25rem, calc((100% - 1100px) / 2)); background: linear-gradient(90deg, #000a, #0002), var(--page-image) center / cover; place-items: center start; }
.source-photo-hero { min-height: min(36vw, 455px); padding: 0; overflow: hidden; background: none; }
.source-photo-hero > img { display: block; width: 100%; height: 100%; min-height: inherit; object-fit: cover; }
.facility-photo-hero { min-height: 0; }
.facility-photo-hero > img { height: auto; min-height: 0; }
.page-hero p, .section-kicker { margin: 0 0 .75rem; font-size: .82rem; font-weight: 800; letter-spacing: .15em; }
.page-hero h1 { font-size: clamp(2.5rem, 5vw, 4.5rem); }
.page-lead { max-width: 860px; margin: 0 auto; padding: 5rem 1.25rem; color: #1d1d1d; text-align: center; }
.page-lead .section-kicker { color: #00843d; }
.page-lead h2, .feature-grid h2 { margin: 0 0 1.2rem; font-size: clamp(1.7rem, 3vw, 2.4rem); }
.page-lead p:last-child { margin: 0; line-height: 2; }
.feature-grid { display: grid; max-width: 1100px; margin: 0 auto; padding: 0 1.25rem 5rem; gap: 3rem; color: #1d1d1d; }
.feature-grid article { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: clamp(1.5rem, 5vw, 5rem); }
.feature-grid article:nth-child(even) img { order: 2; }
.feature-grid img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.feature-grid p { margin: 0; line-height: 1.9; }
.guide-feature-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: 936px; gap: 2rem; }
.guide-feature-grid article { display: flex; flex-direction: column; align-items: stretch; gap: 1rem; }
.guide-feature-grid article div { order: 1; }
.guide-feature-grid article img, .guide-feature-grid article:nth-child(even) img { order: 2; aspect-ratio: auto; object-fit: contain; }
.source-title-band { min-height: 270px; padding: 5.2rem 1.25rem 3rem; color: #222; background: #f0f1f7; text-align: center; }
.source-title-band h1 { font-size: clamp(2rem, 3.2vw, 3.5rem); letter-spacing: .05em; }
.source-title-band p { margin: 1rem 0 0; font-size: .85rem; font-weight: 700; }
.source-title-band a { color: inherit; }
.source-white-gap { height: 5.5rem; }
.guide-intro { padding: 3rem 1.25rem 4rem; color: #fff; background: #029c3e url('../assets/brand/header-bg.webp') center / cover no-repeat; }
.guide-intro > div { max-width: 860px; margin: 0 auto; }
.guide-intro h2 { margin: 0 0 1.75rem; font-size: clamp(1.8rem, 3vw, 3rem); letter-spacing: .05em; }
.guide-intro p { margin: 0; font-size: clamp(.95rem, 1.3vw, 1.2rem); font-weight: 700; line-height: 2.05; }
.guide-section-heading { max-width: 860px; margin: 0 auto; padding: 10rem 1.25rem 5rem; color: #202020; }
.guide-section-heading h2 { display: flex; align-items: center; gap: 1.25rem; margin: 0; font-size: clamp(2rem, 3.4vw, 3.35rem); letter-spacing: .06em; }
.guide-section-heading h2 span { width: 2.75rem; height: 2.75rem; background: linear-gradient(135deg, #159d97, #f0e842); }
.guide-feature-grid { padding-bottom: 9rem; }
.guide-feature-grid h2 { color: #006036; font-size: clamp(1.35rem, 1.8vw, 1.75rem); }
.guide-feature-grid p { font-weight: 600; line-height: 2.05; }
@media (min-width: 761px) {
  .guide-feature-grid { max-width: 1240px; gap: 2rem; }
  .guide-feature-grid h2 { white-space: nowrap; }
}
.guide-ticket-usage { padding: 4rem 1.25rem 7rem; color: #1d1d1d; }
.guide-ticket-usage > header, .guide-ticket-usage__content { width: min(1170px, 100%); margin: 0 auto; }
.guide-ticket-usage > header { padding-bottom: 3rem; }
.guide-ticket-usage h2 { display: flex; align-items: center; gap: 1.25rem; margin: 0; font-size: clamp(2rem, 3.4vw, 3.35rem); line-height: 1.5; letter-spacing: .06em; }
.guide-ticket-usage h2 img { display: block; flex: 0 0 auto; width: 45px; height: 62px; object-fit: contain; }
.guide-ticket-usage__content { display: grid; gap: 3.5rem; }
.guide-ticket-usage__content > p { margin: 0; font-size: clamp(.95rem, 1.35vw, 1.2rem); font-weight: 700; line-height: 2.05; text-align: left; }
.guide-ticket-usage__diagram { display: block; width: 100%; height: auto; margin: 0 auto; object-fit: contain; }
.guide-ticket-usage__note { display: flex; align-items: flex-start; gap: .65rem; }
.guide-ticket-usage__note img { display: block; flex: 0 0 auto; width: 28px; height: 39px; margin-top: .1em; object-fit: contain; }
.facility-lead { padding: 3rem 1.25rem 3.5rem; color: #fff; background: #029c3e url('../assets/brand/header-bg.webp') center / cover no-repeat; }
.facility-lead > div { max-width: 860px; margin: 0 auto; }
.facility-lead h2 { margin: 0 0 1.6rem; font-size: clamp(1.7rem, 2.6vw, 2.6rem); }
.facility-lead p { margin: 0; font-size: .96rem; font-weight: 700; line-height: 1.95; }
@media (min-width: 761px) {
  .facility-lead { padding: 5rem 30px 5.625rem; }
  .facility-lead > div { max-width: 1170px; }
  .facility-lead h2 { margin-bottom: 1.875rem; font-size: 45px; line-height: 1.25; }
  .facility-lead p { font-size: 18px; line-height: 1.9; }
}
.facility-heading { max-width: 1100px; margin: 0 auto; padding: 8rem 1.25rem 3rem; color: #202020; }
.facility-heading h2 { display: flex; align-items: center; gap: 1.25rem; margin: 0; font-size: clamp(1.6rem, 2.25vw, 2.35rem); white-space: nowrap; }
.facility-heading span { width: 2.2rem; height: 2.2rem; background: linear-gradient(135deg, #159d97, #f0e842); }
.facility-feature-grid { max-width: 1100px; gap: 4.5rem; }
.facility-feature-grid article { grid-template-columns: 48% 1fr; gap: 3rem; }
.facility-feature-grid article img, .facility-feature-grid article:nth-child(even) img { order: 0; }
.facility-feature-grid article div { order: 1; }
.facility-feature-grid img { aspect-ratio: 1.22 / 1; }
.facility-feature-grid h2 { color: #006036; font-size: clamp(1.3rem, 2vw, 1.8rem); }
.facility-feature-grid p { font-size: .95rem; font-weight: 600; line-height: 1.9; }
@media (min-width: 761px) {
  .facility-heading { max-width: 1170px; padding: 85px 30px 60px; }
  .facility-heading h2 { font-size: 45px; line-height: 1.5; }
  .facility-heading span { width: 45px; height: 45px; flex: 0 0 45px; }
  .facility-feature-grid { max-width: 1170px; gap: 60px; }
  .facility-feature-grid article > div { align-self: start; }
  .facility-feature-grid h2 { margin: 0 0 25px; font-size: 38px; line-height: 1.6; }
  .facility-feature-grid p { font-size: 14px; line-height: 2; }
}
.price-content { max-width: 980px; margin: 0 auto; padding: 0 1.25rem 5rem; color: #1d1d1d; text-align: center; }
.price-lead { padding: 3rem 1.25rem; color: #fff; background: #029c3e url('../assets/brand/header-bg.webp') center / cover no-repeat; }
.price-lead > div { max-width: 860px; margin: 0 auto; }
.price-lead h2 { margin: 0 0 1.5rem; font-size: clamp(1.7rem, 2.6vw, 2.6rem); }
.price-lead p { margin: 0; font-size: .96rem; font-weight: 700; line-height: 1.95; }
.source-section-title { display: flex; align-items: center; gap: .75rem; padding-top: 4.5rem; color: #202020 !important; font-size: clamp(1.6rem, 2.5vw, 2.5rem) !important; text-align: left; }
.source-section-title span { width: 1.6rem; height: 1.6rem; background: linear-gradient(135deg, #159d97, #f0e842); }
.price-content h2 { margin: 4rem 0 1rem; color: #006036; font-size: clamp(1.7rem, 3vw, 2.4rem); }
.price-content > p:not(.price-note) { max-width: 720px; margin: 0 auto 2rem; line-height: 1.9; }
.price-wide-image { display: block; width: 100%; margin: 2rem auto; }
.price-image-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; gap: 1.25rem; }
.price-image-grid img { width: 100%; border: 1px solid #ddd; }
.package-plan-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; margin: 0 0 2rem; }
.package-plan-grid img { display: block; width: 100%; border-radius: 6px; }
.price-note { margin: 2rem auto 0; color: #555; font-size: .9rem; line-height: 1.8; }
.simple-title { padding: 4.5rem 1.25rem 3.5rem; color: #1d1d1d; background: #fff; text-align: center; }
.simple-title p { margin: 0 0 .75rem; color: #00843d; font-size: .82rem; font-weight: 800; letter-spacing: .15em; }
.simple-title h1 { margin: 0; font-size: clamp(2.25rem, 5vw, 4rem); }
.simple-title nav { margin-top: 1rem; font-size: .9rem; }
.simple-title a { color: inherit; }
.external-form-placeholder { display: grid; width: min(80%, 920px); min-height: 700px; margin: 0 auto 5rem; padding: 2rem; place-items: center; color: #555; border: 1px solid #ddd; background: #fafafa; text-align: center; }
.external-form-placeholder p { margin: 0 0 .75rem; color: #1d1d1d; font-size: 1.25rem; font-weight: 700; }
.contact-form-frame { width: min(80%, 920px); margin: 0 auto 5rem; }
.contact-form-frame iframe { display: block; width: 100%; height: 700px; border: 0; background: transparent; }
.entry-placeholder { min-height: 1100px; }
@media (max-width:760px) { .home-guide.home-guide { width:100%; padding:15px 15px 150px; } }
@keyframes hero-fade-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes hero-fade-out { from { opacity: 1; } to { opacity: 0; } }
@keyframes hero-arrive { from { opacity: 0; transform: scale(1.4) rotate(-10deg); } to { opacity: 1; transform: scale(1) rotate(0); } }
@keyframes hero-depart { from { transform: scale(1) rotate(0); } to { transform: scale(1.4) rotate(10deg); } }
@keyframes hero-drift { from { transform: scale(1) rotate(0); } to { transform: scale(1.12) rotate(3deg); } }
@media (prefers-reduced-motion: reduce) { .hero-slide, .hero-slide img { animation: none; } }
/* 現行「ご利用の流れ」の実測値に合わせる（PC: 列290.5px/画像232.4px、SP: 列360px/画像324px）。 */
.home-usage { max-width:1440px; }
.usage-initial-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); width:90%; max-width:none; margin:0 auto; padding:30px; gap:2%; }
.usage-second-cards { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); width:90%; max-width:none; margin:0 auto; padding:30px; gap:2%; }
.usage-initial-cards h4 { margin:0 0 30px; color:#006030; font-size:20px; line-height:30px; }
.usage-second-cards h3 { margin:0; color:#006030; font-size:20px; line-height:30px; }
.usage-media { text-align:center; }
.usage-media img { display:inline-block; width:80%; height:auto; object-fit:contain; vertical-align:top; }
.home-usage .usage-body, .home-guide .usage-body { margin:-1em 0 0 2em; color:#232323; font-size:13px; line-height:26px; }
.usage-body-large { font-size:160%; line-height:1.6; }
.usage-inline { display:inherit; }
.usage-green { color:#006030; }
.usage-no-orphan { white-space:nowrap; }
.usage-green-second { color:#006036; }
.usage-red { color:#cc0000; }
.usage-red-bright { color:#ff0000; }
.usage-black { color:#000000; }
.usage-initial-cards h4::first-letter, .usage-second-cards h3::first-letter { font-size:1.5em; text-shadow:2px 2px 0 rgba(255,62,144,.8); }
.home-guide .usage-second-cards { color:#1d1d1d; }
.home-guide .usage-second-cards span { color:inherit; }
.home-guide .usage-second-cards span.usage-green-second { color:#006036; }
.home-guide .usage-second-cards span.usage-red { color:#cc0000; }
.home-guide .usage-second-cards span.usage-red-bright { color:#ff0000; }
.home-guide .usage-second-cards span.usage-black { color:#000000; }
@media (max-width:760px) {
  .home-usage { padding:60px 0 15px; }
  .home-usage header, .home-usage > h3 { margin-right:20px; margin-left:20px; }
  .home-usage > div { width:100%; padding:15px; }
  .home-usage img, .home-guide img { width:90%; }
  .home-guide { width:100%; padding:15px 15px 150px; }
  .usage-initial-cards, .usage-second-cards { grid-template-columns:1fr; width:100%; padding:30px 15px 15px; gap:15px; }
}

/* Top page: local visual repair — stable hero stacking and one readable rhythm. */
.home-features { padding-top: 4.5rem; padding-bottom: 4.5rem; }
.home-features article { margin-top: 3.25rem; }
.home-usage .section-title, .home-usage header ul, .home-usage > h3, .home-guide > h2, .usage-initial-cards, .home-guide .usage-second-cards { min-height: 0; }
.home-guide { padding-bottom: 5rem; }
.home-faq header { margin-bottom: 0; }
.home-access .access-map { margin-top: 2.5rem; }
@media (min-width:761px) {
  .home-usage .section-title { padding-top: 4.5rem; padding-bottom: 2.5rem; }
  .home-usage header ul { padding-top: 0; padding-bottom: 2.5rem; }
  .home-usage > h3, .home-guide > h2 { padding-top: 3.5rem; padding-bottom: 2.5rem; }
  .home-faq header { padding-top: 4.5rem; padding-bottom: 2.5rem; }
  .home-access .access-map { margin-top: 2.5rem; margin-bottom: 5rem; }
}
@media (max-width:760px) {
  .home-features { padding-top: 3.5rem; padding-bottom: 3.5rem; }
  .home-features article { margin-top: 2.5rem; }
  .home-guide { padding-bottom: 3.5rem !important; }
  .home-faq header { padding-top: 3.5rem; padding-bottom: 2rem; margin-bottom: 0; }
  .home-access .access-map { margin-top: 2.5rem; margin-bottom: 3.5rem; }
}
@media (min-width:761px) { .home-usage { padding-right:0; padding-left:0; } }
@media (max-width:760px) { .home-guide { width:100%; padding:15px 15px 150px; } }
/* Top page / How to use: source mobile blocks bk24549–bk24564. */
@media (max-width:760px) {
  .home-usage { width:100%; max-width:none; margin:0; padding:0; }
  .home-usage .section-title {
    box-sizing:border-box;
    width:100%; min-height:170px; margin:0; padding:55px 20px 20px;
  }
  .home-usage header ul {
    box-sizing:border-box;
    width:100%; min-height:408.5px; margin:0; padding:15px;
  }
  .home-usage > h3,
  .home-guide > h2 {
    box-sizing:border-box;
    width:100%; min-height:263.75px; margin:0; padding:60px 15px 15px;
  }
  .usage-initial-cards,
  .home-guide .usage-second-cards {
    box-sizing:border-box;
    width:100%; max-width:none; margin:0; padding:15px 15px 150px;
  }
  .usage-initial-cards { min-height:1352.390625px; }
  .home-guide .usage-second-cards { min-height:1813.921875px; }
}
/* Top page / How to use: source blocks bk24549–bk24564. */
@media (min-width: 761px) {
  .home-usage { max-width:none; margin:0; padding:0; }
  .home-usage .section-title {
    box-sizing:border-box;
    width:1170px;
    max-width:100%;
    margin:0 auto;
    padding:85px 30px 60px;
  }
  .home-usage header h2 { font-size:45px; line-height:67.5px; }
  .home-usage header ul {
    box-sizing:border-box;
    width:1170px;
    max-width:100%;
    margin:0 auto;
    padding:30px;
    font-size:18.2px;
    line-height:36.4px;
  }
  .home-usage > h3,
  .home-guide > h2 {
    box-sizing:border-box;
    width:1170px;
    max-width:100%;
    margin:0 auto;
    padding:100px 30px 50px;
    font-size:26.6px;
    line-height:39.9px;
  }
  /* 「初回」と「2回目」の見出しを同一の大きさにそろえる。 */
  .home-usage > h3 .usage-title-pc {
    font-family:"Josefin Sans", sans-serif;
    font-size:42.56px;
    font-weight:700;
    letter-spacing:6px;
    line-height:68.096px;
  }
  /* 原本 bk24563 の .d-larger_font / .d-bold（26.6px × 160%）。 */
  .home-guide > h2 .usage-title-pc {
    font-family:"Josefin Sans", sans-serif;
    font-size:42.56px;
    font-weight:700;
    letter-spacing:6px;
    line-height:68.096px;
  }
  .usage-initial-cards,
  .usage-second-cards { padding:30px 30px 120px; }
  /* 初回3項目は中央に保ちつつ、画面の余白を列幅と列間隔へ配分する。 */
  .home-usage { width:100%; max-width:none; }
  .home-usage > .usage-initial-cards {
    grid-template-columns:repeat(3,minmax(0,1fr));
    width:90%;
    max-width:1800px;
    margin-right:auto;
    margin-left:auto;
    padding:30px 0 120px;
    gap:clamp(40px,5vw,96px);
  }
  .home-guide .usage-second-cards { width:90%; grid-template-columns:repeat(4,minmax(0,1fr)); }
  .home-guide .usage-second-cards .usage-media img { width:80%; }
  .home-guide .usage-second-cards h3 { white-space:normal; }
  .usage-initial-cards h4,
  .usage-second-cards h3 {
    margin:0;
    padding-bottom:25px;
    color:rgb(8, 66, 175);
    font-size:20px;
    line-height:30px;
  }
  .usage-initial-cards h4::first-letter,
  .usage-second-cards h3::first-letter {
    font-size:30px;
    line-height:45px;
  }
  .home-guide .usage-second-cards .usage-step-heading {
    display:grid;
    grid-template-columns:1.75em minmax(0, 1fr);
    column-gap:.3em;
  }
  .home-guide .usage-second-cards .usage-step-number {
    color:rgb(8, 66, 175);
    font-size:30px;
    line-height:45px;
    text-shadow:2px 2px 0 rgba(255,62,144,.8);
  }
  .home-guide .usage-second-cards .usage-step-heading .usage-green-second {
    display:flex;
    flex-direction:column;
    align-items:flex-start;
  }
  .home-usage .usage-body,
  .home-guide .usage-body {
    width:80%;
    margin:-13px auto 0;
    font-size:13px;
    line-height:26px;
    text-wrap:balance;
  }
  /* 短い語尾だけを残さず、適度に前行から送って段落を整える。 */
  .usage-body-large {
    display:inline;
    max-width:none;
    font-size:20.8px;
    line-height:33.28px;
    font-weight:400;
    text-wrap:balance;
  }
  .home-usage .section-title { min-height:240px; }
  .home-usage header ul { min-height:201.9375px; }
  .home-usage > h3,
  .home-guide > h2 { min-height:218.09375px; }
  .usage-initial-cards { min-height:554.59375px; }
  /* 原本 bk24564 は内容高＋下余白120pxで終端するため、固定最小高は置かない。 */
  .usage-second-cards { min-height:0; }
  /* 予約イラストは素材内の余白が左側に偏るため、表示枠内だけで視覚中心を揃える。 */
  .home-guide .usage-second-cards article:nth-child(3) .usage-media {
    width:80%;
    margin:0 auto;
    overflow:hidden;
  }
  .home-guide .usage-second-cards article:nth-child(3) .usage-media img {
    display:block;
    width:100%;
    max-width:none;
    transform:translateX(-14%);
  }
  /* 3・4の案内は一文字だけの行末を避けるため、本文枠だけを約一文字分広げる。 */
  .home-guide .usage-second-cards article:nth-child(4) .usage-body {
    width:calc(80% + 1.1em);
  }
  .home-guide .usage-second-cards article:nth-child(3) .usage-body {
    width:calc(80% + 2.2em);
  }
}
/* 原本SPの 15px 左右余白を、後続の汎用 .home-guide 指定より優先する。 */
@media (max-width:760px) { .home-guide { width:100%; padding:15px 15px 150px; } }
@media (max-width: 760px) { .site-header { min-height: 136px; padding: 20px; } .brand { width: 500px; max-width: none; } .menu-toggle { display: block; margin-left: auto; border: 1px solid #fff; padding: .5rem; color: #fff; background: #0005; } .site-nav { position: absolute; top: 100%; right: 1rem; display: none; min-width: 200px; padding: 1rem; color: #fff; background: #111e; } .site-nav.is-open { display: grid; } .hero { min-height: 560px; } .hero-content { width: 100%; padding: 300px 20px 50px; } h1 { font-size: 2.1rem; } .hero-cta { margin-top: 5rem; } .mobile-booking { position: fixed; z-index: 20; right: 1rem; bottom: max(1rem, env(safe-area-inset-bottom)); display: block; box-shadow: 0 6px 18px #0006; text-decoration: none; } .mobile-booking.image-cta img { width: 178px; } .page-hero { min-height: 240px; } .page-lead { padding: 3.5rem 1.25rem; text-align: left; } .feature-grid { gap: 2.5rem; padding-bottom: 3.5rem; } .feature-grid article { grid-template-columns: 1fr; gap: 1.25rem; } .feature-grid article:nth-child(even) img { order: initial; } .source-title-band { min-height: 190px; padding-top: 3.5rem; } .source-white-gap { height: 3rem; } .guide-intro { padding: 2.5rem 1.25rem; } .guide-intro h2 { font-size: 1.5rem; } .guide-intro p { font-size: .92rem; } .guide-section-heading { padding: 5rem 1.25rem 3rem; } .guide-section-heading h2 { gap: .8rem; font-size: clamp(1.65rem, 8vw, 2.3rem); } .guide-feature-grid { grid-template-columns: 1fr; max-width: 420px; padding-bottom: 4rem; } .guide-feature-grid article img, .guide-feature-grid article:nth-child(even) img { order: 2; width: min(260px, 100%); margin: 0 auto; } .feature-grid h2 { margin-bottom: .75rem; } .price-content { padding-bottom: 3.5rem; } .price-image-grid { grid-template-columns: 1fr; gap: 1rem; max-width: 346px; margin: 0 auto; } .external-form-placeholder { width: calc(100% - 2.5rem); min-height: 700px; margin-bottom: 3.5rem; } .contact-form-frame { width: calc(100% - 2.5rem); margin-bottom: 3.5rem; } .entry-placeholder { min-height: 900px; } .home-features, .home-guide, .home-faq { padding: 3.5rem 1.25rem; } .home-features article { grid-template-columns: 1fr; gap: 1rem; } .home-features article img { max-width: 360px; } .home-guide > div { grid-template-columns: 1fr; max-width: 330px; margin-right: auto; margin-left: auto; } }
@media (max-width:760px) { .home-usage header { margin:0 !important; } .home-guide { padding:0 !important; } .home-guide > h2 { margin:0 !important; } }
/* 打ち放題プランのカードは、タブレット縦向きや半分幅ウィンドウでも3列を維持したいため、サイト全体の760pxではなく、真のスマホ幅600px以下でのみ縦積みに切り替える。 */
@media (max-width: 600px) { .package-plan-grid { grid-template-columns: 1fr; max-width: 346px; margin: 0 auto 2rem; } }
@media (max-width:760px) {
  /* 原本 bk26055 / bk26056 の .d-small_font と .d-bold。 */
  .home-usage > h3 .usage-title-sp,
  .home-guide > h2 .usage-title-sp {
    font-family:"Josefin Sans", sans-serif;
    font-size:53.482px;
    font-weight:700;
    letter-spacing:6px;
    line-height:80.223px;
  }
  .usage-second-cards h3 { padding-bottom:25px; }
  .home-guide .usage-second-cards { padding:30px 15px 150px; }
}

/* 料金体系: 原本のPC/SP料金表と注記をローカル資産のみで再構成する。 */
.price-content { max-width: 1170px; padding: 0 30px 5rem; text-align: left; }
.price-block { margin: 0; padding: 0 0 4rem; }
.price-content .source-section-title { padding-top: 85px; font-size: 45px; line-height: 1.5; }
.price-content .source-section-title span { width: 45px; height: 62px; flex: 0 0 45px; }
.price-wide-image { display: block; width: 100%; max-width: 1170px; margin: 0 auto 2rem; }
.price-system-sp, .member-plan-sp, .duration-sp { display: none; }
.price-notes { margin: 0; padding: 0; list-style: none; font-size: 18.2px; font-weight: 600; line-height: 2; text-align: left; }
.price-notes li::before { content: '・'; }
.price-notes-red { color: #c00; }
.price-subnote, .price-note { margin: 0 0 1.25rem; font-size: 18.2px; font-weight: 600; line-height: 2; text-align: left; }
.price-note-red { color: #c00; }
.price-notes mark, .price-note mark { background: #ffff00; }
.price-duration, .price-plan-name { display: flex; align-items: center; gap: .75rem; }
.price-duration::before, .price-plan-name::before { content: ""; display: block; width: 16px; height: 62px; flex: 0 0 16px; background: linear-gradient(180deg, #159d97, #f0e842); }
.price-duration { margin: 4rem 0 1.25rem; font-size: 34px; line-height: 1.5; }
.price-plan-name { margin: 3rem 0 1.5rem; font-size: 26px; line-height: 1.5; }
.price-comparison > img { display: block; width: auto; max-width: 100%; margin: 0 0 2rem; }
.price-comparison > .price-comparison-general { margin-right: auto; margin-left: auto; }
@media (min-width: 761px) {
  .price-lead { padding: 4.5rem 30px; }
  .price-lead > div { max-width: 70%; }
  .price-lead h2 { margin-bottom: 1.5rem; font-size: 42px; line-height: 63px; }
  .price-lead p { font-size: 23px; line-height: 41.4px; }
  .price-system-pc { width: 1170px; max-width: 100%; }
}
@media (max-width: 760px) {
  .price-content { padding-right: 15px; padding-left: 15px; }
  .price-content .source-section-title { padding-top: 55px; font-size: clamp(1.65rem, 8vw, 2.3rem); }
  .price-content .source-section-title span { width: 1.6rem; height: 1.6rem; flex-basis: 1.6rem; }
  .price-system-pc, .member-plan-pc, .duration-pc { display: none; }
  .price-system-sp, .member-plan-sp, .duration-sp { display: block; }
  .price-system-sp img, .duration-sp { display: block; width: 100%; max-width: 489px; margin: 0 auto 1.5rem; }
  .member-plan-sp { grid-template-columns: 1fr; max-width: 346px; }
  .price-notes, .price-subnote, .price-note { font-size: .95rem; line-height: 1.9; }
  .price-duration { font-size: 1.8rem; }
  .price-plan-name { font-size: 1.4rem; }
}

/* 全ページ共通: スクロール後は白い固定ヘッダーへ切り替える。 */
.site-header.is-scrolled { position: fixed; z-index: 30; top: 0; right: 0; left: 0; background: #fff; box-shadow: 0 2px 8px #0002; }
.site-header.is-scrolled .site-nav { color: #1d1d1d; text-shadow: none; }
.site-header.is-scrolled .site-nav > a:not(.reservation):hover, .site-header.is-scrolled .site-nav > a:not(.reservation):focus-visible, .site-header.is-scrolled .site-nav > a[aria-current="page"] { color: #1d1d1d; }
.header-is-scrolled main { padding-top: 174px; }
@media (max-width: 760px) {
  .header-is-scrolled main { padding-top: 136px; }
  .site-header.is-scrolled .menu-toggle { color: #1d1d1d; border-color: #1d1d1d; background: #fff; }
  .site-header.is-scrolled .site-nav { color: #fff; }
}
