*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#eaf0f6;color:#082c64;font-family:'Noto Sans JP',sans-serif}.site{width:min(100%,430px);margin:auto;background:#fff;overflow:hidden;box-shadow:0 0 32px #052c5218}.hero{height:690px;position:relative;color:#fff;overflow:hidden}.hero-bg,.photo-section>img,.final>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero-bg{object-position:50% 50%}.shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,34,80,.10),rgba(0,38,88,.02) 38%,rgba(0,39,93,.28) 62%,rgba(0,28,72,.72) 100%)}.topbar{position:absolute;z-index:3;top:0;left:0;right:0;display:flex;justify-content:space-between;padding:22px 23px}.brand{font-family:'Noto Serif JP',serif;text-shadow:0 2px 10px #003052aa}.brand span{display:block;font-size:14px;font-weight:600}.brand strong{display:block;font-size:24px;line-height:1.25;font-weight:600;letter-spacing:.04em}.menu{border:0;background:transparent;padding:7px 0;width:32px}.menu i{display:block;height:2px;background:#fff;margin:6px 0;border-radius:4px}.hero-copy{position:absolute;z-index:3;left:25px;right:25px;bottom:87px}.hero h1,.story h2,.about h2,.final h2{font-family:'Noto Serif JP',serif}.hero h1{font-size:37px;line-height:1.36;font-weight:500;letter-spacing:.01em;margin:0 0 16px;text-shadow:0 3px 16px #00396c80}.lead,.sub{font-size:11.5px;font-weight:600;margin:0;text-shadow:0 2px 8px #00385f}.sub{margin:6px 0 20px}.line-btn{height:54px;width:292px;max-width:100%;margin-left:17px;padding:0 17px;border-radius:999px;background:linear-gradient(90deg,#06c85c,#04d95f);display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;box-shadow:0 10px 24px #003d6b4d}.bubble{position:relative;width:40px;height:32px;border-radius:50%;background:#fff;color:#0abd58;display:grid;place-items:center;font-size:8px;font-weight:800;flex:none}.bubble:after{content:"";position:absolute;left:6px;bottom:-4px;border:6px solid transparent;border-top-color:#fff;transform:rotate(20deg)}.rule{height:25px;width:1px;background:#ffffff70}.line-btn b{font-size:13px;white-space:nowrap}.arr{margin-left:auto;font-size:20px}.scroll{position:absolute;z-index:3;left:17px;bottom:98px;writing-mode:vertical-rl;font-size:7px;letter-spacing:.18em}.scroll span{display:block;width:1px;height:38px;background:#fff;margin-top:8px;position:relative}.scroll span:after{content:"";position:absolute;bottom:-1px;left:-3px;width:6px;height:6px;border-right:1px solid #fff;border-bottom:1px solid #fff;transform:rotate(45deg)}.wave{position:absolute;z-index:2;left:-4%;width:108%;height:68px;bottom:-23px;background:#fff;border-radius:50% 50% 0 0/45% 45% 0 0;filter:blur(.2px)}.section{padding:34px 20px}.eyebrow{text-align:center}.eyebrow h2{font-family:'Noto Serif JP',serif;font-size:22px;letter-spacing:.05em;margin:0 0 5px}.eyebrow span{display:block;color:#1b66b3;font-size:9px;font-weight:700;letter-spacing:.18em}.reason{padding-top:31px;padding-bottom:31px}.reason-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:22px}.reason article{aspect-ratio:1;border-radius:50%;display:flex;flex-direction:column;justify-content:center;align-items:center;box-shadow:0 8px 25px #0a34621c}.reason svg{width:35px;height:35px;fill:none;stroke:#0e55ad;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;margin-bottom:8px}.reason h3{font-family:'Noto Serif JP',serif;font-size:11.5px;line-height:1.55;margin:0}.photo-section{height:490px;position:relative;color:#fff;overflow:hidden}.photo-section>img{object-position:center}.photo-shade{position:absolute;inset:0;background:linear-gradient(180deg,transparent 28%,rgba(0,33,70,.18) 52%,rgba(0,29,64,.72) 100%)}.story-copy{position:absolute;z-index:2;left:25px;right:25px;bottom:53px}.story h2{font-size:31px;line-height:1.42;font-weight:500;margin:0 0 14px;text-shadow:0 3px 14px #003b6c80}.story p{font-size:11px;line-height:1.8;margin:0 0 17px;text-shadow:0 2px 8px #003c67}.ghost{display:flex;align-items:center;justify-content:center;width:155px;height:41px;background:#fff;color:#0b3c79;text-decoration:none;border-radius:999px;font-size:11px;font-weight:700;gap:24px}.bottom{bottom:-31px;height:60px}.tour{padding-top:40px}.tour-list{display:grid;gap:10px;margin-top:22px}.tour-list article{height:92px;display:grid;grid-template-columns:118px 1fr 18px;align-items:center;background:#fff;border-radius:9px;overflow:hidden;box-shadow:0 6px 20px #0b3a6815}.tour-list img{width:100%;height:100%;object-fit:cover}.tour-list div{padding:8px 11px}.tour-list h3{font-family:'Noto Serif JP',serif;font-size:14px;margin:0 0 5px}.tour-list p{font-size:9px;line-height:1.55;margin:0}.tour-list b{font-size:23px}.price{padding-top:35px}.price-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:22px}.price-grid article{border-radius:10px;overflow:hidden;background:#fff;box-shadow:0 7px 22px #0a38651d}.price-grid img{width:100%;height:76px;object-fit:cover}.card-body{padding:13px 12px 15px}.card-body h3{font-family:'Noto Serif JP',serif;font-size:15px;margin:0 0 7px}.card-body p{font-size:9px;line-height:1.6;min-height:31px;margin:0 0 10px}.card-body dl{margin:0}.card-body dl div{display:flex;justify-content:space-between;align-items:baseline}.card-body dt{font-size:10px}.card-body dd{font-size:14px;font-weight:700;margin:0}.included{padding-top:25px}.included-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-top:24px}.included-grid div{text-align:center;padding:0 2px}.included-grid span{display:block;color:#1260ad;font-size:28px;height:38px}.included-grid b{display:block;font-size:8.5px;line-height:1.45}.included-grid small{display:block;font-size:6.5px;line-height:1.4;margin-top:3px}.lunch{text-align:center;font-size:10px;font-weight:700;margin:20px 0 0}.about{height:420px}.about-fade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,38,78,.03),rgba(0,39,78,.1) 35%,rgba(0,30,65,.74) 100%)}.about-copy{position:absolute;z-index:2;left:25px;right:25px;bottom:52px}.about-copy>span{font-size:9px;letter-spacing:.18em}.about h2{font-size:28px;line-height:1.45;margin:5px 0 12px}.about p{font-size:10px;line-height:1.9;margin:0}.flow{padding-top:42px}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:22px 0 22px}.steps article{text-align:center;border-radius:9px;padding:13px 4px;background:#fff;box-shadow:0 5px 18px #0a38651a}.steps i{display:grid;place-items:center;width:30px;height:30px;margin:0 auto 8px;border-radius:50%;background:#0d5ab0;color:#fff;font-style:normal;font-size:10px;font-weight:700}.steps b{font-size:9px;line-height:1.55}.flow .line-btn{margin:0 auto}.faq{padding-top:27px}.faq details{border:1px solid #e5edf5;border-radius:8px;margin-top:8px;box-shadow:0 3px 12px #0a38650d}.faq summary{list-style:none;padding:13px 15px;font-size:10px;font-weight:600;cursor:pointer}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:'＋';float:right;color:#0d5ab0}.faq details[open] summary:after{content:'−'}.faq details p{font-size:9px;line-height:1.7;margin:0;padding:0 15px 13px;color:#38536f}.final{height:380px;position:relative;color:#fff}.final>img{object-position:center}.final-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,42,86,.12),rgba(0,32,74,.62))}.final>div{position:absolute;z-index:2;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:25px}.final h2{font-size:28px;line-height:1.45;margin:0 0 23px;text-shadow:0 2px 10px #003867}.final .line-btn{margin:0}.final p{font-size:9px;margin-top:17px}.darktext{}@media(max-width:370px){.hero{height:650px}.hero h1{font-size:34px}.line-btn{margin-left:6px}.reason-grid{gap:6px}.reason h3{font-size:10.5px}.tour-list article{grid-template-columns:105px 1fr 16px}.card-body dd{font-size:12px}}

/* V5 readability refinements */
.hero-copy{bottom:108px}
.hero h1{font-size:43px;line-height:1.31;margin-bottom:18px}
.lead{font-size:13.5px;line-height:1.55}
.sub{font-size:13px;line-height:1.55;margin-top:7px}

.reason{padding-top:38px;padding-bottom:54px}
.reason .eyebrow h2,.tour .eyebrow h2,.price .eyebrow h2,.included .eyebrow h2,.flow .eyebrow h2{font-size:27px;line-height:1.35}
.reason .eyebrow span,.tour .eyebrow span,.price .eyebrow span,.included .eyebrow span,.flow .eyebrow span{font-size:10px;margin-top:6px}
.reason-grid{margin-top:27px}

.tour{padding-top:47px;padding-bottom:42px}
.tour-list{gap:13px;margin-top:28px}
.tour-list article{height:112px;grid-template-columns:138px 1fr 22px;border-radius:12px}
.tour-list div{padding:10px 13px}
.tour-list h3{font-size:17px;margin-bottom:7px}
.tour-list p{font-size:11px;line-height:1.55}
.tour-list b{font-size:28px}

.price{padding-top:43px;padding-bottom:42px}
.price-grid{gap:14px;margin-top:28px}
.price-grid article{border-radius:12px}
.price-grid img{height:92px}
.card-body{padding:16px 14px 19px}
.card-body h3{font-size:18px;margin-bottom:9px}
.card-body p{font-size:11px;line-height:1.65;min-height:40px;margin-bottom:13px}
.card-body dt{font-size:12.5px}
.card-body dd{font-size:17px}

.included{padding-top:37px;padding-bottom:48px}
.included-grid{grid-template-columns:repeat(2,1fr);gap:25px 18px;margin-top:32px}
.included-grid div{padding:5px 6px}
.included-grid span{font-size:39px;height:49px}
.included-grid b{font-size:12px;line-height:1.45}
.included-grid small{font-size:9px;line-height:1.45;margin-top:5px}
.lunch{font-size:12px;margin-top:30px}

.flow{padding-top:49px;padding-bottom:43px}
.steps{display:grid;grid-template-columns:1fr;gap:14px;margin:30px 0 27px}
.steps article{min-height:126px;display:grid;grid-template-columns:58px 1fr;align-items:center;text-align:left;padding:20px 24px;border-radius:13px}
.steps i{width:48px;height:48px;margin:0;border-radius:50%;font-size:14px}
.steps b{font-size:15px;line-height:1.75;padding-left:18px}

@media(max-width:370px){
 .hero h1{font-size:39px}
 .lead{font-size:12.5px}.sub{font-size:12px}
 .tour-list article{grid-template-columns:125px 1fr 18px;height:108px}
 .tour-list h3{font-size:15px}.tour-list p{font-size:10px}
 .card-body dd{font-size:15px}.card-body dt{font-size:11.5px}
}

/* V6 image/text legibility refinements requested 2026-09-28 */
/* Move the boat/subject higher in the hero crop so it clears the main copy. */
.hero-bg{object-position:50% 67%}
.hero h1{font-size:47px;line-height:1.27;text-shadow:0 3px 8px rgba(0,24,55,.92),0 0 18px rgba(0,42,83,.72)}
.hero .lead{font-size:15px;font-weight:700;text-shadow:0 2px 5px rgba(0,25,55,.95),0 0 12px rgba(0,42,83,.72)}
.hero .sub{font-size:14.5px;font-weight:700;text-shadow:0 2px 5px rgba(0,25,55,.95),0 0 12px rgba(0,42,83,.72)}

.story h2{font-size:35px;line-height:1.38;text-shadow:0 3px 8px rgba(0,22,48,.95),0 0 18px rgba(0,36,72,.78)}
.story p{font-size:12.5px;line-height:1.8;font-weight:600;text-shadow:0 2px 5px rgba(0,20,48,.95),0 0 11px rgba(0,36,72,.72)}

.about-copy>span{text-shadow:0 2px 5px rgba(0,20,48,.95),0 0 10px rgba(0,36,72,.7)}
.about h2{font-size:32px;line-height:1.42;text-shadow:0 3px 8px rgba(0,22,48,.95),0 0 18px rgba(0,36,72,.78)}
.about p{font-size:11.5px;line-height:1.9;font-weight:600;text-shadow:0 2px 5px rgba(0,20,48,.95),0 0 11px rgba(0,36,72,.72)}

@media(max-width:370px){
 .hero h1{font-size:43px}
 .hero .lead{font-size:13.5px}.hero .sub{font-size:13px}
 .story h2{font-size:32px}.story p{font-size:11.5px}
 .about h2{font-size:29px}.about p{font-size:10.5px}
}

/* v8 interactive additions */
.menu{position:relative;z-index:30}
.drawer{position:fixed;inset:0;z-index:100;pointer-events:none;visibility:hidden}
.drawer.open{pointer-events:auto;visibility:visible}
.drawer-backdrop{position:absolute;inset:0;background:rgba(0,25,55,.42);opacity:0;transition:.3s}
.drawer.open .drawer-backdrop{opacity:1}
.drawer-panel{position:absolute;right:0;top:0;height:100%;width:min(84vw,360px);background:#fff;padding:34px 26px;transform:translateX(100%);transition:.35s ease;box-shadow:-20px 0 50px rgba(0,40,80,.14)}
.drawer.open .drawer-panel{transform:none}.drawer-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:48px}.drawer-brand{font-family:'Noto Serif JP',serif;color:#063b70}.drawer-brand small{display:block;font-size:12px}.drawer-brand strong{font-size:24px}.drawer-close{border:0;background:none;font-size:34px;color:#063b70;line-height:1}.drawer-nav a{display:block;padding:19px 0;border-bottom:1px solid #e5edf5;text-decoration:none;color:#063b70;font-weight:700;font-size:18px}.drawer-nav a span{display:block;font-size:10px;letter-spacing:.2em;color:#2c72ad;margin-top:4px}.drawer-line{margin-top:28px!important;width:100%!important}
.story-more{max-height:0;overflow:hidden;opacity:0;transition:max-height .45s ease,opacity .35s ease,margin .35s ease;margin-top:0}.story-more.open{max-height:330px;opacity:1;margin-top:20px}.story-more-inner{padding:18px 0 4px;color:#fff}.story-more-inner h3{font-family:'Noto Serif JP',serif;font-size:22px;margin:0 0 10px}.story-more-inner p{font-size:14px;line-height:1.9}.story-more-inner a{color:#fff;font-weight:700;text-underline-offset:5px}.ghost{border:0;cursor:pointer}
.tour-list article{cursor:pointer;position:relative}.tour-list article>b{transition:.25s}.tour-list article.active>b{transform:rotate(90deg)}.tour-detail{display:none;background:#f4f9fd;border-radius:0 0 18px 18px;margin:-10px 0 14px;padding:20px 22px 22px;color:#073d70}.tour-detail.open{display:block}.tour-detail h4{font-family:'Noto Serif JP',serif;font-size:19px;margin:0 0 8px}.tour-detail p{font-size:13px;line-height:1.8;margin:0 0 14px}.detail-points{display:grid;grid-template-columns:1fr;gap:8px}.detail-points div{background:#fff;border-radius:10px;padding:10px 12px;font-size:12px;line-height:1.5}.detail-points b{display:block;font-size:11px;color:#2c72ad;margin-bottom:2px}.detail-price{display:inline-block;margin-top:14px;color:#063b70;font-weight:700;text-underline-offset:4px}
.memories{background:#023a68;color:#fff;padding-top:74px;padding-bottom:76px}.memories .eyebrow h2,.memories .eyebrow span{color:#fff}.memories-visual{margin:30px auto 0;max-width:680px;border-radius:24px;overflow:hidden;position:relative}.memories-visual img{width:100%;height:310px;object-fit:cover;display:block}.memories-visual:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(0,35,65,.52))}.memories-copy{max-width:680px;margin:24px auto 0;text-align:center}.memories-copy h3{font-family:'Noto Serif JP',serif;font-size:30px;line-height:1.55;margin:0 0 14px}.memories-copy>p{font-size:14px;line-height:1.9;margin:0 auto 28px;max-width:560px}.memory-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.memory-grid div{border:1px solid rgba(255,255,255,.25);border-radius:16px;padding:16px 8px;background:rgba(255,255,255,.06)}.memory-grid span{display:block;font-size:25px;margin-bottom:6px}.memory-grid b{font-size:12px}
@media(max-width:480px){.memories{padding:62px 28px 66px}.memories-visual img{height:260px}.memories-copy h3{font-size:27px}.memory-grid b{font-size:11px}.tour-detail{margin-top:-8px}}
/* V9 — information sections added without changing the established visual direction */
.info-panel,.age-card,.ferry-card{max-width:680px;margin:0 auto;background:#fff;border-radius:24px;box-shadow:0 12px 34px rgba(4,50,88,.08);overflow:hidden}
.info-panel-head{display:flex;align-items:center;justify-content:space-between;padding:24px 22px}.info-panel-head small,.ferry-title span{font-size:10px;letter-spacing:.22em;color:#1387b8;font-weight:800}.info-panel-head h3{margin:5px 0 0;color:#003a70;font-size:21px}.info-toggle{width:42px;height:42px;border:1px solid #d6eaf3;border-radius:50%;background:#f6fbfd;color:#00477b;font-size:24px}.info-panel-body{display:none;padding:0 22px 24px;color:#365466;line-height:1.9;font-size:14px}.info-panel.open .info-panel-body{display:block}.rental{padding-top:36px}
.age{background:#f5fbfd}.age-card{padding:24px 22px}.age-card h3{margin:0 0 10px;color:#003a70;font-size:20px}.age-card>p{margin:0 0 20px;color:#527080;line-height:1.8;font-size:13px}.age-lines{display:grid;grid-template-columns:1fr auto;border-top:1px solid #dcecf2}.age-lines span,.age-lines b{padding:14px 0;border-bottom:1px solid #dcecf2;font-size:13px}.age-lines span{color:#244d65}.age-lines b{color:#168ab4;font-size:12px}
.ferry{padding-top:54px}.ferry-card{padding:24px 20px;border:1px solid #d9eef4}.ferry-title{text-align:center;padding-bottom:18px}.ferry-title h3{margin:6px 0 0;color:#003a70;font-size:22px}.ferry-row{display:grid;grid-template-columns:48px 1fr 1fr;align-items:center;gap:10px;padding:17px 0;border-top:1px solid #dcecf2}.ferry-row>b{color:#0d83ae;font-size:14px}.ferry-row div{display:flex;flex-direction:column;gap:3px}.ferry-row span{font-size:11px;color:#68808e}.ferry-row strong{font-size:20px;color:#003a70}.ferry-note{margin:14px 0 0;font-size:11px;line-height:1.7;color:#9b5860}
.guide-mini{margin-top:24px;padding:16px 18px;border:1px solid rgba(255,255,255,.38);border-radius:16px;display:flex;flex-direction:column;align-items:flex-start;max-width:310px}.guide-mini small{font-size:9px;letter-spacing:.2em;opacity:.8}.guide-mini strong{font-size:20px;margin-top:4px}.guide-mini span{font-size:11px;margin-top:2px;opacity:.9}
@media(max-width:560px){.rental,.age,.ferry{padding-left:24px;padding-right:24px}.ferry-row{grid-template-columns:42px 1fr 1fr}.ferry-row strong{font-size:18px}}

/* V13 final refinements */
.about{height:470px}
.about-copy{bottom:62px}
.final p{font-size:12px;line-height:1.75;font-weight:600;margin-top:19px;text-shadow:0 2px 7px rgba(0,25,55,.75)}
@media(max-width:370px){.about{height:455px}.final p{font-size:11px}}

/* V15: price cards — rates first, tour times below, equal card height */
.price-grid article{height:100%;}
.price-grid .card-body{display:flex;flex-direction:column;min-height:250px;}
.price-grid .card-body dl{margin-top:auto;}
.price-time-block{margin-top:16px;padding-top:13px;border-top:1px solid #dce9f4;min-height:76px;}
.price-time-block span{display:block;color:#1b66b3;font-size:8px;font-weight:700;letter-spacing:.17em;margin-bottom:6px;}
.price-time-block p{min-height:0!important;margin:0!important;font-size:10px!important;line-height:1.75!important;color:#082c64;}
.price-time-block p strong{display:inline-block;min-width:43px;font-size:10px;}
.price-time-placeholder{visibility:hidden;}
@media(max-width:370px){.price-grid .card-body{min-height:244px}.price-time-block p,.price-time-block p strong{font-size:9px!important}}

/* V16: make half-day tour times easier to read */
.price-time-block p{font-size:13px!important;line-height:1.8!important;font-weight:700;letter-spacing:.01em;}
.price-time-block p strong{min-width:52px;font-size:13px!important;font-weight:800;}
@media(max-width:370px){.price-time-block p,.price-time-block p strong{font-size:12px!important}}
