:root{--ink:#143d3b;--muted:#687b79;--teal:#087f78;--sand:#f7f2e9;--line:#dfe8e5;--coral:#ef765d;--white:#fff}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:"Noto Sans JP",sans-serif;background:#fbfcfa}a{color:inherit;text-decoration:none}.site-header{height:82px;padding:0 max(5vw,28px);display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid var(--line);position:relative;z-index:5}.logo{display:flex;gap:10px;align-items:center;font-size:20px;font-weight:800}.logo-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;color:#fff;background:var(--teal)}.logo small{display:block;font:600 8px/1.2 "DM Sans";letter-spacing:1.4px}.site-header nav{display:flex;gap:32px;font-size:14px;font-weight:600}.site-header nav a{padding:29px 0 25px;border-bottom:3px solid transparent}.site-header nav a:hover,.site-header nav a.active{color:var(--teal);border-color:var(--teal)}.menu-button{display:none;border:0;background:none;font-size:25px}.breadcrumb{width:min(1180px,92vw);margin:22px auto;display:flex;gap:10px;align-items:center;color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden}.breadcrumb b{overflow:hidden;text-overflow:ellipsis}.gallery{width:min(1180px,92vw);height:500px;margin:auto;display:grid;grid-template-columns:2fr 1fr;grid-template-rows:1fr 1fr;gap:8px;overflow:hidden;border-radius:18px;background:#dce9e7}.gallery figure{margin:0;overflow:hidden}.gallery .image-1{grid-row:1/3}.gallery img{width:100%;height:100%;object-fit:cover;transition:.35s}.gallery figure:hover img{transform:scale(1.02)}.gallery.single{display:block}.gallery-empty{height:100%;display:grid;place-items:center;font:700 18px "DM Sans";letter-spacing:4px}.detail-layout{width:min(1120px,90vw);margin:52px auto 100px;display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:70px;align-items:start}.label-row{display:flex;gap:8px}.label-row span{padding:6px 10px;border-radius:15px;color:var(--teal);background:#e8f6f4;font-size:11px;font-weight:800}.detail-main h1{font-size:clamp(28px,3.3vw,43px);line-height:1.4;margin:16px 0}.summary-row{display:flex;flex-wrap:wrap;gap:10px 20px;padding-bottom:28px;color:var(--muted);font-size:13px;border-bottom:1px solid var(--line)}.summary-row strong{color:#e78323}.content-section{padding:30px 0;border-bottom:1px solid var(--line)}.content-section h2{font-size:21px;margin:0 0 17px}.content-section p,.description{color:#445f5c;font-size:14px;line-height:2}.content-section.compact{border:0}.two-columns{display:grid;grid-template-columns:1fr 1fr;gap:32px;border-bottom:1px solid var(--line)}.check-list,.minus-list,.info-list{list-style:none;padding:0;margin:0}.check-list li,.minus-list li,.info-list li{position:relative;padding:8px 0 8px 27px;color:#445f5c;font-size:13px;line-height:1.7}.check-list li:before{content:'✓';position:absolute;left:0;color:var(--teal);font-weight:900}.minus-list li:before{content:'−';position:absolute;left:2px;color:var(--coral);font-weight:900}.info-list li:before{content:'•';position:absolute;left:5px;color:var(--teal);font-weight:900}.itinerary{list-style:none;padding:0;margin:0;counter-reset:steps}.itinerary li{position:relative;padding:0 0 25px 44px;counter-increment:steps}.itinerary li:before{content:counter(steps);position:absolute;left:0;top:-2px;width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:var(--teal);color:#fff;font:700 12px "DM Sans"}.itinerary li:not(:last-child):after{content:'';position:absolute;left:13px;top:28px;bottom:0;border-left:1px dashed #9abbb7}.itinerary p{margin:6px 0 0}.booking-card{position:sticky;top:25px;padding:28px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 15px 40px rgba(20,61,59,.12)}.booking-card>small{color:var(--muted)}.price{font-size:34px;font-weight:800;margin:3px 0 10px}.booking-card p{color:var(--muted);font-size:12px;line-height:1.8}.booking-button{display:flex;justify-content:space-between;padding:16px 18px;border-radius:9px;background:var(--coral);color:#fff;font-size:14px;font-weight:800}.booking-card ul{list-style:none;padding:14px 0 0;margin:0}.booking-card li{padding:6px 0;color:var(--muted);font-size:11px}.booking-card li:before{content:'✓';color:var(--teal);margin-right:8px}.notice{padding:14px 16px;margin-top:20px;background:#fff7df;border:1px solid #f0d58c;border-radius:9px;font-size:12px}.translation-note{color:#8b9896;font-size:10px}.mobile-booking{display:none}footer{background:#123f3b;color:#fff;padding:45px max(5vw,28px);display:flex;align-items:center;gap:40px}footer>small{margin-left:auto;color:#a8c3bf}
@media(max-width:900px){.site-header nav{display:none;position:absolute;top:82px;left:0;right:0;background:#fff;padding:18px 28px;flex-direction:column;gap:0;box-shadow:0 10px 20px #0001}.site-header nav.open{display:flex}.site-header nav a{padding:13px 0}.menu-button{display:block}.gallery{height:390px}.detail-layout{grid-template-columns:1fr;gap:30px}.booking-card{position:static}}
@media(max-width:620px){body{padding-bottom:74px}.gallery{width:100%;height:285px;border-radius:0;display:block}.gallery figure:not(:first-child){display:none}.breadcrumb{margin:15px auto}.detail-layout{margin-top:30px}.detail-main h1{font-size:26px}.two-columns{grid-template-columns:1fr;gap:0}.booking-card{display:none}.mobile-booking{position:fixed;z-index:9;left:0;right:0;bottom:0;height:74px;padding:10px 16px;display:flex;align-items:center;justify-content:space-between;background:#fff;box-shadow:0 -6px 25px #163f3b22}.mobile-booking small{display:block;color:var(--muted);font-size:9px}.mobile-booking b{font-size:20px}.mobile-booking a{padding:13px 17px;border-radius:8px;background:var(--coral);color:#fff;font-size:12px;font-weight:800}footer{align-items:flex-start;flex-direction:column;gap:14px}footer>small{margin:0}}
.site-logo{display:block;width:auto;height:42px;object-fit:contain}.footer-logo{width:max-content;padding:8px 12px;border-radius:6px;background:#fff}.footer-logo .site-logo{height:34px}@media(max-width:560px){.site-logo{height:34px}}.site-header .logo{min-width:0;max-width:190px;flex:0 1 auto}.site-header .site-logo{display:block;width:auto;max-width:min(180px,38vw);height:auto;max-height:38px;object-fit:contain}.footer-logo .site-logo{width:auto;max-width:170px;height:auto;max-height:34px}@media(max-width:560px){.site-header .logo{max-width:145px}.site-header .site-logo{max-width:140px;max-height:32px}}footer{background:#fff!important;color:#526a67!important;border-top:1px solid #dfe8e5!important}footer .footer-logo{padding:0!important;background:transparent!important}footer .footer-logo .site-logo{max-width:170px}footer a{color:#143d3b}footer>small{color:#748784!important}.fact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin:28px 0 0;background:var(--line);border:1px solid var(--line);border-radius:12px;overflow:hidden}.fact-grid>div{min-height:86px;padding:16px;background:#fff}.fact-grid small,.fact-grid b{display:block}.fact-grid small{margin-bottom:7px;color:var(--muted);font-size:10px}.fact-grid b{font-size:13px;line-height:1.6}.meeting-list>div{display:flex;gap:16px;padding:18px;border-radius:10px;background:#f2f8f7}.map-pin{color:var(--coral)}.meeting-list b{font-size:14px}.meeting-list p,.reception-note p,.option-list p{margin:6px 0;color:var(--muted);font-size:12px;line-height:1.8}.meeting-list a{display:inline-block;margin-top:5px;color:var(--teal);font-size:12px;font-weight:700}.reception-note{margin-top:12px;padding:15px 18px;border-left:3px solid var(--teal);background:#faf7f0}.reception-note b{font-size:12px}.option-list{display:grid;gap:10px}.option-list>div{padding:16px 18px;border:1px solid var(--line);border-radius:9px}.option-list b{font-size:13px}.booking-conditions{margin:0;border:1px solid var(--line);border-radius:10px;overflow:hidden}.booking-conditions>div{display:grid;grid-template-columns:150px 1fr;border-bottom:1px solid var(--line)}.booking-conditions>div:last-child{border:0}.booking-conditions dt,.booking-conditions dd{margin:0;padding:13px 16px;font-size:12px}.booking-conditions dt{background:#f1f7f6;font-weight:700}.booking-conditions dd{color:#445f5c}@media(max-width:620px){.fact-grid{grid-template-columns:1fr 1fr}.booking-conditions>div{grid-template-columns:115px 1fr}}