@font-face{font-family:'Barlow Condensed';src:url('assets/barlow-condensed-700.ttf') format('truetype');font-weight:700;font-display:swap}@font-face{font-family:'Barlow Condensed';src:url('assets/barlow-condensed-800.ttf') format('truetype');font-weight:800 900;font-display:swap}@font-face{font-family:'Nunito Sans';src:url('assets/nunito-sans-400.ttf') format('truetype');font-weight:400;font-display:swap}@font-face{font-family:'Nunito Sans';src:url('assets/nunito-sans-600.ttf') format('truetype');font-weight:600 900;font-display:swap}
:root{--n:#364b54;--g:#eb6b40;--s:#e8e6df;--c:#f7f6f3;--sans:'Barlow Condensed',Arial,sans-serif;--slab:'Barlow Condensed',Arial,sans-serif;--aqua:#42b5bf}body{font-family:'Nunito Sans',Arial,sans-serif;font-size:16px;line-height:1.5}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #1a7a83;outline-offset:4px}button:disabled{opacity:.45;cursor:not-allowed}h1,h2,h3{font-family:var(--sans);letter-spacing:0!important}button{line-height:1.25}.ui-icon{width:20px;height:20px;vertical-align:middle}.brand-header{background:var(--n);padding:8px 4vw 12px;display:grid;grid-template-columns:150px 1fr;align-items:center;gap:2px 26px;color:white;position:relative;z-index:10}.brand-home{border:0;background:none;grid-row:1;padding:0;text-align:left}.brand-home img{display:block;width:125px;height:64px;object-fit:contain}.brand-links{display:flex;justify-content:flex-end;align-items:center;gap:26px}.brand-links a,.brand-links button{color:white;background:none;border:0;text-decoration:none;font:700 21px var(--sans);letter-spacing:1.6px;text-transform:uppercase;padding:5px 0}.brand-links a:hover,.brand-links button:hover{color:#6fd1d8}.brand-links .guide{font-size:16px;background:var(--g);padding:11px 22px;border-radius:30px;letter-spacing:1px}.mobile-menu{display:none}.site-intro{min-height:100svh;background:linear-gradient(180deg,#364b5460,#364b5450 40%,#233840ec),url('assets/hero.png') center/cover;display:flex;position:relative}.site-intro .brand-header{background:linear-gradient(#364b54ae,transparent)}.site-intro-content{margin:auto;padding:50px 20px 110px;text-align:center;display:flex;align-items:center;flex-direction:column;position:static;transform:none;width:100%;max-width:none}.site-intro-content h1{font:800 clamp(58px,7.2vw,94px)/.93 var(--sans);margin:0 0 30px;letter-spacing:-1px!important;max-width:none;text-shadow:0 3px 25px #0004}.site-intro-content h1 em{color:var(--aqua);font-style:normal}.hero-eyebrow{font:700 20px var(--sans);letter-spacing:5px;text-transform:uppercase;margin:0 0 20px}.site-intro-start{margin:4px 0 0;display:inline-flex;align-items:center;justify-content:center;gap:12px;background:var(--g);padding:18px 29px;border:0;border-radius:40px;color:white;font:700 18px var(--sans);letter-spacing:1.1px;max-width:100%;box-shadow:0 8px 30px #162b3b38}.site-intro-start:hover,.next:hover{background:#eb6b40}.home-bottom{position:absolute;bottom:25px;left:4vw;right:4vw;display:flex;justify-content:space-between;align-items:center;font:600 16px var(--sans);letter-spacing:2px;text-transform:uppercase}.home-bottom button{font:700 16px var(--sans);color:white;border:0;background:none;display:flex;gap:10px;align-items:center}.things-content{width:min(1160px,92vw);padding:48px 0 110px;margin:auto}.things-title{font:800 clamp(42px,6vw,68px)/1 var(--sans);margin:0 0 14px}.things-dek{max-width:660px;color:#53646b;margin-bottom:34px}.attraction-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px}.attraction-card{display:flex;flex-direction:column;border:1px solid #d9d9d3;background:white;min-height:0;overflow:hidden}.attraction-media{height:250px;position:relative}.attraction-media img{width:100%;height:100%;object-fit:cover;display:block}.attraction-badges{position:absolute;left:auto;right:20px;top:0;background:var(--n);width:52px;height:118px;padding:12px 0;display:flex;flex-direction:column;align-items:center;justify-content:space-around;border-radius:0 0 3px 3px}.attraction-heart{color:white;width:44px;height:44px;background:none;border:0}.attraction-heart svg,.attraction-pin{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.attraction-heart.is-selected svg{fill:currentColor}.attraction-pin{color:white}.attraction-info{padding:23px 25px;gap:6px;flex:1}.attraction-info h2{font:800 30px/1.05 var(--sans)}.attraction-info p{font-size:15px;color:#53646b;line-height:1.5}.attraction-actions{width:100%;gap:12px;flex-wrap:wrap;padding-top:14px}.attraction-actions a,.attraction-actions button{font:700 16px var(--sans);letter-spacing:.8px;padding:12px 22px!important;min-height:44px}.attraction-add.is-added{background:#1a7a83}.things-planner-cta{font:700 18px var(--sans);bottom:calc(22px + env(safe-area-inset-bottom));right:22px;padding:17px 27px}.hero{background:linear-gradient(90deg,#283c46da,#283c4633),url('assets/snow-canyon.jpg') center 48%/cover;min-height:230px;padding:44px max(4vw,calc((100vw - 1200px)/2)) 42px}.hero h1{font-size:clamp(60px,7.5vw,96px);line-height:1;margin:0}.hero h1 span,.triphead h1 span{color:#73d0d6}.builder{margin-top:0;margin-bottom:48px;box-shadow:0 12px 30px #364b5410}.steps{padding:30px 24px}.step{width:100%;background:none;border-left:0;border-right:0;border-bottom:0;text-align:left}.step span{font:700 16px var(--sans);letter-spacing:1px}.step:not(.active){color:#c6d1d5}.step.active b{background:var(--g)}.steps p{font-size:14px;color:#c6d1d5;margin-top:45px}.form{padding:32px 38px;min-height:485px}.form h2{font:800 clamp(32px,3.5vw,46px)/1 var(--sans)}.kicker{font:700 14px var(--sans);color:var(--g);letter-spacing:2px}.sub{font-size:16px;line-height:1.55}.choices{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:26px}.choice{height:132px;min-height:0;position:relative;padding:12px;border:3px solid transparent!important;background-size:cover!important;background-position:center!important;display:flex;align-items:flex-end;isolation:isolate;color:white;border-radius:2px;overflow:hidden;box-shadow:none}.choice:before{content:'';position:absolute;inset:0;background:linear-gradient(transparent,#172b36d9);z-index:-1}.choice span{font:700 18px/1.1 var(--sans);letter-spacing:.6px;max-width:100%}.choice.on{border-color:var(--g)!important;box-shadow:0 0 0 1px var(--g)}.choice.on:after{content:'';right:9px;top:9px;width:24px;height:24px;background:white;mask:url('icons/lucide/check.svg') center/20px no-repeat}.people{width:100%;max-width:500px}.field,.people>.field{font:700 16px var(--sans);letter-spacing:1px}.field input,.field textarea{font:400 16px 'Nunito Sans';letter-spacing:0}.field select,.date-mode button{font:700 17px var(--sans)}.navrow button{font:700 17px var(--sans);min-height:48px}.note textarea{min-height:112px;resize:vertical}.navrow{margin-top:28px}.triphead{padding:35px max(4vw,calc((100vw - 1200px)/2));gap:24px;align-items:center}.triphead h1{font:800 clamp(32px,3.4vw,49px)/1 var(--sans);white-space:normal}.triphead .kicker{color:#79d1d7}.triphead p:last-child{font-size:15px}.actions{max-width:365px;justify-content:flex-end;flex-shrink:0}.actions button{font:700 15px var(--sans);min-height:43px}.actions .end-demo-button{background:var(--g);border-color:var(--g);color:white}.trip-view-switcher button{font-size:16px;letter-spacing:1px}.tripgrid{margin-bottom:110px}.tabs button{flex:1;min-width:160px;padding:17px 20px}.tabs b{font-size:17px}.tabs span{font-size:13px}.schedule>header{display:flex;padding:25px 28px}.schedule h2{font:800 32px/1 var(--sans)}.schedule header p:last-child{font-size:15px}.weather{display:none}.stop{padding:25px 27px;grid-template-columns:76px 30px minmax(0,1fr)}.stop time{font-size:15px}.marker i{font-size:13px}.stop h3{font:700 25px/1.1 var(--sans);margin-bottom:10px}.stop p{font-size:15px;line-height:1.6;margin:0 0 15px;color:#56666d}.stop-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.tag{font:700 13px var(--sans);letter-spacing:.7px;border:1px solid #d6d7d0;border-radius:20px;padding:6px 10px}.swap{display:none!important}.mobile-actions{display:flex!important;gap:10px;flex-wrap:wrap}.swap-mobile,.book-now{font:700 14px var(--sans);letter-spacing:.7px;border:0;padding:9px 12px;border-radius:20px;background:#eef1f0;color:var(--n)}.book-now{background:var(--g);color:white}.summary{padding:25px}.summary h3{font:800 30px var(--sans);margin:0 0 15px}.summary #trip-summary{display:block;padding:0;border:0}.summary #trip-summary>div{display:flex;justify-content:space-between;gap:12px;font-size:14px;padding:12px 0;border-top:1px solid #deded7}.summary b{text-align:right}.summary small{display:block;font-size:13px;line-height:1.5;margin-top:18px;color:#53646b}.photo{background:linear-gradient(transparent,#20333bce),url('assets/zion.jpg') center/cover;min-height:285px}.photo small{font-size:14px;color:#9adce0}.photo b{font:800 32px/1 var(--sans)}.chatbtn{font:700 18px var(--sans);padding:17px 25px;right:max(22px,env(safe-area-inset-right));bottom:calc(20px + env(safe-area-inset-bottom));box-shadow:0 5px 20px #243b4a30;z-index:25;display:flex;align-items:center;gap:10px;max-width:calc(100vw - 32px)}.chat{right:22px;bottom:calc(86px + env(safe-area-inset-bottom));width:390px;height:530px;max-height:calc(100dvh - 120px);z-index:30;box-shadow:0 12px 48px #1e303946;border:1px solid #ccd2d3;overflow:hidden;border-radius:8px;display:flex;flex-direction:column}.chat header{padding:20px}.chat header .kicker{color:#79d1d7}.chat h3{font:800 27px var(--sans)}.chat header button{width:36px;height:36px}.bubble{font-size:15px!important;line-height:1.55;background:#f0f2f0!important}.bubble.user{background:var(--n)!important;color:white}.chat input{font-size:16px}.chat-presets{display:flex;gap:8px;overflow:auto;flex:0 0 auto;padding:12px;border-bottom:1px solid #ddd}.chat-presets button{white-space:nowrap;border:1px solid #ccd5d6;background:white;color:var(--n);border-radius:22px;padding:8px 13px;font:700 14px var(--sans)}.messages{min-height:80px;flex:1;overflow:auto}.chat form{flex-shrink:0}.demo-end{background:linear-gradient(#263b45ed,#263b45ed),url('assets/snow-canyon.jpg') center/cover;min-height:100svh;padding-bottom:44px}.demo-end-logo{width:145px}.demo-end-intro h1{font:800 clamp(44px,5vw,70px)/1 var(--sans)}.demo-end-intro h1 span{color:#72cdd3}.demo-end-intro .kicker{color:#79d1d7}.benefit-card h2{font:800 27px/1.05 var(--sans)}.benefit-card small{font:700 15px var(--sans);color:#79d1d7}.benefit-card p{font-size:16px}.demo-restart{margin-top:35px;background:var(--g);color:white;border-radius:30px;font:700 17px var(--sans)}.demo-end-back{font-size:16px}.trip-loader{background:var(--n)}.trip-loader-card{color:white}.trip-loader-card h2{font:800 54px/1 var(--sans)}.trip-loader-card .kicker{color:#79d1d7}.trip-loader-card h2 span{color:#79d1d7}.trip-loader-message{font-size:17px}.trip-loader-mark{background: url('assets/logo.png') center/contain no-repeat!important;border:0!important;width:150px;height:85px;animation:none!important;border-radius:0!important}.trip-loader-mark:before,.trip-loader-mark:after{display:none!important}.region-map{min-height:540px;background:#edf1ee;display:grid;grid-template-columns:1fr 340px;position:relative}.map-detail{position:static;width:auto;margin:20px;padding:24px;box-shadow:none}.map-detail h2{font-size:30px}.map-detail>p:last-of-type,.map-stop{font-size:15px}.map-stop{margin:13px 0}#route-map{min-width:0;padding:20px}#route-map svg{width:100%;height:100%;min-height:420px}.map-note{font-size:14px;padding:0 25px 20px}.itinerary-calendar-grid{min-width:700px}.itinerary-cal-head{font-size:16px}.itinerary-cal-head span{font-size:14px}.itinerary-cal-time,.itinerary-event small{font-size:14px}.itinerary-event{font-size:16px}.mobile-day-nav{display:none}dialog{color:var(--n);border:0;padding:32px;max-width:560px;width:calc(100% - 32px);max-height:85dvh;box-shadow:0 20px 80px #0004;border-radius:8px}dialog::backdrop{background:#172d39aa;backdrop-filter:blur(3px)}.dialog-close{position:absolute;top:12px;right:12px;border:0;background:#eef1f0;width:36px;height:36px;border-radius:50%}dialog h2{font:800 34px/1.1 var(--sans);margin:15px 0}dialog p{font-size:16px}dialog a,.dialog-action{display:inline-flex;gap:10px;align-items:center;text-decoration:none;color:white;background:var(--g);padding:13px 22px;border:0;border-radius:24px;font:700 17px var(--sans);margin-top:12px}.swap-option{display:block;width:100%;background:#f0f2ef;border:1px solid #d4d9d4;color:var(--n);text-align:left;padding:15px;margin:12px 0;font:700 20px var(--sans)}.swap-option small{display:block;font:400 14px 'Nunito Sans';margin-top:5px}#toast{position:fixed;left:50%;bottom:100px;transform:translateX(-50%);background:var(--n);color:white;padding:13px 24px;box-shadow:0 3px 15px #0003;z-index:100;border-radius:5px;max-width:90vw;width:max-content;font-size:15px}#date-error{color:#aa3619}.search-box{width:100%;padding:14px;font-size:16px;border:1px solid #bec7c9}.is-saved .icon-heart{background-color:#76d1d7}.choice:nth-child(n){background-color:var(--n)}
@media(min-width:1600px){.brand-links{gap:38px}.brand-links a,.brand-links button{font-size:24px}}
@media(max-width:1100px){.brand-links{gap:17px}.brand-links a,.brand-links button{font-size:18px;letter-spacing:1px}.brand-header{grid-template-columns:125px 1fr;gap:0 18px}.triphead{flex-wrap:wrap}.actions{max-width:none;justify-content:flex-start}.builder{grid-template-columns:210px minmax(0,1fr)}.form{padding:30px}.choices{grid-template-columns:repeat(3,minmax(0,1fr))}.tripgrid{grid-template-columns:minmax(0,1fr) 250px}.stop{padding:24px 20px}.benefit-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:850px){.brand-header{display:flex;justify-content:space-between;align-items:center;min-height:80px;padding:8px 24px}.brand-home img{width:115px;height:57px}.mobile-menu{display:grid;place-items:center;color:white;background:none;border:1px solid #ffffff70;width:44px;height:44px;border-radius:50%;font-size:22px}.brand-links{display:none;position:absolute;left:0;right:0;top:100%;padding:20px 24px;background:var(--n);align-items:stretch;flex-direction:column;box-shadow:0 10px 15px #0002}.brand-links.menu-open{display:flex}.brand-links a,.brand-links button{text-align:left;font-size:21px}.brand-links .guide{align-self:flex-start}.site-intro-content{padding-top:60px}.hero{min-height:180px;padding:30px 5vw}.builder{grid-template-columns:1fr}.steps{display:flex;flex-direction:row;padding:14px 20px;gap:14px;justify-content:space-between}.step{border:0!important;padding:0;gap:9px}.step span{display:block;font-size:13px;letter-spacing:.6px}.step b{width:34px;height:34px;min-width:34px;flex:0 0 34px;font-size:14px}.steps p{display:none}.form{padding:30px}.tripgrid{grid-template-columns:1fr}.side{display:grid;grid-template-columns:1fr 1fr;gap:18px}.things-content{padding-top:35px}.attraction-media{height:215px}.attraction-info{padding:20px}.attraction-info h2{font-size:27px}.region-map{grid-template-columns:1fr}.map-detail{margin-top:0}.map-stop-list{grid-template-columns:1fr 1fr}.map-stop{margin:5px 0}#route-map svg{min-height:320px;height:350px}.triphead{padding:28px 4vw}.hero h1{font-size:68px}}
@media(max-width:540px){.site-intro-content{padding:45px 20px 115px}.site-intro-content h1{font-size:66px;line-height:.93}.hero-eyebrow{font-size:16px;letter-spacing:3px}.site-intro-start{font-size:16px;padding:16px 20px;letter-spacing:.6px;gap:8px}.site-intro-start .ui-icon{flex:0 0 20px}.home-bottom{justify-content:center;bottom:30px}.home-bottom>span{display:none}.attraction-grid{grid-template-columns:1fr;gap:22px}.attraction-media{height:230px}.attraction-info h2{font-size:30px}.attraction-actions{gap:10px}.attraction-actions a,.attraction-actions button{padding:12px 18px!important;font-size:16px}.things-planner-cta{right:16px;bottom:calc(16px + env(safe-area-inset-bottom));font-size:17px}.hero{min-height:150px;padding:28px 20px}.hero h1{font-size:clamp(48px,12.5vw,60px)}.builder{width:100%;margin-bottom:0}.steps{gap:10px;padding:15px 17px}.step{flex-direction:column;gap:7px;align-items:center;text-align:center}.step span{font-size:13px;letter-spacing:.2px}.step b{margin:0}.form{padding:25px 20px;min-height:460px}.form h2{font-size:36px;line-height:1}.choices{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.choice{height:130px;padding:10px}.choice span{font-size:18px}.dates,.people,.flexible-dates{grid-template-columns:1fr 1fr;gap:12px}.field input{padding:13px 8px;min-width:0}.guest-control{grid-template-columns:40px minmax(20px,1fr) 40px;padding:4px}.guest-control button{width:36px;height:36px}.guest-count{font-size:17px}.flexible-dates .field select{font-size:16px;padding:13px 8px}.navrow button{font-size:16px;padding:13px 17px}.stay-warning{align-items:flex-start;flex-direction:column}.triphead h1{font-size:38px;line-height:1}.actions{gap:7px}.actions button{font-size:14px;padding:10px 11px}.trip-view-switcher{margin-top:18px}.trip-view-switcher button{font-size:15px;letter-spacing:.5px}.trip-view-switcher .ui-icon{width:17px;height:17px}.tripgrid{margin-top:18px}.tabs{display:none}.tabs-more,.tabs-back{display:none}.mobile-day-nav{display:flex;justify-content:space-between;align-items:center;background:white;padding:12px;border:1px solid #d4dcd6;font:700 18px var(--sans)}.mobile-day-nav button{width:40px;height:40px;background:#eef1ef;border:0;color:var(--n);border-radius:50%}.schedule>header{padding:22px 19px}.schedule h2{font-size:30px}.stop{grid-template-columns:1fr;padding:22px 19px;gap:10px}.stop time{font-size:15px;color:var(--g)}.marker{display:none}.stop h3{font-size:26px}.stop p{font-size:15px}.stop-actions{gap:12px;align-items:flex-start;flex-direction:column}.side{grid-template-columns:1fr}.photo{min-height:240px}.chatbtn{font-size:17px;padding:15px 22px;right:16px}.chat{right:12px;left:12px;width:auto;bottom:calc(79px + env(safe-area-inset-bottom));height:510px;max-height:calc(100dvh - 100px)}.chat header{padding:16px}.chat h3{font-size:25px}.demo-end{padding:24px 20px 35px}.demo-end-top{display:flex;flex-direction:column-reverse;gap:22px}.demo-end-top>span{display:none}.demo-end-logo{width:140px}.demo-end-back{font-size:15px}.demo-end-intro{margin:34px 0}.demo-end-intro h1{font-size:46px}.benefit-grid{grid-template-columns:1fr}.benefit-card{min-height:0;padding:24px}.benefit-card h2{margin-top:14px}.trip-loader-card{padding:25px}.trip-loader-card h2{font-size:42px}.calendar-itinerary-view{padding:12px}.map-stop-list{grid-template-columns:1fr}.map-detail{padding:20px}#route-map{padding:8px}#route-map svg{min-height:260px;height:290px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.attraction-card{height:auto}.things-page{background:var(--c)}.people{width:100%;margin-left:0;margin-right:0}.stop{grid-template-areas:none}.stop>time,.stop>.marker,.stop>div:last-child{grid-area:auto}.mobile-actions{margin-left:0}.map-detail{width:auto}.actions .action-icon,.trip-view-switcher .view-icon{display:inline-block}.chatbtn{background:var(--g)}.things-planner-cta{background:var(--g)}
.swap-mobile{display:inline-flex!important;align-items:center;gap:6px}.attraction-media{flex-shrink:0}.attraction-card{border-radius:8px}.travel-note{font-size:14px!important}.chat select{display:block;width:100%;margin:12px 0;padding:8px;font:14px 'Nunito Sans'}
.site-intro-start,.brand-links .guide{background:#eb6b40;font-size:20px}.site-intro-start:hover,.brand-links .guide:hover{background:#eb6b40;color:white}.brand-links .guide{font-size:19px}.demo-end-intro h1 span{display:inline-block}.is-saved .icon-heart{mask:none!important;background:none!important}.is-saved .icon-heart:after{content:'';display:block;width:20px;height:20px;background:#79d1d7;mask:url('icons/lucide/heart.svg') center/contain no-repeat}
@media(max-width:540px){.site-intro-start{font-size:19px;padding:15px 18px;line-height:1.2}}
.attraction-badges svg{stroke-width:2}
/* Official locally hosted homepage video, behind the existing brand scrim. */
.site-intro{isolation:isolate}.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;pointer-events:none}.hero-video-overlay{position:absolute;inset:0;background:linear-gradient(180deg,#364b5460,#364b5450 40%,#233840ec);z-index:-1;pointer-events:none}.site-intro .home-bottom{z-index:2;padding-right:64px}.hero-video-toggle{position:absolute;bottom:calc(22px + env(safe-area-inset-bottom));right:4vw;z-index:3;display:grid;place-items:center;width:44px;height:44px;border:1px solid #ffffff80;border-radius:50%;background:#364b54b3;color:white}.hero-video-toggle[hidden]{display:none}.hero-video-toggle:hover{background:#364b54}.hero-video-toggle:focus-visible{outline-color:white}.hero-video-overlay{display:none}.site-intro.video-ready .hero-video-overlay{display:block}
@media(prefers-reduced-motion:reduce){.hero-video,.hero-video-toggle,.site-intro.video-ready .hero-video-overlay{display:none!important}}
@media(max-width:540px){.site-intro .home-bottom{padding-right:50px}.hero-video-toggle{right:18px;bottom:calc(22px + env(safe-area-inset-bottom))}}
/* Keep the planner's choices and next action together in the viewport. */
#planner{height:100dvh;min-height:650px;display:flex;flex-direction:column}
#planner>.brand-header-slot{flex:0 0 auto}
#planner>.hero{flex:0 0 auto;min-height:0;height:clamp(88px,13dvh,128px);padding:12px max(3vw,calc((100vw - 1200px)/2));align-items:center}
#planner>.hero h1{font-size:clamp(48px,5.8vw,82px);line-height:.98}
#planner>.builder{flex:1;min-height:0;width:min(1200px,94vw);margin:0 auto 12px;grid-template-columns:220px minmax(0,1fr)}
#planner .steps{padding:22px}
#planner .steps p{margin-top:28px}
#planner .form{min-height:0;padding:18px 28px;overflow:auto}
#planner .form>.kicker{margin-bottom:8px}
#planner .screen{min-height:0;flex:1;display:flex;flex-direction:column}
#planner .form h2{font-size:clamp(38px,3.8vw,52px);margin-bottom:8px;line-height:1}
#planner .sub{margin-bottom:14px;line-height:1.4}
#planner .choices{flex:1;min-height:0;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(4,minmax(60px,1fr));gap:8px;margin:0}
#planner .choice{height:auto;min-height:60px;padding:10px}
#planner .choice span{font-size:17px}
#planner .navrow{flex:0 0 auto;margin-top:14px;padding-top:12px}
#planner .navrow button{min-height:44px;padding:11px 20px}
#planner .note textarea{min-height:86px}
@media(max-width:850px){
 #planner{min-height:690px}
 #planner>.hero{height:90px;padding:12px 24px}
 #planner>.hero h1{font-size:clamp(36px,6vw,54px)}
 #planner>.builder{width:100%;margin-bottom:0;grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr)}
 #planner .steps{padding:10px 20px}
 #planner .step{flex-direction:row;justify-content:center}
 #planner .step b{margin:0}
 #planner .form{padding:18px 24px}
}
@media(max-width:540px){
 #planner{min-height:680px}
 #planner .brand-header{min-height:62px;padding:5px 18px}
 #planner .brand-home img{width:98px;height:50px}
 #planner>.hero{height:68px;padding:9px 18px}
 #planner>.hero h1{font-size:clamp(29px,7.8vw,42px);line-height:1}
 #planner .steps{padding:8px 12px;gap:8px}
 #planner .step{flex-direction:column;gap:4px}
 #planner .step b{width:26px;height:26px;min-width:26px;flex-basis:26px;font-size:13px}
 #planner .step span{font-size:12px}
 #planner .form{padding:12px 16px}
 #planner .form>.kicker{font-size:13px;margin-bottom:5px}
 #planner .form h2{font-size:36px;margin-bottom:6px}
 #planner .sub{font-size:14px;line-height:1.35;margin-bottom:10px}
 #planner .choices{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(6,minmax(44px,1fr));gap:6px}
 #planner .choice{min-height:44px;padding:7px}
 #planner .choice span{font-size:15px;line-height:1.1;letter-spacing:.3px}
 #planner .choice.on:after{width:18px;height:18px;right:5px;top:5px;mask-size:16px}
 #planner .navrow{margin-top:10px;padding-top:9px}
 #planner .navrow button{font-size:16px;min-height:44px;padding:10px 18px}
}
/* High-contrast selection badge over interest photography. */
#planner .choice.on::after{content:'';position:absolute;top:8px;right:8px;width:28px;height:28px;padding:0;border:2px solid white;border-radius:50%;background:#eb6b40 url('icons/lucide/check-white.svg') center/18px 18px no-repeat;mask:none;-webkit-mask:none;box-shadow:0 2px 7px #0005;z-index:2}
/* Flexible trip length and season selection. */
#planner #flexible-dates{display:block}
#planner #flexible-dates.hide{display:none}
.trip-length-picker{text-align:center;padding:8px 0 26px}
.trip-length-picker .field{margin:0 0 18px;letter-spacing:2px;font-size:17px}
.trip-length-controls{display:flex;align-items:center;justify-content:center;gap:30px}
.trip-length-controls output{min-width:125px;font:800 40px/1 var(--sans);letter-spacing:1px}
.trip-length-controls button{display:grid;place-items:center;width:54px;height:54px;border:1px solid #ccd4d5;border-radius:50%;background:white;color:var(--n)}
.trip-length-controls button .ui-icon{width:24px;height:24px}
.trip-length-controls #more-days{background:var(--g);border-color:var(--g);color:white}
.trip-length-controls button:hover:not(:disabled){background:var(--n);border-color:var(--n);color:white}
.season-picker{position:relative;margin:0;padding:24px 0 0;border:0;border-top:1px solid #d5d9d8;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.season-picker legend{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.season-picker label{position:relative;cursor:pointer}
.season-picker input{position:absolute;width:1px;height:1px;opacity:0}
.season-picker span{display:flex;align-items:center;justify-content:center;min-height:62px;padding:12px;border:1px solid #ccd4d5;background:white;color:var(--n);font:700 21px var(--sans);letter-spacing:1px}
.season-picker input:checked+span{background:var(--n);border-color:var(--n);color:white}
.season-picker input:focus-visible+span{outline:3px solid #1a7a83;outline-offset:3px}
@media(max-width:540px){.trip-length-picker{padding:10px 0 22px}.trip-length-picker .field{font-size:16px}.trip-length-controls{gap:22px}.trip-length-controls output{font-size:36px;min-width:112px}.trip-length-controls button{width:48px;height:48px}.season-picker{gap:8px;padding-top:20px;grid-template-columns:repeat(2,minmax(0,1fr))}.season-picker span{min-height:48px;font-size:18px}}
/* Equal-width itinerary actions, sized by the longest label. */
#trip .actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:max-content;max-width:100%;gap:7px}
#trip .actions button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;line-height:1;white-space:nowrap}
#trip .actions .ui-icon{display:block;flex:0 0 20px;width:20px;height:20px;vertical-align:initial;margin:0}
/* Align each itinerary-view label with its icon. */
#trip .trip-view-switcher button{display:flex;align-items:center;justify-content:center;gap:7px;line-height:1}
#trip .trip-view-switcher .ui-icon{display:block;flex-shrink:0;vertical-align:initial;margin:0}
/* Larger interest labels, with room for longer names to wrap. */
#planner .choice span{font-size:clamp(26px,2.5vw,34px);line-height:1.02;letter-spacing:.3px;text-shadow:0 2px 5px #0009}
@media(max-width:850px){#planner .choice span{font-size:26px}}
@media(max-width:540px){#planner .choice span{font-size:clamp(20px,5.6vw,24px);line-height:1.04}}

/* Nine interests in three desktop rows. */
#planner .choices{grid-template-rows:repeat(3,minmax(0,1fr))}
@media(max-width:540px){#planner .choices{grid-template-rows:repeat(5,minmax(0,1fr))}}

/* Center Things to Do badge icons on the same axis at a shared size. */
.attraction-heart,.attraction-pin{display:flex;align-items:center;justify-content:center;padding:0}
.attraction-heart svg,.attraction-pin .ui-icon{display:block;width:20px;height:20px;flex-shrink:0}

/* Branded exact-date calendar, shared by arrival and departure. */
.date-trigger{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;min-height:56px;padding:14px 16px;border:1px solid #ccd4d5;background:white;color:var(--n);font:400 17px 'Nunito Sans',Arial,sans-serif;text-align:left}
.date-trigger:hover,.date-trigger[aria-expanded=true]{border-color:var(--g)}
dialog.date-popup{position:fixed;inset:auto;margin:0;width:min(350px,calc(100vw - 24px));max-height:calc(100dvh - 24px);padding:0;border:1px solid #d5d9d8;border-radius:8px;background:var(--c);box-shadow:0 12px 40px #23384038;color:var(--n)}
.date-popup::backdrop{background:#23384018;backdrop-filter:none}
.date-popup-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 20px;background:var(--n);color:white}
.date-popup-heading p{margin:0 0 4px;font:600 13px var(--sans);letter-spacing:2px;color:#79d1d7}
.date-popup-heading h2{margin:0;font:700 29px/1.05 var(--sans)}
.date-popup button{display:flex;align-items:center;justify-content:center;border:0;color:inherit;cursor:pointer}
.date-popup .date-close{width:36px;height:36px;background:transparent;border:1px solid #ffffff55;border-radius:50%}
.date-popup .date-close:focus-visible{outline-color:white}
.date-month-nav{display:flex;align-items:center;justify-content:space-between;padding:10px 14px 4px}
.date-month-nav span{font:600 13px var(--sans);letter-spacing:1.6px}
.date-month-nav button{width:36px;height:36px;background:white;border:1px solid #d5d9d8;border-radius:50%}
.date-weekdays,.date-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;padding:0 14px}
.date-weekdays span{text-align:center;font:700 15px/32px var(--sans);color:#53646b}
.date-days button{width:100%;min-height:40px;padding:0;background:transparent;border-radius:4px;font:600 14px 'Nunito Sans',Arial,sans-serif}
.date-days .outside-month{color:#7b8689;font-weight:400}
.date-days .today-day{box-shadow:inset 0 0 0 1px var(--g)}
.date-days button:hover{background:#e0eeee;color:var(--n)}
.date-days .selected-day,.date-days .selected-day:hover{background:var(--g);color:white}
.date-popup-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:12px 14px 0;padding:10px 0;border-top:1px solid #d5d9d8}
.date-popup-footer .date-today{background:transparent;color:var(--g);font:700 17px var(--sans);min-height:36px;padding:0 8px}
.date-popup-footer span{font:600 12px var(--sans);letter-spacing:1px;color:#53646b}
@media(max-width:540px){.date-trigger{min-height:50px;padding:12px;font-size:16px}.date-days button{min-height:40px}}

/* Guest counters follow the flexible trip-length controls. */
#planner .guest-control{display:flex;align-items:center;justify-content:center;gap:30px;min-height:0;margin-top:18px;padding:0;border:0;background:transparent}
#planner .guest-control button{display:grid;place-items:center;flex:0 0 54px;width:54px;height:54px;border:1px solid #ccd4d5;border-radius:50%;background:white;color:var(--n)}
#planner .guest-control button .ui-icon{width:24px;height:24px}
#planner .guest-control button[data-delta="1"]{background:var(--g);border-color:var(--g);color:white}
#planner .guest-control button:hover:not(:disabled){background:var(--n);border-color:var(--n);color:white}
#planner .guest-count{min-width:48px;font:800 40px/1 var(--sans);letter-spacing:1px;text-align:center}
@media(max-width:540px){#planner .guest-control{gap:12px}#planner .guest-control button{flex-basis:48px;width:48px;height:48px}#planner .guest-count{min-width:28px;font-size:36px}}

/* Three guest categories, wrapping comfortably on smaller screens. */
#planner .people{grid-template-columns:repeat(3,minmax(0,1fr));max-width:none}
#planner .guest-control{gap:clamp(12px,2vw,30px)}
@media(max-width:850px){#planner .people{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:20px}}
@media(max-width:540px){#planner .guest-control{gap:12px}}

/* Center each stop marker on the title's first line. */
@media(min-width:541px){.stop>.marker{display:flex;align-items:center;height:27.5px}.stop>time{display:flex;align-items:center;height:27.5px}}

/* Center guest labels over their corresponding counters. */
#planner .people>.field{text-align:center}

/* Give the end-demo benefit headings room at their existing type size. */
.benefit-grid{width:min(1800px,100%);grid-template-columns:repeat(2,minmax(0,1fr))}
@media(min-width:1900px){.benefit-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:850px){.benefit-grid{grid-template-columns:1fr}}

/* Match exact-date labels to the flexible trip-length label. */
#planner #exact-dates>.field{font-size:17px}
@media(max-width:540px){#planner #exact-dates>.field{font-size:16px}}
