/* Trip planner on the home hero: a frosted bar of segments, paper popovers below it. */
.pl{position:relative;z-index:6;max-width:980px;color:var(--ink);font-family:var(--sans)}
.pl-bar{display:grid;grid-template-columns:1.35fr 1fr 1fr auto;align-items:stretch;padding:8px;border-radius:24px;
  background:rgba(251,250,244,.94);box-shadow:0 30px 70px -28px rgba(5,20,18,.7),0 0 0 1px rgba(255,255,255,.5) inset;backdrop-filter:blur(16px) saturate(1.2)}
.pl-seg{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:0;min-width:0;padding:12px 20px;border:0;border-radius:18px;background:transparent;text-align:left;cursor:pointer;color:inherit;font:inherit;transition:background .2s}
.pl-seg+.pl-seg::before{content:"";position:absolute;left:0;top:22%;bottom:22%;width:1px;background:var(--line)}
.pl-seg:hover{background:rgba(39,89,84,.06)}
.pl-seg.is-open{background:#fff;box-shadow:0 10px 28px -14px rgba(19,47,44,.45)}
.pl-seg.is-open::before,.pl-seg.is-open+.pl-seg::before{opacity:0}
.pl-k{font-size:12.5px;font-weight:700;color:var(--sun-d)}
.pl-v{max-width:100%;font:700 18px/1.5 var(--serif);color:var(--teal);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pl-s{max-width:100%;font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pl-go{display:flex;align-items:center;gap:14px;padding:6px 6px 6px 20px;border-left:1px solid var(--line)}
.pl-total{display:flex;flex-direction:column;line-height:1.25;font-size:13px;color:var(--muted);white-space:nowrap}
.pl-total b{font:700 20px/1.3 var(--serif);color:var(--teal);font-variant-numeric:tabular-nums}
.pl-btn{display:inline-flex;align-items:center;gap:8px;min-height:60px;padding:0 26px;border:0;border-radius:18px;cursor:pointer;
  background:linear-gradient(180deg,#ef9a4f,var(--sun));color:#24170a;font:700 17px var(--sans);box-shadow:0 14px 28px -12px rgba(200,109,34,.95),inset 0 1px 0 rgba(255,255,255,.35);transition:transform .15s,filter .15s}
.pl-btn svg{width:18px;height:18px;transition:transform .2s}
.pl-btn:hover{transform:translateY(-1px);filter:brightness(1.04)}
.pl-btn:hover svg{transform:translateX(3px)}
.pl-btn:focus-visible,.pl-seg:focus-visible{outline:3px solid var(--sun-d);outline-offset:2px}

/* Popovers */
.pl-pop{position:absolute;top:calc(100% + 10px);left:0;z-index:30;padding:20px;border-radius:24px;background:#fbfaf4;border:1px solid var(--line);
  box-shadow:0 40px 80px -30px rgba(5,20,18,.55);animation:pl-in .22s cubic-bezier(.2,.8,.2,1)}
.pl-pop[hidden]{display:none}
.pl-cal{width:min(760px,calc(100vw - 40px))}
.pl-who{left:calc(1.35 / 4.35 * 100% - 30px);width:380px}
.pl-stay{left:auto;right:150px;width:min(560px,calc(100vw - 40px))}
.pl-pop-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:12px}
.pl-hint{flex:1;margin:0;font-size:14px;color:var(--muted)}
.pl-mode{display:inline-flex;padding:4px;border-radius:999px;background:var(--mist)}
.pl-mode button{min-height:36px;padding:0 16px;border:0;border-radius:999px;background:none;font:600 14px var(--sans);color:var(--muted);cursor:pointer}
.pl-mode button[aria-pressed=true]{background:var(--teal);color:#fff8ee;box-shadow:0 4px 12px -4px rgba(19,47,44,.6)}
.pl-nav{display:flex;gap:6px}
.pl-nav button{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--teal);cursor:pointer}
.pl-nav button:disabled{opacity:.35;cursor:default}
.pl-nav svg{width:18px;height:18px}
.pl-months{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.pl-month h4{margin:0 0 8px;text-align:center;font:700 16px/1.5 var(--serif);color:var(--teal)}
.pl-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px 0}
.pl-dow{padding:2px 0 6px;text-align:center;font-size:10.5px;color:var(--muted);white-space:nowrap;overflow:hidden}
.pl-day{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;height:50px;padding:0;border:0;background:none;cursor:pointer;color:var(--ink);font:inherit}
.pl-day b{display:grid;place-items:center;width:38px;height:30px;border-radius:10px;font:600 15px/1 var(--sans);font-variant-numeric:tabular-nums;transition:background .15s,color .15s}
.pl-day small{font-size:9.5px;line-height:1.3;color:var(--pine);white-space:nowrap}
.pl-day:hover:not(:disabled) b{background:var(--mist)}
.pl-day:disabled{cursor:default;color:#b7c3bf}
.pl-day:disabled small{color:#c7b3a4}
.pl-day.is-today b{box-shadow:inset 0 0 0 1.5px var(--sun)}
.pl-day.is-low small{color:var(--sun-d);font-weight:700}
.pl-day.is-full small{color:#b24a2a;font-weight:700}
.pl-day.is-full b{text-decoration:line-through;text-decoration-color:rgba(178,74,42,.5)}
.pl-day.in-range{background:rgba(39,89,84,.1)}
.pl-day.r-start{background:linear-gradient(90deg,transparent 50%,rgba(39,89,84,.1) 50%)}
.pl-day.is-end{background:linear-gradient(90deg,rgba(39,89,84,.1) 50%,transparent 50%)}
.pl-day.is-start b,.pl-day.is-end b{background:var(--teal)!important;color:#fff8ee}
.pl-day.is-end b{background:var(--sun)!important;color:#24170a}
.pl-day.is-start small,.pl-day.is-end small{color:var(--teal)}
.pl-pop-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.pl-legend{display:flex;align-items:center;gap:6px 12px;flex-wrap:wrap;font-size:12.5px;color:var(--muted)}
.pl-legend i{display:inline-block;width:9px;height:9px;margin-right:-6px;border-radius:50%;vertical-align:middle}
.lg-ok{background:var(--pine)}.lg-low{background:var(--sun-d)}.lg-full{background:#b24a2a}
.pl-done{min-height:40px;padding:0 20px;border:0;border-radius:12px;background:var(--teal);color:#fff8ee;font:700 15px var(--sans);cursor:pointer}

.pl-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 0;border-bottom:1px solid var(--line)}
.pl-row b{display:block;font-size:16px;color:var(--teal)}
.pl-row span{font-size:13px;color:var(--muted)}
.pl-step{display:flex;align-items:center;gap:6px}
.pl-step button{width:38px;height:38px;border:1.5px solid var(--line);border-radius:50%;background:#fff;color:var(--teal);font:600 20px/1 var(--sans);cursor:pointer;transition:border-color .15s}
.pl-step button:hover{border-color:var(--teal)}
.pl-step output{min-width:28px;text-align:center;font:700 18px var(--serif);color:var(--ink);font-variant-numeric:tabular-nums}
.pl-note{margin:12px 0 0;font-size:13px;color:var(--muted)}

.pl-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.pl-card{position:relative;display:flex;flex-direction:column;gap:2px;padding:14px;border:1.5px solid var(--line);border-radius:16px;background:#fff;cursor:pointer;transition:border-color .15s,box-shadow .15s}
.pl-card input{position:absolute;opacity:0;pointer-events:none}
.pl-card:hover{border-color:#a9bfb8}
.pl-card:has(input:checked){border-color:var(--teal);box-shadow:0 0 0 3px rgba(39,89,84,.14)}
.pl-card:has(input:focus-visible){outline:3px solid var(--sun-d);outline-offset:2px}
.pl-card b{font-size:15px;color:var(--teal);line-height:1.4}
.pl-card>span:not(.pl-ico){font-size:12.5px;color:var(--muted)}
.pl-card em{font-style:normal;font-size:12.5px;font-weight:700;color:var(--pine)}
.pl-card.is-full em{color:#b24a2a}
.pl-ico{display:grid;place-items:center;width:40px;height:32px;margin-bottom:4px;color:var(--teal);font-size:22px}
.pl-ico svg{width:40px;height:30px}
.pl-qty{margin-top:8px;border-bottom:0}


@keyframes pl-in{from{opacity:0;transform:translateY(-6px)}}

/* Tablet: bar wraps, popovers span the bar */
@media (max-width:1020px){
  .pl-bar{grid-template-columns:1fr 1fr 1fr}
  .pl-go{grid-column:1/-1;justify-content:space-between;border-left:0;border-top:1px solid var(--line);margin-top:6px;padding:10px 4px 4px 14px}
  .pl-who,.pl-stay,.pl-cal{left:0;right:auto}
}
/* Phone: stacked bar, popovers become bottom sheets */
@media (max-width:640px){
  .pl-bar{grid-template-columns:1fr;padding:6px;border-radius:20px}
  .pl-seg{padding:10px 14px}
  .pl-seg+.pl-seg::before{left:14px;right:14px;top:0;bottom:auto;width:auto;height:1px}
  .pl-go{padding:10px 4px 4px 12px}
  .pl-btn{min-height:52px;padding:0 20px}
  .pl-pop{position:fixed;left:0!important;right:0!important;top:auto;bottom:0;width:auto!important;max-height:86vh;overflow:auto;border-radius:24px 24px 0 0;padding:18px 16px calc(16px + env(safe-area-inset-bottom));animation:pl-up .28s cubic-bezier(.2,.8,.2,1)}
  .pl-months{grid-template-columns:1fr}
  .pl-pop{box-shadow:0 0 0 100vmax rgba(10,30,28,.5),0 -10px 40px rgba(0,0,0,.25)}
  .pl-pop-head{gap:10px}
  .pl-hint{order:3;flex-basis:100%}
}
@keyframes pl-up{from{transform:translateY(40px);opacity:.4}}
@media (prefers-reduced-motion:reduce){.pl-pop{animation:none}}

/* While a popover is open the hero sits above the sections that follow it. */
.h-hero:has(.pl.has-pop){z-index:19}
