/* journeydeal — fixed departures, packages and group tours: phone layout, the fare calendar, the hotel picker, day-by-day
   itineraries that open and close, departure months (2026-10-02). Attached by public/js/jd-fd.js on every page that uses it. */

/* ---- nothing may be wider than the phone: grid columns may shrink below their content ---- */
.fd-grid{grid-template-columns:minmax(0,1fr) 340px}
@media(max-width:900px){.fd-grid{grid-template-columns:minmax(0,1fr)}}
.fd-grid>*,.fd-wrap>*,.fd-pane,.fd-legs>div,.fd-steps>*,.fd-review>*{min-width:0}
.fd-empty,.fd-note,.fd-err{max-width:100%;overflow-wrap:anywhere}
.fd h1,.fd h2{overflow-wrap:anywhere}

/* ---- the search bar: From | To · Dates · Travellers | Trip · Search ---- */
.fd-bar.fd-bar2{grid-template-columns:minmax(0,1.1fr) minmax(0,1.1fr) minmax(0,1.6fr) 84px auto auto;align-items:end}
.fdb-dd{display:flex;gap:6px}
.fdb-d{flex:1;min-width:0;text-align:left;font:inherit;font-size:14px;font-weight:600;color:var(--fd-text,#122620);padding:9px 10px;border:1px solid var(--fd-line,#dde4e1);border-radius:10px;background:#fff;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fdb-d:hover,.fdb-d:focus-visible{border-color:var(--fd-brand,#0e5a45);outline:none}
.fd-bar2 .fd-tabs{display:flex;width:100%}
.fd-bar2 .fd-tabs button{flex:1;white-space:nowrap}
.fd-bar2 .fd-go .fd-btn{white-space:nowrap;height:40px}
@media(max-width:820px){
  .fd-bar.fd-bar2{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}
  .fd-bar2 .fdb-dates{grid-column:1/-1}
  .fd-bar2 .fd-go{grid-column:1/-1}
  .fd-bar2 .fd-go .fd-btn{width:100%;height:44px}
  /* the package's trip bar (date · nights · travellers · rooms) is 2×2 on a phone */
  .fd .fd-bar[style*="grid-template-columns"]{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important}
  .fd-steps{gap:6px}.fd-step small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
}

/* ---- results: date arrows, phone leg tabs, nearest dates with fares ---- */
.fd-dnav{display:flex;align-items:center;justify-content:space-between;gap:8px;background:#fff;border:1px solid var(--fd-line,#dde4e1);border-radius:12px;padding:6px;margin:0 0 10px}
.fd-dnav b{font-size:14px;text-align:center;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fd-dnav button{border:1px solid var(--fd-line,#dde4e1);background:var(--fd-bg,#f4f6f5);color:var(--fd-brand,#0e5a45);font-weight:700;font-size:13px;border-radius:9px;padding:7px 10px;cursor:pointer;white-space:nowrap}
.fd-dnav button:disabled{opacity:.4;cursor:default}
.fd-ltabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:0 0 10px;position:sticky;top:0;z-index:5;background:var(--fd-bg,#f4f6f5);padding:6px 0}
.fd-ltab{display:flex;gap:8px;align-items:center;text-align:left;border:1.5px solid var(--fd-line,#dde4e1);background:#fff;border-radius:12px;padding:8px;cursor:pointer;min-width:0;font:inherit}
.fd-ltab i{flex:none;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-weight:800;font-size:12px;background:var(--fd-bg,#f4f6f5);color:var(--fd-muted,#5d6d67)}
.fd-ltab span{min-width:0}.fd-ltab b{display:block;font-size:13px}.fd-ltab small{display:block;font-size:11px;color:var(--fd-muted,#5d6d67);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fd-ltab.on{border-color:var(--fd-brand,#0e5a45);box-shadow:0 0 0 3px var(--fd-tint,#e7f1ed)}
.fd-ltab.on i{background:var(--fd-brand,#0e5a45);color:#fff}
.fd-ltab.done i{background:var(--fd-ok,#15803d);color:#fff}
.fd-nextd:empty{display:none}
.fd-nextin{display:flex;flex-wrap:wrap;gap:6px;align-items:center;background:#f2f7ff;border:1px solid #cfe0fb;border-radius:12px;padding:10px;margin:-2px 0 12px;font-size:13px}
.fd-nextin>span{font-weight:700;color:#1e3a8a;width:100%}
.fd-offdot{color:#2563eb}

/* ---- the fare calendar ---- */
.fdc-pop{position:absolute;z-index:10050;width:328px;background:#fff;border:1px solid #d7e0ec;border-radius:16px;box-shadow:0 18px 50px rgba(15,23,42,.22);padding:12px;font-family:inherit}
.fdc-pop.sheet{position:fixed;left:8px;right:8px;bottom:8px;width:auto;max-height:calc(100dvh - 24px);overflow:auto;border-radius:18px}
.fdc-hd{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.fdc-hd b{flex:1;text-align:center;font-size:15px}
.fdc-hd button{width:34px;height:34px;border-radius:10px;border:1px solid #dbe3ee;background:#f6f8fb;font-size:18px;font-weight:800;color:#0e5a45;cursor:pointer}
.fdc-hd button:disabled{opacity:.35;cursor:default}
.fdc-hd .fdc-x2{font-size:14px;color:#334155}
.fdc-ti{font-size:12px;color:#64748b;text-align:center;margin:-2px 0 6px}
.fdc-dw,.fdc-g{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.fdc-dw span{text-align:center;font-size:11px;font-weight:700;color:#94a3b8;padding:2px 0}
.fdc-d{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-height:44px;border:1px solid transparent;border-radius:10px;background:#fff;cursor:pointer;font:inherit;padding:2px 0}
.fdc-d b{font-size:14px;font-weight:700;color:#0f172a}
.fdc-d small{font-size:9.5px;color:#64748b;line-height:1}
.fdc-d:hover:not(:disabled){border-color:#0e5a45}
.fdc-d:disabled{opacity:.3;cursor:default}
.fdc-d.td b{text-decoration:underline}
.fdc-d.off{background:#dbeafe;border-color:#93c5fd}
.fdc-d.off b,.fdc-d.off small{color:#1d4ed8}
.fdc-d.on{background:#0e5a45;border-color:#0e5a45}
.fdc-d.on b,.fdc-d.on small{color:#fff}
.fdc-lg{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:8px;font-size:11.5px;color:#475569}
.fdc-lg span{display:inline-flex;align-items:center;gap:5px}
.fdc-lg .sw{width:14px;height:14px;border-radius:4px;border:1px solid #cbd5e1;background:#fff;display:inline-block}
.fdc-lg .sw.off{background:#dbeafe;border-color:#93c5fd}

/* ---- the hotel picker: compact rows, scrolling inside its own box ---- */
.fdh{border:1px solid #e1e8f0;border-radius:14px;background:#fff;overflow:hidden}
.fdh-note{font-size:12.5px;color:#475569;padding:10px 12px 0;line-height:1.45}
.fdh-tools{padding:10px 12px;border-bottom:1px solid #eef2f7;display:grid;gap:8px}
.fdh-stars{display:flex;gap:6px;flex-wrap:wrap}
.fdh-stars button{border:1px solid #d8e0ea;background:#fff;border-radius:999px;padding:5px 11px;font:inherit;font-size:12.5px;font-weight:700;cursor:pointer;color:#0f172a}
.fdh-stars button small{color:#64748b;font-weight:600}
.fdh-stars button.on{background:#0e5a45;border-color:#0e5a45;color:#fff}.fdh-stars button.on small{color:#d1fae5}
.fdh-tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px}
.fdh-tr input,.fdh-tr select{font:inherit;font-size:13px;border:1px solid #d8e0ea;border-radius:9px;padding:7px 9px;min-width:0;background:#fff}
.fdh-count{font-size:11.5px;color:#64748b}
.fdh-list{max-height:min(62vh,560px);overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.fdh-r{display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px 12px;border-bottom:1px solid #f1f4f8}
.fdh-r:last-child{border-bottom:0}
.fdh-r.sel{background:#effaf5}
.fdh-im{width:56px;height:56px;border-radius:10px;background:#eef2f7 center/cover no-repeat;display:grid;place-items:center;font-size:22px}
.fdh-n{font-weight:700;font-size:14px;line-height:1.25;color:#0f172a;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.fdh-m{font-size:12px;color:#64748b;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fdh-st{display:inline-block;background:#fef3c7;color:#92400e;border-radius:5px;padding:0 5px;font-weight:800;font-size:11px}
.fdh-p{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:2px}
.fdh-p b{font-size:14px;white-space:nowrap}.fdh-p b.pos{color:#b45309}.fdh-p b.neg{color:#15803d}.fdh-p b.zero{color:#0f5c46}
.fdh-p small{font-size:11px;color:#64748b;white-space:nowrap}
.fdh-p .fd-btn{margin-top:4px;padding:6px 12px;font-size:12.5px}
.fdh .fd-more{margin:10px 12px}
@media(max-width:420px){.fdh-r{grid-template-columns:44px minmax(0,1fr);}.fdh-im{width:44px;height:44px}.fdh-p{grid-column:1/-1;flex-direction:row;align-items:center;justify-content:space-between;gap:8px}.fdh-p .fd-btn{margin:0}}
.gs-hl{max-width:100%}

/* ---- day-by-day: open and close ---- */
.fd-xall{display:flex;gap:8px;justify-content:flex-end;margin:0 0 8px}
.fd-xall button{border:1px solid #d8e0ea;background:#fff;border-radius:999px;padding:5px 12px;font:inherit;font-size:12.5px;font-weight:700;color:#0e5a45;cursor:pointer}
details.fd-dd>summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:110px minmax(0,1fr) 20px;gap:12px;align-items:center}
details.fd-dd>summary::-webkit-details-marker{display:none}
details.fd-dd>summary::after{content:'▾';color:#64748b;font-size:14px;transition:transform .15s;justify-self:end}
details.fd-dd[open]>summary::after{transform:rotate(180deg)}
.fd-ddt{font-weight:700;font-size:15px;color:#0f172a;min-width:0}
.fd-ddt small{font-weight:500;color:#64748b;font-size:12.5px}
details.fd-dd.gs-day{display:block}
details.fd-dd.gs-day>.gs-db{margin-top:10px}
.gs-read li{display:block}
.gs-read li>details>.gs-rb{margin:8px 0 0 122px}
@media(max-width:640px){
  details.fd-dd>summary{grid-template-columns:minmax(0,1fr) 20px;gap:4px 8px}
  details.fd-dd>summary>.gs-dn,details.fd-dd>summary>.gs-rd{grid-column:1;display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
  details.fd-dd>summary>.fd-ddt{grid-column:1}
  details.fd-dd>summary::after{grid-row:1/3;grid-column:2}
  .gs-read li>details>.gs-rb{margin-left:0}
}

/* ---- group tour departure months ---- */
.gt-cal{border:1px solid #e1e8f0;border-radius:14px;background:#fff;padding:10px;max-width:460px}
.gt-calhd{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.gt-calhd b{flex:1;text-align:center;font-size:15px}.gt-calhd b small{display:block;font-weight:600;color:#64748b;font-size:11.5px}
.gt-calhd button{width:34px;height:34px;border-radius:10px;border:1px solid #dbe3ee;background:#f6f8fb;font-size:18px;font-weight:800;color:#0e5a45;cursor:pointer}
.gt-calhd button:disabled{opacity:.35;cursor:default}
.gt-caldw,.gt-calg{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.gt-caldw span{text-align:center;font-size:11px;font-weight:700;color:#94a3b8}
.gt-mc{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:46px;border-radius:10px;font:inherit;padding:2px 0}
.gt-mc b{font-size:14px}.gt-mc small{font-size:10px;line-height:1}
.gt-mc.no b{color:#cbd5e1;font-weight:500}
.gt-mc.av{border:1.5px solid #bfe3d4;background:#f2fbf7;cursor:pointer}
.gt-mc.av small{color:#0f766e}
.gt-mc.av.sH{background:#eef4ff;border-color:#c7d7fb}.gt-mc.av.sH small{color:#1e40af}
.gt-mc.av.sP{background:#fff7e6;border-color:#f5d48f}.gt-mc.av.sP small{color:#92400e}
.gt-mc.av:disabled{opacity:.4;cursor:not-allowed}
.gt-mc.sel{background:#0e5a45!important;border-color:#0e5a45!important}.gt-mc.sel b,.gt-mc.sel small{color:#fff!important}
.gt-callg{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:8px;font-size:11.5px;color:#475569}
.gt-callg span{display:inline-flex;align-items:center;gap:5px}
.gt-callg .sw{width:13px;height:13px;border-radius:4px;display:inline-block;border:1px solid #cbd5e1}
.gt-callg .sw.av{background:#f2fbf7;border-color:#bfe3d4}.gt-callg .sw.sel{background:#0e5a45;border-color:#0e5a45}
.gt-callg .sw.sH{background:#eef4ff;border-color:#c7d7fb}.gt-callg .sw.sP{background:#fff7e6;border-color:#f5d48f}

/* server-rendered day lists (package Itinerary, group Day by day) open and close */
.fd-itin-dd li{display:block}
.fd-itin-dd details.fd-dd>summary{grid-template-columns:62px minmax(0,1fr) 18px;gap:10px}
.fd-itin-dd details.fd-dd>summary .d{width:58px}
.fd-itin-dd details.fd-dd>.t{display:block;margin:6px 0 2px 72px}
@media(max-width:640px){.fd-itin-dd details.fd-dd>summary{grid-template-columns:62px minmax(0,1fr) 18px}.fd-itin-dd details.fd-dd>summary::after{grid-row:auto;grid-column:auto}.fd-itin-dd details.fd-dd>.t{margin-left:0}}
.fdh-im{position:relative;overflow:hidden}
.fdh-im img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
