
:root{
  --jv-bg:#F5F5F5;
  --jv-panel:#ffffff;
  --jv-panel-2:#edf3f8;
  --jv-text:#0c4476;
  --jv-muted:#5c7691;
  --jv-primary:#0c4476;
  --jv-secondary:#7d9fbf;
  --jv-accent:#dce8f2;
  --jv-border:rgba(12,68,118,.12);
  --jv-chip:#eef4f8;
  --jv-shadow:0 18px 48px rgba(12,68,118,.08);
}
@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=Space+Grotesk:wght@400;500;700&display=swap');
body{background:var(--jv-bg);color:var(--jv-text);font-family:'Plus Jakarta Sans',Inter,system-ui,-apple-system,'Segoe UI',Roboto,sans-serif}
.jvt-chat-shell,.jvt-trip-page{max-width:1280px;margin:0 auto;padding:24px;color:var(--jv-text)}
.jvt-chat-topbar,.jvt-trip-header,.jvt-header-actions,.jvt-logo-lockup,.jvt-logo-inline,.jvt-brand-stack{display:flex;align-items:center;gap:10px}
.jvt-chat-topbar,.jvt-trip-header{justify-content:space-between;gap:16px;margin-bottom:18px}
.jvt-brand-stack{flex-direction:column;align-items:flex-start;line-height:1}
.jvt-logo-dot{width:10px;height:10px;border-radius:999px;background:var(--jv-primary);box-shadow:0 0 0 8px rgba(12,68,118,.08)}
.jvt-brand-stack strong{font-size:13px;letter-spacing:.14em;text-transform:uppercase}.jvt-brand-stack span,.jvt-topbar-pill,.jvt-msg-author,.jvt-days-label,.jvt-date-label,.jvt-stay-label,.jvt-itinerary-title,.jvt-preview-label,.jvt-eyebrow{font-size:12px;color:var(--jv-muted);text-transform:uppercase;letter-spacing:.08em}
.jvt-topbar-pill,.jvt-chip,.jvt-order-item,.jvt-stat-row span,.jvt-reply-pills span,.jvt-version-pill,.jvt-map-topbar span{padding:10px 14px;border-radius:999px;border:1px solid var(--jv-border);background:var(--jv-panel)}
.jvt-chat-stage{min-height:72vh;padding:18px 0 8px;text-align:center;overflow:auto}
.jvt-center-card{max-width:760px;margin:0 auto 18px}.jvt-avatar{width:78px;height:78px;margin:0 auto 18px;border-radius:26px;display:grid;place-items:center;background:radial-gradient(circle at 30% 30%, #ffffff 0%, #e8f0f7 55%, #d8e4ef 100%);border:1px solid var(--jv-border);font-size:28px;color:var(--jv-primary);position:relative;box-shadow:0 18px 42px rgba(12,68,118,.10)}
.jvt-maple-emblem,.jvt-mini-maple,.jvt-bigben-svg,.jvt-mini-ben{display:inline-flex;align-items:center;justify-content:center}
.jvt-maple-emblem{font-size:34px;filter:drop-shadow(0 8px 16px rgba(12,68,118,.18))}
.jvt-status{font-size:28px;line-height:1.1;letter-spacing:-.03em;margin:0 0 4px}.jvt-intro-copy{display:none}
.jvt-thread{max-width:800px;margin:22px auto 18px;display:grid;gap:18px;text-align:left}.jvt-msg{display:flex;gap:12px;align-items:flex-start}.jvt-msg-user{justify-content:flex-end}.jvt-msg-user .jvt-msg-avatar{order:2}.jvt-msg-user .jvt-msg-bubble{order:1;background:#e8f0f7}
.jvt-msg-avatar{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:#e1ebf3;color:var(--jv-primary);flex:0 0 42px}.jvt-msg-bubble{max-width:650px;background:var(--jv-panel);border:1px solid var(--jv-border);border-radius:22px;padding:16px 18px;box-shadow:var(--jv-shadow)}
.jvt-msg-bubble p{margin:0;font-size:12.5px;line-height:1.6}.jvt-msg-meta{margin-top:8px;color:var(--jv-muted);font-size:11px}.jvt-dots{display:flex;gap:7px;padding:4px 0}.jvt-dots span{width:8px;height:8px;border-radius:999px;background:var(--jv-primary);display:block;animation:jvBounce 1.2s infinite ease-in-out}.jvt-dots span:nth-child(2){animation-delay:.15s}.jvt-dots span:nth-child(3){animation-delay:.3s}@keyframes jvBounce{0%,80%,100%{transform:scale(.7);opacity:.4}40%{transform:scale(1);opacity:1}}
.jvt-chip-row{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;max-width:920px;margin:12px auto 0}.jvt-chip{background:var(--jv-chip);color:var(--jv-primary);cursor:pointer;font-size:11.5px;transition:.18s;padding:7px 11px}.jvt-chip:hover{transform:translateY(-1px);background:#e6eff6}
.jvt-composer-wrap{padding:18px 0 8px}.jvt-composer{max-width:860px;margin:0 auto;display:flex;gap:12px;align-items:flex-end;padding:14px;background:var(--jv-panel);border:1px solid var(--jv-border);border-radius:24px;box-shadow:var(--jv-shadow)}
.jvt-composer textarea{flex:1;background:transparent;border:0;color:var(--jv-text);resize:none;outline:none;font-size:12.5px;line-height:1.4;max-height:180px}.jvt-composer button,.jvt-copy-btn,.jvt-chat-back,.jvt-map-focus{border:0;background:var(--jv-primary);color:#fff;padding:11px 16px;border-radius:999px;font-weight:700;text-decoration:none;cursor:pointer}
.jvt-tool-btn{background:#eef4f8!important;color:var(--jv-primary)!important;padding:12px 14px!important}

/* trip result styles retained from prior build */
.jvcdp-trip-wrap{display:grid;gap:22px;max-width:1200px;margin:0 auto}.jvcdp-hero,.jvcdp-panel,.jvcdp-result-card{background:#fff;border:1px solid var(--jv-border);border-radius:24px;box-shadow:var(--jv-shadow)}
.jvcdp-hero{padding:28px 30px}.jvcdp-hero-top{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;flex-wrap:wrap}.jvcdp-kicker{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--jv-muted);margin-bottom:8px}.jvcdp-tour-title{font-size:48px;line-height:1.04;letter-spacing:-.04em;margin:0;color:var(--jv-primary)}
.jvcdp-meta-pills{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.jvcdp-meta-pills span{padding:10px 14px;border:1px solid var(--jv-border);border-radius:999px;background:#f9fbfd;color:var(--jv-primary);font-size:14px}
.jvcdp-overview{padding:0 30px 30px;color:#214864;font-size:16px;line-height:1.75}.jvcdp-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:22px}.jvcdp-panel{padding:22px 24px}.jvcdp-panel h3{margin:0 0 14px;font-size:24px;color:var(--jv-primary)}.jvcdp-panel ul{margin:0;padding-left:18px;display:grid;gap:10px;color:#214864;line-height:1.65}
.jvcdp-table{width:100%;border-collapse:collapse}.jvcdp-table th,.jvcdp-table td{padding:12px 14px;border-bottom:1px solid #e7eef5;text-align:left;vertical-align:top;font-size:14px;line-height:1.6}.jvcdp-table th{font-size:12px;color:var(--jv-muted);text-transform:uppercase;letter-spacing:.08em;background:#f8fbfd}
.jvcdp-day-card{padding:22px 24px}.jvcdp-day-title{margin:0 0 10px;font-size:24px;color:var(--jv-primary)}.jvcdp-day-copy{margin:0;color:#214864;line-height:1.8;font-size:15px}
.jvcdp-section-title{margin:0 0 16px;font-size:30px;letter-spacing:-.03em;color:var(--jv-primary)}
@media (max-width:980px){.jvt-status{font-size:24px}.jvcdp-grid-2{grid-template-columns:1fr}}
@media (max-width:680px){.jvt-chat-shell,.jvt-trip-page{padding:14px}.jvt-chat-topbar{flex-direction:column;align-items:flex-start}.jvt-status{font-size:21px}.jvt-composer{padding:10px;gap:8px}.jvt-composer button{padding:10px 12px}.jvt-chip-row{justify-content:flex-start}.jvt-msg-bubble{max-width:100%}.jvcdp-hero,.jvcdp-panel,.jvcdp-day-card{padding:18px}.jvcdp-tour-title{font-size:34px}}


.jvt-chat-stage{padding-top:18px;}
.jvt-avatar{background:linear-gradient(135deg, #0c4476 0%, #527c9f 100%); border-color:rgba(255,255,255,.22);}
.jvt-bigben-svg,.jvt-mini-ben{color:#fff!important; filter:drop-shadow(0 10px 18px rgba(0,0,0,.18));}
.jvt-msg-avatar{background:linear-gradient(135deg, #0c4476 0%, #527c9f 100%); color:#fff;}
.jvt-audio-note{display:none;}
.jvt-tool-btn.is-listening,.jvt-tool-btn.is-speaking{box-shadow:0 0 0 4px rgba(12,68,118,.12) inset, 0 0 0 1px rgba(12,68,118,.18);}

.jvt-msg-content{display:block;}
.jvt-msg-content p{margin:0 0 8px;font-size:12.5px;line-height:1.6;}
.jvt-msg-content p:last-child{margin-bottom:0;}
.jvt-trip-result{display:grid;gap:16px;}
.jvt-trip-section{border:1px solid var(--jv-border);border-radius:18px;padding:16px 18px;background:#fbfdff;}
.jvt-trip-section h3{margin:0 0 10px;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--jv-muted);}
.jvt-trip-title{font-size:19px!important;font-weight:800;color:var(--jv-primary);margin:0;}
.jvt-trip-list{margin:0;padding-left:18px;display:grid;gap:8px;}
.jvt-chat-table-wrap{overflow:auto;border:1px solid #e7eef5;border-radius:14px;background:#fff;}
.jvt-chat-table{width:100%;border-collapse:collapse;min-width:520px;}
.jvt-chat-table th,.jvt-chat-table td{padding:10px 12px;border-bottom:1px solid #e7eef5;text-align:left;vertical-align:top;font-size:13px;line-height:1.6;}
.jvt-chat-table th{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--jv-muted);background:#f7fbfe;}
.jvt-trip-day,.jvt-trip-flight{padding:12px 0;border-top:1px solid #e7eef5;}
.jvt-trip-day:first-child,.jvt-trip-flight:first-child{border-top:0;padding-top:0;}
.jvt-trip-day h4,.jvt-trip-flight h4{margin:0 0 6px;font-size:14px;color:var(--jv-primary);}
.jvt-trip-day p,.jvt-trip-flight p{margin:0;line-height:1.75;color:#214864;}

.jvt-trip-chat-friendly .jvt-trip-eyebrow{margin:0 0 6px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#527c9f;font-weight:700}
.jvt-trip-chat-friendly .jvt-trip-title{margin:0 0 10px;font-size:20px;font-weight:800;color:#0c4476}
.jvt-trip-chat-friendly .jvt-trip-grid{display:grid;grid-template-columns:1fr;gap:10px}
.jvt-trip-chat-friendly .jvt-trip-mini-card{border:1px solid #d9e4ef;border-radius:14px;padding:12px 14px;background:#fff}
.jvt-trip-chat-friendly .jvt-trip-mini-card h4{margin:0 0 8px;font-size:14px;color:#0c4476}
.jvt-trip-chat-friendly .jvt-trip-mini-card div{font-size:13px;line-height:1.5;margin-top:4px;color:#334155}
.jvt-trip-chat-friendly .jvt-trip-section h3{font-size:15px}
.jvt-trip-chat-friendly .jvt-trip-list li{font-size:13px;line-height:1.55}
.jvt-trip-chat-friendly .jvt-trip-day h4,.jvt-trip-chat-friendly .jvt-trip-flight h4{font-size:14px}
.jvt-trip-chat-friendly .jvt-trip-day p,.jvt-trip-chat-friendly .jvt-trip-flight p,.jvt-trip-chat-friendly .jvt-trip-section p{font-size:13px;line-height:1.62}

.jvt-bigben-svg{width:40px;height:40px;display:block;color:#fff;stroke-linecap:round;stroke-linejoin:round;}
.jvt-mini-ben.jvt-bigben-svg{width:20px;height:20px;}
.jvt-maple-emblem,.jvt-mini-maple,.jvt-mini-ben{font-size:0!important;line-height:0!important;}
.jvt-bigben-svg .jvt-clock-minute{transform-origin:32px 21px;animation:jvtClockMinute 8s linear infinite;}
.jvt-bigben-svg .jvt-clock-hour{transform-origin:32px 21px;animation:jvtClockHour 32s linear infinite;}

.jvt-thread .jvt-msg{animation:jvtRise .45s ease both}
.jvt-thread .jvt-msg:nth-last-child(1){animation-duration:.35s}
.jvt-chip{position:relative;overflow:hidden;transition:transform .18s ease, box-shadow .18s ease, background .18s ease}
.jvt-chip::after{content:'';position:absolute;inset:0;background:linear-gradient(120deg, transparent 0%, rgba(255,255,255,.7) 45%, transparent 100%);transform:translateX(-120%);transition:transform .6s ease}
.jvt-chip:hover::after{transform:translateX(120%)}
.jvt-chip:hover{box-shadow:0 10px 24px rgba(12,68,118,.10)}
.jvt-msg-avatar,.jvt-avatar{animation:jvtGlow 3.2s ease-in-out infinite}
.jvt-composer{transition:box-shadow .2s ease, transform .2s ease}
.jvt-composer:focus-within{box-shadow:0 22px 52px rgba(12,68,118,.14);transform:translateY(-1px)}
@keyframes jvtRise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@keyframes jvtGlow{0%,100%{box-shadow:0 18px 42px rgba(12,68,118,.10)}50%{box-shadow:0 22px 50px rgba(12,68,118,.18)}}

@keyframes jvtClockMinute{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@keyframes jvtClockHour{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}

/* v2 polish */
.jvt-chip{transition:transform .18s ease,box-shadow .18s ease;}
.jvt-chip:hover{transform:translateY(-1px);}


/* v2.2 sketch Big Ben refinement inspired by provided reference */
.jvt-avatar-core .jvt-bigben-svg{transform:rotate(-2deg);}
.jvt-msg-avatar .jvt-bigben-svg{transform:rotate(-1deg);}
.jvt-bigben-svg g path:nth-child(odd){opacity:.95}
.jvt-bigben-svg g path:nth-child(even){opacity:.82}

/* v3.0 Molly intro experience */
.jvt-chat-shell{position:relative;overflow:hidden;background:linear-gradient(180deg,#f7fbfe 0%,#eef5fa 100%)}
.jvt-chat-shell--booting .jvt-chat-stage,.jvt-chat-shell--booting .jvt-composer-wrap{opacity:0;pointer-events:none;transform:translateY(18px)}
.jvt-chat-shell .jvt-chat-stage,.jvt-chat-shell .jvt-composer-wrap{transition:opacity .42s ease,transform .42s ease}
.jvt-chat-shell.is-live .jvt-chat-stage,.jvt-chat-shell.is-live .jvt-composer-wrap{opacity:1;pointer-events:auto;transform:none}
.jvt-intro-overlay{position:fixed;inset:0;z-index:99999;display:grid;place-items:center;padding:0;background:#fff}
.jvt-intro-overlay.is-hidden{opacity:0;pointer-events:none;transition:opacity .45s ease}
.jvt-intro-card{width:100%;height:100%;min-height:100vh;padding:24px 24px 34px;text-align:center;background:#fff;color:#0C4476;display:grid;align-content:center;justify-items:center;box-sizing:border-box}
.jvt-intro-video-wrap{position:relative;display:grid;place-items:center;margin:0 auto 26px;width:min(54vh,460px);height:min(54vh,460px);min-width:260px;min-height:260px;border-radius:42px;background:radial-gradient(circle at 50% 45%, rgba(12,68,118,.06) 0%, rgba(12,68,118,.03) 42%, rgba(255,255,255,.96) 74%, #ffffff 100%);border:3px solid rgba(12,68,118,.18);box-shadow:0 32px 90px rgba(12,68,118,.12);overflow:hidden}
.jvt-intro-glow{position:absolute;inset:16px;border-radius:34px;background:radial-gradient(circle, rgba(12,68,118,.14) 0%, rgba(12,68,118,0) 72%);filter:blur(10px)}
.jvt-intro-video{position:relative;z-index:1;width:calc(100% - 44px);height:calc(100% - 44px);object-fit:contain;border-radius:32px;background:#fff;border:4px solid #0C4476;box-shadow:0 20px 48px rgba(12,68,118,.16);filter:contrast(1.03) saturate(.9)}
.jvt-intro-eyebrow{margin:0 0 10px;font-size:12px;letter-spacing:.24em;text-transform:uppercase;font-weight:900;color:#0C4476}
.jvt-intro-title{margin:0 0 12px;font-size:clamp(34px,4.8vw,64px);line-height:1.04;letter-spacing:-.05em;color:#0C4476;max-width:980px}
.jvt-intro-copy{display:block!important;margin:0;max-width:820px;font-size:clamp(16px,1.5vw,22px);line-height:1.7;color:#234c70}
.jvt-stage-subtitle{max-width:760px;margin:10px auto 0;font-size:13px;line-height:1.7;color:#527c9f}
#jvcdpComposerWrap .jvt-composer{position:relative;z-index:2}
@media (max-width:680px){.jvt-intro-card{padding:84px 18px 26px}.jvt-intro-video-wrap{width:min(70vw,310px);height:min(70vw,310px);min-width:220px;min-height:220px;border-radius:30px}.jvt-intro-video{width:calc(100% - 30px);height:calc(100% - 30px);border-radius:24px}.jvt-intro-copy{font-size:15px}.jvt-stage-subtitle{font-size:12px}}


/* v3.1 Molly avatar + richer branding */
.jvt-avatar--photo{width:120px;height:120px;border-radius:999px;display:grid;place-items:center;margin:0 auto 16px;position:relative}
.jvt-avatar-core--photo{display:block;width:100px;height:100px;border-radius:999px;overflow:hidden;box-shadow:0 20px 45px rgba(12,68,118,.22)}
.jvt-avatar-core--photo img{width:100%;height:100%;object-fit:cover;display:block}
.jvt-stage-brandline{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin-top:14px}
.jvt-stage-brandline span{padding:8px 12px;border-radius:999px;background:#fff;border:1px solid rgba(12,68,118,.12);font-size:12px;letter-spacing:.04em;color:#0c4476;box-shadow:0 10px 24px rgba(12,68,118,.06)}
.jvt-intro-skip{position:absolute;top:24px;right:24px;border:1px solid #0C4476;background:#0C4476;color:#fff;border-radius:999px;padding:10px 16px;font-size:12px;font-weight:800;cursor:pointer;box-shadow:0 14px 32px rgba(12,68,118,.18)}
.jvt-intro-skip:hover{background:#0a3963}
.jvt-intro-avatar-badge{display:grid;place-items:center;width:78px;height:78px;margin:0 auto 18px;border-radius:999px;background:#fff;border:2px solid rgba(12,68,118,.18);box-shadow:0 18px 44px rgba(12,68,118,.12)}
.jvt-intro-avatar-badge img{width:62px;height:62px;border-radius:999px;object-fit:cover;display:block}
.jvt-msg-avatar{overflow:hidden}
.jvt-msg-avatar-img{width:100%;height:100%;object-fit:cover;display:block}
.jvt-user-avatar-badge{display:grid;place-items:center;width:100%;height:100%;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#0c4476;background:linear-gradient(180deg,#fff,#edf4fa)}
.jvt-trip-response-top{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:10px;flex-wrap:wrap}
.jvt-trip-response-chips{display:flex;gap:8px;flex-wrap:wrap}
.jvt-trip-response-chips span{padding:7px 10px;border-radius:999px;background:#eef4f8;border:1px solid #dbe7f2;font-size:11px;color:#0c4476;font-weight:700;letter-spacing:.06em;text-transform:uppercase}

/* result page polish */
.jvcdp-trip-body{margin:0;background:linear-gradient(180deg,#f3f7fb 0%,#eef4f8 100%);color:#16324a}
.jvcdp-result-page{max-width:1240px;margin:0 auto;padding:28px 22px 32px;display:grid;gap:22px}
.jvcdp-result-header{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;padding:28px 30px;border-radius:30px;background:linear-gradient(135deg,#0c4476 0%,#0a3963 54%,#08162e 100%);box-shadow:0 28px 80px rgba(12,68,118,.22);color:#fff}
.jvcdp-result-brand{font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:800;color:rgba(255,255,255,.84);margin-bottom:10px}
.jvcdp-result-header h1{margin:0 0 8px;font-size:clamp(30px,4vw,48px);line-height:1.06;letter-spacing:-.04em;color:#fff}
.jvcdp-ref-line{margin:0;color:rgba(255,255,255,.82);line-height:1.7}
.jvcdp-print-btn{border:0;border-radius:999px;padding:12px 18px;background:#fff;color:#0c4476;font-weight:800;cursor:pointer;box-shadow:0 14px 36px rgba(0,0,0,.12)}
.jvcdp-result-hero{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:18px}
.jvcdp-result-side-stack{display:grid;gap:16px}
.jvcdp-stat-card,.jvcdp-section-card{background:#fff;border:1px solid rgba(12,68,118,.10);border-radius:26px;box-shadow:0 18px 48px rgba(12,68,118,.08);padding:22px;position:relative;overflow:hidden}
.jvcdp-stat-card::after,.jvcdp-section-card::after{content:'';position:absolute;inset:auto -55px -55px auto;width:170px;height:170px;background:radial-gradient(circle, rgba(82,124,159,.12), transparent 70%);pointer-events:none}
.jvcdp-stat-label,.jvcdp-section-kicker{font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:#527c9f;font-weight:800;margin-bottom:10px}
.jvcdp-stat-value{font-size:26px;line-height:1.15;font-weight:800;color:#0c4476}
.jvcdp-assistant-inline{display:flex;gap:14px;align-items:center}
.jvcdp-assistant-inline img{width:62px;height:62px;border-radius:999px;object-fit:cover;display:block;box-shadow:0 14px 34px rgba(12,68,118,.18)}
.jvcdp-chat-proposal{display:grid;gap:12px}
.jvcdp-chat-proposal__bubble{padding:18px 18px;border-radius:20px;background:linear-gradient(180deg,#f9fbfe,#f1f6fa);border:1px solid #dde8f2;line-height:1.8;color:#214864}
.jvcdp-highlight-list{margin:0;padding-left:18px;display:grid;gap:10px;line-height:1.7;color:#214864}
.jvcdp-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.jvcdp-table-wrap{overflow:auto}
.jvcdp-table{width:100%;border-collapse:collapse;min-width:520px}
.jvcdp-table th,.jvcdp-table td{padding:12px 14px;border-bottom:1px solid #e7eef5;text-align:left;vertical-align:top;font-size:13px;line-height:1.65}
.jvcdp-table th{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#5c7691;background:#f7fbfe}
.jvcdp-itinerary-stack{display:grid;gap:14px}
.jvcdp-day-card{padding:18px 18px;border-radius:20px;background:linear-gradient(180deg,#fbfdff,#f3f7fb);border:1px solid #e2ebf3}
.jvcdp-day-card h3{margin:0 0 10px;font-size:18px;color:#0c4476}
.jvcdp-day-card p,.jvcdp-section-card p{margin:0;line-height:1.8;color:#214864}
.jvcdp-result-powered{text-align:center;padding:0 20px 28px;color:#5c7691}
@media (max-width:980px){.jvcdp-result-hero,.jvcdp-grid-2{grid-template-columns:1fr}.jvcdp-result-header{flex-direction:column}.jvcdp-print-btn{align-self:flex-start}}
@media (max-width:680px){.jvt-intro-skip{top:12px;right:12px}.jvt-stage-brandline{justify-content:flex-start}.jvcdp-result-page{padding:14px}.jvcdp-result-header{padding:22px 18px}.jvcdp-stat-card,.jvcdp-section-card{padding:18px}.jvcdp-chat-proposal__bubble,.jvcdp-day-card{padding:16px}}
@media print{.jvcdp-print-btn,.jvcdp-result-powered{display:none!important}.jvcdp-result-page{padding:0}.jvcdp-result-header{box-shadow:none}}


/* v3.4 immersive visual journey */
.jvt-planner-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(320px,.72fr);gap:20px;align-items:start;max-width:1240px;margin:0 auto}
.jvt-chat-column{min-width:0}
.jvt-chat-column .jvt-thread{max-width:none;margin-top:0}
.jvt-chat-column .jvt-chip-row{justify-content:flex-start;max-width:none}
.jvt-immersive-panel{position:sticky;top:18px;background:#fff;border:1px solid rgba(12,68,118,.12);border-radius:28px;box-shadow:0 24px 60px rgba(12,68,118,.10);overflow:hidden;transition:opacity .25s ease, transform .25s ease, filter .25s ease}
.jvt-immersive-panel.is-disabled{opacity:.76;filter:saturate(.75)}
.jvt-immersive-media{position:relative;min-height:280px;background:linear-gradient(135deg,#0c4476 0%,#1f5c93 50%,#b9d4eb 100%);overflow:hidden}
.jvt-immersive-panel[data-scene-key="welcome"] .jvt-immersive-media{background:linear-gradient(135deg,#0c4476 0%,#8db5d8 55%,#f7fbff 100%)}
.jvt-immersive-panel[data-scene-key="united_kingdom"] .jvt-immersive-media{background:linear-gradient(135deg,#08162e 0%,#0c4476 38%,#4b789d 72%,#e3eef6 100%)}
.jvt-immersive-panel[data-scene-key="england"] .jvt-immersive-media,.jvt-immersive-panel[data-scene-key="london"] .jvt-immersive-media{background:linear-gradient(135deg,#0a3153 0%,#0c4476 44%,#a1c1dd 100%)}
.jvt-immersive-panel[data-scene-key="scotland"] .jvt-immersive-media{background:linear-gradient(135deg,#071625 0%,#0b3f69 42%,#6c93b1 75%,#dce8f3 100%)}
.jvt-immersive-panel[data-scene-key="wales"] .jvt-immersive-media{background:linear-gradient(135deg,#09314b 0%,#0c4476 44%,#3f7b7d 72%,#dff4f1 100%)}
.jvt-immersive-panel[data-scene-key="northern_ireland"] .jvt-immersive-media{background:linear-gradient(135deg,#0a2440 0%,#0c4476 42%,#4e84a2 78%,#e4eef6 100%)}
.jvt-immersive-panel[data-scene-key="crafting"] .jvt-immersive-media{background:linear-gradient(135deg,#08162e 0%,#0c4476 34%,#7aa4c6 100%)}
.jvt-scene-video,.jvt-scene-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:none}
.jvt-scene-poster{position:absolute;inset:0;display:block}
.jvt-scene-orb{position:absolute;right:-40px;top:-28px;width:220px;height:220px;border-radius:999px;background:radial-gradient(circle, rgba(255,255,255,.40), rgba(255,255,255,0) 65%);filter:blur(6px);animation:jvtFloatOrb 9s ease-in-out infinite}
.jvt-scene-lines{position:absolute;inset:0;background:
  linear-gradient(120deg, transparent 10%, rgba(255,255,255,.12) 10.5%, transparent 11%) 0 0/180px 180px,
  linear-gradient(300deg, transparent 35%, rgba(255,255,255,.10) 36%, transparent 36.5%) 0 0/220px 220px;
  mix-blend-mode:screen;opacity:.85}
.jvt-scene-window{position:absolute;left:22px;right:22px;bottom:22px;padding:18px 18px;border-radius:22px;background:rgba(255,255,255,.14);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.28);color:#fff;box-shadow:0 18px 44px rgba(0,0,0,.12)}
.jvt-scene-window__eyebrow{font-size:11px;letter-spacing:.18em;text-transform:uppercase;font-weight:800;color:rgba(255,255,255,.82);margin-bottom:8px}
.jvt-scene-window__title{font-size:24px;line-height:1.06;font-weight:800;letter-spacing:-.04em;margin-bottom:8px}
.jvt-scene-window__copy{font-size:13px;line-height:1.7;color:rgba(255,255,255,.9)}
.jvt-scene-overlay{position:absolute;top:16px;left:16px;right:16px;display:flex;justify-content:space-between;align-items:center;gap:10px}
.jvt-scene-badge,.jvt-scene-chip{display:inline-flex;align-items:center;gap:8px;border-radius:999px;background:rgba(255,255,255,.18);color:#fff;border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(8px);font-weight:800}
.jvt-scene-badge{width:42px;height:42px;justify-content:center;font-size:18px}
.jvt-scene-chip{padding:10px 14px;font-size:11px;letter-spacing:.08em;text-transform:uppercase}
.jvt-immersive-actions{display:flex;gap:10px;flex-wrap:wrap;padding:18px 18px 0}
.jvt-immersive-btn{border:1px solid rgba(12,68,118,.12);background:#f7fbfe;color:#0c4476;border-radius:999px;padding:10px 14px;font-size:12px;font-weight:800;cursor:pointer;box-shadow:0 10px 24px rgba(12,68,118,.06)}
.jvt-immersive-btn.is-active{background:#0c4476;color:#fff;border-color:#0c4476}
.jvt-immersive-copy{padding:18px}
.jvt-immersive-eyebrow{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#527c9f;font-weight:800;margin-bottom:10px}
.jvt-immersive-title{margin:0 0 6px;font-size:26px;line-height:1.08;letter-spacing:-.04em;color:#0c4476}
.jvt-immersive-strap{margin:0 0 10px;font-size:14px;font-weight:700;color:#234c70}
.jvt-immersive-caption{margin:0;color:#527c9f;font-size:13px;line-height:1.75}
.jvt-immersive-route{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px}
.jvt-immersive-route span{display:flex;align-items:center;justify-content:center;text-align:center;padding:11px 10px;border-radius:16px;background:#eef4f8;color:#0c4476;font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;border:1px solid #dfe9f1}
.jvt-immersive-highlights{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}
.jvt-immersive-highlights span{padding:8px 10px;border-radius:999px;background:#fff;border:1px solid rgba(12,68,118,.10);font-size:11px;color:#0c4476;box-shadow:0 8px 20px rgba(12,68,118,.05)}
.jvt-immersive-facts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}
.jvt-immersive-fact{padding:12px 14px;border-radius:18px;background:linear-gradient(180deg,#fcfeff,#f4f8fb);border:1px solid #e1ebf3}
.jvt-immersive-fact span{display:block;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#6b89a5;font-weight:800;margin-bottom:6px}
.jvt-immersive-fact strong{display:block;font-size:13px;line-height:1.55;color:#0c4476}
@keyframes jvtFloatOrb{0%,100%{transform:translateY(0)}50%{transform:translateY(18px)}}
@media (max-width:1024px){.jvt-planner-grid{grid-template-columns:1fr}.jvt-immersive-panel{position:relative;top:auto;order:-1}.jvt-chat-column .jvt-chip-row{justify-content:center}}
@media (max-width:680px){.jvt-immersive-actions,.jvt-immersive-copy{padding:14px}.jvt-immersive-title{font-size:22px}.jvt-immersive-facts{grid-template-columns:1fr}.jvt-immersive-route{grid-template-columns:1fr}.jvt-scene-window{left:14px;right:14px;bottom:14px;padding:14px}.jvt-scene-window__title{font-size:20px}}


/* === UK Animated Landscape Intro Background === */
#jvcdpIntroOverlay {
    background: linear-gradient(180deg, #ffffff 0%, #f5f8fc 100%);
    position: relative;
    overflow: hidden;
}

.jv-uk-bg {
    position: absolute;
    inset: 0;
    background: url('https://source.unsplash.com/1920x1080/?uk,landscape,mountains') center/cover no-repeat;
    opacity: 0.25;
    animation: jvPan 25s ease-in-out infinite alternate;
}

@keyframes jvPan {
    0% { transform: scale(1) translateY(0); }
    50% { transform: scale(1.05) translateY(-10px); }
    100% { transform: scale(1.1) translateY(-20px); }
}


/* === Cinematic UK Video Intro === */
.jv-uk-video-bg {
    position: absolute;
    inset: 0;
    overflow: hidden;
}
.jv-uk-video-bg video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0.35;
    filter: brightness(0.9);
}


/* === Cinematic Transitions === */
#jvcdpIntroOverlay video {
    transition: opacity 1.2s ease-in-out;
}

/* === Route Animation (basic visual line) === */
.jv-route-line {
    position: absolute;
    bottom: 40px;
    left: 10%;
    width: 80%;
    height: 2px;
    background: rgba(12,68,118,0.2);
    overflow: hidden;
}
.jv-route-line::after {
    content: '';
    display: block;
    width: 30%;
    height: 100%;
    background: #0C4476;
    animation: routeMove 4s linear infinite;
}
@keyframes routeMove {
    0% { transform: translateX(-100%); }
    100% { transform: translateX(400%); }
}


/* === v4.5 Enterprise Hologram Molly + Cinematic Map === */
.jv45-hologram {
  position: absolute;
  left: clamp(18px, 4vw, 56px);
  bottom: clamp(18px, 5vw, 72px);
  z-index: 9;
  width: min(330px, 78vw);
  padding: 18px 18px 16px;
  border: 1px solid rgba(12,68,118,.18);
  border-radius: 28px;
  background: linear-gradient(145deg, rgba(255,255,255,.78), rgba(255,255,255,.42));
  box-shadow: 0 24px 70px rgba(8,22,46,.18);
  backdrop-filter: blur(18px);
  color: #08162e;
}
.jv45-hologram::before {
  content: "";
  position:absolute;
  inset:-2px;
  border-radius: 30px;
  background: conic-gradient(from 180deg, rgba(12,68,118,.45), rgba(255,255,255,.05), rgba(12,68,118,.35), rgba(255,255,255,.05), rgba(12,68,118,.45));
  z-index:-1;
  animation: jv45Halo 8s linear infinite;
  opacity:.55;
}
@keyframes jv45Halo { to { transform: rotate(360deg); } }
.jv45-holo-head { display:flex; gap:12px; align-items:center; }
.jv45-holo-orb {
  width:62px; height:62px; border-radius:50%;
  background: radial-gradient(circle at 35% 30%, #fff, #dcecf7 35%, #0C4476 72%, #08162e);
  position:relative;
  box-shadow: 0 0 30px rgba(12,68,118,.45);
  animation: jv45Float 4.5s ease-in-out infinite;
}
.jv45-holo-orb::after {
  content:"🐻";
  position:absolute; inset:0; display:grid; place-items:center; font-size:30px;
  filter: grayscale(1) sepia(.4) hue-rotate(165deg) saturate(3);
}
@keyframes jv45Float { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-8px)} }
.jv45-holo-title { font-weight:800; color:#0C4476; font-size:16px; margin:0; }
.jv45-holo-caption { font-size:12px; line-height:1.55; margin:5px 0 0; color:#334155; }
.jv45-wave { display:flex; gap:4px; margin-top:12px; height:18px; align-items:end; }
.jv45-wave span { width:4px; border-radius:6px; background:#0C4476; animation:jv45Wave 1.1s ease-in-out infinite; opacity:.75; }
.jv45-wave span:nth-child(2){animation-delay:.12s}.jv45-wave span:nth-child(3){animation-delay:.24s}.jv45-wave span:nth-child(4){animation-delay:.36s}.jv45-wave span:nth-child(5){animation-delay:.48s}
@keyframes jv45Wave { 0%,100%{height:5px} 50%{height:18px} }
.jv45-map-layer {
  position:absolute; inset:auto 8% 22px 8%; height:90px; z-index:8; pointer-events:none;
  opacity:.9;
}
.jv45-map-layer svg { width:100%; height:100%; overflow:visible; }
.jv45-map-path {
  stroke:#0C4476; stroke-width:4; stroke-dasharray:10 12; fill:none;
  filter: drop-shadow(0 10px 16px rgba(12,68,118,.25));
  animation: jv45Dash 2.8s linear infinite;
}
@keyframes jv45Dash { to { stroke-dashoffset:-44; } }
.jv45-map-dot { fill:#fff; stroke:#0C4476; stroke-width:4; }
.jv45-returning-memory {
  margin:10px 0;
  border:1px solid rgba(12,68,118,.12);
  border-radius:18px;
  padding:10px 12px;
  background:#f8fbfe;
  color:#0C4476;
  font-size:12px;
  font-weight:700;
}
@media(max-width:760px){
  .jv45-hologram{left:12px;right:12px;bottom:18px;width:auto;padding:14px;border-radius:22px}
  .jv45-map-layer{display:none}
}


/* === v4.5.1 Intro Overlap Fix + YouTube Planning Fallback === */

/* Keep v4.5.1 design, only correct spacing/stacking and prevent overlap */
#jvcdpIntroOverlay.jvt-intro-overlay,
#jvcdpIntroOverlay {
  overflow-y: auto !important;
  overflow-x: hidden !important;
  padding: clamp(18px, 4vw, 44px) !important;
  align-items: center !important;
}

#jvcdpIntroOverlay .jvt-intro-card {
  position: relative !important;
  z-index: 20 !important;
  margin: clamp(24px, 4vw, 54px) auto !important;
  padding-top: clamp(34px, 5vw, 58px) !important;
  padding-bottom: clamp(28px, 4vw, 48px) !important;
  max-width: min(760px, 94vw) !important;
  overflow: visible !important;
}

#jvcdpIntroOverlay .jvt-intro-skip {
  position: absolute !important;
  top: 18px !important;
  right: 18px !important;
  z-index: 50 !important;
}

#jvcdpIntroOverlay .jvt-intro-video-wrap {
  position: relative !important;
  z-index: 2 !important;
  margin-left: auto !important;
  margin-right: auto !important;
  margin-bottom: 22px !important;
  max-width: min(300px, 62vw) !important;
  max-height: min(300px, 62vw) !important;
}

#jvcdpIntroOverlay .jvt-intro-avatar-badge {
  z-index: 8 !important;
  pointer-events: none !important;
}

#jvcdpIntroOverlay .jvt-intro-eyebrow,
#jvcdpIntroOverlay .jvt-intro-title,
#jvcdpIntroOverlay .jvt-intro-copy {
  position: relative !important;
  z-index: 10 !important;
  overflow-wrap: anywhere !important;
  text-wrap: balance;
}

#jvcdpIntroOverlay .jvt-intro-title {
  line-height: 1.04 !important;
  margin-top: 12px !important;
  margin-bottom: 14px !important;
  max-width: 720px !important;
}

#jvcdpIntroOverlay .jvt-intro-copy {
  max-width: 620px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* keep v4.5.1 hologram/map icon layer but make sure it does not cover Molly intro text */
#jv45Hologram {
  z-index: 4 !important;
  max-width: min(310px, 84vw) !important;
  pointer-events: none !important;
}
#jv45MapLayer {
  z-index: 3 !important;
  pointer-events: none !important;
}

/* YouTube fallback inside interactive planning visual panel */
.jvt-immersive-media {
  position: relative !important;
  isolation: isolate !important;
}
.jv451-youtube-fallback {
  position: absolute;
  inset: 0;
  z-index: 0;
  background: #0C4476;
  overflow: hidden;
}
.jv451-youtube-fallback iframe,
.jv451-youtube-fallback video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  object-fit: cover;
  opacity: .58;
  transform: scale(1.12);
  pointer-events: none;
}
.jv451-youtube-fallback video { object-fit: cover; }
.jv451-youtube-fallback::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(8,22,46,.05), rgba(8,22,46,.72)),
    radial-gradient(circle at 20% 15%, rgba(255,255,255,.18), transparent 30%);
  pointer-events: none;
}
.jv451-youtube-credit {
  position: absolute;
  right: 14px;
  bottom: 12px;
  z-index: 5;
  color: rgba(255,255,255,.88);
  background: rgba(8,22,46,.56);
  border: 1px solid rgba(255,255,255,.20);
  border-radius: 999px;
  padding: 7px 11px;
  font-size: 11px;
  line-height: 1.2;
  font-weight: 700;
  backdrop-filter: blur(10px);
}
.jvt-scene-video,
.jvt-scene-image,
.jvt-scene-poster,
.jvt-scene-overlay {
  position: relative;
  z-index: 2;
}
.jvt-scene-video:not([src]),
.jvt-scene-image:not([src]) {
  display: none;
}
@media (max-width: 760px) {
  #jvcdpIntroOverlay {
    align-items: flex-start !important;
    padding: 18px !important;
  }
  #jvcdpIntroOverlay .jvt-intro-card {
    margin-top: 22px !important;
    padding-top: 70px !important;
  }
  #jv45Hologram {
    opacity: .82 !important;
    transform: scale(.88) !important;
    transform-origin: left bottom !important;
  }
  .jv451-youtube-credit {
    left: 12px;
    right: 12px;
    text-align: center;
    border-radius: 16px;
  }
}


/* === v4.5.1 Primary Colour Molly Intro — No Skip === */
#jvcdpIntroOverlay,
.jvt-intro-overlay {
  background: #0C4476 !important;
  background-image:
    radial-gradient(circle at 14% 18%, rgba(255,255,255,.15), transparent 28%),
    radial-gradient(circle at 86% 16%, rgba(255,255,255,.10), transparent 30%),
    linear-gradient(135deg, #0C4476 0%, #08162e 100%) !important;
  color: #ffffff !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  padding: clamp(20px, 4vw, 48px) !important;
}
#jvcdpIntroSkip,
.jvt-intro-skip {
  display: none !important;
}
#jvcdpIntroOverlay .jvt-intro-card {
  background: rgba(255,255,255,.08) !important;
  border: 1px solid rgba(255,255,255,.26) !important;
  color: #ffffff !important;
  box-shadow: 0 34px 100px rgba(0,0,0,.28) !important;
  backdrop-filter: blur(18px) !important;
  padding: clamp(28px, 4vw, 52px) !important;
  max-width: min(820px, 94vw) !important;
  overflow: visible !important;
}
#jvcdpIntroOverlay .jvt-intro-title,
#jvcdpIntroTitle {
  color: #ffffff !important;
  text-shadow: 0 16px 42px rgba(0,0,0,.24) !important;
  line-height: 1.04 !important;
  overflow-wrap: anywhere !important;
}
#jvcdpIntroOverlay .jvt-intro-copy,
#jvcdpIntroCopy {
  color: rgba(255,255,255,.92) !important;
  font-weight: 600 !important;
  line-height: 1.6 !important;
}
#jvcdpIntroOverlay .jvt-intro-eyebrow {
  color: rgba(255,255,255,.82) !important;
  font-weight: 900 !important;
}
#jvcdpIntroOverlay .jvt-intro-video-wrap {
  border: 2px solid rgba(255,255,255,.42) !important;
  background: rgba(255,255,255,.14) !important;
  box-shadow: 0 24px 78px rgba(0,0,0,.25), 0 0 0 16px rgba(255,255,255,.06) !important;
  margin-bottom: 24px !important;
}
#jvcdpIntroOverlay .jvt-intro-avatar-badge {
  background: #ffffff !important;
  border: 4px solid rgba(255,255,255,.70) !important;
  box-shadow: 0 18px 50px rgba(0,0,0,.22) !important;
}
@media (max-width: 680px) {
  #jvcdpIntroOverlay .jvt-intro-card {
    padding: 28px 18px 30px !important;
    margin-top: 14px !important;
  }
}


/* === HARD FIX v4.5.1: Intro primary colour + no overlapping + no skip === */
html body #jvcdpPlannerShell #jvcdpIntroOverlay.jv451-primary-intro-fixed,
html body #jvcdpIntroOverlay.jv451-primary-intro-fixed,
html body .jv451-primary-intro-fixed {
  background: #0C4476 !important;
  background-image:
    radial-gradient(circle at 12% 16%, rgba(255,255,255,.16), transparent 28%),
    radial-gradient(circle at 88% 20%, rgba(255,255,255,.10), transparent 30%),
    linear-gradient(135deg, #0C4476 0%, #08162e 100%) !important;
  color: #ffffff !important;
  position: fixed !important;
  inset: 0 !important;
  z-index: 999999 !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: clamp(18px, 4vw, 48px) !important;
  box-sizing: border-box !important;
}

html body #jvcdpIntroOverlay.jv451-primary-intro-fixed .jvt-intro-card {
  position: relative !important;
  z-index: 50 !important;
  width: min(820px, 94vw) !important;
  margin: 0 auto !important;
  padding: clamp(28px, 4vw, 54px) !important;
  border-radius: 34px !important;
  background: rgba(255,255,255,.08) !important;
  border: 1px solid rgba(255,255,255,.28) !important;
  box-shadow: 0 34px 110px rgba(0,0,0,.30) !important;
  backdrop-filter: blur(18px) !important;
  color: #ffffff !important;
  text-align: center !important;
  overflow: visible !important;
}

html body #jvcdpIntroOverlay.jv451-primary-intro-fixed #jvcdpIntroSkip,
html body #jvcdpIntroOverlay.jv451-primary-intro-fixed .jvt-intro-skip {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

html body #jvcdpIntroOverlay.jv451-primary-intro-fixed .jvt-intro-video-wrap {
  width: min(280px, 58vw) !important;
  height: min(280px, 58vw) !important;
  margin: 0 auto 24px !important;
  border-radius: 50% !important;
  border: 2px solid rgba(255,255,255,.46) !important;
  background: rgba(255,255,255,.14) !important;
  box-shadow: 0 26px 80px rgba(0,0,0,.26), 0 0 0 16px rgba(255,255,255,.06) !important;
  overflow: hidden !important;
  position: relative !important;
  z-index: 4 !important;
}

html body #jvcdpIntroOverlay.jv451-primary-intro-fixed .jvt-intro-avatar-badge {
  position: relative !important;
  z-index: 8 !important;
  margin: -42px auto 18px !important;
  transform: none !important;
  background: #ffffff !important;
  border: 4px solid rgba(255,255,255,.72) !important;
  box-shadow: 0 18px 52px rgba(0,0,0,.24) !important;
}

html body #jvcdpIntroOverlay.jv451-primary-intro-fixed .jvt-intro-eyebrow {
  color: rgba(255,255,255,.85) !important;
  font-weight: 900 !important;
  letter-spacing: .18em !important;
  text-transform: uppercase !important;
  margin: 0 0 12px !important;
  position: relative !important;
  z-index: 9 !important;
}

html body #jvcdpIntroOverlay.jv451-primary-intro-fixed .jvt-intro-title,
html body #jvcdpIntroOverlay.jv451-primary-intro-fixed #jvcdpIntroTitle {
  color: #ffffff !important;
  font-size: clamp(30px, 5vw, 58px) !important;
  line-height: 1.04 !important;
  letter-spacing: -0.045em !important;
  margin: 0 auto 16px !important;
  max-width: 720px !important;
  text-shadow: 0 16px 42px rgba(0,0,0,.28) !important;
  position: relative !important;
  z-index: 10 !important;
  overflow-wrap: anywhere !important;
}

html body #jvcdpIntroOverlay.jv451-primary-intro-fixed .jvt-intro-copy,
html body #jvcdpIntroOverlay.jv451-primary-intro-fixed #jvcdpIntroCopy {
  color: rgba(255,255,255,.93) !important;
  font-size: clamp(16px, 2vw, 22px) !important;
  line-height: 1.58 !important;
  margin: 0 auto !important;
  max-width: 650px !important;
  font-weight: 600 !important;
  position: relative !important;
  z-index: 10 !important;
}

html body #jvcdpIntroOverlay.jv451-primary-intro-fixed #jv45Hologram,
html body #jvcdpIntroOverlay.jv451-primary-intro-fixed #jv45MapLayer {
  display: none !important;
}

@media (max-width: 680px) {
  html body #jvcdpIntroOverlay.jv451-primary-intro-fixed {
    align-items: flex-start !important;
    padding: 18px !important;
  }
  html body #jvcdpIntroOverlay.jv451-primary-intro-fixed .jvt-intro-card {
    margin-top: 18px !important;
    padding: 26px 18px 30px !important;
    border-radius: 26px !important;
  }
  html body #jvcdpIntroOverlay.jv451-primary-intro-fixed .jvt-intro-video-wrap {
    width: 210px !important;
    height: 210px !important;
  }
}


/* === v4.5.1 Interactive Header Image Background + Mobile Friendly === */

/* Desktop keeps current two-column layout, but visual section uses full image background */
.jvt-immersive-media.jv451-image-visual-media,
#jvcdpImmersiveMedia.jv451-image-visual-media {
  position: relative !important;
  min-height: 430px !important;
  background-color: #0C4476 !important;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  overflow: hidden !important;
  isolation: isolate !important;
}

#jvcdpImmersiveMedia.jv451-image-visual-media::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 0 !important;
  background:
    radial-gradient(circle at 18% 14%, rgba(255,255,255,.18), transparent 26%),
    linear-gradient(180deg, rgba(8,22,46,.08), rgba(8,22,46,.58)) !important;
  pointer-events: none !important;
}

#jvcdpImmersiveMedia.jv451-image-visual-media .jvt-scene-video,
#jvcdpImmersiveMedia.jv451-image-visual-media .jv451-youtube-fallback,
#jvcdpImmersiveMedia.jv451-image-visual-media .jv451-video-fallback,
#jvcdpImmersiveMedia.jv451-image-visual-media iframe {
  display: none !important;
}

#jvcdpImmersiveMedia.jv451-image-visual-media .jvt-scene-image {
  display: none !important;
}

#jvcdpImmersiveMedia.jv451-image-visual-media .jvt-scene-poster,
#jvcdpImmersiveMedia.jv451-image-visual-media .jvt-scene-overlay,
#jvcdpImmersiveMedia.jv451-image-visual-media .jv451-image-credit {
  position: relative !important;
  z-index: 3 !important;
}

#jvcdpImmersiveMedia.jv451-image-visual-media .jvt-scene-poster {
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
  background: transparent !important;
  pointer-events: none !important;
}

#jvcdpImmersiveMedia.jv451-image-visual-media .jvt-scene-window {
  position: absolute !important;
  left: 22px !important;
  right: 22px !important;
  bottom: 22px !important;
  background: rgba(255,255,255,.88) !important;
  color: #08162e !important;
  border: 1px solid rgba(255,255,255,.45) !important;
  border-radius: 24px !important;
  padding: 18px !important;
  box-shadow: 0 22px 64px rgba(0,0,0,.22) !important;
  backdrop-filter: blur(14px) !important;
}

#jvcdpImmersiveMedia.jv451-image-visual-media .jvt-scene-window__eyebrow {
  color: #0C4476 !important;
  font-weight: 900 !important;
}

#jvcdpImmersiveMedia.jv451-image-visual-media .jvt-scene-window__title {
  color: #08162e !important;
  font-weight: 900 !important;
}

#jvcdpImmersiveMedia.jv451-image-visual-media .jvt-scene-window__copy {
  color: #334155 !important;
  font-weight: 600 !important;
}

.jv451-image-credit {
  position: absolute !important;
  right: 14px !important;
  top: 14px !important;
  z-index: 8 !important;
  background: rgba(8,22,46,.58) !important;
  color: rgba(255,255,255,.94) !important;
  border: 1px solid rgba(255,255,255,.20) !important;
  border-radius: 999px !important;
  padding: 7px 12px !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  backdrop-filter: blur(10px) !important;
}

.jvt-planner-grid {
  align-items: stretch !important;
}

.jvt-immersive-panel {
  overflow: hidden !important;
}

/* Mobile viewers: keep content readable and make visual section full-width before/after chat cleanly */
@media (max-width: 900px) {
  .jvt-planner-grid {
    display: flex !important;
    flex-direction: column !important;
    gap: 18px !important;
  }

  .jvt-immersive-panel {
    order: -1 !important;
    width: 100% !important;
    border-radius: 26px !important;
  }

  .jvt-chat-column {
    width: 100% !important;
    border-radius: 26px !important;
  }

  .jvt-immersive-media.jv451-image-visual-media,
  #jvcdpImmersiveMedia.jv451-image-visual-media {
    min-height: 320px !important;
    background-position: center center !important;
  }

  #jvcdpImmersiveMedia.jv451-image-visual-media .jvt-scene-window {
    left: 14px !important;
    right: 14px !important;
    bottom: 14px !important;
    border-radius: 20px !important;
    padding: 14px !important;
  }

  #jvcdpImmersiveMedia.jv451-image-visual-media .jvt-scene-window__title {
    font-size: 20px !important;
    line-height: 1.1 !important;
  }

  #jvcdpImmersiveMedia.jv451-image-visual-media .jvt-scene-window__copy {
    font-size: 12px !important;
    line-height: 1.45 !important;
  }

  .jv451-image-credit {
    left: 12px !important;
    right: 12px !important;
    top: 12px !important;
    text-align: center !important;
    border-radius: 16px !important;
  }

  .jvt-immersive-actions {
    display: flex !important;
    gap: 8px !important;
    flex-wrap: wrap !important;
  }

  .jvt-immersive-btn {
    flex: 1 1 140px !important;
  }
}

@media (max-width: 520px) {
  .jvt-chat-stage {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }

  .jvt-immersive-media.jv451-image-visual-media,
  #jvcdpImmersiveMedia.jv451-image-visual-media {
    min-height: 280px !important;
  }

  #jvcdpImmersiveMedia.jv451-image-visual-media .jvt-scene-window {
    padding: 12px !important;
  }

  .jvt-immersive-title {
    font-size: 24px !important;
  }

  .jvt-immersive-caption {
    font-size: 13px !important;
  }
}


/* === v4.5.1 remove fallback video and credit === */
.jv451-youtube-fallback,
.jv451-video-fallback,
.jv451-image-credit {
  display: none !important;
}
