/* A photographic travel journal: fiord green, glacial blue and alpine light. */
:root { --ink: #143e37; --paper: #f3f7f4; --cream: #fffefa; --fern: #12604f; --moss: #78a99a; --line: rgba(20,62,55,.17); --orange: #dba45f; }
body { background: #f3f7f4; }
.site-header { background: rgba(252,254,251,.97); min-height: 82px; }
.site-header nav a { font-size: 14px; }
.mark-caption { font-size: 10px !important; }
.draft-pill { font-size: 12px; letter-spacing: .02em; font-weight: 500; text-transform: none; border-color: var(--line); }
.hero { position: relative; isolation: isolate; display: block; min-height: 640px; border: 0; background: #163e36; }
.hero .hero-art { position: absolute; z-index: -2; inset: 0; margin: 0; min-height: 0; border-radius: 0; background: #163e36; }
.hero-photo { width: 100%; height: 100%; object-fit: cover; object-position: center 48%; }
.hero::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg,rgba(4,29,25,.78),rgba(6,35,30,.40) 48%,rgba(4,24,22,.10) 80%),linear-gradient(0deg,rgba(4,25,22,.45),transparent 38%); }
.hero .hero-copy { min-height: 640px; width: min(760px,70%); padding: 66px 7vw 90px; color: white; justify-content: center; }
.hero .eyebrow { color: #daf4e9; font-size: 12px; letter-spacing: .15em; }
.hero .couple-title { color: #fffef6; font-size: clamp(66px,7.3vw,104px); line-height: .99; letter-spacing: -.05em; text-shadow: 0 2px 28px #09251b35; }
.hero .couple-title em { color: #dfc89d; }
.honeymoon-line { color: #f5eedf; font-size: 24px; }
.hero .hero-intro { max-width: 490px; color: #eef6f2; font-size: 17px; line-height: 1.7; }
.hero-actions { margin-top: 28px; gap: 24px; }
.hero .primary-button { background: #fcfff7; color: #154b3d; font-size: 14px; padding: 16px 22px; }
.hero .primary-button:hover { background: #d8eee4; }
.hero .text-link { color: white; font-size: 14px; }
.photo-caption { position: absolute; bottom: 26px; right: 5vw; max-width: 260px; color: #fff; text-align: right; font-size: 12px; line-height: 1.7; }
.photo-caption strong { display: block; font: 22px Georgia,serif; margin-bottom: 5px; }
.quick-facts { background: #103e34; padding: 26px 7vw; }
.quick-facts strong { color: #fffef8; }
.quick-facts span { color: #cee6dc; font-size: 12px; }
.timeline-section { position: relative; padding: 86px 7vw 68px; background: #fffefa; overflow: hidden; }
.timeline-section::before { content: ''; position: absolute; top: 36px; right: 3%; width: 90px; height: 165px; background: url('fern.svg') center/contain no-repeat; opacity: .12; pointer-events: none; transform: rotate(22deg); }
.timeline-section h2,.journey-explorer h2 { font-size: clamp(38px,4.6vw,64px); }
.eyebrow { font-size: 12px; }
.trip-timeline li { border-top-color: #87b8a8; }
.timeline-marker { background: #12604f; color: white; font-size: 12px; }
.trip-timeline small { font-size: 12px; letter-spacing: .055em; }
.trip-timeline p { font-size: 14px; line-height: 1.6; }
.journey-explorer { background: linear-gradient(180deg,#edf5f0,#e5f1ed); padding-top: 82px; }
.island-accordions { gap: 24px; }
.island-panel { border: 0; border-radius: 12px; background: #f7faf7; box-shadow: 0 10px 28px #183b3210; }
.island-panel > summary { position: relative; isolation: isolate; overflow: hidden; min-height: 218px; padding: 32px; background: #123d34; }
.island-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.island-panel[data-island-panel="south"] > summary { min-height: 280px; }
.island-panel[data-island-panel="south"] .island-photo { object-position: center 56%; }
.island-panel > summary::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg,rgba(7,34,28,.84),rgba(8,31,28,.30)),linear-gradient(0deg,rgba(4,24,19,.18),transparent); }
.island-panel > summary small { color: #e4f4eb; }
.island-panel > summary strong { font-size: clamp(36px,4.5vw,59px); }
.island-panel > summary .island-name { color: #ecf5ee; font-size: 14px; font-weight: 400; font-style: italic; letter-spacing: .02em; }
.island-panel > summary::after { width: 44px; height: 44px; background: #ffffff12; }
.island-content { padding: 20px; gap: 12px; }
.stop-panel { border-color: #d9e5de; border-radius: 7px; background: white; }
.stop-panel > summary { min-height: 95px; }
.stop-panel > summary small { color: #477d6d; }
.stop-panel[open] > summary { background: #eaf3ee; }
.stop-panel > summary:hover { background: #e4f0e9; }
.stop-panel > summary strong { letter-spacing: -.025em; }
.stop-food { background: #fafbf7; }
.activity-card,.restaurant.compact { background: white; border-color: #dce7df; border-radius: 6px; box-shadow: none; }
.activity-card p { font-size: 16px; line-height: 1.6; }
.restaurant.researched p,.restaurant.compact span { font-size: 14px; line-height: 1.65; }
.restaurant.researched .restaurant-cuisine,.review-score { font-size: 12px; }
.restaurant-links,.activity-link { font-size: 14px; }
.column-label { font-size: 12px; }
.rec-tag,.stop-pick { font-size: 12px; letter-spacing: 0; }
.rec-tag.must { background: #d9ab65; color: #163d32; }
.rec-tag.bini,.stop-pick { background: #775787; }
.rec-tag.honeymoon { background: #a94e66; }
.rec-tag.weather { background: #347384; }
.diet-note { font-size: 14px; line-height: 1.75; }
.booking-section { background: #113d33; }
.booking-section .eyebrow { color: #a7d1be; }
.booking-list span { color: #dbbc86; font-size: 13px; }
.practical-section article:last-child { background: #d7e9e4; }
footer { background: #0b2d25; }
.photo-licences-link { color: #bbd7cb; font-size: 12px; text-underline-offset: 3px; }
.transport-symbols { position: absolute; overflow: hidden; pointer-events: none; }
.timeline-marker svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.travel-flight .timeline-marker { background: #286482; }
.travel-car .timeline-marker { background: #12604f; }
.trip-timeline li.travel-flight { border-top-style: dashed; border-top-color: #6d9eaf; }
a:focus-visible,summary:focus-visible { outline: 3px solid #bd914e; outline-offset: 5px; }
@media (max-width: 900px) {
  .hero .hero-copy { width: 90%; }
  .hero .hero-intro { max-width: 430px; }
  .stop-content { grid-template-columns: 1fr; }
}
@media (max-width: 650px) {
  .site-header { min-height: 76px; padding: 0 5vw; }
  .fern-mark { width: 27px; height: 48px; }
  .couple-mark .monogram { font-size: 28px; }
  .draft-pill { max-width: 168px; font-size: 11px; padding: 7px 9px; }
  .hero { min-height: 685px; }
  .hero .hero-copy { width: 100%; min-height: 685px; padding: 54px 7vw 110px; }
  .hero .couple-title { font-size: clamp(60px,14vw,86px); }
  .hero-photo { object-position: 61% center; }
  .hero::after { background: linear-gradient(90deg,#082d25b3,#082d2540),linear-gradient(0deg,#05281dbb,transparent 65%); }
  .hero .hero-intro { font-size: 16px; max-width: 360px; }
  .honeymoon-line { font-size: 21px; }
  .hero-actions { gap: 18px; }
  .photo-caption { right: 7vw; bottom: 24px; }
  .photo-caption strong { font-size: 19px; }
  .quick-facts { padding: 24px 5vw; }
  .timeline-section,.journey-explorer { padding: 64px 6vw; }
  .section-heading { margin-bottom: 38px; }
  .split-heading > p { font-size: 16px; }
  .island-panel > summary { min-height: 185px; padding: 24px; }
  .island-panel[data-island-panel="south"] > summary { min-height: 240px; }
  .island-panel > summary strong { font-size: 37px; }
  .island-panel > summary .island-name { font-size: 13px; }
  .island-content { padding: 10px; }
  .stop-panel > summary { padding: 19px 16px; gap: 12px; }
  .stop-panel > summary strong { font-size: 25px; }
  .stop-activities,.stop-food { padding: 16px; }
  .activity-card { padding: 16px; }
  .restaurant.compact { padding: 16px; }
}
.tips-section { padding: 82px 7vw; background: #fffefa; scroll-margin-top: 100px; }
.tips-section h2 { margin: 0; font: 500 clamp(38px,4.6vw,64px)/1.05 Georgia,serif; letter-spacing: -.045em; }
.tips-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 40px; }
.tip-card { position: relative; padding: 30px 0 30px 44px; border-top: 1px solid var(--line); }
.tip-number { position: absolute; left: 0; top: 34px; font-size: 12px; color: var(--fern); letter-spacing: .08em; }
.tip-card h3 { margin: 0 0 12px; font: 26px/1.2 Georgia,serif; letter-spacing: -.025em; }
.tip-card p { margin: 0 0 15px; font-size: 16px; line-height: 1.7; color: #38574b; }
.tip-card a { color: var(--fern); font-size: 13px; text-underline-offset: 4px; }
.packing-strip { margin: 24px 0 0; padding: 24px 28px; background: #e4eee5; font-size: 14px; line-height: 1.9; border-radius: 8px; }
.packing-strip strong { display: block; margin-bottom: 6px; font: 23px Georgia,serif; }
.restaurant.indian-table { border-left: 3px solid #b78b4c; }
@media (max-width: 650px) { .tips-section { padding: 64px 6vw; } .tips-grid { grid-template-columns: 1fr; } .tip-card { padding-left: 34px; } .tip-card h3 { font-size: 24px; } }
@media print { .hero { min-height: auto; } .hero .hero-copy { min-height: 540px; } .photo-credits { background: white; color: black; } .tip-card { break-inside: avoid; } }
