:root{--muted:#60665d;--line:#d5d0c4;--accent:#943b30}
@font-face{font-family:'Zen Maru Gothic';src:url('fonts/ZenMaruGothic-Regular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Zen Maru Gothic';src:url('fonts/ZenMaruGothic-Medium.ttf') format('truetype');font-weight:500 900;font-style:normal;font-display:swap}
:root{--travel-font:'Zen Maru Gothic','Yu Gothic',Meiryo,sans-serif}
body,button,input,select{font-family:var(--travel-font)}
.logo,h1,h2,h3,.scene span,.spot h3,.event h3,.custom-place-form h3{font-family:var(--travel-font);font-weight:500;letter-spacing:.015em}
.logo{letter-spacing:.06em}.time,.summary strong,.spot .number{font-family:var(--travel-font);font-weight:500;font-variant-numeric:tabular-nums}
body{background:#f3efe5;line-height:1.75}
::selection{background:#e8c9b1;color:#292e2b}
input{caret-color:var(--accent)}
a{text-underline-offset:4px}button,a,input,select{touch-action:manipulation}
header{padding:18px 4vw;background:#f8f5ed}header nav button{min-height:44px;border-bottom:1px solid var(--line)}
main{max-width:1440px;padding-top:30px}.heading{margin-bottom:18px}h1{font-size:34px;letter-spacing:.03em}
.city-picker{margin-bottom:28px;padding:12px 0}.city-picker select{min-height:44px}
.layout{grid-template-columns:minmax(0,1.25fr) minmax(320px,.8fr);gap:40px;align-items:start}
.trip-workspace{grid-column:1;grid-row:1}.discovery{grid-column:2;grid-row:1}
.trip-settings{margin-bottom:22px;border-block:1px solid var(--line)}
.trip-settings>summary{cursor:pointer;padding:13px 0;font-weight:600;min-height:48px}
.trip-settings>summary span{font-weight:400;font-size:13px;color:var(--muted);margin-left:12px}
.settings{border:0;margin:0;padding:4px 0 20px;gap:14px 24px}.settings label{color:#565c53}
.settings input,.settings select{background:#fbf9f3;border:1px solid #bbbdb1;padding:8px 10px;margin-top:5px;min-height:44px}
.notebook{padding:30px 32px;background:#fffdf8;border:0;box-shadow:0 8px 28px #42372314}
.notebook:before{left:15px;border-color:#e4c4b8}.note-head h2{font-size:27px;line-height:1.5}
.summary{gap:14px;justify-content:space-between;padding:16px 0;margin:20px 0 28px;flex-wrap:wrap}.summary span{font-size:12px;color:var(--muted)}.summary strong{display:block;font-size:22px;color:var(--ink);font-variant-numeric:tabular-nums}
.event{grid-template-columns:56px minmax(0,1fr);gap:18px;padding-bottom:26px}.event:before{left:64px}.event:after{left:61px;width:6px;height:6px}.event h3{font-size:22px;line-height:1.5}.time{font-size:18px;font-variant-numeric:tabular-nums}.event-body{min-width:0}
.event .tools{gap:5px 12px}.tools button{min-height:36px;padding:5px;color:#545c51}.tools button:disabled{opacity:.4;cursor:default}.tools label{white-space:nowrap}.tools input{width:55px;border-bottom:1px solid #979d8e}
.transit{flex-wrap:wrap;gap:8px}.transit select{min-height:36px}.gap-add{min-height:40px;padding:8px 13px;color:#53624c;border-color:#afb7a4}.insert{background:#354331;color:white;border:0;min-height:48px;padding:12px}.cat-note{margin-top:10px}.foot{line-height:1.7;overflow-wrap:anywhere}
.scene{height:170px;margin-bottom:24px}.discovery h2{font-size:24px}.filters{gap:6px;margin:16px 0}.filters button{min-height:40px;padding:6px 12px;font-size:13px}
.catalog{display:block;max-height:620px;overflow:auto;overscroll-behavior:contain;padding-right:10px;scrollbar-color:#a6aa99 #e9e5dc;scrollbar-width:thin}
.spot,.spot:nth-child(2n){padding:18px 0;background:transparent;border:0;border-top:1px solid var(--line)}.spot .number{font:12px/1.5 'Yu Gothic',Meiryo,sans-serif;color:#5c6559}.spot h3{font-size:21px;margin:5px 0}.spot p{font-size:13px}.spot button{width:auto;min-height:40px;padding:6px 16px;margin-top:8px;background:#faf7ef}.spot button:disabled{background:#e4e5da;color:#5b6655}.spot details summary{cursor:pointer;min-height:36px;font-size:13px}.spot details p{margin:7px 0}
.cloud-panel{margin:28px 0 0;padding:20px 0;background:none;border:0;border-top:1px solid var(--line)}.cloud-panel h2{font-size:21px}.cloud-panel p{font-size:13px}.cloud-panel input,.cloud-panel select{border:1px solid #babdb0;min-height:44px}.cloud-panel button{min-height:44px}.cloud-panel .foot{margin-top:12px}
dialog{width:min(720px,94vw);padding:28px;max-height:88dvh;border:0;background:#faf7ef;box-shadow:0 18px 64px #0003}dialog::backdrop{background:#292e2b88;backdrop-filter:none}.modal-top{padding-bottom:12px;border-bottom:1px solid var(--line)}.modal-top button{min-width:44px;min-height:44px}.modal-top h2{font-size:25px;line-height:1.5}.action-tabs{gap:6px;margin:16px 0}.action-tabs button{min-height:44px;padding:8px 14px;font-size:14px}#action-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}.action-option{margin:0;padding:16px;border:1px solid #c8c9ba;background:#fffdf8}.action-option strong{font-size:19px;line-height:1.5;margin-bottom:6px}.action-option small{display:block;line-height:1.6;color:#5b6356}.action-fields input,.action-fields select{min-height:44px;border:1px solid #b9bdae;padding:8px;margin-top:6px}#action-detail{background:transparent;padding:16px 0;border-block:1px solid var(--line)}#action-detail button{min-height:40px;background:transparent;border:1px solid var(--line);padding:6px 12px}#action-detail h3{margin-top:16px}.transport-options button{min-height:74px;padding:12px;background:#fffdf8}.transport-options button[aria-pressed=true]{background:#eee8dc;border-color:var(--accent)}#action-preview{background:#e9edde;color:#384531;padding:14px}#action-confirm{min-height:48px;width:100%;background:#354331}.action-option:hover,.spot button:not(:disabled):hover,.filters button:not(.active):hover{background:#e9e8dd}.action-tabs button:hover{border-color:#717b65}.insert:hover,#action-confirm:hover{background:#465a40}button:disabled{cursor:default}
@media(max-width:1000px){.layout{gap:24px;grid-template-columns:minmax(0,1.1fr) minmax(280px,.8fr)}main{padding-inline:3vw}.notebook{padding:26px}.summary{gap:10px}.note-head h2{font-size:23px}}
@media(max-width:760px){.layout{display:flex;flex-direction:column;gap:32px}.trip-workspace,.discovery{width:100%}main{padding:22px 5vw 84px}h1{font-size:27px}.heading{display:block}.city-picker{align-items:start;gap:16px}.city-picker p{font-size:12px;margin:0}.trip-settings>summary span{display:block;margin:0}.notebook{padding:24px 22px}.notebook:before{left:10px}.note-head h2{font-size:23px}.summary strong{font-size:21px}.event{gap:13px;grid-template-columns:49px minmax(0,1fr)}.event:before{left:54px}.event:after{left:51px}.event h3{font-size:20px}.catalog{max-height:520px}.scene{height:180px}header nav{display:flex;gap:8px}header nav button{margin:0;padding:4px;font-size:12px}.logo{font-size:23px}.mobile-switch{min-height:48px}dialog{padding:20px}.action-fields{gap:14px}#action-options{grid-template-columns:1fr}.transport-options{grid-template-columns:repeat(3,minmax(0,1fr))}.transport-options button{padding:8px;font-size:13px}.transport-options small{font-size:11px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
@media print{.trip-settings{display:none!important}.layout{display:block}.notebook{box-shadow:none;padding:20px}.trip-workspace{width:100%}}

/* City photography: retain the notebook, let the destination set the mood. */
.scene{height:280px;background:#495b4b}.scene img{display:block;object-position:center}.scene:after{content:"";position:absolute;inset:50% 0 0;background:linear-gradient(transparent,#0008);pointer-events:none}.scene span{z-index:1;font-size:29px;left:22px;bottom:20px}.osaka-scene:before{display:none}
@media(max-width:760px){.scene{height:240px}.scene span{font-size:27px}}

.catalog-search{display:grid;grid-template-columns:1.2fr 1fr;gap:18px;margin-top:22px}.catalog-search label{font-size:13px;color:var(--ink)}.filters button span{font-size:12px;opacity:.85;margin-left:4px}.catalog-empty{grid-column:1/-1;padding:24px 0}.catalog-search input{min-width:0}@media(max-width:500px){.catalog-search{grid-template-columns:1fr;gap:12px}}

.custom-place-form{border-top:1px solid var(--line);margin-top:28px;padding-top:20px;display:grid;gap:12px}.custom-place-form h3{font:22px "Yu Mincho",serif;margin:0}.custom-place-form label{font-size:13px}.custom-place-form button{background:var(--ink);color:var(--paper);border:0;padding:12px}.custom-place-form [role=status]{font-size:13px;color:var(--red)}

.logo,h1,h2,h3,.scene span,.spot h3,.event h3,.custom-place-form h3,.time,.summary strong,.spot .number{font-family:var(--travel-font);font-weight:500}

/* Light editorial typography: clean shapes, restrained weight, clear rhythm. */
@font-face{font-family:'Noto Sans JP';src:url('fonts/NotoSansJP.ttf') format('truetype');font-style:normal;font-weight:100 900;font-display:swap}
:root{--travel-font:'Noto Sans JP','Yu Gothic',Meiryo,sans-serif}
body{font-weight:400;letter-spacing:.01em;line-height:1.8}
.logo{font-weight:400;letter-spacing:.08em}
h1{font-weight:300;letter-spacing:.035em;line-height:1.6}
h2,.note-head h2,.discovery h2,.modal-top h2{font-weight:400;letter-spacing:.025em}
h3,.event h3,.spot h3,.custom-place-form h3{font-weight:400;letter-spacing:.015em}
.scene span{font-weight:300;letter-spacing:.055em}
.time{font-weight:400;letter-spacing:0}.summary strong{font-weight:500;letter-spacing:0}
.spot .number{font-weight:400}.action-option strong{font-weight:500}

/* Mincho headings with rounded Gothic body text. */
@font-face{font-family:'Noto Serif JP';src:url('fonts/NotoSerifJP.ttf') format('truetype');font-style:normal;font-weight:100 900;font-display:swap}
:root{--travel-font:'Zen Maru Gothic','Yu Gothic',Meiryo,sans-serif;--heading-font:'Noto Serif JP','Yu Mincho',serif}
.logo,h1,h2,h3,.note-head h2,.discovery h2,.modal-top h2,.event h3,.spot h3,.custom-place-form h3,.scene span{font-family:var(--heading-font);font-weight:400}
h1,.scene span{font-weight:300}.logo{letter-spacing:.07em}
.time,.summary strong,.spot .number{font-family:var(--travel-font)}

.trip-overview{margin:0 0 32px;padding:20px 0;border-block:1px solid var(--line)}.overview-heading{display:flex;gap:20px;align-items:baseline;justify-content:space-between}.overview-heading h2{margin:0;font-size:23px}.overview-heading p,.overview-credit{font-size:12px;color:#60665d}.overview-credit{margin-top:12px}#trip-overview-list{display:flex;overflow-x:auto;gap:18px;padding:16px 0 8px;scrollbar-color:#a6aa99 #e9e5dc}.overview-day{display:flex;text-align:left;align-items:stretch;flex:0 0 265px;min-height:130px;border:1px solid #ccc6b9;background:#faf7ef;padding:0;overflow:hidden}.overview-day.selected{border-color:#943b30;box-shadow:inset 0 -2px #943b30}.overview-day:hover{background:#eee8dc}.overview-day img{width:90px;object-fit:cover}.overview-copy{display:flex;flex-direction:column;gap:5px;padding:13px;min-width:0}.overview-copy strong{font-family:var(--heading-font);font-weight:400;font-size:21px}.overview-copy span{font-size:12px}.overview-date{color:#943b30}.overview-hotel{overflow-wrap:anywhere;color:#545c51}.notebook-photo{margin:22px 0 0;position:relative}.notebook-photo img{width:100%;height:190px;object-fit:cover;display:block}.notebook-photo figcaption{font-size:12px;padding-top:8px;color:#545c51}.notebook-photo small{font-size:10px;line-height:1.6;display:block;color:#545c51}.notebook-photo a{color:inherit}@media(max-width:760px){.overview-heading{display:block}.overview-day{flex-basis:235px}.notebook-photo img{height:160px}}@media print{.trip-overview{display:none}.notebook-photo img{height:140px}}

.evaluation-notice{padding:18px;background:#e9edde;margin-bottom:24px}.evaluation-notice p{font-size:13px}.evaluation-notice button{padding:8px 12px;background:transparent;border:1px solid #8b947d}

.travel-time-edit{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0 0 14px;font-size:13px}.travel-time-edit input{width:76px;padding:7px;border:1px solid var(--line);background:transparent;color:var(--ink);font:inherit}.travel-time-edit small{color:#53594f}
