:root {
  --paper: #f7f5f0;
  --cream: #eee9df;
  --ink: #263336;
  --muted: #6e7c77;
  --moss: #718070;
  --sky: #c7d9dc;
  --line: rgba(38, 51, 54, 0.16);
  --display: "Bodoni Moda", Georgia, serif;
  --body: "Manrope", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --shell: min(1180px, calc(100vw - 64px));
}

* { box-sizing: border-box; margin: 0; }
html { background: var(--paper); }
body { min-width: 320px; color: var(--ink); background: var(--paper); font-family: var(--body); line-height: 1.65; -webkit-font-smoothing: antialiased; }
a { color: inherit; }
:focus-visible { outline: 3px solid var(--moss); outline-offset: 4px; }

.skip-link { position: fixed; top: 14px; left: 14px; z-index: 10; padding: 10px 14px; color: var(--paper); background: var(--ink); font-weight: 700; text-decoration: none; transform: translateY(-180%); }
.skip-link:focus { transform: translateY(0); }
.site-nav { display: flex; align-items: center; justify-content: space-between; width: var(--shell); min-height: 90px; margin: 0 auto; border-bottom: 1px solid var(--line); }
.site-nav a { font-size: 0.67rem; font-weight: 700; letter-spacing: 0.15em; text-decoration: none; text-transform: uppercase; }
.site-nav__back { color: var(--ink); }
.site-nav__instagram { color: var(--moss); }
.site-nav__actions { display: flex; gap: 16px; align-items: center; }
.site-language { display: inline-flex; gap: 2px; align-items: center; padding: 3px; border: 1px solid var(--line); border-radius: 999px; background: rgba(247, 245, 240, 0.76); }
.site-language a { display: grid; min-width: 34px; min-height: 28px; padding: 0 7px; border-radius: 999px; place-items: center; color: var(--moss); font-size: 0.61rem; letter-spacing: 0.08em; }
.site-language a[aria-current="page"] { color: var(--paper); background: var(--ink); }

.travel-hero { display: grid; grid-template-columns: minmax(280px, 0.83fr) minmax(0, 1.17fr); width: var(--shell); min-height: min(720px, calc(100vh - 90px)); margin: 0 auto; }
.travel-hero__copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(56px, 8vw, 118px) clamp(28px, 6vw, 86px) clamp(56px, 8vw, 100px) 0; }
.eyebrow, .travel-overview__label, .day-entry__number, .day-entry__media span, .site-footer { font-size: 0.67rem; font-weight: 700; letter-spacing: 0.15em; text-transform: uppercase; }
.eyebrow, .travel-overview__label, .day-entry__number { color: var(--moss); }
.travel-hero h1, .section-heading h2, .day-entry h3 { font-family: var(--display); font-weight: 500; letter-spacing: -0.065em; }
.travel-hero h1 { margin-top: 18px; font-size: clamp(4rem, 8.5vw, 7.8rem); line-height: 0.88; }
.travel-hero h1 em, .section-heading h2 em, .day-entry h3 em { font-weight: 500; }
.title-space { display: none; }
.travel-hero__copy > p:not(.eyebrow) { max-width: 38ch; margin-top: 36px; color: var(--muted); font-size: 1rem; }
.travel-hero__line { width: min(100%, 340px); height: 1px; margin-top: 42px; background: var(--moss); }
.travel-hero__image { position: relative; min-height: 540px; overflow: hidden; background: var(--sky); }
.travel-hero__image::after { position: absolute; right: 0; bottom: 0; left: 0; height: 30%; background: linear-gradient(transparent, rgba(38, 51, 54, 0.12)); content: ""; pointer-events: none; }
.travel-hero__image img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 56%; }

.travel-overview { display: grid; grid-template-columns: 0.58fr 1.08fr 1fr; gap: clamp(24px, 5vw, 72px); align-items: start; width: var(--shell); padding: clamp(68px, 10vw, 132px) 0; margin: 0 auto; border-top: 1px solid var(--line); }
.travel-overview > p:not(.travel-overview__label) { max-width: 42ch; color: var(--muted); }
.day-marker { display: grid; grid-template-columns: repeat(6, 1fr); padding: 0; list-style: none; }
.day-marker li { padding: 12px 0; border-top: 1px solid var(--moss); color: var(--ink); font-size: 0.76rem; font-weight: 700; letter-spacing: 0.1em; }

.day-journal { width: var(--shell); padding: 0 0 clamp(90px, 12vw, 160px); margin: 0 auto; border-top: 1px solid var(--line); }
.section-heading { max-width: 580px; margin-bottom: clamp(58px, 9vw, 108px); }
.section-heading h2 { margin-top: 18px; font-size: clamp(3.4rem, 6.6vw, 6.5rem); line-height: 0.9; }
.day-entry { display: grid; grid-template-columns: minmax(250px, 0.8fr) minmax(0, 1.2fr); min-height: 460px; border-top: 1px solid var(--line); }
.day-entry:last-child { border-bottom: 1px solid var(--line); }
.day-entry__copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(36px, 5vw, 76px) clamp(26px, 6vw, 96px) clamp(36px, 5vw, 76px) 0; }
.day-entry h3 { margin-top: 17px; font-size: clamp(2.8rem, 4.8vw, 4.8rem); line-height: 0.91; }
.day-entry__placeholder { max-width: 38ch; margin-top: 28px; color: var(--muted); }
.day-entry__gallery-link { display: inline-flex; gap: 12px; align-items: center; width: fit-content; margin-top: 30px; padding-bottom: 9px; border-bottom: 1px solid var(--moss); color: var(--ink); font-size: 0.7rem; font-weight: 700; letter-spacing: 0.14em; text-decoration: none; text-transform: uppercase; }
.day-entry__gallery-link span { color: var(--moss); font-size: 1rem; transition: transform 160ms ease; }
.day-entry__gallery-link:hover span { transform: translateX(4px); }
.day-entry__media { display: flex; align-items: flex-end; min-height: 340px; padding: 28px; background: linear-gradient(145deg, #d9e4dc, #a9b7a1); color: rgba(38, 51, 54, 0.7); }
.day-entry__media--photo { padding: 0; overflow: hidden; background: var(--sky); }
.day-entry__media--photo img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.day-entry:nth-of-type(3n) .day-entry__media { background: linear-gradient(145deg, #d9e8e8, #9cb9c1); }
.day-entry:nth-of-type(4n) .day-entry__media { background: linear-gradient(145deg, #eee5d7, #cfb993); }
.day-entry:nth-child(even) .day-entry__media { order: -1; }
.day-entry:nth-child(even) .day-entry__copy { padding-right: 0; padding-left: clamp(26px, 6vw, 96px); }
.day-gallery-hero { display: grid; grid-template-columns: minmax(280px, 0.86fr) minmax(0, 1.14fr); width: var(--shell); margin: 0 auto; }
.day-gallery-hero__copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(62px, 9vw, 130px) clamp(30px, 6vw, 96px) clamp(62px, 9vw, 120px) 0; }
.day-gallery-hero h1, .photo-gallery h2 { font-family: var(--display); font-weight: 500; letter-spacing: -0.065em; }
.day-gallery-hero h1 { margin-top: 18px; font-size: clamp(3.6rem, 6.5vw, 6.7rem); line-height: 0.9; }
.day-gallery-hero h1 em, .photo-gallery h2 em { font-weight: 500; }
.day-gallery-hero__copy > p:not(.eyebrow) { max-width: 46ch; margin-top: 34px; color: var(--muted); }
.day-gallery-hero__image { min-height: 620px; overflow: hidden; background: var(--sky); }
.day-gallery-hero__image img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.photo-gallery { width: var(--shell); padding: clamp(78px, 11vw, 142px) 0 clamp(90px, 12vw, 160px); margin: 0 auto; border-top: 1px solid var(--line); }
.photo-gallery__heading { margin-bottom: clamp(42px, 6vw, 76px); }
.photo-gallery h2 { margin-top: 17px; font-size: clamp(3.2rem, 6vw, 6.1rem); line-height: 0.9; }
.photo-gallery__grid { columns: 3 250px; column-gap: 20px; }
.photo-gallery__item { display: block; margin: 0 0 20px; overflow: hidden; background: var(--sky); break-inside: avoid; }
.photo-gallery__item img { display: block; width: 100%; height: auto; }
.site-footer { width: var(--shell); padding: 28px 0 42px; margin: 0 auto; border-top: 1px solid var(--line); color: var(--muted); text-align: center; }

@media (max-width: 760px) {
  :root { --shell: min(100% - 40px, 600px); }
  .site-nav { min-height: 72px; }
  .site-nav__actions { gap: 10px; }
  .travel-hero { grid-template-columns: 1fr; min-height: 0; }
  .travel-hero__copy { padding: 76px 0 58px; }
  .travel-hero h1 { font-size: clamp(2.1rem, 10vw, 3.45rem); letter-spacing: -0.08em; white-space: nowrap; }
  .travel-hero h1 .title-break { display: none; }
  .travel-hero h1 .title-space { display: inline; }
  .travel-hero__image { min-height: 480px; }
  .travel-overview { grid-template-columns: 1fr; gap: 24px; }
  .day-entry { grid-template-columns: 1fr; min-height: 0; }
  .day-entry__copy, .day-entry:nth-child(even) .day-entry__copy { min-height: 360px; padding: 54px 0; }
  .day-entry:nth-child(even) .day-entry__media { order: initial; }
  .day-entry__media { min-height: 390px; }
  .day-gallery-hero { grid-template-columns: 1fr; }
  .day-gallery-hero__copy { min-height: 0; padding: 76px 0 58px; }
  .day-gallery-hero__image { min-height: 480px; }
  .photo-gallery__grid { columns: 1; }
}
