:root{--ink: #1a1a18;--paper: #f5f2ec;--stone: #c8c3b8;--warm: #b8a48a;--accent: #c45a3c;--moss: #5a6b52;--sky: #4a6a8a;--plum: #6b5670;--gold: #a08040;--serif: "Cormorant Garamond", "EB Garamond", Georgia, serif;--sans: "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--maxw: 720px;--pad: clamp(1.25rem, 4vw, 2.25rem)}*{box-sizing:border-box;margin:0;padding:0}html{background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{font-family:var(--sans);font-size:15px;line-height:1.65;letter-spacing:.005em;min-height:100vh;min-height:100dvh;padding:0;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}main{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad)}a{color:inherit;text-decoration:none;border-bottom:1px solid currentColor;transition:opacity .2s ease}a:hover{opacity:.6}h1,h2,h3,h4{font-family:var(--serif);font-weight:400;letter-spacing:-.01em;line-height:1.15;color:var(--ink)}.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease;transition-delay:var(--reveal-delay, 0s)}.reveal.is-visible{opacity:1;transform:translateY(0)}@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}.hero{padding:clamp(4rem,14vw,7rem) 0 clamp(3rem,10vw,5rem);text-align:center}.hero__ornament{font-family:var(--serif);font-size:clamp(3rem,12vw,5rem);color:var(--warm);letter-spacing:.4em;margin-bottom:1.5rem;opacity:.85}.hero__eyebrow{text-transform:uppercase;letter-spacing:.32em;font-size:.7rem;color:var(--warm);margin-bottom:1.25rem}.hero__title{font-size:clamp(2.4rem,8vw,3.8rem);font-style:italic;margin-bottom:1rem}.hero__dates{font-family:var(--serif);font-size:clamp(1.1rem,3.5vw,1.4rem);color:var(--ink);margin-bottom:.5rem}.hero__travellers{font-size:.85rem;letter-spacing:.06em;color:var(--warm)}.section-heading{text-align:center;margin:clamp(3rem,8vw,5rem) 0 clamp(1.5rem,4vw,2.5rem)}.section-heading__eyebrow{text-transform:uppercase;letter-spacing:.32em;font-size:.65rem;color:var(--warm);margin-bottom:.75rem}.section-heading__title{font-size:clamp(1.6rem,5vw,2.2rem);font-style:italic}.flight{border:1px solid var(--stone);background:var(--paper);padding:clamp(1.5rem,4vw,2rem);margin:1.5rem 0;border-radius:2px}.flight__head{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid var(--stone);padding-bottom:.75rem;margin-bottom:1rem;gap:1rem;flex-wrap:wrap}.flight__label{font-family:var(--serif);font-style:italic;font-size:1.3rem}.flight__date{font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;color:var(--warm)}.flight__route{font-family:var(--serif);font-size:1.15rem;margin-bottom:1rem}.flight__times{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:.75rem;margin:1.25rem 0;padding:1rem 0;border-top:1px solid color-mix(in srgb,var(--stone) 60%,transparent);border-bottom:1px solid color-mix(in srgb,var(--stone) 60%,transparent)}.flight__time{text-align:center}.flight__time-value{font-family:var(--serif);font-size:1.6rem;display:block}.flight__time-label{font-size:.65rem;letter-spacing:.18em;text-transform:uppercase;color:var(--warm);margin-top:.25rem}.flight__time-offset{font-size:.7rem;color:var(--warm);margin-top:.25rem;font-style:italic}.flight__arrow{font-family:var(--serif);font-size:1.5rem;color:var(--warm)}.flight__meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.5rem 1.5rem;font-size:.8rem}.flight__meta dt{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--warm);margin-bottom:.15rem}.flight__meta dd{color:var(--ink);margin-bottom:.5rem}.flight__seats{margin-top:.75rem;font-size:.8rem;color:var(--ink)}.flight__seats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.5rem;margin-top:.5rem}.flight__seat{background:color-mix(in srgb,var(--stone) 25%,transparent);padding:.5rem .75rem;border-radius:2px}.flight__seat-name{font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--warm)}.flight__seat-value{font-family:var(--serif);font-size:1.1rem}.flight__seat-note{display:block;font-size:.7rem;color:var(--warm);font-style:italic;margin-top:.15rem}.timeline{position:relative;padding:1rem 0}.timeline:before{content:"";position:absolute;left:14px;top:0;bottom:0;width:1px;background:linear-gradient(to bottom,transparent,var(--stone) 6%,var(--stone) 94%,transparent)}.city{position:relative;padding-left:3.25rem;margin:clamp(2rem,5vw,3rem) 0}.city__marker{position:absolute;left:6px;top:.5rem;width:18px;height:18px;border-radius:50%;background:var(--paper);border:2px solid var(--marker, var(--ink));box-shadow:0 0 0 4px var(--paper);z-index:1}.city__head{margin-bottom:1.25rem}.city__order{font-size:.65rem;letter-spacing:.32em;text-transform:uppercase;color:var(--warm);margin-bottom:.25rem}.city__label{font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:var(--marker, var(--warm));margin-bottom:.5rem;font-weight:500}.city__name{font-size:clamp(2rem,6vw,2.6rem);font-style:italic;line-height:1.05}.city__dates{font-family:var(--serif);font-size:1.05rem;color:var(--ink);margin-top:.4rem}.city__nights{font-size:.75rem;letter-spacing:.12em;color:var(--warm);margin-top:.15rem}.hotel{border:1px solid var(--stone);background:var(--paper);padding:clamp(1.25rem,4vw,1.75rem);border-radius:2px;transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}.hotel:hover{transform:translateY(-2px);box-shadow:0 14px 28px -22px #1a1a1840;border-color:color-mix(in srgb,var(--stone) 65%,var(--warm) 35%)}.hotel__head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap;margin-bottom:.75rem}.hotel__title-block{flex:1 1 auto}.hotel__type{font-size:.65rem;letter-spacing:.24em;text-transform:uppercase;color:var(--warm);margin-bottom:.4rem}.hotel__name{font-size:1.45rem;font-style:italic;line-height:1.2}.hotel__name a{border-bottom:1px solid color-mix(in srgb,var(--ink) 25%,transparent)}.hotel__neighbourhood{font-size:.85rem;color:var(--ink);margin:.4rem 0 .9rem}.hotel__rooms{font-size:.85rem;color:var(--ink);border-top:1px solid color-mix(in srgb,var(--stone) 60%,transparent);padding-top:.85rem;margin-top:.85rem}.hotel__details{margin-top:.85rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.65rem 1.25rem;font-size:.8rem}.hotel__detail dt{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--warm);margin-bottom:.15rem}.hotel__detail dd{color:var(--ink)}.hotel__refs{margin-top:.85rem;font-size:.75rem;color:var(--warm);font-family:var(--serif);letter-spacing:.04em}.hotel__rate{margin-top:.5rem;font-size:.8rem;color:var(--gold);font-family:var(--serif);font-style:italic}.hotel__note{margin-top:1rem;padding-top:1rem;border-top:1px solid color-mix(in srgb,var(--stone) 60%,transparent);font-family:var(--serif);font-style:italic;font-size:1.05rem;line-height:1.5;color:color-mix(in srgb,var(--ink) 85%,var(--warm) 15%)}.status{display:inline-flex;align-items:center;padding:.25rem .7rem;border-radius:999px;font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;font-weight:500;white-space:nowrap}.status--booked{background:color-mix(in srgb,var(--moss) 18%,transparent);color:color-mix(in srgb,var(--moss) 80%,var(--ink) 20%)}.status--pending{background:color-mix(in srgb,var(--warm) 22%,transparent);color:color-mix(in srgb,var(--warm) 80%,var(--ink) 20%)}.status--cancel{background:color-mix(in srgb,var(--accent) 18%,transparent);color:color-mix(in srgb,var(--accent) 80%,var(--ink) 20%)}.connector{position:relative;padding-left:3.25rem;padding-top:1.25rem;padding-bottom:1.25rem}.connector__inner{font-family:var(--serif);font-style:italic;font-size:.95rem;color:color-mix(in srgb,var(--ink) 70%,var(--warm) 30%);border-left:1px dashed color-mix(in srgb,var(--stone) 80%,transparent);padding-left:1rem;margin-left:-1.75rem}.connector__desc{display:block}.connector__meta{display:block;font-style:normal;font-family:var(--sans);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--warm);margin-top:.25rem}.site-footer{margin-top:clamp(4rem,10vw,6rem);padding:3rem var(--pad) 4rem;text-align:center;border-top:1px solid var(--stone)}.site-footer__ornament{font-family:var(--serif);color:var(--warm);letter-spacing:.4em;margin-bottom:1rem;font-size:1.6rem}.site-footer__line{font-family:var(--serif);font-style:italic;font-size:1.1rem;color:var(--ink);margin-bottom:.35rem}.site-footer__sub{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--warm)}.overview{margin-top:clamp(2rem,6vw,3rem)}.overview__map{position:relative;width:100%;aspect-ratio:4 / 5;max-height:560px;border:1px solid var(--stone);border-radius:2px;background:color-mix(in srgb,var(--stone) 25%,var(--paper) 75%);overflow:hidden}.overview__placeholder,.hotel-map__placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-style:italic;color:var(--warm);font-size:.95rem;pointer-events:none}.overview__legend{list-style:none;margin:1.25rem 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.5rem 1.25rem}.overview__legend-item{display:grid;grid-template-columns:auto auto 1fr;align-items:baseline;column-gap:.5rem;row-gap:.1rem;padding:.4rem 0;border-top:1px solid color-mix(in srgb,var(--stone) 70%,transparent);font-size:.85rem}.overview__legend-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--marker, var(--warm));align-self:center}.overview__legend-step{font-size:.65rem;letter-spacing:.18em;color:var(--warm)}.overview__legend-city{font-family:var(--serif);font-size:1.05rem;font-style:italic}.overview__legend-label{grid-column:3;font-size:.75rem;letter-spacing:.04em;color:color-mix(in srgb,var(--ink) 65%,var(--warm) 35%)}.hotel-map{margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid color-mix(in srgb,var(--stone) 60%,transparent)}.hotel-map__canvas{position:relative;width:100%;aspect-ratio:16 / 10;max-height:280px;border-radius:2px;overflow:hidden;border:1px solid var(--stone);background:color-mix(in srgb,var(--stone) 22%,var(--paper) 78%)}.hotel-map__actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.85rem}.hotel-map__action{flex:1 1 auto;text-align:center;font-family:var(--sans);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;padding:.75rem 1rem;background:var(--ink);color:var(--paper);border:1px solid var(--ink);border-bottom:1px solid var(--ink);border-radius:2px;transition:background .2s ease,color .2s ease}.hotel-map__action:hover{background:color-mix(in srgb,var(--ink) 80%,var(--accent) 20%);opacity:1}.hotel-map__action--secondary{background:var(--paper);color:var(--ink);border:1px solid var(--stone)}.hotel-map__action--secondary:hover{background:color-mix(in srgb,var(--paper) 70%,var(--stone) 30%)}.route-marker__inner{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;border:2px solid var(--paper);box-shadow:0 2px 6px #1a1a1840;box-sizing:border-box}.route-marker__num{font-family:var(--serif);font-size:.7rem;font-weight:500;color:var(--paper);line-height:1;pointer-events:none}.hotel-pin__dot{display:block;width:22px;height:22px;border-radius:50%;border:3px solid var(--paper);box-shadow:0 2px 6px #1a1a184d;box-sizing:border-box}.leaflet-container{font-family:var(--sans);background:color-mix(in srgb,var(--stone) 18%,var(--paper) 82%)}.leaflet-popup-content-wrapper{border-radius:2px;background:var(--paper);color:var(--ink);box-shadow:0 10px 30px -18px #1a1a1880;padding:2px}.leaflet-popup-content{margin:.6rem .85rem;line-height:1.4}.leaflet-popup-tip{background:var(--paper)}.leaflet-control-attribution{font-size:.65rem!important;background:color-mix(in srgb,var(--paper) 80%,transparent)!important}.leaflet-control-zoom a{background:var(--paper)!important;color:var(--ink)!important;border-color:var(--stone)!important}.map-popup__label{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--warm);margin-bottom:.2rem}.map-popup__city{font-family:var(--serif);font-size:1.1rem;font-style:italic;margin-bottom:.15rem}.map-popup__hotel{font-family:var(--serif);font-size:.95rem;color:var(--ink)}.map-popup__meta{font-size:.7rem;letter-spacing:.1em;color:var(--warm);margin-top:.25rem}
