/* Festival transfer pages: /tomorrowland-thailand-transport/ in 8 languages (tools/theme-v22/festival.py). Loaded only on those pages. */
.fv-main{max-width:1120px;width:calc(100% - 48px);margin:0 auto;padding:128px 0 48px;color:#e2ece7}
.fv-main *{box-sizing:border-box}
.fv-main a{color:#e5d09f;text-underline-offset:4px}
.fv-main a:focus-visible,.fv-main summary:focus-visible{outline:2px solid #f0cd8d;outline-offset:3px;border-radius:6px}
.fv-main h2{font-size:clamp(22px,2.6vw,30px);font-weight:500;line-height:1.45;color:#f0e6cc;margin:0 0 8px}
.fv-crumb{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;font-size:13px;line-height:1.7;color:#a8bdb4}
.fv-crumb a{text-decoration:none;display:inline-flex;align-items:center;min-height:44px}
.fv-crumb a:hover{text-decoration:underline}

/* hero: the answer first (prices, dates, place), our own van at night beside it */
.fv-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,560px);gap:36px;align-items:center;margin:10px 0 14px}
.fv-kicker{display:inline-block;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:#ddc38f}
.fv-hero h1{font-size:clamp(27px,3.4vw,42px);font-weight:500;line-height:1.38;margin:8px 0 12px;color:#f1ede2}
.fv-lead{font-size:15.5px;line-height:1.85;color:#c9d6d0;margin:0 0 16px;max-width:64ch}
.fv-facts{list-style:none;margin:0 0 18px;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.fv-facts li{display:inline-flex;align-items:center;gap:7px;font-size:13px;line-height:1.4;color:#e8eeeb;border:1px solid #d8c49340;background:#d0e9e80d;border-radius:999px;padding:7px 12px}
.fv-facts svg{width:15px;height:15px;color:#f0c985;flex-shrink:0}
.fv-hero-cta .book-online-cta{max-width:380px}
.fv-hero-cta .book-online{width:100%;justify-content:center;min-height:56px}
.fv-hero-cta .book-chat-link,.fv-end .book-chat-link{display:inline-flex;align-items:center;min-height:44px;margin-top:4px;font-size:14px}
.fv-hero-photo{position:relative;margin:0;border-radius:22px;overflow:hidden;border:1px solid #d8c4934d;background:#0b171b;box-shadow:0 18px 50px #00000059}
.fv-hero-img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;object-position:50% 45%}
.fv-hero-photo figcaption{position:absolute;left:0;right:0;bottom:0;padding:26px 16px 12px;font-size:12.5px;color:#e8eeeb;background:linear-gradient(transparent,#000000b3)}
.fv-disc{font-size:13px;line-height:1.75;color:#b9c9c2;border-left:3px solid #d8c49380;padding:4px 0 4px 12px;margin:6px 0 18px;max-width:86ch}

/* section chips: one row that scrolls sideways on a phone, never the page */
.fv-jump{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:2px 0 6px;margin:0 0 6px}
.fv-jump::-webkit-scrollbar{display:none}
.fv-jump a{flex:0 0 auto;display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border-radius:999px;border:1px solid #d8c49347;background:#e0bf850f;color:#efe3c6;text-decoration:none;font-size:14px}
.fv-jump a:hover{background:#e0bf8524}

.fv-sec{margin-top:44px;scroll-margin-top:112px}
.fv-sub{font-size:14.5px;line-height:1.8;color:#bfcdc7;margin:0 0 16px;max-width:80ch}

/* three packages */
.fv-pk-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:stretch}
.fv-pk{display:flex;flex-direction:column;border:1px solid #d8c4934d;border-radius:20px;padding:18px 18px 16px;background:linear-gradient(160deg,#17292d,#0e1b1f)}
.fv-pk-all{border-color:#e6cd9180;background:linear-gradient(160deg,#1d3236,#0f1d21)}
.fv-pk-when{font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:#a8bdb4}
.fv-pk h3{font-size:18px;font-weight:500;line-height:1.5;margin:4px 0 6px;color:#f2d497}
.fv-pk-desc{font-size:14px;line-height:1.75;color:#cfdbd6;margin:0 0 12px}
.fv-price{display:grid;gap:8px;margin:auto 0 4px}
.fv-car{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name price" "seats price";align-items:center;column-gap:10px;border:1px solid #ffffff14;border-radius:14px;padding:10px 12px;background:#d0e9e80a}
.fv-car-name{grid-area:name;font-size:14px;color:#e8eeeb}
.fv-car small{grid-area:seats;font-size:12px;color:#a8bdb4}
.fv-car strong{grid-area:price;font-size:22px;font-weight:600;color:#f6dfa8;font-variant-numeric:tabular-nums;white-space:nowrap}
.fv-unit{font-size:12.5px;color:#a8bdb4;margin:2px 0 10px}
.fv-lengths{width:100%;border-collapse:collapse;font-size:13.5px;margin:0 0 10px;font-variant-numeric:tabular-nums}
.fv-lengths caption{text-align:left;font-size:12.5px;color:#a8bdb4;padding-bottom:4px}
.fv-lengths th,.fv-lengths td{padding:6px 4px;border-bottom:1px solid #ffffff12;text-align:right}
.fv-lengths th[scope=row]{text-align:left;font-weight:400;color:#dfe7e3}
.fv-lengths thead th{font-weight:400;color:#a8bdb4;font-size:12px}
.fv-inc{list-style:none;margin:0 0 14px;padding:0;display:grid;gap:6px}
.fv-inc li{display:flex;gap:8px;font-size:13.5px;line-height:1.6;color:#dfe7e3}
.fv-inc svg{width:16px;height:16px;color:#f0c985;flex-shrink:0;margin-top:3px}
.fv-book{width:100%;justify-content:center;min-height:52px;margin-top:auto}

/* why a private van */
.fv-why{list-style:none;margin:14px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.fv-why-item{border:1px solid #d8c49333;border-radius:18px;padding:16px;background:#d0e9e808}
.fv-why-item svg{width:22px;height:22px;color:#f0c985}
.fv-why-item h3{font-size:16px;font-weight:500;line-height:1.5;margin:8px 0 4px;color:#f1ede2}
.fv-why-item p{font-size:14px;line-height:1.75;color:#c9d6d0;margin:0}

/* the night, step by step, beside the van waiting */
.fv-how-sec{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:28px;align-items:start}
.fv-how{list-style:none;counter-reset:fv;margin:14px 0 0;padding:0;display:grid;gap:12px}
.fv-how li{counter-increment:fv;position:relative;padding:2px 0 2px 50px}
.fv-how li::before{content:counter(fv);position:absolute;left:0;top:2px;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-size:14px;color:#10201f;background:#f0c985;font-weight:600}
.fv-how h3{font-size:16px;font-weight:500;line-height:1.5;margin:0 0 2px;color:#f1ede2}
.fv-how p{font-size:14.5px;line-height:1.75;color:#c9d6d0;margin:0}
.fv-how-photo{margin:0;border-radius:20px;overflow:hidden;border:1px solid #d8c4934d}
.fv-how-img{display:block;width:100%;height:auto;aspect-ratio:3/4;object-fit:cover}

/* distances */
.fv-table{border-radius:18px;border:1px solid #d8c49333;padding:4px 16px;overflow-x:auto}
.fv-times{width:100%;border-collapse:collapse;font-size:14.5px;font-variant-numeric:tabular-nums}
.fv-times th,.fv-times td{padding:11px 6px;border-bottom:1px solid #ffffff12;text-align:left;vertical-align:top}
.fv-times tbody tr:last-child th,.fv-times tbody tr:last-child td{border-bottom:0}
.fv-times thead th{font-size:12.5px;font-weight:400;color:#a8bdb4}
.fv-times tbody th{font-weight:400;color:#e8eeeb}
.fv-times td{color:#dfe7e3;white-space:nowrap}

.fv-tips{list-style:none;margin:12px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 20px}
.fv-tips li{display:flex;gap:10px;font-size:14.5px;line-height:1.75;color:#dfe7e3}
.fv-tips svg{width:17px;height:17px;color:#f0c985;flex-shrink:0;margin-top:4px}

#faq .faq-list{margin-top:12px;padding:6px 22px;border-radius:18px;border:1px solid #d8c49333;background:#d0e9e808}
#faq details{border-bottom:1px solid #ffffff14;padding:4px 0}
#faq details:last-child{border-bottom:0}
#faq summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;font-size:15px;font-weight:500;line-height:1.6;color:#efe3c6}
#faq summary::-webkit-details-marker{display:none}
#faq summary::after{content:'+';font-size:20px;color:#cbb786;flex:0 0 auto}
#faq details[open] summary::after{content:'−'}
#faq .faq-answer{font-size:14.5px;line-height:1.8;color:#cfdbd6;padding:0 0 12px}

.fv-end{margin:44px auto 0;max-width:640px;text-align:center;border:1px solid #d8c49340;border-radius:20px;padding:26px 22px;background:linear-gradient(160deg,#16282c,#0b171b)}
.fv-end h2{font-size:24px;color:#f2d497;margin:0 0 6px}
.fv-end p{font-size:14px;line-height:1.75;color:#c9d6d0;margin:0 0 16px}
.fv-end .book-online-cta{max-width:340px;margin:0 auto}
.fv-end .book-online{justify-content:center;min-height:54px}

.fv-rel-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}
.fv-rel-grid a{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:56px;padding:12px 16px;border-radius:16px;text-decoration:none;color:#efe3c6;font-size:14.5px}
.fv-rel-grid svg{flex-shrink:0;color:#f0c985}

@media(min-width:1101px){.fest-view .ktc-footer{padding-bottom:24px}.fest-view .bottom-navigation{display:none}}
@media(max-width:980px){
  .fv-hero{grid-template-columns:1fr;gap:18px}
  .fv-pk-grid{grid-template-columns:1fr}
  .fv-why{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fv-how-sec{grid-template-columns:1fr}
  .fv-how-photo{max-width:420px}
  .fv-rel-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:600px){
  .fv-main{width:calc(100% - 32px);padding-top:92px}
  .fv-hero h1{font-size:26px}
  .fv-lead{font-size:15px}
  .fv-facts li{font-size:12.5px;padding:6px 10px}
  .fv-hero-cta .book-online-cta{max-width:none}
  .fv-sec{margin-top:36px}
  .fv-why{grid-template-columns:1fr}
  .fv-tips{grid-template-columns:1fr}
  .fv-times{font-size:13.5px}
  .fv-times td{white-space:normal}
  .fv-table{padding:2px 12px}
  #faq .faq-list{padding:4px 14px}
  #faq summary{font-size:14.5px}
  .fv-rel-grid{grid-template-columns:1fr}
  .fv-how-img{aspect-ratio:4/3}
}

/* at a glance: the key facts in one box, near the top (what answer engines quote) */
.fv-glance{margin:14px 0 0;padding:16px 20px 12px;border-radius:20px;border:1px solid #d8c49340;background:linear-gradient(160deg,#16282c,#0b171b);scroll-margin-top:112px}
.fv-main .fv-glance h2{font-size:clamp(19px,2.2vw,24px);margin:0 0 8px;color:#f2d497}
.fv-glance dl{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px}
.fv-glance dl>div{display:grid;grid-template-columns:minmax(120px,36%) minmax(0,1fr);gap:10px;padding:9px 0;border-bottom:1px solid #ffffff12}
.fv-glance dt{font-size:13px;line-height:1.6;color:#a8bdb4}
.fv-glance dd{margin:0;font-size:14px;line-height:1.6;color:#e8eeeb}
.fv-updated{font-size:12px;color:#9fb4ab;margin:10px 0 0}

/* VIP captain seats: our own vans, real jobs */
.fv-vans{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:12px;align-items:start}
.fv-van{border:1px solid #d8c4934d;border-radius:20px;padding:16px;background:linear-gradient(160deg,#17292d,#0e1b1f)}
.fv-van h3{font-size:18px;font-weight:500;line-height:1.5;margin:0 0 4px;color:#f2d497}
.fv-van p{font-size:14px;line-height:1.75;color:#cfdbd6;margin:0 0 12px}
.fv-van figure{margin:0}
.fv-zoom{display:block;border-radius:14px;overflow:hidden}
.fv-seat-img,.fv-group-img{display:block;width:100%;height:auto;object-fit:cover;background:#0b171b}
.fv-van-main .fv-seat-img{aspect-ratio:4/3}
.fv-van-thumbs{display:grid;gap:8px;margin-top:8px}
.fv-van-thumbs.n2{grid-template-columns:repeat(2,minmax(0,1fr))}
.fv-van-thumbs.n3{grid-template-columns:repeat(3,minmax(0,1fr))}
.fv-van-thumbs .fv-seat-img{aspect-ratio:3/4}
.fv-van-a .fv-van-thumbs .fv-seat-img{aspect-ratio:4/3}
.fv-group{position:relative;margin:14px 0 0;border-radius:20px;overflow:hidden;border:1px solid #d8c4934d}
.fv-group .fv-zoom{border-radius:0}
.fv-group-img{aspect-ratio:16/7}
.fv-group figcaption{position:absolute;left:0;right:0;bottom:0;padding:24px 16px 12px;font-size:13px;color:#e8eeeb;background:linear-gradient(transparent,#000000b3);pointer-events:none}
.fv-pk .fv-cta{margin-top:auto}
.fv-cta .fv-book{width:100%;justify-content:center;min-height:52px}
@media(max-width:980px){.fv-vans{grid-template-columns:1fr}.fv-glance dl{grid-template-columns:1fr}}
@media(max-width:600px){.fv-glance{padding:12px 14px 8px}.fv-glance dl>div{grid-template-columns:34% minmax(0,1fr);gap:10px;padding:7px 0}.fv-glance dt{font-size:12.5px}.fv-glance dd{font-size:13.5px;line-height:1.55}.fv-group-img{aspect-ratio:4/3}}

/* three captain-seat photos under the hero photo → the seats section (Jev review 17 Oct 2026) */
.fv-hero-media{min-width:0}
.fv-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:8px;text-decoration:none}
.fv-strip-img{display:block;width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;border-radius:12px;border:1px solid #d8c49340;background:#0b171b}
.fv-strip span{grid-column:1/-1;display:inline-flex;align-items:center;gap:6px;min-height:44px;font-size:14px;color:#efe3c6}
.fv-strip span svg{width:16px;height:16px;color:#f0c985}
.fv-strip:hover .fv-strip-img{border-color:#f0c985}
.fv-mid-cta{margin:16px 0 0;max-width:380px}
.fv-mid-cta .fv-cta{max-width:none}

/* high season line under the prices (Sky 17 Oct 2026) */
.fv-high{display:flex;align-items:flex-start;gap:8px;margin:-6px 0 14px;padding:10px 14px;border-radius:14px;border:1px solid #f0c98559;background:#f0c98514;color:#f6dfa8;font-size:14px;line-height:1.6}
.fv-high svg{width:17px;height:17px;flex-shrink:0;margin-top:2px;color:#f0c985}

/* photos open in the page's own lightbox (festival.js) */
.fv-zoom{cursor:zoom-in}
.fv-zoom img{transition:transform .25s ease}
@media(hover:hover){.fv-zoom:hover img{transform:scale(1.03)}}
.fv-lightbox .lightbox-stage img{object-fit:contain}
html.fv-lb-open{overflow:hidden}
.fv-lightbox .lightbox-stage [data-fv-step="-1"]{left:8px}
.fv-lightbox .lightbox-stage [data-fv-step="1"]{right:8px}
