@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;600;700&family=Noto+Serif+JP:wght@500;600;700&display=swap');
:root {--blue:#347fb4; --deep:#365565; --rust:#af482d; --serif:"Noto Serif JP","Yu Mincho",serif; --sans:"Noto Sans JP","Yu Gothic",sans-serif; --content:1100px;}
*,*::before,*::after {box-sizing:border-box;}
html {scroll-behavior:smooth; scroll-padding-top:24px;}
body {margin:0; color:#242620; background:#fff; font-family:var(--sans); font-size:16px; font-weight:500; line-height:1.9; letter-spacing:.035em; -webkit-text-size-adjust:100%; overflow-wrap:anywhere;}
h1,h2,h3,h4,p,figure,ul,ol {margin:0;}
ul,ol {padding:0; list-style:none;}
h2,h3,h4 {line-height:1.5;}
a {color:inherit; text-decoration:none;}
img {display:block; max-width:100%; height:auto;}
button {font:inherit; color:inherit; cursor:pointer; border:0;}
a,button {touch-action:manipulation; -webkit-tap-highlight-color:transparent;}
a:focus-visible,button:focus-visible {outline:3px solid #ed9e27; outline-offset:5px;}
a img {transition:opacity .25s;}
a:hover img {opacity:.8;}
em {font-style:normal;}
main {overflow:clip;}
section[id] {scroll-margin-top:24px;}
.container {width:min(var(--content),calc(100% - 80px)); margin-inline:auto;}
.sp-only {display:none;}
.skip-link {position:fixed; top:8px; left:8px; padding:8px 16px; background:#fff; z-index:100; transform:translateY(-150%);}
.skip-link:focus {transform:none;}
.Header {position:absolute; inset:24px auto auto 2.4%; width:16%; max-width:245px; z-index:5;}
.Header_Logo {display:block;}
.Header_Logo img {width:100%; height:auto;}
.hero {position:relative; isolation:isolate; height:73.2vw; max-height:1405px; background:linear-gradient(#fff 55%,#fff 58%,#b4d9fa 78%,#1977c4 80%,#06488f 100%);}
.hero::after {content:""; position:absolute; bottom:0; left:0; right:0; height:17.5vw; background:linear-gradient(#1e73bb,#06488f); z-index:-1;}
.hero-collage {position:absolute; width:66.43%; aspect-ratio:1; left:18.57%; top:-7.5vw; border-radius:50%; overflow:hidden; z-index:-1;}
.collage-top,.collage-bottom {display:grid; height:55%; grid-template-columns:59% 41%;}
.collage-bottom {height:45%; grid-template-columns:37% 63%;}
.hero-collage img {width:100%; height:100%; object-fit:cover;}
.collage-top img:first-child {object-position:center 72%;}
.collage-bottom img:first-child {object-position:50% 70%;}
.collage-bottom img:last-child {object-position:55% 50%;}
.hero-copy {position:absolute; width:49%; left:27.2%; top:17.3vw; text-align:center; color:#fff; text-shadow:0 3px 8px #245b79;}
.hero-copy h1 img {width:100%; filter:drop-shadow(0 3px 3px #143a5980);}
.hero-copy p {margin-top:1.1vw; white-space:nowrap; font-size:clamp(16px,2.1vw,40px); font-weight:700; letter-spacing:.03em;}
.hero-copy strong {color:#ffdd1d;}
.hero-land {position:absolute; width:69%; right:-1%; top:49.2vw; z-index:2; pointer-events:none;}
.hero-cloud {position:absolute; width:9%; height:3.7vw; background:#e9f7ff; border-radius:50%; z-index:-2;}
.hero-cloud::after {content:""; position:absolute; inset:-25% 25% 10%; background:inherit; border-radius:50%;}
.cloud-one {top:12vw; left:-1%;}
.cloud-two {right:-1%; top:23vw; transform:rotate(-7deg);}
.region-badge {position:absolute; top:3.3vw; right:9.2%; width:14.6%; aspect-ratio:1; display:grid; place-items:center; background:#eb7106; color:#fff; border:6px double #fff; outline:3px solid #e87409; border-radius:30%; box-shadow:3px 5px 7px #65656570; transform:rotate(8deg);}
.region-badge span {font-size:clamp(20px,3.25vw,61px); line-height:1.2; text-align:center; font-weight:700; transform:rotate(-8deg); text-shadow:2px 3px 2px #a94e1470;}
.section-nav {position:absolute; top:13.57vw; left:1.8%; width:14.29%; padding:0 12px; border-radius:18px; background:#fff; box-shadow:0 3px 24px #0002; z-index:3;}
.section-nav a {display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:7.95vw; gap:7px; padding:14px 0; font-size:clamp(10px,1vw,19px); line-height:1.35; text-align:center; letter-spacing:0; font-weight:600; transition:color .2s;}
.section-nav a:hover {color:var(--blue);}
.section-nav a+a {border-top:2px dotted #e7e7e7;}
.nav-icon {height:2.5vw; max-height:50px; width:auto; max-width:70%; object-fit:contain;}
.section-nav a:nth-child(3) .nav-icon,.section-nav a:nth-child(4) .nav-icon {height:2.1vw;}
.about {position:relative; margin-top:-1px; background:linear-gradient(125deg,#073d7b 2%,#005ca1 40%,#1987c4 66%,#b6e4f7 100%); color:#fff;}
.about-body {position:relative; max-width:1920px; min-height:76vw; margin:auto; padding-top:.7vw; overflow:hidden;}
.about-body::before {content:""; position:absolute; left:-17%; top:-3%; width:48%; height:40%; background:#ffffff10; clip-path:polygon(10% 12%,50% 0,95% 25%,100% 55%,75% 91%,37% 100%,0 75%);}
.about-copy {position:relative; z-index:2; text-align:center;}
.about h2 {font:500 clamp(28px,2.9vw,56px)/1.5 var(--serif); margin-bottom:40px;}
.about-copy p {font-size:clamp(15px,1.3vw,24px); line-height:2; max-width:75%; margin:auto;}
.about-circle {position:absolute; object-fit:cover; border-radius:50%; z-index:1;}
.about-temple {width:28%; aspect-ratio:1; right:-2%; top:-2%;}
.about-harbor {width:17%; aspect-ratio:1; right:5.5%; bottom:16%; border:1px solid #fffa;}
.about-map {position:relative; width:74%; height:47vw; margin:2vw auto 0;}
.oita-map {position:absolute; width:65%; height:100%; object-fit:contain; left:0; top:0;}
.kyushu-map {position:absolute; right:5%; top:4%; width:30%; filter:drop-shadow(1px 5px 6px #00426a66);}
.about-panorama {position:relative; margin-top:-9vw; z-index:0; height:25vw; max-height:480px; overflow:hidden; mask-image:linear-gradient(transparent,#000 25%);}
.about-panorama img {width:100%; height:100%; object-fit:cover; object-position:50% 61%;}
.journey-intro {position:relative; height:64vw; max-height:1190px; min-height:650px; background:#eef7fb;}
.journey-intro-image {width:100%; height:100%; object-fit:cover; object-position:center 58%; mask-image:linear-gradient(#000 85%,transparent);}
.journey-intro::before {content:""; position:absolute; inset:0 0 52%; background:linear-gradient(#fff,#ffffffb3 43%,transparent); z-index:1;}
.journey-intro-copy {position:absolute; z-index:2; top:5vw; left:5%; width:90%; text-align:center;}
.journey-intro h2 {font:600 clamp(36px,3.55vw,64px)/1.5 var(--serif); color:#fff; text-shadow:0 0 6px #238ec0,0 0 16px #59c5e5,0 0 24px #54bdf5;}
.journey-intro h2 small {display:block; font-size:.55em;}
.journey-intro-copy p {margin-top:25px; font-size:17px; line-height:2.1;}
.journey-theme {position:relative; padding:0 0 110px;}
.journey-theme::before {content:""; position:absolute; inset:auto -10% 0; height:24%; border-radius:50%; background:repeating-radial-gradient(ellipse at 55% 300%,transparent 0 10px,#bdd6de30 11px 12px); pointer-events:none; z-index:-1;}
.theme-head {padding:0 24px 78px; text-align:center;}
.section-label {display:block; width:270px; max-width:95%; border-radius:30px; background:var(--blue); color:#fff; font-family:var(--serif); font-size:20px; line-height:1.65; margin:0 auto 22px;}
.theme-head h3 {font:600 36px/1.5 var(--serif); margin-bottom:20px;}
.theme-head p:not(.section-label) {font-size:17px; line-height:2;}
.theme-nature {margin-top:-12px;}
.theme-nature em {color:#49883b;}
.theme-history {padding-top:32px;}
.theme-history em {color:#bb622f;}
.theme-food em {color:#a45037;}
.theme-food {padding-top:25px; padding-bottom:60px;}
.splide__track {overflow:visible;}
.spot-slider .splide__slide {width:800px; max-width:80vw;}
.spot-slider figure img {width:100%; aspect-ratio:800/450; object-fit:cover; border-radius:20px;}
.spot-slider figcaption {font-size:14px; margin-top:12px; line-height:1.8;}
.spot-slider figcaption strong {font-weight:600;}
.spot-slider .splide__pagination,.food-slider .splide__pagination {position:absolute; top:-48px; bottom:auto; gap:10px; padding:0;}
.splide__pagination__page {width:25px; height:5px; border-radius:4px; margin:0; background:#c9c9c9; opacity:1;}
.splide__pagination__page.is-active {background:var(--deep); transform:none;}
.spot-slider .splide__arrow {background:transparent; border-radius:0; opacity:1; width:34px; height:54px; top:calc(50% - 17px);}
.spot-slider .splide__arrow svg {display:none;}
.spot-slider .splide__arrow::after {content:""; width:23px; height:23px; border-top:1px solid #6a787d; border-right:1px solid #6a787d; transform:rotate(45deg);}
.spot-slider .splide__arrow--prev {left:max(calc(50% - 440px),6vw); transform:translateY(-50%) rotate(180deg);}
.spot-slider .splide__arrow--next {right:max(calc(50% - 440px),6vw);}
.food-slider .splide__slide {display:flex; flex-direction:column; gap:10px;}
.food-slider figure {position:relative; overflow:hidden; border-radius:20px;}
.food-slider figure img {width:100%; aspect-ratio:350/300; object-fit:cover;}
.food-slider figcaption {position:absolute; bottom:0; left:0; width:100%; padding:25px 12px 10px; font-size:14px; font-weight:600; line-height:1.5; color:white; text-shadow:0 1px 3px #222; background:linear-gradient(transparent,#0006);}
.food-slider .splide__arrow {display:none;}
.trip-ideas {position:relative; background:#fcfced; padding-bottom:100px;}
.village-land {width:100%; height:auto; aspect-ratio:1400/270; object-fit:cover;}
.trip-ideas-body {display:grid; grid-template-columns:60% 35%; gap:5%; padding-top:35px;}
.trip-guides h2 {font:600 32px/1.6 var(--serif); margin-bottom:26px; white-space:nowrap;}
.trip-guides>p {font-size:16px; line-height:2; margin-bottom:48px;}
.guide-list {max-width:600px;}
.guide-link {display:grid; grid-template-columns:200px 1fr 32px; align-items:center; gap:20px; padding:18px 0; border-top:2px dotted #bfc5b3;}
.guide-link:last-child {border-bottom:2px dotted #bfc5b3;}
.guide-link>img {width:100%; aspect-ratio:200/120; object-fit:cover;}
.guide-link small {display:block; color:#456578; font-size:14px; line-height:1.5; margin-bottom:5px;}
.guide-link strong {display:block; font-size:22px; line-height:1.5; letter-spacing:0;}
.pdf-label {display:inline-block; margin-top:9px; padding:1px 7px; background:var(--rust); border-radius:10px; color:#fff; font-size:12px; line-height:1.3;}
.round-arrow {display:inline-grid; flex:none; width:30px; height:30px; border-radius:50%; place-items:center; color:white; background:var(--blue); font-family:Arial,sans-serif; font-size:28px; font-weight:400; line-height:1; padding-bottom:3px;}
.guide-all {position:relative; display:flex; align-items:center; gap:18px; margin-top:50px; background:var(--blue); color:white; border-radius:12px; padding:18px 50px 18px 140px; min-height:100px; font-size:16px;}
.guide-all>img {position:absolute; bottom:-15px; left:15px; width:110px; transform:rotate(-12deg); box-shadow:0 2px 4px #5554;}
.guide-all .round-arrow {position:absolute; right:12px; background:transparent; border:1px solid #fff;}
.trip-portraits {position:relative; min-height:940px;}
.trip-portraits img {position:absolute; border-radius:50%; object-fit:cover; aspect-ratio:1;}
.trip-portraits img:nth-child(1) {width:70%; top:3%; right:-10%;}
.trip-portraits img:nth-child(2) {width:110%; top:30%; left:-2%;}
.trip-portraits img:nth-child(3) {width:70%; bottom:0; right:-10%;}
.pill-link {display:flex; justify-content:center; align-items:center; gap:30px; min-height:64px; width:fit-content; max-width:100%; padding:13px 26px 13px 36px; border-radius:99px; font-size:20px; font-weight:700; line-height:1.65; transition:background .2s,box-shadow .2s;}
.pill-link:hover {box-shadow:0 3px 15px #143d5025;}
.pill-link.white {background:white; color:var(--deep);}
.pill-link.white .round-arrow {background:var(--deep);}
.pill-link.rust {background:var(--rust); color:#fff;}
.pill-link.rust .round-arrow {background:#fff; color:var(--rust);}
.access {background:linear-gradient(#087ea6aa,#006b9ca8),url('../images/lp/access-ocean.webp') center 60%/cover; color:white;}
.access-body {display:grid; grid-template-columns:65% 40%; align-items:center; min-height:410px;}
.access h2 {font:600 30px/1.5 var(--serif); margin-bottom:20px;}
.access-copy {padding:50px 0;}
.access-copy p {font-size:18px; line-height:1.8; margin-bottom:35px;}
.route-map {width:100%; height:360px; object-fit:cover; mix-blend-mode:screen;}
.fair {position:relative; padding:100px 0 90px; isolation:isolate;}
.fair-main {position:relative; width:640px; max-width:calc(100% - 48px); margin:auto;}
.fair-heading {text-align:center; font-family:var(--serif);}
.fair-heading>p:first-child {font-size:24px; margin-bottom:6px;}
.fair-heading h2 {font-size:56px; font-weight:600; letter-spacing:.05em;}
.fair-dates {margin:15px auto 24px; white-space:nowrap; background:var(--blue); color:#fff; border-radius:25px; font-size:23px; line-height:1.6; padding-inline:16px;}
.fair-heading .fair-lead {font-size:18px; line-height:2;}
.fair-list {counter-reset:fair; margin-top:55px;}
.fair-list li {counter-increment:fair; margin-bottom:32px;}
.fair-list h3 {position:relative; display:flex; align-items:center; gap:22px; font:600 26px/1.5 var(--serif); color:var(--deep); margin-bottom:12px;}
.fair-list h3::before {content:counter(fair); font:700 96px/.9 var(--serif); letter-spacing:-.06em; color:#c55627; text-shadow:3px 4px #c7d5b2; min-width:62px;}
.fair-list p {font-size:17px; line-height:1.95;}
.fair-decoration {position:absolute; top:90px; bottom:400px; width:24%; max-width:340px; display:flex; flex-direction:column; align-items:center; justify-content:space-between; pointer-events:none; z-index:-1;}
.fair-decoration.left {left:-2%;}
.fair-decoration.right {right:-2%; padding-top:100px;}
.fair-decoration img {object-fit:cover; width:90%; border-radius:10px;}
.fair-decoration.left img:first-child {height:360px; object-position:center 50%; align-self:flex-start;}
.fair-decoration img:nth-child(2) {width:82%; max-height:230px; object-fit:contain;}
.fair-decoration img:last-child {width:75%; max-height:220px; object-fit:contain;}
.calendar-notice {background:#bd5b49; color:#fff; border:5px double #fff; border-radius:14px; text-align:center; font:600 18px/1.5 var(--serif); padding:7px 10px; margin:75px 0 35px; box-shadow:0 0 0 1px #b77566;}
.calendar-button {background:transparent; width:100%; padding:0;}
.calendar-button img {width:100%; height:auto;}
.pr-event {padding:85px 0; background:linear-gradient(110deg,#38a3d8,#43a7db 80%,#55bce8);}
.event-card {border-radius:15px; background:#fffef6; display:grid; grid-template-columns:65% 30%; align-items:center; gap:5%; padding:45px 60px;}
.event-copy h2 {font:600 34px/1.5 var(--serif); color:var(--deep); margin-bottom:15px;}
.event-date {border-radius:14px; border:4px double #fff; background:#bd5b49; text-align:center; color:#fff; line-height:1.7; font-weight:700; margin-bottom:20px; padding:4px 10px;}
.event-copy>p:not(.event-date) {font:500 18px/1.9 var(--serif);}
.event-copy .event-note {margin-top:15px;}
.event-collage {display:grid; grid-template-columns:1fr 1fr; border-radius:50%; aspect-ratio:1; overflow:hidden;}
.event-collage img {width:100%; height:100%; object-fit:cover;}
.sns {padding:85px 0 0;}
.sns h2 {text-align:center; font-size:26px; line-height:1.7; padding-inline:20px;}
.sns-links {display:flex; justify-content:center; gap:30px; margin:32px 0 44px;}
.sns-links img {width:48px; height:48px; object-fit:contain;}
.sns-marquee {width:100%; overflow:hidden;}
.sns-track {display:flex; width:max-content; animation:marquee 65s linear infinite; gap:20px;}
.sns-group {display:flex; gap:20px;}
.sns-photo {width:400px; flex:none;}
.sns-photo img {width:100%; aspect-ratio:400/300; object-fit:cover; border-radius:10px;}
.sns-marquee:hover .sns-track {animation-play-state:paused;}
@keyframes marquee {
  to {transform:translateX(calc(-50% - 10px));}
}
.travel {padding-top:100px; background:radial-gradient(ellipse at 50% 0,#e3f4fb88,transparent 650px);}
.travel-intro {position:relative;}
.travel-copy {position:relative; z-index:2;}
.travel-kicker {font:600 30px/1.5 var(--serif); text-align:center; color:#a85535; margin-bottom:10px;}
.travel-copy h2 {font:600 50px/1.5 var(--serif); text-align:center; letter-spacing:.04em; margin-bottom:26px;}
.travel-copy>p:last-child {max-width:800px; margin:auto; font-size:17px; line-height:1.9;}
.travel-ferry {width:100%; height:33vw; max-height:600px; object-fit:cover; object-position:50% 62%; margin-top:-4vw; mask-image:linear-gradient(transparent,#000 12%,#000 93%,transparent);}
.tour-options {display:grid; grid-template-columns:1fr 1fr .55fr; gap:24px 30px; padding:10px 0 85px;}
.escorted-note {grid-column:1/3; text-align:center; align-self:center; border:2px dashed #ddd7c5; border-radius:14px; background:#fffeec; padding:12px 20px; font-size:17px; line-height:1.6;}
.individual-note {text-align:center; align-self:center; font-size:15px; line-height:1.6; border:2px dashed #ddd; border-radius:14px; padding:9px 12px;}
.tour-card {position:relative; background:#f1f9fe; border-radius:13px; padding:30px 25px 20px; box-shadow:0 1px 14px #0002; transition:background .2s; min-height:160px;}
.tour-card:hover {background:#e1f1fc;}
.tour-card>span {position:absolute; top:-10px; left:0; background:var(--rust); border-radius:20px; padding:0 12px; color:white; font-size:20px; font-weight:700; line-height:1.5;}
.tour-card h3 {font-size:20px; line-height:1.5; margin-bottom:12px;}
.tour-card p {font-size:16px; color:var(--deep); line-height:1.6; font-weight:600;}
.coming-soon {box-shadow:none; background:#f3f3f3; display:grid; place-items:center;}
.coming-soon>span {background:var(--blue); font-size:18px;}
.coming-soon p {color:#999; font-size:22px; white-space:nowrap;}
.course-heading {background:#42b8c9; color:white; padding:26px 0 36px;}
.course-b .course-heading {background:#e39557;}
.course-heading .container {position:relative; padding-right:165px;}
.course-ribbon {background:#c25b2b; display:inline-block; padding:0 20px 0 10px; line-height:1.5; font-size:24px; font-weight:700; clip-path:polygon(0 0,100% 0,88% 50%,100% 100%,0 100%);}
.course-heading h3 {font:600 46px/1.3 var(--serif); letter-spacing:.02em; margin-top:6px;}
.departure {margin-top:14px; background:#f8db86; color:#312b19; padding:5px 18px; display:inline-block; clip-path:polygon(0 0,100% 0,98% 50%,100% 100%,0 100%,2% 50%); font:600 17px/1.6 var(--serif);}
.departure b {margin-right:16px; font-weight:600;}
.trip-badge {position:absolute; right:0; top:15%; width:150px; aspect-ratio:1; display:flex; justify-content:center; align-items:center; flex-direction:column; border-radius:30%; background:#d86016; border:6px double #fff; outline:3px solid #e57418; box-shadow:3px 4px 6px #8a5b4960; transform:rotate(5deg); color:#fff;}
.trip-badge strong {font-size:55px; line-height:1.15;}
.trip-badge strong span {font-size:30px;}
.trip-badge small {font-size:17px; font-weight:700;}
.course-content {padding-top:60px; padding-bottom:100px;}
.course-a {background:#f7fdfd;}
.course-intro {display:grid; grid-template-columns:370px 1fr; gap:40px; align-items:center; margin-bottom:38px;}
.course-intro>img {width:100%; aspect-ratio:370/250; object-fit:cover; border-radius:10px;}
.course-intro h3 {font:600 36px/1.5 var(--serif); margin-bottom:15px;}
.course-intro p {font-size:18px; line-height:1.8;}
.course-features {display:grid; grid-template-columns:repeat(3,1fr); gap:16px; padding-bottom:60px; border-bottom:2px dotted #ccc;}
.course-features li {border:1px solid #ad7f67; border-radius:10px; background:#faf7f1; padding:17px 24px;}
.course-features h4 {font-size:19px; color:#c17446; margin-bottom:6px;}
.course-features p {font-size:16px; line-height:1.7;}
.course-detail {display:grid; grid-template-columns:52% 45%; gap:3%; padding-top:70px; align-items:start;}
.day {margin-bottom:48px;}
.day h4 {display:flex; align-items:center; gap:18px; font:600 22px/1.45 var(--serif); margin-bottom:22px;}
.day-script {font-family:"Brush Script MT","Segoe Script",cursive; white-space:nowrap; font-size:40px; line-height:1.2; font-style:italic; letter-spacing:-2px; flex-shrink:0;}
.day-script b {font-size:80px; font-weight:400; line-height:1; letter-spacing:-7px;}
.schedule {position:relative; margin-left:82px; font:500 20px/1.7 var(--serif);}
.schedule li {position:relative; padding-left:24px; padding-bottom:19px; border-left:1px solid #454d48; min-height:36px;}
.schedule li:last-child {padding-bottom:0; border-left-color:transparent;}
.schedule li::before {content:""; position:absolute; left:-12px; top:6px; width:23px; height:23px; border:2px solid #454d48; border-radius:50%; background:#fff;}
.schedule .time-stop::before {content:"◷"; font:22px/20px Arial; text-align:center; border:1px solid #454d48; top:5px;}
.schedule time {color:#48626a; font:600 23px/1 var(--serif);}
.schedule-label {display:inline-block; font:500 15px/1.5 var(--sans); color:#fff; background:var(--rust); border-radius:16px; padding:0 8px; white-space:nowrap; vertical-align:2px;}
.schedule li p {line-height:1.6; margin-top:6px;}
.schedule-note {margin:6px 0 0 106px; font-size:13px; line-height:1.7;}
.course-photos {display:grid; grid-template-columns:1fr 1fr; gap:26px;}
.course-photos img {width:100%; height:250px; object-fit:cover; border-radius:12px;}
.course-photos img.wide {grid-column:1/-1; height:auto; aspect-ratio:500/400;}
.course-a .course-photos img.wide:nth-child(2) {aspect-ratio:500/350;}
.course-content>.pill-link {margin:25px auto 0; min-width:600px;}
.tourism {padding:85px 0 110px; border-top:2px dotted #ccc; text-align:center;}
.tourism p {font-size:18px; margin-bottom:32px;}
.tourism a {display:block; width:664px; max-width:100%; margin:auto;}
.tourism img {width:100%;}
.guidebook {position:relative; background:var(--blue); color:#fff; padding:85px 0;}
.guidebook::before {content:""; position:absolute; left:-2%; top:-18px; width:104%; height:36px; background:var(--blue); border-radius:50% 50% 0 0 / 100% 100% 0 0;}
.guidebook-body {display:grid; grid-template-columns:240px 1fr; gap:45px; align-items:center; max-width:950px;}
.guidebook-cover {width:100%; box-shadow:0 2px 12px #16446445;}
.guidebook h2 {font:600 30px/1.6 var(--serif); margin-bottom:20px;}
.guidebook p {line-height:2; font-size:17px; margin-bottom:35px;}
.guidebook .pill-link {min-width:380px; color:var(--blue);}
.guidebook .round-arrow {background:none!important; color:var(--blue); border:2px solid var(--blue);}
.Footer {padding:42px 24px 25px; text-align:center; background:#fff;}
.Footer>a {display:block; width:180px; margin:0 auto 22px;}
.Footer small {font-size:11px; letter-spacing:.02em; color:#666;}
.page-top {position:fixed; right:20px; bottom:20px; z-index:15; display:grid; place-items:center; width:45px; height:45px; border-radius:50%; background:#fff; color:var(--blue); border:1px solid #b8d2e3; box-shadow:0 2px 8px #224d5d25; font-size:25px; opacity:0; visibility:hidden; transition:opacity .2s;}
.page-top.is-visible {opacity:1; visibility:visible;}
body.dialog-open {overflow:hidden;}
@media(min-width:1921px) {
  .hero {max-width:1920px; margin:auto;}
  .hero-collage {top:-144px;}
  .hero-copy {top:332px;}
  .hero-copy p {margin-top:21px;}
  .hero-land {top:945px;}
  .section-nav {top:260px;}
  .section-nav a {min-height:152px;}
  .nav-icon {height:48px;}
  .section-nav a:nth-child(3) .nav-icon,.section-nav a:nth-child(4) .nav-icon {height:40px;}
  .about-body {min-height:1459px;}
  .about-map {height:902px;}
  .about-panorama {margin-top:-173px;}
  .journey-intro-copy {top:96px;}
  .journey-intro {height:1190px;}
}
@media(max-width:1199px) and (min-width:960px) {
  .container {width:calc(100% - 60px);}
  .about h2 {margin-bottom:28px;}
  .about-copy p {font-size:15px;}
  .theme-head h3 {font-size:31px;}
  .trip-guides h2 {font-size:27px;}
  .guide-link {grid-template-columns:145px 1fr 28px; gap:15px;}
  .guide-link strong {font-size:20px;}
  .guide-link small {font-size:12px;}
  .trip-portraits {min-height:850px;}
  .guide-all {padding-left:115px; font-size:14px;}
  .guide-all>img {width:85px;}
  .access h2 {font-size:25px;}
  .access-copy p {font-size:15px;}
  .pill-link {font-size:18px;}
  .fair-decoration {width:21%;}
  .fair-main {width:58%;}
  .fair-dates {font-size:19px;}
  .fair-heading h2 {font-size:48px;}
  .fair-list h3 {font-size:22px;}
  .event-card {padding:35px;}
  .event-copy h2 {font-size:28px;}
  .travel-copy h2 {font-size:42px;}
  .course-heading h3 {font-size:36px;}
  .course-intro {grid-template-columns:34% 1fr; gap:30px;}
  .course-intro h3 {font-size:30px;}
  .course-intro p {font-size:16px;}
  .course-features li {padding:15px;}
  .course-features h4 {font-size:16px;}
  .schedule {margin-left:55px; font-size:17px;}
  .schedule-note {margin-left:78px;}
  .day h4 {font-size:18px;}
  .day-script {font-size:34px;}
  .day-script b {font-size:65px;}
  .course-photos img {height:220px;}
  .tour-card {padding:28px 18px 18px;}
  .tour-card h3 {font-size:17px;}
  .tour-card p {font-size:14px;}
  .tour-options {gap:20px;}
}
@media(max-width:959px) {
  body {font-size:16px; letter-spacing:.025em; line-height:1.85;}
  .container {width:calc(100% - 40px);}
  .pc-only {display:none;}
  .sp-only {display:initial;}
  .Header {top:12px; left:10px; width:22%; max-width:130px;}
  .hero {height:auto; max-height:none; padding-top:118vw; background:linear-gradient(#fff 60%,#b4dcf9 70%,#0961a8 81%,#044d8e 100%);}
  .hero::after {top:100vw; bottom:0; height:auto; background:linear-gradient(#116eb4,#034c8d);}
  .hero-collage {width:108%; left:-4%; top:0; aspect-ratio:1;}
  .collage-top {height:56%; grid-template-columns:58% 42%;}
  .collage-bottom {height:44%; grid-template-columns:35% 65%;}
  .hero-copy {width:91%; left:4.5%; top:32vw;}
  .hero-copy p {margin-top:1vw; font-size:4vw; white-space:nowrap; letter-spacing:0;}
  .hero-land {top:91vw; right:-6%; width:77%;}
  .hero-cloud,.region-badge {display:none;}
  .section-nav {position:relative; top:auto; left:auto; width:calc(100% - 24px); margin:auto; display:grid; grid-template-columns:1fr 1fr; gap:6px; padding:0 0 24px; background:transparent; border-radius:0; box-shadow:none;}
  .section-nav a {min-height:90px; background:#fff; border-radius:6px; padding:7px 4px; gap:6px; font-size:14px; line-height:1.35;}
  .section-nav a+a {border-top:0;}
  .nav-icon {height:36px; width:auto; max-height:none;}
  .section-nav a:nth-child(3) .nav-icon,.section-nav a:nth-child(4) .nav-icon {height:30px;}
  .about-body {min-height:0; padding-top:24px;}
  .about-copy {padding:145px 26px 0;}
  .about h2 {font-size:23px; line-height:1.5; margin-bottom:28px; letter-spacing:0;}
  .about-copy p {max-width:none; text-align:left; font-size:16px; line-height:1.85;}
  .about-temple {width:112px; height:112px; right:calc(50% - 56px); top:15px;}
  .about-harbor {width:90px; height:90px; right:13%; bottom:35%;}
  .about-map {width:100%; height:104vw; margin:12px 0 0;}
  .oita-map {width:73%; height:100%; left:16%; top:0;}
  .kyushu-map {width:36%; left:6%; right:auto; top:12%;}
  .about-panorama {height:44vw; max-height:none; margin-top:-13vw; mask-image:linear-gradient(transparent,#000 26%);}
  .about-panorama img {object-position:50% 60%;}
  .journey-intro {height:188vw; min-height:0; max-height:none; background:#f1f8fa;}
  .journey-intro-copy {top:12vw; left:7%; width:86%;}
  .journey-intro h2 {font-size:36px; line-height:1.6;}
  .journey-intro h2 small {font-size:21px; white-space:nowrap; letter-spacing:0;}
  .journey-intro-copy p {font-size:15px; text-align:left; line-height:1.9; margin-top:45px;}
  .journey-intro-image {object-fit:cover; object-position:50% 50%; mask-image:linear-gradient(#000 88%,transparent);}
  .journey-intro::before {bottom:47%;}
  .journey-theme {padding-bottom:80px;}
  .theme-head {padding:0 24px 72px; text-align:left;}
  .section-label {width:100%; max-width:none; text-align:center; font-size:19px; margin-bottom:22px;}
  .theme-head h3 {font-size:26px; text-align:center; letter-spacing:0; margin-bottom:18px;}
  .theme-head p:not(.section-label) {font-size:15px; line-height:1.9;}
  .theme-history {padding-top:10px;}
  .theme-food {padding-top:0; padding-bottom:60px;}
  .theme-food .theme-head h3 {max-width:300px; margin-inline:auto;}
  .spot-slider .splide__slide {max-width:none;}
  .spot-slider figure img {aspect-ratio:1; border-radius:20px;}
  .spot-slider figcaption {font-size:12px; margin-top:8px; line-height:1.7;}
  .spot-slider .splide__arrow {width:24px; top:calc(40vw - 1px);}
  .spot-slider .splide__arrow--prev {left:calc(10vw - 27px);}
  .spot-slider .splide__arrow--next {right:calc(10vw - 27px);}
  .spot-slider .splide__arrow::after {width:17px; height:17px; border-color:#222;}
  .spot-slider .splide__pagination,.food-slider .splide__pagination {top:-45px; gap:10px;}
  .food-slider .splide__slide {gap:7px;}
  .food-slider figure {border-radius:17px;}
  .food-slider figure img {aspect-ratio:1;}
  .food-slider figcaption {font-size:10px; padding:20px 7px 6px;}
  .trip-ideas {padding-bottom:55px;}
  .village-land {height:100px; aspect-ratio:auto; object-fit:cover; object-position:center;}
  .trip-ideas-body {display:block; padding-top:22px;}
  .trip-guides h2 {font-size:24px; white-space:normal; line-height:1.6; margin-bottom:20px;}
  .trip-guides>p {font-size:15px; margin-bottom:25px; line-height:1.8;}
  .guide-link {grid-template-columns:33% 1fr 24px; gap:12px; padding:16px 0;}
  .guide-link small {font-size:11px; margin-bottom:4px;}
  .guide-link strong {font-size:17px; line-height:1.5;}
  .guide-link>img {aspect-ratio:1.5;}
  .guide-link .round-arrow {width:24px; height:24px; font-size:24px;}
  .pdf-label {font-size:10px; margin-top:7px;}
  .guide-all {padding:16px 30px 16px 93px; margin-top:30px; font-size:12px; line-height:1.7; min-height:84px; gap:0; border-radius:8px;}
  .guide-all>img {width:68px; left:11px; bottom:-4px;}
  .guide-all .round-arrow {right:7px; width:21px; height:21px; font-size:21px;}
  .trip-portraits {display:none;}
  .access-body {display:flex; flex-direction:column-reverse; min-height:0; padding:25px 0 40px;}
  .route-map {height:auto; max-height:280px; object-fit:contain; width:85%; mix-blend-mode:normal; border-radius:8px;}
  .access-copy {padding:22px 0 0; width:100%;}
  .access h2 {font-size:23px; margin-bottom:18px;}
  .access-copy p {font-size:15px; line-height:1.8; margin-bottom:24px;}
  .pill-link {font-size:16px; min-height:50px; padding:10px 16px 10px 22px; gap:15px; width:100%;}
  .round-arrow {width:26px; height:26px; font-size:25px;}
  .fair {padding:48px 0 50px;}
  .fair-main {width:100%; max-width:none; padding-inline:20px;}
  .fair-heading>p:first-child {font-size:18px; margin-bottom:5px;}
  .fair-heading h2 {font-size:36px; letter-spacing:.04em;}
  .fair-dates {font-size:13px; line-height:1.7; padding:3px 7px; letter-spacing:0; margin:14px 0 20px; white-space:normal;}
  .fair-heading .fair-lead {font-size:14px; line-height:1.9;}
  .fair-list {margin-top:28px;}
  .fair-list li {margin-bottom:26px; min-height:155px; padding-right:82px;}
  .fair-list h3 {font-size:18px; gap:10px; line-height:1.5; margin-bottom:10px; align-items:flex-start;}
  .fair-list h3::before {font-size:54px; min-width:30px;}
  .fair-list p {font-size:13px; line-height:1.8;}
  .fair-decoration {display:none;}
  .fair-decoration.right {display:flex; inset:270px 8px auto auto; width:80px; height:565px; padding:0; max-width:none; z-index:0; justify-content:space-around;}
  .fair-decoration.right img {width:100%; max-height:170px; border-radius:5px;}
  .fair-decoration.right img:nth-child(2) {width:90%; height:100px;}
  .fair-decoration.right img:nth-child(3) {height:130px;}
  .calendar-notice {font-size:13px; line-height:1.6; margin:25px 0 22px; padding:6px 8px; border-width:4px;}
  .calendar-button {display:block; width:100%; max-width:580px; margin:auto;}
  .calendar-button img {max-height:240px; object-fit:contain;}
  .pr-event {padding:40px 12px;}
  .event-card {width:100%; display:flex; flex-direction:column; padding:30px 20px; gap:24px; border-radius:13px;}
  .event-copy h2 {font-size:25px; text-align:center; line-height:1.5;}
  .event-date {font-size:13px; padding:5px 8px; line-height:1.6;}
  .event-copy>p:not(.event-date) {font:500 15px/1.9 var(--sans);}
  .event-copy .event-note {font-size:13px!important;}
  .event-collage {width:210px; max-width:75%;}
  .sns {padding-top:45px;}
  .sns h2 {font-size:20px; line-height:1.8;}
  .sns-links {gap:23px; margin:24px 0 30px;}
  .sns-links img {width:38px; height:38px;}
  .sns-track,.sns-group {gap:12px;}
  .sns-photo {width:230px;}
  .sns-photo img {border-radius:8px;}
  .travel {padding-top:65px;}
  .travel-kicker {font-size:18px; line-height:1.7; margin-bottom:12px;}
  .travel-copy h2 {font-size:28px; line-height:1.5; margin-bottom:23px;}
  .travel-copy>p:last-child {font-size:14px; line-height:1.9;}
  .travel-ferry {height:52vw; max-height:none; margin-top:0; object-position:50% 65%; mask-image:linear-gradient(transparent,#000 15%,#000 95%,transparent);}
  .tour-options {grid-template-columns:1fr; gap:27px; padding:20px 0 45px;}
  .escorted-note {grid-column:auto; font-size:14px; padding:12px 14px;}
  .individual-note {grid-row:4; font-size:14px;}
  .tour-card {min-height:0; padding:24px 20px 18px;}
  .tour-card>span {font-size:17px; line-height:1.6;}
  .tour-card h3 {font-size:17px; line-height:1.55; margin-bottom:10px;}
  .tour-card p {font-size:14px; line-height:1.7;}
  .coming-soon {grid-row:5; min-height:110px;}
  .coming-soon p {font-size:22px;}
  .course-heading {padding:20px 0 25px;}
  .course-heading .container {padding-right:0; width:calc(100% - 30px);}
  .course-ribbon {font-size:16px; margin-bottom:8px;}
  .course-heading h3 {font-size:25px; line-height:1.5; padding-right:58px; letter-spacing:0;}
  .course-heading h3 br {display:none;}
  .trip-badge {width:73px; border-width:4px; outline-width:2px; right:1px; top:48px; box-shadow:2px 3px 4px #8a5b4950;}
  .trip-badge strong {font-size:31px;}
  .trip-badge strong span {font-size:16px;}
  .trip-badge small {font-size:9px; letter-spacing:0;}
  .departure {font-size:11px; padding:5px 11px; line-height:1.7; margin-top:15px; letter-spacing:0; max-width:100%;}
  .departure b {margin-right:8px;}
  .course-content {padding-top:30px; padding-bottom:50px;}
  .course-intro {display:block; margin-bottom:25px;}
  .course-intro>img {width:100%; max-width:460px; margin:0 auto 22px; aspect-ratio:335/210;}
  .course-intro h3 {font-size:25px; line-height:1.6; margin-bottom:12px;}
  .course-intro p {font-size:15px; line-height:1.85;}
  .course-features {grid-template-columns:1fr; gap:10px; padding-bottom:30px;}
  .course-features li {padding:12px 16px; border-radius:7px;}
  .course-features h4 {font-size:17px; margin-bottom:5px;}
  .course-features p {font-size:14px; line-height:1.8;}
  .course-detail {display:block; padding-top:30px;}
  .day {margin-bottom:30px;}
  .day h4 {font-size:17px; line-height:1.5; gap:14px; margin-bottom:18px;}
  .day-script {font-size:29px; letter-spacing:-1px;}
  .day-script b {font-size:60px; letter-spacing:-5px;}
  .schedule {margin-left:44px; font-size:15px; line-height:1.9;}
  .schedule li {padding-left:19px; padding-bottom:17px;}
  .schedule li::before {width:18px; height:18px; left:-9px; top:5px;}
  .schedule .time-stop::before {font-size:17px; line-height:16px; top:5px;}
  .schedule time {font-size:19px;}
  .schedule-label {font-size:12px; padding:0 6px; vertical-align:1px;}
  .schedule-note {margin-left:63px; font-size:11px; line-height:1.6;}
  .course-photos {grid-template-columns:1fr 1fr; gap:12px; margin-top:22px;}
  .course-photos img {height:170px; border-radius:8px;}
  .course-photos img.wide {aspect-ratio:335/220; height:auto;}
  .course-a .course-photos img.wide:nth-child(2) {aspect-ratio:335/220;}
  .course-content>.pill-link {min-width:0; margin-top:30px; font-size:14px; padding:12px 15px; gap:10px; justify-content:space-between;}
  .course-content>.pill-link .round-arrow {width:23px; height:23px; font-size:22px;}
  .tourism {padding:40px 0 65px;}
  .tourism p {font-size:14px; line-height:1.9; margin-bottom:22px;}
  .guidebook {padding:45px 0;}
  .guidebook-body {display:flex; flex-direction:column; gap:25px;}
  .guidebook-cover {width:150px;}
  .guidebook h2 {font-size:23px; line-height:1.6; text-align:center; margin-bottom:20px;}
  .guidebook p {font-size:14px; line-height:1.9; margin-bottom:25px;}
  .guidebook .pill-link {min-width:0; max-width:360px; margin:auto;}
  .Footer {padding:30px 20px 20px;}
  .Footer>a {width:150px;}
  .Footer small {font-size:9px;}
  .page-top {right:12px; bottom:12px; width:36px; height:36px; font-size:21px;}
}
@media(min-width:600px) and (max-width:959px) {
  .about h2 {font-size:32px;}
  .about-copy {padding-top:165px;}
  .about-copy p {max-width:640px; margin:auto;}
  .about-map {max-width:700px; height:650px; margin:auto;}
  .about-harbor {bottom:29%;}
  .about-panorama {height:230px; margin-top:-80px;}
  .journey-intro {height:1000px;}
  .journey-intro-copy {top:60px;}
  .journey-intro h2 {font-size:45px;}
  .journey-intro-copy p {text-align:center;}
  .trip-ideas-body {max-width:640px;}
  .fair-main {max-width:640px;}
  .fair-decoration.right {right:3%; width:110px; height:630px;}
  .fair-list li {padding-right:100px;}
  .fair-list p {font-size:16px;}
  .fair-list h3 {font-size:23px;}
  .fair-dates {font-size:20px;}
  .fair-list h3::before {font-size:70px; min-width:42px;}
  .course-intro {display:grid; grid-template-columns:40% 1fr; gap:25px;}
  .course-intro>img {margin:0;}
  .course-heading h3 {font-size:35px; max-width:700px;}
  .course-detail {display:grid; grid-template-columns:55% 42%; gap:3%;}
  .course-photos img {height:160px;}
  .course-photos img.wide {aspect-ratio:1;}
  .course-heading .container {padding-right:35px;}
  .trip-badge {width:100px; top:35px;}
  .trip-badge strong {font-size:42px;}
  .trip-badge small {font-size:13px;}
  .departure {font-size:15px;}
  .tour-options {grid-template-columns:1fr 1fr;}
  .escorted-note {grid-column:1/-1;}
  .individual-note {grid-row:3; grid-column:1/-1;}
  .coming-soon {grid-row:4; grid-column:1/-1;}
  .tour-card h3 {font-size:17px;}
  .tour-card p {font-size:14px;}
  .guidebook-body {flex-direction:row;}
  .guidebook h2 {text-align:left;}
  .guidebook-cover {width:170px;}
  .event-card {flex-direction:row;}
  .event-collage {flex:0 0 28%;}
  .about-temple {width:130px; height:130px; right:calc(50% - 65px);}
}
@media(max-width:374px) {
  .section-nav a {font-size:12px;}
  .hero-copy p {font-size:3.8vw;}
  .about-copy {padding-inline:20px;}
  .about h2 {font-size:21px;}
  .about-copy p {font-size:15px;}
  .journey-intro h2 small {font-size:18px;}
  .theme-head {padding-inline:20px;}
  .theme-head h3 {font-size:23px;}
  .fair-list li {padding-right:68px;}
  .fair-decoration.right {width:65px; right:4px;}
  .fair-list h3 {font-size:16px;}
  .course-heading h3 {font-size:22px;}
  .course-heading .trip-badge {width:64px;}
  .departure {font-size:10px;}
  .schedule {margin-left:30px;}
  .schedule-note {margin-left:49px;}
  .day h4 {font-size:15px;}
  .day-script {font-size:25px;}
  .day-script b {font-size:54px;}
  .course-content>.pill-link {font-size:12px;}
}
.hero-copy {width:44%; left:29.7%;}
.region-badge,.trip-badge {background:transparent url('../images/lp/trip-badge.webp') center/contain no-repeat; border:0; outline:0; border-radius:0; box-shadow:none; filter:drop-shadow(3px 4px 3px #79512450);}
.region-badge {transform:none;}
.region-badge span {transform:none;}
.oita-map {mask-image:linear-gradient(90deg,transparent,#000 14%,#000 93%,transparent),linear-gradient(0deg,transparent,#000 7%,#000 92%,transparent); mask-composite:intersect;}
.calendar-button {margin-top:65px;}
@media(max-width:959px) {
  .hero-copy {width:91%; left:4.5%;}
  .section-nav a {font-size:13px;}
  .about h2 {font-size:21px;}
  .theme-head h3 {font-size:24px;}
  .calendar-button {margin-top:30px;}
  .event-copy h2 {font-size:23px; letter-spacing:0;}
}
@media(min-width:600px) and (max-width:959px) {
  .about h2 {font-size:32px;}
  .section-nav a {font-size:16px;}
  .theme-head h3 {font-size:30px;}
}
@media(max-width:374px) {
  .about h2 {font-size:19px;}
  .theme-head h3 {font-size:21px;}
  .section-nav a {font-size:12px;}
}
@media(prefers-reduced-motion:reduce) {
  html {scroll-behavior:auto;}
  .sns-track {animation:none;}
  *,*::before,*::after {transition-duration:.01ms!important; animation-duration:.01ms!important; animation-iteration-count:1!important;}
}
img.hero-collage {height:auto; max-width:none; aspect-ratio:auto; border-radius:0; overflow:visible;}
.hero-copy h1 img {filter:none;}
.region-badge, .trip-badge {display:block; background:none; border:0; outline:0; border-radius:0; box-shadow:none; filter:none; transform:none;}
.region-badge img, .trip-badge img {width:100%; height:auto;}
img.hero-cloud {width:12%; height:auto; max-width:none; background:none; border-radius:0; filter:none;}
@media (min-width: 960px) {
  img.hero-cloud {--cloud-float:clamp(7px, .85vw, 12px); animation:hero-cloud-float 7s ease-in-out infinite;}
  img.cloud-two {--cloud-float:clamp(9px, 1.1vw, 16px); animation-duration:8.5s; animation-delay:-3s;}
  img.cloud-three {--cloud-float:clamp(5px, .6vw, 8px); animation-duration:6.5s; animation-delay:-4s;}
  img.cloud-four {--cloud-float:clamp(6px, .7vw, 10px); animation-duration:9s; animation-delay:-1s;}
}
@keyframes hero-cloud-float {
  0%, 100% {transform:translateY(0);}
  50% {transform:translateY(calc(var(--cloud-float) * -1));}
}
@media (prefers-reduced-motion: reduce) {
  img.hero-cloud {animation:none;}
}
.hero-distant-hills {position:absolute; left:-2%; top:55.9vw; width:30%; height:auto; pointer-events:none;}
.hero-dolphins {position:absolute; top:64.6vw; left:56%; width:15.7%; height:auto; pointer-events:none;}
.section-nav a:nth-child(4) .nav-icon {width:70px; height:auto;}
.about-body::before {content:none;}
.about-map {position:absolute; inset:0; width:100%; height:100%; margin:0; pointer-events:none;}
.oita-map {width:121.8%; height:auto; max-width:none; left:-55%; top:-11vw; object-fit:contain; mask-image:none;}
.kyushu-map {left:auto; top:31.5vw; right:23%; width:23%; height:auto; filter:none;}
.about-circle {object-fit:contain;}
.journey-theme {isolation:isolate;}
.journey-theme::before {height:180px; background:url('../images/lp/wave-ascending.webp') center / 100% 100% no-repeat; border-radius:0;}
.theme-history::before, .theme-food::before {background-image:url('../images/lp/wave-descending.webp');}
.village-land {height:auto; aspect-ratio:auto; object-fit:contain;}
.trip-ideas-body {position:relative;}
.trip-portraits img {object-fit:contain; border-radius:0;}
.trip-family {position:absolute; width:76px; top:20px; left:72%; pointer-events:none;}
.trip-traveler {position:absolute; width:76px; bottom:75px; right:26%; pointer-events:none;}
.access {background:#14769c url('../images/lp/access-ocean.webp') center / cover;}
.access-body {grid-template-columns:62% 38%;}
.route-map {height:auto; object-fit:contain; mix-blend-mode:normal;}
.fair-list h3::before {content:none;}
.fair-number {width:58px; height:110px; object-fit:contain; flex:none;}
.fair-list h3 > span {flex:1;}
.fair-decoration img {border-radius:0;}
.fair-product {position:absolute; pointer-events:none;}
.fair-product-amazake {width:7%; top:43%; left:13.7%;}
.fair-product-soy {width:4.2%; top:48%; right:19%;}
.calendar-button {margin-top:65px;}
.pr-event {position:relative; isolation:isolate;}
.event-collage {display:block; position:relative; border-radius:0; aspect-ratio:auto; overflow:visible;}
.event-collage > img {width:100%; height:auto; object-fit:contain;}
.event-collage .event-lottery {position:absolute; left:-20px; bottom:-30px; width:85px; height:auto;}
.event-products, .event-parent-child {position:absolute; pointer-events:none;}
.event-products {width:180px; height:auto;}
.event-products-left {left:1.5%; top:25%;}
.event-products-right {right:2%; top:44%;}
.event-parent-child {right:4%; top:30px; width:85px; height:auto;}
.sns {position:relative;}
.sns::after {content:''; position:absolute; bottom:-110px; left:-3%; width:106%; height:140px; background:url('../images/lp/wave-descending.webp') center / 100% 100% no-repeat; pointer-events:none;}
.departure {display:block; width:fit-content; max-width:100%; margin-top:14px; padding:0; background:none; clip-path:none;}
.departure img {width:620px; height:auto;}
.course-b .departure img {width:500px;}
.escorted-note {position:relative;}
.tour-companions {position:absolute; width:150px; left:-80px; bottom:0; height:auto; pointer-events:none;}
.individual-person {position:absolute; width:60px; right:-55px; bottom:-10px; height:auto; pointer-events:none;}
@media (min-width: 1921px) {
  .hero-distant-hills {top:1073px;}
  .hero-dolphins {top:1240px;}
  .oita-map {top:-211px;}
  .kyushu-map {top:605px;}
}
@media (max-width: 1199px) and (min-width: 960px) {
  .fair-number {width:48px; height:92px;}
  .event-products {width:130px;}
  .event-parent-child {width:65px;}
  .tour-companions {width:120px; left:-45px;}
  .departure img {width:530px;}
  .course-b .departure img {width:450px;}
}
@media (max-width: 959px) {
  .hero-cloud, .hero-distant-hills {display:none;}
  .hero-dolphins {width:16%; left:30%; top:106vw;}
  .region-badge {display:none;}
  .section-nav a:nth-child(4) .nav-icon {width:70px; height:auto;}
  .about-map {position:relative; inset:auto; width:100%; height:100vw; margin:15px 0 0; max-width:none;}
  .oita-map {width:205%; height:auto; left:-85%; top:-60vw;}
  .kyushu-map {left:6%; right:auto; top:12%; width:36%;}
  .journey-intro-image {position:absolute; top:90px; left:0; height:calc(100% - 90px);}
  .journey-theme::before {height:100px;}
  .village-land {width:100%; height:100px; object-fit:cover;}
  .trip-family, .trip-traveler {display:none;}
  .route-map {width:100%; max-width:450px; height:auto; max-height:none;}
  .fair-number {width:32px; height:65px;}
  .fair-product {display:none;}
  .calendar-button {margin-top:30px;}
  .event-products-left {width:65px; left:1px; top:auto; bottom:25px;}
  .event-products-right {width:82px; right:0; top:auto; bottom:34px;}
  .event-parent-child {width:38px; top:8px; right:10px;}
  .event-collage .event-lottery {width:55px; left:-8px; bottom:-10px;}
  .sns::after {height:65px; bottom:-58px;}
  .departure {width:100%; max-width:540px; margin-top:15px;}
  .departure img, .course-b .departure img {width:100%; max-width:100%; height:auto;}
  .course-b .departure {width:90%;}
  .escorted-note {padding-left:72px; min-height:90px;}
  .tour-companions {width:80px; left:-8px; bottom:4px;}
  .individual-person {width:46px; right:6px; bottom:0;}
}
@media (min-width: 600px) and (max-width: 959px) {
  .about-map {height:106vw; max-height:810px;}
  .oita-map {width:185%; left:-72%; top:-54vw;}
  .kyushu-map {width:30%; left:8%; top:14%;}
  .journey-intro-image {top:0; height:100%;}
  .fair-number {width:42px; height:82px;}
  .event-products-left {width:65px;}
  .event-products-right {width:75px;}
  .event-collage .event-lottery {width:50px;}
  .departure {max-width:580px;}
  .course-b .departure {width:75%;}
}
@media (max-width: 374px) {
  .section-nav a:nth-child(4) .nav-icon {width:62px;}
  .fair-number {width:29px; height:58px;}
  .escorted-note {padding-left:62px; font-size:13px;}
  .tour-companions {width:68px;}
}
.hero-stage {display:contents;}
.section-nav .nav-icon {width:auto; height:auto; max-width:min(70%, var(--asset-width)); max-height:var(--asset-height);}
.section-nav a:nth-child(3) .nav-icon, .section-nav a:nth-child(4) .nav-icon {width:auto; height:auto; max-width:min(70%, var(--asset-width));}
.departure img, .course-b .departure img {width:var(--asset-width); max-width:100%; height:auto;}
.fair-decoration img:nth-child(2), .trip-family, .trip-traveler {max-width:var(--asset-width);}
@media (min-width: 960px) {
  :root {--hero-layout-width:min(100vw, 1580px); --hero-unit:min(1vw, 15.8px);}
  .Header {width:calc(var(--hero-unit) * 15.7); max-width:none; left:calc((100% - var(--hero-layout-width)) / 2 + var(--hero-unit) * 1.7); top:calc(var(--hero-unit) * 1.4);}
  .hero {z-index:1; width:100%; max-width:none; height:calc(var(--hero-unit) * 73.2); max-height:none; margin:0; background:linear-gradient(to bottom, #fff 57%, #f3f8ff 61.5%, #bcdffd 73.6%, #73cbfc 79.8%);}
  .hero-stage {display:block; position:relative; width:var(--hero-layout-width); height:100%; margin-inline:auto; isolation:isolate;}
  .hero::after {top:calc(var(--hero-unit) * 58.4); bottom:calc(var(--hero-unit) * -6); height:auto; background:linear-gradient(to bottom, #0075c9, #0054a2 calc(var(--hero-unit) * 8.14), #00468c calc(var(--hero-unit) * 14.8)); mask-image:linear-gradient(#000 0 calc(var(--hero-unit) * 14.8), transparent 100%);}
  .hero-stage::before {content:""; position:absolute; left:0; top:calc(var(--hero-unit) * 65.3); width:30%; height:calc(var(--hero-unit) * 12); background:linear-gradient(to bottom, #ffffff02, #ffffff16); clip-path:polygon(71% 0, 59% 8.7%, 49% 35.3%, 44% 58.7%, 0 100%, 100% 100%, 94% 38%); pointer-events:none;}
  .hero-collage {width:66.32%; left:18.57%; top:calc(var(--hero-unit) * -3.86); clip-path:inset(0 0 5.41%); z-index:0;}
  .hero-copy {width:44.2%; left:29.65%; top:calc(var(--hero-unit) * 16.53); z-index:1;}
  .hero-land {width:78.4%; max-width:none; left:35.3%; right:auto; top:calc(var(--hero-unit) * 49.42);}
  .region-badge {width:16.14%; left:75.9%; right:auto; top:calc(var(--hero-unit) * 2.5); z-index:2;}
  img.hero-cloud {transform:none; z-index:0;}
  img.cloud-one {width:12.9%; left:-3.7%; top:calc(var(--hero-unit) * 10.8);}
  img.cloud-two {width:12.1%; right:-.1%; top:calc(var(--hero-unit) * 22.4);}
  img.cloud-three {width:8.6%; left:12.6%; top:calc(var(--hero-unit) * 49.2); z-index:1;}
  img.cloud-four {width:5.4%; left:80%; top:calc(var(--hero-unit) * 50.6); z-index:3;}
  .hero-distant-hills {width:28.1%; left:-2.3%; top:calc(var(--hero-unit) * 56.16); z-index:1;}
  .hero-dolphins {width:12.65%; left:56.1%; top:calc(var(--hero-unit) * 66.04); z-index:2;}
  .section-nav {width:14.29%; left:1.8%; top:calc(var(--hero-unit) * 13.5); padding-inline:calc(var(--hero-unit) * .9); border-radius:calc(var(--hero-unit) * 1.1);}
  .section-nav a {min-height:calc(var(--hero-unit) * 7.96); padding-block:calc(var(--hero-unit) * .8); gap:calc(var(--hero-unit) * .5); font-size:clamp(10px, calc(var(--hero-unit) * 1), 14px); color:#514e49;}
  .section-nav .nav-icon {width:auto; max-width:min(70%, calc(var(--hero-unit) * var(--hero-icon-ratio))); max-height:none; --hero-icon-ratio:2.07;}
  .section-nav a:nth-child(3) .nav-icon, .section-nav a:nth-child(4) .nav-icon {width:auto; max-width:min(70%, calc(var(--hero-unit) * var(--hero-icon-ratio)));}
  .section-nav a:nth-child(2) .nav-icon {--hero-icon-ratio:2.36;}
  .section-nav a:nth-child(3) .nav-icon {--hero-icon-ratio:6.07;}
  .section-nav a:nth-child(4) .nav-icon {--hero-icon-ratio:4.21;}
  .food-slider {max-width:1400px; margin-inline:auto;}
}
.map-ferry {display:none;}
@media (min-width: 960px) {
  .about {background:#005ba4 url('../images/lp/coast-fair-tall.webp?v=20261020-2') center bottom / 100% auto no-repeat;}
  .about-body {width:var(--hero-layout-width); max-width:none; height:calc(var(--hero-unit) * 98.37); min-height:0; padding-top:calc(var(--hero-unit) * .7857); overflow:visible;}
  .about-copy {z-index:4;}
  .about h2 {font-size:clamp(28px, calc(var(--hero-unit) * 2.857), 46px); line-height:1.45; letter-spacing:.067em; margin-bottom:calc(var(--hero-unit) * 2.357);}
  .about-copy p {font-size:clamp(14px, calc(var(--hero-unit) * 1.286), 21px); font-weight:700; line-height:2; letter-spacing:0;}
  .about-map {z-index:2;}
  .oita-map {width:110.18%; max-width:none; height:auto; left:-53.36%; top:calc(var(--hero-unit) * -12.84); mask-image:none;}
  .kyushu-map {width:30.25%; max-width:none; height:auto; left:49.21%; right:auto; top:calc(var(--hero-unit) * 27.87);}
  .map-ferry {display:block; position:absolute; left:21.43%; top:calc(var(--hero-unit) * 23.05); width:5.86%; height:auto;}
  .about-temple {width:29.36%; height:auto; right:-3.36%; top:calc(var(--hero-unit) * -1.49); z-index:3;}
  .about-harbor {width:16.93%; height:auto; right:5.78%; top:calc(var(--hero-unit) * 48.59); bottom:auto; border:0; z-index:3;}
  .about-panorama {display:none;}
  .hero-stage::before {content:none;}
}
@media (max-width: 959px) {
  .oita-map {width:166.87%; left:-71.5%;}
}
@media (min-width: 600px) and (max-width: 959px) {
  .oita-map {width:150.59%; left:-59.8%;}
}
.journey-intro {background:#fff;}
.journey-intro::before {content:none;}
.journey-intro-image {mask-image:none;}
.journey-intro::after {content:""; position:absolute; width:136.32%; height:23.18vw; left:-18.16%; top:2vw; background:url('../images/lp/wave-descending.webp') center / 100% 100% no-repeat; opacity:.3; pointer-events:none; z-index:1;}
.journey-theme::before {inset:auto; opacity:.65; background-repeat:no-repeat; background-size:100% 100%;}
.theme-history::before {content:none;}
.theme-nature::before {width:133.82%; left:-16.91%; top:calc(100% - 24.98vw); height:52.82vw; background-image:url('../images/lp/wave-ascending.webp');}
.theme-food::before {width:136.32%; left:-18.16%; top:-2.286vw; height:23.18vw; background-image:url('../images/lp/wave-descending.webp');}
@media (min-width: 960px) {
  .journey-intro {height:68.6786vw; max-height:none; min-height:0;}
  .journey-intro-image {height:100%; object-fit:contain; object-position:center;}
  .journey-intro-copy {top:5vw;}
  .theme-nature .theme-head, .theme-history .theme-head {padding-bottom:70px;}
  .theme-history {padding-top:24px;}
}
@media (max-width: 959px) {
  .journey-intro-image {mask-image:linear-gradient(#000 90%, transparent);}
  .journey-intro::after {top:18vw; height:32vw;}
  .theme-nature::before {top:calc(100% - 18vw);}
  .theme-food::before {top:-8vw;}
}
.access-body {position:relative; overflow:hidden;}
.fair {padding:0 0 70px;}
.fair-intro {position:relative; margin-inline:auto;}
.fair-main {position:static;}
.fair-item-media {pointer-events:none;}
.fair-photo {display:block; object-fit:contain;}
.fair-number {width:var(--asset-width); height:var(--asset-height);}
.fair-list li:last-child {margin-bottom:0;}
.calendar-notice {width:650px; max-width:calc(100% - 48px); margin:75px auto 0; padding:1px 12px; border:4px double #fff; outline:1px solid #bd5b49; border-radius:14px; background:#bd5b49; color:#fff; font:700 20px/1.7 var(--serif); letter-spacing:0; text-align:center;}
@media (min-width: 960px) {
  .access-body {display:block; width:var(--hero-layout-width); max-width:none; min-height:calc(var(--hero-unit) * 29.286);}
  .access-copy {width:49%; margin-left:12.86%; padding:calc(var(--hero-unit) * 5.71) 0 calc(var(--hero-unit) * 6.43);}
  .access h2 {font-size:clamp(24px, calc(var(--hero-unit) * 2.143), 34px); margin-bottom:calc(var(--hero-unit) * 1.43);}
  .access-copy p {font-size:clamp(15px, calc(var(--hero-unit) * 1.429), 23px); line-height:1.6; margin-bottom:calc(var(--hero-unit) * 2.57); letter-spacing:0;}
  .access .pill-link {min-height:calc(var(--hero-unit) * 5); padding:12px 26px 12px 36px; font-size:clamp(16px, calc(var(--hero-unit) * 1.571), 25px);}
  .route-map {position:absolute; left:55%; top:0; width:44.96%; height:auto; max-width:none; max-height:none;}
  .fair-intro {width:var(--hero-layout-width); padding-top:calc(var(--hero-unit) * 7.857);}
  .fair-main {width:42.857%; max-width:none; padding:0;}
  .fair-heading > p:first-child {font-size:calc(var(--hero-unit) * 1.714); line-height:1.5; margin-bottom:calc(var(--hero-unit) * .429);}
  .fair-heading h2 {font-size:calc(var(--hero-unit) * 4); line-height:1.5;}
  .fair-dates {width:92%; margin:0 auto calc(var(--hero-unit) * 1.714); padding:0 8px; font-size:calc(var(--hero-unit) * 1.643); line-height:1.5; letter-spacing:0;}
  .fair-heading .fair-lead {font-size:clamp(14px, calc(var(--hero-unit) * 1.286), 21px); line-height:2; letter-spacing:0;}
  .fair-list {margin-top:calc(var(--hero-unit) * 2.857);}
  .fair-list li {position:static; padding:0; margin-bottom:calc(var(--hero-unit) * 2.286);}
  .fair-list h3 {display:grid; grid-template-columns:calc(var(--hero-unit) * 4.571) 1fr; gap:calc(var(--hero-unit) * 1.571); font-size:clamp(19px, calc(var(--hero-unit) * 1.857), 30px); margin-bottom:calc(var(--hero-unit) * .857);}
  .fair-number {max-width:100%; max-height:calc(var(--hero-unit) * 5.643); object-position:left center;}
  .fair-list p {font-size:clamp(14px, calc(var(--hero-unit) * 1.286), 21px); font-weight:400; line-height:1.9; letter-spacing:0;}
  .fair-item-media {display:contents;}
  .fair-photo {position:absolute; max-width:none; height:auto; border-radius:8px;}
  .fair-photo-coast {width:23.8%; left:0; top:calc(var(--hero-unit) * 6.43); height:calc(var(--hero-unit) * 25.71); object-fit:cover;}
  .fair-photo-ship {width:28.07%; left:76.14%; top:calc(var(--hero-unit) * 14.43);}
  .fair-photo-factory {width:16.54%; left:0; top:calc(var(--hero-unit) * 37.86);}
  .fair-photo-amazake {width:6.46%; left:13.86%; top:calc(var(--hero-unit) * 41.07);}
  .fair-photo-pot {width:16.5%; left:79%; top:calc(var(--hero-unit) * 39.286);}
  .fair-photo-shop {width:19.43%; left:4.07%; top:calc(var(--hero-unit) * 59.07);}
  .fair-photo-soy {width:4.36%; left:75.79%; top:calc(var(--hero-unit) * 53.79);}
  .fair-photo-products {width:16.07%; left:82.43%; top:calc(var(--hero-unit) * 60.36);}
}
@media (max-width: 959px) {
  .access-body {display:block; width:100%; max-width:none; min-height:0; padding:80.53vw 30px 46px;}
  .route-map {position:absolute; top:-4.267vw; left:-4.267%; width:139.2%; height:auto; max-width:none; max-height:none; border-radius:0;}
  .access-copy {width:100%; padding:0;}
  .access h2 {font-size:22px; line-height:1.4; text-align:center; margin-bottom:14px;}
  .access-copy p {font-size:15px; line-height:1.8; margin-bottom:18px; letter-spacing:0;}
  .access .pill-link {width:300px; max-width:100%; min-height:45px; padding:8px 14px; margin-inline:0; gap:8px; font-size:15px; line-height:1.4; letter-spacing:0;}
  .access .round-arrow {width:19px; height:19px; flex:none; font-size:20px;}
  .fair {padding-bottom:40px;}
  .fair-intro {width:100%; padding-top:44px;}
  .fair-main {width:100%; max-width:none; padding:0;}
  .fair-heading {padding-inline:20px;}
  .fair-heading > p:first-child {font-size:18px; line-height:1.5; margin-bottom:0;}
  .fair-heading h2 {font-size:36px; line-height:1.2;}
  .fair-dates {width:100%; margin:10px auto 14px; padding:2px 7px; font-size:clamp(12px, 4vw, 16px); line-height:1.6; letter-spacing:0; white-space:nowrap;}
  .fair-heading .fair-lead {font-size:14px; line-height:1.5; letter-spacing:-.4px; font-weight:400;}
  .fair-list {margin-top:30px; padding:0 5px 0 20px;}
  .fair-list li {display:grid; grid-template-columns:minmax(0, 1fr) 80px; gap:20px; align-items:start; min-height:0; padding:0; margin-bottom:24px;}
  .fair-list h3 {display:grid; grid-template-columns:34px minmax(0, 1fr); gap:12px; align-items:center; font-size:16px; line-height:1.5; margin-bottom:10px; letter-spacing:0;}
  .fair-number {width:34px; height:auto; max-height:none;}
  .fair-list p {font-size:14px; line-height:1.75; letter-spacing:0; font-weight:400;}
  .fair-item-media {display:flex; flex-direction:column; align-items:center; gap:12px; margin-top:-4px;}
  .fair-photo {position:static; width:80px; max-width:100%; height:auto; border-radius:5px;}
  .fair-photo-coast, .fair-photo-ship {height:78px; object-fit:cover;}
  .fair-item:first-child .fair-item-media {gap:15px;}
  .fair-photo-amazake {width:25px;}
  .fair-photo-pot {width:76px;}
  .fair-photo-soy {width:18px;}
  .fair-photo-products {width:68px;}
  .fair-item:nth-child(3) .fair-item-media {gap:14px;}
  .calendar-notice {width:calc(100% - 44px); max-width:none; margin-top:40px; padding:2px 10px; font-size:17px; line-height:1.3;}
}
.Calendar_Area {margin-block:100px 0; max-width:1200px; margin-inline:auto;}
.Calendar_heading {position:relative; max-width:94%; margin:0 auto; padding-block:0.7%; padding-inline:100px 0; overflow:visible; background:#3fa0d9; border-radius:100px; color:#fff; font-size:clamp(18px, 1.75vw, 24px);}
.Calendar_heading__icon.-flag {position:absolute; top:-5px; bottom:0; left:15px; width:75px; pointer-events:none;}
.Calendar_heading__icon.-person {position:absolute; top:-10px; right:-10px; bottom:0; width:200px; pointer-events:none;}
.Calendar_Line {padding:0 40px 60px;}
.Calendar_Scroll {width:100%; overflow-x:auto; overflow-y:hidden; overscroll-behavior-x:contain; -webkit-overflow-scrolling:touch; scrollbar-width:thin;}
.Calendar {position:relative; width:100%; min-width:900px; margin:0 auto;}
.Calendar, .Calendar *, .Calendar *::before, .Calendar *::after {box-sizing:border-box;}
.Calendar__head {display:flex; align-items:flex-end; gap:10px; padding:24px 18px 14px; color:#4a443e; line-height:1;}
.Calendar__head--period {flex-wrap:wrap;}
.Calendar__year {flex-shrink:0; padding-bottom:4px; font-size:22px; font-weight:800; white-space:nowrap;}
.Calendar__period {display:flex; align-items:flex-end; gap:6px; min-width:0;}
.Calendar__month {font-size:50px; font-weight:900; line-height:0.85;}
.Calendar__month-text {padding-bottom:2px; font-size:30px; font-weight:800; line-height:1; white-space:nowrap;}
.Calendar__period-separator {padding:0 5px 5px; font-size:30px; font-weight:700; line-height:1;}
.Calendar__illustration {position:absolute; top:20%; left:16%; z-index:15; width:13%; max-width:130px; pointer-events:none;}
.Calendar__weekdays, .Calendar__grid {display:grid; grid-template-columns:repeat(7, minmax(0, 1fr)); width:100%; gap:2px; background:#fff;}
.Calendar__weekdays {margin-bottom:2px;}
.Calendar__weekday {display:flex; align-items:center; justify-content:center; min-width:0; height:50px; padding:8px; background:#79bfd0; color:#fff; font-size:18px; font-weight:700; line-height:1; text-align:center;}
.Calendar__weekday:first-child {background:#e56b8a;}
.Calendar__weekday:last-child {background:#65a2df;}
.Calendar__cell {position:relative; min-width:0; min-height:80px; overflow:hidden; background:#dfe8eb;}
.Calendar__cell.is-other-month {background:#ececec;}
.Calendar__cell.is-next-month {background:#c8dfea;}
.Calendar__date {position:relative; z-index:3; display:flex; align-items:baseline; justify-content:center; width:100%; min-height:24px; margin:0; padding:10px 5px 0; color:#2e2e2e; font-size:15px; font-weight:500; line-height:1; text-align:center;}
.Calendar__cell.is-other-month .Calendar__date {color:#9a9a9a;}
.Calendar__cell.is-next-month .Calendar__date {color:#244d63; font-weight:600;}
.Calendar__date-month {margin-right:4px; color:#3fa0d9; font-size:12px; font-weight:800; line-height:1;}
.Calendar__cell:nth-child(7n + 1):not(.is-other-month) .Calendar__date,.Calendar__cell .Calendar__date.Holiday {color:#c94565;}
.Calendar__cell:nth-child(7n):not(.is-other-month) .Calendar__date {color:#397caf;}
.calendar__events {position:relative; z-index:3; display:flex; flex-direction:column; gap:8px; min-width:0; padding:10px 5px;}
.calendar__events.End {justify-content:flex-end; height:calc(100% - 25px);}
.calendar__event {display:block; min-width:0; padding:4px; overflow:hidden; border:0; border-radius:6px; outline:none; cursor:pointer; transition:transform 0.25s ease, box-shadow 0.25s ease, filter 0.25s ease;}
.calendar__event:hover {z-index:2; transform:translateY(-2px); box-shadow:0 4px 10px rgba(0, 0, 0, 0.1); filter:brightness(1.02);}
.calendar__event:focus-visible {outline:3px solid rgba(0, 58, 125, 0.45); outline-offset:2px;}
.calendar__event.Color01 {background:#e56b8a;}
.calendar__event.Color02 {background:#e56262;}
.calendar__event.Color03 {background:#65a2df;}
.calendar__event.Color04 {background:#cf74d5;}
.calendar__event.Color05 {background:#9abc55;}
.calendar__event.Color06 {background:#6994d5;}
.calendar__event.Color07 {background:#e97163;}
.calendar__event.Color08 {background:#fa9a0c;}
.calendar__event-group {display:flex; align-items:flex-start; min-width:0; padding:2px 3px; overflow-wrap:anywhere; background:#fff; border-radius:3px; font-size:clamp(10px, 0.79vw, 12px); line-height:1.5; letter-spacing:-0.2px; text-align:left; word-break:break-word; flex-flow:column;}
.Color01 .calendar__event-group {color:#e56b8a;}
.Color02 .calendar__event-group {color:#e56262;}
.Color03 .calendar__event-group {color:#65a2df;}
.Color04 .calendar__event-group {color:#cf74d5;}
.Color05 .calendar__event-group {color:#9abc55;}
.Color06 .calendar__event-group {color:#6994d5;}
.Color07 .calendar__event-group {color:#e97163;}
.Color08 .calendar__event-group {color:#fa9a0c;}
.calendar__event-group__direction {display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; margin:1px 3px 0 0; padding:3px 6px; background:#492323; border-radius:3px; color:#fff; font-size:10px; line-height:1; white-space:nowrap;}
.calendar__event-group__direction.Up {background:#c62828;}
.calendar__event-group__direction.Down {background:#0052c7;}
.calendar__event-title {min-width:0; margin-top:2px; overflow-wrap:anywhere; color:#fff; font-size:clamp(10.5px, 0.83vw, 12.5px); font-weight:700; line-height:1.5; word-break:break-word;}
.Calendar_heading__title {font:inherit; font-weight:700;}
.Calendar_heading__icon img {width:100%; height:auto;}
.calendar-scroll-hint {display:none;}
.calendar__event {width:100%; font-family:var(--sans); letter-spacing:0; text-align:left;}
.calendar__event-title {display:block;}
.Calendar_Scroll:focus-visible {outline:3px solid #ed9e27; outline-offset:3px;}
.calendar-dialog {position:fixed; inset:0; margin:auto; width:min(90vw, 640px); max-height:min(80dvh, 720px); padding:28px 24px 24px; overflow-y:auto; overscroll-behavior:contain; border:0; border-radius:12px; background:#fff; color:#333; box-shadow:0 20px 50px #0003;}
.calendar-dialog::backdrop {background:#0009; backdrop-filter:blur(2px);}
.calendar-modal__close {position:absolute; top:14px; right:14px; display:grid; place-items:center; width:40px; height:40px; padding:0; background:#f3f6f7; border-radius:50%; color:#333; font-size:22px; line-height:1;}
.calendar-modal__close:hover {background:#e5eef1;}
.calendar-modal__date {margin:0 45px 10px 0; color:#666; font-size:16px; font-weight:700;}
.calendar-modal__date span {display:inline-block; margin-left:10px; color:#af482d; font-size:12px;}
.calendar-modal__direction {display:inline-block; margin-bottom:6px; padding:3px 8px; border-radius:4px; color:white; font-size:12px; line-height:1.5;}
.calendar-modal__direction.Up {background:#c62828;}
.calendar-modal__direction.Down {background:#0052c7;}
.calendar-modal__group {font-size:14px; font-weight:700;}
.calendar-modal__title {margin:5px 0 16px; font-size:22px; font-weight:700; line-height:1.5;}
.calendar-modal__content {border-top:1px solid #e5ebee; padding-top:16px; font-size:15px; line-height:1.9;}
.calendar-modal__content p + p {margin-top:10px;}
@media (max-width: 959px) {
  .calendar-scroll-hint {display:block; margin:10px 20px 0; font-size:12px; text-align:right; color:#365565;}
}
@media (max-width: 779px) {
  .Calendar_heading {padding-inline:75px 16px;}
  .Calendar_heading__icon.-flag {top:-2px; left:15px; width:55px;}
  .Calendar_Line {padding:0 20px 40px;}
  .Calendar {min-width:860px;}
  .Calendar__head {gap:8px; padding:15px 10px 12px;}
  .Calendar__year {padding-bottom:3px; font-size:18px;}
  .Calendar__month {font-size:45px;}
  .Calendar__month-text, .Calendar__period-separator {font-size:22px;}
  .Calendar__weekday {height:44px; font-size:16px;}
  .Calendar__cell {min-height:100px;}
}
@media (max-width: 581px) {
  .Calendar_Area {width:calc(100% - 24px); margin-block:50px 0;}
  .Calendar_heading {padding:5px 16px 5px 70px; font-size:18px;}
  .Calendar_heading__icon.-flag {bottom:0; left:12px; width:55px; margin:auto 0;}
  .calendar-scroll-hint {margin-right:12px; font-size:11px;}
  .Calendar_Line {position:relative; left:-10px; width:calc(100% + 20px); padding-inline:0;}
  .Calendar__head {gap:5px; padding-inline:30px;}
  .Calendar__head--period {flex-wrap:nowrap;}
  .Calendar__year {padding-bottom:0; font-size:16px;}
  .Calendar__period {gap:4px;}
  .Calendar__month {font-size:38px;}
  .Calendar__month-text {font-size:19px;}
  .Calendar__period-separator {padding:0 2px 2px; font-size:19px;}
  .Calendar__weekday {height:40px; font-size:15px;}
  .Calendar__date {padding-top:8px; font-size:14px;}
  .Calendar__date-month {font-size:11px;}
  .Calendar__cell {min-height:70px;}
  .calendar-dialog {width:calc(100vw - 24px); max-height:calc(100dvh - 40px); padding:24px 18px 20px;}
  .calendar-modal__title {font-size:18px;}
}
@media (prefers-reduced-motion: reduce) {
  .calendar__event {transition:none;}
}
.calendar-coming-soon {width:766.5px; max-width:100%; margin:70px auto 0;}
.calendar-coming-soon__art {aspect-ratio:1533 / 590; overflow:hidden;}
.calendar-coming-soon picture {display:block;}
.calendar-coming-soon img {width:100%; max-width:none; height:auto; margin-top:-11.9374%;}
.pr-event {padding:85px 0; background:radial-gradient(ellipse at 70% 100%, #59b8e455, transparent 70%), linear-gradient(110deg, #3ca5da, #43a6db);}
.event-card {width:min(1050px, calc(100% - 100px)); min-height:430px; grid-template-columns:minmax(0, 1fr) 334px; gap:20px; padding:45px 40px 45px 60px; border-radius:12px; background:#fffef8;}
.event-copy h2 {font-size:34px; letter-spacing:0;}
.event-copy {width:100%; min-width:0;}
.event-date {width:575px; max-width:100%; margin-bottom:14px; padding:1px 10px; font-size:18px; line-height:1.5;}
.event-copy > p:not(.event-date) {font:400 16px/1.6 var(--sans); letter-spacing:0;}
.event-copy .event-details {margin-bottom:20px;}
.event-copy .event-note {margin-top:8px;}
.event-collage {width:334px; max-width:100%;}
.event-collage .event-lottery {width:98px; left:0; bottom:-16px;}
.event-products-left {width:192px; left:calc(50% - 666px); top:225px; bottom:auto;}
.event-products-right {width:246px; left:calc(50% + 386px); right:auto; top:328px; bottom:auto;}
.event-parent-child {width:84px; left:calc(50% + 544px); right:auto; top:44px;}
.sns-track {transform:translateX(-340px); animation-name:sns-photo-flow;}
@keyframes sns-photo-flow {
  from {transform:translateX(-340px);}
  to {transform:translateX(calc(-50% - 350px));}
}
.sns::after {width:136.32%; height:23.18vw; left:-18.16%; top:calc(100% - 12px); bottom:auto;}
.travel-wave-defs {position:absolute; width:0; height:0; overflow:hidden;}
.travel {padding-top:180px; background:none;}
.travel-intro {height:560px; clip-path:url('#travel-wave-pc');}
.travel-copy {padding-top:0;}
.travel-ferry {position:absolute; inset:0; width:100%; height:100%; max-height:none; margin:0; object-fit:cover; object-position:center 40%; mask-image:linear-gradient(transparent, #000 24%, #000);}
.travel-kicker {font-size:30px; line-height:1.5;}
.travel-copy h2 {font-size:54px;}
.travel-copy > p:last-child {width:800px; max-width:100%; font-size:17px; font-weight:400;}
.tour-options {width:min(1100px, calc(100% - 80px)); grid-template-columns:1fr 1fr .58fr; gap:30px; padding:25px 0 80px;}
.escorted-note {padding:12px 20px 12px 80px; min-height:75px; font-size:16px;}
.tour-companions {width:134px; left:-60px; bottom:-10px;}
.individual-note {font-size:14px; padding:12px;}
.tour-card {min-height:160px; padding:30px 24px 20px;}
.tour-card h3 {font-size:20px;}
.tour-card p {font-size:16px;}
.coming-soon {min-height:160px;}
.course-heading {min-height:240px; padding:24px 0 32px;}
.course-heading .container {width:min(1100px, calc(100% - 80px)); padding-right:165px;}
.course-ribbon {display:block; width:max-content; margin-bottom:6px;}
.course-heading h3 {display:inline; font-size:54px; line-height:1.25; letter-spacing:0;}
.departure {display:inline-block; width:auto; max-width:100%; margin:0 0 0 6px; vertical-align:baseline;}
.departure img {display:inline-block; width:437.5px; max-width:100%; height:auto;}
.course-b .departure {width:auto;}
.course-b .departure img {width:340.5px;}
.course-heading .trip-badge {width:172.5px; top:8px; right:0;}
.course-content {width:min(1100px, calc(100% - 80px)); padding:60px 0 110px;}
.course-intro p {font-weight:400;}
.course-intro > img {height:auto;}
.course-features p {font-weight:400;}
.course-detail {grid-template-columns:minmax(0, 1fr) 500px; grid-template-rows:auto 1fr; gap:30px 60px; padding-top:70px;}
.timeline {grid-column:1; grid-row:1 / span 2;}
.timeline-picture {display:block;}
.timeline-image {width:512.5px; max-width:100%; height:auto;}
.course-b .timeline-image {width:513.5px;}
.course-photo-lead {grid-column:2; grid-row:1; display:grid; gap:30px;}
.course-photo-end {grid-column:2; grid-row:2; display:grid; grid-template-columns:1fr 1fr; gap:30px; align-self:start;}
.course-photo-lead img, .course-photo-end img {width:100%; max-width:none; height:auto; object-fit:cover; border-radius:10px;}
.course-photo-lead img {aspect-ratio:500 / 420;}
.course-a .course-photo-lead img:nth-child(2) {aspect-ratio:500 / 350;}
.course-b .course-photo-lead img:nth-child(2) {display:none;}
.course-a .course-photo-end {grid-template-columns:250fr 220fr;}
.course-a .course-photo-end img {height:240px;}
.course-b .course-photo-end img {height:300px;}
.course-b .course-photo-end img:nth-last-child(-n+2) {height:320px;}
.course-content > .pill-link {width:600px; max-width:100%; min-width:0; margin:80px auto 0; font-size:20px;}
.visually-hidden {position:absolute !important; width:1px !important; height:1px !important; padding:0 !important; margin:-1px !important; overflow:hidden !important; clip:rect(0, 0, 0, 0) !important; white-space:nowrap !important; border:0 !important;}
.tourism {width:min(1100px, calc(100% - 80px)); padding:85px 0 75px;}
.tourism p {font-size:18px; font-weight:400;}
@media (min-width: 960px) and (max-width: 1199px) {
  .event-card {grid-template-columns:minmax(0, 1fr) 28%; padding:35px 35px 35px 60px;}
  .event-copy h2 {font-size:28px;}
  .event-parent-child {left:auto; right:4%;}
  .event-products-right {left:auto; right:0;}
  .travel-copy h2 {font-size:42px;}
  .course-heading h3 {font-size:35px;}
  .departure img {width:330px;}
  .course-b .departure img {width:270px;}
  .course-detail {grid-template-columns:minmax(0, 1fr) 45%; gap:25px 35px;}
  .course-intro {grid-template-columns:34% 1fr; gap:30px;}
  .course-intro h3 {font-size:30px;}
  .course-intro p {font-size:16px;}
  .course-features li {padding:14px;}
  .course-features h4 {font-size:17px;}
}
@media (max-width: 959px) {
  .calendar-coming-soon {width:100%; margin-top:50px;}
  .calendar-coming-soon__art {aspect-ratio:750 / 292;}
  .calendar-coming-soon img {margin-top:-18.6667%;}
  .pr-event {padding:40px 12px 75px;}
  .event-card {width:100%; min-height:0; padding:28px 24px 38px; display:flex; flex-direction:column; gap:25px;}
  .event-copy h2 {font-size:23px;}
  .event-date {font-size:13px; padding:3px 6px;}
  .event-copy > p:not(.event-date) {font-size:14px;}
  .event-collage {width:210px; max-width:75%;}
  .event-collage .event-lottery {width:60px; left:-5px; bottom:-12px;}
  .event-products-left {width:75px; left:0; top:auto; bottom:20px;}
  .event-products-right {width:95px; left:auto; right:0; top:auto; bottom:30px;}
  .event-parent-child {width:36px; left:auto; right:12px; top:0;}
  .sns-track {transform:translateX(-200px); animation-name:sns-photo-flow-sp;}
  @keyframes sns-photo-flow-sp {
    from {transform:translateX(-200px);}
    to {transform:translateX(calc(-50% - 206px));}
  }
  .sns::after {display:none;}
  .travel {padding-top:20px;}
  .travel-intro {height:380px; clip-path:url('#travel-wave-sp');}
  .travel-copy {width:calc(100% - 40px); padding:0;}
  .travel-kicker {font-size:20px; line-height:1.5; margin-bottom:12px;}
  .travel-copy h2 {font-size:28px; line-height:1.5; margin-bottom:16px; letter-spacing:0; white-space:nowrap;}
  .travel-copy > p:last-child {font-size:13px; line-height:1.9; letter-spacing:0;}
  .travel-ferry {inset:auto 0 -28px; height:281px; object-position:64% bottom; mask-image:linear-gradient(transparent, #000 23%, #000);}
  .tour-options {width:calc(100% - 60px); grid-template-columns:minmax(0, 1fr); gap:24px; padding:36px 0 52px;}
  .escorted-note {grid-column:1; grid-row:1; width:calc(100% - 20px); margin-inline:auto; padding:10px 14px; min-height:0; text-align:left; font-size:14px; line-height:1.3; letter-spacing:0;}
  .escorted-note::after {content:''; position:absolute; top:100%; left:50%; width:15px; height:15px; background:#fffeec; border-right:1px dashed #ddd7c5; border-bottom:1px dashed #ddd7c5; transform:translateX(-50%) rotate(45deg);}
  .tour-companions, .individual-person {display:none;}
  .individual-note {grid-column:1; grid-row:4; width:calc(100% - 20px); margin:20px auto 0; padding:8px 14px; font-size:14px; line-height:1.3; text-align:left; letter-spacing:0;}
  .tour-card {min-height:0; padding:20px 16px 12px;}
  .tour-card[href='#course-a'] {grid-column:1; grid-row:2;}
  .tour-card[href='#course-b'] {grid-column:1; grid-row:3;}
  .tour-card > span {font-size:16px; line-height:1.3;}
  .tour-card h3 {font-size:15px; line-height:1.3; margin-bottom:8px; letter-spacing:0;}
  .tour-card p {font-size:13px; line-height:1.5; text-align:center; letter-spacing:0;}
  .coming-soon {grid-column:1; grid-row:5; min-height:60px; padding:10px;}
  .coming-soon > span {font-size:15px;}
  .coming-soon p {font-size:18px;}
  .course-heading {min-height:220px; padding:20px 30px 30px;}
  .course-heading .container {width:100%; padding:0;}
  .course-ribbon {font-size:18px; line-height:1.3; margin-bottom:6px;}
  .course-heading h3 {display:block; padding:0; font-size:28px; line-height:1.3; letter-spacing:0;}
  .course-heading h3 br {display:block;}
  .course-heading .trip-badge {width:82px; right:-5px; top:-8px;}
  .course-a {background:#fff;}
  .course-a .departure {display:block; width:min(437.5px, 100%); max-width:100%; margin:12px 0 0;}
  .course-a .departure img {width:100%; max-width:100%; height:auto;}
  .course-b .course-heading {min-height:250px;}
  .course-b .departure {display:block; width:calc(100% + 20px); max-width:none; margin:12px 0 0 -10px;}
  .course-b .departure img {width:100%; max-width:none;}
  .course-content {width:calc(100% - 40px); padding:20px 0 80px;}
  .course-intro {display:block; margin-bottom:24px;}
  .course-intro > img {width:100%; max-width:none; height:auto; aspect-ratio:auto; margin:0 0 20px;}
  .course-intro h3 {font-size:20px; line-height:1.5; text-align:center; margin-bottom:20px; letter-spacing:0;}
  .course-intro p {font-size:14px; line-height:1.75; letter-spacing:0;}
  .course-features {gap:10px; padding-bottom:32px;}
  .course-features li {padding:12px 14px; border-radius:12px;}
  .course-features h4 {font-size:16px; margin-bottom:4px;}
  .course-features p {font-size:14px; line-height:1.5; letter-spacing:0;}
  .course-detail {display:flex; flex-direction:column; gap:30px; padding-top:30px;}
  .course-photo-lead, .course-photo-end {width:100%; display:grid; grid-template-columns:minmax(0, 1fr) minmax(0, 1fr); gap:15px;}
  .course-photo-lead img, .course-a .course-photo-lead img:nth-child(2) {aspect-ratio:160 / 140; height:auto;}
  .course-b .course-photo-lead img:nth-child(2) {display:block;}
  .timeline {width:100%;}
  .timeline-image, .course-b .timeline-image {width:100%; max-width:337.5px; height:auto; margin-inline:auto;}
  .course-a .course-photo-end {grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);}
  .course-a .course-photo-end img {height:auto; aspect-ratio:160 / 140;}
  .course-b .course-photo-end {grid-template-columns:repeat(3, minmax(0, 1fr)); gap:10px;}
  .course-b .course-photo-end img, .course-b .course-photo-end img:nth-last-child(-n+2) {height:auto; aspect-ratio:1 / 1.4; border-radius:6px;}
  .course-content > .pill-link {width:100%; margin-top:40px; min-height:48px; padding:10px 12px; font-size:13px; letter-spacing:0; gap:5px;}
  .course-content > .pill-link .round-arrow {width:22px; height:22px; flex:none;}
  .tourism {width:calc(100% - 60px); padding:35px 0 30px;}
  .tourism p {font-size:14px; line-height:1.6; margin-bottom:18px; text-align:left; letter-spacing:0;}
}
@media (max-width: 374px) {
  .travel-copy h2 {font-size:24px;}
  .travel-kicker {font-size:18px;}
  .course-heading {padding-inline:20px;}
  .course-heading h3 {font-size:25px;}
  .course-heading .trip-badge {width:72px;}
  .tour-options {width:calc(100% - 40px);}
  .course-content > .pill-link {font-size:11px;}
}
@media (prefers-reduced-motion: reduce) {
  .sns-track {animation:none;}
}
.guidebook, .Footer {--footer-blue:#347ab6;}
.guidebook {padding:152px 0 96px; background:linear-gradient(#fff 80px, var(--footer-blue) 80px);}
.guidebook::before {top:0; left:0; width:100%; height:80px; border-radius:0; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1400 80' preserveAspectRatio='none'%3E%3Cpath fill='%23347ab6' d='M0 50C90 55 105 80 250 76S410 45 550 48S710 80 850 76S1010 45 1150 48S1310 65 1400 72V80H0Z'/%3E%3C/svg%3E") center / 100% 100% no-repeat;}
.guidebook-body {position:relative; width:876px; max-width:calc(100% - 80px); grid-template-columns:236px minmax(0, 1fr); gap:45px; align-items:start;}
.guidebook-cover {width:236px; max-width:100%; height:auto;}
.guidebook h2 {font-size:30px; line-height:1.6; margin-bottom:15px; letter-spacing:0;}
.guidebook p {font-size:18px; font-weight:700; line-height:1.8; letter-spacing:0; margin-bottom:55px;}
.guidebook .pill-link {width:380px; max-width:100%; min-width:0; min-height:60px; padding:12px 26px 12px 38px; justify-content:space-between; gap:12px; color:var(--footer-blue); font:700 24px/1.5 var(--sans); letter-spacing:0;}
.guidebook .pill-link > span:first-child {white-space:nowrap;}
.guidebook .round-arrow {width:32px; height:32px; flex:none; border-color:var(--footer-blue); color:var(--footer-blue);}
.Footer {padding:14px 24px 18.5px; background:var(--footer-blue); color:#fff;}
.Footer small {display:block; color:inherit; font-size:13px; line-height:1.5; font-weight:400; letter-spacing:0;}
.page-top::before {content:''; width:12px; height:12px; border-top:2px solid currentColor; border-right:2px solid currentColor; transform:translateY(3px) rotate(-45deg);}
@media (max-width: 959px) {
  .guidebook {padding:56px 0 60px; background:linear-gradient(#fff 22px, var(--footer-blue) 22px);}
  .guidebook::before {height:22px; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 375 22' preserveAspectRatio='none'%3E%3Cpath fill='%23347ab6' d='M0 13C40 10 60 24 96 20S139 11 176 13S233 24 270 20S326 10 375 16V22H0Z'/%3E%3C/svg%3E");}
  .guidebook-body {width:295px; max-width:calc(100% - 60px); display:flex; flex-direction:column; align-items:center; gap:20px;}
  .guidebook-cover {width:210px; max-width:100%;}
  .guidebook-body > div {width:100%;}
  .guidebook h2 {font-size:18px; line-height:1.35; margin-bottom:12px; text-align:center;}
  .guidebook p {font-size:13px; font-weight:500; line-height:1.55; margin-bottom:20px;}
  .guidebook .pill-link {width:240px; max-width:100%; min-height:50px; margin-inline:auto; padding:10px 16px 10px 24px; font-size:18px; line-height:1.5; gap:10px;}
  .guidebook .round-arrow {width:26px; height:26px; font-size:24px;}
  .Footer {padding:10px 20px 37px;}
  .Footer small {font-size:10px; line-height:1.35;}
  .page-top::before {width:10px; height:10px;}
}
@media (max-width: 374px) {
  .guidebook-body {max-width:calc(100% - 40px);}
  .guidebook h2 {font-size:17px;}
}
.guidebook .round-arrow {display:grid; place-items:center; padding:0; line-height:1;}
.guidebook .round-arrow svg {display:block; width:100%; height:100%; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round;}
.mayor-messages {padding:90px 0 85px; background:#f3f7ef;}
.mayor-messages-body {width:min(1000px, calc(100% - 80px)); margin-inline:auto;}
.mayor-messages-heading {max-width:800px; margin:0 auto 50px;}
.mayor-messages-heading h2 {font:600 36px/1.6 var(--serif); text-align:center; color:#365565; margin-bottom:24px; letter-spacing:.03em;}
.mayor-messages-heading > p {font-size:16px; font-weight:500; line-height:2; letter-spacing:.025em;}
.mayor-messages-list {display:grid; gap:34px;}
.mayor-message {display:grid; grid-template-columns:150px minmax(0, 1fr); align-items:start; gap:35px;}
.mayor-profile {display:flex; flex-direction:column; align-items:center; gap:17px; padding-top:12px;}
.mayor-portrait {width:132px; height:132px; flex:none; overflow:hidden; border:4px solid #fff; border-radius:50%; background:#fff; box-shadow:0 2px 8px #31565e10;}
.mayor-portrait img {width:100%; height:100%; max-width:none; object-fit:cover; object-position:center 18%;}
.mayor-message-usuki .mayor-portrait img {transform:scale(1.5); transform-origin:50% 20%;}
.mayor-message-tsukumi .mayor-portrait img {transform:scale(1.2); transform-origin:50% 20%;}
.mayor-profile figcaption {text-align:center;}
.mayor-role {display:block; color:#333; font-size:14px; line-height:1.5;}
.mayor-profile strong {display:block; margin-top:3px; font:600 22px/1.5 var(--serif); color:#365565; letter-spacing:.06em;}
.mayor-comment {position:relative; border:1px solid #d8e3db; border-radius:20px; padding:30px 34px; background:#fff; box-shadow:0 4px 14px #31565e08;}
.mayor-comment::before {content:''; position:absolute; top:55px; left:-9px; width:16px; height:16px; transform:rotate(45deg); background:#fff; border-left:1px solid #d8e3db; border-bottom:1px solid #d8e3db;}
.mayor-comment p {font-size:15px; font-weight:400; line-height:1.95; letter-spacing:.02em;}
.mayor-comment p + p {margin-top:10px;}
.mayor-donburi {margin-top:54px; text-align:center;}
.mayor-donburi a {display:block; width:480px; max-width:100%; margin-inline:auto;}
.mayor-donburi img {width:100%; height:auto;}
.mayor-donburi p {margin-top:12px; font-size:13px; font-weight:500; letter-spacing:.04em; color:#45606a;}
.event-date {white-space:normal;}
.event-date > span {display:inline-block;}
.event-copy .event-details {margin-bottom:18px;}
.event-copy .event-note {font-size:16px !important;}
@media (max-width: 959px) {
  .mayor-messages {padding:55px 0 50px;}
  .mayor-messages-body {width:calc(100% - 40px); max-width:680px;}
  .mayor-messages-heading {margin-bottom:32px;}
  .mayor-messages-heading h2 {font-size:25px; line-height:1.6; letter-spacing:0; margin-bottom:18px;}
  .mayor-messages-heading > p {font-size:14px; line-height:1.9; letter-spacing:0;}
  .mayor-messages-list {gap:32px;}
  .mayor-message {display:block;}
  .mayor-profile {flex-direction:row; gap:16px; padding:0 8px 0 6px; margin-bottom:17px;}
  .mayor-portrait {width:76px; height:76px; border-width:3px;}
  .mayor-profile figcaption {text-align:left;}
  .mayor-role {font-size:13px;}
  .mayor-profile strong {font-size:20px;}
  .mayor-comment {padding:22px; border-radius:16px;}
  .mayor-comment::before {top:-9px; left:35px; border:0; border-top:1px solid #d8e3db; border-left:1px solid #d8e3db;}
  .mayor-comment p {font-size:13px; line-height:1.9; letter-spacing:0;}
  .mayor-comment p + p {margin-top:10px;}
  .mayor-donburi {margin-top:35px;}
  .mayor-donburi a {width:315px;}
  .mayor-donburi p {font-size:12px; letter-spacing:0;}
  .event-copy .event-note {font-size:14px !important;}
}
@media (max-width: 374px) {
  .mayor-messages-heading h2 {font-size:23px;}
  .mayor-comment {padding:20px 18px;}
}
.mayor-messages {position:relative; isolation:isolate; padding:100px 0 85px; background:linear-gradient(180deg, #f2f9f9, #f6faf7 55%, #f0f8fa);}
.mayor-messages::before, .mayor-messages::after {content:''; position:absolute; z-index:-1; left:0; width:100%; height:clamp(32px, 8.6vw, 120px); pointer-events:none; background-position:center; background-size:100% 100%; background-repeat:no-repeat;}
.mayor-messages::before {top:28px; background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%201400%20120%27%20preserveAspectRatio%3D%27none%27%20fill%3D%27none%27%3E%3Cpath%20d%3D%27M0%2082C190%2082%20270%2046%20475%2046S800%2091%201035%2080S1270%2055%201400%2064%27%20transform%3D%27translate%280%206%29%27%20stroke%3D%27%23c4e1e7%27%20stroke-width%3D%2718%27%20opacity%3D%27.28%27%2F%3E%3Cpath%20d%3D%27M0%2082C190%2082%20270%2046%20475%2046S800%2091%201035%2080S1270%2055%201400%2064%27%20transform%3D%27translate%280%200%29%27%20stroke%3D%27%23afd0d8%27%20stroke-width%3D%271%27%20opacity%3D%27.65%27%20vector-effect%3D%27non-scaling-stroke%27%2F%3E%3Cpath%20d%3D%27M0%2082C190%2082%20270%2046%20475%2046S800%2091%201035%2080S1270%2055%201400%2064%27%20transform%3D%27translate%280%207%29%27%20stroke%3D%27%23afd0d8%27%20stroke-width%3D%271%27%20opacity%3D%27.5%27%20vector-effect%3D%27non-scaling-stroke%27%2F%3E%3Cpath%20d%3D%27M0%2082C190%2082%20270%2046%20475%2046S800%2091%201035%2080S1270%2055%201400%2064%27%20transform%3D%27translate%280%2014%29%27%20stroke%3D%27%23afd0d8%27%20stroke-width%3D%271%27%20opacity%3D%27.35%27%20vector-effect%3D%27non-scaling-stroke%27%2F%3E%3C%2Fsvg%3E");}
.mayor-messages::after {bottom:14px; transform:none; opacity:.85; background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%201400%20120%27%20preserveAspectRatio%3D%27none%27%20fill%3D%27none%27%3E%3Cpath%20d%3D%27M0%2062C200%2046%20370%2087%20610%2086S920%2044%201115%2052S1300%2082%201400%2078%27%20transform%3D%27translate%280%206%29%27%20stroke%3D%27%23c4e1e7%27%20stroke-width%3D%2718%27%20opacity%3D%27.28%27%2F%3E%3Cpath%20d%3D%27M0%2062C200%2046%20370%2087%20610%2086S920%2044%201115%2052S1300%2082%201400%2078%27%20transform%3D%27translate%280%200%29%27%20stroke%3D%27%23afd0d8%27%20stroke-width%3D%271%27%20opacity%3D%27.65%27%20vector-effect%3D%27non-scaling-stroke%27%2F%3E%3Cpath%20d%3D%27M0%2062C200%2046%20370%2087%20610%2086S920%2044%201115%2052S1300%2082%201400%2078%27%20transform%3D%27translate%280%207%29%27%20stroke%3D%27%23afd0d8%27%20stroke-width%3D%271%27%20opacity%3D%27.5%27%20vector-effect%3D%27non-scaling-stroke%27%2F%3E%3Cpath%20d%3D%27M0%2062C200%2046%20370%2087%20610%2086S920%2044%201115%2052S1300%2082%201400%2078%27%20transform%3D%27translate%280%2014%29%27%20stroke%3D%27%23afd0d8%27%20stroke-width%3D%271%27%20opacity%3D%27.35%27%20vector-effect%3D%27non-scaling-stroke%27%2F%3E%3C%2Fsvg%3E");}
.mayor-messages-body {width:min(1100px, calc(100% - 80px));}
.mayor-messages-heading {margin-bottom:55px;}
.mayor-heading-ornament {display:flex; justify-content:center; align-items:center; gap:9px; margin-bottom:17px;}
.mayor-heading-ornament::before, .mayor-heading-ornament::after {content:''; width:46px; height:1px; margin-inline:4px; background:#c7dce0;}
.mayor-heading-ornament i {width:8px; height:8px; border-radius:50%; background:#718b60;}
.mayor-heading-ornament i:nth-child(2) {background:#347fb4;}
.mayor-heading-ornament i:nth-child(3) {background:#bc6948;}
.mayor-messages-heading h2 {margin-bottom:21px;}
.mayor-messages-list {gap:40px;}
.mayor-message {--city-color:#5e7950; --city-light:#edf4e9; --city-line:#d8e3d2; grid-template-columns:218px minmax(0, 1fr); gap:36px;}
.mayor-message-tsukumi {--city-color:#3279a6; --city-light:#eaf4fa; --city-line:#d3e4ed;}
.mayor-message-saiki {--city-color:#ac603e; --city-light:#faf0e7; --city-line:#eadbcf;}
.mayor-profile {position:relative; display:flex; padding:7px 7px 22px; gap:0; border:1px solid #e3eae6; border-radius:14px; background:#fff; box-shadow:0 7px 20px #3458690a;}
.mayor-city-photo {width:100%; height:140px; overflow:hidden; border-radius:9px;}
.mayor-city-photo img {width:100%; height:100%; object-fit:cover;}
.mayor-message-usuki .mayor-city-photo img {object-position:65% center;}
.mayor-message-saiki .mayor-city-photo img {object-position:center 62%;}
.mayor-portrait {position:relative; width:112px; height:112px; margin-top:-42px; border:5px solid #fff; box-shadow:0 0 0 1px var(--city-line);}
.mayor-profile figcaption {margin-top:12px;}
.mayor-role {color:#333;}
.mayor-profile strong {font-size:22px;}
.mayor-comment {min-height:303px; padding:28px 34px 24px; border-color:var(--city-line); border-radius:18px; box-shadow:0 6px 22px #36556508;}
.mayor-comment::before {top:112px; border-color:var(--city-line);}
.mayor-comment-heading {margin-bottom:20px; padding-bottom:18px; border-bottom:1px solid var(--city-line);}
.mayor-comment-city {display:inline-block; margin-bottom:10px; padding:3px 13px; border-radius:4px; color:var(--city-color); background:var(--city-light); font-size:12px; font-weight:600; line-height:1.8; letter-spacing:.08em;}
.mayor-comment-heading h3 {color:var(--city-color); font:600 22px/1.65 var(--serif); letter-spacing:.025em;}
.mayor-donburi {margin-top:58px;}
.mayor-donburi a {width:440px; padding:7px; background:#fff; box-shadow:0 5px 20px #3655650a;}
@media (min-width: 960px) and (max-width: 1199px) {
  .mayor-message {grid-template-columns:194px minmax(0, 1fr); gap:27px;}
  .mayor-comment {padding-inline:28px;}
}
@media (max-width: 959px) {
  .mayor-messages {padding:65px 0 55px;}
  .mayor-messages-body {width:calc(100% - 40px); max-width:680px;}
  .mayor-messages-heading {margin-bottom:35px;}
  .mayor-messages-heading h2 {margin-bottom:19px;}
  .mayor-heading-ornament {gap:8px; margin-bottom:15px;}
  .mayor-heading-ornament::before, .mayor-heading-ornament::after {width:35px;}
  .mayor-messages-list {gap:32px;}
  .mayor-profile {display:grid; grid-template-columns:104px minmax(0, 1fr); align-items:end; padding:6px 6px 15px; margin-bottom:17px; border-radius:13px;}
  .mayor-city-photo {grid-column:1 / -1; height:clamp(128px, 34vw, 200px); border-radius:8px;}
  .mayor-portrait {width:88px; height:88px; margin:-35px 0 0 13px; border-width:4px;}
  .mayor-profile figcaption {padding:0 10px 2px 12px; margin:0; text-align:left;}
  .mayor-profile strong {font-size:21px;}
  .mayor-role {font-size:12px;}
  .mayor-comment {min-height:0; padding:22px 22px 20px; border-radius:16px;}
  .mayor-comment::before {top:-9px; left:45px;}
  .mayor-comment-heading {margin-bottom:17px; padding-bottom:15px;}
  .mayor-comment-city {font-size:11px; padding:3px 10px; margin-bottom:9px; letter-spacing:.04em;}
  .mayor-comment-heading h3 {font-size:19px; line-height:1.7; letter-spacing:0;}
  .mayor-donburi {margin-top:38px;}
  .mayor-donburi a {width:315px;}
}
@media (max-width: 374px) {
  .mayor-comment {padding-inline:18px;}
  .mayor-comment-heading h3 {font-size:18px;}
}
.round-arrow, .guidebook .round-arrow {display:grid; place-items:center; padding:0; line-height:1;}
.round-arrow svg, .guidebook .round-arrow svg {display:block; width:100%; height:100%; fill:none; stroke:currentColor; stroke-width:2.6; stroke-linecap:round; stroke-linejoin:round;}
.spot-slider .splide__arrow {display:grid; place-items:center; padding:0;}
.spot-slider .splide__arrow::after {content:none;}
.spot-slider .splide__arrow svg {display:block; width:100%; height:100%; fill:none; stroke:#6a787d; stroke-width:2.3; stroke-linecap:round; stroke-linejoin:round;}
.spot-slider .splide__arrow--prev {transform:translateY(-50%);}
.spot-slider .splide__arrow--prev svg {transform:scaleX(-1);}
.page-top::before {content:none;}
.page-top svg {display:block; width:28px; height:28px; fill:none; stroke:currentColor; stroke-width:2.6; stroke-linecap:round; stroke-linejoin:round;}
.course-cta-label {flex:1; min-width:0; text-align:center;}
.course-cta-label > span {display:inline-block;}
.mayor-message {grid-template-columns:150px minmax(0, 1fr); gap:35px;}
.mayor-profile {display:flex; flex-direction:column; align-items:center; gap:17px; padding:12px 0 0; border:0; border-radius:0; background:none; box-shadow:none;}
.mayor-portrait {width:132px; height:132px; margin:0; border:4px solid #fff;}
.mayor-profile figcaption {margin:0; padding:0; text-align:center;}
.mayor-comment {min-height:0;}
.mayor-comment::before {top:55px;}
.mayor-comment-heading {margin-bottom:17px; padding-bottom:14px;}
.mayor-comment-city {margin-bottom:0;}
.mayor-messages {padding-top:135px;}
@media (min-width: 960px) and (max-width: 1199px) {
  .Header {width:calc(var(--hero-unit) * 17);}
}
@media (max-width: 959px) {
  .Header {width:clamp(104px, 27vw, 180px); max-width:none;}
  .about {--about-temple-size:clamp(150px, 22vw, 200px); --about-map-width:min(100vw, 700px); background:linear-gradient(#034c8d, #034c8d00 120px), linear-gradient(125deg, #073d7b 2%, #005ca1 40%, #1987c4 66%, #b6e4f7 100%);}
  .about-body {height:auto; padding-top:24px; overflow:hidden;}
  .about-temple {width:var(--about-temple-size); height:auto; top:18px; right:calc(50% - var(--about-temple-size) / 2);}
  .about-copy {max-width:760px; margin-inline:auto; padding:calc(var(--about-temple-size) + 40px) 30px 0;}
  .about-map {position:relative; inset:auto; width:var(--about-map-width); max-width:100%; height:calc(var(--about-map-width) * 1.07); max-height:none; margin:12px auto 0;}
  .oita-map {width:180%; height:auto; left:-88%; top:-49%; max-width:none;}
  .kyushu-map {width:38%; height:auto; max-width:none; left:8%; right:auto; top:22%;}
  .about-harbor {width:22%; height:auto; right:14%; top:1%; bottom:auto; border:0; z-index:3;}
  .about-panorama {margin-top:-10vw;}
  .course-content > .pill-link {width:min(600px, 100%); min-width:0; min-height:64px; height:auto; margin:40px auto 0; padding:14px 20px; gap:14px; font-size:15px; line-height:1.65; letter-spacing:0;}
  .course-content > .pill-link .round-arrow {width:24px; height:24px; flex:none;}
  .course-b .departure {display:block; width:min(320px, 100%); max-width:100%; margin:12px 0 0;}
  .course-b .departure img {width:100%; max-width:100%; height:auto;}
  .course-heading .trip-badge {position:absolute; float:none; width:clamp(102px, 15vw, 128px); top:-56px; right:-16px; margin:0;}
  .course-title-lead, .course-title-detail {display:block;}
  .individual-note {position:relative; background:#fff;}
  .individual-note::after {content:''; position:absolute; top:100%; left:50%; width:15px; height:15px; background:#fff; border-right:2px dashed #ddd; border-bottom:2px dashed #ddd; transform:translateX(-50%) rotate(45deg);}
  .mayor-messages {padding-top:90px;}
  .mayor-profile {flex-direction:row; gap:16px; padding:0 8px 0 6px; margin-bottom:17px;}
  .mayor-portrait {width:76px; height:76px; margin:0; border-width:3px;}
  .mayor-profile figcaption {text-align:left;}
  .mayor-profile strong {font-size:20px;}
  .mayor-comment::before {top:-9px; left:35px;}
  .page-top svg {width:24px; height:24px;}
}
@media (max-width: 599px) {
  .about h2 {font-size:clamp(18px, 5.33vw, 26px); margin-inline:-10px;}
  .about-place-line {white-space:nowrap;}
  .course-b .departure {width:min(280px, 100%);}
}
@media (max-width: 374px) {
  .about-copy {padding-inline:24px;}
  .course-heading .trip-badge {width:90px;}
  .course-content > .pill-link {min-height:68px; padding-inline:16px; gap:10px; font-size:14px;}
}
.mayor-donburi .mayor-donburi-intro {max-width:760px; margin:0 auto 20px; font-size:16px; line-height:1.8; letter-spacing:0; color:#365565;}
.Fix_Banner {position:fixed; right:20px; bottom:calc(80px + env(safe-area-inset-bottom, 0px)); z-index:30; width:240px; max-width:calc(100vw - 32px); opacity:0; visibility:hidden; transform:translateY(16px); transition:opacity .4s, visibility .4s, transform .4s;}
.Fix_Banner.is-show {opacity:1; visibility:visible; transform:translateY(0);}
.Fix_Banner a {position:relative; display:block; border:6px solid #fff; background:#fff; box-shadow:0 4px 18px #163b4e30;}
.Fix_BannerVisual {position:relative; display:grid; grid-template-columns:1fr 1fr; height:140px; overflow:hidden; background:#f1e9df;}
.Fix_BannerVisual img {width:100%; height:100%; min-width:0; object-fit:cover;}
.Fix_BannerVisual img:nth-child(2) {object-fit:contain; padding:7px 3px;}
.Fix_BannerLabel {position:absolute; top:7px; left:7px; padding:0 7px; background:#ffe44c; color:#242620; font:700 18px/1.5 var(--sans); letter-spacing:0;}
.Fix_BannerTitle {position:absolute; top:70px; left:0; width:100%; color:#245a70; font:700 25px/1.4 var(--sans); text-align:center; letter-spacing:0; -webkit-text-stroke:4px #fff; paint-order:stroke fill;}
.Fix_BannerCaption {display:block; padding:6px 2px; background:#cb6042; color:#fff; font:600 18px/1.5 var(--sans); text-align:center; letter-spacing:.03em;}
.Fix_BannerClose {position:absolute; top:-18px; right:-16px; z-index:2; display:grid; place-items:center; width:44px; height:44px; padding:0; border:0; background:none; color:#637078; cursor:pointer;}
.Fix_BannerClose::before {content:''; position:absolute; inset:7px; border:1px solid #b8c5ca; border-radius:50%; background:#fff; box-shadow:0 1px 4px #183b4b20;}
.Fix_BannerClose svg {position:relative; width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round;}
.Fix_Banner a:focus-visible, .Fix_BannerClose:focus-visible {outline:3px solid #15567b; outline-offset:3px;}
@media (max-width: 959px) {
  .mayor-donburi .mayor-donburi-intro {margin-bottom:18px; font-size:14px;}
  .Fix_Banner {right:12px; width:180px;}
  .Fix_BannerVisual {height:108px;}
  .Fix_BannerLabel {font-size:14px; top:5px; left:5px;}
  .Fix_BannerTitle {top:54px; font-size:20px; -webkit-text-stroke-width:3px;}
  .Fix_BannerCaption {font-size:14px; padding-block:5px;}
  .Fix_BannerClose {right:-12px;}
}
@media (max-width: 599px) {
  .Fix_Banner {width:160px;}
  .Fix_BannerVisual {height:94px;}
  .Fix_BannerTitle {top:47px; font-size:18px;}
  .Fix_BannerCaption {font-size:13px;}
}
@media (prefers-reduced-motion: reduce) {
  .Fix_Banner {transition:none; transform:none;}
}
