:root{
  --jv-navy:#0C4476;
  --jv-blue:#527c9f;
  --jv-ink:#14263a;
  --jv-text:#42576d;
  --jv-muted:#718398;
  --jv-line:#dbe5ee;
  --jv-soft:#f5f8fb;
  --jv-soft-blue:#edf4f9;
  --jv-white:#ffffff;
  --jv-danger:#a63730;
  --jv-radius:18px;
  --jv-shadow:0 20px 55px rgba(17,57,91,.11);
}

html,body.jvfth-standalone-document{margin:0!important;padding:0!important;background:#f3f6f8!important;overflow-x:hidden!important}
body.jvfth-standalone-document{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;color:var(--jv-ink);font-size:14px;line-height:1.45}
body.jvfth-standalone-document #wpadminbar{position:fixed}
#jvfth-standalone-root{min-height:100vh;background:#f3f6f8}
.jvfth-app,.jvfth-flow{min-height:100vh;color:var(--jv-ink)}
.jvfth-app *,.jvfth-flow *{box-sizing:border-box;min-width:0}
.jvfth-app img,.jvfth-flow img{max-width:100%;height:auto}
.jvfth-app button,.jvfth-app input,.jvfth-app select,.jvfth-app textarea{font:inherit}
.jvfth-app button{touch-action:manipulation}
.jvfth-app [hidden]{display:none!important}

/* Air India-inspired booking-first home: flat, compact, wide and deliberately header/footer free. */
.jvfth-home{min-height:100vh;padding:28px 0 48px;background:linear-gradient(180deg,#f8fafb 0,#f3f6f8 100%);overflow-x:hidden}
.jvfth-search-stage{width:min(1360px,calc(100% - 36px));margin:0 auto}
.jvfth-booking-card{position:relative;border:1px solid #dfe6eb;border-radius:8px;background:#fff;box-shadow:0 8px 26px rgba(20,52,78,.08);overflow:visible}

/* Top service strip mirrors the hierarchy of the reference site's search utility tabs. */
.jvfth-service-tabs{display:flex;align-items:stretch;gap:0;min-height:50px;padding:0 18px;border-bottom:1px solid #e4e8ec;background:#fff;border-radius:8px 8px 0 0;overflow-x:auto;scrollbar-width:none}
.jvfth-service-tabs::-webkit-scrollbar{display:none}
.jvfth-service-tabs button{position:relative;flex:0 0 auto;display:flex;align-items:center;justify-content:center;gap:7px;min-width:150px;min-height:50px;padding:0 18px;border:0;background:transparent;color:#596c7d;cursor:pointer;font-size:12px;font-weight:780;letter-spacing:.01em;white-space:nowrap}
.jvfth-service-tabs button:after{content:"";position:absolute;left:16px;right:16px;bottom:-1px;height:3px;background:transparent}
.jvfth-service-tabs button.is-active{color:var(--jv-navy);background:#fbfdff}
.jvfth-service-tabs button.is-active:after{background:var(--jv-navy)}
.jvfth-tab-icon{display:inline-grid;place-items:center;width:28px;height:28px;border:1px solid #e1e8ee;border-radius:50%;background:#f7fafc;color:#698097;transition:transform .24s ease,background .24s ease,color .24s ease,border-color .24s ease,box-shadow .24s ease}
.jvfth-tab-icon .dashicons{width:15px;height:15px;font-size:15px;line-height:15px}
.jvfth-service-tabs button:hover .jvfth-tab-icon{transform:translateY(-2px);background:#eef5fa;color:var(--jv-navy);border-color:#cbdce8}
.jvfth-service-tabs button.is-active .jvfth-tab-icon{background:var(--jv-navy);color:#fff;border-color:var(--jv-navy);box-shadow:0 7px 18px rgba(12,68,118,.18)}

.jvfth-panel-wrap{position:relative;padding:15px 18px 13px;overflow:visible}
.jvfth-service-panel{position:relative;container-type:inline-size;overflow:visible}
.jvfth-form{position:relative;overflow:visible}

/* Secondary mode row: radio-like, not a large segmented pill. */
.jvfth-booking-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:34px;margin-bottom:10px}
.jvfth-booking-toolbar>strong{color:#283e52;font-size:12px;font-weight:800}
.jvfth-toolbar-note{color:#7a8a99;font-size:10px;line-height:1.35;text-align:right}
.jvfth-choice-pills{display:inline-flex;align-items:center;gap:16px;margin:0;padding:0;border:0;background:transparent}
.jvfth-choice-pills button{display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:0;border:0;background:transparent;color:#566b7e;font-size:11px;font-weight:750;cursor:pointer;white-space:nowrap}
.jvfth-choice-pills button i{width:11px;height:11px;border:1.5px solid #9aa9b6;border-radius:50%;background:#fff;box-shadow:inset 0 0 0 3px #fff}
.jvfth-choice-pills button.is-active{color:var(--jv-navy)}
.jvfth-choice-pills button.is-active i{border-color:var(--jv-navy);background:var(--jv-navy)}

/* Main horizontal search line. Each service gets its own proportions but shares one field language. */
.jvfth-airindia-row{display:grid;gap:0;align-items:stretch;overflow:visible;border:1px solid #d5dce2;border-radius:4px;background:#fff}
.jvfth-airindia-flight-row{grid-template-columns:minmax(170px,1.35fr) 34px minmax(170px,1.35fr) minmax(122px,.76fr) minmax(122px,.76fr) minmax(145px,.9fr) minmax(130px,.82fr) minmax(112px,.7fr)}
.jvfth-airindia-hotel-row{grid-template-columns:minmax(145px,.75fr) minmax(230px,1.45fr) minmax(130px,.75fr) minmax(130px,.75fr) minmax(170px,1fr) minmax(112px,.7fr)}
.jvfth-airindia-transfer-row{grid-template-columns:minmax(220px,1.45fr) 30px minmax(220px,1.45fr) minmax(125px,.72fr) minmax(110px,.62fr) minmax(125px,.7fr) minmax(112px,.65fr)}
.jvfth-airindia-chauffeur-row{grid-template-columns:minmax(140px,.7fr) minmax(250px,1.55fr) minmax(125px,.72fr) minmax(110px,.62fr) minmax(100px,.55fr) minmax(125px,.7fr) minmax(112px,.65fr)}
.jvfth-airindia-activity-row{grid-template-columns:minmax(145px,.8fr) minmax(250px,1.6fr) minmax(135px,.8fr) minmax(170px,1fr) minmax(112px,.68fr)}

.jvfth-field{position:relative;display:flex;flex-direction:column;justify-content:center;min-height:68px;padding:9px 12px;border:0;border-right:1px solid #dfe4e8;border-radius:0;background:#fff;overflow:visible;transition:background .16s ease,box-shadow .16s ease}
.jvfth-field:last-of-type{border-right:0}
.jvfth-field:focus-within{z-index:40;background:#fbfdff;box-shadow:inset 0 -2px 0 var(--jv-blue)}
.jvfth-route-field{min-width:0}
.jvfth-field>span,.jvfth-popfield summary>span{display:block;margin-bottom:3px;color:#667b8d;font-size:9px;font-weight:850;letter-spacing:.055em}
.jvfth-field input,.jvfth-field select{width:100%;height:27px;padding:0;border:0!important;outline:0!important;background:transparent!important;color:#20394f!important;font-size:13px!important;font-weight:720!important;line-height:27px;box-shadow:none!important}
.jvfth-field input::placeholder{color:#8e9ba7;font-weight:620;opacity:1}
.jvfth-field select{cursor:pointer}
.jvfth-field small{display:block;max-width:100%;margin-top:1px;color:#94a0aa;font-size:8.5px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.jvfth-input-line{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:center}
.jvfth-input-line>b{display:grid;place-items:center;min-width:35px;height:24px;padding:0 6px;border-radius:3px;background:#edf3f7;color:var(--jv-navy);font-size:10px;font-weight:900;letter-spacing:.05em}
.jvfth-airindia-flight-row .jvfth-route-field>span{display:none}
.jvfth-airindia-flight-row .jvfth-route-field input{height:31px!important;font-size:21px!important;font-weight:720!important;letter-spacing:-.025em}
.jvfth-airindia-flight-row .jvfth-route-field input::placeholder{color:#364b5f;font-weight:680;opacity:1}
.jvfth-airindia-flight-row .jvfth-route-field small{font-size:9px;color:#8997a3}

.jvfth-swap,.jvfth-route-arrow{align-self:center;justify-self:center;display:grid;place-items:center;width:28px;height:28px;margin:auto;border:1px solid #d5dce2;border-radius:50%;background:#fff;color:var(--jv-navy);font-size:14px;font-weight:800;z-index:3}
.jvfth-swap{cursor:pointer;transition:transform .16s ease,background .16s ease}
.jvfth-swap:hover{transform:rotate(180deg);background:#f0f5f8}
.jvfth-route-arrow{border:0;background:transparent;color:#7f8e9a}

.jvfth-search-button{display:flex;align-items:center;justify-content:center;gap:6px;min-height:68px;margin:-1px;border:0;border-radius:0 4px 4px 0;background:var(--jv-navy);color:#fff;cursor:pointer;font-size:11px;font-weight:850;transition:background .16s ease}
.jvfth-search-button:hover{background:#083b68}
.jvfth-search-button:disabled{opacity:.68;cursor:wait}
.jvfth-search-button .dashicons{width:15px;height:15px;font-size:15px}

/* Composite passenger/guest fields use a compact summary with an anchored popover. */
.jvfth-popfield{position:relative;min-height:68px;border-right:1px solid #dfe4e8;background:#fff;overflow:visible}
.jvfth-popfield>summary{list-style:none;display:flex;flex-direction:column;justify-content:center;min-height:68px;padding:9px 12px;cursor:pointer}
.jvfth-popfield>summary::-webkit-details-marker{display:none}
.jvfth-popfield>summary:after{content:"⌄";position:absolute;right:10px;top:28px;color:#718294;font-size:13px}
.jvfth-popfield summary>b{max-width:calc(100% - 16px);color:#20394f;font-size:13px;font-weight:720;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.jvfth-popfield[open]{z-index:70;box-shadow:inset 0 -2px 0 var(--jv-blue)}
.jvfth-popover{position:absolute;top:calc(100% + 7px);right:0;z-index:10020;display:grid;gap:8px;width:245px;padding:12px;border:1px solid #d5dce2;border-radius:7px;background:#fff;box-shadow:0 16px 34px rgba(18,48,72,.16)}
.jvfth-popover label{display:grid;grid-template-columns:1fr 92px;gap:10px;align-items:center;color:#334b60;font-size:11px;font-weight:700}
.jvfth-popover select{width:100%;height:34px;border:1px solid #d8e0e6;border-radius:4px;background:#fff;color:#213a50;padding:0 8px}

/* Drop-down results are high enough to clear every adjacent field. */
.jvfth-dropmenu{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:10010;max-height:340px;overflow:auto;border:1px solid #d4dde4;border-radius:6px;background:#fff;box-shadow:0 18px 38px rgba(20,50,74,.17);display:none}
.jvfth-dropmenu.is-open{display:block}
.jvfth-menu-caption{position:sticky;top:0;z-index:2;padding:8px 10px;border-bottom:1px solid #e7ecef;background:#f7f9fa;color:#788998;font-size:9px;font-weight:800}
.jvfth-airport-menu button,.jvfth-place-menu button,.jvfth-city-menu button{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:center;padding:10px;border:0;border-bottom:1px solid #edf1f3;background:#fff;color:#213c54;text-align:left;cursor:pointer}
.jvfth-airport-menu button:last-child,.jvfth-place-menu button:last-child,.jvfth-city-menu button:last-child{border-bottom:0}
.jvfth-airport-menu button:hover,.jvfth-place-menu button:hover,.jvfth-city-menu button:hover,.jvfth-dropmenu button.is-keyboard-active{background:#f2f6f8}
.jvfth-airport-menu button>strong{min-width:42px;color:var(--jv-navy);font-size:11px;letter-spacing:.05em}
.jvfth-dropmenu button>span,.jvfth-dropmenu button>div{display:grid;gap:2px;min-width:0}
.jvfth-dropmenu button b{font-size:12px;color:#243e55;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.jvfth-dropmenu button small{font-size:10px;color:#7c8e9f;white-space:normal}
.jvfth-city-flag{font-size:18px}
.jvfth-menu-empty{padding:15px;color:#7f8f9d;font-size:10px;text-align:center}

/* Secondary options stay below the primary booking line, like an airline utility row. */
.jvfth-more{margin-top:9px;border:0}
.jvfth-more summary{display:inline-flex;align-items:center;min-height:28px;color:var(--jv-navy);font-size:10px;font-weight:800;cursor:pointer;list-style:none}
.jvfth-more summary::-webkit-details-marker{display:none}
.jvfth-more summary:after{content:"＋";margin-left:5px;font-size:12px}
.jvfth-more[open] summary:after{content:"−"}
.jvfth-more-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,220px));gap:8px;margin-top:6px;padding:9px;border:1px solid #e0e6eb;border-radius:5px;background:#f9fbfc}
.jvfth-more-grid .jvfth-field{min-height:58px;border:1px solid #dde5ea;border-radius:4px}
.jvfth-check{display:flex;align-items:center;gap:7px;min-height:50px;color:#556a7c;font-size:10px;font-weight:700}
.jvfth-check input{width:15px;height:15px}

/* Multi-city retains a denser editable sector list. */
.jvfth-multi{display:grid;gap:10px}
.jvfth-multi-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.jvfth-multi-head>div{display:grid;gap:2px}
.jvfth-multi-head b{font-size:12px;color:#294158}
.jvfth-multi-head small{font-size:10px;color:#8191a0}
.jvfth-multi-head button{min-height:31px;padding:0 10px;border:1px solid #cfd9e1;border-radius:4px;background:#fff;color:var(--jv-navy);font-size:10px;font-weight:850;cursor:pointer}
.jvfth-multi-list{display:grid;gap:7px}
.jvfth-multi-row{display:grid;grid-template-columns:28px minmax(185px,1fr) minmax(185px,1fr) minmax(135px,.5fr) 32px;gap:0;align-items:stretch;border:1px solid #d9e1e7;border-radius:4px;background:#fff}
.jvfth-multi-row .jvfth-field{border-right:1px solid #dfe4e8}
.jvfth-leg-number{align-self:center;justify-self:center;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#edf3f7;color:var(--jv-navy);font-size:10px;font-weight:900}
.jvfth-remove-leg{align-self:center;justify-self:center;display:grid;place-items:center;width:26px;height:26px;border:1px solid #e4cccc;border-radius:4px;background:#fff8f8;color:#9c3c3c;font-size:16px;cursor:pointer}
.jvfth-multi-controls{grid-template-columns:repeat(4,minmax(120px,1fr)) minmax(110px,.7fr);border:1px solid #d9e1e7}

.jvfth-form-error{margin-top:9px;padding:9px 11px;border:1px solid #efcbc7;border-radius:4px;background:#fff7f6;color:#953a34;font-size:10px;line-height:1.4}
.jvfth-spinner{display:inline-block;width:13px;height:13px;border:2px solid rgba(255,255,255,.38);border-top-color:#fff;border-radius:50%;animation:jvfth-spin .7s linear infinite}
@keyframes jvfth-spin{to{transform:rotate(360deg)}}

/* Exclusive-deal strip is visually attached directly to the booking block. */
.jvfth-attached-strip{border-top:1px solid #e4e8ec;background:#fff;padding:13px 18px 16px;border-radius:0 0 8px 8px;overflow:hidden}
.jvfth-strip-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.jvfth-strip-head>div:first-child{display:grid;gap:1px}
.jvfth-strip-head b{color:#2a4258;font-size:13px;font-weight:850}
.jvfth-strip-head small{color:#7f8d99;font-size:9px;font-weight:650}
.jvfth-strip-head>div:last-child{display:flex;gap:5px}
.jvfth-strip-head button{display:grid;place-items:center;width:26px;height:26px;border:1px solid #d4dde4;border-radius:50%;background:#fff;color:var(--jv-navy);font-size:16px;cursor:pointer}
.jvfth-strip-viewport{overflow:auto;scrollbar-width:none;scroll-snap-type:x proximity}
.jvfth-strip-viewport::-webkit-scrollbar{display:none}
.jvfth-strip-track{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(250px,1fr);gap:10px}
.jvfth-strip-track article{scroll-snap-align:start;display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;min-height:76px;padding:11px;border:1px solid #e2e7eb;border-radius:7px;background:linear-gradient(135deg,#fff,#f8fafc)}
.jvfth-strip-track article>span{display:grid;place-items:center;width:32px;height:32px;border-radius:5px;background:#eaf1f6;color:var(--jv-navy);font-size:9px;font-weight:900}
.jvfth-strip-track article div{display:grid;align-content:start;gap:3px}
.jvfth-strip-track article b{font-size:11px;color:#294158}
.jvfth-strip-track article p{margin:0;color:#718497;font-size:9px;line-height:1.42}

/* Responsive behavior: the line reflows before fields can overlap. */
@container (max-width:1120px){
  .jvfth-airindia-flight-row{grid-template-columns:minmax(190px,1.3fr) 30px minmax(190px,1.3fr) repeat(4,minmax(130px,.8fr));}
  .jvfth-airindia-flight-row .jvfth-search-button{grid-column:1/-1;min-height:46px;border-radius:0 0 4px 4px;margin:0 -1px -1px}
  .jvfth-airindia-hotel-row{grid-template-columns:minmax(145px,.75fr) minmax(230px,1.45fr) repeat(3,minmax(135px,.8fr));}
  .jvfth-airindia-hotel-row .jvfth-search-button{grid-column:1/-1;min-height:46px;border-radius:0 0 4px 4px;margin:0 -1px -1px}
  .jvfth-airindia-transfer-row,.jvfth-airindia-chauffeur-row{grid-template-columns:minmax(220px,1.4fr) 30px minmax(220px,1.4fr) repeat(3,minmax(125px,.7fr));}
  .jvfth-airindia-transfer-row .jvfth-search-button,.jvfth-airindia-chauffeur-row .jvfth-search-button{grid-column:1/-1;min-height:46px;border-radius:0 0 4px 4px;margin:0 -1px -1px}
  .jvfth-airindia-activity-row{grid-template-columns:minmax(150px,.8fr) minmax(250px,1.5fr) minmax(140px,.8fr) minmax(175px,1fr)}
  .jvfth-airindia-activity-row .jvfth-search-button{grid-column:1/-1;min-height:46px;border-radius:0 0 4px 4px;margin:0 -1px -1px}
}
@container (max-width:800px){
  .jvfth-booking-toolbar{align-items:flex-start;flex-direction:column;gap:4px}
  .jvfth-toolbar-note{text-align:left}
  .jvfth-airindia-flight-row,.jvfth-airindia-hotel-row,.jvfth-airindia-transfer-row,.jvfth-airindia-chauffeur-row,.jvfth-airindia-activity-row{grid-template-columns:repeat(2,minmax(0,1fr))}
  .jvfth-airindia-flight-row .jvfth-swap,.jvfth-airindia-transfer-row .jvfth-route-arrow{display:none}
  .jvfth-route-field{grid-column:auto}
  .jvfth-search-button{grid-column:1/-1!important;min-height:46px!important;border-radius:0 0 4px 4px!important;margin:0 -1px -1px!important}
  .jvfth-popover{left:0;right:auto;width:min(245px,calc(100vw - 48px))}
  .jvfth-multi-row{grid-template-columns:28px minmax(0,1fr) 32px}
  .jvfth-multi-row .jvfth-airport-field,.jvfth-multi-row .jvfth-field:not(.jvfth-airport-field){grid-column:2}
  .jvfth-multi-row .jvfth-remove-leg{grid-column:3;grid-row:1}
  .jvfth-multi-controls{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:760px){
  .jvfth-home{padding:10px 0 24px}
  .jvfth-search-stage{width:calc(100% - 16px)}
  .jvfth-service-tabs{padding:0 4px}
  .jvfth-service-tabs button{min-width:126px;min-height:46px;padding:0 11px;font-size:11px}
  .jvfth-panel-wrap{padding:12px 10px 10px}
  .jvfth-strip-track{grid-auto-columns:minmax(220px,82vw)}
}
@media (max-width:500px){
  .jvfth-search-stage{width:calc(100% - 10px)}
  .jvfth-booking-card{border-radius:6px}
  .jvfth-service-tabs{border-radius:6px 6px 0 0}
  .jvfth-service-tabs button{min-width:118px;gap:5px;padding:0 8px;font-size:10.5px}
  .jvfth-tab-icon{width:25px;height:25px}.jvfth-tab-icon .dashicons{width:14px;height:14px;font-size:14px;line-height:14px}
  .jvfth-panel-wrap{padding:10px 7px}
  .jvfth-choice-pills{gap:11px;max-width:100%;overflow:auto;scrollbar-width:none}
  .jvfth-choice-pills::-webkit-scrollbar{display:none}
  .jvfth-airindia-flight-row,.jvfth-airindia-hotel-row,.jvfth-airindia-transfer-row,.jvfth-airindia-chauffeur-row,.jvfth-airindia-activity-row,.jvfth-multi-controls{grid-template-columns:1fr}
  .jvfth-field,.jvfth-popfield,.jvfth-popfield>summary{min-height:61px}
  .jvfth-field,.jvfth-popfield{border-right:0;border-bottom:1px solid #dfe4e8}
  .jvfth-search-button{min-height:48px!important}
  .jvfth-dropmenu{max-width:calc(100vw - 28px)!important}
  .jvfth-popover{width:min(245px,calc(100vw - 28px))}
  .jvfth-attached-strip{padding:12px 10px 13px;border-radius:0 0 6px 6px}
}

/* ------------------------------
   Shared post-search flow shell
   ------------------------------ */
.jvfth-flow{padding:16px 0 40px}
.jvfth-flow-stage{width:min(1440px,calc(100% - 30px));margin:0 auto}
.jvfth-flow-summary{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:11px;align-items:center;margin-bottom:10px;padding:10px 12px;border:1px solid var(--jv-line);border-radius:14px;background:#fff;box-shadow:0 7px 22px rgba(21,54,82,.045)}
.jvfth-flow-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:var(--jv-navy);color:#fff;font-size:11px;font-weight:900;letter-spacing:.07em}
.jvfth-flow-copy{display:grid;gap:2px}
.jvfth-flow-copy>span{font-size:9px;font-weight:900;letter-spacing:.12em;color:var(--jv-blue)}
.jvfth-flow-copy b{font-size:13px;color:#243b50}
.jvfth-flow-copy small{font-size:10px;color:#7c8c9c}
.jvfth-newsearch{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:0 11px;border:1px solid #ccd9e3;border-radius:9px;background:#fff;color:var(--jv-navy);font-size:10px;font-weight:850;text-decoration:none;white-space:nowrap}
.jvfth-flow-progress{display:flex;gap:5px;overflow:auto;scrollbar-width:none;margin:0 0 10px;padding:2px}
.jvfth-flow-progress::-webkit-scrollbar{display:none}
.jvfth-flow-progress span{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:0 9px;border:1px solid #dce5ec;border-radius:999px;background:#fff;color:#748597;font-size:9px;font-weight:800;white-space:nowrap}
.jvfth-flow-progress span.is-active{border-color:#a8c0d4;background:#edf5fa;color:var(--jv-navy)}
.jvfth-flow-content{width:100%;min-height:300px;padding:0;background:transparent;overflow:visible}
.jvfth-flow-content *{box-sizing:border-box;min-width:0}
.jvfth-flow-content input,.jvfth-flow-content select,.jvfth-flow-content textarea{max-width:100%!important}

/* Remove duplicate module chrome inside the unified flow. */
.jvfth-flow-content .jvfs-topbar,.jvfth-flow-content .jvfs-steps,.jvfth-flow-content .jvfs-pagehead,.jvfth-flow-content .jvfs-footer,
.jvfth-flow-content .jvhs-topbar,.jvfth-flow-content .jvhs-progress,.jvfth-flow-content .jvhs-pagehead,.jvfth-flow-content .jvhs-footer,
.jvfth-flow-content .jvts-brandbar,.jvfth-flow-content .jvts-progress,
.jvfth-flow-content .jvvs-topbar,.jvfth-flow-content .jvvs-progress{display:none!important}

/* Normalize module shells without destroying their behavior. */
.jvfth-flow-content .jvfs,.jvfth-flow-content .jvhs,.jvfth-flow-content .jvts,.jvfth-flow-content .jvvs,
.jvfth-flow-content .jvfs-hp,.jvfth-flow-content .jvhs-hp,.jvfth-flow-content .jvts-shell,.jvfth-flow-content .jvvs-shell,
.jvfth-flow-content .jvhs-main{width:100%!important;max-width:none!important;margin:0!important;padding:0!important;background:transparent!important;min-height:0!important}
.jvfth-flow-content .jvfs-results,.jvfth-flow-content .jvhs-results,.jvfth-flow-content .jvts-vehicles,.jvfth-flow-content .jvvs-product-grid{width:100%!important;max-width:none!important}

/* Common module typography and controls: readable compact, never micro. */
.jvfth-flow-content h1{font-size:clamp(22px,2.3vw,34px)!important;line-height:1.12!important;letter-spacing:-.025em!important;color:var(--jv-ink)!important}
.jvfth-flow-content h2{font-size:17px!important;line-height:1.3!important;color:var(--jv-ink)!important}
.jvfth-flow-content h3{font-size:14px!important;line-height:1.35!important;color:var(--jv-ink)!important}
.jvfth-flow-content p,.jvfth-flow-content li,.jvfth-flow-content label,.jvfth-flow-content td,.jvfth-flow-content th{font-size:12px!important;line-height:1.5!important}
.jvfth-flow-content small{font-size:10px!important;line-height:1.4!important}
.jvfth-flow-content input,.jvfth-flow-content select,.jvfth-flow-content textarea{font-size:13px!important;line-height:1.4!important}
.jvfth-flow-content .jvfs-primary,.jvfth-flow-content .jvhs-primary,.jvfth-flow-content .jvts-primary,.jvfth-flow-content .jvvs-primary,
.jvfth-flow-content .jvfs-search-btn,.jvfth-flow-content .jvts-search-btn,.jvfth-flow-content .jvvs-book-now,.jvfth-flow-content .jvvs-submit-request{background:var(--jv-navy)!important;color:#fff!important;border-color:var(--jv-navy)!important;border-radius:9px!important;font-size:11px!important;font-weight:850!important;min-height:38px!important;box-shadow:none!important}
.jvfth-flow-content .jvfs-secondary,.jvfth-flow-content .jvhs-secondary{border-color:#cedae4!important;background:#fff!important;color:var(--jv-navy)!important;border-radius:9px!important;font-size:11px!important}
.jvfth-flow-content .jvfs-error,.jvfth-flow-content .jvhs-error,.jvfth-flow-content .jvts-error,.jvfth-flow-content .jvvs-error{border-radius:10px!important;font-size:11px!important}

/* ------------------------------
   Flights: airline-style results
   ------------------------------ */
.jvfth-flow[data-service="flight"] .jvfs-ai-results-head{display:flex!important;align-items:flex-end!important;justify-content:space-between!important;gap:16px!important;margin:0 0 10px!important;padding:14px 16px!important;border:1px solid var(--jv-line)!important;border-radius:14px!important;background:#fff!important;box-shadow:0 6px 18px rgba(17,52,82,.04)!important}
.jvfth-flow[data-service="flight"] .jvfs-route-summary{display:flex!important;flex-wrap:wrap!important;gap:7px!important;align-items:center!important;color:#53687c!important}
.jvfth-flow[data-service="flight"] .jvfs-date-strip{display:grid!important;grid-auto-flow:column!important;grid-auto-columns:minmax(112px,1fr)!important;gap:6px!important;overflow:auto!important;padding:2px 1px 8px!important;scrollbar-width:thin!important}
.jvfth-flow[data-service="flight"] .jvfs-date-strip>*{min-width:110px!important;border:1px solid #dce5ec!important;border-radius:10px!important;background:#fff!important;padding:8px!important}
.jvfth-flow[data-service="flight"] .jvfs-ai-service-strip,.jvfth-flow[data-service="flight"] .jvfs-vs-results-banner,.jvfth-flow[data-service="flight"] .jvfs-toolbar{margin:8px 0!important;border:1px solid #e0e8ef!important;border-radius:11px!important;background:#fff!important;box-shadow:none!important}
.jvfth-flow[data-service="flight"] .jvfs-ai-result-columns{display:grid!important;grid-template-columns:minmax(0,1.65fr) minmax(170px,.45fr) minmax(185px,.45fr)!important;gap:0!important;padding:7px 13px!important;color:#7c8d9e!important;font-size:9px!important;font-weight:900!important;letter-spacing:.08em!important;text-transform:uppercase!important}
.jvfth-flow[data-service="flight"] .jvfs-results{display:grid!important;gap:8px!important}
.jvfth-flow[data-service="flight"] .jvfs-ai-flight-row,.jvfth-flow[data-service="flight"] .jvfs-result{display:grid!important;grid-template-columns:minmax(0,1.65fr) minmax(170px,.45fr) minmax(185px,.45fr)!important;gap:0!important;border:1px solid #dce5ec!important;border-radius:13px!important;background:#fff!important;overflow:hidden!important;box-shadow:0 5px 16px rgba(17,52,82,.04)!important}
.jvfth-flow[data-service="flight"] .jvfs-ai-flight-main{display:grid!important;grid-template-columns:minmax(115px,.75fr) minmax(70px,.42fr) minmax(85px,.55fr) minmax(70px,.42fr)!important;gap:10px!important;align-items:center!important;padding:14px!important}
.jvfth-flow[data-service="flight"] .jvfs-ai-flight-main .jvfs-ai-time,.jvfth-flow[data-service="flight"] .jvfs-segment-time{font-size:20px!important;font-weight:800!important;letter-spacing:-.02em!important;color:#172a3d!important}
.jvfth-flow[data-service="flight"] .jvfs-ai-flight-line{color:#71869a!important;font-size:10px!important;text-align:center!important}
.jvfth-flow[data-service="flight"] .jvfs-ai-details{grid-column:1/-1!important;margin-top:4px!important;color:#607488!important;font-size:10px!important}
.jvfth-flow[data-service="flight"] .jvfs-ai-cabin-cell,.jvfth-flow[data-service="flight"] .jvfs-ai-fare-cell{display:flex!important;flex-direction:column!important;justify-content:center!important;gap:5px!important;padding:13px!important;border-left:1px solid #e6edf2!important;background:#fbfcfd!important}
.jvfth-flow[data-service="flight"] .jvfs-ai-fare-cell{background:#f7fafc!important}
.jvfth-flow[data-service="flight"] .jvfs-price,.jvfth-flow[data-service="flight"] .jvfs-fare strong{font-size:18px!important;font-weight:850!important;color:var(--jv-navy)!important}
.jvfth-flow[data-service="flight"] .jvfs-ai-included,.jvfth-flow[data-service="flight"] .jvfs-tags{font-size:10px!important;color:#60768a!important}
.jvfth-flow[data-service="flight"] .jvfs-ai-booking-layout{display:grid!important;grid-template-columns:minmax(0,1.45fr) minmax(310px,.55fr)!important;gap:12px!important;align-items:start!important}
.jvfth-flow[data-service="flight"] .jvfs-booking-card,.jvfth-flow[data-service="flight"] .jvfs-booking-summary,.jvfth-flow[data-service="flight"] .jvfs-booking-form,.jvfth-flow[data-service="flight"] .jvfs-request-card{border:1px solid var(--jv-line)!important;border-radius:13px!important;background:#fff!important;box-shadow:none!important;padding:14px!important}
.jvfth-flow[data-service="flight"] .jvfs-ai-booking-sidebar{position:sticky!important;top:12px!important}
.jvfth-flow[data-service="flight"] .jvfs-passenger-grid,.jvfth-flow[data-service="flight"] .jvfs-ai-basic-fields,.jvfth-flow[data-service="flight"] .jvfs-ai-doc-fields{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px!important}

/* ------------------------------
   Hotels: property + room hierarchy
   ------------------------------ */
.jvfth-flow[data-service="hotel"] .jvhs-results-head,.jvfth-flow[data-service="hotel"] .jvhs-search-summary,.jvfth-flow[data-service="hotel"] .jvhs-results-tools{margin:0 0 9px!important;padding:11px 13px!important;border:1px solid var(--jv-line)!important;border-radius:12px!important;background:#fff!important;box-shadow:none!important}
.jvfth-flow[data-service="hotel"] .jvhs-results{display:grid!important;gap:9px!important}
.jvfth-flow[data-service="hotel"] .jvhs-hotel-card{display:grid!important;grid-template-columns:minmax(210px,.48fr) minmax(0,1.25fr) minmax(180px,.42fr)!important;gap:0!important;border:1px solid #dce5ec!important;border-radius:13px!important;background:#fff!important;overflow:hidden!important;box-shadow:0 5px 16px rgba(17,52,82,.04)!important}
.jvfth-flow[data-service="hotel"] .jvhs-hotel-photo{min-height:190px!important;background:#eaf0f5!important;overflow:hidden!important}
.jvfth-flow[data-service="hotel"] .jvhs-hotel-photo img{width:100%!important;height:100%!important;min-height:190px!important;object-fit:cover!important}
.jvfth-flow[data-service="hotel"] .jvhs-hotel-copy{padding:14px!important}
.jvfth-flow[data-service="hotel"] .jvhs-hotel-title{font-size:17px!important;line-height:1.25!important;margin:0 0 5px!important}
.jvfth-flow[data-service="hotel"] .jvhs-hotel-facts,.jvfth-flow[data-service="hotel"] .jvhs-starline{display:flex!important;flex-wrap:wrap!important;gap:6px!important;color:#60758a!important;font-size:10px!important}
.jvfth-flow[data-service="hotel"] .jvhs-hotel-price{display:flex!important;flex-direction:column!important;justify-content:center!important;align-items:flex-end!important;gap:5px!important;padding:14px!important;border-left:1px solid #e6edf2!important;background:#f8fbfd!important;text-align:right!important}
.jvfth-flow[data-service="hotel"] .jvhs-hotel-price b{font-size:19px!important;color:var(--jv-navy)!important}
.jvfth-flow[data-service="hotel"] .jvhs-detail-hero{display:grid!important;grid-template-columns:minmax(330px,.95fr) minmax(0,1.05fr)!important;gap:0!important;border:1px solid var(--jv-line)!important;border-radius:14px!important;background:#fff!important;overflow:hidden!important}
.jvfth-flow[data-service="hotel"] .jvhs-hero-gallery{min-height:330px!important}
.jvfth-flow[data-service="hotel"] .jvhs-hero-gallery img{width:100%!important;height:100%!important;object-fit:cover!important}
.jvfth-flow[data-service="hotel"] .jvhs-detail-intro{padding:18px!important}
.jvfth-flow[data-service="hotel"] .jvhs-detail-body,.jvfth-flow[data-service="hotel"] .jvhs-booking-grid{display:grid!important;grid-template-columns:minmax(0,1.45fr) minmax(290px,.55fr)!important;gap:12px!important;align-items:start!important;margin-top:10px!important}
.jvfth-flow[data-service="hotel"] .jvhs-room-list{display:grid!important;gap:8px!important}
.jvfth-flow[data-service="hotel"] .jvhs-room-card{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(190px,.35fr)!important;border:1px solid #dfe7ee!important;border-radius:12px!important;background:#fff!important;overflow:hidden!important}
.jvfth-flow[data-service="hotel"] .jvhs-room-main{padding:13px!important}
.jvfth-flow[data-service="hotel"] .jvhs-room-price{display:flex!important;flex-direction:column!important;justify-content:center!important;align-items:flex-end!important;padding:13px!important;border-left:1px solid #e6edf2!important;background:#f8fbfd!important;text-align:right!important}
.jvfth-flow[data-service="hotel"] .jvhs-booking-form,.jvfth-flow[data-service="hotel"] .jvhs-booking-summary,.jvfth-flow[data-service="hotel"] .jvhs-guest-card,.jvfth-flow[data-service="hotel"] .jvhs-request-card{border:1px solid var(--jv-line)!important;border-radius:13px!important;background:#fff!important;box-shadow:none!important;padding:14px!important}

/* ------------------------------
   Transfers: chauffeur offer hierarchy
   ------------------------------ */
.jvfth-flow[data-service="transfer"] .jvts-results-head,.jvfth-flow[data-service="transfer"] .jvts-results-toolbar,.jvfth-flow[data-service="transfer"] .jvts-estimate-banner{margin:0 0 9px!important;padding:11px 13px!important;border:1px solid var(--jv-line)!important;border-radius:12px!important;background:#fff!important;box-shadow:none!important}
.jvfth-flow[data-service="transfer"] .jvts-results-layout{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:9px!important}
.jvfth-flow[data-service="transfer"] .jvts-vehicles{display:grid!important;gap:9px!important}
.jvfth-flow[data-service="transfer"] .jvts-vehicle,.jvfth-flow[data-service="transfer"] .jvts-vehicle-rich{display:grid!important;grid-template-columns:minmax(210px,.45fr) minmax(0,1.25fr) minmax(190px,.4fr)!important;gap:0!important;border:1px solid #dce5ec!important;border-radius:13px!important;background:#fff!important;overflow:hidden!important;box-shadow:0 5px 16px rgba(17,52,82,.04)!important}
.jvfth-flow[data-service="transfer"] .jvts-vehicle-photo{min-height:170px!important;background:#eef3f6!important;display:grid!important;place-items:center!important;overflow:hidden!important}
.jvfth-flow[data-service="transfer"] .jvts-vehicle-photo img{width:100%!important;height:100%!important;min-height:170px!important;object-fit:cover!important}
.jvfth-flow[data-service="transfer"] .jvts-vehicle-main{padding:14px!important}
.jvfth-flow[data-service="transfer"] .jvts-vehicle-main h3{font-size:16px!important;margin:0 0 5px!important}
.jvfth-flow[data-service="transfer"] .jvts-cap,.jvfth-flow[data-service="transfer"] .jvts-feature-list,.jvfth-flow[data-service="transfer"] .jvts-spec-grid{color:#60758a!important;font-size:10px!important}
.jvfth-flow[data-service="transfer"] .jvts-vehicle-price{display:flex!important;flex-direction:column!important;justify-content:center!important;align-items:flex-end!important;gap:6px!important;padding:14px!important;border-left:1px solid #e6edf2!important;background:#f8fbfd!important;text-align:right!important}
.jvfth-flow[data-service="transfer"] .jvts-vehicle-price b{font-size:19px!important;color:var(--jv-navy)!important}
.jvfth-flow[data-service="transfer"] .jvts-reference-layout,.jvfth-flow[data-service="transfer"] .jvts-detail-layout,.jvfth-flow[data-service="transfer"] .jvts-details-layout,.jvfth-flow[data-service="transfer"] .jvts-book-layout,.jvfth-flow[data-service="transfer"] .jvts-booking-layout,.jvfth-flow[data-service="transfer"] .jvts-confirm-grid{display:grid!important;grid-template-columns:minmax(0,1.45fr) minmax(290px,.55fr)!important;gap:12px!important;align-items:start!important}
.jvfth-flow[data-service="transfer"] .jvts-form-card,.jvfth-flow[data-service="transfer"] .jvts-summary,.jvfth-flow[data-service="transfer"] .jvts-details-hero,.jvfth-flow[data-service="transfer"] .jvts-fare-rules,.jvfth-flow[data-service="transfer"] .jvts-selected-vehicle{border:1px solid var(--jv-line)!important;border-radius:13px!important;background:#fff!important;box-shadow:none!important;padding:14px!important}
.jvfth-flow[data-service="transfer"] .jvts-live-map,.jvfth-flow[data-service="transfer"] .jvts-booking-map{border-radius:12px!important;overflow:hidden!important}

/* ------------------------------
   Activities: experience marketplace hierarchy
   ------------------------------ */
.jvfth-flow[data-service="activity"] .jvvs-summary{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:7px!important;margin-bottom:9px!important}
.jvfth-flow[data-service="activity"] .jvvs-summary>div{padding:9px 10px!important;border:1px solid #e0e8ef!important;border-radius:10px!important;background:#fff!important}
.jvfth-flow[data-service="activity"] .jvvs-results-head{display:flex!important;align-items:flex-end!important;justify-content:space-between!important;gap:12px!important;margin:0 0 9px!important;padding:11px 13px!important;border:1px solid var(--jv-line)!important;border-radius:12px!important;background:#fff!important}
.jvfth-flow[data-service="activity"] .jvvs-product-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:10px!important}
.jvfth-flow[data-service="activity"] .jvvs-product-card{display:flex!important;flex-direction:column!important;border:1px solid #dce5ec!important;border-radius:13px!important;background:#fff!important;overflow:hidden!important;box-shadow:0 5px 16px rgba(17,52,82,.04)!important}
.jvfth-flow[data-service="activity"] .jvvs-product-media{position:relative!important;aspect-ratio:16/10!important;min-height:0!important;background:#eaf0f4!important;overflow:hidden!important}
.jvfth-flow[data-service="activity"] .jvvs-product-media img{width:100%!important;height:100%!important;object-fit:cover!important}
.jvfth-flow[data-service="activity"] .jvvs-product-body{display:flex!important;flex-direction:column!important;flex:1!important;padding:12px!important}
.jvfth-flow[data-service="activity"] .jvvs-product-body h2{margin:3px 0 6px!important;font-size:14px!important;line-height:1.35!important}
.jvfth-flow[data-service="activity"] .jvvs-product-body p{font-size:11px!important;line-height:1.5!important;color:#61768a!important}
.jvfth-flow[data-service="activity"] .jvvs-product-bottom{margin-top:auto!important;padding-top:9px!important;border-top:1px solid #edf1f4!important}
.jvfth-flow[data-service="activity"] .jvvs-price b{font-size:18px!important;color:var(--jv-navy)!important}
.jvfth-flow[data-service="activity"] .jvvs-detail-hero{display:grid!important;grid-template-columns:minmax(340px,.95fr) minmax(0,1.05fr)!important;gap:0!important;border:1px solid var(--jv-line)!important;border-radius:14px!important;overflow:hidden!important;background:#fff!important}
.jvfth-flow[data-service="activity"] .jvvs-detail-photo{min-height:360px!important;background:#eaf0f4!important}
.jvfth-flow[data-service="activity"] .jvvs-detail-photo img{width:100%!important;height:100%!important;object-fit:cover!important}
.jvfth-flow[data-service="activity"] .jvvs-detail-intro{padding:18px!important}
.jvfth-flow[data-service="activity"] .jvvs-detail-grid,.jvfth-flow[data-service="activity"] .jvvs-request-layout{display:grid!important;grid-template-columns:minmax(0,1.45fr) minmax(290px,.55fr)!important;gap:12px!important;align-items:start!important;margin-top:10px!important}
.jvfth-flow[data-service="activity"] .jvvs-public-card,.jvfth-flow[data-service="activity"] .jvvs-book-card,.jvfth-flow[data-service="activity"] .jvvs-request-summary,.jvfth-flow[data-service="activity"] .jvvs-request-action-card{border:1px solid var(--jv-line)!important;border-radius:13px!important;background:#fff!important;box-shadow:none!important;padding:14px!important}
.jvfth-flow[data-service="activity"] .jvvs-sticky{position:sticky!important;top:12px!important}

/* ------------------------------
   Flow responsive guarantees
   ------------------------------ */
@media (max-width:1020px){
  .jvfth-flow[data-service="flight"] .jvfs-ai-result-columns{display:none!important}
  .jvfth-flow[data-service="flight"] .jvfs-ai-flight-row,.jvfth-flow[data-service="flight"] .jvfs-result,
  .jvfth-flow[data-service="hotel"] .jvhs-hotel-card,
  .jvfth-flow[data-service="transfer"] .jvts-vehicle,.jvfth-flow[data-service="transfer"] .jvts-vehicle-rich{grid-template-columns:1fr!important}
  .jvfth-flow[data-service="flight"] .jvfs-ai-cabin-cell,.jvfth-flow[data-service="flight"] .jvfs-ai-fare-cell,
  .jvfth-flow[data-service="hotel"] .jvhs-hotel-price,
  .jvfth-flow[data-service="transfer"] .jvts-vehicle-price{align-items:flex-start!important;text-align:left!important;border-left:0!important;border-top:1px solid #e6edf2!important}
  .jvfth-flow[data-service="hotel"] .jvhs-hotel-photo,.jvfth-flow[data-service="transfer"] .jvts-vehicle-photo{min-height:230px!important}
  .jvfth-flow[data-service="flight"] .jvfs-ai-booking-layout,
  .jvfth-flow[data-service="hotel"] .jvhs-detail-body,.jvfth-flow[data-service="hotel"] .jvhs-booking-grid,
  .jvfth-flow[data-service="transfer"] .jvts-reference-layout,.jvfth-flow[data-service="transfer"] .jvts-detail-layout,.jvfth-flow[data-service="transfer"] .jvts-details-layout,.jvfth-flow[data-service="transfer"] .jvts-book-layout,.jvfth-flow[data-service="transfer"] .jvts-booking-layout,.jvfth-flow[data-service="transfer"] .jvts-confirm-grid,
  .jvfth-flow[data-service="activity"] .jvvs-detail-grid,.jvfth-flow[data-service="activity"] .jvvs-request-layout{grid-template-columns:1fr!important}
  .jvfth-flow[data-service="flight"] .jvfs-ai-booking-sidebar,.jvfth-flow[data-service="activity"] .jvvs-sticky{position:static!important}
  .jvfth-flow[data-service="activity"] .jvvs-product-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media (max-width:760px){
  .jvfth-flow{padding:8px 0 24px}
  .jvfth-flow-stage{width:calc(100% - 14px)}
  .jvfth-flow-summary{grid-template-columns:36px minmax(0,1fr);padding:8px}
  .jvfth-flow-mark{width:34px;height:34px}
  .jvfth-newsearch{grid-column:1/-1;width:100%}
  .jvfth-flow-content h1{font-size:22px!important}
  .jvfth-flow[data-service="flight"] .jvfs-ai-results-head,.jvfth-flow[data-service="activity"] .jvvs-results-head{align-items:flex-start!important;flex-direction:column!important}
  .jvfth-flow[data-service="flight"] .jvfs-ai-flight-main{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .jvfth-flow[data-service="flight"] .jvfs-ai-flight-no,.jvfth-flow[data-service="flight"] .jvfs-ai-flight-line,.jvfth-flow[data-service="flight"] .jvfs-ai-details{grid-column:1/-1!important}
  .jvfth-flow[data-service="flight"] .jvfs-passenger-grid,.jvfth-flow[data-service="flight"] .jvfs-ai-basic-fields,.jvfth-flow[data-service="flight"] .jvfs-ai-doc-fields{grid-template-columns:1fr!important}
  .jvfth-flow[data-service="hotel"] .jvhs-detail-hero,.jvfth-flow[data-service="activity"] .jvvs-detail-hero{grid-template-columns:1fr!important}
  .jvfth-flow[data-service="hotel"] .jvhs-hero-gallery,.jvfth-flow[data-service="activity"] .jvvs-detail-photo{min-height:250px!important}
  .jvfth-flow[data-service="hotel"] .jvhs-room-card{grid-template-columns:1fr!important}
  .jvfth-flow[data-service="hotel"] .jvhs-room-price{align-items:flex-start!important;text-align:left!important;border-left:0!important;border-top:1px solid #e6edf2!important}
  .jvfth-flow[data-service="activity"] .jvvs-summary,.jvfth-flow[data-service="activity"] .jvvs-product-grid{grid-template-columns:1fr!important}
}

/* Last-line overflow guard for unpredictable supplier text. */
.jvfth-app,.jvfth-flow,.jvfth-booking-card,.jvfth-service-panel,.jvfth-flow-content{overflow-wrap:anywhere}
/* Flow summary markup alignment */
.jvfth-flow-copy>small{font-size:9px;font-weight:900;letter-spacing:.12em;color:var(--jv-blue)}
.jvfth-flow-copy>h1{margin:0!important;font-size:14px!important;line-height:1.25!important;letter-spacing:-.01em!important;color:#243b50!important}
.jvfth-flow-copy>p{margin:0!important;font-size:10px!important;line-height:1.4!important;color:#7c8c9c!important}
/* Airport controller markup from fth.js */
.jvfth-airport-menu button>strong{display:block;min-width:38px;padding-top:1px;color:var(--jv-navy);font-size:11px;font-weight:900;letter-spacing:.06em}
.jvfth-airport-menu button>span{display:grid;gap:2px;min-width:0}
.jvfth-airport-menu button.is-keyboard-active{background:#f0f6fa}
.jvfth-flow-progress span{gap:5px}
.jvfth-flow-progress span i{display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:#eef3f7;color:#64798c;font-size:8px;font-style:normal;font-weight:900}
.jvfth-flow-progress span b{font-size:9px;font-weight:850}
.jvfth-flow-progress span.is-current{border-color:#a8c0d4;background:#edf5fa;color:var(--jv-navy)}
.jvfth-flow-progress span.is-current i,.jvfth-flow-progress span.is-complete i{background:var(--jv-navy);color:#fff}
.jvfth-flow-progress span.is-complete{color:#536d83}

/* v2.9 Hotel destinations + detailed property page + cleaner transfer route */
.jvfth-transfer-route-clean{grid-template-columns:minmax(0,1fr) 34px minmax(0,1fr);align-items:stretch;gap:10px}
.jvfth-route-arrow{display:grid;place-items:center;align-self:center;width:34px;height:34px;border:1px solid var(--jv-line);border-radius:50%;background:#f7fafc;color:var(--jv-navy);font-size:17px;font-weight:900}
.jvfth-transfer-route-clean .jvfth-place-field{min-width:0}
.jvfth-transfer-route-clean .jvfth-place-field input{min-width:0;width:100%}
.jvfth-transfer-route-clean .jvfth-place-menu{left:0;right:0;max-width:none}

.jvfth-flow[data-service="hotel"] .jvhs-product-top{display:flex!important;align-items:flex-end!important;justify-content:space-between!important;gap:18px!important;padding:18px!important;border:1px solid var(--jv-line)!important;border-radius:14px!important;background:#fff!important;margin-bottom:10px!important}
.jvfth-flow[data-service="hotel"] .jvhs-product-title{min-width:0!important}
.jvfth-flow[data-service="hotel"] .jvhs-product-title h2{margin:6px 0 5px!important;font-size:28px!important;line-height:1.15!important;color:#18364f!important;letter-spacing:-.02em!important}
.jvfth-flow[data-service="hotel"] .jvhs-product-title p{margin:0!important;color:#677d90!important;font-size:12px!important;line-height:1.5!important}
.jvfth-flow[data-service="hotel"] .jvhs-product-stars{display:flex!important;align-items:center!important;gap:8px!important;flex-wrap:wrap!important;margin-top:8px!important}
.jvfth-flow[data-service="hotel"] .jvhs-product-stars b{font-size:11px!important;color:#526d84!important}
.jvfth-flow[data-service="hotel"] .jvhs-product-actions{flex:0 0 auto!important}
.jvfth-flow[data-service="hotel"] .jvhs-product-actions .jvhs-primary{white-space:nowrap!important}
.jvfth-flow[data-service="hotel"] .jvhs-product-gallery{display:grid!important;grid-template-columns:1.55fr .72fr .72fr!important;grid-template-rows:190px 190px!important;gap:7px!important;margin-bottom:10px!important;border-radius:14px!important;overflow:hidden!important;background:#edf3f6!important}
.jvfth-flow[data-service="hotel"] .jvhs-product-gallery figure{margin:0!important;min-width:0!important;min-height:0!important;overflow:hidden!important;background:#eaf0f4!important}
.jvfth-flow[data-service="hotel"] .jvhs-product-gallery figure.is-featured{grid-row:1/3!important}
.jvfth-flow[data-service="hotel"] .jvhs-product-gallery img{width:100%!important;height:100%!important;object-fit:cover!important;transition:transform .25s ease!important}
.jvfth-flow[data-service="hotel"] .jvhs-product-gallery figure:hover img{transform:scale(1.02)!important}
.jvfth-flow[data-service="hotel"] .jvhs-product-gallery.is-small{grid-template-columns:1fr!important;grid-template-rows:330px!important}
.jvfth-flow[data-service="hotel"] .jvhs-product-gallery.is-small figure.is-featured{grid-row:auto!important}
.jvfth-flow[data-service="hotel"] .jvhs-stay-strip{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:1px!important;margin-bottom:10px!important;border:1px solid var(--jv-line)!important;border-radius:12px!important;overflow:hidden!important;background:#e5edf2!important}
.jvfth-flow[data-service="hotel"] .jvhs-stay-strip>div{display:grid!important;gap:3px!important;padding:10px 12px!important;background:#fff!important;min-width:0!important}
.jvfth-flow[data-service="hotel"] .jvhs-stay-strip span{font-size:9px!important;letter-spacing:.08em!important;font-weight:900!important;color:#7a8d9e!important}
.jvfth-flow[data-service="hotel"] .jvhs-stay-strip b{font-size:12px!important;color:#243f56!important;white-space:normal!important}
.jvfth-flow[data-service="hotel"] .jvhs-product-layout{display:grid!important;grid-template-columns:minmax(0,1.5fr) minmax(290px,.5fr)!important;gap:12px!important;align-items:start!important}
.jvfth-flow[data-service="hotel"] .jvhs-product-main{display:grid!important;gap:10px!important;min-width:0!important}
.jvfth-flow[data-service="hotel"] .jvhs-detail-anchorbar{position:sticky!important;top:8px!important;z-index:9!important;display:flex!important;gap:5px!important;overflow:auto!important;padding:6px!important;border:1px solid var(--jv-line)!important;border-radius:11px!important;background:rgba(255,255,255,.96)!important;backdrop-filter:blur(10px)!important}
.jvfth-flow[data-service="hotel"] .jvhs-detail-anchorbar a{flex:0 0 auto!important;padding:7px 9px!important;border-radius:8px!important;color:#506a80!important;text-decoration:none!important;font-size:10px!important;font-weight:850!important}
.jvfth-flow[data-service="hotel"] .jvhs-detail-anchorbar a:hover{background:#edf5fa!important;color:var(--jv-navy)!important}
.jvfth-flow[data-service="hotel"] .jvhs-detail-section{scroll-margin-top:70px!important;padding:17px!important;border:1px solid var(--jv-line)!important;border-radius:13px!important;background:#fff!important}
.jvfth-flow[data-service="hotel"] .jvhs-detail-section>span{font-size:9px!important;letter-spacing:.1em!important;color:var(--jv-blue)!important;font-weight:900!important}
.jvfth-flow[data-service="hotel"] .jvhs-detail-section h3{margin:5px 0 10px!important;font-size:19px!important;color:#203e56!important}
.jvfth-flow[data-service="hotel"] .jvhs-rich-copy,.jvfth-flow[data-service="hotel"] .jvhs-rich-copy p{font-size:12px!important;line-height:1.7!important;color:#61768a!important}
.jvfth-flow[data-service="hotel"] .jvhs-amenity-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:7px!important}
.jvfth-flow[data-service="hotel"] .jvhs-amenity-grid b{display:flex!important;align-items:flex-start!important;gap:6px!important;padding:9px 10px!important;border:1px solid #e6edf2!important;border-radius:9px!important;background:#f9fbfc!important;font-size:10px!important;line-height:1.4!important;color:#486278!important;font-weight:750!important}
.jvfth-flow[data-service="hotel"] .jvhs-location-card{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;padding:13px!important;border:1px solid #e1e9ef!important;border-radius:11px!important;background:#f8fbfd!important}
.jvfth-flow[data-service="hotel"] .jvhs-location-card b{font-size:13px!important;color:#29475f!important}
.jvfth-flow[data-service="hotel"] .jvhs-location-card p{margin:4px 0 0!important;font-size:11px!important;line-height:1.5!important;color:#6d8091!important}
.jvfth-flow[data-service="hotel"] .jvhs-location-badge{flex:0 0 auto!important;padding:7px 9px!important;border-radius:999px!important;background:#edf5fa!important;color:var(--jv-navy)!important;font-size:10px!important;font-weight:850!important}
.jvfth-flow[data-service="hotel"] .jvhs-policy-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px!important}
.jvfth-flow[data-service="hotel"] .jvhs-policy-grid>div{padding:11px!important;border:1px solid #e4ebf0!important;border-radius:10px!important;background:#fbfcfd!important}
.jvfth-flow[data-service="hotel"] .jvhs-policy-grid b{font-size:11px!important;color:#29475f!important}
.jvfth-flow[data-service="hotel"] .jvhs-policy-grid p{margin:5px 0 0!important;font-size:10px!important;line-height:1.55!important;color:#6e8192!important}
.jvfth-flow[data-service="hotel"] .jvhs-detail-side-rich{position:sticky!important;top:12px!important;padding:16px!important;border:1px solid var(--jv-line)!important;border-radius:13px!important;background:#fff!important}
.jvfth-flow[data-service="hotel"] .jvhs-detail-side-rich>strong{display:block!important;margin:5px 0 2px!important;font-size:25px!important;color:var(--jv-navy)!important}
.jvfth-flow[data-service="hotel"] .jvhs-detail-side-rich>small{display:block!important;font-size:10px!important;line-height:1.45!important;color:#758899!important}
.jvfth-flow[data-service="hotel"] .jvhs-detail-side-rich dl{margin:14px 0!important;border-top:1px solid #e7edf2!important}
.jvfth-flow[data-service="hotel"] .jvhs-detail-side-rich dl>div{display:grid!important;grid-template-columns:90px minmax(0,1fr)!important;gap:8px!important;padding:9px 0!important;border-bottom:1px solid #e7edf2!important}
.jvfth-flow[data-service="hotel"] .jvhs-detail-side-rich dt{font-size:9px!important;color:#7a8d9d!important}
.jvfth-flow[data-service="hotel"] .jvhs-detail-side-rich dd{margin:0!important;text-align:right!important;font-size:10px!important;line-height:1.4!important;color:#34526a!important;font-weight:800!important}
.jvfth-flow[data-service="hotel"] .jvhs-rate-note{margin:10px 0 0!important;font-size:9px!important;line-height:1.45!important;color:#8392a0!important}

@media(max-width:1020px){
  .jvfth-flow[data-service="hotel"] .jvhs-product-layout{grid-template-columns:1fr!important}
  .jvfth-flow[data-service="hotel"] .jvhs-detail-side-rich{position:static!important}
  .jvfth-flow[data-service="hotel"] .jvhs-amenity-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .jvfth-flow[data-service="hotel"] .jvhs-policy-grid{grid-template-columns:1fr!important}
}
@media(max-width:760px){
  .jvfth-transfer-route-clean{grid-template-columns:1fr!important}
  .jvfth-route-arrow{transform:rotate(90deg);justify-self:center}
  .jvfth-flow[data-service="hotel"] .jvhs-product-top{align-items:flex-start!important;flex-direction:column!important;padding:14px!important}
  .jvfth-flow[data-service="hotel"] .jvhs-product-title h2{font-size:22px!important}
  .jvfth-flow[data-service="hotel"] .jvhs-product-actions,.jvfth-flow[data-service="hotel"] .jvhs-product-actions .jvhs-primary{width:100%!important}
  .jvfth-flow[data-service="hotel"] .jvhs-product-gallery{grid-template-columns:1fr 1fr!important;grid-template-rows:240px 125px 125px!important}
  .jvfth-flow[data-service="hotel"] .jvhs-product-gallery figure.is-featured{grid-column:1/-1!important;grid-row:1!important}
  .jvfth-flow[data-service="hotel"] .jvhs-stay-strip{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .jvfth-flow[data-service="hotel"] .jvhs-stay-strip>div:last-child{grid-column:1/-1!important}
  .jvfth-flow[data-service="hotel"] .jvhs-amenity-grid{grid-template-columns:1fr!important}
  .jvfth-flow[data-service="hotel"] .jvhs-location-card{align-items:flex-start!important;flex-direction:column!important}
  .jvfth-flow[data-service="hotel"] .jvhs-detail-anchorbar{top:4px!important}
}


/* v3.3 motion system — compact, premium and intentionally non-disruptive. */
.jvfth-booking-card{animation:jvfth-card-enter .58s cubic-bezier(.2,.78,.22,1) both}
.jvfth-service-tabs button{transition:color .22s ease,background .22s ease,transform .22s ease}
.jvfth-service-tabs button:hover{transform:translateY(-1px);color:var(--jv-navy)}
.jvfth-service-tabs button:after{transform:scaleX(0);transform-origin:center;transition:transform .28s cubic-bezier(.2,.78,.22,1),background .2s ease}
.jvfth-service-tabs button.is-active:after{transform:scaleX(1)}
.jvfth-service-panel.is-entering{animation:jvfth-panel-enter .4s cubic-bezier(.2,.78,.22,1) both}
.jvfth-field{transition:background .2s ease,box-shadow .2s ease,transform .2s ease}
.jvfth-field:focus-within{transform:translateY(-1px);box-shadow:inset 0 -2px 0 var(--jv-blue),0 6px 16px rgba(12,68,118,.06)}
.jvfth-input-line>b{transition:transform .2s ease,background .2s ease}
.jvfth-field:focus-within .jvfth-input-line>b{transform:translateY(-1px);background:#e5f0f7}
.jvfth-dropmenu.is-open{animation:jvfth-menu-open .2s cubic-bezier(.2,.78,.22,1) both}
.jvfth-popfield[open] .jvfth-popover{animation:jvfth-menu-open .2s cubic-bezier(.2,.78,.22,1) both}
.jvfth-search-button{position:relative;isolation:isolate;overflow:hidden;transition:background .2s ease,transform .2s ease,box-shadow .2s ease}
.jvfth-search-button:before{content:"";position:absolute;inset:-30% auto -30% -45%;width:34%;z-index:-1;background:linear-gradient(90deg,transparent,rgba(255,255,255,.26),transparent);transform:skewX(-18deg);animation:jvfth-search-shine 4.2s ease-in-out infinite}
.jvfth-search-button:hover{transform:translateY(-1px);box-shadow:0 9px 20px rgba(12,68,118,.17)}
.jvfth-search-button:active{transform:translateY(0) scale(.99)}
.jvfth-swap:hover{transform:rotate(180deg) scale(1.06)}
.jvfth-attached-strip{animation:jvfth-strip-enter .5s .12s cubic-bezier(.2,.78,.22,1) both}
.jvfth-strip-track article{transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}
.jvfth-strip-track article:hover{transform:translateY(-3px);box-shadow:0 10px 22px rgba(17,57,91,.08);border-color:#cadbe7}
.jvfth-strip-head button{transition:transform .18s ease,background .18s ease,color .18s ease}
.jvfth-strip-head button:hover{transform:translateY(-1px) scale(1.04);background:#edf5fa;color:var(--jv-navy)}

@keyframes jvfth-card-enter{from{opacity:0;transform:translateY(12px) scale(.995)}to{opacity:1;transform:none}}
@keyframes jvfth-panel-enter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes jvfth-menu-open{from{opacity:0;transform:translateY(-6px) scale(.99)}to{opacity:1;transform:none}}
@keyframes jvfth-strip-enter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes jvfth-search-shine{0%,68%{left:-45%}88%,100%{left:125%}}

@media (prefers-reduced-motion:reduce){
  .jvfth-app *,.jvfth-app *:before,.jvfth-app *:after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}
}
