/* Public-site additions: currency switcher, tour options/booking card, itinerary timeline, price tables, cookie banner.
   Uses the same tokens as style.css (--primary / --secondary). */

/* ---------- currency ---------- */
.zg-cur .nav-link { font-weight: 600; }
.zg-cur .dropdown-item.active, .zg-cur .dropdown-item:active { background: var(--primary, #052036); color: #fff; }
.zg-cur .dropdown-item.active .text-muted { color: rgba(255,255,255,.7) !important; }
.zg-money { white-space: nowrap; }

/* ---------- section nav + panels on the tour page ---------- */
.zg-tabs { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1.25rem; }
.zg-tabs .nav-link { border-radius: 99px; background: #fff; border: 1px solid #e4e9f2; color: var(--primary, #052036); font-weight: 600; padding: .5rem 1.1rem; }
.zg-tabs .nav-link.active { background: var(--primary, #052036); color: #fff; border-color: var(--primary, #052036); }
.zg-panel-title { font-weight: 700; color: var(--primary, #052036); margin-bottom: 1rem; }
.zg-highlights { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: .6rem 1.5rem; }
.zg-highlights li { display: flex; gap: .6rem; }
.zg-highlights i { color: var(--secondary, #FAA830); margin-top: .3rem; }

/* itinerary: one collapsible card per day, on a vertical timeline */
.zg-itin-bar { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1rem; flex-wrap: wrap; gap: .5rem; }
.zg-timeline { position: relative; padding-left: 2.6rem; }
.zg-timeline::before { content: ''; position: absolute; left: 1.05rem; top: .5rem; bottom: .5rem; width: 2px; background: #dfe5ef; }
.zg-day { position: relative; margin-bottom: .9rem; }
.zg-day .dot { position: absolute; left: -2.6rem; top: .55rem; width: 2.1rem; height: 2.1rem; border-radius: 50%; background: var(--primary, #052036); color: var(--secondary, #FAA830);
  display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: .8rem; box-shadow: 0 0 0 4px #fff; }
.zg-day .head { width: 100%; text-align: left; background: #fff; border: 1px solid #e4e9f2; border-radius: .6rem; padding: .85rem 1.1rem; display: flex; align-items: center; gap: .75rem; font-weight: 600; color: var(--primary, #052036); }
.zg-day .head:hover { border-color: var(--secondary, #FAA830); }
.zg-day .head .chev { margin-left: auto; transition: transform .2s ease; color: #8a97ab; }
.zg-day .head[aria-expanded="true"] .chev { transform: rotate(180deg); }
.zg-day .body { background: #fff; border: 1px solid #e4e9f2; border-top: 0; border-radius: 0 0 .6rem .6rem; padding: 1rem 1.1rem; color: #475569; line-height: 1.7; margin-top: -.4rem; }
.zg-day .head[aria-expanded="true"] { border-bottom-left-radius: 0; border-bottom-right-radius: 0; }

/* included / not included */
.zg-inc-col { background: #fff; border: 1px solid #e4e9f2; border-radius: .6rem; padding: 1.1rem 1.25rem; height: 100%; }
.zg-inc-col h5 { font-size: 1rem; font-weight: 700; display: flex; align-items: center; gap: .5rem; }
.zg-inc-col ul { list-style: none; padding: 0; margin: .75rem 0 0; }
.zg-inc-col li { display: flex; gap: .6rem; padding: .3rem 0; }
.zg-inc-col.yes h5 i, .zg-inc-col.yes li i { color: #1a9e6b; }
.zg-inc-col.no h5 i, .zg-inc-col.no li i { color: #d64545; }
.zg-inc-col li i { margin-top: .3rem; }

/* pricing tab */
.zg-opt-card { background: #fff; border: 1px solid #e4e9f2; border-radius: .6rem; margin-bottom: 1rem; overflow: hidden; }
.zg-opt-card .oh { padding: .9rem 1.1rem; background: #f3f6f9; display: flex; flex-wrap: wrap; gap: .5rem 1rem; align-items: center; }
.zg-opt-card .oh h5 { margin: 0; font-size: 1rem; font-weight: 700; color: var(--primary, #052036); }
.zg-type { font-size: .7rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; padding: .25rem .65rem; border-radius: 99px; background: rgba(250,168,48,.25); color: #8a5a00; }
.zg-opt-card .ob { padding: 1rem 1.1rem; }
.zg-price-table { width: 100%; font-size: .9rem; }
.zg-price-table th { text-align: left; color: #6b7a90; font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; padding: .35rem .5rem; border-bottom: 1px solid #e4e9f2; }
.zg-price-table td { padding: .5rem; border-bottom: 1px solid #f0f3f8; }
.zg-price-table td.p { font-weight: 700; color: var(--primary, #052036); }
.zg-park-box { background: #fff8ea; border: 1px solid #f6d99a; border-radius: .6rem; padding: 1rem 1.1rem; }

/* booking card */
.zg-book .zg-label { font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #6b7a90; margin: 1rem 0 .4rem; }
.zg-book .zg-label:first-of-type { margin-top: 0; }
.zg-choice { position: relative; display: block; margin-bottom: .5rem; }
.zg-choice input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.zg-choice .c { display: block; border: 1.5px solid #dfe5ef; border-radius: .6rem; padding: .65rem .85rem; background: #fff; transition: all .15s ease; }
.zg-choice input:checked + .c { border-color: var(--primary, #052036); background: rgba(5,32,54,.04); box-shadow: 0 0 0 3px rgba(250,168,48,.35); }
.zg-choice input:focus-visible + .c { outline: 2px solid var(--primary, #052036); }
.zg-choice .c strong { display: block; color: var(--primary, #052036); font-size: .92rem; }
.zg-choice .c small { color: #6b7a90; }
.zg-seg { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
.zg-step { display: flex; align-items: center; justify-content: space-between; padding: .3rem 0; }
.zg-step .who small { display: block; color: #6b7a90; font-size: .75rem; }
.zg-step .ctl { display: flex; align-items: center; gap: .4rem; }
.zg-step button { width: 32px; height: 32px; border-radius: 50%; border: 1.5px solid #dfe5ef; background: #fff; color: var(--primary, #052036); font-weight: 700; line-height: 1; }
.zg-step button:hover { border-color: var(--primary, #052036); }
.zg-step input { width: 44px; text-align: center; border: 0; font-weight: 700; background: transparent; -moz-appearance: textfield; }
.zg-step input::-webkit-outer-spin-button, .zg-step input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
#zgQuote { background: #f3f6f9; border-radius: .6rem; padding: .9rem 1rem; margin: 1rem 0; transition: opacity .15s; min-height: 72px; }
#zgQuote.loading { opacity: .5; }
.zg-q-row, .zg-q-total { display: flex; justify-content: space-between; gap: 1rem; font-size: .9rem; padding: .15rem 0; }
.zg-q-total { border-top: 1px solid #dfe5ef; margin-top: .5rem; padding-top: .55rem; font-weight: 700; font-size: 1.15rem; color: var(--primary, #052036); }
.zg-q-note { font-size: .78rem; color: #6b7a90; margin-top: .3rem; }
.zg-quote-err { color: #8e2525; font-size: .88rem; }

/* ---------- cookie banner (bottom of every page) ---------- */
#zgCookie { position: fixed; left: 0; right: 0; bottom: 0; z-index: 2000; background: #04192B; color: rgba(255,255,255,.88);
  border-top: 4px solid var(--secondary, #FAA830); box-shadow: 0 -8px 30px rgba(0,0,0,.25); transform: translateY(100%); transition: transform .3s ease; }
#zgCookie.show { transform: none; }
#zgCookie[hidden] { display: none; }
#zgCookie .zgc-in { max-width: 1140px; margin: 0 auto; padding: 1rem 1.25rem; }
#zgCookie .zgc-row { display: flex; gap: 1rem 2rem; align-items: center; flex-wrap: wrap; }
#zgCookie .zgc-text { flex: 1 1 420px; font-size: .88rem; line-height: 1.55; }
#zgCookie .zgc-text strong { color: #fff; }
#zgCookie a { color: var(--secondary, #FAA830); }
#zgCookie .zgc-btns { display: flex; gap: .5rem; flex-wrap: wrap; }
#zgCookie .btn { border-radius: .5rem; font-weight: 600; font-size: .85rem; }
#zgCookie .btn-accept { background: var(--secondary, #FAA830); color: #052036; border: 0; }
#zgCookie .btn-ghost { background: transparent; color: #fff; border: 1.5px solid rgba(255,255,255,.4); }
#zgCookie .btn-ghost:hover { border-color: #fff; }
#zgCookie .zgc-panel { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid rgba(255,255,255,.15); display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: .75rem 1.5rem; }
#zgCookie .zgc-cat { font-size: .82rem; }
#zgCookie .zgc-cat label { display: flex; justify-content: space-between; align-items: center; gap: .75rem; font-weight: 700; color: #fff; margin-bottom: .2rem; }
#zgCookie .zgc-cat span { color: rgba(255,255,255,.65); display: block; }
#zgCookie .form-check-input { width: 2.4em; height: 1.2em; cursor: pointer; }
#zgCookie .form-check-input:checked { background-color: var(--secondary, #FAA830); border-color: var(--secondary, #FAA830); }
#zgCookie .zgc-save { grid-column: 1 / -1; }
body.zg-cookie-open .whatsapp-float { bottom: 150px; }
@media (max-width: 575.98px) { #zgCookie .zgc-btns .btn { flex: 1 1 100%; } body.zg-cookie-open .whatsapp-float { bottom: 260px; } }
