/* ===== destination page / itinerary builder ===== */
.planner{display:grid;grid-template-columns:1fr 340px;gap:40px;padding-top:36px;padding-bottom:80px;align-items:start} /* side padding stays the .wrap gutter */
@media (max-width:920px){.planner{grid-template-columns:1fr}}
.setup{background:#fff;border:1px solid var(--line);border-radius:10px;padding:20px;display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:-40px;position:relative;box-shadow:0 12px 40px rgba(31,26,20,.08)}
.setup .f label{display:block;font-size:13px;color:var(--ink-3);margin-bottom:5px}
.setup input{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:var(--r);font:inherit}
.setup .f{min-width:0}.setup input[type=date]{min-width:0;display:block;-webkit-appearance:none;appearance:none;height:44px} /* iOS date fields otherwise refuse to shrink */
.setup .party,.xsetup .party{grid-column:span 2;display:flex;gap:8px;flex-wrap:wrap;align-items:center;font-size:14.5px}
.setup .party .p,.xsetup .party .p{border:1px solid var(--line);border-radius:999px;padding:5px 12px;background:var(--paper)}
.setup .party .p small,.xsetup .party .p small{color:var(--ink-3)}
.setup .party input,.xsetup .party input{width:110px;padding:6px 10px;height:auto}.setup .party input.age,.xsetup .party input.age{width:64px}
@media (max-width:620px){.setup{grid-template-columns:1fr}.setup .party{grid-column:span 1}}

#home-plan{padding:24px 0 0;scroll-margin-top:72px}
.plan-back{display:inline-block;font-size:14px;color:var(--ink-2);margin-bottom:12px}
body.plan-mode #destinations,body.plan-mode #home-choose{display:none}
#planner-block #home-guide{padding:0;margin-top:44px}
#planner-block .guide{grid-template-columns:1fr;gap:28px}
#planner-block .gpreview{max-width:560px}
#planner-block #g-plan{display:none}
#planner-block #g-add{grid-column:1/-1}
.plan-others{display:none;padding:26px 0;border-top:1px solid var(--line);font-size:15px;color:var(--ink-2)}
body.plan-mode .plan-others{display:block}
.plan-others a{color:var(--ink)}
.plan-note{font-size:14px;color:var(--ink-3);margin-top:22px}
.go-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:18px}
.gform{display:flex;gap:8px;flex-wrap:wrap}
.gform input{padding:11px 12px;border:1px solid var(--line);border-radius:999px;font:inherit;font-size:15px;min-width:220px;background:#fff}
.go-hint{margin-top:10px;font-size:13px;color:var(--ink-3)}
.go-sent{margin-top:12px;font-size:14px;color:var(--green)}
.go-sent a{color:inherit;text-decoration:underline}
.go-note{display:block;margin-top:4px;color:var(--ink-2)}
@media (max-width:620px){.gform,.gform input,.gform .btn,.go-actions .btn{width:100%}.gform .btn,.go-actions .btn{justify-content:center}}
#home-plan h2{margin-bottom:8px}
.why-go{padding:28px 0 0}
.why-go h2{font-size:1.5rem;margin-bottom:8px}
.why-go p{color:var(--ink-2);max-width:68ch}
.why-go p+p{margin-top:10px}
.why-go .by{font-size:14px;color:var(--ink-3);margin-top:10px}
.why-go #why-more{display:inline-block;margin-top:6px;font-size:14px;color:var(--ink);text-decoration:underline} /* Read more / Read less */
.why-go.collapsed p:not(:first-of-type){display:none}
#dest-plan .why-go{padding-top:36px}
.why-go:not(.hidden){padding-bottom:26px}
.why-go:not(.hidden)+.wrap .setup{margin-top:0}
#home-plan .plan-lede{color:var(--ink-2);margin-bottom:6px}
#home-plan .setup{margin-top:18px}
.mcard .short{color:var(--ink-2);font-size:13.5px;margin-bottom:10px}
.mcard .again{color:var(--green);font-size:12.5px;margin:-4px 0 10px}
.slot-edit{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:8px}
.slot-edit select{padding:4px 8px;border:1px solid var(--line);border-radius:999px;font:inherit;font-size:13px;background:#fff}
.who{display:flex;gap:6px;flex-wrap:wrap}
.pchip{border:1px solid var(--line);border-radius:999px;padding:3px 10px;font-size:12.5px;color:var(--ink-3);background:#fff}
.pchip[aria-pressed="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.pchip.off{opacity:.55;text-decoration:line-through;cursor:default}
.empty a{color:var(--ink)}
.empty .free-guide{display:inline-block;margin-top:10px;border:1px solid var(--ink);border-radius:999px;padding:6px 14px;font-size:14px;color:var(--ink);background:#fff}

.days{margin-top:32px}
.day{display:grid;grid-template-columns:120px 1fr;gap:22px;padding:22px 0;border-top:1px solid var(--line)}
.day .dh{font-family:var(--serif);font-size:1.35rem;line-height:1.15}
.day .dh small{display:block;font-family:var(--sans);font-size:13px;color:var(--ink-3);margin-top:4px}
.slots{display:flex;flex-direction:column;gap:10px}
.slot{display:grid;grid-template-columns:96px 1fr auto;gap:14px;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:12px;align-items:center}
.slot .media{aspect-ratio:1;border-radius:4px}
.slot .media .play{width:34px;height:34px}.slot .media .play::after{border-left-width:10px;border-top-width:6px;border-bottom-width:6px}
.slot b{display:block;font-weight:500;font-size:16px}
.slot small{display:block;color:var(--ink-3);font-size:13.5px}
.slot .acts{display:flex;gap:4px;flex-direction:column;align-items:flex-end}
.slot .acts button{font-size:13px;color:var(--ink-2);padding:4px 8px;border-radius:4px}
.slot .acts button:hover{background:var(--paper-2)}
.slot.auto::before{content:"";}
.why{font-size:12.5px;color:var(--green);margin-top:2px}
.warn{background:var(--warnbg);color:var(--warn);font-size:13.5px;padding:8px 12px;border-radius:4px}
.empty{color:var(--ink-3);font-size:14.5px;padding:14px;border:1px dashed var(--line);border-radius:var(--r)}
.addrow{display:flex;gap:8px;align-items:center;font-size:14px}
.addrow select{padding:8px 10px;border:1px solid var(--line);border-radius:var(--r);font:inherit;background:#fff;max-width:100%}
.addrow button{border:1px solid var(--ink);border-radius:999px;padding:6px 14px;font-size:14px}
@media (max-width:620px){.day{grid-template-columns:1fr;gap:10px}.slot{grid-template-columns:70px 1fr}.slot .acts{grid-column:span 2;flex-direction:row}}

.more h2{font-size:1.8rem;margin:44px 0 6px}
.more p{color:var(--ink-2);margin-bottom:18px}
.mgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.mcard{background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;font-size:14px}
.mcard .media{aspect-ratio:16/10}
.mcard .body{padding:12px 14px}
.mcard b{display:block;font-weight:500;font-size:15.5px}
.mcard small{color:var(--ink-3);display:block;margin-bottom:8px}
.mcard .row{display:flex;gap:8px;align-items:center}
.mcard select{flex:1;padding:6px 8px;border:1px solid var(--line);border-radius:4px;font:inherit;font-size:13px}
.mcard button{border:1px solid var(--ink);border-radius:999px;padding:5px 12px;font-size:13px}
.mcard .watch{text-decoration:underline;font-size:13px;color:var(--ink-2)}
@media (max-width:820px){.mgrid{grid-template-columns:1fr 1fr}}@media (max-width:520px){.mgrid{grid-template-columns:1fr}}

.summary{position:sticky;top:120px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:22px;box-shadow:0 12px 40px rgba(31,26,20,.08)}
.summary h3{margin-bottom:12px}
.summary .line{display:flex;justify-content:space-between;font-size:14.5px;padding:6px 0;border-bottom:1px solid var(--line)}
.summary .line small{color:var(--ink-3)}
.summary .tot{display:flex;justify-content:space-between;align-items:baseline;margin:14px 0 12px}
.summary .tot b{font-family:var(--serif);font-size:1.7rem;font-weight:400}
.summary .btn{width:100%;justify-content:center;padding:14px}
.summary .fine{font-size:13px;color:var(--ink-3);margin-top:12px;text-align:center}
.summary .fine b{color:var(--ink);font-weight:500}
.summary .warns{margin-top:12px;display:flex;flex-direction:column;gap:6px}

