/* Plan my trip — single-page booking composition. */
body.page-plan{
  --plan-ivory:#f4f0ea;
  --plan-navy:#142640;
  --plan-gold:#c6985a;
  --plan-line:rgba(20,38,64,.24);
  background:var(--plan-ivory);
  color:var(--plan-navy);
}
body.page-plan #main{overflow:clip;background:var(--plan-ivory)}
body.page-plan .plan-booking{padding:clamp(70px,6.3vw,120px) 16px clamp(120px,12vw,190px)}
body.page-plan .plan-booking-hero{width:100%;max-width:none;margin:0 0 clamp(105px,9vw,170px)}
body.page-plan .plan-booking-title{
  max-width:none;margin:0;color:#142640!important;font:400 17vw/1 Cultura,Georgia,serif;
  letter-spacing:-.035em;text-transform:uppercase;white-space:nowrap;
}
body.page-plan .plan-booking-title .editorial-title-word,
body.page-plan .plan-booking-title .editorial-title-char{color:#142640!important}
html[lang="es"] body.page-plan .plan-booking-title{font-size:11.7vw}
body.page-plan .plan-booking-hero>p{
  width:min(520px,100%);margin:clamp(54px,7vw,98px) 0 0;
  font:400 20px/1.48 HeroGrotesque,Arial,sans-serif;color:#343a40;
}
body.page-plan .plan-booking-layout{
  display:grid;grid-template-columns:minmax(0,50%) minmax(0,32.5%);justify-content:space-between;
  align-items:start;gap:0;width:100%;max-width:none;margin:0;
}
body.page-plan .plan-booking-main{min-width:0}
body.page-plan .plan-form-section{padding:0 0 clamp(116px,11vw,170px);border:0}
body.page-plan .plan-form-section:last-child{padding-bottom:0}
body.page-plan .plan-section-kicker{
  margin:0 0 18px;color:var(--plan-gold);font:600 12px/1 HeroGrotesque,Arial,sans-serif;
  letter-spacing:.16em;text-transform:uppercase;
}
body.page-plan .plan-form-section h2,
body.page-plan .plan-summary h2{
  margin:0 0 24px;color:var(--plan-navy);font:400 clamp(35px,3.1vw,48px)/1.05 Cultura,Georgia,serif;
  letter-spacing:-.025em;
}
body.page-plan .plan-form-section>p:not(.plan-section-kicker):not(.plan-open-copy):not(.plan-required){
  max-width:600px;margin:0 0 42px;font:400 17px/1.55 HeroGrotesque,Arial,sans-serif;color:#434343;
}
body.page-plan .plan-open-copy{
  margin:0 0 48px;padding:0;border:0;
  color:var(--plan-navy);font:400 20px/1.4 HeroGrotesque,Arial,sans-serif;
}
body.page-plan .plan-tour-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 28px}
body.page-plan .plan-tour-card{position:relative;display:block;min-width:0;cursor:pointer}
body.page-plan .plan-tour-card>input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
body.page-plan .plan-tour-visual{position:relative;display:block;min-height:0;aspect-ratio: .82;overflow:hidden;border:2px solid transparent;background:#d8d2c9}
body.page-plan .plan-tour-visual .media{position:absolute;inset:0;width:100%;height:100%;margin:0}
body.page-plan .plan-tour-visual img{width:100%;height:100%;object-fit:cover;transition:transform .65s cubic-bezier(.2,.72,.22,1)}
body.page-plan .plan-tour-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,15,28,.04) 32%,rgba(6,15,28,.86) 100%)}
body.page-plan .plan-tour-card>strong{
  display:block;margin-top:12px;color:var(--plan-navy);
  font:400 clamp(19px,1.5vw,24px)/1.15 Cultura,Georgia,serif;
}
body.page-plan .plan-form-section>.plan-intro-copy{
  max-width:600px!important;margin:0 0 38px!important;
  font:400 20px/1.4 HeroGrotesque,Arial,sans-serif!important;
}
body.page-plan .plan-tour-check{
  position:absolute;top:12px;right:12px;z-index:3;display:grid;width:30px;height:30px;place-items:center;
  border:1px solid rgba(255,255,255,.85);background:rgba(20,38,64,.65);color:#fff;opacity:0;
  font:600 15px/1 HeroGrotesque,Arial,sans-serif;transition:opacity .2s ease,background .2s ease;
}
body.page-plan .plan-tour-card.is-selected .plan-tour-visual{border-color:var(--plan-gold)}
body.page-plan .plan-tour-card.is-selected .plan-tour-check{opacity:1;background:var(--plan-gold)}
body.page-plan .plan-tour-card:has(input:focus-visible) .plan-tour-visual{outline:3px solid var(--plan-gold);outline-offset:4px}
@media(hover:hover){body.page-plan .plan-tour-card:hover img{transform:scale(1.035)}}

body.page-plan .plan-date-panel{position:relative;margin-top:46px}
body.page-plan .plan-date-top{display:grid;grid-template-columns:1fr 1fr auto;align-items:end;gap:24px;padding:0 0 24px;border-bottom:1px solid var(--plan-line)}
body.page-plan .plan-date-top>div span{display:block;margin-bottom:8px;color:#65615b;font:500 11px/1 HeroGrotesque,Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase}
body.page-plan .plan-date-top>div strong{display:block;min-height:21px;color:var(--plan-navy);font:500 15px/1.35 HeroGrotesque,Arial,sans-serif}
body.page-plan .plan-date-top button,
body.page-plan .plan-calendar-controls button,
body.page-plan .plan-counter-control button{
  border:1px solid var(--plan-line);border-radius:0;background:transparent;color:var(--plan-navy);cursor:pointer;
  font:500 12px/1 HeroGrotesque,Arial,sans-serif;text-transform:uppercase;
}
body.page-plan .plan-date-top button{min-height:40px;padding:0 14px}
body.page-plan .plan-date-top button:is(:hover,:focus-visible),
body.page-plan .plan-calendar-controls button:is(:hover,:focus-visible),
body.page-plan .plan-counter-control button:is(:hover,:focus-visible){border-color:var(--plan-gold);background:var(--plan-gold);color:#fff}
body.page-plan .plan-date-top button:focus-visible,
body.page-plan .plan-calendar-controls button:focus-visible,
body.page-plan .plan-calendar-day:focus-visible,
body.page-plan .plan-counter-control button:focus-visible{outline:2px solid var(--plan-navy);outline-offset:3px}
body.page-plan button:disabled{opacity:.32;cursor:not-allowed}
body.page-plan .plan-calendar-controls{display:flex;justify-content:flex-end;gap:8px;margin:22px 0 12px}
body.page-plan .plan-calendar-controls button{display:grid;width:42px;height:42px;place-items:center;font-size:17px}
body.page-plan .plan-calendar-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}
body.page-plan .plan-calendar-month h3{margin:0 0 20px;text-align:center;color:var(--plan-navy);font:500 16px/1.2 HeroGrotesque,Arial,sans-serif;text-transform:capitalize}
body.page-plan .plan-calendar-weekdays,
body.page-plan .plan-calendar-days{display:grid;grid-template-columns:repeat(7,1fr)}
body.page-plan .plan-calendar-weekdays{margin-bottom:8px;color:#716c66;font:500 10px/1 HeroGrotesque,Arial,sans-serif;text-align:center}
body.page-plan .plan-calendar-days{row-gap:4px}
body.page-plan .plan-calendar-day,
body.page-plan .plan-calendar-empty{aspect-ratio:1;min-width:0}
body.page-plan .plan-calendar-day{border:0;border-radius:0;background:transparent;color:var(--plan-navy);font:500 12px/1 HeroGrotesque,Arial,sans-serif;cursor:pointer}
body.page-plan .plan-calendar-day:not(:disabled):hover{background:rgba(198,152,90,.28)}
body.page-plan .plan-calendar-day.is-in-range{background:rgba(198,152,90,.18)}
body.page-plan .plan-calendar-day:is(.is-start,.is-end){background:var(--plan-navy);color:#fff}
body.page-plan .plan-calendar-day.is-today:not(.is-start):not(.is-end){box-shadow:inset 0 0 0 1px var(--plan-gold)}
body.page-plan .plan-check{display:flex;align-items:flex-start;gap:12px;margin-top:28px;color:#343a40;font:400 15px/1.45 HeroGrotesque,Arial,sans-serif;cursor:pointer}
body.page-plan .plan-check input{width:18px;height:18px;margin:1px 0 0;accent-color:var(--plan-gold)}

body.page-plan .plan-counters{border-top:1px solid var(--plan-line)}
body.page-plan .plan-counter{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:24px 0;border-bottom:1px solid var(--plan-line)}
body.page-plan .plan-counter>div:first-child strong,
body.page-plan .plan-counter>div:first-child span{display:block;font-family:HeroGrotesque,Arial,sans-serif}
body.page-plan .plan-counter>div:first-child strong{margin-bottom:5px;font-size:16px}
body.page-plan .plan-counter>div:first-child span{color:#716c66;font-size:13px}
body.page-plan .plan-counter-control{display:grid;grid-template-columns:42px 40px 42px;align-items:center;text-align:center}
body.page-plan .plan-counter-control button{width:42px;height:42px;font-size:20px}
body.page-plan .plan-counter-control output{font:500 15px/1 HeroGrotesque,Arial,sans-serif}

body.page-plan .plan-required{margin:0 0 36px;color:#716c66;font:400 13px/1.4 HeroGrotesque,Arial,sans-serif}
body.page-plan .plan-contact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 20px}
body.page-plan .plan-contact label:not(.plan-check),
body.page-plan .plan-contact legend{display:block;margin:0 0 9px;color:var(--plan-navy);font:600 12px/1.25 HeroGrotesque,Arial,sans-serif;letter-spacing:.04em;text-transform:uppercase}
body.page-plan .plan-contact input:not([type=checkbox]):not([type=radio]),
body.page-plan .plan-contact select,
body.page-plan .plan-contact textarea{
  width:100%;min-height:52px;padding:14px 12px;border:1px solid var(--plan-line);border-radius:0;background:rgba(255,255,255,.46);
  color:#26292d;font:400 16px/1.4 HeroGrotesque,Arial,sans-serif;box-shadow:none;
}
body.page-plan .plan-contact textarea{min-height:150px;margin-bottom:4px;resize:vertical}
body.page-plan .plan-contact input:focus,
body.page-plan .plan-contact select:focus,
body.page-plan .plan-contact textarea:focus{outline:2px solid var(--plan-gold);outline-offset:1px;border-color:var(--plan-gold)}
body.page-plan .plan-phone-group-label{display:block;margin:0 0 9px;color:var(--plan-navy);font:600 12px/1.25 HeroGrotesque,Arial,sans-serif;letter-spacing:.04em;text-transform:uppercase}
body.page-plan .plan-phone-parts{display:grid;grid-template-columns:120px minmax(0,1fr);gap:8px}
body.page-plan .plan-phone-part{min-width:0;margin:0!important}
body.page-plan .plan-phone-part>span{display:block;margin:0 0 7px;color:#625d56;font:500 10px/1.25 HeroGrotesque,Arial,sans-serif;letter-spacing:.04em;text-transform:uppercase}
body.page-plan .plan-contact fieldset{margin:38px 0 0;padding:0;border:0}
body.page-plan .plan-choice-row{display:flex;flex-wrap:wrap;gap:8px}
body.page-plan .plan-choice-row label{position:relative;margin:0!important;cursor:pointer}
body.page-plan .plan-choice-row input{position:absolute;width:1px;height:1px;opacity:0}
body.page-plan .plan-choice-row span{display:block;padding:14px 18px;border:1px solid var(--plan-line);font:500 13px/1 HeroGrotesque,Arial,sans-serif;text-transform:none}
body.page-plan .plan-choice-row input:checked+span{border-color:var(--plan-navy);background:var(--plan-navy);color:#fff}
body.page-plan .plan-choice-row input:focus-visible+span{outline:2px solid var(--plan-gold);outline-offset:3px}
body.page-plan .plan-contact fieldset+.plan-contact-grid{margin-top:38px}
body.page-plan .plan-contact-grid+label{margin-top:32px!important}
body.page-plan .plan-check-list{margin-top:25px;padding-top:6px;border-top:1px solid var(--plan-line)}
body.page-plan .field-error{margin:8px 0 0;color:#9d351f;font:500 13px/1.4 HeroGrotesque,Arial,sans-serif}
body.page-plan .error-summary{margin:0 0 34px;padding:22px;border:1px solid #9d351f;background:rgba(157,53,31,.05)}
body.page-plan .error-summary h3{margin:0 0 10px;font-size:20px}
body.page-plan .error-summary ul{margin:0;padding-left:20px}
body.page-plan .error-summary a{color:#782817;font:500 14px/1.5 HeroGrotesque,Arial,sans-serif}

body.page-plan .plan-summary{position:sticky;top:128px;margin-top:60px;min-width:0;color:var(--plan-navy)}
body.page-plan .plan-summary-inner{padding:40px 24px;background:rgba(255,255,255,.55)}
body.page-plan .plan-summary h2{font-size:clamp(26px,2.2vw,36px)}
body.page-plan .plan-summary dl{margin:30px 0;border-top:0}
body.page-plan .plan-summary dl>div{display:grid;grid-template-columns:112px 1fr;gap:16px;padding:13px 0;border-bottom:0}
body.page-plan .plan-summary dt{color:#716c66;font:500 11px/1.35 HeroGrotesque,Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase}
body.page-plan .plan-summary dd{margin:0;font:500 14px/1.45 HeroGrotesque,Arial,sans-serif;overflow-wrap:anywhere}
body.page-plan .plan-submit{
  position:relative;display:flex!important;align-items:center;justify-content:space-between;width:100%!important;min-height:58px!important;
  padding:0 20px!important;border:1px solid var(--plan-navy)!important;border-radius:0!important;background:var(--plan-navy)!important;
  color:#fff!important;font:600 12px/1.3 HeroGrotesque,Arial,sans-serif!important;letter-spacing:.12em!important;text-transform:uppercase!important;
  cursor:pointer;transition:background .3s ease,border-color .3s ease,color .3s ease!important;
}
body.page-plan .plan-submit::before,body.page-plan .plan-submit::after{display:none!important}
body.page-plan .plan-submit:is(:hover,:focus-visible){border-color:var(--plan-gold)!important;background:var(--plan-gold)!important;color:var(--plan-navy)!important}
body.page-plan .plan-submit:focus-visible{outline:3px solid var(--plan-gold);outline-offset:4px}
body.page-plan .plan-preview-note{margin:18px 0 0;color:#716c66;font:400 12px/1.5 HeroGrotesque,Arial,sans-serif}

body.page-plan .site-footer{position:relative;height:720px;min-height:720px;overflow:hidden;clip-path:inset(0);padding:0;background:var(--plan-navy)}
body.page-plan .plan-footer-reveal-inner{min-height:720px;padding-top:76px;background:var(--plan-navy);will-change:transform}
body.page-plan .site-footer .home-pdf-footer-grid{margin-top:0}

@media(max-width:1099px){
  body.page-plan .plan-booking{padding-inline:16px}
  body.page-plan .plan-booking-title{white-space:nowrap}
  body.page-plan .plan-booking-layout{grid-template-columns:1fr;gap:105px}
  body.page-plan .plan-booking-main{width:100%;max-width:none}
  body.page-plan .plan-summary{position:static;width:100%;max-width:none;margin-top:0;padding-top:0;border-top:0}
  body.page-plan .plan-summary-inner{max-width:none}
}
@media(max-width:740px){
  body.page-plan .plan-booking{padding:112px 16px 100px}
  body.page-plan .plan-booking-hero{margin-bottom:96px}
  body.page-plan .plan-booking-title{line-height:1;white-space:nowrap}
  body.page-plan .plan-booking-hero>p{margin-top:48px;font-size:17px}
  body.page-plan .plan-form-section{padding-bottom:100px}
  body.page-plan .plan-open-copy{margin-bottom:48px;font-size:17px}
  body.page-plan .plan-form-section>.plan-intro-copy{font-size:17px!important}
  body.page-plan .plan-tour-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  body.page-plan .plan-tour-visual{min-height:0;aspect-ratio:.78}
  body.page-plan .plan-tour-card>strong{font-size:19px}
  body.page-plan .plan-date-top{grid-template-columns:1fr 1fr;gap:18px}
  body.page-plan .plan-date-top button{grid-column:1/-1;width:fit-content}
  body.page-plan .plan-calendar-grid{grid-template-columns:1fr}
  body.page-plan .plan-calendar-month:nth-child(2){display:none}
  body.page-plan .plan-contact-grid{grid-template-columns:1fr}
  body.page-plan .plan-choice-row{display:grid;grid-template-columns:1fr 1fr}
  body.page-plan .plan-summary{padding-top:0}
  body.page-plan .plan-summary-inner{padding:28px 18px}
  body.page-plan .plan-summary dl>div{grid-template-columns:98px 1fr}
  body.page-plan .site-footer{height:auto;min-height:0;overflow:visible;clip-path:none}
  body.page-plan .plan-footer-reveal-inner{min-height:0;padding-top:62px;transform:none!important;will-change:auto}
}
@media(prefers-reduced-motion:reduce){
  body.page-plan .plan-tour-visual img,body.page-plan .plan-submit{transition:none!important}
  body.page-plan .plan-footer-reveal-inner{transform:none!important;will-change:auto}
}
