:root{color-scheme:light;--bg:#f5f3e9;--paper:#fdfbf5;--ink:#1f3836;--muted:#53645d;--green:#234e48;--sea:#e2eeeb;--line:#d7ded3;--gold:#f5e7cc;--accent:#8c4729;--round:20px;--wrap:1120px;font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Noto Sans JP",Meiryo,sans-serif}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:84px}
body{margin:0;background:var(--bg);color:var(--ink);line-height:1.67}
body,button{font-size:16px}
[hidden]{display:none!important}
img{display:block;width:100%;height:100%;object-fit:cover}
a{color:#275950;text-underline-offset:.25em}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #ae522b;outline-offset:4px}
h1,h2,h3,h4,p{margin:0}
ul,ol,dl{margin:0;padding:0}
h1,h2,h3,h4{line-height:1.27;letter-spacing:-.035em}
.wrap{width:min(var(--wrap),calc(100% - 56px));margin-inline:auto}
.skip{position:fixed;top:-100px;left:20px;z-index:5;background:white;padding:12px}
.skip:focus{top:8px}
.mast{position:sticky;top:0;z-index:4;background:#f5f3e9fa;border-bottom:1px solid var(--line)}
.mast-inner{display:flex;justify-content:space-between;align-items:center;min-height:69px;gap:18px}
.brand{display:inline-flex;gap:10px;align-items:center;color:var(--ink);font-weight:800;text-decoration:none;white-space:nowrap}
.mast nav{display:flex;gap:5px;align-items:center}
.mast nav a{color:var(--ink);white-space:nowrap;text-decoration:none;font-weight:740;border-radius:100px;padding:9px 14px;font-size:.9rem}
.mast nav a:hover,.mast nav a[aria-current="location"]{background:var(--sea);color:var(--green)}
.hero{display:grid;grid-template-columns:.88fr 1.2fr;grid-template-areas:"copy image";min-height:442px;margin-top:33px;border-radius:30px;overflow:hidden;background:var(--paper);border:1px solid var(--line)}
.hero-image{grid-area:image;position:relative;min-width:0}
.hero-image img{position:absolute;inset:0;object-position:50% 46%}
.hero-copy{grid-area:copy;padding:45px 38px 43px;align-self:center}
.kicker{font-size:.78rem;font-weight:780;letter-spacing:.045em;color:var(--green)}
.hero .kicker span{display:inline-block;background:#ab5940;width:8px;height:8px;border-radius:50%;margin-right:5px;vertical-align:.1em}
h1{font-weight:850;font-size:clamp(1.95rem,4.1vw,3.25rem);margin-block:14px 19px;line-height:1.1;letter-spacing:-.065em}
h1 span{display:block;white-space:nowrap}
.hero-copy>p:not(.kicker){max-width:25rem;color:var(--muted);margin-bottom:23px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:10px 15px;font-weight:750;font-size:.9rem;line-height:1.4;border-radius:12px;min-height:44px;text-decoration:none;white-space:normal}
.primary{background:#225048;color:#fff;border:1px solid #225048}
.primary:hover{background:#173d36}
.secondary{background:var(--paper);color:#29584e;border:1px solid #bdcec2}
.secondary:hover{background:var(--sea)}
.photo-label{position:absolute;bottom:13px;left:13px;color:#fff;background:#1d3735ee;border-radius:7px;padding:3px 10px;font-size:.75rem}
.weekend{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}
.day-chip{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:13px;padding:14px;background:var(--paper);border:1px solid var(--line);border-radius:16px;text-decoration:none;color:var(--ink)}
.day-chip:hover{border-color:#83a99a}
.day-stamp{display:grid;align-content:center;justify-items:center;line-height:1.05;gap:4px;width:69px;height:69px;background:var(--sea);color:var(--green);border-radius:16px}
.day-stamp b{font-size:2.08rem;font-weight:850;font-variant-numeric:tabular-nums}
.day-stamp span{font-size:.71rem;font-weight:800;white-space:nowrap}
.day-stamp.gold{background:var(--gold);color:#82472b}
.day-chip .day-stamp{height:52px;width:52px;border-radius:12px}
.day-chip .day-stamp b{font-size:1.57rem}
.day-chip strong,.day-chip small{display:block;line-height:1.45}
.day-chip small{color:var(--muted);font-size:.79rem;margin-top:3px}
.day-arr{padding-inline:2px;font-size:1.25rem;font-weight:740;color:var(--green)}
.day{margin-top:78px}
.day-head{display:flex;gap:17px;align-items:center;margin-bottom:21px}
.day-head h2,.preparation h2{font-size:clamp(1.75rem,4.2vw,3.05rem);margin-top:4px}
.rail{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));list-style:none;background:var(--sea);border-radius:var(--round) var(--round) 0 0;padding:19px 19px 14px}
.rail li{position:relative;display:grid;gap:3px;padding-left:12px;line-height:1.35}
.rail-time{font-size:clamp(1.5rem,4vw,2.32rem);font-weight:820;font-variant-numeric:tabular-nums;letter-spacing:-.06em}
.rail li strong{position:relative;font-size:1.01rem;padding-top:17px}
.rail li strong::before{content:"";position:absolute;left:0;right:-12px;top:3px;height:2px;background:#8bb3a4}
.rail li strong::after{content:"";position:absolute;left:0;top:-2px;width:12px;height:12px;border-radius:50%;background:var(--paper);border:2px solid #31665b}
.rail li:last-child strong::before{right:16px}
.rail li span:last-child{color:var(--muted);font-size:.78rem}
.junction{display:flex;justify-content:space-between;align-items:center;gap:10px;background:var(--paper);border:1px solid var(--line);border-top:0;border-radius:0 0 var(--round) var(--round);padding:10px 19px;font-size:.79rem}
.junction span{font-weight:750;color:var(--muted)}
.subsection{margin-top:55px}
.section-head{display:flex;justify-content:space-between;align-items:end;gap:15px;margin-bottom:13px}
h3{font-size:clamp(1.45rem,3vw,2.35rem);margin-top:4px}
h4{font-size:clamp(1.18rem,2.5vw,1.55rem)}
.lead{margin-bottom:15px;color:var(--muted)}
.lead strong{color:var(--ink)}
.shore{background:linear-gradient(0deg,#dcece9 39%,#edf0e0 40%);border:1px solid var(--line);border-radius:var(--round);padding:17px 10px 10px;margin-bottom:19px}
.shore ol{list-style:none;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));position:relative;gap:0}
.shore ol::before{content:"";position:absolute;top:12px;left:10%;right:10%;height:3px;background:#94b2a2}
.shore li{text-align:center;position:relative;font-size:.87rem;min-width:0;line-height:1.4}
.shore li a{display:block;color:var(--ink);text-decoration:none}
.shore li a:hover strong{text-decoration:underline}
.shore-node,.num{display:grid;place-items:center;background:#2b5b52;color:white;width:27px;height:27px;border-radius:50%;font-size:.76rem;font-weight:790}
.shore-node{margin:0 auto 6px;border:2px solid #e8efe2}
.shore-node.root{background:var(--paper);border:3px solid #2b5b52}
.shore li small{display:block;color:var(--muted);font-size:.71rem}
.shore p{font-size:.8rem;text-align:center;margin:9px 4px 0;font-weight:710}
.lunch-grid,.backups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}
.food-card{min-width:0;background:var(--paper);border:1px solid var(--line);border-radius:var(--round);overflow:hidden}
.food-card.favorite{border-color:#94ad9d}
.photo-pair{display:grid;grid-template-columns:1.22fr .78fr;gap:3px;height:181px;background:#e8e7dd}
.photo-pair>img,.dual>img{min-width:0;min-height:0}
.single-photo{height:181px}
.food-body{padding:16px 17px 18px}
.food-body h4{margin-top:6px}
.eyebrow{display:flex;flex-wrap:wrap;align-items:center;gap:7px;font-size:.78rem;font-weight:750;color:var(--green);line-height:1.4}
.eyebrow .num{width:23px;height:23px}
.price{font-weight:740;margin:8px 0 4px}
.price strong{white-space:nowrap;color:var(--accent);font-size:1.2em;font-variant-numeric:tabular-nums}
.food-body p:not(.price){color:var(--muted);font-size:.92rem}
.links,.actions{display:flex;flex-wrap:wrap;gap:9px 15px;align-items:center;margin-top:11px}
.links{font-size:.83rem;font-weight:740}
.links a{display:inline-flex;align-items:center;min-height:37px}
.split{background:var(--paper);border:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;overflow:hidden;border-radius:var(--round)}
.split-image{position:relative;min-height:100%;min-width:0;background:#e4e9dc}
.split-image>img{position:absolute;inset:0}
.split-copy{padding:clamp(18px,3.45vw,34px);align-self:center;min-width:0}
.split-copy>p:not(.kicker,.price){margin-top:12px}
.split-copy .eyebrow{margin-top:12px}
.split-copy h4{margin-top:10px}
.split .actions{gap:9px}
.cruise{background:#faf0df;border-color:#ead9bc}
.schedule{display:grid;grid-template-columns:1fr 1.13fr;gap:9px;margin:14px 0}
.schedule>div{background:#ffffffa6;border:1px solid #ebd7b6;border-radius:12px;padding:9px 10px;line-height:1.37;display:grid;gap:4px}
.schedule b{color:var(--accent);font-size:1.25rem;font-variant-numeric:tabular-nums}
.schedule span{font-size:.8rem}
.return-route{display:grid;grid-template-columns:1fr auto 1fr auto 1.15fr;align-items:start;gap:13px;background:var(--sea);border-radius:15px;padding:14px 17px;margin:7px 0 15px}
.return-route div{display:grid;gap:3px;line-height:1.35}
.return-route div span{color:var(--muted);font-size:.78rem}
.return-route>b{color:#618c7c}
.disclosure{border:1px solid var(--line);border-radius:16px;background:var(--paper);margin-top:14px}
.disclosure summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 17px;font-weight:750;list-style:none}
.disclosure summary::-webkit-details-marker{display:none}
.disclosure summary::after{font-size:1.25rem;content:'＋';line-height:1;color:var(--green)}
.disclosure[open]>summary::after{content:'−'}
.details-in{padding:0 17px 17px}
.wide-photos{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:16px}
.wide-photos img{height:175px;border-radius:10px}
.mini-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.mini-grid img{height:120px;border-radius:10px;margin-bottom:8px}
.mini-grid h4{font-size:1rem;letter-spacing:0}
.mini-grid p,.mini-grid a{font-size:.85rem;margin-top:4px}
.second{margin-top:79px}
.breakfast .split-copy h3{margin-bottom:12px}
.note{background:var(--gold);color:#60442e;border-radius:12px;padding:11px 13px;margin-top:13px;font-size:.88rem}
.note strong{color:#593d25}
.dual{display:grid;grid-template-columns:1.35fr .65fr;gap:3px}
.dual>img{position:static;max-height:330px}
.dual>img+img{object-position:78% 50%}
.decide{background:var(--sea);border:1px solid #c9dace;border-radius:var(--round);padding:17px 19px;margin:15px 0;display:grid;grid-template-columns:1fr auto;gap:7px 12px;align-items:center}
.decide h4{margin-top:3px}
.decision-actions{display:flex;gap:6px;flex-wrap:wrap}
.decision-actions button{padding:10px 11px;min-height:44px;font-family:inherit;font-size:.86rem;font-weight:770;cursor:pointer;border-radius:9px;color:var(--green);background:var(--paper);border:1px solid #9abdaf}
.decision-actions button[aria-pressed=true]{color:white;background:var(--green);border-color:var(--green)}
.decide p:last-of-type{grid-column:1 / -1;font-size:.9rem}
.decide #choice-link{justify-self:start}
.backups .photo-pair,.backups .single-photo{height:166px}
.last-option{margin-top:15px;background:#faf0df;border:1px solid #ead9bc;border-radius:var(--round);display:grid;grid-template-columns:minmax(120px,230px) 1fr;overflow:hidden;align-items:center}
.last-option>img{height:100%;object-fit:contain;background:#fffaf2}
.last-option>div{padding:15px 18px}
.last-option h4,.last-option p:not(.kicker){margin-top:5px}
.last-option a{font-size:.83rem;font-weight:700;display:inline-block;margin-top:7px}
.ichiryu{display:grid;grid-template-columns:1fr 1.2fr;gap:16px;align-items:center}
.ichiryu .photo-pair{height:140px;border-radius:10px;overflow:hidden}
.ichiryu p{margin-top:5px}
.departure{margin-top:21px;background:var(--green);color:white;border-radius:var(--round);padding:17px 20px}
.departure .kicker{color:#d7eadb}
.departure div{display:flex;gap:clamp(14px,4vw,42px);flex-wrap:wrap;align-items:center;margin:6px 0}
.departure strong{font-size:clamp(1.24rem,4vw,2rem);line-height:1.35;white-space:nowrap}
.departure time{color:#ffd5a0;font-variant-numeric:tabular-nums}
.departure p:last-child{font-size:.88rem;color:#eff5e9}
.preparation{margin:72px auto 35px}
.prep-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin-top:16px}
.prep-grid article{padding:16px;background:var(--paper);border:1px solid var(--line);border-radius:16px}
.prep-grid h3{font-size:1.24rem}
.prep-grid p{margin-top:5px;color:var(--muted);font-size:.9rem}
.prep-grid a{display:inline-block;margin-top:7px;font-weight:730;font-size:.85rem}
.budget dl div{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding:6px 0;font-size:.91rem}
.budget dd{margin:0;white-space:nowrap}
.budget p{margin-top:10px}
.footer{border-top:1px solid var(--line);display:flex;gap:12px 25px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding-block:16px 30px;font-size:.79rem;color:var(--muted)}
.footer span{font-weight:750}
@media (max-width:860px){
  .wrap{width:calc(100% - 36px)}
  .hero{grid-template-columns:1fr 1.04fr;min-height:365px}
  .hero-copy{padding:27px 23px}
  .split-copy{padding:19px}
  .section-head{align-items:start}
}
@media (max-width:620px){
  html{scroll-padding-top:66px}
  .wrap{width:calc(100% - 28px)}
  .mast-inner{min-height:56px;gap:4px}
  .brand{font-size:.84rem;gap:6px}
  .brand svg{width:26px;height:26px}
  .mast nav{gap:1px}
  .mast nav a{font-size:.79rem;padding:8px 7px}
  .mast nav a span{display:none}
  .hero{margin-top:14px;display:grid;grid-template-columns:1fr;grid-template-areas:"image" "copy";min-height:0;border-radius:21px}
  .hero-image{height:180px}
  .hero-image img{object-position:50% 43%}
  .hero-copy{padding:17px 19px 19px}
  .hero-copy>p:not(.kicker){font-size:.91rem;margin-bottom:12px}
  .hero h1{font-size:2.48rem;margin:8px 0}
  .weekend{gap:7px;margin-top:9px}
  .day-chip{grid-template-columns:auto 1fr;gap:7px;padding:8px;border-radius:12px}
  .day-chip strong{font-size:.78rem}
  .day-chip small{font-size:.67rem}
  .day-chip .day-stamp{width:36px;height:43px;border-radius:8px}
  .day-chip .day-stamp b{font-size:1.23rem}
  .day-chip .day-stamp span{font-size:.58rem}
  .day-arr{display:none}
  .day,.second{margin-top:45px}
  .day-head{margin-bottom:14px;gap:10px}
  .day-head h2{font-size:clamp(1.39rem,5.15vw,1.95rem)}
  .day-head .day-stamp{height:52px;width:52px;flex-shrink:0;border-radius:11px}
  .day-head .day-stamp b{font-size:1.57rem}
  .day-head .day-stamp span{font-size:.62rem}
  .rail{padding:12px 8px 10px;border-radius:15px 15px 0 0}
  .rail li{padding-left:4px;gap:2px}
  .rail-time{font-size:clamp(1.12rem,5vw,1.52rem)}
  .rail li strong{font-size:.79rem;padding-top:13px}
  .rail li span:last-child{font-size:.64rem;padding-right:4px}
  .rail li strong::before{right:-4px}
  .rail li strong::after{height:10px;width:10px;top:-1px}
  .junction{padding:8px 10px;font-size:.7rem}
  .subsection{margin-top:34px}
  .section-head{display:grid;justify-content:start;gap:7px}
  .section-head .btn{justify-self:start}
  h3{font-size:1.55rem}
  .lead{font-size:.87rem}
  .shore{padding:11px 4px 8px;border-radius:15px}
  .shore li{font-size:.66rem}
  .shore li small,.shore p{font-size:.67rem}
  .shore ol::before{top:9px}
  .shore-node{height:22px;width:22px;font-size:.68rem}
  .lunch-grid,.backups{gap:8px}
  .food-card{border-radius:13px}
  .photo-pair,.backups .photo-pair,.backups .single-photo{height:clamp(83px,25vw,145px)}
  .food-body{padding:8px}
  .food-body h4{font-size:.99rem;margin-top:4px}
  .eyebrow{font-size:.66rem;gap:4px}
  .eyebrow .num{width:16px;height:16px;font-size:.62rem}
  .food-body p:not(.price){font-size:.76rem;line-height:1.52}
  .food-body .price{font-size:.75rem;margin:5px 0 4px}
  .food-body .links{margin-top:4px;gap:1px 9px;font-size:.7rem}
  .split{grid-template-columns:1fr;border-radius:16px}
  .split-image{height:190px}
  .split-copy{padding:15px}
  .split-copy>p:not(.kicker,.price){font-size:.91rem}
  .split-copy h4{font-size:1.24rem}
  .split .actions .btn{font-size:.8rem;padding:9px 10px}
  .return-route{gap:5px;padding:9px 8px;font-size:.81rem}
  .return-route div span{font-size:.66rem}
  .mini-grid{gap:8px}
  .wide-photos img{height:108px}
  .mini-grid img{height:66px}
  .mini-grid h4{font-size:.78rem}
  .mini-grid p,.mini-grid a{font-size:.68rem}
  .disclosure summary{padding:11px;font-size:.89rem}
  .details-in{padding:0 11px 11px}
  .decide{grid-template-columns:1fr;padding:11px 12px}
  .decision-actions button{flex:1}
  .decide h4{font-size:1.13rem}
  .last-option{grid-template-columns:minmax(90px,29%) 1fr}
  .last-option>div{padding:10px}
  .last-option p:not(.kicker){font-size:.8rem}
  .last-option .kicker{font-size:.66rem}
  .last-option a{font-size:.73rem}
  .ichiryu{grid-template-columns:1fr;font-size:.86rem;gap:8px}
  .ichiryu .photo-pair{height:120px}
  .preparation{margin-top:46px}
  .prep-grid{grid-template-columns:1fr;gap:8px}
  .prep-grid article{padding:10px 12px}
  .budget p{font-size:.85rem}
}
@media (max-width:355px){
 .wrap{width:calc(100% - 18px)}
 .day-chip .day-stamp{display:none}
 .day-chip{display:block}
 .hero h1{font-size:2rem}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
