/* VIVO: midnight blue, saturated emerald, brand Montserrat. */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&display=swap');
:root{--navy:#f2f7ff;--emerald:#48e0b2;--paper:#0b1427;--muted:#adbed3;--line:#2b3e59}body{background:#0b1427;color:#f2f7ff;font-family:Montserrat,sans-serif}h1,h2,h3{font-family:Montserrat,sans-serif}h1{font-weight:700}h1 em{color:#48e0b2;font-weight:600}.app-header{background:#0b1427;border-bottom:1px solid #25364d}.app-header .chat-link{border-color:#42617a;background:#13253b;color:#e4f1ff}.header-label{color:#9db4ce}.app-layout{background:radial-gradient(ellipse at 80% 0,#10334855,transparent 48%)}.nav-intro{color:#aec1d6}.nav-intro strong{color:#fff}#progress button:disabled{color:#7e94af}#progress button span{border-color:#314761;color:#b8cbe1}#progress button.active{background:#0d483f;color:#68efc4}#progress button.active span{background:#13b58a;border-color:#13b58a;color:#041d19}#progress button.done span{background:#103e36;color:#64e3be;border-color:#2f7161}.nav-bottom{color:#a0b6cc}.nav-bottom a{color:#63dfbb}.step-caption,.step-caption span{color:#a8bfd7}.step-caption span{border-color:#37516b}.welcome-tag,.eyebrow{color:#5ee3ba}.intro{color:#b9cce0}.time-note{color:#9db9cc;flex-wrap:wrap}.form-card,.companion-plan,.summary-card{background:#14243c;border-color:#30465f;box-shadow:0 12px 30px #00000012}.form-card label{color:#dce9f7}select{background:#0c1b30;color:#eff7ff;border-color:#405b76;color-scheme:dark}.error{color:#ffb2ba}.companion-photo{border:1px solid #36536c}.companion-photo:after{background:linear-gradient(transparent 20%,#07182bf0)}.companion-plan p{color:#abc3db}.mini-total{border-color:#314760;color:#d3e5f5}.mini-total strong{color:#5ae0b5}.review-snippet p{color:#c5d7e7}.review-snippet small{color:#9db5cd}.review-snippet a,.quote{color:#66e7bd}.bottom-bar{background:#0d1b30f5;border-color:#344b66}.bar-total small{color:#a6bdd4}.bar-total strong{color:#5ae3b6}.primary{background:#10b68a;color:#042c22;border:1px solid #42d8ae;font-weight:700;text-decoration:none;text-align:center;display:inline-flex;align-items:center;justify-content:center;line-height:1.5}.primary:hover{background:#55e2b7;color:#04271e}.back{color:#cadbed}.goal,.extra,.future,.learn-actions>button{background:#152640;border-color:#314b67;color:#f1f7ff}.goal b{color:#64d7b3}.goal.selected,.extra.selected,.future.selected{background:#104a40;border-color:#39d7a8;box-shadow:inset 0 0 0 1px #39d7a8}.goal.selected b{color:#8cf2ce}.quiet-note,.handover-note{background:#123b3b;color:#c5eee2;border-color:#34d0a2}.placement{background:#143c40;border:1px solid #2b6763}.placement p,.placement small{color:#b9dcd4}.placement-visual span{background:#13b58a;color:#052e24;box-shadow:0 0 0 4px #20564d}.learn-actions small,details p{color:#adc7da}.icon-tile{background:#164c43;color:#72efc3}details{border-color:#2b455e}.extra-name small{color:#b4cbd8}.extra-check{border-color:#51766f;color:#74e9c2}.extra.selected .extra-check{background:#46dcae;color:#063429}.price{color:#6cebc2}.fine{color:#adc0d3}.tag{color:#7cddc3}.future p{color:#c0d1df}.future.skip span{color:#c4ddd7}.summary-title{color:#7cdec2;border-color:#2c455f}.summary-title button{color:#80f0ca}.summary-card p,.summary-card>small{color:#b1c8da}.cost-total{border-color:#34536b}.cost-total strong{color:#6beabe}.text-button{color:#71e5c0}dialog{background:#101f35;color:#edf6ff;border:1px solid #416079}dialog::backdrop{background:#020a18e8}dialog a{color:#7ce7c6}#close-media{background:#10b68a;color:#04271e}.modal-gallery img{background:#1d2e46}.upgrade-spotlight{display:grid;grid-template-columns:1.3fr .7fr;overflow:hidden;border:1px solid #40b797;background:linear-gradient(125deg,#0a5646,#123043);border-radius:14px;margin:26px 0 24px}.spotlight-copy{padding:26px}.upgrade-spotlight h2{font-size:25px;line-height:1.25;letter-spacing:-.8px;margin:13px 0}.upgrade-spotlight p{font-size:12px;color:#d7eee7;line-height:1.8}.upgrade-spotlight>img{width:100%;height:100%;object-fit:cover;min-height:240px}.value-tag{display:inline-block;font-size:10px;font-weight:600;color:#b9f4dc;background:#0a2f2c80;padding:7px 10px;border-radius:5px}.spotlight-add{display:block;width:100%;margin-top:16px;background:#62e5b9;color:#05362b;border:0;border-radius:7px;padding:13px 10px;font-size:11px;font-weight:700}.extra-thumbnail{width:48px;height:48px;border-radius:7px;object-fit:cover;flex-shrink:0}.extra-check{width:22px;height:22px;font-size:12px}.extra-price{text-align:right;flex-shrink:0}.extra-price small{display:block;font-size:9px;color:#83daba;margin-top:6px}.reserve-inline{width:100%;margin-top:22px}.package-action{display:block;border-top:1px solid #42615c;padding-top:13px;margin-top:18px;font-size:11px;font-weight:600;color:#7ae9c2}.inline-comparisons{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-top:25px}.inline-comparisons button{padding:0;border:1px solid #3c5570;background:#14243b;border-radius:10px;overflow:hidden;color:#e2f1ff}.inline-comparisons img{width:100%;height:180px;object-fit:contain;background:#252b39;display:block}.inline-comparisons span{display:block;font-size:10px;padding:12px}.header-label{letter-spacing:1.6px}
@media(max-width:600px){#progress button{background:#304761}#progress button.active,#progress button.done{background:#38d5a5}.upgrade-spotlight{grid-template-columns:1fr 100px}.spotlight-copy{padding:18px}.upgrade-spotlight h2{font-size:22px}.upgrade-spotlight>img{min-height:260px}.upgrade-spotlight p{font-size:11px}.spotlight-add{font-size:10px}.extra{flex-wrap:wrap;gap:10px}.extra-thumbnail{width:37px;height:43px}.extra-check{width:18px;height:18px}.extra-name{flex-basis:calc(100% - 90px)}.extra-price{width:100%;display:flex;align-items:center;justify-content:space-between;padding-left:65px}.extra-price small{margin:0;font-size:10px}.price{font-size:16px}.inline-comparisons img{height:150px}.primary{font-size:11px}.time-note{font-size:10px;gap:7px}}

/* Stable selection states: cards retain their dimensions and document position. */
[hidden]{display:none!important}.reservation-slot{min-height:80px}.reservation-slot .reserve-inline{min-height:50px}.extra{min-height:90px}.extra-price small{min-width:104px}.spotlight-add{min-height:44px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}html{scrollbar-gutter:stable}.goal,.extra,.future,.spotlight-add{touch-action:manipulation}.inline-comparisons img,.modal-gallery img{aspect-ratio:1/1}.goal,.extra,.future{transition:background-color .12s,border-color .12s}.extra.selected .extra-price small{color:#a3f2d8}@media(max-width:600px){.extra{min-height:123px}.reservation-slot{min-height:85px}}@media(prefers-reduced-motion:reduce){.goal,.extra,.future{transition:none}}
