:root {
  --builder-green: #102d26;
  --builder-ink: #13241e;
  --builder-paper: #f4f2eb;
  --builder-card: #fff;
  --builder-line: #cdd3ce;
  --builder-soft: #e8ede8;
  --builder-orange: #d85d39;
  --builder-muted: #637169;
}

/* Trip studio: keep discovery welcoming and reveal planning detail in stages. */
.trip-builder-app [hidden] { display: none !important; }
.trip-studio { display: grid; grid-template-columns: 1fr 1.1fr; gap: clamp(28px, 5vw, 80px); padding: clamp(24px, 4vw, 60px); margin: 0 0 36px; border-radius: 24px; background: #e6ebe2; color: #16382e; }
.trip-studio-intro { align-self: center; }
.trip-studio-intro h2 { font-family: Georgia, serif; font-size: clamp(38px, 4.3vw, 68px); font-weight: 400; line-height: 1.04; letter-spacing: -.045em; margin: 20px 0; }
.trip-studio-intro h2 em { color: #a7472e; font-weight: 400; }
.trip-studio-intro > p:last-of-type { max-width: 380px; font-size: 16px; line-height: 1.7; color: #526359; }
.trip-studio-chips { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 28px; }
.trip-studio button, .trip-studio-navigation button, .trip-studio-steps button { font: inherit; cursor: pointer; }
.trip-studio-chips button { padding: 12px 16px; border: 1px solid #b0bfb0; border-radius: 30px; color: #204234; background: transparent; font-size: 12px; }
.trip-studio-chips button:hover { background: #fff; border-color: #204234; }
.trip-chat { min-width: 0; background: #fffefb; border: 1px solid #d5dcd1; border-radius: 18px; padding: clamp(18px, 2vw, 30px); box-shadow: 0 16px 40px #183d2410; }
.trip-chat-heading { display: flex; align-items: center; gap: 12px; margin-bottom: 20px; }
.trip-chat-spark { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 14px; background: #193d30; color: #e3efb0; font-size: 27px; }
.trip-chat-heading strong { display: block; font-size: 16px; }
.trip-chat-heading small { display: block; margin-top: 3px; font-size: 11px; color: #657266; }
.trip-chat-log { max-height: 300px; overflow-y: auto; overscroll-behavior: contain; }
.trip-chat-message { margin: 0 0 14px; background: #eef2e9; padding: 15px 18px; border-radius: 2px 15px 15px; font-size: 14px; line-height: 1.65; white-space: pre-wrap; overflow-wrap: anywhere; }
.trip-chat-message.is-user { background: #214938; color: white; margin-left: 26px; border-radius: 15px 2px 15px 15px; }
.trip-chat textarea { box-sizing: border-box; width: 100%; border: 1px solid #aebcae; border-radius: 12px; padding: 15px; min-height: 110px; resize: vertical; font: inherit; font-size: 14px; color: #193c2f; background: #fff; }
.trip-chat-actions { display: flex; gap: 16px; align-items: center; justify-content: space-between; margin-top: 13px; }
.trip-chat-actions small { max-width: 220px; font-size: 10px; line-height: 1.5; color: #5e6a60; }
.trip-chat-actions button, [data-chat-draft] > button { border: 0; border-radius: 10px; padding: 13px 17px; background: #244d39; color: #fff; font-size: 12px; font-weight: 700; }
.trip-studio button:disabled { opacity: .55; cursor: default; }
.trip-chat-status { margin: 10px 0 0; font-size: 12px; line-height: 1.5; color: #785037; }
[data-chat-draft]:not(:empty) { margin-top: 22px; padding-top: 20px; border-top: 1px solid #d4ddcf; }
[data-chat-draft] h3 { font: 28px Georgia, serif; margin: 0 0 10px; }
[data-chat-draft] p, [data-chat-draft] li { font-size: 12px; line-height: 1.6; }
[data-chat-draft] ol { max-height: 290px; overflow-y: auto; padding-left: 23px; }
[data-chat-draft] li { padding: 0 0 12px 4px; }
[data-chat-draft] li span { display: block; color: #647063; }
[data-chat-draft] > button { margin: 4px 6px 0 0; }
.trip-studio-steps { display: flex; gap: 8px; padding: 7px; border: 1px solid #d0d8cd; border-radius: 16px; background: #e8ece3; }
.trip-studio-steps button { flex: 1; border: 0; border-radius: 10px; background: transparent; color: #536353; padding: 17px 14px; font-size: 14px; }
.trip-studio-steps button span { margin-right: 12px; opacity: .65; font-size: 11px; }
.trip-studio-steps button[aria-current] { background: #214b38; color: white; box-shadow: 0 3px 8px #12302018; }
.trip-studio-progress { margin: 17px 3px 0; font-size: 12px; color: #607061; }
.trip-studio-navigation { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 18px; margin-top: 28px; }
.trip-studio-navigation p { flex: 1; margin: 0; color: #687467; font-size: 12px; }
.trip-studio-navigation button { border: 1px solid #b8c5b5; border-radius: 10px; background: white; color: #224832; padding: 14px 22px; font-size: 13px; }
.trip-studio-navigation [data-step-next] { color: #fff; background: #214b38; border-color: #214b38; }
.trip-studio :focus-visible, .trip-studio-steps :focus-visible, .trip-studio-navigation :focus-visible { outline: 3px solid #b65e35; outline-offset: 3px; }
@media (max-width: 850px) {
  .trip-studio { grid-template-columns: 1fr; padding: 24px; border-radius: 18px; }
  .trip-studio-intro h2 br { display: none; }
  .trip-studio-intro > p:last-of-type { max-width: none; }
}
@media (max-width: 540px) {
  .trip-studio { padding: 18px; gap: 24px; }
  .trip-studio-steps { gap: 2px; }
  .trip-studio-steps button { font-size: 11px; padding: 13px 5px; }
  .trip-studio-steps button span { display: block; margin: 0 0 5px; }
  .trip-chat-actions { flex-direction: column-reverse; align-items: stretch; }
  .trip-chat-actions small { max-width: none; }
  .trip-studio-navigation p { flex-basis: 100%; order: 2; }
}

.page-slug-build-my-trip { background: var(--builder-paper); }
.page-slug-build-my-trip .inside-header { background: var(--builder-green); }
.trip-builder-hero {
  min-height: 340px;
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(290px, .55fr);
  gap: 9vw;
  align-items: end;
  padding: 105px clamp(24px, 7.5vw, 128px) 56px;
  color: #fff;
  background: linear-gradient(100deg, rgba(7, 32, 27, .96), rgba(7, 32, 27, .45)), url('../images/hero-road.jpg') center 57% / cover;
}
.trip-builder-hero h1 { margin: 17px 0 0; font-family: Georgia, serif; font-size: clamp(46px, 6vw, 88px); font-weight: 400; letter-spacing: -.065em; line-height: .95; }
.trip-builder-hero h1 em { color: #f17a55; font-weight: 400; }
.trip-builder-hero > p { max-width: 490px; margin: 0 0 9px; color: rgba(255,255,255,.78); font-size: 16px; line-height: 1.75; }
.trip-builder-page { padding: 0 clamp(18px, 4.5vw, 76px) 110px; }
.trip-builder-app { max-width: 1700px; margin: 0 auto; }
.trip-builder-notice { margin: 0; padding: 17px 24px; border: 1px solid #adc6b5; background: #e4f0e6; color: #183e2c; font-size: 13px; }

.trip-builder-gate { max-width: 1040px; display: grid; grid-template-columns: 1fr .7fr; gap: 8vw; align-items: end; margin: 0 auto; padding: 100px 0 15px; }
.trip-builder-gate h2 { margin: 18px 0 0; font-family: Georgia, serif; font-size: clamp(52px, 6vw, 88px); font-weight: 400; letter-spacing: -.055em; line-height: .9; }
.trip-builder-gate h2 em { color: var(--builder-orange); font-weight: 400; }
.trip-builder-gate p:not(.eyebrow) { color: var(--builder-muted); font-size: 15px; line-height: 1.75; }
.trip-builder-gate a { min-height: 58px; display: flex; align-items: center; justify-content: space-between; margin-top: 24px; padding: 0 22px; background: var(--builder-orange); color: #fff; font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }

.trip-builder-toolbar { display: grid; grid-template-columns: 1fr minmax(270px, .42fr); gap: 8vw; align-items: end; padding: 76px 0 46px; border-bottom: 1px solid var(--builder-line); }
.trip-builder-toolbar h2 { margin: 15px 0 0; font-family: Georgia, serif; font-size: clamp(50px, 5.5vw, 84px); font-weight: 400; letter-spacing: -.055em; line-height: .87; }
.trip-builder-toolbar h2 em { color: var(--builder-orange); font-weight: 400; }
.trip-builder-trip-switcher { display: grid; gap: 9px; }
.trip-builder-trip-switcher label { color: var(--builder-muted); font-size: 9px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.trip-builder-trip-switcher select { width: 100%; min-height: 55px; padding: 0 44px 0 17px; border: 1px solid var(--builder-ink); border-radius: 0; background: #fff; color: var(--builder-ink); font-size: 14px; }
.trip-builder-form { display: grid; }
.trip-builder-basics, .trip-builder-transport, .trip-builder-days { padding: 62px 0; border-bottom: 1px solid var(--builder-line); }
.trip-builder-section-heading { display: grid; grid-template-columns: 46px minmax(0, 1fr) auto; gap: 22px; align-items: end; }
.trip-builder-section-heading > span { align-self: start; color: var(--builder-orange); font-family: Georgia, serif; font-size: 16px; }
.trip-builder-section-heading h3 { margin: 9px 0 0; font-family: Georgia, serif; font-size: clamp(38px, 4.1vw, 61px); font-weight: 400; letter-spacing: -.045em; line-height: .95; }
.trip-builder-section-heading button, .trip-builder-day-add { min-height: 48px; padding: 0 17px; border: 1px solid var(--builder-ink); background: transparent; color: var(--builder-ink); cursor: pointer; font-size: 10px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.trip-builder-section-heading button:hover, .trip-builder-day-add:hover { background: var(--builder-ink); color: #fff; }
.trip-builder-section-intro { max-width: 720px; margin: 19px 0 0 68px; color: var(--builder-muted); font-size: 13px; line-height: 1.7; }
.trip-builder-basics-grid { display: grid; grid-template-columns: minmax(260px, 1.6fr) repeat(4, minmax(130px, .55fr)); gap: 0; margin-top: 39px; border: 1px solid var(--builder-line); background: #fff; }
.trip-builder-basics-grid label { min-width: 0; display: grid; gap: 10px; padding: 18px; border-left: 1px solid var(--builder-line); color: var(--builder-muted); font-size: 9px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.trip-builder-basics-grid label:first-child { border-left: 0; }
.trip-builder-basics-grid input, .trip-builder-basics-grid select { min-width: 0; width: 100%; height: 38px; padding: 0; border: 0; border-radius: 0; background: transparent; color: var(--builder-ink); font-size: 15px; font-weight: 500; text-transform: none; }
.trip-builder-title-field input { font-family: Georgia, serif; font-size: 21px; }

.trip-builder-transport-list { display: grid; gap: 14px; margin: 32px 0 0 68px; }
.trip-builder-empty { display: grid; grid-template-columns: 38px 1fr; gap: 14px; align-items: center; padding: 24px; border: 1px dashed #aeb7b1; color: var(--builder-muted); font-size: 13px; }
.trip-builder-empty span { color: var(--builder-orange); font-family: Georgia, serif; font-size: 30px; }
.trip-transport-card { position: relative; display: grid; grid-template-columns: 150px repeat(2, minmax(140px, 1fr)) repeat(2, 105px); gap: 12px; padding: 24px 54px 24px 24px; border: 1px solid var(--builder-line); background: #fff; }
.trip-transport-card label, .trip-day-item label { min-width: 0; display: grid; gap: 7px; color: var(--builder-muted); font-size: 8px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.trip-transport-card input, .trip-transport-card select, .trip-transport-card textarea, .trip-day-item input, .trip-day-item select, .trip-day-item textarea { min-width: 0; width: 100%; box-sizing: border-box; border: 1px solid #c8cfca; border-radius: 0; background: #fff; color: var(--builder-ink); font-size: 13px; text-transform: none; }
.trip-transport-card input, .trip-transport-card select, .trip-day-item input, .trip-day-item select { height: 44px; padding: 0 12px; }
.trip-transport-card textarea, .trip-day-item textarea { min-height: 72px; padding: 11px 12px; line-height: 1.5; resize: vertical; }
.trip-transport-wide { grid-column: span 2; }
.trip-transport-notes { grid-column: 1 / -1; }
.trip-builder-remove { position: absolute; top: 18px; right: 17px; padding: 4px; border: 0; background: transparent; color: #7c4635; cursor: pointer; font-size: 9px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }

.trip-builder-workspace { display: grid; grid-template-columns: minmax(0, 1.28fr) minmax(360px, .62fr); gap: 38px; align-items: start; }
.trip-builder-days { min-width: 0; }
.trip-builder-day-list { display: grid; gap: 22px; margin: 35px 0 0 68px; }
.trip-day-card { border: 1px solid var(--builder-line); background: #fff; }
.trip-day-header { position: relative; display: grid; grid-template-columns: 56px minmax(160px, 1fr) 165px auto; gap: 15px; align-items: center; padding: 20px 20px 20px 0; background: var(--builder-soft); }
.trip-day-number { align-self: stretch; display: grid; place-items: center; border-right: 1px solid var(--builder-line); color: var(--builder-orange); font-family: Georgia, serif; font-size: 17px; }
.trip-day-header input { min-width: 0; height: 42px; padding: 0 11px; border: 1px solid transparent; background: transparent; color: var(--builder-ink); font-family: Georgia, serif; font-size: 22px; }
.trip-day-header input:focus { border-color: var(--builder-line); background: #fff; outline: 0; }
.trip-day-header input[type="date"] { font-family: Arial, sans-serif; font-size: 12px; }
.trip-day-header button { padding: 6px; border: 0; background: transparent; color: #7c4635; cursor: pointer; font-size: 9px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.trip-day-departure { position: relative; display: grid; grid-template-columns: 120px minmax(220px, 1fr); gap: 8px 18px; align-items: center; padding: 18px 20px; border-top: 1px solid var(--builder-line); background: #f8f5ed; }
.trip-day-departure-label { color: var(--builder-orange); font-size: 9px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.trip-day-departure-place { position: relative; min-width: 0; }
.trip-day-departure input { width: 100%; height: 46px; box-sizing: border-box; padding: 0 13px; border: 1px solid #aeb7b1; border-radius: 0; background: #fff; color: var(--builder-ink); font-size: 13px; }
.trip-day-departure input:focus { border-color: var(--builder-orange); outline: 2px solid rgba(212, 98, 61, .16); outline-offset: 0; }
.trip-day-departure p { grid-column: 2; margin: 0; color: var(--builder-muted); font-size: 10px; line-height: 1.45; }
.trip-day-items { display: grid; }
.trip-day-item { position: relative; display: grid; grid-template-columns: 135px minmax(200px, 1.25fr) 100px minmax(190px, 1fr); gap: 13px; padding: 20px 48px 20px 20px; border-top: 1px solid var(--builder-line); }
.trip-day-item:first-child { border-top: 0; }
.trip-day-item-place { position: relative; }
.trip-day-item-address { grid-column: 2 / -1; color: var(--builder-muted); font-size: 10px; line-height: 1.45; }
.trip-day-item-notes { grid-column: 2 / -1; }
.trip-day-item-booking { grid-column: 2 / 3; }
.trip-day-item-link { grid-column: 3 / -1; }
.trip-day-item .trip-builder-remove { top: 19px; }
.trip-day-empty { padding: 24px; border-top: 1px solid var(--builder-line); color: var(--builder-muted); font-size: 12px; }
.trip-builder-day-actions { display: flex; flex-wrap: wrap; gap: 7px; padding: 16px 20px 20px; border-top: 1px solid var(--builder-line); }
.trip-builder-day-add { min-height: 39px; padding: 0 12px; border-color: #aab3ad; font-size: 8px; }
.trip-builder-day-add[data-type="hotel"], .trip-builder-day-add[data-type="campsite"] { border-color: var(--builder-orange); color: #9b3c23; }
.trip-place-results { position: absolute; z-index: 700; top: calc(100% + 4px); left: 0; right: 0; display: grid; max-height: 260px; overflow-y: auto; border: 1px solid var(--builder-ink); background: #fff; box-shadow: 0 18px 38px rgba(12,35,28,.18); }
.trip-place-results:empty { display: none; }
.trip-place-results button { display: grid; gap: 3px; padding: 12px; border: 0; border-top: 1px solid var(--builder-line); background: #fff; color: var(--builder-ink); cursor: pointer; text-align: left; }
.trip-place-results button:first-child { border-top: 0; }
.trip-place-results button:hover, .trip-place-results button:focus { background: var(--builder-soft); outline: 0; }
.trip-place-results strong { font-size: 12px; }
.trip-place-results small { color: var(--builder-muted); font-size: 9px; line-height: 1.35; }
.trip-place-results .trip-place-status { padding: 13px; color: var(--builder-muted); font-size: 10px; }

.trip-builder-map-panel { position: sticky; top: 92px; margin-top: 62px; overflow: hidden; background: var(--builder-green); color: #fff; }
.trip-builder-map-panel > div:first-child { min-height: 120px; display: grid; grid-template-columns: 1fr; gap: 7px; padding: 25px; }
.trip-builder-map-panel strong { font-family: Georgia, serif; font-size: 23px; font-weight: 400; }
.trip-builder-map-panel small { color: rgba(255,255,255,.62); font-size: 10px; line-height: 1.5; }
#trip-builder-map { height: 560px; background: #dfe8dc; }
.trip-builder-map-marker { width: 28px; height: 28px; display: grid; place-items: center; border: 3px solid #fff; border-radius: 50% 50% 50% 8px; transform: rotate(-45deg); background: var(--builder-orange); color: #fff; box-shadow: 0 5px 12px rgba(0,0,0,.28); font-size: 9px; font-weight: 800; }
.trip-builder-map-marker span { transform: rotate(45deg); }
.trip-map-notice { margin: 12px 0; padding: 12px 16px; background: #f5f1e8; border-left: 4px solid var(--builder-orange); color: #203329; font-size: 14px; }
.trip-map-notice p { margin: 0; }
.trip-ferry-controls { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(auto-fit,minmax(220px,1fr)); gap: 16px; padding: 16px; background: #edf5f8; }
.trip-ferry-controls label { display: flex; flex-direction: column; gap: 8px; position: relative; }
.trip-ferry-guide { grid-column: 1 / -1; border-left: 4px solid #287fa3; background: #edf5f8; color: #203329; padding: 18px; margin: 16px 0; }
.trip-ferry-guide p { color: #203329; font-size: 15px; line-height: 1.65; }
.trip-ferry-guide a { display: inline-block; margin: 0 18px 12px 0; color: #135570; text-decoration: underline; }
.trip-ferry-guide small { display: block; color: #425d68; }
.trip-map-notice ul { margin: 10px 0 0; padding-left: 18px; }
.trip-map-notice button { background: transparent; border: 0; color: #80391f; padding: 6px 0; text-align: left; text-decoration: underline; font: inherit; cursor: pointer; }
.trip-builder-map-marker.stay { background: var(--builder-green); }
.trip-builder-map-marker.departure { border-color: var(--builder-orange); background: #f4ede1; color: var(--builder-green); }
.trip-builder-map-popup strong { display: block; margin-bottom: 5px; font-family: Georgia, serif; font-size: 17px; }
.trip-builder-map-popup small { color: #65736b; }

.trip-builder-savebar { position: static; z-index: 800; bottom: 0; display: flex; justify-content: space-between; gap: 25px; align-items: center; margin-top: 38px; padding: 18px 20px; border: 1px solid var(--builder-line); background: rgba(255,255,255,.96); box-shadow: none; }
.trip-builder-savebar div { display: grid; gap: 3px; }
.trip-builder-savebar strong { font-size: 12px; }
.trip-builder-savebar span { color: var(--builder-muted); font-size: 9px; }
.trip-builder-savebar button { min-width: 190px; min-height: 52px; display: flex; align-items: center; justify-content: space-between; padding: 0 20px; border: 0; background: var(--builder-orange); color: #fff; cursor: pointer; font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.trip-builder-savebar button:hover { background: #b84829; }
.trip-builder-delete { display: flex; justify-content: flex-end; padding-top: 20px; }
.trip-builder-delete button { border: 0; border-bottom: 1px solid #9c6f60; background: transparent; color: #805344; cursor: pointer; font-size: 9px; }
.mobile-builder-link { display: none; }

@media (max-width: 1180px) {
  .trip-builder-basics-grid { grid-template-columns: 1.4fr repeat(2, .7fr); }
  .trip-builder-basics-grid label:nth-child(4) { border-left: 0; border-top: 1px solid var(--builder-line); }
  .trip-builder-basics-grid label:nth-child(5) { border-top: 1px solid var(--builder-line); }
  .trip-transport-card { grid-template-columns: repeat(3, minmax(130px, 1fr)); }
  .trip-transport-wide { grid-column: auto; }
  .trip-builder-workspace { grid-template-columns: minmax(0, 1fr) 340px; }
  .trip-day-item { grid-template-columns: 120px minmax(180px, 1fr) 90px; }
  .trip-day-item-notes, .trip-day-item-address { grid-column: 2 / -1; }
  .trip-day-item-link { grid-column: 3 / -1; }
}

@media (max-width: 900px) {
  .trip-builder-hero { min-height: 430px; grid-template-columns: 1fr; gap: 28px; padding-top: 105px; }
  .trip-builder-hero > p { margin: 0; }
  .trip-builder-page { padding-left: 20px; padding-right: 20px; }
  .trip-builder-toolbar { grid-template-columns: 1fr; gap: 30px; }
  .trip-builder-workspace { grid-template-columns: 1fr; }
  .trip-builder-map-panel { position: relative; top: auto; order: -1; margin-top: 35px; }
  #trip-builder-map { height: 400px; }
  .trip-builder-days { padding-top: 42px; }
  .trip-builder-gate { grid-template-columns: 1fr; }
  .mobile-builder-link { display: block; }
}

@media (max-width: 640px) {
  .trip-builder-hero { min-height: 420px; padding: 112px 22px 48px; }
  .trip-builder-hero h1 { font-size: clamp(49px, 14vw, 70px); }
  .trip-builder-hero > p { font-size: 13px; line-height: 1.65; }
  .trip-builder-page { padding: 0 14px 75px; }
  .trip-builder-toolbar { padding: 52px 4px 34px; }
  .trip-builder-toolbar h2 { font-size: 51px; }
  .trip-builder-section-heading { grid-template-columns: 34px 1fr; gap: 12px; }
  .trip-builder-section-heading > button { grid-column: 2; justify-self: start; margin-top: 12px; }
  .trip-builder-section-heading h3 { font-size: 38px; }
  .trip-builder-section-intro, .trip-builder-transport-list, .trip-builder-day-list { margin-left: 46px; }
  .trip-builder-basics-grid { grid-template-columns: 1fr 1fr; margin-top: 29px; }
  .trip-builder-basics-grid label { border-top: 1px solid var(--builder-line); border-left: 1px solid var(--builder-line); }
  .trip-builder-basics-grid label:first-child { grid-column: 1 / -1; border-top: 0; }
  .trip-builder-basics-grid label:nth-child(even) { border-left: 0; }
  .trip-builder-basics-grid label:nth-child(4) { border-left: 0; }
  .trip-transport-card { grid-template-columns: 1fr 1fr; padding: 48px 15px 15px; }
  .trip-transport-card label:nth-of-type(2), .trip-transport-card label:nth-of-type(3), .trip-transport-notes { grid-column: 1 / -1; }
  .trip-day-header { grid-template-columns: 48px 1fr; padding: 12px 12px 12px 0; }
  .trip-day-header input[type="date"] { grid-column: 2; }
  .trip-day-header > button { position: absolute; top: 9px; right: 9px; }
  .trip-day-departure { grid-template-columns: 1fr; gap: 9px; padding: 17px 14px; }
  .trip-day-departure p { grid-column: 1; }
  .trip-day-item { grid-template-columns: 1fr 82px; padding: 45px 14px 16px; }
  .trip-day-item > label:first-of-type { grid-column: 1 / -1; }
  .trip-day-item-place { grid-column: 1 / -1; }
  .trip-day-item-address, .trip-day-item-notes, .trip-day-item-booking, .trip-day-item-link { grid-column: 1 / -1; }
  .trip-day-item .trip-builder-remove { top: 14px; right: 13px; }
  .trip-builder-day-actions { padding: 13px; }
  .trip-builder-day-add { flex: 1 1 calc(50% - 7px); }
  #trip-builder-map { height: 330px; }
  .trip-builder-savebar { align-items: stretch; flex-direction: column; }
  .trip-builder-savebar button { width: 100%; }
  .trip-builder-gate { padding-top: 65px; }
}

@media (max-width: 420px) {
  .trip-builder-section-intro, .trip-builder-transport-list, .trip-builder-day-list { margin-left: 0; }
  .trip-builder-basics, .trip-builder-transport, .trip-builder-days { padding: 48px 0; }
  .trip-builder-basics-grid { grid-template-columns: 1fr; }
  .trip-builder-basics-grid label, .trip-builder-basics-grid label:nth-child(4) { border-left: 0; }
  .trip-builder-basics-grid label:first-child { grid-column: auto; }
  .trip-transport-card { grid-template-columns: 1fr; }
  .trip-transport-card label, .trip-transport-card label:nth-of-type(2), .trip-transport-card label:nth-of-type(3), .trip-transport-notes { grid-column: auto; }
}

/* Compact the utility header so the trip itself stays close at hand. */
.trip-builder-toolbar { padding: 30px 0; }
.trip-builder-toolbar h2 { font-size: 38px; }
@media (max-width: 900px) {
  .trip-builder-map-panel { order: 2; }
}
@media (max-width: 640px) {
  .trip-builder-hero { min-height: 340px; }
  .trip-builder-toolbar { gap: 20px; }
  .trip-builder-workspace, .trip-day-card, .trip-day-header, .trip-day-departure, .trip-day-item { min-width: 0; }
}

.trip-day-expedia { grid-column: 1 / -1; }
.trip-expedia-option { display: grid; gap: 6px; margin: 10px 0 0; padding: 13px 15px; border: 1px solid #d3ddcf; border-radius: 10px; background: #f0f4eb; overflow-wrap: anywhere; }
.trip-expedia-option a { color: #214b38; font-size: 13px; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.trip-expedia-option small { font-size: 11px; line-height: 1.5; color: #55624f; }
.trip-expedia-option a:focus-visible { outline: 3px solid #b65e35; outline-offset: 3px; }
/* The itinerary reads as a journey, with details available on demand. */
[data-chat-draft] { grid-column: 1 / -1; min-width: 0; }
[data-chat-draft]:empty { display: none; }
[data-chat-draft] > h3 { font: 400 clamp(30px,4vw,48px)/1.15 Georgia,serif; margin: 12px 0 18px; }
.trip-draft-summary, .trip-saved-summary { font: 400 clamp(17px,2vw,21px)/1.75 Georgia,serif; white-space: pre-line; max-width: 850px; }
.trip-draft-map { height: clamp(300px,42vw,510px); width: 100%; border-radius: 16px; background: #d6dfd1; z-index: 0; }
[data-chat-draft] > ol { padding: 0; list-style: none; display: grid; gap: 14px; }
[data-chat-draft] > ol > li { padding: 0; border: 1px solid #cbd6c7; border-radius: 14px; background: #fffefb; overflow: hidden; }
.trip-day-overview { cursor: pointer; padding: 22px; color: #214938; overflow-wrap: anywhere; }
.trip-day-overview strong { font: 400 23px/1.3 Georgia,serif; }
.trip-day-overview span, .trip-day-overview small { display: block; margin-top: 8px; line-height: 1.6; }
.trip-day-overview small { font-size: 12px; color: #64705f; }
.trip-day-overview:focus-visible { outline: 3px solid #b65e35; outline-offset: -3px; }
[data-chat-draft] details > section { padding: 0 22px 22px; }
[data-chat-draft] details > section h4 { margin-bottom: 8px; }
[data-chat-draft] details > section p { line-height: 1.7; }
.trip-builder-workspace { grid-template-columns: minmax(0,1fr); gap: 20px; }
.trip-builder-map-panel { position: relative; top: auto; margin-top: 0; order: -1; border-radius: 16px; }
.trip-saved-summary { order: -2; }
#trip-builder-map { height: clamp(320px,42vw,510px); }
@media(max-width:640px) { .trip-day-overview { padding: 17px; } .trip-day-overview strong { font-size: 21px; } }
.trip-flight-invite { margin-top:28px; padding:24px; border-radius:14px; background:#f5eedf; } .trip-flight-invite button { padding:12px 18px; border:1px solid #214938; border-radius:10px; background:#fffefb; color:#214938; }
[data-chat-draft] > ol { max-height:none; overflow:visible; } [data-chat-draft] > p.trip-draft-summary { font-size:clamp(17px,2vw,21px); line-height:1.75; } [data-chat-draft] details > section p { font-size:15px; }
.trip-navigation { margin:16px 0; padding:16px; border:1px solid #cbd6c7; border-radius:12px; background:#fffefb; color:#214938; } .trip-navigation summary { cursor:pointer; font-weight:700; padding:5px; } .trip-navigation p { font-size:13px; line-height:1.6; } .trip-navigation-section { display:flex; flex-wrap:wrap; gap:10px; margin:16px 0; } .trip-navigation-section strong { flex-basis:100%; font:inherit; font-weight:700; } .trip-navigation a { display:inline-block; padding:10px 14px; margin:4px; border-radius:8px; background:#e8eee2; color:#214938; font-size:13px; overflow-wrap:anywhere; } .trip-navigation > details > a { display:block; } .trip-navigation :focus-visible { outline:3px solid #b65e35; outline-offset:2px; } [data-navigation-day], [data-navigation-trip] { padding:0 16px; }

.trip-builder-savebar.has-unsaved-changes { position: sticky; box-shadow: 0 -12px 42px rgba(11,36,29,.1); backdrop-filter: blur(10px); }
.trip-builder-savebar button:disabled { opacity: .5; cursor: default; background: var(--builder-orange); }

.trip-guest-intro{display:grid;grid-template-columns:1fr 1fr;gap:40px;padding:32px;background:#e7eee4;border-radius:18px;margin-bottom:36px}.trip-guest h2{font:400 clamp(30px,4vw,48px)/1.1 Georgia,serif;margin:12px 0 20px}.trip-guest p{line-height:1.7}.trip-guest form{display:grid;gap:14px}.trip-guest label{font-weight:bold}.trip-guest textarea{font:inherit;max-width:100%;width:100%;padding:16px;border:1px solid #9cad9f;border-radius:12px;resize:vertical}.trip-guest form p,.trip-guest-note{font-size:12px;color:#526458;margin:0}.trip-guest button{padding:18px;border:0;border-radius:10px;background:#214938;color:white;font-weight:bold;cursor:pointer}.trip-guest form a{font-size:14px;text-decoration:underline;text-underline-offset:4px}.trip-guest-example{max-width:1100px;margin:auto}.trip-guest .route-road-map{height:420px;min-height:300px;border-radius:16px;margin:24px 0}.trip-guest details{border-bottom:1px solid #cbd7cc;padding:20px 0}.trip-guest summary{cursor:pointer;line-height:1.6}.trip-guest summary span{display:block;margin-left:20px;font-size:13px;color:#526458}.trip-guest li{padding:10px 0}.trip-guest li a{text-decoration:underline;text-underline-offset:4px}.trip-guest :is(a,button,textarea,summary):focus-visible{outline:2px solid #b43f1e;outline-offset:4px}@media(max-width:760px){.trip-guest-intro{grid-template-columns:1fr;padding:22px;gap:24px}.trip-guest .route-road-map{height:320px}}

/* A compact editorial overview, with the date controls kept above it. */
.trip-outline-page{margin:28px 0 0;padding:clamp(22px,3vw,42px);background:#fffdf8;border:1px solid #d3ddcf;border-radius:18px}
.trip-outline-page h3{font:400 clamp(26px,3vw,40px)/1.15 Georgia,serif;margin:0 0 12px}
.trip-outline-stats{color:#8c4d35;font-weight:700;font-size:14px;margin:0 0 18px}
.trip-outline-story{max-width:80ch;line-height:1.7;margin:0 0 24px}
.trip-outline-itinerary{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:0 28px}
.trip-outline-itinerary li{border-top:1px solid #dce2d7;padding:12px 0}
.trip-outline-itinerary button{display:block;width:100%;text-align:left;background:none;border:0;padding:0;color:inherit;cursor:pointer;font:inherit}
.trip-outline-itinerary strong{display:block;font-size:14px;line-height:1.5}.trip-outline-itinerary span{display:block;font-size:13px;line-height:1.5;color:#647165;margin-top:4px}
.trip-outline-itinerary button:hover strong{text-decoration:underline;text-underline-offset:3px}
@media(max-width:700px){.trip-outline-itinerary{grid-template-columns:1fr}}
.trip-builder-basics:has(.trip-outline-page:not([hidden])) > .trip-builder-section-heading{display:none}

.trip-day-guide-card{border:1px solid #cfdacc;border-radius:16px;background:#fffdf8;margin:0 0 18px;overflow:hidden}
.trip-day-guide-card>summary{padding:22px 26px;cursor:pointer;line-height:1.5}
.trip-day-guide-card>summary strong{font:400 25px/1.3 Georgia,serif}.trip-day-guide-card>summary span{display:block;margin-top:8px;color:#637260;font-size:14px}
.trip-day-guide-content{padding:0 26px 26px}.trip-day-guide-content>section{padding:18px 0;border-top:1px solid #dce2d7}.trip-day-guide-content h4{font-size:19px;margin:0 0 12px}.trip-day-guide-content p{line-height:1.75;max-width:85ch}.trip-day-guide-content>button{margin-top:20px;padding:12px 18px;background:#284d3b;color:white;border:0;border-radius:8px;cursor:pointer}
.trip-builder-transport>.trip-builder-days{margin-bottom:40px}

.trip-chat-column{min-width:0}
.trip-chat-trip-actions{display:flex;justify-content:flex-end;align-items:center;gap:12px;flex-wrap:wrap;margin-top:16px}
.trip-chat-trip-actions:has(>button:not([hidden])){min-height:44px}
.trip-chat-trip-actions button{border:0;border-radius:10px;padding:14px 22px;background:#244d39;color:#fff;font-family:inherit;font-size:14px;font-weight:700;line-height:1.3;white-space:nowrap;cursor:pointer}
.trip-chat-trip-actions [data-start-over]{background:transparent;color:#244d39;border:1px solid #8c9e90}
.trip-chat-trip-actions button:disabled{opacity:.55;cursor:wait}
.trip-chat-trip-actions [data-chat-build].is-building{display:inline-flex;align-items:center;justify-content:center;gap:10px;opacity:1}
.trip-chat-trip-actions [data-chat-build].is-building::before{content:"";width:16px;height:16px;flex:none;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:trip-build-spin .8s linear infinite}
@keyframes trip-build-spin{to{transform:rotate(360deg)}}
.trip-days-trip-title{scroll-margin-top:100px}
@media(prefers-reduced-motion:reduce){.trip-chat-trip-actions [data-chat-build].is-building::before{animation:none}}
.trip-chat-trip-actions button:focus-visible{outline:2px solid #c55334;outline-offset:4px}
@media(max-width:540px){.trip-chat-trip-actions button{flex:1}}

.trip-chat-actions [data-chat-send]{flex:0 0 48px;width:48px;height:48px;min-width:48px;padding:0;font-size:28px;line-height:1;display:grid;place-items:center;align-self:flex-end}

.trip-days-trip-title{grid-column:1/-1;font:400 clamp(30px,4vw,50px)/1.15 Georgia,serif;margin:8px 0 0;color:#19382c}
/* Mobile members enter directly at the inspiration/chat panel. */
@media(max-width:760px){
  body:has([data-trip-builder]) .trip-builder-hero{display:none}
  [data-trip-builder]>.trip-builder-toolbar,
  [data-trip-builder]>nav.trip-studio-chips,
  [data-trip-builder]>nav.trip-studio-chips+p{display:none}
  .trip-builder-page:has([data-trip-builder]){padding-top:16px}
  [data-trip-builder]>.trip-studio{margin-top:0}
}
/* Keep saved trips available below the mobile AI experience. */
@media(max-width:760px){
  [data-trip-builder]{display:flex;flex-direction:column}
  [data-trip-builder]>.trip-builder-toolbar{display:block;order:1;margin:0 0 24px;padding:16px 18px;border:1px solid #d1dbcf;border-radius:12px;background:#edf0e8}
  [data-trip-builder]>.trip-builder-toolbar>div:first-child{display:none}
  [data-trip-builder]>.trip-builder-toolbar .trip-builder-trip-switcher{width:100%;min-width:0}
  [data-trip-builder]>.trip-builder-toolbar label{display:block;margin:0 0 7px;color:#596c60;font-size:11px;letter-spacing:.06em}
  [data-trip-builder]>.trip-builder-toolbar select{display:block;width:100%;min-height:42px;padding:9px 32px 9px 12px;border:1px solid #bfcdbd;border-radius:8px;background:#fafbf7;color:#284537;font-family:inherit;font-size:14px}
  [data-trip-builder]>.trip-builder-form,[data-trip-builder]>.trip-builder-delete{order:2}
}
/* Mobile trip planning stays focused through the end of the page. */
@media(max-width:760px){
  body:has(.trip-builder-page)>footer{display:none}
}

/* The send control belongs to the message composer. */
.trip-chat-composer{position:relative;border:1px solid #aebcae;border-radius:16px;background:#fff;box-shadow:0 2px 8px #173b3208;transition:border-color .15s,box-shadow .15s}
.trip-chat-composer:focus-within{border-color:#426953;box-shadow:0 0 0 3px #42695322}
.trip-chat .trip-chat-composer textarea{display:block;border:0;border-radius:16px;outline:none;box-shadow:none;padding:16px 18px 66px;min-height:140px;background:transparent;line-height:1.6;resize:vertical}
.trip-chat-composer [data-chat-send]{position:absolute;right:12px;bottom:12px;display:grid;place-items:center;width:42px;height:42px;min-width:42px;padding:0;border:0;border-radius:12px;background:#244d39;color:#fff;box-shadow:0 2px 5px #16382e20;cursor:pointer;transition:background .15s,transform .15s}
.trip-chat-composer [data-chat-send]:hover:not(:disabled){background:#163c2a;transform:translateY(-1px)}
.trip-chat-composer [data-chat-send]:focus-visible{outline:2px solid #c55334;outline-offset:3px}
.trip-chat-composer [data-chat-send] svg{display:block;pointer-events:none}
.trip-chat-actions small{max-width:none}
@media(pointer:coarse){.trip-chat-composer [data-chat-send]{width:46px;height:46px}}
/* Slightly lighter send control, with a comfortable mobile touch target. */
.trip-chat-composer [data-chat-send]{width:36px;height:36px;min-width:36px;border-radius:10px}
.trip-chat-composer [data-chat-send] svg{width:19px;height:19px}
@media(pointer:coarse){.trip-chat-composer [data-chat-send]{width:40px;height:40px}}

.trip-quick-answers{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.trip-quick-answers:empty{display:none}.trip-quick-answers button{background:#edf2e9;color:#244d39;border:1px solid #b4c4b2;border-radius:20px;padding:11px 16px;font-size:13px;line-height:1.4;cursor:pointer;text-align:left}.trip-quick-answers button:hover:not(:disabled){background:#dfe9d9}.trip-quick-answers button:focus-visible{outline:2px solid #c55334;outline-offset:3px}
.trip-day-route-hint{display:block;margin-top:8px;color:#8b492e;font:600 .85rem/1.5 var(--font-body,sans-serif)}
.trip-day-route-check{margin:0 0 22px;padding:0 0 16px;border-bottom:1px solid #d5ddd3}
.trip-day-route-check p{margin:8px 0;font-size:.95rem;line-height:1.6}
.trip-day-route-check button{background:transparent;border:1px solid #536659;color:#263e32;padding:8px 14px;cursor:pointer}
.trip-day-route-check button:disabled{opacity:.55;cursor:wait}
