
/* Shared compact utility-page heading for Build Trip / Trip surfaces. */
.cu-trip-utility-header{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(250px,.42fr);
  gap:clamp(1.2rem,3vw,3rem);
  align-items:center;
  min-height:0;
  margin:0 0 1rem;
  padding:.15rem 0 .8rem;
}
.cu-trip-utility-header__copy .cu-eyebrow{margin:0 0 .28rem}
.cu-trip-utility-header__copy h1{
  margin:0;
  color:var(--cu-green-deep,#24392e);
  font-family:var(--cu-font-heading,serif);
  font-size:clamp(2.15rem,3vw,3.3rem);
  font-weight:400;
  line-height:.94;
  letter-spacing:-.025em;
}
.cu-trip-utility-header__copy>p:not(.cu-eyebrow):last-child{
  max-width:760px;
  margin:.55rem 0 0;
  color:var(--cu-muted,#6c706c);
  font-size:clamp(.92rem,1.15vw,1.08rem);
  line-height:1.45;
}
.cu-trip-utility-header__art{position:relative;height:92px;min-width:0;overflow:hidden;display:flex;align-items:center;justify-content:flex-end}
.cu-trip-utility-header__art img{display:block;width:min(100%,390px);height:auto;max-height:92px;object-fit:contain;object-position:right center;opacity:.82}
.cu-trip-utility-header__art .cu-trip-utility-header__mountains{filter:none}
@media(max-width:820px){
  .cu-trip-utility-header{grid-template-columns:1fr;padding-top:0;margin-bottom:.85rem}
  .cu-trip-utility-header__art{display:none}
  .cu-trip-utility-header__copy h1{font-size:clamp(2.35rem,11vw,3.5rem)}
}

/* Casa Única 5.0.30 — shared Trip utility header + universal Activity Trip popover. */
.cu-activity-trip-action{
  position:relative;
  margin-top:1.35rem;
  width:min(100%, 37rem);
  font-family:var(--cu-font-ui);
  color:var(--cu-ink);
  z-index:8;
}

.cu-activity-trip-action__button{
  min-height:48px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.55rem;
  padding:.72rem 1.15rem;
  border:1px solid var(--cu-copper);
  border-radius:999px;
  background:var(--cu-copper);
  color:var(--cu-cream);
  font:500 .93rem/1 var(--cu-font-ui);
  letter-spacing:.01em;
  cursor:pointer;
  box-shadow:0 10px 24px rgba(70,53,40,.10);
  transition:transform .18s ease, box-shadow .18s ease, background-color .18s ease;
}
.cu-activity-trip-action__button:hover,
.cu-activity-trip-action__button:focus-visible{
  background:var(--cu-gold);
  box-shadow:0 12px 28px rgba(70,53,40,.15);
  transform:translateY(-1px);
}
.cu-activity-trip-action__button:focus-visible,
.cu-activity-trip-action__secondary:focus-visible,
.cu-activity-trip-action__remove:focus-visible,
.cu-activity-trip-action__date:focus-visible,
.cu-activity-trip-action__participants-toggle:focus-visible,
.cu-activity-trip-action__participant-control button:focus-visible{
  outline:none;
  box-shadow:var(--cu-focus-ring);
}
.cu-activity-trip-action__button.is-planned{
  background:var(--cu-activity, var(--cu-copper));
  border-color:var(--cu-activity, var(--cu-copper));
  color:#fff;
}
.cu-activity-trip-action__button.is-needs-rescheduling{
  background:var(--cu-cream);
  color:var(--cu-copper);
}
.cu-activity-trip-action__icon{
  width:1.25rem;
  height:1.25rem;
  display:inline-grid;
  place-items:center;
  position:relative;
  flex:0 0 1.25rem;
  font-size:1.05rem;
  line-height:1;
  text-align:center;
}
/* 5.0.15 optical centering: the Add-to-Trip plus is geometric, never font-baseline aligned. */
.cu-activity-trip-action__icon[data-icon-state="add"]::before,
.cu-activity-trip-action__icon[data-icon-state="add"]::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:.62rem;
  height:1.5px;
  border-radius:999px;
  background:currentColor;
  transform:translate(-50%,-50%);
  pointer-events:none;
}
.cu-activity-trip-action__icon[data-icon-state="add"]::after{
  transform:translate(-50%,-50%) rotate(90deg);
}

.cu-activity-trip-action__panel{
  position:fixed;
  width:min(360px,calc(100vw - 24px));
  max-height:calc(100vh - 24px);
  overflow:auto;
  overscroll-behavior:contain;
  margin:0;
  padding:1rem;
  border:1px solid rgba(166,111,69,.24);
  border-radius:20px;
  background:#fcfbf6;
  box-shadow:0 20px 52px rgba(47,58,49,.22);
  z-index:8500;
  scrollbar-width:thin;
}
.cu-activity-trip-action__panel[hidden]{display:none!important}
.cu-activity-trip-action__panel-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
  margin-bottom:.85rem;
}
.cu-activity-trip-action__panel-head strong,
.cu-activity-trip-action__panel-head span{display:block}
.cu-activity-trip-action__panel-head strong{
  color:var(--cu-ink);
  font-family:var(--cu-font-heading);
  font-size:1.35rem;
  font-weight:400;
  line-height:1.1;
}
.cu-activity-trip-action__panel-head span{
  margin-top:.25rem;
  color:var(--cu-muted);
  font-size:.8rem;
  line-height:1.35;
}
.cu-activity-trip-action__dates{
  display:grid;
  grid-template-columns:1fr;
  gap:.55rem;
}
.cu-activity-trip-action__date{
  min-width:0;
  min-height:64px;
  padding:.6rem .55rem;
  border:1px solid rgba(166,111,69,.24);
  border-radius:15px;
  background:var(--cu-cream);
  color:var(--cu-ink);
  font-family:var(--cu-font-ui);
  cursor:pointer;
}
.cu-activity-trip-action__date strong,
.cu-activity-trip-action__date small{display:block}
.cu-activity-trip-action__date strong{font-size:.86rem;font-weight:500}
.cu-activity-trip-action__date small{margin-top:.22rem;color:var(--cu-muted);font-size:.68rem}
.cu-activity-trip-action__date:hover{border-color:var(--cu-copper);background:rgba(166,111,69,.06)}
.cu-activity-trip-action__date.is-selected{
  border-color:var(--cu-copper);
  background:rgba(166,111,69,.12);
  color:var(--cu-copper);
}
.cu-activity-trip-action__participants{
  margin-top:.85rem;
  padding-top:.85rem;
  border-top:1px solid rgba(94,108,91,.14);
}
.cu-activity-trip-action__participants[hidden]{display:none!important}
.cu-activity-trip-action__participants-summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
}
.cu-activity-trip-action__participants-copy{min-width:0}
.cu-activity-trip-action__participants-copy strong,
.cu-activity-trip-action__participants-copy span{display:block}
.cu-activity-trip-action__participants-copy strong{
  color:var(--cu-ink);
  font:500 .82rem/1.2 var(--cu-font-ui);
}
.cu-activity-trip-action__participants-copy span{
  margin-top:.22rem;
  color:var(--cu-muted);
  font-size:.76rem;
  line-height:1.3;
}
.cu-activity-trip-action__participants-toggle{
  flex:0 0 auto;
  min-height:36px;
  padding:.5rem .8rem;
  border:1px solid rgba(166,111,69,.32);
  border-radius:999px;
  background:transparent;
  color:var(--cu-copper);
  font:500 .76rem/1 var(--cu-font-ui);
  cursor:pointer;
}
.cu-activity-trip-action__participants-toggle:hover{background:rgba(166,111,69,.08)}
.cu-activity-trip-action__participants-editor{
  display:grid;
  gap:.5rem;
  margin-top:.7rem;
}
.cu-activity-trip-action__participants-editor[hidden]{display:none!important}
.cu-activity-trip-action__participant-row{
  min-height:50px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.8rem;
  padding:.42rem .5rem .42rem .75rem;
  border:1px solid rgba(94,108,91,.14);
  border-radius:14px;
  background:rgba(252,251,246,.72);
}
.cu-activity-trip-action__participant-row>strong{
  color:var(--cu-ink);
  font:500 .82rem/1.2 var(--cu-font-ui);
}
.cu-activity-trip-action__participant-control{
  display:flex;
  align-items:center;
  gap:.38rem;
}
.cu-activity-trip-action__participant-control button{
  width:34px;
  height:34px;
  display:inline-grid;
  place-items:center;
  padding:0;
  border:1px solid rgba(94,108,91,.28);
  border-radius:50%;
  background:var(--cu-cream);
  color:var(--cu-green);
  font:400 1rem/1 var(--cu-font-ui);
  cursor:pointer;
}
.cu-activity-trip-action__participant-control button:hover:not(:disabled){background:rgba(94,108,91,.07)}
.cu-activity-trip-action__participant-control button:disabled{opacity:.32;cursor:default}
.cu-activity-trip-action__participant-control span{
  min-width:2rem;
  text-align:center;
  color:var(--cu-ink);
  font:500 .92rem/1 var(--cu-font-ui);
}

.cu-activity-trip-action__footer{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  flex-wrap:wrap;
  gap:.55rem;
  margin-top:.8rem;
}
.cu-activity-trip-action__secondary,
.cu-activity-trip-action__remove{
  min-height:40px;
  padding:.6rem .9rem;
  border-radius:999px;
  font:500 .8rem/1 var(--cu-font-ui);
  cursor:pointer;
}
.cu-activity-trip-action__secondary{
  border:1px solid rgba(166,111,69,.34);
  background:transparent;
  color:var(--cu-copper);
}
.cu-activity-trip-action__remove{
  border:0;
  background:transparent;
  color:var(--cu-muted);
}
.cu-activity-trip-action__secondary:hover{background:rgba(166,111,69,.08)}
.cu-activity-trip-action__remove:hover{color:var(--cu-danger)}
.cu-activity-trip-action.is-busy{opacity:.72;pointer-events:none}

@media(max-width:680px){
  .cu-activity-trip-action{width:100%;margin-top:1rem}
  .cu-activity-trip-action__button{width:100%;min-height:46px}
  .cu-activity-trip-action__panel{width:min(360px,calc(100vw - 20px));max-height:calc(100vh - 20px);padding:.85rem;border-radius:17px}
  .cu-activity-trip-action__dates{grid-template-columns:1fr}
  .cu-activity-trip-action__date{min-height:54px;text-align:left;padding:.55rem .75rem}
  .cu-activity-trip-action__participants-summary{align-items:flex-start}
  .cu-activity-trip-action__participant-row{min-height:48px;padding:.4rem .42rem .4rem .65rem}
  .cu-activity-trip-action__participant-control button{width:36px;height:36px}
  .cu-activity-trip-action__footer{align-items:stretch;flex-direction:column}
  .cu-activity-trip-action__secondary,
  .cu-activity-trip-action__remove{width:100%}
}

/* Casa Única 4.7.30 — Phase 8A projection-switch visual correction. */
.cu-booking-total-card__header .cu-trip-projection-tabs{
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:center;
  width:min(100%, 270px);
  margin:.8rem auto .35rem;
  padding:.2rem;
  border:1px solid rgba(166,111,69,.28);
  border-radius:999px;
  background:rgba(245,241,233,.88);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.7);
}
.cu-trip-projection-tabs button{
  width:100%;
  min-height:38px;
  padding:.55rem .85rem;
  border:0;
  border-radius:999px;
  background:transparent;
  color:var(--cu-green-dark);
  font:600 .76rem/1 var(--cu-font-ui);
  letter-spacing:.01em;
  cursor:pointer;
  transition:background-color .16s ease,color .16s ease,box-shadow .16s ease;
}
.cu-trip-projection-tabs button[data-cu-trip-projection-tab="financial"].is-active{
  background:var(--cu-green);
  color:#fff;
  box-shadow:0 4px 12px rgba(52,73,56,.16);
}
.cu-trip-projection-tabs button[data-cu-trip-projection-tab="itinerary"].is-active{
  background:var(--cu-copper);
  color:#fff;
  box-shadow:0 4px 12px rgba(166,111,69,.16);
}
.cu-trip-projection-tabs button:focus-visible{
  outline:none;
  box-shadow:0 0 0 3px rgba(166,111,69,.20);
}
.cu-trip-itinerary-view{display:none}
.cu-booking-total-card.is-itinerary-mode .cu-trip-itinerary-view{display:block}
.cu-booking-total-card.is-itinerary-mode .cu-quote-lines{display:none}
@media(max-width:680px){
  .cu-booking-total-card__header{align-items:flex-start;flex-direction:column}
  .cu-booking-total-card__header .cu-trip-projection-tabs{width:100%;max-width:none;margin:.75rem auto .3rem}
  .cu-trip-projection-tabs button{width:100%;min-height:40px}
}


/* Casa Única 4.7.31 — Phase 8B: itinerary is the complete chronological view;
   financial is the aggregated trip-charge summary. */
.cu-booking-total-card.has-trip-projection-switch .cu-quote-lines{display:none}
.cu-trip-financial-summary-view{display:block}
.cu-booking-total-card.is-itinerary-mode .cu-trip-financial-summary-view{display:none}
.cu-booking-total-card.is-itinerary-mode .cu-trip-itinerary-view{display:block}
.cu-booking-total-card:not(.is-itinerary-mode) .cu-trip-itinerary-view{display:none}

.cu-trip-financial-summary{display:grid;gap:.85rem}
.cu-trip-financial-box{
  overflow:hidden;
  border:1px solid rgba(94,108,91,.14);
  border-radius:16px;
  background:rgba(255,255,255,.62);
}
.cu-trip-financial-box>header{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:.75rem;
  padding:.78rem .86rem;
  border-bottom:1px solid rgba(94,108,91,.12);
  background:rgba(239,245,240,.58);
}
.cu-trip-financial-box>header strong{
  color:var(--cu-copper);
  font:600 .68rem/1 var(--cu-font-ui);
  letter-spacing:.08em;
  text-transform:uppercase;
}
.cu-trip-financial-box>header small{
  color:var(--cu-muted);
  font:.66rem/1.25 var(--cu-font-ui);
  text-align:right;
}
.cu-trip-financial-box--external{
  border-color:rgba(166,111,69,.28);
  background:rgba(251,247,240,.72);
}
.cu-trip-financial-box--external>header{background:rgba(184,117,65,.07)}
.cu-trip-financial-rows{display:grid}
.cu-trip-financial-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto minmax(5.75rem,auto);
  align-items:center;
  gap:.55rem .7rem;
  padding:.8rem .86rem;
  border-top:1px solid rgba(94,108,91,.09);
}
.cu-trip-financial-row:first-child{border-top:0}
.cu-trip-financial-row span>strong,
.cu-trip-financial-row span>small{display:block}
.cu-trip-financial-row span>strong{
  color:var(--cu-green-dark);
  font:500 .84rem/1.3 var(--cu-font-ui);
}
.cu-trip-financial-row span>small{
  margin-top:.2rem;
  color:var(--cu-muted);
  font:.7rem/1.4 var(--cu-font-ui);
}
.cu-trip-financial-row__amount{
  grid-column:3;
  justify-self:end;
  color:var(--cu-green-dark);
  font:600 .82rem/1.3 var(--cu-font-ui);
  text-align:right;
  white-space:nowrap;
}
.cu-trip-financial-row__actions{grid-column:2;display:flex;align-items:center;justify-content:center;gap:.35rem;max-width:100%;white-space:nowrap}
.cu-trip-financial-row__actions>button{
  min-height:32px;
  padding:.34rem .62rem;
  border:1px solid rgba(181,109,55,.34);
  border-radius:999px;
  background:#fff;
  color:var(--cu-copper,#a96636);
  font:500 .68rem/1 var(--cu-font-ui);
  cursor:pointer;
}
.cu-trip-financial-row__actions>button:hover{background:rgba(181,109,55,.06)}
.cu-trip-financial-row__actions>button:disabled{opacity:.55;cursor:wait}
.cu-trip-financial-row__service-editor{grid-column:1/-1;min-width:0}
.cu-trip-financial-row__service-editor:empty{display:none}
.cu-trip-financial-row__service-editor .cu-stay-service-inline-editor{margin-top:.2rem;padding-top:.55rem;border-top:1px solid rgba(94,108,91,.09)}
.cu-trip-financial-row--external .cu-trip-financial-row__amount{color:var(--cu-copper)}
.cu-trip-financial-empty{
  padding:.85rem;
  color:var(--cu-muted);
  font:.75rem/1.4 var(--cu-font-ui);
}
.cu-trip-itinerary-view .cu-trip-itinerary-bucket{margin-top:.85rem}

@media(max-width:680px){
  .cu-trip-financial-row{grid-template-columns:minmax(0,1fr) auto minmax(5.25rem,auto);padding:.75rem .78rem;gap:.5rem}
  .cu-trip-financial-box>header{align-items:flex-start;flex-direction:column}
  .cu-trip-financial-box>header small{text-align:left}
}

/* Casa Única 4.7.32 — Phase 8C: finance grouping, domain theming and in-card activity review. */
.cu-trip-domain--stay,
.cu-trip-domain--casa-unica{--cu-trip-domain-accent:var(--cu-green)}
.cu-trip-domain--activity,
.cu-trip-domain--external{--cu-trip-domain-accent:var(--cu-copper)}

.cu-trip-financial-box--available-services{
  border-color:var(--cu-available-services-border);
  background:var(--cu-available-services-soft);
}
.cu-trip-financial-box--available-services>header{background:var(--cu-available-services-header)}
.cu-trip-financial-box--available-services>header strong{color:var(--cu-available-services-deep)}
.cu-trip-financial-box--activities{
  border-color:rgba(166,111,69,.32);
  background:rgba(251,247,240,.78);
}
.cu-trip-financial-box--activities>header{background:rgba(184,117,65,.08)}
.cu-trip-financial-box--activities>header strong{color:var(--cu-copper)}
.cu-trip-financial-row--activity>span>strong,
.cu-trip-financial-row--activity .cu-trip-financial-row__amount{color:var(--cu-copper)}
.cu-trip-financial-row--stay>span>strong,
.cu-trip-financial-row--stay .cu-trip-financial-row__amount,
.cu-trip-financial-row:not(.cu-trip-domain--activity)>span>strong,
.cu-trip-financial-row:not(.cu-trip-domain--activity) .cu-trip-financial-row__amount{color:var(--cu-green-dark)}

/* 5.0.68 — one canonical itinerary structure. Booking/Unit/Trip Review no longer
   own competing row geometry or quote-line aliases. */
.cu-itinerary{display:grid;gap:.9rem}
.cu-itinerary-day,
.cu-trip-itinerary-bucket{overflow:hidden;border:1px solid rgba(36,70,58,.12);border-radius:16px;background:rgba(255,255,255,.62)}
.cu-itinerary-day__header,
.cu-trip-itinerary-bucket>header{display:flex;align-items:flex-end;justify-content:space-between;gap:.75rem;padding:.72rem .8rem;border-bottom:1px solid rgba(36,70,58,.09);background:rgba(230,239,233,.38)}
.cu-itinerary-day__header span,
.cu-trip-itinerary-bucket>header span{color:var(--cu-copper);font:600 .66rem/1 var(--cu-font-ui);letter-spacing:.08em;text-transform:uppercase}
.cu-itinerary-day__header strong,
.cu-trip-itinerary-bucket>header strong{color:var(--cu-green-dark);font:500 .82rem/1.3 var(--cu-font-ui);text-align:right}
.cu-itinerary-day__events,
.cu-trip-itinerary-bucket>div{position:relative;display:grid;padding:0}
/* The price has its own rightmost title-row cell on every screen size.
   When a priced row also has a planner control, give that control a separate
   cell rather than letting its width push the price beneath the description. */
.cu-itinerary-row{position:relative;display:grid;grid-template-columns:12px minmax(0,1fr) max-content;gap:.6rem;align-items:start;min-width:0;padding:.75rem .8rem;border-bottom:1px solid rgba(36,70,58,.08)}
.cu-itinerary-row--priced-action{grid-template-columns:12px minmax(0,1fr) max-content max-content}
.cu-itinerary-row:last-child{border-bottom:0}
.cu-itinerary-row__marker{position:relative;width:9px;height:9px;margin-top:.34rem;border:2px solid var(--cu-green);border-radius:50%;background:#fff;z-index:1}
.cu-itinerary-row:not(:last-child)::after{content:"";position:absolute;top:calc(.75rem + 18px);bottom:calc(-.75rem - 1px);left:calc(.8rem + 4px);width:1px;background:rgba(36,70,58,.16)}
.cu-itinerary-row--accommodation .cu-itinerary-row__marker,
.cu-itinerary-row--checkin_marker .cu-itinerary-row__marker,
.cu-itinerary-row--checkout_marker .cu-itinerary-row__marker,
.cu-itinerary-row--early_checkin .cu-itinerary-row__marker,
.cu-itinerary-row--late_checkout .cu-itinerary-row__marker{border-color:var(--cu-green);background:var(--cu-green)}
.cu-itinerary-row--breakfast .cu-itinerary-row__marker,
.cu-itinerary-row--laundry .cu-itinerary-row__marker{border-color:var(--cu-green);background:var(--cu-green)}
.cu-itinerary-row--breakfast .cu-itinerary-row__copy strong,
.cu-itinerary-row--laundry .cu-itinerary-row__copy strong{color:var(--cu-green-dark)}
.cu-itinerary-row--early_checkin .cu-itinerary-row__copy strong,
.cu-itinerary-row--late_checkout .cu-itinerary-row__copy strong,
.cu-itinerary-row--accommodation .cu-itinerary-row__copy strong,
.cu-itinerary-row--checkin_marker .cu-itinerary-row__copy strong,
.cu-itinerary-row--checkout_marker .cu-itinerary-row__copy strong{color:var(--cu-green-dark)}
.cu-itinerary-row--planning .cu-itinerary-row__marker{border-color:var(--cu-copper);background:var(--cu-copper)}
.cu-itinerary-row__copy{min-width:0;padding-right:.35rem}
.cu-itinerary-row__copy strong,
.cu-itinerary-row__copy small{display:block}
.cu-itinerary-row__copy strong{color:var(--cu-green-dark);font:500 .84rem/1.35 var(--cu-font-ui)}
.cu-itinerary-row__copy small{margin-top:.15rem;color:var(--cu-muted);font:.74rem/1.45 var(--cu-font-ui)}
.cu-itinerary-row--planning .cu-itinerary-row__copy strong,
.cu-itinerary-row--planning .cu-itinerary-row__amount{color:var(--cu-copper)}
.cu-itinerary-row__status{display:block;margin-top:.24rem;padding:.3rem .42rem;border-radius:7px;background:rgba(36,70,58,.07);color:var(--cu-green);font:.68rem/1.45 var(--cu-font-ui)}
.cu-itinerary-row__status.is-unavailable{background:rgba(168,42,42,.08);color:#a82a2a}
.cu-itinerary-row__amount{justify-self:end;text-align:right;padding-top:.02rem;color:var(--cu-green-dark);font:600 .82rem/1.35 var(--cu-font-ui);white-space:nowrap}
.cu-itinerary-row__actions{display:flex;align-items:center;justify-content:flex-end;gap:.45rem;min-width:0}
.cu-itinerary-day--summary{background:rgba(255,255,255,.42)}
.cu-itinerary-day--summary .cu-itinerary-day__header{background:transparent}
.cu-trip-itinerary-view .cu-trip-itinerary-bucket{margin-top:.85rem}
.cu-trip-itinerary-bucket.is-needs-rescheduling{border-color:rgba(166,111,69,.34)}
.cu-trip-itinerary-bucket.is-saved{background:rgba(255,255,255,.45)}
.cu-trip-itinerary-day__empty,
.cu-trip-itinerary-empty{padding:.75rem .8rem;color:var(--cu-muted);font:.76rem/1.4 var(--cu-font-ui)}

/* The same planner controller can have a compact row trigger without becoming a second planner. */
.cu-activity-trip-action--itinerary,
.cu-activity-trip-action--financial{width:auto;margin:0;z-index:8}
.cu-activity-trip-action--itinerary .cu-activity-trip-action__button,
.cu-activity-trip-action--financial .cu-activity-trip-action__button{min-height:30px;padding:.38rem .66rem;gap:0;border-color:rgba(166,111,69,.34);background:rgba(255,255,255,.82);color:var(--cu-copper);font:600 .65rem/1 var(--cu-font-ui);box-shadow:none;white-space:nowrap}
.cu-activity-trip-action--itinerary .cu-activity-trip-action__button:hover,
.cu-activity-trip-action--itinerary .cu-activity-trip-action__button:focus-visible,
.cu-activity-trip-action--financial .cu-activity-trip-action__button:hover,
.cu-activity-trip-action--financial .cu-activity-trip-action__button:focus-visible{background:rgba(184,117,65,.08);color:var(--cu-copper);transform:none}
.cu-activity-trip-action--itinerary .cu-activity-trip-action__icon,
.cu-activity-trip-action--financial .cu-activity-trip-action__icon{display:none}
.cu-activity-trip-action--itinerary .cu-activity-trip-action__button.is-planned,
.cu-activity-trip-action--financial .cu-activity-trip-action__button.is-planned{background:rgba(255,255,255,.82);border-color:rgba(166,111,69,.34);color:var(--cu-copper)}
.cu-activity-trip-action--itinerary .cu-activity-trip-action__button.is-needs-rescheduling,
.cu-activity-trip-action--financial .cu-activity-trip-action__button.is-needs-rescheduling{background:var(--cu-cream);border-color:var(--cu-copper);color:var(--cu-copper)}

.cu-itinerary-day__when{display:grid;gap:.08rem;justify-items:end;min-width:0}
.cu-itinerary-day__when small{color:var(--cu-muted);font-size:.72rem;font-weight:400;line-height:1.3;text-align:right}
.cu-itinerary-day__when .cu-itinerary-day__timing--requested{color:var(--cu-green);font-weight:500}
.cu-itinerary-day__when .cu-itinerary-day__timing--fallback{max-width:16rem;color:var(--cu-muted);font-size:.7rem;line-height:1.3}

@media(max-width:680px){
  .cu-itinerary-day__header{align-items:flex-start;flex-direction:column;gap:.18rem}
  .cu-itinerary-day__header strong{text-align:left}
  .cu-itinerary-day__when{justify-items:start}
  .cu-itinerary-day__when small{text-align:left}
  .cu-itinerary-day__when .cu-itinerary-day__timing--fallback{max-width:none;text-align:left}
  /* Preserve the desktop title/price alignment on narrow screens. Any
     interactive planner action gets its own second row, without competing
     for horizontal space with the accommodation name or amount. */
  .cu-itinerary-row,
  .cu-itinerary-row--priced-action{grid-template-columns:12px minmax(0,1fr) max-content;padding:.72rem .75rem}
  .cu-itinerary-row:not(:last-child)::after{top:calc(.72rem + 18px);bottom:calc(-.72rem - 1px);left:calc(.75rem + 4px)}
  .cu-itinerary-row__actions{grid-column:3;justify-content:flex-end}
  .cu-itinerary-row--has-action .cu-itinerary-row__actions{grid-column:2 / -1;grid-row:2;justify-content:flex-start;margin-top:.3rem}
  .cu-itinerary-row--priced-action .cu-itinerary-row__amount{grid-column:3;grid-row:1}
}

/* 5.0.31 — universal Activity Trip planner portal.
   The open panel is moved under <body>, above page/card/map stacking contexts while remaining below the fixed site header, so opening it never changes card geometry or bleeds through. */
body > .cu-activity-trip-action__panel[data-cu-trip-action-portaled]{
  position:fixed!important;
  z-index:8500!important;
  background:#fcfbf6!important;
  opacity:1!important;
  isolation:isolate;
  pointer-events:auto;
}
.cu-activity-trip-action__message{min-height:0;margin:.7rem 0 0;color:#9b6040;font-size:.78rem;line-height:1.35}
.cu-activity-trip-action__message:empty{display:none}

/* 5.0.31 — the universal trip planner is a true viewport popover. */
body > .cu-activity-trip-action__panel[data-cu-trip-action-portaled]{
  box-sizing:border-box!important;
  overflow:auto!important;
  visibility:visible!important;
  transform:none!important;
  filter:none!important;
  backdrop-filter:none!important;
}

/* 5.0.38 — Trip planner gains optional start time and entity-specific planning fields. */
.cu-activity-trip-action__time{
  margin-top:.75rem;
  padding-top:.75rem;
  border-top:1px solid rgba(94,108,91,.14);
}
.cu-activity-trip-action__time label{display:grid;grid-template-columns:1fr auto;gap:.18rem .75rem;align-items:end}
.cu-activity-trip-action__time strong{font:500 .82rem/1.2 var(--cu-font-ui);color:var(--cu-ink)}
.cu-activity-trip-action__time span{grid-column:1;color:var(--cu-muted);font-size:.7rem;line-height:1.3}
.cu-activity-trip-action__time input{
  grid-column:2;grid-row:1 / span 2;
  min-width:116px;
  min-height:40px;
  padding:.48rem .65rem;
  border:1px solid rgba(94,108,91,.22);
  border-radius:12px;
  background:#fff;
  color:var(--cu-ink);
  font:500 .78rem/1 var(--cu-font-ui);
}
.cu-activity-trip-action__time input:focus-visible{outline:none;box-shadow:var(--cu-focus-ring)}
.cu-activity-trip-action__extra:empty{display:none}
.cu-activity-trip-action__extra{display:grid;gap:.65rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid rgba(94,108,91,.14)}
.cu-trip-action-field{display:grid;gap:.28rem}
.cu-trip-action-field>span{font:500 .78rem/1.25 var(--cu-font-ui);color:var(--cu-ink)}
.cu-trip-action-field select,.cu-trip-action-field input[type="text"],.cu-trip-action-field input[type="number"]{
  width:100%;min-height:42px;padding:.55rem .65rem;border:1px solid rgba(94,108,91,.22);border-radius:12px;background:#fff;color:var(--cu-ink);font:.78rem/1.2 var(--cu-font-ui)
}
.cu-trip-action-field--inline{display:flex;align-items:center;gap:.55rem;color:var(--cu-muted);font-size:.75rem}
.cu-trip-action-field--inline input{width:auto}
.cu-trip-action-hint{margin:0;color:var(--cu-muted);font-size:.7rem;line-height:1.4}

/* A bright success-green border confirms that a user-entered clock was accepted into the canonical itinerary. Auto-scheduled times remain neutral. */
.cu-activity-trip-action__time input.is-user-confirmed,
.cu-activity-trip-action__time input[data-cu-time-confirmed="1"]{
  border:2px solid #59aE62;
  box-shadow:0 0 0 3px rgba(89,174,98,.16);
}

/* 5.0.65 — Activity-card media actions use one exact geometry.
   Hydrated Trip actions and direct guide links share this same control class. */
.cu-activity-trip-action.cu-activity-trip-action--media{
  display:flex;
  width:fit-content;
  max-width:none;
  margin-top:0;
}
.cu-trip-media-action-control{
  box-sizing:border-box;
  min-height:46px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.55rem;
  padding:.68rem 1rem;
  border:1px solid var(--cu-activity, var(--cu-copper));
  border-radius:999px;
  background:var(--cu-activity, var(--cu-copper));
  color:#fff;
  font:500 .93rem/1 var(--cu-font-ui);
  letter-spacing:.01em;
  text-decoration:none!important;
  white-space:nowrap;
  box-shadow:0 10px 24px rgba(70,53,40,.10);
}
.cu-trip-media-action-control:hover,
.cu-trip-media-action-control:focus-visible{
  background:var(--cu-gold);
  border-color:var(--cu-gold);
  color:#fff;
}
.cu-trip-activity-card__media .cu-activity-trip-action.cu-activity-trip-action--media{
  position:relative;
  width:auto;
  max-width:none;
  margin:0;
  padding:0;
}
.cu-trip-activity-card__media .cu-trip-media-action-control{
  position:static;
  z-index:auto;
  margin:0;
  height:46px;
  min-height:46px;
  max-height:46px;
  padding:.68rem 1rem;
}
.cu-activity-trip-action__button.cu-trip-media-action-control.is-needs-rescheduling,
.cu-activity-trip-action__button.cu-trip-media-action-control.is-needs-rescheduling:hover,
.cu-activity-trip-action__button.cu-trip-media-action-control.is-needs-rescheduling:focus-visible{
  background:var(--cu-cream);
  border-color:var(--cu-copper);
  color:var(--cu-copper);
}

/* 5.0.84 — Financial-summary action geometry and semantic action colors. */
.cu-trip-financial-box--activities .cu-trip-financial-row{
  grid-template-columns:minmax(0,1fr) 5.6rem 8.8rem;
}
.cu-trip-financial-box--activities .cu-trip-financial-row__actions{
  width:5.6rem;
  justify-content:center;
}
.cu-trip-financial-box--activities .cu-trip-financial-row__actions>button{
  min-width:5rem;
  justify-content:center;
}
.cu-trip-financial-row:not(.cu-trip-domain--activity) .cu-trip-financial-row__actions>button{
  border-color:rgba(70,83,68,.36);
  color:var(--cu-green-dark,#465344);
}
.cu-trip-financial-row:not(.cu-trip-domain--activity) .cu-trip-financial-row__actions>button:hover{
  border-color:var(--cu-green-dark,#465344);
  background:rgba(70,83,68,.07);
}
.cu-trip-financial-row.is-editing-service .cu-trip-financial-row__actions{display:none}
.cu-trip-financial-row.is-editing-service .cu-trip-financial-row__service-editor{margin-top:.1rem}
.cu-trip-financial-box--available-services>header{
  align-items:center;
}
.cu-trip-financial-box--available-services .cu-stay-services-manager__batch-add{
  border-color:var(--cu-available-services-border);
  color:var(--cu-available-services-deep);
}
.cu-trip-financial-box--available-services .cu-stay-services-manager__batch-add.is-ready:not(:disabled){
  border-color:var(--cu-available-services);
  background:var(--cu-available-services);
  color:#fff;
}
@media(max-width:680px){
  .cu-trip-financial-box--activities .cu-trip-financial-row{
    grid-template-columns:minmax(0,1fr) 5.25rem minmax(7.8rem,auto);
  }
  .cu-trip-financial-box--activities .cu-trip-financial-row__actions{width:5.25rem}
}
.cu-trip-financial-box--activities .cu-trip-financial-row__action,
.cu-trip-financial-box--activities .cu-activity-trip-action--financial{width:100%}
.cu-trip-financial-box--activities .cu-activity-trip-action--financial .cu-activity-trip-action__button{width:100%;justify-content:center}


/* 5.0.85 — canonical itinerary domain classes. */
.cu-itinerary-row.cu-trip-domain--casa-unica .cu-itinerary-row__marker{border-color:var(--cu-green);background:var(--cu-green)}
.cu-itinerary-row.cu-trip-domain--casa-unica .cu-itinerary-row__copy strong,.cu-itinerary-row.cu-trip-domain--casa-unica .cu-itinerary-row__amount{color:var(--cu-green-dark)}
.cu-itinerary-row.cu-trip-domain--external .cu-itinerary-row__marker{border-color:var(--cu-copper);background:var(--cu-copper)}
.cu-itinerary-row.cu-trip-domain--external .cu-itinerary-row__copy strong,.cu-itinerary-row.cu-trip-domain--external .cu-itinerary-row__amount{color:var(--cu-copper)}


/* 5.0.86 — Trip semantic palette. Committed Casa Única money/items are visibly
   green; uncommitted/available choices are neutral grey; activities/external
   providers remain copper. */
.cu-trip-financial-box--nightly,
.cu-trip-financial-box--addons{
  border-color:rgba(94,108,91,.30);
  background:rgba(245,249,244,.92);
}
.cu-trip-financial-box--nightly>header,
.cu-trip-financial-box--addons>header{
  background:rgba(94,108,91,.12);
}
.cu-trip-financial-box--nightly>header strong,
.cu-trip-financial-box--addons>header strong,
.cu-trip-financial-box--nightly .cu-trip-financial-row>span>strong,
.cu-trip-financial-box--addons .cu-trip-financial-row>span>strong,
.cu-trip-financial-box--nightly .cu-trip-financial-row__amount,
.cu-trip-financial-box--addons .cu-trip-financial-row__amount{
  color:var(--cu-green-dark,#465344);
}


/* 5.0.87 — balanced Financial Summary header rhythm. All desktop section bands
   share one moderate height; the Available Services action is slightly tighter
   so its presence does not make that neutral section taller than its peers. */
@media(min-width:681px){
  .cu-trip-review-financial .cu-trip-financial-box>header{
    box-sizing:border-box;
    min-height:var(--cu-planning-section-header-height,52px);
    align-items:center;
    padding:.62rem .86rem;
  }
  .cu-trip-review-financial .cu-trip-financial-box--available-services .cu-stay-services-manager__batch-add{
    min-height:30px;
    padding:5px 15px;
  }
}


/* --------------------------------------------------------------------------
   5.0.199 — shared planning-page top rhythm.
   Search owns a compact utility hero: eyebrow/H1 sit close to the navigation,
   while the approved Laguna mountain mark remains a small secondary emblem.
   -------------------------------------------------------------------------- */
.cu-trip-utility-header{
  gap:clamp(1rem,2.4vw,2.4rem);
  margin:0 0 .55rem;
  padding:0;
}
.cu-trip-utility-header__copy .cu-eyebrow{margin:0 0 .2rem}
.cu-trip-utility-header__copy>p:not(.cu-eyebrow):last-child{
  max-width:760px;
  margin:.45rem 0 0;
  color:var(--cu-muted,#6c706c);
  font-size:clamp(.92rem,1.15vw,1.08rem);
  line-height:1.4;
}
.cu-trip-utility-header__art{height:72px}
.cu-trip-utility-header__art img{max-height:72px;width:min(100%,360px);opacity:.8}

/* Lunar event labels/values align in actual columns, not spaces or offsets.
   All text remains owned by the canonical .cu-itinerary-row__copy styles. */
.cu-lunar-detail-grid{display:grid;grid-template-columns:max-content minmax(0,1fr);column-gap:.75rem;align-items:baseline}
.cu-lunar-detail-grid>small{min-width:0}

/* Lunar events inherit the canonical itinerary title/detail typography.
   Only the fixed-size artwork area differs from other Casa Única rows. */
.cu-itinerary-row--lunar .cu-lunar-itinerary-art{width:64px;height:64px;display:flex;align-items:center;justify-content:center;pointer-events:none;align-self:center}
.cu-itinerary-row--lunar .cu-lunar-itinerary-image{width:64px;height:64px;display:block;max-width:none}
@media(max-width:680px){
  .cu-itinerary-row.cu-itinerary-row--lunar{grid-template-columns:12px minmax(0,1fr) 52px;gap:.55rem}
  .cu-itinerary-row--lunar .cu-lunar-itinerary-art,
  .cu-itinerary-row--lunar .cu-lunar-itinerary-image{width:52px;height:52px}
}


/* 5.0.331 — the Add state has text only; leave saved/review/status icons. */
.cu-activity-trip-action__icon[data-icon-state="add"]{display:none!important}
