@font-face {
    font-family: "Manrope";
    font-style: normal;
    font-display: swap;
    font-weight: 200 800;
    src: url("../vendor/fonts/manrope/manrope-cyrillic-wght-normal.woff2?v=5.3.0") format("woff2-variations");
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
    font-family: "Manrope";
    font-style: normal;
    font-display: swap;
    font-weight: 200 800;
    src: url("../vendor/fonts/manrope/manrope-latin-ext-wght-normal.woff2?v=5.3.0") format("woff2-variations");
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
    font-family: "Manrope";
    font-style: normal;
    font-display: swap;
    font-weight: 200 800;
    src: url("../vendor/fonts/manrope/manrope-latin-wght-normal.woff2?v=5.3.0") format("woff2-variations");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: "Unbounded";
    font-style: normal;
    font-display: swap;
    font-weight: 200 900;
    src: url("../vendor/fonts/unbounded/unbounded-cyrillic-wght-normal.woff2?v=5.3.0") format("woff2-variations");
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
    font-family: "Unbounded";
    font-style: normal;
    font-display: swap;
    font-weight: 200 900;
    src: url("../vendor/fonts/unbounded/unbounded-latin-ext-wght-normal.woff2?v=5.3.0") format("woff2-variations");
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
    font-family: "Unbounded";
    font-style: normal;
    font-display: swap;
    font-weight: 200 900;
    src: url("../vendor/fonts/unbounded/unbounded-latin-wght-normal.woff2?v=5.3.0") format("woff2-variations");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
    --red: #d71920;
    --red-dark: #a90f15;
    --ink: #151412;
    --ink-soft: #2a2823;
    --paper: #f2eddf;
    --paper-deep: #ddd2bd;
    --sea: #72c9c7;
    --sea-deep: #0a7478;
    --olive: #687052;
    --white: #fffdf7;
    --line: rgba(21, 20, 18, .2);
    --pad: clamp(1.25rem, 4vw, 5rem);
    --display: "Unbounded", "Arial Black", sans-serif;
    --sans: "Manrope", Arial, sans-serif;
    --serif: Georgia, "Times New Roman", serif;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
    max-width: 100%;
    overflow-x: clip;
}

body {
    max-width: 100%;
    margin: 0;
    color: var(--ink);
    background: var(--paper);
    font-family: var(--sans);
    font-size: 16px;
    line-height: 1.6;
    overflow-x: hidden;
}

body.menu-open,
body.modal-open {
    overflow: hidden;
}

img {
    display: block;
    width: 100%;
}

a {
    color: inherit;
    text-decoration: none;
}

button,
input,
textarea,
select {
    font: inherit;
}

button {
    color: inherit;
}

::selection {
    color: var(--white);
    background: var(--red);
}

:focus-visible {
    outline: 3px solid var(--sea);
    outline-offset: 4px;
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.skip-link {
    position: fixed;
    z-index: 999;
    left: 1rem;
    top: 1rem;
    padding: .75rem 1rem;
    color: var(--white);
    background: var(--ink);
    transform: translateY(-160%);
    transition: transform .2s;
}

.skip-link:focus {
    transform: translateY(0);
}

.scroll-progress {
    position: fixed;
    z-index: 120;
    top: 0;
    left: 0;
    width: 100%;
    height: 3px;
    background: rgba(255, 255, 255, .15);
}

.scroll-progress span {
    display: block;
    width: 100%;
    height: 100%;
    background: var(--red);
    transform: scaleX(0);
    transform-origin: left;
    will-change: transform;
}

.site-header {
    position: fixed;
    z-index: 100;
    top: 0;
    left: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 1.2rem var(--pad);
    color: var(--white);
    transition: padding .35s ease, background .35s ease, color .35s ease, backdrop-filter .35s ease;
}

.site-header.is-scrolled {
    padding-top: .7rem;
    padding-bottom: .7rem;
    color: var(--ink);
    background: rgba(242, 237, 223, .9);
    border-bottom: 1px solid var(--line);
    backdrop-filter: blur(18px);
}

.brand {
    display: inline-flex;
    align-items: center;
    gap: .7rem;
    position: relative;
    z-index: 2;
}

.brand__mark {
    width: 2.75rem;
    height: 2.75rem;
    color: var(--red);
}

.brand__mark svg {
    display: block;
}

.brand__text {
    display: grid;
    line-height: 1;
    text-transform: uppercase;
}

.brand__text b {
    font: 600 1rem/1 var(--display);
    letter-spacing: .08em;
}

.brand__text span {
    margin-top: .25rem;
    font-size: .55rem;
    letter-spacing: .14em;
}

.site-nav {
    display: flex;
    align-items: center;
    gap: clamp(1rem, 2vw, 2rem);
    font-size: .76rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.site-nav__link {
    position: relative;
}

.site-nav__link::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -.4rem;
    width: 100%;
    height: 1px;
    background: currentColor;
    transform: scaleX(0);
    transform-origin: right;
    transition: transform .3s;
}

.site-nav__link:hover::after {
    transform: scaleX(1);
    transform-origin: left;
}

.site-nav__guides {
    position: relative;
}

.site-nav__guides summary {
    display: flex;
    align-items: center;
    gap: .45rem;
    min-height: 44px;
    list-style: none;
    cursor: pointer;
}

.site-nav__guides summary::-webkit-details-marker {
    display: none;
}

.site-nav__guides summary i {
    font-size: .65rem;
    transition: transform .2s ease;
}

.site-nav__guides[open] summary i {
    transform: rotate(180deg);
}

.site-nav__submenu {
    position: absolute;
    top: calc(100% + .7rem);
    right: 0;
    width: min(23rem, 70vw);
    padding: .4rem;
    color: var(--ink);
    background: rgba(248, 243, 232, .98);
    border: 1px solid var(--ink);
    box-shadow: 0 1rem 2.5rem rgba(0, 0, 0, .18);
}

.site-nav__submenu a {
    display: grid;
    grid-template-columns: 1.25rem 1fr;
    gap: .75rem;
    align-items: center;
    min-height: 44px;
    padding: .7rem .8rem;
    color: var(--ink);
    text-decoration: none;
}

.site-nav__submenu a + a {
    border-top: 1px solid rgba(16, 16, 16, .2);
}

.site-nav__submenu a:hover,
.site-nav__submenu a:focus-visible,
.site-nav__submenu a[aria-current="page"] {
    color: var(--white);
    background: var(--red);
}

.site-nav__cta {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: .75rem 1rem;
    color: var(--white);
    background: var(--red);
}

.site-nav__cta span {
    font-size: 1.1rem;
    transition: transform .25s;
}

.site-nav__cta:hover span {
    transform: translate(3px, 3px);
}

.menu-toggle {
    display: none;
}

.hero {
    position: relative;
    min-height: 100svh;
    color: var(--white);
    background: #252722;
    isolation: isolate;
    overflow: hidden;
}

.hero__media,
.hero__media picture,
.hero__media img,
.hero__shade {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.hero__media {
    z-index: -3;
    transform: scale(1.04);
    will-change: transform;
}

.hero__media img {
    object-fit: cover;
    object-position: 58% center;
}

.hero__shade {
    z-index: -2;
    background: linear-gradient(90deg, rgba(12, 12, 11, .75) 0%, rgba(12, 12, 11, .35) 44%, rgba(12, 12, 11, .05) 72%), linear-gradient(0deg, rgba(5, 9, 9, .53), transparent 48%);
}

.hero__sun {
    position: absolute;
    z-index: -1;
    top: 18%;
    right: 9%;
    display: grid;
    place-items: center;
    width: clamp(10rem, 20vw, 21rem);
    aspect-ratio: 1;
    background: radial-gradient(circle, var(--red) 55%, transparent 70%);
    filter: blur(2px);
    border-radius: 40%;
    mix-blend-mode: multiply;
    animation: sun-rise 1.4s cubic-bezier(.16, 1, .3, 1) both;
}

.hero__sun span {
    font: 600 clamp(1.3rem, 3vw, 3rem)/1 var(--display);
    letter-spacing: -.08em;
    color: #ffffff;
    opacity: 1;
    mix-blend-mode: normal;
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.15);
}

.hero__content {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    min-height: 100svh;
    padding: 9rem var(--pad) 3.5rem;
}

.hero__kicker {
    position: absolute;
    top: 19%;
    left: var(--pad);
    display: flex;
    gap: 1.6rem;
    margin: 0;
    font-size: .64rem;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.hero h1 {
    max-width: 12ch;
    margin: 0;
    font: 600 clamp(3.2rem, 6.4vw, 9.2rem)/.84 var(--display);
    letter-spacing: -.075em;
    text-transform: uppercase;
}

.hero h1 span,
.hero h1 strong,
.hero h1 i {
    display: block;
}

.hero h1 span {
    font-size: .53em;
    letter-spacing: -.03em;
}

.hero h1 strong {
    color: var(--white);
    font-weight: 600;
}

.hero h1 i {
    margin-left: 1.1em;
    color: #f5c6ba;
    font: italic 400 .46em/.9 var(--serif);
    letter-spacing: -.03em;
    text-transform: none;
}

.hero__intro {
    position: absolute;
    right: var(--pad);
    bottom: 4rem;
    max-width: 32rem;
    margin: 0;
    padding-left: 2.3rem;
    border-left: 1px solid rgba(255, 255, 255, .5);
    font-size: clamp(.9rem, 1.2vw, 1.05rem);
}

.hero__scroll {
    position: absolute;
    right: var(--pad);
    bottom: 12rem;
    display: flex;
    align-items: center;
    gap: 1rem;
    font-size: .66rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.hero__scroll i {
    display: grid;
    place-items: center;
    width: 3rem;
    aspect-ratio: 1;
    border: 1px solid rgba(255, 255, 255, .5);
    border-radius: 50%;
    font-style: normal;
    animation: bob 1.8s ease-in-out infinite;
}

.hero__albanian {
    position: absolute;
    right: -.45rem;
    top: 50%;
    margin: 0;
    font: 600 .58rem/1 var(--sans);
    letter-spacing: .42em;
    writing-mode: vertical-rl;
}

@keyframes sun-rise {
    from {
        opacity: 0;
        transform: translateY(5rem) scale(.75);
    }
}

@keyframes bob {
    50% {
        transform: translateY(.45rem);
    }
}

.section {
    position: relative;
    padding: clamp(6rem, 11vw, 11rem) var(--pad);
}

.section__number {
    font: 600 .65rem/1 var(--display);
    letter-spacing: .08em;
}

.section__number::after {
    content: "";
    display: inline-block;
    width: 2.5rem;
    height: 1px;
    margin: 0 0 .18rem .7rem;
    background: currentColor;
    opacity: .4;
}

.eyebrow {
    margin: 0 0 1.8rem;
    color: var(--red);
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.eyebrow--light {
    color: #f17f79;
}

.section h2,
.culture h2,
.taste h2,
.site-footer h2,
.closing h2 {
    margin: 0;
    font: 600 clamp(2.7rem, 6vw, 6.8rem)/.94 var(--display);
    letter-spacing: -.065em;
    text-transform: uppercase;
}

.section h2 em,
.culture h2 em,
.taste h2 em,
.site-footer h2 em,
.closing h2 em {
    font-family: var(--serif);
    font-weight: 400;
    text-transform: none;
}

.lead {
    font-size: clamp(1.2rem, 2vw, 1.8rem);
    line-height: 1.45;
    letter-spacing: -.025em;
}

.portrait {
    display: grid;
    grid-template-columns: .35fr 1.1fr .8fr;
    column-gap: 4vw;
    row-gap: 7rem;
}

.portrait__title .eyebrow {
    margin-top: 2rem;
}

.portrait__copy {
    align-self: end;
    max-width: 34rem;
}

.portrait__copy .lead {
    margin-top: 0;
}

.portrait__copy>p:last-child {
    max-width: 31rem;
    color: #5d584e;
}

.facts {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    border-top: 1px solid var(--line);
}

.fact {
    min-width: 0;
    padding: 2rem 2rem 0 0;
    border-right: 1px solid var(--line);
}

.fact:not(:first-child) {
    padding-left: 2rem;
}

.fact:last-child {
    border-right: 0;
}

.fact strong,
.fact span,
.fact small {
    display: block;
}

.fact strong {
    margin-bottom: .75rem;
    font: 500 clamp(1.6rem, 2.8vw, 3.1rem)/1 var(--display);
    letter-spacing: -.06em;
}

.fact span {
    min-height: 3.2em;
    font-size: .85rem;
    font-weight: 700;
}

.fact small {
    margin-top: 1rem;
    color: #777063;
    font-size: .65rem;
}

.flights {
    background: #e6ded0;
}

.flights__head,
.drive__head {
    display: grid;
    grid-template-columns: .35fr 1.1fr .8fr;
    gap: 4vw;
    align-items: end;
    margin-bottom: 4rem;
}

.flights__head>p:last-child,
.drive__head>p:last-child {
    max-width: 30rem;
    margin: 0 0 .5rem;
    color: #625d54;
}

.flight-search {
    display: grid;
    grid-template-columns: 1.35fr repeat(4, minmax(8rem, .7fr)) .85fr;
    border: 1px solid var(--ink);
    background: var(--paper);
}

.flight-search fieldset,
.flight-search .field {
    min-width: 0;
    margin: 0;
    padding: 1.1rem 1.25rem;
    border: 0;
    border-right: 1px solid var(--line);
}

.flight-search legend,
.flight-search .field>span {
    display: block;
    margin: 0 0 .55rem;
    color: #776f63;
    font-size: .6rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.flight-search__origins {
    display: flex;
    align-items: end;
    gap: .5rem;
}

.flight-search__origins legend {
    position: absolute;
}

.flight-search__origins label {
    flex: 1;
    cursor: pointer;
}

.flight-search__origins input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.flight-search__origins span {
    display: grid;
    min-height: 3.25rem;
    padding: .55rem .7rem;
    border: 1px solid var(--line);
    font-size: .6rem;
    line-height: 1.25;
    transition: .2s;
}

.flight-search__origins b {
    font: 600 .76rem/1 var(--display);
}

.flight-search__origins input:checked+span {
    color: var(--white);
    background: var(--ink);
    border-color: var(--ink);
}

.flight-search__origins input:focus-visible+span {
    outline: 3px solid var(--sea);
    outline-offset: 2px;
}

.flight-search input[type="date"],
.flight-search select,
.flight-filters select {
    width: 100%;
    min-height: 2.6rem;
    color: var(--ink);
    background: transparent;
    border: 0;
    border-bottom: 1px solid var(--ink);
    border-radius: 0;
}

.flight-search__submit {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1.2rem;
    color: var(--white);
    text-align: left;
    background: var(--red);
    border: 0;
    cursor: pointer;
}

.flight-search__submit span {
    max-width: 8ch;
    font-size: .7rem;
    font-weight: 700;
    line-height: 1.2;
    text-transform: uppercase;
}

.flight-search__submit i {
    font-size: 1.4rem;
    font-style: normal;
    transition: transform .2s;
}

.flight-search__submit:hover i {
    transform: translateX(.35rem);
}

.flight-workspace {
    display: grid;
    grid-template-columns: minmax(15rem, .28fr) minmax(0, 1fr);
    margin-top: 1.5rem;
    border: 1px solid var(--ink);
    background: #f8f3e8;
}

.flight-filters {
    padding: 1.5rem;
    border-right: 1px solid var(--ink);
}

.flight-filters__title {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1.7rem;
}

.flight-filters__title b {
    font: 600 .75rem/1 var(--display);
    text-transform: uppercase;
}

.flight-filters__title button {
    padding: 0;
    color: var(--red);
    background: transparent;
    border: 0;
    font-size: .65rem;
    font-weight: 700;
    cursor: pointer;
}

.flight-filters>label {
    display: grid;
    gap: .4rem;
    margin-top: 1.25rem;
}

.flight-filters label>span {
    color: #676055;
    font-size: .66rem;
    font-weight: 700;
}

.flight-range input {
    width: 100%;
    accent-color: var(--red);
}

.flight-checkbox {
    display: flex !important;
    grid-template-columns: auto 1fr;
    align-items: start;
}

.flight-checkbox input {
    margin: .25rem .3rem 0 0;
    accent-color: var(--red);
}

.flight-results-wrap {
    min-width: 0;
}

.flight-results__bar {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: center;
    min-height: 5.5rem;
    padding: 1.2rem 1.5rem;
    border-bottom: 1px solid var(--line);
}

.flight-results__bar div {
    display: grid;
}

.flight-results__bar span {
    font-weight: 700;
}

.flight-results__bar small {
    color: #746d62;
    font-size: .62rem;
}

.flight-results__bar button {
    padding: .7rem 1rem;
    color: var(--ink);
    background: transparent;
    border: 1px solid var(--ink);
    cursor: pointer;
}

.flight-results__bar button:disabled {
    opacity: .45;
}

.flight-notice {
    margin: 0;
    padding: 1rem 1.5rem;
    color: #655e53;
    background: #ece4d5;
    border-bottom: 1px solid var(--line);
    font-size: .72rem;
}

.flight-results {
    display: grid;
    gap: 1px;
    background: var(--line);
}

.flight-card {
    min-width: 0;
    padding: 1.5rem;
    background: #f8f3e8;
}

.flight-card__top {
    display: flex;
    justify-content: space-between;
    gap: 2rem;
    align-items: start;
}

.flight-card__top small,
.flight-card__price small {
    display: block;
    color: #756e62;
    font-size: .6rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.flight-card h3 {
    margin: .55rem 0 0;
    font: 500 clamp(1rem, 1.6vw, 1.45rem)/1.1 var(--display);
    letter-spacing: -.04em;
}

.flight-card__price {
    flex: 0 0 auto;
    text-align: right;
}

.flight-card__price strong {
    font: 600 clamp(1.4rem, 2.4vw, 2.2rem)/1 var(--display);
    letter-spacing: -.06em;
}

.flight-card__flags {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    margin: 1.2rem 0;
}

.flight-card__flags span {
    padding: .35rem .55rem;
    background: #e8e0d2;
    font-size: .6rem;
    font-weight: 700;
}

.flight-card__flags .is-warning {
    color: #8d160f;
    background: #ffd5c9;
}

.flight-card__routes {
    display: grid;
    grid-template-columns: 1fr 1fr;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
}

.flight-route {
    display: grid;
    grid-template-columns: 4.5rem 1fr;
    gap: 1rem;
    padding: 1rem 0;
}

.flight-route+.flight-route {
    padding-left: 1.25rem;
    border-left: 1px solid var(--line);
}

.flight-route>span {
    display: grid;
}

.flight-route small {
    color: #756e62;
    font-size: .58rem;
}

.flight-route>div {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: .7rem;
}

.flight-route>div i {
    height: 1px;
    background: var(--line);
    overflow: hidden;
}

.flight-route>div small {
    grid-column: 1 / -1;
}

.flight-card__links {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
    margin-top: 1rem;
}

.flight-card__links a {
    padding: .45rem .65rem;
    border: 1px solid var(--line);
    font-size: .63rem;
    font-weight: 700;
    transition: .2s;
}

.flight-card__links a:hover {
    color: var(--white);
    background: var(--red);
    border-color: var(--red);
}

.flight-empty {
    padding: 3rem 1.5rem;
    background: #f8f3e8;
}

.flight-empty p {
    max-width: 35rem;
    color: #6d665a;
}

.flight-skeleton {
    min-height: 15rem;
    background: linear-gradient(100deg, #eee6d8 30%, #f8f3e8 50%, #eee6d8 70%);
    background-size: 240% 100%;
    animation: shimmer 1.4s infinite;
}

@keyframes shimmer {
    to {
        background-position-x: -240%;
    }
}

.section--dark {
    color: var(--white);
    background: var(--ink);
}

.atlas {
    padding-bottom: 0;
    overflow: hidden;
}

.atlas__head {
    display: grid;
    grid-template-columns: .35fr 1.1fr .8fr;
    gap: 4vw;
    align-items: end;
    margin-bottom: 4rem;
}

.atlas__head>p:last-child {
    max-width: 30rem;
    margin: 0 0 .5rem;
    color: #aba79e;
}

.map-console {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(18rem, .5fr);
    min-height: 52rem;
    margin: 0 calc(var(--pad) * -1);
    border-top: 1px solid rgba(255, 255, 255, .16);
}

.map-canvas-wrap {
    position: relative;
    min-width: 0;
    min-height: 52rem;
    background: #183838;
}

.google-map {
    width: 100%;
    height: 100%;
    min-height: 52rem;
}

.map-toolbar {
    position: absolute;
    z-index: 5;
    top: 1rem;
    left: 50%;
    display: flex;
    max-width: calc(100% - 2rem);
    padding: .35rem;
    background: rgba(21, 20, 18, .88);
    transform: translateX(-50%);
    backdrop-filter: blur(14px);
}

.map-toolbar button {
    flex: 0 0 auto;
    padding: .62rem .8rem;
    color: #d7d0c4;
    background: transparent;
    border: 0;
    font-size: .6rem;
    font-weight: 700;
    text-transform: uppercase;
    cursor: pointer;
}

.map-toolbar button.is-active {
    color: var(--ink);
    background: var(--white);
}

.map-fallback {
    position: absolute;
    inset: 0;
    padding: 7rem 2rem;
    text-align: center;
    background: radial-gradient(circle at 60% 35%, #286665, #122b2c 62%);
}

.map-fallback p {
    color: #aebfba;
}

.place-index {
    display: grid;
    grid-template-rows: auto 1fr;
    min-width: 0;
    max-height: 52rem;
    background: var(--red);
}

.place-index__head {
    display: flex;
    justify-content: space-between;
    padding: 1.3rem 1.5rem;
    border-bottom: 1px solid rgba(255, 255, 255, .3);
    font-size: .68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .1em;
}

.place-index__head b {
    display: grid;
    place-items: center;
    width: 1.8rem;
    aspect-ratio: 1;
    color: var(--red);
    background: var(--white);
    border-radius: 50%;
}

.place-index__list {
    overflow-y: auto;
    scrollbar-color: #f58c84 transparent;
    scrollbar-width: thin;
}

.place-index__list button {
    display: grid;
    grid-template-columns: 2rem 1fr 1.5rem;
    width: 100%;
    padding: 1.15rem 1.35rem;
    color: var(--white);
    text-align: left;
    background: transparent;
    border: 0;
    border-bottom: 1px solid rgba(255, 255, 255, .22);
    cursor: pointer;
    transition: background .2s;
}

.place-index__list button:hover {
    background: rgba(0, 0, 0, .16);
}

.place-index__list button>span {
    grid-row: 1 / 3;
    font: 600 .55rem/1 var(--display);
    opacity: .7;
}

.place-index__list b {
    font: 500 .8rem/1.25 var(--display);
    letter-spacing: -.03em;
}

.place-index__list small {
    grid-column: 2;
    margin-top: .35rem;
    color: #ffd1ca;
    font-size: .55rem;
    text-transform: uppercase;
}

.place-index__list i {
    grid-column: 3;
    grid-row: 1 / 3;
    align-self: center;
    font-style: normal;
}

.albany-marker {
    position: relative;
    width: 1.25rem;
    height: 1.25rem;
    padding: 0;
    background: var(--red);
    border: 3px solid var(--white);
    border-radius: 50%;
    box-shadow: 0 .25rem .8rem rgba(0, 0, 0, .35);
    cursor: pointer;
    transition: transform .2s;
}

.albany-marker:hover {
    transform: scale(1.4);
}

.albany-marker span {
    position: absolute;
    left: 1rem;
    top: -.4rem;
    display: none;
    padding: .3rem .45rem;
    color: var(--white);
    background: var(--ink);
    white-space: nowrap;
    font-size: .6rem;
}

.albany-marker:hover span {
    display: block;
}

.history {
    display: grid;
    grid-template-columns: .8fr 1.2fr;
    align-items: start;
    gap: 10vw;
}

.history__sticky {
    position: sticky;
    top: 8rem;
}

.history__sticky .eyebrow {
    margin-top: 2rem;
}

.history__sticky>p:last-child {
    max-width: 27rem;
    margin-top: 2.5rem;
    color: #686155;
}

.timeline {
    position: relative;
    border-left: 1px solid var(--line);
}

.timeline__item {
    position: relative;
    min-height: 22rem;
    padding: 0 0 5rem clamp(2rem, 5vw, 5rem);
}

.timeline__item::before {
    content: "";
    position: absolute;
    top: .15rem;
    left: -.42rem;
    width: .72rem;
    aspect-ratio: 1;
    background: var(--paper);
    border: 2px solid var(--red);
    border-radius: 50%;
}

.timeline__item>span {
    position: absolute;
    top: 0;
    right: 0;
    color: rgba(21, 20, 18, .08);
    font: 600 clamp(4rem, 8vw, 8rem)/.8 var(--display);
}

.timeline__item small {
    color: var(--red);
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.timeline__item h3 {
    max-width: 15ch;
    margin: 1.3rem 0;
    font: 500 clamp(1.7rem, 3.5vw, 3.4rem)/1.05 var(--display);
    letter-spacing: -.055em;
}

.timeline__item p {
    max-width: 34rem;
    margin: 0;
    color: #5e584e;
}

.culture {
    display: grid;
    grid-template-columns: 1fr 1fr;
    min-height: 100vh;
    background: #d8d0c2;
}

.culture__photo {
    position: sticky;
    top: 0;
    height: 100vh;
    overflow: hidden;
}

.culture__photo picture,
.culture__photo img {
    width: 100%;
    height: 100%;
}

.culture__photo img {
    object-fit: cover;
}

.culture__photo>span {
    position: absolute;
    left: 2rem;
    bottom: 2rem;
    padding: .55rem .75rem;
    color: var(--white);
    background: rgba(0, 0, 0, .65);
    font-size: .6rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.culture__content {
    padding: clamp(5rem, 9vw, 9rem) var(--pad);
}

.culture__content .eyebrow {
    margin-top: 2rem;
}

.culture__content .lead {
    max-width: 35rem;
    margin: 3rem 0 5rem;
}

.traditions-grid {
    border-top: 1px solid var(--line);
}

.tradition {
    display: grid;
    grid-template-columns: .6fr 1fr;
    column-gap: 2rem;
    padding: 2rem 0;
    border-bottom: 1px solid var(--line);
}

.tradition>span {
    color: var(--red);
    font: italic 400 1.35rem/1 var(--serif);
}

.tradition h3 {
    margin: 0;
    font: 600 .95rem/1.25 var(--display);
    letter-spacing: -.03em;
}

.tradition p {
    grid-column: 2;
    margin: 1rem 0 0;
    color: #5d584f;
    font-size: .9rem;
}

.section--sea {
    background: var(--sea);
}

.nature__heading {
    display: grid;
    grid-template-columns: .35fr 1.1fr .8fr;
    gap: 4vw;
}

.nature__heading .eyebrow {
    margin-top: 2rem;
}

.nature__heading h2 {
    grid-column: 2 / -1;
}

.nature__story {
    display: grid;
    grid-template-columns: 1.3fr .7fr;
    gap: 5vw;
    align-items: end;
    margin-top: 6rem;
}

.nature__photo {
    position: relative;
    min-height: 55rem;
    overflow: hidden;
}

.nature__photo::after {
    content: "IONIAN SEA";
    position: absolute;
    left: 1.5rem;
    bottom: 1.5rem;
    color: var(--white);
    font: 600 .6rem/1 var(--display);
    letter-spacing: .15em;
}

.nature__photo picture,
.nature__photo img {
    width: 100%;
    height: 100%;
    position: absolute;
}

.nature__photo img {
    object-fit: cover;
}

.nature__copy .lead {
    margin-bottom: 4rem;
}

.nature__copy>p:last-child {
    color: #174a4a;
}

.altitude {
    margin: 3rem 0;
    border-top: 1px solid rgba(21, 20, 18, .35);
    border-bottom: 1px solid rgba(21, 20, 18, .35);
}

.altitude div {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1.2rem 0;
}

.altitude div+div {
    border-top: 1px solid rgba(21, 20, 18, .2);
}

.altitude b {
    font: 500 1.3rem/1 var(--display);
}

.altitude span {
    font-size: .72rem;
}

.guide {
    background: #f7f2e7;
}

.guide__head {
    display: grid;
    grid-template-columns: 1.4fr .6fr;
    align-items: end;
    gap: 5vw;
}

.guide__head .eyebrow {
    margin-top: 2rem;
}

.guide__head>p {
    max-width: 26rem;
    margin-bottom: .5rem;
    color: #625d54;
}

.filters {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
    margin: 4rem 0 3rem;
}

.filter {
    padding: .7rem 1.15rem;
    color: var(--ink);
    background: transparent;
    border: 1px solid var(--line);
    border-radius: 3rem;
    font-size: .69rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    cursor: pointer;
    transition: .25s;
}

.filter:hover,
.filter.is-active {
    color: var(--white);
    background: var(--ink);
    border-color: var(--ink);
}

.experience-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border-top: 1px solid var(--ink);
    border-left: 1px solid var(--ink);
}

.experience-card {
    display: flex;
    flex-direction: column;
    min-height: 27rem;
    padding: 1.5rem;
    border-right: 1px solid var(--ink);
    border-bottom: 1px solid var(--ink);
    transition: color .35s, background .35s, transform .35s, opacity .25s;
}

.experience-card:hover {
    color: var(--white);
    background: var(--red);
}

.experience-card.is-hiding {
    opacity: 0;
    transform: translateY(1rem);
}

.experience-card[hidden] {
    display: none;
}

.experience-card>div {
    display: flex;
    justify-content: space-between;
}

.experience-card>div span {
    font: 600 .62rem/1 var(--display);
}

.experience-card>div i {
    font: normal 400 2rem/1 var(--serif);
}

.experience-card small {
    margin-top: 3rem;
    color: var(--red);
    font-size: .6rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.experience-card:hover small {
    color: #ffd4ca;
}

.experience-card h3 {
    margin: 1rem 0 1.3rem;
    font: 500 clamp(1.35rem, 2vw, 2rem)/1.1 var(--display);
    letter-spacing: -.05em;
}

.experience-card p {
    margin: 0 0 2rem;
    color: #625d54;
    font-size: .88rem;
}

.experience-card:hover p {
    color: rgba(255, 255, 255, .82);
}

.experience-card>b {
    margin-top: auto;
    font-size: .62rem;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.taste {
    display: grid;
    grid-template-columns: 1fr 1fr;
    color: var(--white);
    background: var(--red-dark);
}

.taste__image {
    position: sticky;
    top: 0;
    height: 100vh;
    overflow: hidden;
}

.taste__image picture,
.taste__image img {
    width: 100%;
    height: 100%;
}

.taste__image img {
    object-fit: cover;
}

.taste__content {
    padding: clamp(5rem, 9vw, 9rem) var(--pad);
}

.taste__content .eyebrow {
    margin-top: 2rem;
}

.taste__content .lead {
    max-width: 37rem;
    margin: 3rem 0 4rem;
    color: #f0c9c1;
}

.dish-list {
    border-top: 1px solid rgba(255, 255, 255, .35);
}

.dish {
    border-bottom: 1px solid rgba(255, 255, 255, .35);
}

.dish button {
    display: grid;
    grid-template-columns: 2rem 1fr auto 2rem;
    gap: 1rem;
    align-items: center;
    width: 100%;
    padding: 1.3rem 0;
    color: var(--white);
    text-align: left;
    background: transparent;
    border: 0;
    cursor: pointer;
}

.dish button span {
    font-size: .58rem;
    opacity: .65;
}

.dish button b {
    font: 500 clamp(1.1rem, 2vw, 1.65rem)/1 var(--display);
    letter-spacing: -.04em;
}

.dish button i {
    color: #f5c6ba;
    font: italic 400 1.2rem/1 var(--serif);
}

.dish button em {
    font: 300 1.6rem/1 var(--sans);
    transition: transform .3s;
}

.dish button[aria-expanded="true"] em {
    transform: rotate(45deg);
}

.dish__answer p {
    max-width: 33rem;
    margin: 0;
    padding: 0 2rem 1.5rem 3rem;
    color: #f0c9c1;
    font-size: .88rem;
}

.seasons {
    background: #e7e0d2;
}

.seasons__intro {
    display: grid;
    grid-template-columns: .35fr 1.1fr .8fr;
    gap: 4vw;
    align-items: end;
}

.seasons__intro>div:nth-child(2) {
    grid-column: 2;
}

.seasons__intro .eyebrow {
    margin-top: 2rem;
}

.seasons__intro h2 {
    grid-column: 2;
}

.seasons__intro>p:last-child {
    max-width: 27rem;
    margin: 0 0 .5rem;
    color: #625d54;
}

.season-track {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    margin-top: 5rem;
}

.season {
    position: relative;
    min-height: 31rem;
    padding: 1.5rem;
    border: 1px solid var(--ink);
    border-right: 0;
    overflow: hidden;
}

.season:last-child {
    border-right: 1px solid var(--ink);
}

.season::after {
    content: "";
    position: absolute;
    z-index: 0;
    right: -30%;
    bottom: -20%;
    width: 14rem;
    aspect-ratio: 1;
    border-radius: 50%;
    background: var(--season-color);
    opacity: .55;
    filter: blur(1px);
    transition: transform .5s;
}

.season:hover::after {
    transform: scale(1.7);
}

.season>* {
    position: relative;
    z-index: 1;
}

.season>span {
    font: 600 .6rem/1 var(--display);
}

.season small {
    display: block;
    margin-top: 7rem;
    color: var(--red);
    font-size: .62rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.season h3 {
    margin: 1rem 0 1.5rem;
    font: 500 clamp(1.3rem, 2vw, 1.85rem)/1.1 var(--display);
    letter-spacing: -.05em;
}

.season p {
    font-size: .84rem;
}

.season--spring {
    --season-color: #8fa77d;
}

.season--summer {
    --season-color: #74cdd0;
}

.season--autumn {
    --season-color: #d48a52;
}

.season--winter {
    --season-color: #9caeb8;
}

.travel-note {
    display: grid;
    grid-template-columns: .35fr 1.65fr;
    gap: 3rem;
    max-width: 55rem;
    margin: 4rem 0 0 auto;
    padding-top: 1.5rem;
    border-top: 1px solid var(--line);
}

.travel-note b {
    color: var(--red);
    font-size: .68rem;
    text-transform: uppercase;
    letter-spacing: .1em;
}

.travel-note p {
    margin: 0;
    color: #625d54;
    font-size: .85rem;
}

.drive {
    overflow: hidden;
}

.drive__head>p:last-child {
    color: #aaa59b;
}

.rental-options {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    border-top: 1px solid rgba(255, 255, 255, .35);
    border-left: 1px solid rgba(255, 255, 255, .35);
}

.rental-option {
    display: flex;
    flex-direction: column;
    min-height: 29rem;
    padding: 1.5rem;
    border-right: 1px solid rgba(255, 255, 255, .35);
    border-bottom: 1px solid rgba(255, 255, 255, .35);
}

.rental-option>div:first-child {
    display: flex;
    justify-content: space-between;
    color: #ef8b83;
    font-size: .58rem;
    font-weight: 700;
    text-transform: uppercase;
}

.rental-option h3 {
    margin: 4rem 0 1.25rem;
    font: 500 clamp(1.2rem, 2vw, 1.85rem)/1.08 var(--display);
    letter-spacing: -.05em;
}

.rental-option>p {
    color: #aaa59b;
    font-size: .84rem;
}

.rental-option__check {
    display: grid;
    gap: .35rem;
    margin: auto 0 1.4rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(255, 255, 255, .2);
}

.rental-option__check b {
    color: #ef8b83;
    font-size: .58rem;
    text-transform: uppercase;
}

.rental-option__check span {
    color: #d4cec4;
    font-size: .68rem;
}

.rental-option>a,
.rental-option__direct {
    align-self: flex-start;
    color: var(--white);
    border-bottom: 1px solid currentColor;
    font-size: .67rem;
    font-weight: 700;
}

.licence-card {
    display: grid;
    grid-template-columns: .35fr .8fr 1.2fr;
    gap: 3rem;
    align-items: start;
    margin-top: 5rem;
    padding: 2rem;
    color: var(--ink);
    background: var(--sea);
}

.licence-card>span {
    font: 600 clamp(2.5rem, 5vw, 5.5rem)/.8 var(--display);
    letter-spacing: -.08em;
}

.licence-card h3 {
    margin: 0;
    font: 500 clamp(1.3rem, 2.3vw, 2.25rem)/1.05 var(--display);
    letter-spacing: -.05em;
}

.licence-card p {
    margin-top: 0;
}

.licence-card strong {
    display: block;
    padding-top: 1rem;
    border-top: 1px solid rgba(21, 20, 18, .35);
    font-size: .72rem;
}

.road-trips {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    margin-top: 7rem;
}

.road-trips__intro {
    padding-right: 2rem;
}

.road-trips__intro h3 {
    margin: 1rem 0;
    font: 500 clamp(1.8rem, 3vw, 3.1rem)/1 var(--display);
    letter-spacing: -.06em;
}

.road-trips__intro h3 em {
    font: italic 400 1em/1 var(--serif);
}

.road-trip {
    display: flex;
    flex-direction: column;
    min-height: 30rem;
    padding: 1.5rem;
    border: 1px solid rgba(255, 255, 255, .35);
    border-left: 0;
}

.road-trip small {
    color: #ef8b83;
    font-size: .62rem;
    font-weight: 700;
    text-transform: uppercase;
}

.road-trip h4 {
    margin: 3rem 0 1rem;
    font: 500 clamp(1.2rem, 2vw, 1.8rem)/1.1 var(--display);
    letter-spacing: -.05em;
}

.road-trip>b {
    color: var(--sea);
    font-size: .7rem;
}

.road-trip>p {
    color: #aaa59b;
    font-size: .8rem;
}

.road-trip>div {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    margin-top: auto;
}

.road-trip button {
    padding: .4rem .55rem;
    color: var(--white);
    background: transparent;
    border: 1px solid rgba(255, 255, 255, .3);
    font-size: .58rem;
    cursor: pointer;
}

.road-trip button:hover {
    color: var(--ink);
    background: var(--white);
}

.driving-tips {
    display: grid;
    grid-template-columns: .65fr 1.35fr;
    gap: 7vw;
    margin-top: 7rem;
}

.driving-tips>div:first-child h3 {
    margin: 1rem 0;
    font: 500 clamp(1.8rem, 3vw, 3.1rem)/1 var(--display);
    letter-spacing: -.06em;
}

.driving-tips>div:first-child h3 em {
    font: italic 400 1em/1 var(--serif);
}

.driving-tips__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
}

.driving-tips__grid article {
    min-height: 14rem;
    padding: 1.5rem;
    border-top: 1px solid rgba(255, 255, 255, .35);
}

.driving-tips__grid article:nth-child(odd) {
    border-right: 1px solid rgba(255, 255, 255, .35);
}

.driving-tips__grid span {
    color: #ef8b83;
    font: 600 .58rem/1 var(--display);
}

.driving-tips__grid h4 {
    margin: 2rem 0 .8rem;
    font: 500 1rem/1.1 var(--display);
}

.driving-tips__grid p {
    margin: 0;
    color: #aaa59b;
    font-size: .77rem;
}

.section--paper {
    background: var(--paper);
}

.reading {
    display: grid;
    grid-template-columns: .8fr 1.2fr;
    gap: 10vw;
}

.reading__head .eyebrow {
    margin-top: 2rem;
}

.reading__list {
    border-top: 1px solid var(--ink);
}

.reading details {
    border-bottom: 1px solid var(--ink);
}

.reading summary {
    display: grid;
    grid-template-columns: 3rem 1fr 2rem;
    align-items: center;
    padding: 1.4rem 0;
    cursor: pointer;
    list-style: none;
}

.reading summary::-webkit-details-marker {
    display: none;
}

.reading summary span {
    font: 600 .58rem/1 var(--display);
}

.reading summary b {
    font: 500 clamp(1.2rem, 2.3vw, 2.15rem)/1.1 var(--display);
    letter-spacing: -.045em;
}

.reading summary i {
    font-style: normal;
    font-size: 1.3rem;
    transition: transform .3s;
}

.reading details[open] summary i {
    transform: rotate(90deg);
}

.reading details p {
    max-width: 39rem;
    margin: 0;
    padding: .5rem 2rem 2rem 3rem;
    color: #625d54;
}

.closing {
    position: relative;
    display: grid;
    place-items: center;
    min-height: 92vh;
    padding: 7rem var(--pad);
    color: var(--white);
    text-align: center;
    background: var(--ink);
    overflow: hidden;
}

.closing::before {
    content: "";
    position: absolute;
    width: min(55vw, 42rem);
    aspect-ratio: 1;
    background: var(--red);
    border-radius: 50%;
}

.closing::after {
    content: "";
    position: absolute;
    top: 63%;
    width: 130%;
    height: 44%;
    background: var(--sea-deep);
    border-radius: 50% 50% 0 0 / 20% 20% 0 0;
}

.closing>* {
    position: relative;
    z-index: 2;
}

.closing>p {
    align-self: end;
    margin: 0 0 1rem;
    color: #ffc7bd;
    font-size: .68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .13em;
}

.closing h2 {
    align-self: start;
    font-size: clamp(4rem, 10vw, 10rem);
}

.closing h2 em {
    color: #fedbd4;
}

.closing>span {
    position: absolute;
    bottom: 2rem;
    font-size: .65rem;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.closing__line {
    position: absolute;
    top: 0;
    left: 50%;
    width: 1px;
    height: 28%;
    background: rgba(255, 255, 255, .45);
}

.site-footer {
    padding: clamp(5rem, 9vw, 9rem) var(--pad) 2rem;
    color: var(--white);
    background: #090908;
}

.site-footer__lead {
    display: flex;
    justify-content: space-between;
    align-items: end;
    padding-bottom: 6rem;
}

.site-footer h2 {
    font-size: clamp(3rem, 7vw, 7.2rem);
}

.round-link {
    display: grid;
    place-items: center;
    width: clamp(4.5rem, 8vw, 7rem);
    aspect-ratio: 1;
    color: var(--white);
    border: 1px solid #5f5e58;
    border-radius: 50%;
    font-size: 1.6rem;
    transition: .3s;
}

.round-link:hover {
    color: var(--ink);
    background: var(--white);
    transform: translateY(-.5rem);
}

.site-footer__meta {
    position: relative;
    display: grid;
    grid-template-columns: 1.1fr .8fr .8fr;
    gap: 4rem;
    padding-top: 2rem;
    border-top: 1px solid #35342f;
}

.site-footer__meta>div {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.site-footer__meta b {
    margin-bottom: 1rem;
    color: #f0837d;
    font-size: .62rem;
    text-transform: uppercase;
    letter-spacing: .12em;
}

.site-footer__meta p,
.site-footer__meta a {
    margin: 0 0 .5rem;
    color: #8d8a82;
    font-size: .72rem;
}

.site-footer__meta a:hover {
    color: var(--white);
}

.site-footer__legal {
    display: flex;
    flex-wrap: wrap;
    gap: .1rem .85rem;
    margin-top: .35rem;
}

.site-footer__legal a {
    text-decoration: underline;
    text-decoration-color: #4a4944;
    text-underline-offset: .2rem;
}

.site-footer__year {
    position: absolute;
    right: 0;
    bottom: 0;
}

.modal-layer[hidden] {
    display: none;
}

.modal-layer {
    position: fixed;
    z-index: 500;
    inset: 0;
    display: grid;
    justify-items: end;
}

.modal-layer__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(8, 8, 7, .72);
    opacity: 0;
    transition: opacity .22s;
    backdrop-filter: blur(6px);
}

.modal-card {
    position: relative;
    width: min(42rem, 100vw);
    max-width: 100vw;
    height: 100%;
    padding: clamp(1.25rem, 4vw, 3rem);
    color: var(--ink);
    background: var(--paper);
    overflow-y: auto;
    transform: translateX(100%);
    transition: transform .32s cubic-bezier(.16, 1, .3, 1);
}

.modal-layer.is-open .modal-layer__backdrop {
    opacity: 1;
}

.modal-layer.is-open .modal-card {
    transform: translateX(0);
}

.modal-card__head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 4rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--line);
}

.modal-card__head .eyebrow {
    margin: 0;
}

.modal-card__head button {
    display: grid;
    place-items: center;
    width: 3rem;
    aspect-ratio: 1;
    background: transparent;
    border: 1px solid var(--ink);
    border-radius: 50%;
    cursor: pointer;
}

.modal-card__head button span {
    font-size: 1.6rem;
    line-height: 1;
}

.place-modal h2 {
    margin: 0;
    font: 600 clamp(2.1rem, 6vw, 4.5rem)/.92 var(--display);
    letter-spacing: -.07em;
    text-transform: uppercase;
    overflow-wrap: anywhere;
}

.place-modal__meta {
    display: flex;
    gap: .45rem;
    margin: 1.2rem 0 2rem;
}

.place-modal__meta span {
    padding: .35rem .55rem;
    color: var(--white);
    background: var(--red);
    font-size: .6rem;
    font-weight: 700;
    text-transform: uppercase;
}

.place-modal__lead {
    font-size: 1.08rem;
}

.place-modal__visit {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin: 2rem 0;
    padding: 1.2rem 0;
    border-top: 1px solid var(--ink);
    border-bottom: 1px solid var(--ink);
}

.place-modal__visit small {
    color: #6d665b;
}

.place-modal__visit strong {
    font-family: var(--display);
}

.place-modal__live {
    min-height: 5rem;
}

.place-modal__loading {
    color: #6d665b;
    font-size: .78rem;
}

.place-rating {
    display: flex;
    justify-content: space-between;
    align-items: end;
    margin-bottom: 1.5rem;
}

.place-rating strong {
    color: var(--red);
    font: 600 1.5rem/1 var(--display);
}

.place-rating span {
    color: #6d665b;
    font-size: .7rem;
}

.place-reviews {
    display: grid;
    grid-template-columns: 1fr 1fr;
    border: 1px solid var(--line);
}

.place-review {
    padding: 1rem;
}

.place-review+.place-review {
    border-left: 1px solid var(--line);
}

.place-review p {
    margin: 0 0 1rem;
    font-size: .76rem;
}

.place-review small {
    font-size: .62rem;
    font-weight: 700;
}

.place-review__author {
    text-decoration: underline;
}

.place-attribution {
    display: block;
    margin-top: .8rem;
    color: #756e62;
}

.place-attribution__link {
    text-decoration: underline;
}

.place-modal__links {
    display: flex;
    gap: .5rem;
    margin-top: 2rem;
}

.place-modal__link {
    padding: .7rem .9rem;
    color: var(--white);
    background: var(--ink);
    font-size: .68rem;
    font-weight: 700;
}

.place-modal__link:first-child {
    background: var(--red);
}

.reveal {
    transition: opacity .8s ease, transform .8s cubic-bezier(.16, 1, .3, 1);
}

.motion-ready .reveal {
    opacity: 0;
    transform: translateY(2rem);
}

.motion-ready .reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.image-reveal {
    transition: clip-path 1.1s cubic-bezier(.16, 1, .3, 1);
}

.motion-ready .image-reveal {
    clip-path: inset(0 0 100% 0);
}

.motion-ready .image-reveal.is-visible {
    clip-path: inset(0);
}

.cursor-orbit {
    position: fixed;
    z-index: 300;
    top: 0;
    left: 0;
    width: 1.6rem;
    aspect-ratio: 1;
    border: 1px solid var(--red);
    border-radius: 50%;
    pointer-events: none;
    opacity: 0;
    transform: translate(-50%, -50%);
    transition: width .2s, background .2s, opacity .2s;
}

.cursor-orbit.is-visible {
    opacity: .8;
}

.cursor-orbit.is-hover {
    width: 3rem;
    background: rgba(215, 25, 32, .15);
}

@media (max-width: 1100px) {
    .flight-search {
        grid-template-columns: 1.2fr repeat(2, 1fr);
    }

    .site-nav {
        gap: 1rem;
    }

    .site-nav__optional {
        display: none;
    }

    .portrait,
    .flights__head,
    .atlas__head,
    .nature__heading,
    .seasons__intro,
    .drive__head {
        grid-template-columns: .25fr 1.2fr .7fr;
    }

    .flight-search {
        grid-template-columns: 1.2fr repeat(2, 1fr);
    }

    .flight-search>* {
        border-bottom: 1px solid var(--line) !important;
    }

    .flight-search__submit {
        min-height: 6rem;
    }

    .hero__intro {
        max-width: 25rem;
    }

    .experience-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .season-track {
        grid-template-columns: repeat(2, 1fr);
    }

    .season:nth-child(2) {
        border-right: 1px solid var(--ink);
    }

    .season:nth-child(n+3) {
        border-top: 0;
    }

    .rental-options {
        grid-template-columns: repeat(2, 1fr);
    }

    .road-trips {
        grid-template-columns: repeat(3, 1fr);
    }

    .road-trips__intro {
        grid-column: 1 / -1;
        margin-bottom: 2rem;
    }

    .road-trip:first-of-type {
        border-left: 1px solid rgba(255, 255, 255, .35);
    }
}

@media (max-width: 820px) {
    .site-header {
        padding: .85rem 1.2rem;
    }

    .site-header.is-scrolled {
        padding: .55rem 1.2rem;
    }

    .brand__mark {
        width: 2.4rem;
    }

    .menu-toggle {
        position: relative;
        z-index: 2;
        display: grid;
        gap: .35rem;
        width: 2.8rem;
        padding: .75rem .55rem;
        background: transparent;
        border: 1px solid currentColor;
        border-radius: 50%;
    }

    .menu-toggle span:not(.sr-only) {
        width: 100%;
        height: 1px;
        background: currentColor;
        transition: transform .25s;
    }

    .menu-toggle[aria-expanded="true"] span:first-child {
        transform: translateY(3px) rotate(45deg);
    }

    .menu-toggle[aria-expanded="true"] span:nth-child(2) {
        transform: translateY(-3px) rotate(-45deg);
    }

    .site-nav {
        position: fixed;
        inset: 0;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: flex-start;
        gap: .7rem;
        padding: 6rem 2rem 2rem;
        color: var(--white);
        background: var(--red);
        clip-path: inset(0 0 0 100%);
        visibility: hidden;
        transition: clip-path .45s cubic-bezier(.16, 1, .3, 1), visibility 0s .45s;
    }

    .site-nav.is-open {
        clip-path: inset(0);
        visibility: visible;
        transition-delay: 0s;
    }

    .site-nav > .site-nav__link,
    .site-nav__guides > summary {
        display: block;
        font: 500 clamp(1.7rem, 8vw, 3.2rem)/1.1 var(--display);
        letter-spacing: -.05em;
        text-transform: none;
    }

    .site-nav__optional {
        display: block;
    }

    .site-nav__guides {
        width: 100%;
    }

    .site-nav__guides > summary {
        display: flex;
        justify-content: space-between;
        width: 100%;
    }

    .site-nav__submenu {
        position: static;
        width: 100%;
        margin-top: .4rem;
        padding: .25rem 0 .25rem 1rem;
        color: var(--white);
        background: transparent;
        border: 0;
        border-left: 1px solid rgba(255, 255, 255, .45);
        box-shadow: none;
    }

    .site-nav__submenu a {
        grid-template-columns: 1.25rem 1fr;
        min-height: 44px;
        padding: .55rem .7rem;
        color: var(--white);
        font: 700 clamp(.95rem, 3.8vw, 1.25rem)/1.3 var(--sans);
        letter-spacing: 0;
        text-transform: none;
    }

    .site-nav__submenu a + a {
        border-color: rgba(255, 255, 255, .3);
    }

    .site-nav__submenu a:hover,
    .site-nav__submenu a:focus-visible,
    .site-nav__submenu a[aria-current="page"] {
        color: var(--ink);
        background: var(--white);
    }

    .site-nav__cta {
        margin-top: 1rem;
        padding: .7rem 0;
        border-top: 1px solid rgba(255, 255, 255, .35);
        background: transparent;
    }

    .hero__kicker span:nth-child(2) {
        display: none;
    }

    .hero__sun {
        top: 20%;
        right: .75rem;
    }

    .hero__intro {
        position: static;
        max-width: 34rem;
        margin: 2.3rem 0 0;
    }

    .hero__scroll {
        right: 1.2rem;
        bottom: 2.2rem;
    }

    .hero__scroll span {
        display: none;
    }

    .hero__content {
        padding-bottom: 5.5rem;
    }

    .portrait {
        grid-template-columns: 1fr;
        gap: 2.5rem;
    }

    .portrait__title,
    .portrait__copy,
    .facts {
        grid-column: 1;
    }

    .facts {
        grid-template-columns: repeat(2, 1fr);
        margin-top: 2rem;
    }

    .fact {
        padding: 1.5rem 1rem 2rem 0;
        border-bottom: 1px solid var(--line);
    }

    .fact:nth-child(even) {
        border-right: 0;
        padding-left: 1rem;
    }

    .fact:nth-child(n+3) {
        padding-top: 2rem;
    }

    .flights__head,
    .atlas__head,
    .nature__heading,
    .seasons__intro,
    .drive__head {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

    .flights__head>*,
    .atlas__head>*,
    .nature__heading>*,
    .seasons__intro>*,
    .drive__head>* {
        grid-column: 1 !important;
    }

    .flight-search {
        grid-template-columns: 1fr 1fr;
    }

    .flight-search__origins {
        grid-column: 1 / -1;
    }

    .flight-search__submit {
        min-height: 5.5rem;
    }

    .flight-workspace {
        grid-template-columns: 1fr;
    }

    .flight-filters {
        display: grid;
        grid-template-columns: 1fr 1fr;
        column-gap: 1rem;
        border-right: 0;
        border-bottom: 1px solid var(--ink);
    }

    .flight-filters__title {
        grid-column: 1 / -1;
    }

    .map-console {
        grid-template-columns: 1fr;
    }

    .map-canvas-wrap,
    .google-map {
        min-height: 44rem;
    }

    .place-index {
        max-height: 34rem;
    }

    .history {
        grid-template-columns: 1fr;
    }

    .history__sticky {
        position: static;
    }

    .timeline {
        margin-top: 2rem;
    }

    .culture,
    .taste {
        grid-template-columns: 1fr;
    }

    .culture__photo,
    .taste__image {
        position: relative;
        height: 72svh;
    }

    .nature__story {
        grid-template-columns: 1fr;
    }

    .nature__photo {
        min-height: 65svh;
    }

    .guide__head {
        grid-template-columns: 1fr;
    }

    .licence-card {
        grid-template-columns: .4fr 1fr;
    }

    .licence-card>div:last-child {
        grid-column: 1 / -1;
    }

    .road-trips {
        grid-template-columns: 1fr;
    }

    .road-trip {
        min-height: 24rem;
        border-left: 1px solid rgba(255, 255, 255, .35);
        border-top: 0;
    }

    .driving-tips {
        grid-template-columns: 1fr;
    }

    .reading {
        grid-template-columns: 1fr;
    }

    .reading__list {
        margin-top: 2rem;
    }

    .cursor-orbit {
        display: none;
    }
}

@media (max-width: 560px) {
    :root {
        --pad: 1.15rem;
    }

    .section {
        padding-top: 5.5rem;
        padding-bottom: 5.5rem;
    }

    .hero__media img {
        object-position: 63% center;
    }

    .hero__shade {
        background: linear-gradient(90deg, rgba(12, 12, 11, .7), rgba(12, 12, 11, .18)), linear-gradient(0deg, rgba(5, 9, 9, .8), transparent 65%);
    }

    .hero__kicker {
        top: 20%;
        gap: .7rem;
    }

    .hero h1 {
        font-size: clamp(2.85rem, 14vw, 4.2rem);
    }

    .hero h1 i {
        margin-left: .25em;
    }

    .hero__intro {
        max-width: calc(100% - 2rem);
        padding-left: 1rem;
        font-size: .82rem;
    }

    .hero__sun {
        top: 22%;
        width: 9rem;
    }

    section[id] {
        scroll-margin-top: 4.75rem;
    }

    .section h2,
    .culture h2,
    .taste h2 {
        font-size: clamp(2.25rem, 11.5vw, 3.5rem);
    }

    .facts {
        grid-template-columns: 1fr;
    }

    .fact,
    .fact:nth-child(even),
    .fact:nth-child(n+3) {
        padding: 1.5rem 0;
        border-right: 0;
    }

    .fact span {
        min-height: auto;
    }

    .flight-search {
        grid-template-columns: 1fr;
    }

    .flight-search__origins,
    .flight-search__submit {
        grid-column: 1;
    }

    .flight-filters {
        grid-template-columns: 1fr;
    }

    .flight-results__bar {
        align-items: start;
    }

    .flight-results__bar button {
        width: 2.7rem;
        height: 2.7rem;
        padding: 0;
        font-size: 0;
    }

    .flight-results__bar button span {
        font-size: 1.15rem;
    }

    .flight-card__top {
        gap: 1rem;
    }

    .flight-card__top small {
        max-width: 16ch;
    }

    .flight-card__routes {
        grid-template-columns: 1fr;
    }

    .flight-route+.flight-route {
        padding-left: 0;
        border-top: 1px solid var(--line);
        border-left: 0;
    }

    .atlas {
        padding-bottom: 0;
    }

    .map-console {
        margin: 0 calc(var(--pad) * -1);
    }

    .map-canvas-wrap,
    .google-map {
        min-height: 38rem;
    }

    .map-toolbar {
        left: .6rem;
        max-width: calc(100% - 1.2rem);
        overflow-x: auto;
        transform: none;
    }

    .place-index {
        max-height: 30rem;
    }

    .history {
        gap: 4rem;
    }

    .timeline__item {
        min-height: 25rem;
        padding-left: 1.6rem;
    }

    .timeline__item>span {
        top: 1.4rem;
    }

    .culture__photo,
    .taste__image {
        height: 62svh;
    }

    .culture__content,
    .taste__content {
        padding: 5rem var(--pad);
    }

    .tradition {
        grid-template-columns: 1fr;
        gap: .7rem;
    }

    .tradition p {
        grid-column: 1;
    }

    .nature__story {
        margin-top: 3rem;
    }

    .nature__photo {
        min-height: 72svh;
    }

    .experience-grid {
        grid-template-columns: 1fr;
    }

    .experience-card {
        min-height: 24rem;
    }

    .filters {
        flex-wrap: nowrap;
        margin-right: calc(var(--pad) * -1);
        overflow-x: auto;
        scrollbar-width: none;
    }

    .filter {
        flex: 0 0 auto;
    }

    .dish button {
        grid-template-columns: 1.5rem 1fr 1.5rem;
    }

    .dish button i {
        display: none;
    }

    .dish__answer p {
        padding-left: 2.5rem;
    }

    .season-track {
        grid-template-columns: 1fr;
    }

    .season,
    .season:nth-child(2) {
        min-height: 25rem;
        border-right: 1px solid var(--ink);
        border-top: 0;
    }

    .season:first-child {
        border-top: 1px solid var(--ink);
    }

    .season small {
        margin-top: 5rem;
    }

    .travel-note {
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    .rental-options {
        grid-template-columns: 1fr;
    }

    .rental-option {
        min-height: 25rem;
    }

    .licence-card {
        grid-template-columns: 1fr;
        gap: 1.5rem;
        padding: 1.4rem;
    }

    .licence-card>div:last-child {
        grid-column: 1;
    }

    .driving-tips__grid {
        grid-template-columns: 1fr;
    }

    .driving-tips__grid article:nth-child(odd) {
        border-right: 0;
    }

    .modal-card {
        padding: 1.2rem;
    }

    .modal-card__head {
        margin-bottom: 2.5rem;
    }

    .place-reviews {
        grid-template-columns: 1fr;
    }

    .place-review+.place-review {
        border-top: 1px solid var(--line);
        border-left: 0;
    }

    .place-modal__links {
        flex-direction: column;
    }

    .place-modal__link {
        text-align: center;
    }

    .reading summary {
        grid-template-columns: 2rem 1fr 1.5rem;
    }

    .reading details p {
        padding-left: 2rem;
    }

    .closing {
        min-height: 80svh;
    }

    .closing::before {
        width: 80vw;
    }

    .closing h2 {
        font-size: clamp(3.4rem, 17vw, 5.4rem);
    }

    .site-footer__lead {
        align-items: flex-end;
        gap: 1rem;
    }

    .site-footer__lead h2 {
        min-width: 0;
        font-size: clamp(2.25rem, 9.5vw, 3.5rem);
    }

    .site-footer__lead .eyebrow {
        display: none;
    }

    .round-link {
        width: 4rem;
        flex: 0 0 auto;
    }

    .site-footer__meta {
        grid-template-columns: 1fr;
        gap: 2rem;
        padding-bottom: 3rem;
    }

    .site-footer__year {
        right: auto;
        left: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }

    .motion-ready .reveal {
        opacity: 1;
        transform: none;
    }

    .motion-ready .image-reveal {
        clip-path: none;
    }
}

/* External flight links */
.language-switch {
    display: flex;
    align-items: center;
    gap: .15rem;
    margin-left: .45rem;
    padding: .2rem;
    border: 1px solid currentColor
}

.language-switch a {
    min-width: 34px;
    padding: .35rem;
    text-align: center;
    font-size: .65rem;
    font-weight: 800
}

.language-switch a.is-active {
    color: #fff;
    background: var(--red, #d71920)
}

.flight-links-layout {
    display: grid;
    grid-template-columns: minmax(280px, .75fr) minmax(0, 1.25fr);
    gap: clamp(1rem, 3vw, 2rem);
    align-items: start
}

.flight-links-layout .flights__visual {
    margin: 0
}

.flight-search--links {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .65rem;
    padding: clamp(.8rem, 2vw, 1.25rem);
    background: #f7f0e5;
    border: 1px solid #171512
}

.flight-search--links fieldset {
    grid-column: 1/-1;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .5rem;
    margin: 0;
    padding: .75rem;
    border: 1px solid #c8beae
}

.flight-search--links legend {
    position: static;
    width: auto;
    height: auto;
    margin: 0;
    padding: 0 .35rem;
    clip: auto;
    overflow: visible;
    font-size: .72rem;
    font-weight: 850;
    text-transform: uppercase
}

.flight-search--links fieldset label {
    display: flex;
    min-height: 44px;
    align-items: center;
    gap: .45rem;
    padding: .55rem;
    background: #fff;
    border: 1px solid #d5cab8
}

.flight-search--links fieldset input {
    width: 18px;
    min-height: 18px
}

.flight-search--links fieldset span {
    margin: 0
}

.flight-search--links .field>span:first-child {
    display: block;
    margin-bottom: .25rem;
    font-size: .68rem;
    font-weight: 850;
    text-transform: uppercase
}

.flight-search--links .field input,
.flight-search--links select {
    min-height: 46px
}

.flight-search--links>button {
    grid-column: 2;
    min-height: 50px;
    justify-content: space-between
}

.flight-fixed {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin: 0;
    padding: .5rem;
    color: #6b6258;
    font-size: .75rem
}

.flight-link-results {
    display: grid;
    gap: .75rem;
    margin-top: .75rem
}

.flight-link-group {
    background: #f7f0e5;
    border: 1px solid #171512
}

.flight-link-group>header {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: .75rem;
    border-bottom: 1px solid #c8beae
}

.flight-link-group>header small {
    max-width: 34rem;
    color: #71695f;
    text-align: right
}

.flight-link-group>div {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1px;
    background: #c8beae
}

.flight-provider {
    display: grid;
    grid-template-columns: 24px minmax(0, 1fr) auto;
    align-items: center;
    gap: .5rem;
    min-height: 78px;
    padding: .7rem;
    color: #11100f;
    background: #fff;
    text-decoration: none
}

.flight-provider:hover {
    color: #fff;
    background: #d71920
}

.flight-provider span {
    display: grid
}

.flight-provider small {
    font-size: .68rem;
    line-height: 1.35
}

.flight-links-notice,
.flight-links-loading,
.flight-links-error {
    display: flex;
    align-items: flex-start;
    gap: .5rem;
    margin: 0;
    padding: .75rem;
    background: #eee4d5
}

.flight-links-error {
    color: #8e1712;
    background: #ffe2dc
}

/* Public sources and synchronized Gemini surfaces */
.sources-section__head,
.chat-section {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, .75fr);
    gap: clamp(1rem, 4vw, 4rem);
    align-items: start
}

.sources-section__head h2,
.chat-section h2 {
    margin: .2rem 0;
    font-size: clamp(2.5rem, 6vw, 6rem);
    line-height: .92;
    letter-spacing: -.06em
}

.source-catalog {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1px;
    margin-top: 2rem;
    background: #171512;
    border: 1px solid #171512
}

.source-catalog>a {
    position: relative;
    display: grid;
    align-content: start;
    min-height: 180px;
    padding: 1rem;
    color: #11100f;
    background: #f7f0e5;
    text-decoration: none
}

.source-catalog>a:hover {
    color: #fff;
    background: #d71920
}

.source-catalog span {
    font-size: .65rem;
    font-weight: 850;
    text-transform: uppercase
}

.source-catalog b {
    margin: .5rem 2rem .25rem 0
}

.source-catalog p {
    margin: .2rem 0;
    font-size: .76rem
}

.source-catalog>a>i {
    position: absolute;
    top: 1rem;
    right: 1rem
}

.chat-section {
    color: #fff
}

.chat-section__intro>p {
    max-width: 42rem
}

.chat-embedded,
.chat-drawer {
    color: #11100f;
    background: #f7f0e5;
    border: 1px solid #49433d
}

.chat-messages {
    display: grid;
    align-content: start;
    gap: .6rem;
    min-height: 270px;
    max-height: 430px;
    padding: .85rem;
    overflow: auto;
    overscroll-behavior: contain
}

.chat-message {
    display: grid;
    grid-template-columns: 24px minmax(0, 1fr);
    gap: .5rem;
    max-width: 92%;
    padding: .65rem .75rem;
    background: #fff;
    border: 1px solid #d3c7b6
}

.chat-message--user {
    justify-self: end;
    color: #fff;
    background: #24211e
}

.chat-message p {
    margin: 0;
    white-space: pre-wrap
}

.chat-message__links,
.chat-message__citations {
    grid-column: 2;
    display: flex;
    flex-wrap: wrap;
    gap: .35rem
}

.chat-message__links a,
.chat-message__citations a {
    padding: .25rem .4rem;
    color: inherit;
    border: 1px solid currentColor;
    font-size: .7rem
}

.chat-suggestions {
    display: flex;
    gap: .35rem;
    padding: 0 .85rem .6rem;
    overflow: auto
}

.chat-suggestions button {
    min-height: 36px;
    padding: .35rem .55rem;
    color: #11100f;
    background: transparent;
    border: 1px solid #81796e;
    white-space: nowrap
}

.chat-embedded form,
.chat-drawer form {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: .45rem;
    padding: .75rem;
    border-top: 1px solid #c8beae
}

.chat-embedded textarea,
.chat-drawer textarea {
    min-height: 54px;
    resize: none
}

.chat-embedded form button,
.chat-drawer form button {
    min-width: 50px
}

.chat-embedded>small,
.chat-drawer>small {
    display: block;
    padding: 0 .75rem .75rem;
    color: #71695f
}

.chat-thinking {
    margin: .2rem;
    padding: .5rem;
    color: #71695f
}

.chat-fab {
    position: fixed;
    right: calc(var(--page-frame, 0px) + 1rem);
    bottom: 1rem;
    z-index: 45;
    display: flex;
    min-height: 50px;
    align-items: center;
    gap: .5rem;
    padding: .65rem .9rem;
    color: #fff;
    background: #d71920;
    border: 1px solid #fff;
    box-shadow: 0 10px 35px rgba(0, 0, 0, .25)
}

.chat-drawer {
    position: fixed;
    right: calc(var(--page-frame, 0px) + 1rem);
    bottom: 4.9rem;
    z-index: 46;
    width: min(430px, calc(100vw - 2rem));
    max-height: min(680px, calc(100svh - 7rem));
    box-shadow: 0 20px 70px rgba(0, 0, 0, .32)
}

.chat-drawer>header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: .65rem .75rem;
    color: #fff;
    background: #11100f
}

.chat-drawer>header div {
    display: grid
}

.chat-drawer>header small {
    color: #dfcfc1
}

.chat-drawer>header button {
    width: 44px;
    min-height: 44px;
    padding: 0;
    color: #fff;
    background: transparent
}

.chat-drawer .chat-messages {
    max-height: 360px
}

@media(max-width:1050px) {

    .flight-link-group>div,
    .source-catalog {
        grid-template-columns: repeat(2, 1fr)
    }

    .sources-section__head,
    .chat-section {
        grid-template-columns: 1fr
    }

    .chat-embedded {
        max-width: 760px
    }
}

@media(max-width:760px) {
    .language-switch {
        margin: 0
    }

    .flight-links-layout {
        grid-template-columns: 1fr
    }

    .flight-search--links {
        grid-template-columns: 1fr
    }

    .flight-search--links>button {
        grid-column: 1
    }

    .flight-link-group>header {
        display: grid
    }

    .flight-link-group>header small {
        text-align: left
    }

    .flight-link-group>div,
    .source-catalog {
        grid-template-columns: 1fr
    }

    .chat-fab span {
        display: none
    }

    .chat-fab {
        width: 52px;
        padding: 0;
        justify-content: center
    }

    .chat-drawer {
        right: .5rem;
        bottom: 4.5rem;
        width: calc(100vw - 1rem)
    }
}

@media(max-width:430px) {
    .flight-search--links fieldset {
        grid-template-columns: 1fr
    }

    .source-catalog>a {
        min-height: 140px
    }

    .chat-section {
        padding-left: .4rem;
        padding-right: .4rem
    }

    .chat-message {
        max-width: 98%
    }
}

/* 2026 dense editorial pass */
:root {
    --page-frame: clamp(.4rem, 1vw, 1rem);
}

body {
    background: #090908;
}

#main {
    margin: var(--page-frame) var(--page-frame) 0;
    background: var(--paper);
}

.site-header {
    top: var(--page-frame);
    left: var(--page-frame);
    right: var(--page-frame);
    width: auto;
}

.site-footer {
    margin: 0 var(--page-frame) var(--page-frame);
}

.section {
    padding-top: clamp(5rem, 8vw, 8.5rem);
    padding-bottom: clamp(5rem, 8vw, 8.5rem);
}

.eyebrow {
    margin-bottom: 1.2rem;
}

.flights__head,
.drive__head,
.atlas__head {
    margin-bottom: 2.5rem;
}

.fa-solid,
.fa-regular,
.fa-brands {
    line-height: 1;
}

.select-control {
    position: relative;
    display: block;
    min-width: 0;
}

.select-control select,
.flight-search select,
.flight-filters select,
.place-index select {
    width: 100%;
    min-height: 2.8rem;
    padding: .55rem 2.2rem .55rem .7rem;
    color: var(--ink);
    background: var(--white);
    border: 1px solid rgba(21, 20, 18, .38);
    border-radius: 0;
    appearance: none;
    cursor: pointer;
    transition: border-color .2s, box-shadow .2s, background .2s;
}

.select-control>i:last-child {
    position: absolute;
    top: 50%;
    right: .75rem;
    pointer-events: none;
    transform: translateY(-50%);
    font-size: .7rem;
}

.select-control select:hover {
    border-color: var(--ink);
}

.select-control select:focus-visible {
    border-color: var(--sea-deep);
    box-shadow: 0 0 0 3px rgba(114, 201, 199, .28);
    outline: 0;
}

.flights__visual,
.drive__visual {
    position: relative;
    margin: 0 0 1.25rem;
    aspect-ratio: 16 / 5;
    overflow: hidden;
}

.flights__visual picture,
.flights__visual img,
.drive__visual picture,
.drive__visual img {
    width: 100%;
    height: 100%;
}

.flights__visual img,
.drive__visual img {
    object-fit: cover;
}

.flights__visual figcaption,
.drive__visual figcaption {
    position: absolute;
    right: 1rem;
    bottom: 1rem;
    display: flex;
    gap: .55rem;
    align-items: center;
    margin: 0;
    padding: .55rem .7rem;
    color: var(--white);
    background: rgba(9, 9, 8, .78);
    font-size: .62rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.flight-search {
    grid-template-columns: 1.35fr repeat(4, minmax(7.4rem, .8fr)) .8fr;
}

.flight-search fieldset,
.flight-search .field {
    padding: .85rem 1rem;
}

.flight-search legend,
.flight-search .field>span:first-child {
    margin-bottom: .4rem;
}

.flight-search__origins {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .4rem;
    align-items: end;
}

.flight-search__origins legend {
    position: static;
    grid-column: 1 / -1;
    width: 100%;
    padding: 0;
}

.flight-search__origins label {
    min-width: 0;
}

.flight-search__origins span {
    min-height: 2.8rem;
}

.flight-search input[type="date"] {
    width: 100%;
    min-height: 2.8rem;
    padding: .55rem .2rem;
    color: var(--ink);
    background: transparent;
    border: 0;
    border-bottom: 1px solid var(--ink);
    border-radius: 0;
}

.flight-search__submit {
    min-height: 100%;
    padding: 1rem;
}

.flight-search__submit i {
    font-size: 1.1rem;
}

.flight-workspace {
    display: block;
    margin-top: 1.25rem;
}

.flight-filters {
    padding: 0;
    border: 0;
    border-bottom: 1px solid var(--ink);
}

.flight-filters summary {
    display: flex;
    justify-content: space-between;
    align-items: center;
    min-height: 3.2rem;
    padding: .75rem 1rem;
    cursor: pointer;
    list-style: none;
    border-bottom: 1px solid var(--line);
}

.flight-filters summary::-webkit-details-marker {
    display: none;
}

.flight-filters summary b {
    display: flex;
    align-items: center;
    gap: .5rem;
    font: 600 .7rem/1 var(--display);
    text-transform: uppercase;
}

.flight-filters summary>i {
    transition: transform .2s;
}

.flight-filters[open] summary>i {
    transform: rotate(180deg);
}

.flight-filters__grid {
    display: grid;
    grid-template-columns: 1.25fr repeat(5, minmax(8rem, 1fr)) auto auto;
    gap: .75rem;
    align-items: end;
    padding: .9rem 1rem 1rem;
}

.flight-filters__grid>label {
    display: grid;
    gap: .35rem;
    min-width: 0;
    margin: 0;
}

.flight-filters__grid label>span:first-child {
    color: #676055;
    font-size: .62rem;
    font-weight: 700;
}

.flight-range input {
    min-height: 2.8rem;
}

.flight-checkbox {
    display: flex !important;
    align-items: center;
    min-height: 2.8rem;
    max-width: 12rem;
}

.flight-checkbox input {
    width: 1rem;
    height: 1rem;
    flex: 0 0 auto;
}

.flight-filter-reset {
    min-height: 2.8rem;
    padding: .55rem .8rem;
    color: var(--red);
    background: transparent;
    border: 1px solid var(--red);
    font-size: .63rem;
    font-weight: 700;
    cursor: pointer;
}

.flight-results__bar {
    min-height: 4.6rem;
    padding: .85rem 1rem;
    background: #f8f3e8;
}

.flight-results__bar button {
    display: flex;
    gap: .5rem;
    align-items: center;
    min-height: 2.8rem;
    padding: .55rem .8rem;
}

.flight-notice {
    padding: .7rem 1rem;
}

.flight-results__viewport {
    max-height: min(46rem, 70vh);
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
    scrollbar-color: var(--red) #e6ded0;
}

.flight-card {
    padding: 1rem;
}

.flight-card__top {
    gap: 1rem;
}

.flight-card__airline {
    display: flex;
    gap: .75rem;
    align-items: center;
    min-width: 0;
}

.flight-card__airline img {
    width: 2.4rem;
    height: 2.4rem;
    object-fit: contain;
    flex: 0 0 auto;
}

.flight-card h3 {
    margin-top: .3rem;
    font-size: clamp(.9rem, 1.2vw, 1.2rem);
}

.flight-card__price strong {
    font-size: clamp(1.25rem, 2vw, 1.8rem);
}

.flight-card__flags {
    margin: .75rem 0;
}

.flight-card__flags span {
    display: inline-flex;
    align-items: center;
    gap: .2rem;
    padding: .3rem .45rem;
}

.flight-card__routes {
    border-color: var(--line);
}

.flight-route {
    grid-template-columns: 3.7rem 1fr;
    gap: .65rem;
    padding: .7rem 0;
}

.flight-route+.flight-route {
    padding-left: .9rem;
}

.flight-route>div {
    grid-template-columns: auto minmax(1.5rem, 1fr) auto;
    gap: .5rem;
}

.flight-route__plane {
    color: var(--red);
    text-align: center;
    font-size: .7rem;
}

.flight-route__stops {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    align-items: center;
    grid-column: 1 / -1;
}

.flight-route__stops i {
    color: var(--red);
    font-size: .5rem;
}

.flight-card__links {
    align-items: center;
    margin-top: .75rem;
}

.flight-action {
    display: inline-flex;
    gap: .35rem;
    align-items: center;
    min-height: 2.55rem;
    padding: .45rem .65rem;
    border: 1px solid var(--line);
    font-size: .62rem;
    font-weight: 700;
    transition: .2s;
}

.flight-action--verify {
    color: var(--white);
    background: var(--red);
    border-color: var(--red);
}

.flight-action:hover {
    color: var(--white);
    background: var(--ink);
    border-color: var(--ink);
}

.flight-skeleton {
    min-height: 11rem;
}

.map-console {
    min-height: 46rem;
}

.map-canvas-wrap,
.google-map {
    min-height: 46rem;
}

.place-index {
    grid-template-rows: auto auto 1fr;
    max-height: 46rem;
}

.place-index__controls {
    display: grid;
    gap: .55rem;
    padding: .8rem;
    border-bottom: 1px solid rgba(255, 255, 255, .3);
}

.place-index__controls>label:first-child {
    position: relative;
    display: block;
}

.place-index__controls>label:first-child i {
    position: absolute;
    top: 50%;
    left: .75rem;
    color: var(--ink);
    transform: translateY(-50%);
}

.place-index__controls input {
    width: 100%;
    min-height: 2.8rem;
    padding: .55rem .7rem .55rem 2.2rem;
    color: var(--ink);
    background: var(--white);
    border: 0;
}

.place-index__controls .select-control select {
    border: 0;
}

.place-index__list button {
    padding: .85rem 1rem;
}

.albany-marker {
    display: grid;
    place-items: center;
    width: 1.7rem;
    height: 1.7rem;
    color: var(--white);
    border-width: 2px;
}

.albany-marker>i {
    font-size: .56rem;
}

.albany-cluster {
    display: grid;
    place-items: center;
    width: 2.8rem;
    height: 2.8rem;
    color: var(--white);
    background: var(--red);
    border: 3px solid var(--white);
    border-radius: 50%;
    box-shadow: 0 .3rem 1rem rgba(0, 0, 0, .4);
    font: 600 .7rem/1 var(--display);
}

.history {
    gap: 7vw;
}

.history__image {
    display: block;
    margin-top: 2rem;
    aspect-ratio: 4 / 3;
    overflow: hidden;
}

.history__image img {
    height: 100%;
    object-fit: cover;
}

.timeline__item {
    min-height: 18rem;
    padding-bottom: 3.5rem;
}

.culture {
    min-height: auto;
}

.culture__photo,
.taste__image {
    height: 88vh;
}

.culture__content .lead {
    margin: 2.2rem 0 3.5rem;
}

.tradition {
    padding: 1.5rem 0;
}

.nature__story {
    margin-top: 4rem;
}

.nature__photo {
    min-height: 44rem;
}

.guide-postcards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: .7rem;
    margin: 2.5rem 0 1.5rem;
}

.guide-postcards>a {
    position: relative;
    min-height: 15rem;
    overflow: hidden;
}

.guide-postcards picture,
.guide-postcards img {
    width: 100%;
    height: 100%;
}

.guide-postcards img {
    object-fit: cover;
    transition: transform .5s;
}

.guide-postcards a:hover img {
    transform: scale(1.04);
}

.guide-postcards a>span {
    position: absolute;
    inset: auto .8rem .8rem;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: .15rem .6rem;
    align-items: end;
    padding: .7rem;
    color: var(--white);
    background: rgba(9, 9, 8, .76);
}

.guide-postcards small {
    grid-column: 1;
    color: #f39b94;
    font-size: .55rem;
    text-transform: uppercase;
    letter-spacing: .1em;
}

.guide-postcards b {
    font: 500 .8rem/1.2 var(--display);
}

.guide-postcards i {
    grid-column: 2;
    grid-row: 1 / 3;
}

.filters {
    margin: 1.5rem 0 2rem;
}

.experience-card {
    min-height: 22rem;
    padding: 1.2rem;
}

.experience-grid,
.experience-card {
    min-width: 0;
}

.experience-card small {
    margin-top: 1.8rem;
}

.experience-card h3 {
    margin: .75rem 0 1rem;
}

.experience-card p {
    margin-bottom: 1.2rem;
}

.experience-card>div:first-child i {
    font-size: 1.5rem;
}

.experience-card__places {
    display: flex !important;
    flex-wrap: wrap;
    justify-content: flex-start !important;
    gap: .35rem;
    margin-top: .9rem;
    padding-top: .75rem;
    border-top: 1px solid var(--line);
}

.experience-card__places a {
    display: inline-flex;
    gap: .25rem;
    align-items: center;
    min-height: 2rem;
    padding: .3rem .45rem;
    border: 1px solid var(--line);
    font-size: .54rem;
    font-weight: 700;
}

.experience-card:hover .experience-card__places {
    border-color: rgba(255, 255, 255, .35);
}

.experience-card:hover .experience-card__places a {
    border-color: rgba(255, 255, 255, .45);
}

.experience-card.is-linked {
    color: var(--white);
    background: var(--red);
    box-shadow: 0 0 0 4px var(--sea);
}

.season {
    min-height: 25rem;
}

.season small {
    margin-top: 4rem;
}

.rental-option {
    min-height: 24rem;
}

.rental-option h3 {
    margin: 2.2rem 0 1rem;
}

.drive__visual {
    margin-bottom: 2rem;
}

.licence-card {
    margin-top: 3.5rem;
}

.road-trips,
.driving-tips {
    margin-top: 5rem;
}

.road-trip {
    min-height: 24rem;
}

.road-trip h4 {
    margin-top: 2rem;
}

.road-trip__route {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    align-items: center;
}

.road-trip__route i {
    color: #ef8b83;
    font-size: .55rem;
}

.road-trip>div a {
    display: inline-flex;
    gap: .25rem;
    align-items: center;
    padding: .4rem .55rem;
    color: var(--white);
    background: transparent;
    border: 1px solid rgba(255, 255, 255, .3);
    font-size: .58rem;
    cursor: pointer;
}

.road-trip>div a:hover {
    color: var(--ink);
    background: var(--white);
}

.driving-tips__grid article {
    min-height: 11rem;
    padding: 1.2rem;
}

.driving-tips__grid h4 {
    margin-top: 1.2rem;
}

.closing {
    min-height: 78vh;
}

.site-footer {
    padding-top: clamp(4rem, 7vw, 7rem);
}

.site-footer__lead {
    padding-bottom: 4rem;
}

.modal-card__head {
    margin-bottom: 2.5rem;
}

.modal-card__head button i {
    font-size: 1rem;
}

.place-modal__visit {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1px;
    padding: 0;
    background: var(--line);
}

.place-modal__visit>div {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: .25rem .6rem;
    align-items: center;
    padding: 1rem;
    background: var(--paper);
}

.place-modal__visit>div>i {
    grid-row: 1 / 3;
    color: var(--red);
}

.place-modal__visit small,
.place-modal__visit strong {
    grid-column: 2;
}

.place-modal__visit strong {
    font-size: .72rem;
    line-height: 1.35;
}

.place-modal__related {
    margin: 1.5rem 0;
}

.place-modal__related>small {
    display: block;
    margin-bottom: .6rem;
    color: #6d665b;
    font-weight: 700;
}

.place-modal__related>div {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
}

.place-modal__related a {
    display: inline-flex;
    gap: .4rem;
    align-items: center;
    min-height: 2.5rem;
    padding: .45rem .65rem;
    border: 1px solid var(--line);
    font-size: .62rem;
    font-weight: 700;
}

.place-photo {
    margin: 0 0 1.4rem;
}

.place-photo img {
    aspect-ratio: 16 / 9;
    object-fit: cover;
}

.place-photo figcaption {
    padding: .35rem 0;
}

.place-photo .place-attribution {
    display: inline;
    margin: 0 .5rem 0 0;
    font-size: .58rem;
}

@media (max-width: 1100px) {
    .flight-filters__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .flight-checkbox {
        max-width: none;
    }
}

@media (max-width: 820px) {
    .site-header {
        left: var(--page-frame);
        right: var(--page-frame);
    }

    .flights__visual,
    .drive__visual {
        aspect-ratio: 16 / 7;
    }

    .flight-workspace {
        display: block;
    }

    .flight-filters {
        display: block;
        border-bottom: 1px solid var(--ink);
    }

    .flight-filters__grid {
        grid-template-columns: 1fr 1fr;
    }

    .flight-results__viewport {
        max-height: 65svh;
    }

    .map-canvas-wrap,
    .google-map {
        min-height: 40rem;
    }

    .place-index {
        max-height: 34rem;
    }

    .history__image {
        max-width: 32rem;
    }

    .guide-postcards>a {
        min-height: 12rem;
    }
}

@media (max-width: 560px) {
    :root {
        --page-frame: .375rem;
    }

    .section {
        padding-top: 4.5rem;
        padding-bottom: 4.5rem;
    }

    .flights__visual,
    .drive__visual {
        aspect-ratio: 4 / 3;
    }

    .flights__visual figcaption,
    .drive__visual figcaption {
        right: .6rem;
        bottom: .6rem;
        left: .6rem;
    }

    .flight-search__origins {
        grid-column: 1;
    }

    .flight-filters__grid {
        grid-template-columns: 1fr;
    }

    .flight-checkbox {
        max-width: none;
    }

    .flight-filter-reset {
        width: 100%;
    }

    .flight-results__bar button {
        width: 2.8rem;
        height: 2.8rem;
        justify-content: center;
    }

    .flight-results__bar button span {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
    }

    .flight-card__top {
        display: grid;
    }

    .flight-card__price {
        text-align: left;
    }

    .flight-card__routes {
        grid-template-columns: 1fr;
    }

    .flight-route+.flight-route {
        padding-left: 0;
        border-top: 1px solid var(--line);
        border-left: 0;
    }

    .flight-action {
        flex: 1 1 100%;
        justify-content: center;
        text-align: center;
    }

    .map-console {
        margin-right: calc(var(--pad) * -1);
        margin-left: calc(var(--pad) * -1);
    }

    .map-canvas-wrap,
    .google-map {
        min-height: 36rem;
    }

    .map-toolbar {
        width: calc(100% - 1.2rem);
    }

    .place-index {
        max-height: 30rem;
    }

    .history__image {
        aspect-ratio: 16 / 10;
    }

    .nature__photo {
        min-height: 60svh;
    }

    .guide-postcards {
        grid-template-columns: 1fr;
    }

    .guide-postcards>a {
        min-height: 15rem;
    }

    .experience-card {
        min-height: 20rem;
    }

    .experience-card,
    .experience-card>b,
    .experience-card__places a {
        max-width: 100%;
        overflow-wrap: break-word;
    }

    .filters {
        width: 100%;
        margin-right: 0;
    }

    .place-modal__visit {
        grid-template-columns: 1fr;
    }

    .closing {
        min-height: 74svh;
    }
}

/* Verified route and EUR price planner */
.flight-search {
    grid-template-columns: 1.35fr repeat(4, minmax(8.1rem, .8fr)) .9fr;
}

.flight-filters__grid {
    grid-template-columns: 1.25fr repeat(5, minmax(8rem, 1fr)) auto;
}

.flight-fresh-links {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    padding: 0 1rem .8rem;
    background: #f8f3e8;
    border-bottom: 1px solid var(--line);
}

.flight-fresh-link {
    display: inline-flex;
    gap: .4rem;
    align-items: center;
    min-height: 2.75rem;
    padding: .55rem .75rem;
    color: var(--ink);
    background: var(--white);
    border: 1px solid var(--ink);
    font-size: .64rem;
    font-weight: 700;
    transition: .2s;
}

.flight-fresh-link:hover {
    color: var(--white);
    background: var(--ink);
}

.flight-result-group {
    min-width: 0;
    background: #f8f3e8;
}

.flight-result-group+.flight-result-group {
    border-top: .4rem solid var(--ink);
}

.flight-result-group__head {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: .2rem 1rem;
    padding: .8rem 1rem;
    background: #ebe3d6;
    border-bottom: 1px solid var(--line);
}

.flight-result-group__head h3 {
    margin: 0;
    font: 600 .82rem/1.1 var(--display);
    text-transform: uppercase;
    letter-spacing: .03em;
}

.flight-result-group__head span {
    color: var(--red);
    font-size: .62rem;
    font-weight: 700;
}

.flight-result-group__head p {
    grid-column: 1 / -1;
    margin: 0;
    color: #756e62;
    font-size: .62rem;
}

.flight-result-group__cards {
    display: grid;
    gap: 1px;
    background: var(--line);
}

.flight-card__number {
    display: block;
    margin-top: .2rem;
    color: #756e62;
    font-size: .62rem;
}

.flight-card__price>span {
    display: block;
    max-width: 22ch;
    margin-top: .25rem;
    color: #756e62;
    font-size: .58rem;
}

.flight-card__flags .is-preferred {
    color: #154b45;
    background: #cbe7df;
}

.flight-route>span em {
    color: var(--red);
    font-size: .65rem;
    font-style: normal;
    font-weight: 700;
}

.flight-route {
    grid-template-columns: 6rem 1fr;
}

.flight-route>div {
    display: grid;
    grid-template-columns: 1fr;
    gap: .25rem;
    align-content: center;
}

.flight-route__airports {
    display: flex;
    gap: .55rem;
    align-items: center;
    font-size: .76rem;
}

.flight-route__airports i {
    width: auto !important;
    height: auto !important;
    color: var(--red);
    background: transparent !important;
    overflow: visible !important;
    font-size: .62rem;
}

.flight-empty>i {
    color: var(--red);
    font-size: 1.1rem;
}

.flight-card--verified {
    border-left: .25rem solid #1d6a52;
}

.flight-card--verified.is-self-transfer {
    border-left-color: var(--red);
}

.flight-card__journeys {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1px;
    margin-top: .75rem;
    background: var(--line);
    border: 1px solid var(--line);
}

.flight-journey {
    min-width: 0;
    padding: .8rem;
    background: #f8f3e8;
}

.flight-journey>header {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: .5rem;
    align-items: baseline;
    padding-bottom: .55rem;
    border-bottom: 1px solid var(--line);
}

.flight-journey>header div {
    color: var(--red);
    font-size: .62rem;
    font-weight: 800;
    text-transform: uppercase;
}

.flight-journey>header strong {
    font-size: .76rem;
}

.flight-journey>header span {
    color: #756e62;
    font-size: .58rem;
}

.flight-segments {
    display: grid;
    gap: 0;
    margin: 0;
    padding: 0;
    list-style: none;
}

.flight-segment {
    display: grid;
    grid-template-columns: minmax(7rem, .35fr) 1fr;
    gap: .7rem;
    padding: .65rem 0;
}

.flight-segment+.flight-segment {
    border-top: 1px solid var(--line);
}

.flight-segment__route {
    display: flex;
    gap: .45rem;
    align-items: center;
}

.flight-segment__route i {
    color: var(--red);
    font-size: .65rem;
}

.flight-segment__meta {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: .1rem .6rem;
    min-width: 0;
    font-size: .62rem;
}

.flight-segment__meta span:first-child {
    grid-column: 1 / -1;
    font-weight: 700;
}

.flight-segment__meta span:not(:first-child) {
    color: #756e62;
}

.flight-connection {
    display: flex;
    gap: .35rem;
    align-items: center;
    margin: 0 -.8rem;
    padding: .45rem .8rem;
    color: #34544d;
    background: #dcebe6;
    font-size: .6rem;
    font-weight: 700;
    list-style: none;
}

.flight-connection.is-warning {
    color: #8d160f;
    background: #ffd5c9;
}

.flight-estimate-details {
    margin-top: .75rem;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
}

.flight-estimate-details summary {
    display: flex;
    gap: .4rem;
    align-items: center;
    min-height: 2.6rem;
    cursor: pointer;
    font-size: .64rem;
    font-weight: 700;
}

.flight-estimate-details>div {
    padding: 0 0 .8rem;
    color: #625d54;
    font-size: .65rem;
}

.flight-estimate-details p {
    margin: .35rem 0;
}

.flight-estimate-details ul {
    margin: .5rem 0;
    padding-left: 1.2rem;
}

.flight-card__sources {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
}

.flight-card__sources a {
    color: var(--red);
    text-decoration: underline;
    text-underline-offset: .15rem;
}

.flight-result-group--fallback {
    border-left: .25rem solid #9a5d0a;
}

.flight-fallback-warning {
    margin: .75rem 0 0;
    padding: .65rem;
    color: #7d4a08;
    background: #fff0ce;
    font-size: .65rem;
}

.flight-card--fallback .flight-card__price strong {
    font-size: clamp(1.2rem, 1.7vw, 1.65rem);
}

@media (max-width: 1100px) {
    .flight-search {
        grid-template-columns: 1.35fr repeat(2, minmax(0, 1fr));
    }

    .flight-search__submit {
        min-height: 5rem;
    }

    .flight-filters__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 820px) {
    .flight-search {
        grid-template-columns: 1fr 1fr;
    }

    .flight-search__origins {
        grid-column: 1 / -1;
    }

    .flight-filters__grid {
        grid-template-columns: 1fr 1fr;
    }

    .flight-card__journeys {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 560px) {
    .flight-search {
        grid-template-columns: 1fr;
    }

    .flight-search__origins,
    .flight-search__submit {
        grid-column: 1;
    }

    .flight-filters__grid {
        grid-template-columns: 1fr;
    }

    .flight-fresh-links {
        display: grid;
    }

    .flight-fresh-link {
        justify-content: center;
        text-align: center;
    }

    .flight-result-group__head {
        grid-template-columns: 1fr;
    }

    .flight-result-group__head p {
        grid-column: 1;
    }

    .flight-route {
        grid-template-columns: 5.2rem 1fr;
    }

    .flight-segment {
        grid-template-columns: 1fr;
    }

    .flight-journey>header {
        grid-template-columns: auto 1fr;
    }

    .flight-journey>header span {
        grid-column: 1 / -1;
    }
}

/* Reusable editorial image band */
.editorial-visual-band {
    position: relative;
    isolation: isolate;
    min-height: clamp(22rem, 38vw, 28rem);
    display: grid;
    align-items: end;
    overflow: hidden;
    color: var(--white);
    background: var(--ink);
}

.editorial-visual-band__media,
.editorial-visual-band__media img,
.editorial-visual-band__shade {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.editorial-visual-band__media {
    z-index: -2;
}

.editorial-visual-band__media img {
    object-fit: cover;
    object-position: var(--visual-position, center);
}

.editorial-visual-band__shade {
    z-index: -1;
    background:
        linear-gradient(90deg, rgba(8, 10, 10, .9), rgba(8, 10, 10, .54) 58%, rgba(8, 10, 10, .12)),
        linear-gradient(0deg, rgba(8, 10, 10, .66), transparent 58%);
}

.editorial-visual-band__content {
    width: min(76rem, calc(100% - 4rem));
    margin: 0 auto;
    padding: clamp(3rem, 8vw, 6rem) 0;
}

.editorial-visual-band__content h2 {
    max-width: 18ch;
    margin: .7rem 0 1rem;
    color: var(--white);
    font-size: clamp(2.2rem, 5vw, 5.4rem);
    line-height: .94;
    letter-spacing: -.055em;
}

.editorial-visual-band__content > p:not(.eyebrow) {
    max-width: 49rem;
    margin: 0;
    color: rgba(255, 255, 255, .82);
    font-size: clamp(.95rem, 1.25vw, 1.08rem);
    line-height: 1.7;
}

.editorial-visual-band__content nav {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
    margin-top: 1.5rem;
}

.editorial-visual-band__content nav a {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    gap: .65rem;
    padding: .65rem .85rem;
    color: var(--white);
    border: 1px solid rgba(255, 255, 255, .55);
    text-decoration: none;
}

.editorial-visual-band__content nav a:hover,
.editorial-visual-band__content nav a:focus-visible {
    color: var(--ink);
    background: var(--white);
}

.editorial-visual-band--riviera-view {
    --visual-position: center 48%;
}

.editorial-visual-band--adriatic-view {
    --visual-position: center 56%;
}

@media (max-width: 720px) {
    .editorial-visual-band {
        min-height: 24rem;
    }

    .editorial-visual-band__content {
        width: calc(100% - 1.5rem);
        padding: 3rem 0;
    }

    .editorial-visual-band__content h2 {
        font-size: clamp(2rem, 11vw, 3.4rem);
    }

    .editorial-visual-band__shade {
        background: linear-gradient(0deg, rgba(8, 10, 10, .94), rgba(8, 10, 10, .45) 78%, rgba(8, 10, 10, .2));
    }

    .editorial-visual-band--riviera-view {
        --visual-position: 56% center;
    }

    .editorial-visual-band--adriatic-view {
        --visual-position: 52% center;
    }
}

/* Mobile quality pass: resilient controls, compact sections and an accessible AI sheet */
body.chat-open {
    overflow: hidden;
}

.chat-drawer[hidden],
.chat-backdrop[hidden] {
    display: none !important;
}

.chat-backdrop {
    position: fixed;
    z-index: 440;
    inset: 0;
    background: rgba(9, 9, 8, .7);
    backdrop-filter: blur(4px);
}

.chat-fab {
    z-index: 140;
    bottom: max(1rem, env(safe-area-inset-bottom));
    transition: opacity .2s ease, transform .2s ease, background .2s ease;
}

.chat-fab[aria-expanded="true"],
.chat-fab.is-obscured {
    pointer-events: none;
    opacity: 0;
    transform: translateY(.75rem);
}

.chat-drawer {
    z-index: 450;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.chat-drawer .chat-messages {
    min-height: 0;
}

.chat-message p,
.chat-message__links,
.chat-message__citations,
.chat-message__links a,
.chat-message__citations a {
    min-width: 0;
    overflow-wrap: anywhere;
}

.chat-suggestions {
    scrollbar-width: thin;
    scroll-snap-type: x proximity;
}

.chat-suggestions button {
    min-height: 44px;
    scroll-snap-align: start;
}

.chat-embedded form,
.chat-drawer form {
    grid-template-areas: "question send" "meta meta";
}

.chat-embedded textarea,
.chat-drawer textarea {
    grid-area: question;
    width: 100%;
    max-height: 9rem;
    padding: .7rem .75rem;
    line-height: 1.45;
}

.chat-embedded form button,
.chat-drawer form button {
    grid-area: send;
    min-height: 50px;
}

.chat-compose__meta {
    grid-area: meta;
    display: flex;
    justify-content: space-between;
    gap: .75rem;
    color: #71695f;
    font-size: .65rem;
    line-height: 1.35;
}

.chat-compose__meta output {
    flex: 0 0 auto;
    font-variant-numeric: tabular-nums;
}

@media (hover: none), (pointer: coarse) {
    button,
    a,
    input,
    textarea,
    select {
        -webkit-tap-highlight-color: rgba(215, 25, 32, .18);
    }

    .cursor-orbit {
        display: none !important;
    }
}

@media (max-width: 820px) {
    html {
        scroll-padding-top: 5rem;
    }

    .site-nav {
        justify-content: flex-start;
        min-height: 100dvh;
        padding: max(6.5rem, calc(env(safe-area-inset-top) + 5.5rem)) max(1.35rem, env(safe-area-inset-right)) max(2rem, env(safe-area-inset-bottom)) max(1.35rem, env(safe-area-inset-left));
        overflow-y: auto;
        overscroll-behavior: contain;
    }

    .site-nav > .site-nav__link,
    .site-nav__guides > summary,
    .site-nav__submenu a {
        min-height: 44px;
    }

    .language-switch {
        flex-wrap: wrap;
        margin-top: .75rem;
    }

    .language-switch a {
        display: grid;
        min-width: 48px;
        min-height: 44px;
        place-items: center;
    }
}

@media (max-width: 560px) {
    :root {
        --pad: clamp(1rem, 4.6vw, 1.25rem);
    }

    body {
        font-size: 15px;
    }

    .section {
        padding-top: clamp(3.75rem, 14vw, 4.75rem);
        padding-bottom: clamp(3.75rem, 14vw, 4.75rem);
    }

    .section h2,
    .culture h2,
    .taste h2,
    .sources-section__head h2,
    .chat-section h2 {
        max-width: 100%;
        font-size: clamp(2.15rem, 11vw, 3rem);
        line-height: .96;
        overflow-wrap: anywhere;
    }

    .site-header,
    .site-header.is-scrolled {
        min-height: 4rem;
        padding: .55rem .85rem;
    }

    .brand__mark {
        width: 2.35rem;
        height: 2.35rem;
    }

    .menu-toggle {
        width: 2.75rem;
        min-height: 2.75rem;
    }

    .hero {
        min-height: calc(100svh - var(--page-frame));
    }

    .hero__content {
        padding-right: var(--pad);
        padding-bottom: max(4.75rem, calc(env(safe-area-inset-bottom) + 3.5rem));
    }

    .hero__kicker {
        right: var(--pad);
        flex-wrap: wrap;
        line-height: 1.35;
    }

    .hero h1 {
        font-size: clamp(2.65rem, 13.2vw, 3.65rem);
    }

    .hero__intro {
        max-width: 100%;
        margin-top: 1.5rem;
    }

    .flights__head,
    .drive__head,
    .atlas__head {
        margin-bottom: 1.75rem;
    }

    .flight-search--links {
        gap: .75rem;
        padding: .75rem;
    }

    .flight-search--links fieldset {
        padding: .65rem;
    }

    .flight-search--links .field,
    .flight-search--links .field input,
    .flight-search--links .select-control,
    .flight-search--links select,
    .flight-search--links>button {
        width: 100%;
        min-width: 0;
    }

    .flight-search--links .field input,
    .flight-search--links select {
        min-height: 48px;
        padding: .65rem .7rem;
        background: #fff;
        border: 1px solid #8e857a;
        border-radius: 0;
    }

    .flight-fixed {
        padding: .25rem 0;
    }

    .flight-provider {
        min-height: 68px;
        padding: .7rem .75rem;
    }

    .map-canvas-wrap,
    .google-map {
        min-height: clamp(29rem, 72svh, 35rem);
    }

    .map-toolbar {
        right: .6rem;
        width: auto;
        max-width: none;
        padding-bottom: .25rem;
        scroll-padding-inline: .25rem;
        scrollbar-width: none;
        overscroll-behavior-inline: contain;
    }

    .map-toolbar::-webkit-scrollbar {
        display: none;
    }

    .map-toolbar button {
        flex: 0 0 auto;
        min-height: 44px;
        padding-inline: .8rem;
        white-space: nowrap;
    }

    .place-index {
        max-height: min(32rem, 72svh);
    }

    .place-index__controls {
        position: sticky;
        z-index: 2;
        top: 0;
    }

    .place-index__controls input,
    .place-index__controls select,
    .place-index__list button {
        min-height: 48px;
    }

    .experience-card,
    .season,
    .season:nth-child(2),
    .rental-option,
    .road-trip,
    .timeline__item {
        min-height: auto;
    }

    .experience-card,
    .season,
    .rental-option,
    .road-trip {
        padding-top: 1.35rem;
        padding-bottom: 1.5rem;
    }

    .season small {
        margin-top: 3.5rem;
    }

    .source-catalog>a {
        min-height: 0;
        padding: 1rem 3rem 1rem 1rem;
    }

    .chat-section {
        padding-right: var(--pad);
        padding-left: var(--pad);
    }

    .chat-section__intro>small {
        display: block;
        line-height: 1.45;
    }

    .chat-section h2 {
        font-size: clamp(1.82rem, 8.55vw, 2.35rem);
        overflow-wrap: normal;
        word-break: normal;
    }

    .chat-embedded .chat-messages {
        min-height: 12rem;
        max-height: 58svh;
    }

    .chat-message {
        max-width: 100%;
        padding: .7rem;
        font-size: .93rem;
    }

    .chat-message--user {
        max-width: 94%;
    }

    .chat-message__links a,
    .chat-message__citations a {
        display: inline-flex;
        min-height: 40px;
        align-items: center;
        padding: .45rem .55rem;
    }

    .chat-embedded form {
        grid-template-areas: "question" "send" "meta";
        grid-template-columns: 1fr;
    }

    .chat-embedded form button {
        width: 100%;
        min-height: 48px;
        justify-content: center;
    }

    .chat-fab {
        right: max(.85rem, calc(var(--page-frame) + env(safe-area-inset-right)));
        bottom: max(.85rem, calc(var(--page-frame) + env(safe-area-inset-bottom)));
        width: 50px;
        min-height: 50px;
        border-radius: 50%;
    }

    .chat-drawer {
        inset: auto var(--page-frame) calc(var(--page-frame) + var(--chat-viewport-offset-bottom, 0px));
        width: auto;
        height: min(calc(var(--chat-viewport-height, 100dvh) - (var(--page-frame) * 2)), 46rem);
        max-height: none;
        border: 1px solid #746c61;
        border-radius: 1rem 1rem 0 0;
        box-shadow: 0 -16px 60px rgba(0, 0, 0, .4);
    }

    .chat-drawer>header {
        flex: 0 0 auto;
        padding: max(.65rem, env(safe-area-inset-top)) .75rem .65rem;
    }

    .chat-drawer .chat-messages {
        flex: 1 1 auto;
        min-height: 0;
        max-height: none;
        padding: .75rem;
        scroll-padding-bottom: 1rem;
    }

    .chat-drawer .chat-suggestions {
        flex: 0 0 auto;
        padding: .15rem .75rem .6rem;
    }

    .chat-drawer form {
        flex: 0 0 auto;
        grid-template-areas: "question send" "meta meta";
        grid-template-columns: minmax(0, 1fr) 50px;
        padding: .65rem .75rem max(.65rem, env(safe-area-inset-bottom));
        background: #f7f0e5;
    }

    .chat-drawer form button {
        align-self: stretch;
    }

    .chat-drawer .chat-compose__meta span {
        display: none;
    }

    .site-footer__meta a {
        display: inline-flex;
        min-height: 44px;
        align-items: center;
    }
}

@media (max-width: 380px) {
    .hero h1 {
        font-size: clamp(2.45rem, 12.8vw, 3.2rem);
    }

    .chat-message {
        grid-template-columns: 20px minmax(0, 1fr);
    }

    .chat-messages {
        padding: .65rem;
    }
}

/* Seven-day editorial route */
.guide__head>div:last-child {
    display: grid;
    justify-items: start;
    gap: 1rem;
}

.guide__editorial-link {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    gap: .65rem;
    padding: .7rem 1rem;
    color: var(--white);
    background: var(--ink);
    font-size: .72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.guide__editorial-link:hover i {
    transform: translateX(.2rem);
}

.guide__editorial-link i {
    transition: transform .2s;
}

.guide__editorial-links {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem 1.25rem;
}

.itinerary-page {
    background: var(--paper);
}

.itinerary-page article,
.itinerary-page section {
    min-width: 0;
}

.itinerary-hero {
    position: relative;
    min-height: min(900px, calc(100svh - var(--page-frame)));
    display: grid;
    align-content: end;
    overflow: hidden;
    color: var(--white);
    background: var(--ink);
}

.itinerary-hero__media,
.itinerary-hero__shade {
    position: absolute;
    inset: 0;
}

.itinerary-hero__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 54%;
}

.itinerary-hero__shade {
    background:
        linear-gradient(90deg, rgba(9, 9, 8, .92) 0%, rgba(9, 9, 8, .65) 50%, rgba(9, 9, 8, .16) 78%),
        linear-gradient(0deg, rgba(9, 9, 8, .96) 0%, transparent 48%);
}

.itinerary-hero__content {
    position: relative;
    z-index: 1;
    width: min(1040px, 100%);
    padding: clamp(8rem, 14vw, 12rem) var(--pad) clamp(8rem, 12vw, 10rem);
}

.breadcrumbs {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .65rem;
    margin-bottom: clamp(2rem, 5vw, 4rem);
    color: rgba(255, 255, 255, .78);
    font-size: .7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.breadcrumbs a {
    text-decoration: underline;
    text-underline-offset: .25rem;
}

.breadcrumbs i {
    font-size: .55rem;
}

.itinerary-hero h1 {
    max-width: 1050px;
    margin: 0;
    font: 600 clamp(3.1rem, 7.2vw, 7.4rem)/.98 var(--display);
    letter-spacing: -.055em;
    text-wrap: balance;
}

.itinerary-hero__lead {
    max-width: 780px;
    margin: 2rem 0 0;
    color: rgba(255, 255, 255, .88);
    font-size: clamp(1.05rem, 1.55vw, 1.35rem);
    line-height: 1.65;
}

.itinerary-reviewed {
    display: flex;
    align-items: center;
    gap: .55rem;
    margin: 1rem 0 0;
    color: rgba(255, 255, 255, .7);
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
}

.itinerary-reviewed i {
    color: var(--sea);
}

.itinerary-hero__actions,
.itinerary-cta>div:last-child {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    margin-top: 2rem;
}

.itinerary-button {
    display: inline-flex;
    min-height: 48px;
    align-items: center;
    justify-content: center;
    gap: .7rem;
    padding: .8rem 1.1rem;
    color: var(--white);
    border: 1px solid rgba(255, 255, 255, .55);
    font-size: .72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .05em;
    transition: color .2s, background .2s, border-color .2s;
}

.itinerary-button:hover,
.itinerary-button--primary {
    color: var(--ink);
    background: var(--white);
    border-color: var(--white);
}

.itinerary-button--primary:hover {
    color: var(--white);
    background: var(--red);
    border-color: var(--red);
}

.itinerary-route-line {
    position: absolute;
    z-index: 2;
    right: 0;
    bottom: 0;
    left: 0;
    display: grid;
    grid-template-columns: minmax(8rem, .28fr) minmax(0, 1fr);
    gap: 1rem;
    padding: 1.1rem var(--pad);
    color: var(--white);
    background: rgba(9, 9, 8, .82);
    border-top: 1px solid rgba(255, 255, 255, .24);
    backdrop-filter: blur(12px);
}

.itinerary-route-line span {
    color: rgba(255, 255, 255, .58);
    font-size: .65rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.itinerary-route-line b {
    font-size: clamp(.8rem, 1.3vw, 1.05rem);
}

.itinerary-scope {
    display: grid;
    grid-template-columns: minmax(230px, .65fr) minmax(0, 1.35fr);
    gap: clamp(2rem, 6vw, 6rem);
    align-items: start;
    padding: clamp(2.2rem, 5vw, 4.5rem) var(--pad);
    color: var(--white);
    background: var(--red);
}

.itinerary-scope>div {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
}

.itinerary-scope i {
    margin-top: .35rem;
    font-size: 1.4rem;
}

.itinerary-scope h2,
.itinerary-scope p {
    margin: 0;
}

.itinerary-scope h2 {
    font: 600 clamp(1.5rem, 2.6vw, 2.5rem)/1.08 var(--display);
}

.itinerary-scope p {
    max-width: 900px;
    font-size: clamp(1rem, 1.45vw, 1.2rem);
}

.itinerary-section-head {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(240px, .75fr);
    gap: 2rem;
    align-items: end;
    margin-bottom: clamp(2.2rem, 5vw, 4.5rem);
}

.itinerary-section-head h2 {
    max-width: 950px;
    margin: 0;
    font: 600 clamp(2.4rem, 5vw, 5.7rem)/1 var(--display);
    letter-spacing: -.045em;
    text-wrap: balance;
}

.itinerary-section-head>span,
.itinerary-section-head>i {
    justify-self: end;
    color: var(--red);
    font: 600 clamp(2.5rem, 6vw, 6rem)/1 var(--display);
}

.itinerary-section-head>p {
    max-width: 600px;
    margin: 0;
    color: rgba(255, 255, 255, .7);
}

.itinerary-section-head--light h2 {
    color: var(--white);
}

.itinerary-facts,
.itinerary-principles__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    border-top: 1px solid var(--ink);
    border-left: 1px solid var(--ink);
}

.itinerary-facts article,
.itinerary-principles__grid article {
    min-height: 260px;
    padding: 1.35rem;
    border-right: 1px solid var(--ink);
    border-bottom: 1px solid var(--ink);
}

.itinerary-facts span,
.itinerary-principles__grid span {
    display: block;
    margin-bottom: 3rem;
    color: var(--red);
    font: 600 .72rem/1 var(--display);
}

.itinerary-facts h3,
.itinerary-principles__grid h3 {
    margin: 0 0 .8rem;
    font: 600 1rem/1.25 var(--display);
}

.itinerary-facts p,
.itinerary-principles__grid p {
    margin: 0;
    color: #5f5a50;
    font-size: .9rem;
}

.itinerary-day-list {
    max-width: 1260px;
    margin: 0 auto;
    padding: 0;
    list-style: none;
}

.itinerary-day-list>li+li {
    margin-top: 1.2rem;
}

.itinerary-day {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(300px, .65fr);
    background: #121210;
    border: 1px solid rgba(255, 255, 255, .2);
}

.itinerary-day__head {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: 90px minmax(0, 1fr);
    gap: 1rem;
    padding: clamp(1.4rem, 3vw, 2.5rem);
    border-bottom: 1px solid rgba(255, 255, 255, .2);
}

.itinerary-day__head>span {
    color: var(--red);
    font: 600 clamp(2.5rem, 5vw, 5.3rem)/.9 var(--display);
}

.itinerary-day__head small,
.itinerary-day__meta small,
.itinerary-day__plan small,
.itinerary-day__note small,
.itinerary-day__stops>small {
    display: block;
    margin-bottom: .55rem;
    color: rgba(255, 255, 255, .52);
    font-size: .64rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .07em;
}

.itinerary-day__head h3 {
    max-width: 900px;
    margin: 0;
    color: var(--white);
    font: 600 clamp(1.65rem, 3.6vw, 3.7rem)/1.08 var(--display);
    letter-spacing: -.035em;
}

.itinerary-day__meta {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: 1fr 1fr;
    border-bottom: 1px solid rgba(255, 255, 255, .2);
}

.itinerary-day__meta>div {
    display: grid;
    grid-template-columns: 32px minmax(110px, .35fr) minmax(0, 1fr);
    gap: .75rem;
    align-items: center;
    min-height: 70px;
    padding: .8rem 1.4rem;
}

.itinerary-day__meta>div+div {
    border-left: 1px solid rgba(255, 255, 255, .2);
}

.itinerary-day__meta i {
    color: var(--red);
}

.itinerary-day__meta small {
    margin: 0;
}

.itinerary-day__meta b {
    color: var(--white);
    font-size: .88rem;
}

.itinerary-day__image {
    grid-column: 1 / -1;
    margin: 0;
    aspect-ratio: 16 / 6;
    overflow: hidden;
    border-bottom: 1px solid rgba(255, 255, 255, .2);
}

.itinerary-day__image picture,
.itinerary-day__image img {
    width: 100%;
    height: 100%;
}

.itinerary-day__image img {
    object-fit: cover;
}

.itinerary-day__summary {
    grid-column: 1 / -1;
    margin: 0;
    padding: clamp(1.4rem, 3vw, 2.5rem);
    color: var(--white);
    border-bottom: 1px solid rgba(255, 255, 255, .2);
    font: 400 clamp(1.05rem, 1.65vw, 1.35rem)/1.65 var(--serif);
}

.itinerary-day__plan {
    display: grid;
    grid-template-columns: 1fr 1fr;
}

.itinerary-day__plan>div {
    padding: clamp(1.25rem, 2.5vw, 2rem);
}

.itinerary-day__plan>div+div {
    border-left: 1px solid rgba(255, 255, 255, .2);
}

.itinerary-day__plan p,
.itinerary-day__note p {
    margin: 0;
    color: rgba(255, 255, 255, .76);
    font-size: .9rem;
}

.itinerary-day__note {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr);
    gap: .8rem;
    padding: clamp(1.25rem, 2.5vw, 2rem);
    background: #22201b;
    border-left: 1px solid rgba(255, 255, 255, .2);
}

.itinerary-day__note i {
    margin-top: .15rem;
    color: var(--sea);
}

.itinerary-day__stops {
    grid-column: 1 / -1;
    padding: 1rem clamp(1.25rem, 2.5vw, 2rem);
    border-top: 1px solid rgba(255, 255, 255, .2);
}

.itinerary-day__stops>div {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
}

.itinerary-day__stops a {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    gap: .5rem;
    padding: .55rem .75rem;
    color: var(--white);
    border: 1px solid rgba(255, 255, 255, .28);
    font-size: .75rem;
    font-weight: 700;
}

.itinerary-day__stops a:hover {
    color: var(--ink);
    background: var(--sea);
    border-color: var(--sea);
}

.itinerary-principles__grid article:nth-child(even) {
    background: var(--white);
}

.itinerary-faq__list {
    border-top: 1px solid var(--ink);
}

.itinerary-faq details {
    border-bottom: 1px solid var(--ink);
}

.itinerary-faq summary {
    display: grid;
    grid-template-columns: 60px minmax(0, 1fr) 44px;
    gap: 1rem;
    align-items: center;
    min-height: 92px;
    padding: 1rem 0;
    cursor: pointer;
    list-style: none;
}

.itinerary-faq summary::-webkit-details-marker {
    display: none;
}

.itinerary-faq summary span {
    color: var(--red);
    font: 600 .7rem/1 var(--display);
}

.itinerary-faq summary b {
    font: 600 clamp(1rem, 1.8vw, 1.35rem)/1.3 var(--display);
}

.itinerary-faq summary i {
    justify-self: center;
    transition: transform .2s;
}

.itinerary-faq details[open] summary i {
    transform: rotate(45deg);
}

.itinerary-faq details>p {
    max-width: 900px;
    margin: 0 0 1.6rem 60px;
    color: #5f5a50;
}

.itinerary-sources__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border-top: 1px solid var(--ink);
    border-left: 1px solid var(--ink);
}

.itinerary-sources__grid a {
    position: relative;
    min-height: 220px;
    padding: 1.5rem;
    border-right: 1px solid var(--ink);
    border-bottom: 1px solid var(--ink);
}

.itinerary-sources__grid i {
    position: absolute;
    top: 1.5rem;
    right: 1.5rem;
    color: var(--red);
}

.itinerary-sources__grid h3 {
    max-width: 75%;
    margin: 0 0 1rem;
    font: 600 1rem/1.3 var(--display);
}

.itinerary-sources__grid p {
    max-width: 620px;
    margin: 0;
    color: #5f5a50;
}

.itinerary-sources__grid a:hover {
    color: var(--white);
    background: var(--red);
}

.itinerary-sources__grid a:hover p,
.itinerary-sources__grid a:hover i {
    color: var(--white);
}

.itinerary-cta {
    display: grid;
    grid-template-columns: minmax(0, 1.3fr) minmax(280px, .7fr);
    gap: 3rem;
    align-items: end;
}

.itinerary-cta h2 {
    max-width: 980px;
    margin: 0;
    color: var(--white);
    font: 600 clamp(2.6rem, 5.8vw, 6.3rem)/1 var(--display);
    letter-spacing: -.05em;
}

.itinerary-cta p {
    max-width: 740px;
    color: rgba(255, 255, 255, .7);
}

.itinerary-cta>div:last-child {
    justify-content: flex-end;
}

@media (max-width: 1050px) {
    .itinerary-facts,
    .itinerary-principles__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .itinerary-day {
        grid-template-columns: 1fr;
    }

    .itinerary-day__note {
        border-top: 1px solid rgba(255, 255, 255, .2);
        border-left: 0;
    }

    .itinerary-cta {
        grid-template-columns: 1fr;
    }

    .itinerary-cta>div:last-child {
        justify-content: flex-start;
    }
}

@media (max-width: 760px) {
    .itinerary-hero {
        min-height: 760px;
    }

    .itinerary-hero__shade {
        background: linear-gradient(0deg, rgba(9, 9, 8, .98) 0%, rgba(9, 9, 8, .62) 68%, rgba(9, 9, 8, .3) 100%);
    }

    .itinerary-hero__content {
        padding-right: 1rem;
        padding-bottom: 9.5rem;
        padding-left: 1rem;
    }

    .itinerary-hero h1 {
        font-size: clamp(2.7rem, 12vw, 4.8rem);
    }

    .itinerary-route-line {
        grid-template-columns: 1fr;
        gap: .35rem;
        padding-right: 1rem;
        padding-left: 1rem;
    }

    .itinerary-scope,
    .itinerary-section-head {
        grid-template-columns: 1fr;
    }

    .itinerary-section-head>span,
    .itinerary-section-head>i {
        display: none;
    }

    .itinerary-day__meta,
    .itinerary-day__plan {
        grid-template-columns: 1fr;
    }

    .itinerary-day__meta>div+div,
    .itinerary-day__plan>div+div {
        border-top: 1px solid rgba(255, 255, 255, .2);
        border-left: 0;
    }

    .itinerary-day__image {
        aspect-ratio: 4 / 3;
    }

    .itinerary-sources__grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 520px) {
    .itinerary-hero__actions,
    .itinerary-cta>div:last-child {
        display: grid;
        grid-template-columns: 1fr;
    }

    .itinerary-button {
        width: 100%;
    }

    .itinerary-scope {
        padding-right: 1rem;
        padding-left: 1rem;
    }

    .itinerary-facts,
    .itinerary-principles__grid {
        grid-template-columns: 1fr;
    }

    .itinerary-facts article,
    .itinerary-principles__grid article {
        min-height: auto;
    }

    .itinerary-facts span,
    .itinerary-principles__grid span {
        margin-bottom: 1.5rem;
    }

    .itinerary-day__head {
        grid-template-columns: 54px minmax(0, 1fr);
        padding: 1rem;
    }

    .itinerary-day__head>span {
        font-size: 2.2rem;
    }

    .itinerary-day__head h3 {
        font-size: 1.45rem;
    }

    .itinerary-day__meta>div {
        grid-template-columns: 24px minmax(82px, .38fr) minmax(0, 1fr);
        padding: .8rem 1rem;
    }

    .itinerary-day__summary,
    .itinerary-day__plan>div,
    .itinerary-day__note,
    .itinerary-day__stops {
        padding-right: 1rem;
        padding-left: 1rem;
    }

    .itinerary-day__stops a {
        width: 100%;
        justify-content: space-between;
    }

    .itinerary-faq summary {
        grid-template-columns: 34px minmax(0, 1fr) 30px;
        gap: .55rem;
    }

    .itinerary-faq details>p {
        margin-left: 34px;
    }
}

.drive__guide-link {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 48px;
    align-items: center;
    gap: 1rem;
    width: min(100% - 2rem, 72rem);
    min-height: 72px;
    margin: 1.5rem auto 2rem;
    padding: .85rem 1rem .85rem 1.2rem;
    border: 1px solid rgba(255, 255, 255, .3);
    color: #fff;
    text-decoration: none;
    background: rgba(255, 255, 255, .06);
    transition: border-color .2s ease, background-color .2s ease, transform .2s ease;
}

.drive__guide-link span {
    display: grid;
    gap: .2rem;
}

.drive__guide-link b {
    font-size: 1rem;
}

.drive__guide-link small {
    color: rgba(255, 255, 255, .76);
    line-height: 1.45;
}

.drive__guide-link>i {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    color: #111;
    background: var(--red);
}

.drive__guide-link:hover,
.drive__guide-link:focus-visible {
    border-color: var(--red);
    background: rgba(216, 25, 18, .13);
    transform: translateY(-2px);
}

@media (max-width: 540px) {
    .drive__guide-link {
        width: calc(100% - 1rem);
        margin-top: 1rem;
        margin-bottom: 1.25rem;
        padding-left: .9rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .drive__guide-link {
        transition: none;
    }
}

.car-rental-page .breadcrumbs a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
}
