/* =========================================
   PLAN REQUEST SHARED CSS
   Base/common styles only
========================================= */

/* === HERO === */

.plan-request-hero{
  position:relative;
  overflow:hidden;
  background:transparent !important;
}

.plan-request-hero::before{
  content:none;
}

.plan-request-hero .static-title{
  color:#ffcc00;
  text-transform:none;
  font-family:"Meow Script", cursive;
  font-weight:400;
  font-size:clamp(64px, 9.2vw, 128px);
  line-height:.95;
  letter-spacing:0;
}

.plan-request-hero .static-kicker{
  font-size:clamp(24px, 3.4vw, 38px);
  letter-spacing:1px;
  text-transform:none;
  font-family:"Figtree", sans-serif;
  font-weight:700;
  line-height:1.2;
  color:#fff;
  opacity:1;
}

.plan-request-hero .static-sub{
  margin:10px auto 0;
  max-width:760px;
  text-align:center;
}


/* === PAGE WRAPPER === */

.plan-request-section{
  background:transparent !important;
  position:relative;
  z-index:2;
}

.plan-request-wrap{
  max-width:980px;
}

.plan-request-form{
  background:#fff;
  border:1px solid rgba(0,0,0,.08);
  box-shadow:0 18px 42px rgba(17,54,118,.08);
  padding:22px;
  display:grid;
  gap:14px;
}


/* === STEP BASE === */

.trip-step{
  display:grid;
  gap:14px;
}

.trip-step-title{
  margin:0;
  font-family:"Cal Sans", sans-serif;
  font-size:clamp(26px, 4vw, 40px);
  color:#0A1F44;
  line-height:1.05;
}

.trip-step-sub{
  margin:0;
  font-family:"Figtree", sans-serif;
  font-size:15px;
  color:#000;
}


/* === OPTION GRIDS === */

.travel-type-grid{
  display:grid;
  gap:10px;
  grid-template-columns:repeat(4, minmax(0, 1fr));
}

.location-type-grid{
  display:grid;
  gap:10px;
  grid-template-columns:repeat(3, minmax(0, 1fr));
}

.extra-location-grid{
  grid-template-columns:repeat(3, minmax(0, 1fr));
}


/* === OPTION CARDS === */

.travel-type-card,
.location-card{
  border:1px solid rgba(17,54,118,.3);
  background:#fff;
  color:#113676;
  font-family:"Figtree", sans-serif;
  font-weight:700;
  font-size:14px;
  cursor:pointer;
  text-align:left;
}

.travel-type-card{
  padding:14px 10px;
  display:flex;
  align-items:center;
  gap:10px;
}

.location-card{
  padding:14px 12px;
  min-height:56px;
}

.travel-type-card.is-selected,
.travel-type-card.is-added,
.location-card.is-selected{
  background:#113676;
  border-color:#113676;
  color:#fff;
}

.type-mark{
  width:28px;
  height:28px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:18px;
  font-weight:800;
  line-height:1;
  flex:0 0 auto;
}

.travel-type-card.is-selected .type-mark{
  color:#fff;
}

.travel-type-card.is-added .type-mark{
  color:#113676;
  background:#fff;
  border-radius:999px;
}


/* === EXTRA QUESTIONS === */

.extra-question-box{
  border:1px solid rgba(17,54,118,.14);
  background:#f3f6ff;
  padding:12px;
  display:grid;
  gap:10px;
}

.extra-question-title{
  margin:0;
  font-family:"Figtree", sans-serif;
  font-size:14px;
  font-weight:800;
  color:#000;
}


/* === DYNAMIC QUESTIONS === */

.dynamic-questions{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-start;
  gap:10px;
}

.dynamic-questions .travel-type-card{
  width:auto;
  align-self:flex-start;
}

.dynamic-question-card{
  border:1px solid rgba(17,54,118,.22);
  background:#fff;
  padding:10px 12px;
  display:grid;
  gap:10px;
}

.dynamic-question-head{
  display:flex;
  align-items:center;
  gap:10px;
}

.dynamic-question-title{
  margin:0;
  font-family:"Figtree", sans-serif;
  font-size:14px;
  font-weight:800;
  color:#0A1F44;
}

.dynamic-question-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:12px;
}

.dynamic-question-grid label{
  display:grid;
  gap:6px;
  font-family:"Figtree", sans-serif;
  font-size:14px;
  color:#000;
  font-weight:700;
}

.dynamic-question-grid select{
  border:1px solid rgba(0,0,0,.2);
  outline:none;
  padding:10px 12px;
  font-family:"Figtree", sans-serif;
  font-size:14px;
  background:#fff;
}

.couple-followup-card{
  flex:1 1 100%;
  max-width:720px;
  padding:14px 14px 16px;
  gap:12px;
}

.couple-followup-card .dynamic-question-title{
  font-size:15px;
}

.couple-followup-card .dynamic-question-grid{
  gap:14px;
}

.couple-followup-card .dynamic-question-grid label{
  gap:8px;
}

.couple-followup-card .dynamic-question-grid select{
  min-height:42px;
}


/* === TRAVELER COUNTER === */

.traveler-counter-wrap{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-start;
  gap:10px;
}

.traveler-counter-row{
  display:inline-flex;
  justify-content:space-between;
  align-items:center;
  border:1px solid rgba(17,54,118,.3);
  padding:14px 12px;
  background:#fff;
  min-height:58px;
  width:fit-content;
  min-width:260px;
  gap:16px;
}

.traveler-label{
  font-family:"Figtree", sans-serif;
  font-size:14px;
  font-weight:700;
  color:#113676;
}

.counter-controls{
  display:inline-flex;
  align-items:center;
  gap:10px;
}

.counter-btn{
  width:34px;
  height:34px;
  border:1px solid rgba(17,54,118,.35);
  background:#fff;
  color:#113676;
  font-family:"Figtree", sans-serif;
  font-size:20px;
  line-height:1;
  font-weight:800;
  cursor:pointer;
}

.counter-controls.is-locked .counter-btn{
  opacity:.45;
  cursor:not-allowed;
}

.counter-value{
  min-width:26px;
  text-align:center;
  font-family:"Figtree", sans-serif;
  font-size:16px;
  font-weight:800;
  color:#113676;
}

.traveler-total{
  margin:0;
  font-family:"Figtree", sans-serif;
  font-size:15px;
  font-weight:700;
  color:#113676;
}


/* === FORM FIELDS === */

.plan-request-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:12px;
}

.plan-request-grid label,
.plan-request-full{
  display:grid;
  gap:6px;
  font-family:"Figtree", sans-serif;
  font-size:14px;
  color:#000;
  font-weight:700;
}

.plan-request-grid input,
.plan-request-full select,
.plan-request-full textarea{
  border:1px solid rgba(0,0,0,.2);
  outline:none;
  padding:10px 12px;
  font-family:"Figtree", sans-serif;
  font-size:14px;
  background:#fff;
}

.plan-request-full textarea{
  resize:vertical;
  min-height:120px;
}


/* === DATE FIELD === */

.date-field-btn{
  border:1px solid rgba(0,0,0,.2);
  background:#fff;
  min-height:42px;
  padding:10px 12px;
  text-align:left;
  font-family:"Figtree", sans-serif;
  font-size:14px;
  color:#000;
  border-radius:10px;
  cursor:pointer;
}

.date-field-btn:focus-visible{
  outline:2px solid #113676;
  outline-offset:1px;
}


/* === CALENDAR BASE === */

.calendar-popover{
  width:min(320px, calc(100vw - 24px));
  background:#fff;
  border:1px solid rgba(12,40,30,.2);
  border-radius:14px;
  box-shadow:0 12px 30px rgba(0,0,0,.16);
  padding:10px;
}

.calendar-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-bottom:10px;
}

.calendar-head strong{
  font-family:"Figtree", sans-serif;
  font-size:14px;
  color:#000;
}

.calendar-nav{
  width:30px;
  height:30px;
  border:1px solid rgba(0,0,0,.2);
  background:#fff;
  border-radius:8px;
  cursor:pointer;
}

.calendar-nav:disabled{
  opacity:.45;
  cursor:not-allowed;
}

.calendar-weekdays,
.calendar-days{
  display:grid;
  grid-template-columns:repeat(7, minmax(0, 1fr));
  gap:4px;
}

.calendar-weekdays span{
  text-align:center;
  font-family:"Figtree", sans-serif;
  font-size:11px;
  font-weight:700;
  color:#4f6a5f;
  padding:2px 0;
}

.calendar-day{
  height:34px;
  border:1px solid transparent;
  background:#fff;
  border-radius:8px;
  font-family:"Figtree", sans-serif;
  font-size:13px;
  color:#1a352a;
}

.calendar-day:not(.is-blank):not(.is-disabled){
  cursor:pointer;
}

.calendar-day.is-blank{
  visibility:hidden;
}

.calendar-day.is-disabled{
  color:#9aaba3;
}

.calendar-day.is-today{
  border-color:#113676;
  font-weight:700;
}

.calendar-day.is-selected{
  background:#113676;
  color:#fff;
  font-weight:700;
}

.calendar-day:not(.is-disabled):not(.is-blank):hover{
  background:#ebf5ef;
}


/* === BUDGET BASE === */

.budget-step-wrap{
  display:grid;
  gap:14px;
}

.budget-question-grid{
  align-items:end;
}

.budget-purpose-box{
  display:grid;
  gap:6px;
  align-content:start;
}

.budget-check-inline{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-weight:600;
}

.budget-food-focus{
  margin-top:2px;
}

.tier-recommend-card{
  border:1px solid rgba(10,61,46,.16);
  background:#f8fcfa;
  border-radius:12px;
  padding:14px;
  display:grid;
  gap:10px;
}

.tier-include-list{
  margin:0;
  padding-left:20px;
  display:grid;
  gap:4px;
  font-family:"Figtree", sans-serif;
  color:#000;
}

.tier-compare-wrap,
.budget-input-wrap,
.budget-guidance-box{
  border:1px solid rgba(0,0,0,.1);
  border-radius:12px;
  background:#fff;
  padding:12px;
}

.tier-compare-grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:8px;
}

.budget-link-btn{
  font-size:13px;
}

.dietary-check{
  display:inline-flex;
  align-items:center;
  gap:8px;
  cursor:pointer;
}

.dietary-check input{
  margin:0;
}


/* === ACTIONS / MESSAGE === */

.plan-request-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:6px;
}

.plan-request-msg{
  font-family:"Figtree", sans-serif;
  font-size:14px;
  color:#000;
  min-height:22px;
}

.plan-request-msg.is-error{
  color:#a31212;
}