/* Scoped to this shortcode, so existing theme and JWS forms are untouched. */
.tlv-booking{--tlv-accent:#a47b27;--tlv-text:#172026;--tlv-background:#fff;--tlv-button:#192328;--tlv-ink:var(--tlv-text);--tlv-line:#dddfe2;max-width:1040px;margin:32px auto;padding:32px;background:var(--tlv-background);color:var(--tlv-ink);border:1px solid var(--tlv-line);border-radius:20px;font:16px/1.6 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;text-align:left}
.tlv-booking *{box-sizing:border-box}
.tlv-booking [hidden]{display:none!important}
.tlv-booking header{margin-bottom:32px}
.tlv-booking h2{font-size:clamp(28px,4vw,42px);line-height:1.2;margin:12px 0;color:var(--tlv-ink)}
.tlv-booking h3{font-size:20px;line-height:1.4;margin:0 0 12px;color:var(--tlv-ink)}
.tlv-booking p{margin:10px 0}
.tlv-booking .tlv-eyebrow{color:#795b1e;font-size:12px;font-weight:700;letter-spacing:2px}
.tlv-booking fieldset{border:0;padding:0;margin:28px 0;min-width:0}
.tlv-booking legend{padding:0;margin-bottom:16px;font-size:20px;font-weight:700;float:none;width:auto}
.tlv-booking .tlv-packages{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.tlv-booking .tlv-sizes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.tlv-booking .tlv-card{position:relative;display:flex;gap:12px;padding:18px;border:1px solid var(--tlv-line);border-radius:12px;cursor:pointer;align-items:flex-start;transition:border-color .15s,background .15s;min-width:0}
.tlv-booking .tlv-card:has(input:checked){border-color:var(--tlv-accent);background:#fcf8ee;box-shadow:0 0 0 1px var(--tlv-accent)}
.tlv-booking .tlv-card-content{display:flex;flex-direction:column;gap:5px;overflow-wrap:anywhere}
.tlv-booking .tlv-card-price{font-size:22px;font-weight:700}
.tlv-booking small{font-size:12px;color:#586168}
.tlv-booking input[type=radio],.tlv-booking input[type=checkbox]{appearance:auto;width:18px;height:18px;min-width:18px;margin:4px 0 0;accent-color:var(--tlv-accent)}
.tlv-booking .tlv-details{padding:24px;border-radius:12px;background:#f5f6f7}
.tlv-booking .tlv-total{font-size:32px;font-weight:750;color:#74551b}
.tlv-booking .tlv-features{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 28px;padding-left:20px;margin:20px 0 0}
.tlv-booking .tlv-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.tlv-booking .tlv-fields label,.tlv-booking .tlv-address{display:flex;flex-direction:column;gap:7px;font-weight:600;min-width:0}
.tlv-booking input:not([type=radio]):not([type=checkbox]),.tlv-booking textarea,.tlv-booking select{font:inherit;color:var(--tlv-ink);background:white;border:1px solid #afb5ba;border-radius:8px;padding:12px;width:100%;min-width:0;line-height:1.5;height:auto;box-shadow:none}
.tlv-booking :focus-visible{outline:3px solid #8d671e;outline-offset:3px}
.tlv-booking .tlv-collection{display:flex;align-items:center;gap:12px;margin:22px 0;cursor:pointer;font-weight:600}
.tlv-booking .tlv-collection span{color:#23643d;background:#eaf5ee;border-radius:20px;padding:2px 10px;font-size:13px}
.tlv-booking .tlv-review{border-top:1px solid var(--tlv-line);padding-top:24px;margin-top:24px}
.tlv-booking .tlv-disclaimer,.tlv-booking .tlv-timezone,.tlv-booking .tlv-pricing-note{color:#586168;font-size:14px}
.tlv-booking .tlv-submit,.tlv-booking .tlv-whatsapp,.tlv-booking .tlv-next,.tlv-booking .tlv-back,.tlv-booking .tlv-confirmation-link{display:inline-block;font:700 16px/1.5 system-ui,sans-serif;border:0;border-radius:9px;padding:15px 24px;background:var(--tlv-button);color:white;cursor:pointer;text-decoration:none;margin-top:14px}
.tlv-booking .tlv-whatsapp{background:#17643a}
.tlv-booking .tlv-submit:disabled{opacity:.55;cursor:wait}
.tlv-booking .tlv-result:not(:empty){padding:22px;margin-top:20px;border-radius:10px;background:#edf7f0}
.tlv-booking .tlv-result.tlv-error{background:#fff0ed;color:#8a251a}
.tlv-booking .tlv-trap{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
@media(max-width:640px){.tlv-booking{padding:20px 16px;margin:16px auto}.tlv-booking .tlv-packages,.tlv-booking .tlv-sizes,.tlv-booking .tlv-fields,.tlv-booking .tlv-features{grid-template-columns:1fr}.tlv-booking .tlv-submit{width:100%}.tlv-booking .tlv-card{padding:15px}}
.tlv-booking .tlv-steps{display:flex;gap:8px;list-style:none;padding:0;margin:0 0 28px;counter-reset:tlv-step}.tlv-booking .tlv-steps li{flex:1;padding:12px 8px;border-bottom:3px solid #dedede;font-size:14px;counter-increment:tlv-step}.tlv-booking .tlv-steps li:before{content:counter(tlv-step) '. ';font-weight:700}.tlv-booking .tlv-steps li.tlv-current{border-color:var(--tlv-accent);font-weight:700}.tlv-booking .tlv-navigation{display:flex;justify-content:space-between;gap:12px}.tlv-booking .tlv-next{margin-left:auto}.tlv-booking .tlv-back{background:#e9ebed;color:#172026}.tlv-booking .tlv-package-image{width:100%;height:150px;object-fit:cover;border-radius:8px;margin-bottom:8px}.tlv-booking .tlv-card-content{flex:1}.tlv-booking .tlv-card:has(input:checked){background:var(--tlv-background)}.tlv-booking .tlv-confirmation-link{margin-right:12px}.tlv-booking .tlv-portal dd{margin:0}.tlv-portal dl{display:grid;grid-template-columns:160px 1fr;gap:10px}.tlv-portal dt{font-weight:700}.tlv-portal dd{margin:0;overflow-wrap:anywhere}.tlv-portal form label{display:block;margin:12px 0}.tlv-booking .tlv-details,.tlv-booking .tlv-result:not(:empty){color:#172026}@media(max-width:640px){.tlv-booking .tlv-steps li{font-size:12px;padding:8px 2px}.tlv-portal dl{grid-template-columns:1fr}.tlv-portal dd{margin-bottom:12px}}
.tlv-booking .tlv-time-picker{display:flex;gap:8px;flex-wrap:wrap}.tlv-booking .tlv-time-picker select{flex:1;min-width:70px;width:auto}.tlv-booking .tlv-policy{padding:16px;background:#eef6f3;border-left:4px solid #28816f;border-radius:5px;color:#21594d}
.tlv-progress{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;list-style:none;padding:0!important;margin:24px 0!important}.tlv-progress li{text-align:center;font-size:12px;color:#637783;padding:14px 5px;background:#f1f4f5;border-radius:8px}.tlv-progress li span{display:block;width:26px;height:26px;line-height:26px;margin:0 auto 8px;border-radius:50%;background:#e1e8eb;font-weight:700}.tlv-progress li.is-reached{background:#e8f5ee;color:#276347}.tlv-progress li.is-reached span{background:#247752;color:white}.tlv-booking .tlv-email-consent{display:flex;align-items:center;gap:10px;margin:12px 0;font-size:13px}.tlv-booking .tlv-email-consent input{width:18px;height:18px;flex-shrink:0}.tlv-expiry-policy{color:#855b14;font-size:13px}@media(max-width:480px){.tlv-progress{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Country flags are local SVG assets and do not depend on emoji fonts. */
.tlv-booking .tlv-phone-field{min-width:0;display:flex;flex-direction:column;gap:7px}
.tlv-booking .tlv-phone-control{display:flex;gap:0;position:relative;min-width:0}
.tlv-booking .tlv-phone-country{position:relative;flex:0 0 auto;min-width:0;max-width:55%}
.tlv-booking .tlv-country-toggle{display:flex;align-items:center;gap:7px;width:100%;height:100%;min-height:48px;border:1px solid var(--tlv-line);border-right:0;border-radius:9px 0 0 9px;padding:10px;background:#f6f7f8;color:#172026;font:500 13px/1.4 system-ui,sans-serif;white-space:nowrap;text-transform:none;letter-spacing:normal;box-shadow:none}
.tlv-booking .tlv-country-toggle .tlv-country-name{display:none}
.tlv-booking .tlv-phone-control>input{flex:1;min-width:0;width:0;margin:0;border-radius:0 9px 9px 0;min-height:48px;direction:ltr;text-align:left}
.tlv-booking .tlv-country-flag{width:24px!important;height:18px!important;max-width:none;object-fit:cover;border-radius:2px;box-shadow:0 0 0 1px #00000012;flex:none;margin:0}
.tlv-booking .tlv-country-list{position:absolute;z-index:30;top:calc(100% + 6px);left:0;width:260px;max-width:calc(100vw - 84px);margin:0;padding:5px;list-style:none;background:white;border:1px solid #d7dfe4;border-radius:10px;box-shadow:0 10px 28px #17202626;color:#172026}
.tlv-booking .tlv-country-list li{margin:0;padding:0;list-style:none}
.tlv-booking .tlv-country-list button{display:flex;align-items:center;gap:9px;width:100%;padding:11px 9px;border:0;border-radius:6px;background:white;color:#172026;font:500 14px/1.4 system-ui,sans-serif;text-align:left;text-transform:none;letter-spacing:normal;box-shadow:none}
.tlv-booking .tlv-country-list .tlv-country-name{flex:1}.tlv-booking .tlv-country-dial{font-variant-numeric:tabular-nums}
.tlv-booking .tlv-country-list button:hover,.tlv-booking .tlv-country-list button:focus,.tlv-booking .tlv-country-list button[aria-selected=true]{background:#edf5f3;color:#154943}
.tlv-booking .tlv-country-toggle:focus-visible,.tlv-booking .tlv-country-list button:focus-visible{outline:2px solid var(--tlv-accent);outline-offset:2px}
.tlv-booking .tlv-phone-hint{font-weight:400;line-height:1.5}

.tlv-booking .tlv-extra-choice{display:flex;align-items:center;gap:14px;border:1px solid #dbe2e5;border-radius:10px;padding:16px;margin:10px 0;cursor:pointer}.tlv-booking .tlv-extra-choice input{width:20px;flex:0 0 20px}.tlv-booking .tlv-extra-choice small{display:block;color:#54646c;margin-top:5px}.tlv-booking .tlv-extra-choice:has(input:checked){border-color:var(--tlv-accent);background:#faf8f2}.tlv-booking .tlv-offer-section{border:1px solid #e1e6e8;border-radius:12px;padding:20px;margin-bottom:20px}.tlv-booking .tlv-apply-offer{background:#eef2f3;color:#172026;padding:12px 18px;border:0;border-radius:8px;cursor:pointer}.tlv-booking .tlv-commerce-summary{padding:22px;background:#f5f7f8;border-radius:12px;margin:20px 0}.tlv-booking .tlv-commerce-summary .button{display:inline-block;padding:12px 16px;background:var(--tlv-button);color:#fff;border-radius:8px;text-decoration:none}.tlv-booking .tlv-duration{font-weight:700}
.tlv-wa-required-policy:not(:empty),.tlv-wa-required{padding:18px!important;border:1px solid #79b993!important;border-radius:12px;background:#edf9f1!important;color:#174c2d!important;line-height:1.7}.tlv-wa-required-policy:empty{display:none}
