/* Hubtrip campaign. Reuses the public site's stone palette, typography and white CTAs. */
@property --ht-bf-angle { syntax: '<angle>'; initial-value: 0deg; inherits: false; }
.ht-bf-floating,.ht-bf-dialog,.ht-bf-page { --bf-green:#22c55e; --bf-gold:#c9a24d; color:#fafaf9; font-family:Inter,Arial,sans-serif; }
.ht-bf-floating[hidden],.ht-bf-success[hidden],.ht-bf-form[hidden],.ht-bf-btn[hidden],[data-bf-introduction][hidden] { display:none!important; }
.ht-bf-floating { position:fixed; z-index:45; left:max(20px,env(safe-area-inset-left)); bottom:max(24px,env(safe-area-inset-bottom)); display:flex; align-items:center; gap:11px; border:1px solid #ffffff33; border-radius:999px; padding:13px 18px; background:linear-gradient(115deg,#ffffff29,#ffffff0a),#121110df; backdrop-filter:blur(14px) saturate(150%); -webkit-backdrop-filter:blur(14px) saturate(150%); box-shadow:inset 0 1px 0 #ffffff2e,0 4px 24px #0005; font-size:12px; line-height:1.2; cursor:pointer; overflow:hidden; isolation:isolate; animation:ht-bf-breathe 3.6s ease-in-out infinite; transition:transform .2s; }
.ht-bf-floating::before,.ht-bf-dialog::before { content:''; position:absolute; inset:0; border:1px solid transparent; border-radius:inherit; background:conic-gradient(from var(--ht-bf-angle),transparent 35%,#ffffffb3 52%,var(--bf-green) 58%,transparent 65%) border-box; mask:linear-gradient(#000 0 0) padding-box,linear-gradient(#000 0 0); mask-composite:exclude; pointer-events:none; animation:ht-bf-ring 3.2s linear infinite; }
.ht-bf-floating::after,.ht-bf-submit::after { content:''; position:absolute; inset:-20% auto -20% -60%; width:35%; transform:skewX(-18deg); background:linear-gradient(90deg,transparent,#ffffff4d,transparent); pointer-events:none; animation:ht-bf-sheen 4.2s ease-in-out infinite; }
.ht-bf-floating:hover { transform:translateY(-2px); }
.ht-bf-floating:hover::after { animation-duration:1.6s; }
.ht-bf-floating-name { font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.ht-bf-floating-divider { height:16px; width:1px; background:#ffffff40; }
.ht-bf-dot { display:inline-block; flex:0 0 auto; width:7px; height:7px; border-radius:50%; background:var(--bf-green,#22c55e); position:relative; }
.ht-bf-dot::after { content:''; position:absolute; inset:0; border:1px solid #22c55e; border-radius:50%; animation:ht-bf-pulse 1.8s ease-out infinite; }
.ht-bf-badge { display:inline-flex; align-items:center; gap:9px; padding:7px 12px; border:1px solid #ffffff33; background:#ffffff12; border-radius:999px; font-size:12px; font-weight:500; line-height:1.3; }
.ht-bf-dialog { position:fixed; margin:auto; inset:0; padding:0; width:min(480px,calc(100% - 32px)); max-height:90vh; max-height:90dvh; border:1px solid #ffffff33; border-radius:16px; background:linear-gradient(120deg,#ffffff29,#ffffff0a),#121110df; backdrop-filter:blur(22px) saturate(150%); -webkit-backdrop-filter:blur(22px) saturate(150%); box-shadow:inset 0 1px 0 #ffffff2e,0 24px 90px #0005; overflow:auto; }
.ht-bf-dialog[open] { animation:ht-bf-enter .55s ease both; }
.ht-bf-dialog::before { animation-duration:5.5s; position:fixed; }
.ht-bf-dialog::backdrop { background:#0005; backdrop-filter:blur(3px); -webkit-backdrop-filter:blur(3px); }
.ht-bf-dialog-inner { position:relative; padding:30px; }
.ht-bf-close { position:absolute; top:12px; right:12px; width:36px; height:36px; border-radius:50%; border:1px solid #ffffff26; background:#ffffff0d; color:white; font-size:26px; line-height:1; cursor:pointer; }
.ht-bf-dialog h2 { font-size:25px; font-weight:700; line-height:1.2; margin:18px 0 10px; letter-spacing:-.04em; }
.ht-bf-dialog h2 span { color:#a8a29e; }
.ht-bf-dialog p:not(.flowtoast__title):not(.flowtoast__desc) { color:#d6d3d1; font-size:13px; line-height:1.6; }
.ht-bf-form { display:grid; grid-template-columns:1fr 1fr; gap:13px 12px; margin-top:22px; text-align:left; }
.ht-bf-full { grid-column:1/-1; }
.ht-bf-field { min-width:0; display:flex; flex-direction:column; gap:6px; }
.ht-bf-field label { font-size:12px; color:#e7e5e4; font-weight:500; }
.ht-bf-field input,.ht-bf-field select { width:100%; min-width:0; min-height:42px; padding:10px 12px; border:1px solid #57534e; border-radius:6px; background:#44403c; color:#fafaf9; font:inherit; font-size:14px; color-scheme:dark; }
.ht-bf-field input::placeholder { color:#b8b3af; opacity:1; }
.ht-bf-field input:focus,.ht-bf-field select:focus { outline:2px solid #d6d3d1; outline-offset:2px; }
.ht-bf-help { font-size:10px; line-height:1.4; color:#c5c0bc; }
.ht-bf-consent { display:flex; align-items:flex-start; gap:9px; font-size:11px; line-height:1.6; color:#d6d3d1; cursor:pointer; }
.ht-bf-consent input { width:16px; height:16px; flex:0 0 auto; margin-top:2px; accent-color:#d6d3d1; }
.ht-bf-consent a { text-decoration:underline; text-underline-offset:2px; }
.ht-bf-btn { position:relative; display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:44px; padding:12px 20px; border:1px solid #fff; border-radius:6px; background:#fff; color:#1c1917; font-size:13px; font-weight:600; line-height:1.4; text-decoration:none; text-align:center; cursor:pointer; overflow:hidden; transition:background .2s; }
.ht-bf-btn:hover { background:#e7e5e4; }
.ht-bf-btn:disabled { opacity:.65; cursor:wait; }
.ht-bf-btn-outline { background:transparent; color:#fafaf9; border-color:#ffffff4d; }
.ht-bf-btn-outline:hover { background:#ffffff14; }
.ht-bf-submit::after { background:linear-gradient(90deg,transparent,#c9a24d80,transparent); animation-duration:3.4s; }
.ht-bf-status { margin:0; font-size:12px; min-height:0; }
.ht-bf-status:empty { display:none; }
.ht-bf-status[data-error] { color:#fecaca; }
.ht-bf-details { display:block; color:#d6d3d1; font-size:11px; text-align:center; margin-top:14px; text-decoration:underline; text-underline-offset:3px; }
.ht-bf-honeypot { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.ht-bf-success { text-align:center; padding:20px 0; }
.ht-bf-success h2 { font-size:26px; line-height:1.25; font-weight:700; margin:20px 0 12px; overflow-wrap:anywhere; }
.ht-bf-success p { line-height:1.7; color:#d6d3d1; margin-bottom:24px; }
.ht-bf-success .ht-bf-btn { display:flex; margin-top:12px; }
.ht-bf-check { display:flex; align-items:center; justify-content:center; width:54px; height:54px; margin:0 auto 18px; border:1px solid #22c55e66; background:#22c55e14; color:#86efac; border-radius:50%; font-size:28px; }
.ht-bf-floating:focus-visible,.ht-bf-close:focus-visible,.ht-bf-btn:focus-visible,.ht-bf-page a:focus-visible,.ht-bf-page summary:focus-visible { outline:2px solid #e7e5e4; outline-offset:4px; }
html.ht-bf-modal-open { overflow:hidden; }
.ht-bf-page { background:#1c1917; }
.ht-bf-wrap { width:min(1120px,calc(100% - 48px)); margin:0 auto; }
.ht-bf-hero { position:relative; min-height:680px; min-height:85svh; display:flex; align-items:center; text-align:center; padding:144px 0 100px; isolation:isolate; }
.ht-bf-hero-photo,.ht-bf-hero::after { position:absolute; inset:0; width:100%; height:100%; z-index:-2; object-fit:cover; object-position:center; }
.ht-bf-hero::after { content:''; z-index:-1; background:linear-gradient(180deg,#0008,#1c1917a6 60%,#1c1917); }
.ht-bf-hero h1 { font-size:clamp(36px,4.8vw,64px); font-weight:700; line-height:1.08; letter-spacing:-.045em; max-width:960px; margin:24px auto; }
.ht-bf-hero h1 span { display:block; color:#d6d3d1cc; }
.ht-bf-hero p { max-width:620px; margin:0 auto; color:#e7e5e4; font-size:17px; line-height:1.7; }
.ht-bf-hero-actions { display:flex; justify-content:center; flex-wrap:wrap; gap:12px; margin-top:32px; }
.ht-bf-section { padding:80px 0; scroll-margin-top:88px; }
.ht-bf-section h2 { font-size:clamp(27px,3.1vw,40px); font-weight:700; line-height:1.2; letter-spacing:-.035em; }
.ht-bf-section h2 span { color:#a8a29e; }
.ht-bf-section-heading { text-align:center; max-width:760px; margin:0 auto 34px; }
.ht-bf-steps { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.ht-bf-step { padding:28px; background:#292524; border:1px solid #44403c; border-radius:12px; }
.ht-bf-eyebrow { color:#a8a29e; font-size:11px; font-weight:600; letter-spacing:.13em; text-transform:uppercase; }
.ht-bf-step h3 { font-size:19px; line-height:1.35; font-weight:600; margin:14px 0 10px; }
.ht-bf-step p,.ht-bf-section-copy { color:#d6d3d1; font-size:14px; line-height:1.7; }
.ht-bf-destinations { display:grid; grid-template-columns:2fr 1fr 1fr; grid-template-rows:200px 200px; gap:16px; }
.ht-bf-destination { position:relative; border-radius:12px; overflow:hidden; padding:24px; display:flex; flex-direction:column; justify-content:flex-end; isolation:isolate; border:1px solid #44403c; }
.ht-bf-destination:first-child { grid-row:1/3; }
.ht-bf-destination::after { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(transparent 25%,#000b); }
.ht-bf-destination img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; transition:transform .4s; }
.ht-bf-destination:hover img { transform:scale(1.03); }
.ht-bf-destination h3 { font-size:24px; font-weight:600; }
.ht-bf-destination p { color:#e7e5e4; font-size:12px; margin-top:5px; }
.ht-bf-also { text-align:center; color:#a8a29e; font-size:13px; margin-top:24px; }
.ht-bf-testimonial { background:#e7e5e4; color:#292524; border-radius:16px; padding:36px; max-width:800px; margin:0 auto; text-align:center; }
.ht-bf-stars { color:#8a691f; letter-spacing:.2em; font-size:19px; }
.ht-bf-testimonial blockquote { font-size:20px; line-height:1.6; margin:18px 0 24px; }
.ht-bf-testimonial cite { font-style:normal; font-size:13px; }
.ht-bf-testimonial cite span { display:block; color:#57534e; margin-top:5px; font-size:12px; }
.ht-bf-lead-layout { display:grid; grid-template-columns:1fr 1fr; gap:72px; align-items:center; }
.ht-bf-lead-copy p { margin-top:22px; }
.ht-bf-lead-copy .ht-bf-badge { margin-bottom:20px; }
.ht-bf-form-card { background:#292524; border:1px solid #44403c; border-radius:16px; padding:32px; }
.ht-bf-form-card h2 { font-size:26px; }
.ht-bf-form-card>p { font-size:13px; color:#d6d3d1; margin-top:8px; }
.ht-bf-faq { max-width:800px; margin:32px auto 0; }
.ht-bf-faq details { border-bottom:1px solid #44403c; }
.ht-bf-faq summary { font-size:16px; padding:22px 0; cursor:pointer; font-weight:500; }
.ht-bf-faq details p { padding:0 0 24px; color:#d6d3d1; font-size:14px; line-height:1.7; }
@keyframes ht-bf-ring { to { --ht-bf-angle:360deg; } }
@keyframes ht-bf-pulse { to { transform:scale(3); opacity:0; } }
@keyframes ht-bf-breathe { 50% { box-shadow:inset 0 1px 0 #ffffff2e,0 0 28px #22c55e22; } }
@keyframes ht-bf-sheen { 70% { left:-60%; } 100% { left:150%; } }
@keyframes ht-bf-enter { from { opacity:0; transform:translateY(14px) scale(.97); } to { opacity:1; transform:none; } }
@media(max-width:767px) {
  .ht-bf-floating { left:max(16px,env(safe-area-inset-left)); bottom:max(20px,env(safe-area-inset-bottom)); padding:14px 16px; gap:10px; }
  .ht-bf-floating-name { font-size:11px; }
  .ht-bf-floating-label,.ht-bf-floating-divider { display:none; }
  .ht-bf-dialog { inset:auto 0 0; margin:0; width:100%; max-width:none; max-height:90vh; max-height:90dvh; border-radius:18px 18px 0 0; }
  .ht-bf-dialog-inner { padding:26px 24px max(24px,env(safe-area-inset-bottom)); }
  .ht-bf-dialog h2 { font-size:25px; }
  .ht-bf-field input,.ht-bf-field select { font-size:16px; }
  .ht-bf-hero { min-height:720px; min-height:92svh; padding:132px 0 72px; }
  .ht-bf-hero p { font-size:15px; }
  .ht-bf-wrap { width:calc(100% - 40px); }
  .ht-bf-section { padding:52px 0; }
  .ht-bf-steps,.ht-bf-lead-layout { grid-template-columns:1fr; gap:18px; }
  .ht-bf-lead-layout { gap:30px; }
  .ht-bf-destinations { grid-template-columns:1fr 1fr; grid-template-rows:260px 180px 180px; gap:12px; }
  .ht-bf-destination:first-child { grid-column:1/3; grid-row:1; }
  .ht-bf-destination { padding:18px; }
  .ht-bf-destination h3 { font-size:20px; }
  .ht-bf-testimonial,.ht-bf-form-card { padding:26px 22px; }
  .ht-bf-testimonial blockquote { font-size:18px; }
}
@media(prefers-reduced-motion:reduce) {
  .ht-bf-floating,.ht-bf-floating::before,.ht-bf-floating::after,.ht-bf-dot::after,.ht-bf-dialog::before,.ht-bf-dialog[open],.ht-bf-submit::after { animation:none!important; }
  .ht-bf-floating:hover,.ht-bf-destination:hover img { transform:none; }
  .ht-bf-page * { scroll-behavior:auto!important; transition:none!important; }
}
