/*
 * Editorial destination page
 * --------------------------
 * Gives the destination and the first planning decision the full canvas.
 * The roadmap remains available as a drawer instead of occupying a column.
 */

body.destination-editorial-page {
  --destination-editorial-ink: #123a2a;
  --destination-editorial-muted: #617469;
  --destination-editorial-line: rgba(26, 76, 50, 0.13);
  --destination-editorial-paper: #fffdf8;
  --destination-editorial-pale: #edf6ee;
  --destination-editorial-green: #246f4a;
}

body.destination-editorial-page.has-travel-roadmap {
  --travel-roadmap-width: 330px !important;
  --travel-roadmap-gap: 0px !important;
  --travel-roadmap-offset: 0px !important;
}

body.destination-editorial-page .destination-layout,
body.destination-editorial-page.has-travel-roadmap .destination-layout {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  width: min(1600px, calc(100vw - 40px)) !important;
  max-width: 1600px !important;
  gap: 18px !important;
  margin: 20px auto 70px !important;
}

body.destination-editorial-page .destination-main {
  gap: 18px;
}

body.destination-editorial-page .destination-workspace {
  grid-template-columns: minmax(0, 1.68fr) minmax(410px, 0.82fr) !important;
  gap: 18px !important;
}

body.destination-editorial-page :is(.destination-hero, .destination-planner-card) {
  min-height: clamp(520px, 36vw, 600px) !important;
  border-radius: 27px !important;
}

body.destination-editorial-page .destination-hero {
  box-shadow: 0 24px 64px rgba(24, 57, 38, 0.14) !important;
}

body.destination-editorial-page .destination-hero-shade {
  background:
    linear-gradient(180deg, rgba(8, 31, 21, 0.42) 0%, rgba(8, 31, 21, 0.02) 34%, rgba(7, 28, 19, 0.88) 100%),
    linear-gradient(100deg, rgba(9, 36, 24, 0.5), transparent 72%) !important;
}

body.destination-editorial-page .destination-hero-toolbar {
  padding: 24px 26px !important;
}

body.destination-editorial-page .destination-copy-card {
  grid-template-columns: minmax(0, 1fr) minmax(230px, 300px) !important;
  gap: clamp(26px, 3vw, 48px) !important;
  padding: clamp(28px, 3vw, 44px) !important;
}

body.destination-editorial-page .destination-title {
  font-size: clamp(3.65rem, 5.4vw, 5.8rem) !important;
}

body.destination-editorial-page .destination-summary {
  max-width: 720px;
  margin-top: 14px;
}

body.destination-editorial-page .destination-theme-list {
  margin-top: 16px;
}

body.destination-editorial-page :is(.destination-eyebrow, .destination-theme-pill, .carousel-control) {
  backdrop-filter: blur(2px) !important;
  -webkit-backdrop-filter: blur(2px) !important;
}

/* A light planning panel gives the photography room to lead. */
@property --destination-date-border-angle {
  syntax: "<angle>";
  initial-value: 0deg;
  inherits: false;
}

@keyframes destination-date-border-orbit {
  to {
    --destination-date-border-angle: 360deg;
  }
}

body.destination-editorial-page .destination-planner-card {
  padding: clamp(28px, 2.7vw, 42px) !important;
  border: 1px solid rgba(30, 81, 52, 0.12) !important;
  color: var(--destination-editorial-ink) !important;
  background:
    radial-gradient(circle at 100% 0%, rgba(186, 230, 196, 0.34), transparent 18rem),
    linear-gradient(145deg, rgba(255, 254, 249, 0.98), rgba(244, 249, 242, 0.96)) !important;
  box-shadow: 0 20px 54px rgba(25, 64, 42, 0.1) !important;
}

body.destination-editorial-page .destination-planner-card::before {
  border-color: rgba(40, 112, 73, 0.08) !important;
  box-shadow: 0 0 0 42px rgba(40, 112, 73, 0.018), 0 0 0 86px rgba(40, 112, 73, 0.012) !important;
}

body.destination-editorial-page .destination-step-badge {
  border-color: rgba(46, 121, 79, 0.2) !important;
  color: #2d7650 !important;
  background: rgba(232, 245, 234, 0.72);
}

body.destination-editorial-page .destination-planner-card .section-kicker {
  color: #4b8062 !important;
}

body.destination-editorial-page .destination-planner-card h2 {
  max-width: 15ch;
  color: var(--destination-editorial-ink) !important;
  font-size: clamp(2rem, 2.6vw, 2.8rem) !important;
}

body.destination-editorial-page .destination-planner-copy {
  margin: 22px 0 18px;
  color: var(--destination-editorial-muted) !important;
  font-size: 0.82rem;
}

body.destination-editorial-page .destination-date-control {
  min-height: 96px;
  border: 2px solid rgba(40, 112, 73, 0.32) !important;
  border-radius: 19px;
  background: #fffefc !important;
  box-shadow: 0 12px 28px rgba(27, 66, 43, 0.08), inset 0 1px 0 #fff !important;
}

@supports (background: conic-gradient(#fff, #000)) {
  body.destination-editorial-page .destination-date-control {
    border-color: transparent !important;
    background:
      linear-gradient(#fffefc, #fffefc) padding-box,
      conic-gradient(
        from var(--destination-date-border-angle),
        #dce9dd 0deg 205deg,
        #a7dcb6 245deg,
        #398e61 278deg,
        #bce9c9 311deg,
        #dce9dd 350deg
      ) border-box !important;
  }

  body.destination-editorial-page .destination-planner-card:not(.has-dates):not(.is-calendar-open):not(.needs-dates) .destination-date-control {
    animation: destination-date-border-orbit 5s linear infinite;
  }
}

body.destination-editorial-page :is(
  .destination-date-control:hover,
  .destination-planner-card.is-calendar-open .destination-date-control,
  .destination-planner-card.has-dates .destination-date-control
) {
  box-shadow: 0 16px 34px rgba(27, 66, 43, 0.12), 0 0 0 5px rgba(87, 167, 108, 0.07) !important;
}

body.destination-editorial-page .destination-date-state {
  border-color: rgba(42, 112, 73, 0.12) !important;
  background: rgba(230, 243, 231, 0.65) !important;
}

body.destination-editorial-page .destination-date-state-icon {
  color: #4e7c61 !important;
  background: rgba(207, 232, 211, 0.78) !important;
}

body.destination-editorial-page .destination-date-state small {
  color: #688073 !important;
}

body.destination-editorial-page .destination-date-state strong {
  color: #3c5a49 !important;
}

body.destination-editorial-page .destination-planner-card.has-dates .destination-date-state {
  border-color: rgba(41, 126, 79, 0.2) !important;
  background: rgba(216, 239, 219, 0.82) !important;
}

body.destination-editorial-page .destination-planner-card.has-dates .destination-date-state-icon {
  color: #fff !important;
  background: #3a9562 !important;
}

body.destination-editorial-page .destination-planner-card.has-dates .destination-date-state small {
  color: #387451 !important;
}

body.destination-editorial-page .destination-planner-card.has-dates .destination-date-state strong {
  color: #173f2d !important;
}

body.destination-editorial-page .destination-auth-alert {
  border-color: rgba(160, 105, 36, 0.2) !important;
  color: #765326 !important;
  background: rgba(251, 237, 209, 0.74) !important;
}

body.destination-editorial-page .destination-auth-alert-copy strong,
body.destination-editorial-page .destination-auth-alert-link {
  color: #6e4b20 !important;
}

body.destination-editorial-page .destination-auth-alert-copy span {
  color: #86683c !important;
}

body.destination-editorial-page .destination-auth-alert-link {
  border-color: rgba(126, 83, 30, 0.2) !important;
}

body.destination-editorial-page .destination-planner-sequence {
  color: #788b80 !important;
}

body.destination-editorial-page .destination-planner-sequence b {
  color: #347653 !important;
}

body.destination-editorial-page .destination-planner-sequence i {
  background: rgba(38, 94, 60, 0.14) !important;
}

body.destination-editorial-page .destination-planner-card .primary-cta {
  border: 0 !important;
  color: #fff !important;
  background: linear-gradient(135deg, #236b48, #31935f) !important;
  box-shadow: 0 13px 28px rgba(31, 108, 70, 0.18) !important;
}

body.destination-editorial-page .destination-planner-card .primary-cta.is-disabled {
  border: 1px solid rgba(39, 94, 61, 0.12) !important;
  color: #819188 !important;
  background: #edf2ec !important;
  box-shadow: none !important;
}

body.destination-editorial-page .destination-planner-card .secondary-cta {
  border-color: rgba(39, 94, 61, 0.16) !important;
  color: #4d6959 !important;
  background: rgba(255, 255, 252, 0.72) !important;
}

body.destination-editorial-page .destination-planner-card .secondary-cta:hover {
  color: #1f563b !important;
  background: #fff !important;
}

/* Fewer visual boxes below the fold: softer panels and a consistent rhythm. */
body.destination-editorial-page .destination-overview-grid {
  gap: 16px !important;
}

body.destination-editorial-page .destination-editorial-card {
  padding: clamp(27px, 2.7vw, 40px) !important;
  border-color: var(--destination-editorial-line) !important;
  border-radius: 23px !important;
  background: rgba(255, 254, 250, 0.72) !important;
  box-shadow: 0 12px 34px rgba(29, 66, 44, 0.055) !important;
}

body.destination-editorial-page .destination-story-card {
  grid-column: 1 / -1 !important;
  min-height: 0 !important;
  color: var(--destination-editorial-ink) !important;
  border-color: rgba(45, 117, 76, 0.13) !important;
  background:
    radial-gradient(circle at 100% 0%, rgba(137, 202, 151, 0.2), transparent 22rem),
    linear-gradient(135deg, rgba(229, 244, 231, 0.92), rgba(247, 249, 241, 0.94)) !important;
}

body.destination-editorial-page .destination-story-card::after {
  border-color: rgba(44, 112, 73, 0.08) !important;
  box-shadow: 0 0 0 50px rgba(44, 112, 73, 0.018) !important;
}

body.destination-editorial-page .destination-story-card :is(.section-kicker, h2) {
  color: var(--destination-editorial-ink) !important;
}

body.destination-editorial-page .destination-story-card .section-kicker {
  color: #3f805c !important;
}

body.destination-editorial-page .destination-card-index {
  border-color: rgba(41, 108, 70, 0.2) !important;
  color: #397955 !important;
  background: rgba(255, 255, 252, 0.58);
}

body.destination-editorial-page .destination-story-copy {
  color: var(--destination-editorial-muted) !important;
}

body.destination-editorial-page .destination-story-card > div {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  column-gap: clamp(32px, 5vw, 92px);
  align-items: end;
}

body.destination-editorial-page .destination-story-card .section-kicker,
body.destination-editorial-page .destination-story-card h2 {
  grid-column: 1;
}

body.destination-editorial-page .destination-story-card .destination-story-copy {
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: center;
  max-width: 670px;
  margin: 0;
}

body.destination-editorial-page :is(.destination-highlights-card, .destination-practical-card, .destination-signature-card) {
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.destination-editorial-page .destination-highlights-card {
  grid-column: span 7 !important;
}

body.destination-editorial-page .destination-practical-card {
  grid-column: span 5 !important;
  border-left: 1px solid var(--destination-editorial-line) !important;
}

body.destination-editorial-page .destination-signature-card {
  grid-column: 1 / -1 !important;
  border-top: 1px solid var(--destination-editorial-line) !important;
}

body.destination-editorial-page .destination-signature-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(18px, 3vw, 48px);
}

body.destination-editorial-page .destination-signature-list li {
  align-items: start;
  border-top: 0 !important;
}

/* Same roadmap drawer interaction as detail and catalogue pages. */
body.destination-editorial-page .destination-layout > .travel-plan.travel-plan-shell.detail-roadmap-drawer {
  position: fixed !important;
  top: 112px !important;
  right: 10px !important;
  bottom: auto !important;
  left: auto !important;
  z-index: 48 !important;
  display: block !important;
  width: 330px !important;
  max-width: calc(100vw - 20px) !important;
  max-height: calc(100vh - 132px) !important;
  min-height: 70px !important;
  height: 70px !important;
  margin: 0 !important;
  padding: 16px 16px 18px 70px !important;
  overflow: hidden !important;
  border-radius: 25px 0 0 25px !important;
  box-shadow: 0 18px 46px rgba(21, 59, 39, 0.14) !important;
  transform: translateX(calc(100% - 62px)) !important;
  transition: transform 220ms ease, box-shadow 220ms ease !important;
}

body.destination-editorial-page .destination-layout > .travel-plan.travel-plan-shell.detail-roadmap-drawer.is-open {
  height: auto !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  box-shadow: 0 24px 64px rgba(21, 59, 39, 0.2) !important;
  transform: translateX(0) !important;
}

body.destination-editorial-page .destination-layout > .travel-plan.travel-plan-shell.detail-roadmap-drawer:not(.is-open) {
  border-color: transparent !important;
  background: transparent !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

body.destination-editorial-page .detail-roadmap-drawer > :not(.detail-roadmap-toggle) {
  opacity: 0;
  pointer-events: none;
  transition: opacity 130ms ease;
}

body.destination-editorial-page .detail-roadmap-drawer.is-open > :not(.detail-roadmap-toggle) {
  opacity: 1;
  pointer-events: auto;
  transition-delay: 90ms;
}

body.destination-editorial-page .detail-roadmap-toggle {
  position: absolute;
  top: 14px;
  left: 12px;
  z-index: 5;
  display: inline-grid;
  place-items: center;
  width: 42px;
  height: 42px;
  padding: 0;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.74);
  border-radius: 14px;
  color: #fff;
  background: linear-gradient(145deg, #2b895c, #1d6544);
  box-shadow: 0 10px 22px rgba(29, 101, 68, 0.24);
  cursor: pointer;
  transition: background 190ms ease, transform 190ms ease;
}

body.destination-editorial-page .detail-roadmap-toggle:hover {
  transform: translateY(-1px);
}

body.destination-editorial-page .detail-roadmap-toggle:focus-visible {
  outline: 3px solid rgba(74, 171, 113, 0.32);
  outline-offset: 3px;
}

body.destination-editorial-page .detail-roadmap-toggle-icon,
body.destination-editorial-page .detail-roadmap-toggle-icon svg {
  display: block;
  width: 21px;
  height: 21px;
}

body.destination-editorial-page .detail-roadmap-toggle-icon svg {
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}

body.destination-editorial-page .detail-roadmap-toggle-label {
  display: none;
}

@media (max-width: 1220px) {
  body.destination-editorial-page .destination-workspace {
    grid-template-columns: minmax(0, 1.4fr) minmax(370px, 0.8fr) !important;
  }

  body.destination-editorial-page .destination-copy-card {
    grid-template-columns: minmax(0, 1fr) 220px !important;
  }
}

@media (max-width: 1040px) {
  body.destination-editorial-page .destination-workspace {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body.destination-editorial-page .destination-hero {
    min-height: 570px !important;
  }

  body.destination-editorial-page .destination-planner-card {
    min-height: 0 !important;
  }

  body.destination-editorial-page .destination-planner-sequence {
    margin-top: 18px;
  }

  body.destination-editorial-page .destination-story-card > div {
    grid-template-columns: minmax(0, 1fr);
  }

  body.destination-editorial-page .destination-story-card .destination-story-copy {
    grid-column: 1;
    grid-row: auto;
    margin-top: 14px;
  }
}

@media (max-width: 900px) {
  body.destination-editorial-page .destination-layout > .travel-plan.travel-plan-shell.detail-roadmap-drawer {
    top: auto !important;
    right: 10px !important;
    bottom: 10px !important;
    width: min(330px, calc(100vw - 20px)) !important;
    max-height: min(72vh, 620px) !important;
  }
}

@media (max-width: 720px) {
  body.destination-editorial-page .destination-layout,
  body.destination-editorial-page.has-travel-roadmap .destination-layout {
    width: calc(100vw - 24px) !important;
    margin: 12px auto 64px !important;
  }

  body.destination-editorial-page .destination-main,
  body.destination-editorial-page .destination-workspace,
  body.destination-editorial-page .destination-overview-grid {
    gap: 13px !important;
  }

  body.destination-editorial-page :is(.destination-hero, .destination-planner-card, .destination-editorial-card) {
    border-radius: 22px !important;
  }

  body.destination-editorial-page .destination-hero {
    min-height: 490px !important;
  }

  body.destination-editorial-page .destination-copy-card {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body.destination-editorial-page :is(.destination-highlights-card, .destination-practical-card, .destination-signature-card) {
    grid-column: 1 / -1 !important;
    border-left: 0 !important;
    border-top: 1px solid var(--destination-editorial-line) !important;
    padding: 26px 4px !important;
  }

  body.destination-editorial-page .destination-signature-list {
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
  }

  body.destination-editorial-page .destination-signature-list li {
    border-top: 1px solid var(--destination-editorial-line) !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.destination-editorial-page .destination-date-control {
    animation: none !important;
  }

  body.destination-editorial-page .detail-roadmap-drawer,
  body.destination-editorial-page .detail-roadmap-drawer > *,
  body.destination-editorial-page .detail-roadmap-toggle {
    transition: none !important;
  }
}
