/* GoEurope.info — restored travel notebook, Bootstrap 5.3.8 foundation */
@font-face {
    font-family: "Open Sans";
    src: url("/fonts/open-sans-v34-latin-300.woff2") format("woff2");
    font-style: normal;
    font-weight: 300;
    font-display: swap;
}

@font-face {
    font-family: "Open Sans";
    src: url("/fonts/open-sans-v34-latin-regular.woff2") format("woff2");
    font-style: normal;
    font-weight: 400;
    font-display: swap;
}

@font-face {
    font-family: "Open Sans";
    src: url("/fonts/open-sans-v34-latin-700.woff2") format("woff2");
    font-style: normal;
    font-weight: 700;
    font-display: swap;
}

@font-face {
    font-family: "Bad Script";
    src: url("/fonts/goeurope-info/bad-script-v18.woff2") format("woff2");
    font-style: normal;
    font-weight: 400;
    font-display: swap;
}

:root {
    --ge-ink: #243753;
    --ge-ink-soft: #52647c;
    --ge-blue: #7799cc;
    --ge-blue-deep: #486b9e;
    --ge-blue-light: #b0cbe9;
    --ge-sky: #dffefe;
    --ge-paper: #fffdf7;
    --ge-paper-blue: #eef7fb;
    --ge-line: rgba(72, 107, 158, .23);
    --ge-coral: #c86b5e;
    --ge-shadow: 0 22px 55px rgba(35, 56, 84, .13);
}

html {
    scroll-behavior: smooth;
}

body.ge-site {
    min-width: 320px;
    margin: 0;
    color: var(--ge-ink);
    background: #e7f2f8 url("/images/goeurope-info/background.jpg") center top / cover fixed no-repeat;
    font-family: "Open Sans", Arial, sans-serif;
    font-size: 1rem;
    line-height: 1.72;
    -webkit-font-smoothing: antialiased;
}

body.ge-site::before {
    position: fixed;
    z-index: -1;
    inset: 0;
    content: "";
    background: rgba(231, 242, 248, .8);
    pointer-events: none;
}

.ge-site a {
    color: var(--ge-blue-deep);
    text-underline-offset: .18em;
}

.ge-site a:hover {
    color: #294f85;
}

.ge-site h1,
.ge-site h2,
.ge-site h3,
.ge-site h4 {
    color: var(--ge-ink);
    font-weight: 700;
    letter-spacing: -.035em;
}

.ge-site h1 {
    font-family: "Bad Script", cursive;
    font-size: clamp(3rem, 7vw, 6rem);
    font-weight: 400;
    line-height: 1.08;
}

.ge-site h2 {
    font-size: clamp(1.8rem, 3vw, 2.7rem);
    line-height: 1.15;
}

.ge-site h3 {
    font-size: 1.25rem;
    line-height: 1.28;
}

.ge-site img {
    max-width: 100%;
}

.ge-site code {
    color: var(--ge-blue-deep);
    background: rgba(119, 153, 204, .12);
    padding: .1rem .35rem;
    border-radius: .25rem;
}

.ge-skip {
    position: fixed;
    z-index: 1100;
    top: .75rem;
    left: .75rem;
    padding: .7rem 1rem;
    color: #fff !important;
    background: var(--ge-ink);
    border-radius: .35rem;
    transform: translateY(-180%);
}

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

.ge-site :focus-visible {
    outline: 3px solid #d47b42;
    outline-offset: 3px;
}

.ge-header {
    position: relative;
    z-index: 1030;
    background: rgba(170, 204, 238, .96);
    border-bottom: 1px solid rgba(36, 55, 83, .14);
    box-shadow: 0 8px 28px rgba(36, 55, 83, .08);
}

.ge-header__inner {
    min-height: 78px;
}

.ge-brand {
    display: flex;
    align-items: center;
    padding: .45rem 0;
}

.ge-brand img {
    display: block;
    width: 222px;
    height: 51px;
    object-fit: contain;
}

.ge-header .nav-link {
    position: relative;
    padding: .7rem .72rem !important;
    color: #233b5c;
    font-size: .85rem;
    font-weight: 700;
    letter-spacing: .035em;
    text-transform: uppercase;
}

.ge-header .nav-link::after {
    margin-left: .35rem;
}

.ge-header .nav-link.active::before,
.ge-header .nav-link:not(.dropdown-toggle):hover::before {
    position: absolute;
    right: .72rem;
    bottom: .35rem;
    left: .72rem;
    height: 2px;
    content: "";
    background: var(--ge-blue-deep);
}

.ge-menu-button {
    border: 1px solid rgba(36, 55, 83, .28);
    border-radius: 0;
}

.ge-destination-menu {
    min-width: 22rem;
    padding: .65rem;
    background: var(--ge-paper);
    border: 0;
    border-radius: .25rem;
    box-shadow: var(--ge-shadow);
    columns: 2;
}

.ge-destination-menu li {
    break-inside: avoid;
}

.ge-destination-menu .dropdown-item {
    padding: .55rem .7rem;
    color: var(--ge-ink);
    font-size: .92rem;
    font-weight: 600;
}

.ge-destination-menu .dropdown-item:hover,
.ge-destination-menu .dropdown-item:focus {
    color: var(--ge-ink);
    background: var(--ge-sky);
}

.ge-random-link {
    padding: .55rem .85rem;
    color: #fff !important;
    background: var(--ge-blue-deep);
    border: 1px solid var(--ge-blue-deep);
    border-radius: 999px;
    font-size: .82rem;
    font-weight: 700;
    letter-spacing: .025em;
    text-transform: uppercase;
}

.ge-random-link:hover {
    color: #fff !important;
    background: var(--ge-ink);
    border-color: var(--ge-ink);
}

.ge-kicker {
    margin-bottom: .65rem;
    color: var(--ge-blue-deep);
    font-size: .76rem;
    font-weight: 700;
    letter-spacing: .14em;
    line-height: 1.4;
    text-transform: uppercase;
}

.ge-home-hero {
    padding: clamp(2.8rem, 6vw, 5.5rem) 0 clamp(3.5rem, 7vw, 6rem);
    background: linear-gradient(180deg, rgba(223, 254, 254, .74), rgba(231, 242, 248, .92));
}

.ge-home-hero__heading {
    max-width: 930px;
    margin: 0 auto clamp(2.2rem, 4vw, 3.4rem);
    text-align: center;
}

.ge-home-hero__heading h1 {
    margin: 0 0 .8rem;
}

.ge-home-hero__heading > p:last-child {
    margin: 0;
    color: var(--ge-ink-soft);
    font-size: 1.15rem;
}

.ge-carousel {
    height: 100%;
    overflow: hidden;
    background: var(--ge-blue-light);
    border: .55rem solid rgba(255, 255, 255, .9);
    border-radius: 1.25rem;
    box-shadow: var(--ge-shadow);
}

.ge-carousel .carousel-inner,
.ge-carousel .carousel-item,
.ge-carousel .carousel-item > a {
    height: 100%;
    min-height: 440px;
}

.ge-carousel .carousel-item > a {
    display: block;
    position: relative;
    color: #fff;
}

.ge-carousel .carousel-item > a::after {
    position: absolute;
    inset: 0;
    content: "";
    background: linear-gradient(180deg, transparent 48%, rgba(22, 38, 59, .78));
}

.ge-carousel img {
    height: 100%;
    min-height: 440px;
    max-height: 520px;
    object-fit: cover;
}

.ge-carousel__caption {
    position: absolute;
    z-index: 2;
    right: clamp(1.5rem, 4vw, 3rem);
    bottom: 2.2rem;
    left: clamp(1.5rem, 4vw, 3rem);
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
}

.ge-carousel__caption > span {
    font-family: "Bad Script", cursive;
    font-size: clamp(2rem, 4vw, 3.4rem);
    line-height: 1.1;
}

.ge-carousel__caption small {
    padding-bottom: .45rem;
    font-size: .82rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.ge-carousel .carousel-indicators {
    justify-content: flex-start;
    margin-right: clamp(1.5rem, 4vw, 3rem);
    margin-bottom: .85rem;
    margin-left: clamp(1.5rem, 4vw, 3rem);
}

.ge-carousel .carousel-control-prev,
.ge-carousel .carousel-control-next {
    width: 9%;
}

.ge-discovery {
    position: relative;
    height: 100%;
    min-height: 440px;
    padding: clamp(2rem, 4vw, 3rem);
    overflow: hidden;
    background: var(--ge-paper);
    border: 1px solid rgba(72, 107, 158, .18);
    border-radius: .35rem 2.4rem .35rem .35rem;
    box-shadow: var(--ge-shadow);
}

.ge-discovery::before,
.ge-notebook::before,
.ge-contact-card::before {
    position: absolute;
    inset: 0;
    content: "";
    background-image: repeating-linear-gradient(transparent 0, transparent 31px, rgba(119, 153, 204, .1) 32px);
    pointer-events: none;
}

.ge-discovery > *,
.ge-notebook > *,
.ge-contact-card > * {
    position: relative;
}

.ge-discovery h2 {
    max-width: 12ch;
    margin-bottom: 1.2rem;
}

.ge-discovery p:not(.ge-kicker) {
    color: var(--ge-ink-soft);
}

.ge-discovery__stamp {
    position: absolute;
    top: 1.1rem;
    right: 1.2rem;
    display: grid;
    width: 3.15rem;
    height: 3.15rem;
    place-items: center;
    color: var(--ge-coral);
    border: 2px solid currentcolor;
    border-radius: 50%;
    font-family: "Bad Script", cursive;
    font-size: 1.2rem;
    font-weight: 700;
    transform: rotate(8deg);
}

.ge-btn-primary,
.ge-btn-outline {
    padding: .78rem 1.15rem;
    border-radius: .25rem;
    font-size: .85rem;
    font-weight: 700;
    letter-spacing: .045em;
    text-transform: uppercase;
}

.ge-btn-primary {
    color: #fff !important;
    background: var(--ge-blue-deep);
    border: 1px solid var(--ge-blue-deep);
}

.ge-btn-primary:hover {
    color: #fff !important;
    background: var(--ge-ink);
    border-color: var(--ge-ink);
}

.ge-btn-outline {
    color: var(--ge-ink) !important;
    background: transparent;
    border: 1px solid var(--ge-blue-deep);
}

.ge-btn-outline:hover {
    color: #fff !important;
    background: var(--ge-blue-deep);
}

.ge-discovery__quick {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem .8rem;
    margin-top: 1.8rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--ge-line);
    font-size: .88rem;
}

.ge-discovery__quick span {
    flex-basis: 100%;
    color: var(--ge-ink-soft);
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.ge-discovery__quick a {
    font-weight: 700;
}

.ge-intro-band {
    padding: clamp(3.5rem, 7vw, 6rem) 0;
    color: #fff;
    background: var(--ge-blue-deep);
}

.ge-intro-band h2 {
    color: #fff;
}

.ge-intro-band p:not(.ge-handwritten) {
    max-width: 760px;
    margin-bottom: 0;
    color: rgba(255, 255, 255, .82);
    font-size: 1.08rem;
}

.ge-handwritten {
    color: #fff;
    font-family: "Bad Script", cursive;
    font-size: clamp(1.8rem, 3vw, 2.45rem);
    line-height: 1.45;
    transform: rotate(-2deg);
}

.ge-section {
    padding: clamp(4.5rem, 8vw, 7.5rem) 0;
    background: rgba(255, 255, 255, .92);
}

.ge-section--paper {
    background: rgba(255, 253, 247, .95);
}

.ge-section-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 2rem;
    margin-bottom: clamp(2.2rem, 4vw, 3.8rem);
}

.ge-section-heading h2,
.ge-section-heading p {
    margin-bottom: 0;
}

.ge-section-heading > p,
.ge-section-heading > .ge-text-link {
    max-width: 450px;
}

.ge-country-index {
    border-top: 1px solid var(--ge-line);
}

.ge-country-index__item {
    display: grid;
    grid-template-columns: 3.2rem minmax(10rem, .8fr) 1.4fr auto;
    align-items: center;
    gap: 1.2rem;
    min-height: 78px;
    padding: 1rem .8rem;
    color: var(--ge-ink) !important;
    border-bottom: 1px solid var(--ge-line);
    text-decoration: none;
    transition: background-color .2s ease, padding-left .2s ease;
}

.ge-country-index__item:hover {
    padding-left: 1.25rem;
    background: var(--ge-paper-blue);
}

.ge-country-index__number {
    color: var(--ge-blue);
    font-size: .73rem;
    font-weight: 700;
    letter-spacing: .1em;
}

.ge-country-index__name {
    font-size: 1.3rem;
    font-weight: 700;
}

.ge-country-index__cities {
    color: var(--ge-ink-soft);
    font-size: .92rem;
}

.ge-postcard {
    height: 100%;
    padding: .65rem .65rem 1.6rem;
    background: #fff;
    box-shadow: 0 14px 38px rgba(36, 55, 83, .11);
    transform: rotate(-.45deg);
}

.ge-postcard:nth-child(even) {
    transform: rotate(.45deg);
}

.ge-postcard__image {
    display: block;
    height: 270px;
    margin-bottom: 1.25rem;
    overflow: hidden;
    background: var(--ge-blue-light);
}

.ge-postcard__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .45s ease;
}

.ge-postcard:hover .ge-postcard__image img {
    transform: scale(1.025);
}

.ge-postcard > p,
.ge-postcard > h3 {
    margin-right: .9rem;
    margin-left: .9rem;
}

.ge-postcard__place {
    margin-bottom: .3rem;
    color: var(--ge-blue-deep);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.ge-postcard h3 {
    margin-bottom: .55rem;
    font-family: "Bad Script", cursive;
    font-size: 2rem;
    font-weight: 400;
}

.ge-postcard h3 a {
    color: var(--ge-ink);
    text-decoration: none;
}

.ge-postcard p:last-child {
    color: var(--ge-ink-soft);
    font-size: .92rem;
}

.ge-text-link {
    color: var(--ge-blue-deep) !important;
    font-size: .82rem;
    font-weight: 700;
    letter-spacing: .045em;
    text-decoration: none;
    text-transform: uppercase;
}

.ge-text-link i {
    display: inline-block;
    margin-left: .3rem;
    transition: transform .2s ease;
}

.ge-text-link:hover i {
    transform: translateX(.25rem);
}

.ge-home-note {
    padding: clamp(3.5rem, 7vw, 6rem) 0;
    background: rgba(223, 254, 254, .9);
}

.ge-home-note__inner {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 2rem;
}

.ge-home-note__inner h2,
.ge-home-note__inner p {
    margin-bottom: .45rem;
}

.ge-home-note__mark {
    display: grid;
    width: 5.2rem;
    height: 5.2rem;
    place-items: center;
    color: var(--ge-blue-deep);
    background: #fff;
    border: 1px solid var(--ge-line);
    border-radius: 50%;
    font-size: 2rem;
    transform: rotate(-5deg);
}

.ge-page-mast,
.ge-city-mast {
    padding: clamp(3.2rem, 7vw, 6rem) 0 clamp(3.8rem, 7vw, 6.5rem);
    background: linear-gradient(135deg, rgba(223, 254, 254, .92), rgba(176, 203, 233, .9));
}

.ge-page-mast--editorial {
    padding-bottom: clamp(4rem, 8vw, 7rem);
}

.ge-page-mast--editorial .container > .ge-kicker,
.ge-page-mast--editorial .container > h1,
.ge-page-mast--editorial .container > .ge-page-mast__lead {
    max-width: 850px;
}

.ge-page-mast h1,
.ge-city-mast h1 {
    margin: 0 0 1rem;
}

.ge-page-mast__lead,
.ge-city-mast__strapline {
    margin: 0;
    color: var(--ge-ink);
    font-size: clamp(1.12rem, 2vw, 1.36rem);
    font-weight: 300;
    line-height: 1.6;
}

.ge-breadcrumb {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
    margin-bottom: clamp(2rem, 5vw, 4rem);
    color: var(--ge-ink-soft);
    font-size: .74rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.ge-breadcrumb a {
    color: var(--ge-blue-deep);
    text-decoration: none;
}

.ge-country-guides {
    min-height: 45vh;
}

.ge-destination__image {
    position: relative;
    display: block;
    height: clamp(290px, 35vw, 430px);
    overflow: hidden;
    background: var(--ge-blue-light);
    border: .45rem solid #fff;
    border-radius: 1.1rem;
    box-shadow: var(--ge-shadow);
}

.ge-destination__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .45s ease;
}

.ge-destination__image:hover img {
    transform: scale(1.025);
}

.ge-destination__image > span {
    position: absolute;
    right: 1rem;
    bottom: 1rem;
    display: grid;
    width: 3rem;
    height: 3rem;
    place-items: center;
    color: var(--ge-ink);
    background: rgba(255, 253, 247, .92);
    border-radius: 50%;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .08em;
}

.ge-destination__body {
    padding: 1.8rem .5rem 0;
}

.ge-destination__body h2 {
    margin-bottom: .6rem;
    font-family: "Bad Script", cursive;
    font-weight: 400;
}

.ge-destination__body h2 a {
    color: var(--ge-ink);
    text-decoration: none;
}

.ge-destination__body > p:not(.ge-kicker) {
    color: var(--ge-ink-soft);
}

.ge-inline-list {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    margin: 1.15rem 0 1.4rem;
    padding: 0;
    list-style: none;
}

.ge-inline-list li {
    padding: .35rem .65rem;
    color: var(--ge-ink);
    background: var(--ge-paper-blue);
    border: 1px solid var(--ge-line);
    border-radius: 999px;
    font-size: .73rem;
}

.ge-country-note {
    display: grid;
    grid-template-columns: minmax(13rem, .7fr) 1.4fr auto;
    align-items: center;
    gap: 2rem;
    margin-top: clamp(4rem, 8vw, 7rem);
    padding: clamp(2rem, 4vw, 3.2rem);
    color: #fff;
    background: var(--ge-blue-deep);
    border-radius: .4rem;
}

.ge-country-note .ge-handwritten {
    font-size: 1.8rem;
}

.ge-country-note p {
    margin: 0;
    color: rgba(255, 255, 255, .85);
}

.ge-country-note .ge-btn-primary {
    white-space: nowrap;
    background: #fff;
    border-color: #fff;
    color: var(--ge-ink) !important;
}

.ge-city-mast {
    padding-bottom: clamp(5rem, 11vw, 9rem);
}

.ge-city-mast__strapline {
    max-width: 720px;
}

.ge-city-mast__facts {
    display: grid;
    gap: .5rem;
    padding-left: 1.5rem;
    border-left: 2px solid rgba(72, 107, 158, .3);
    color: var(--ge-ink-soft);
    font-size: .88rem;
}

.ge-city-mast__facts i {
    width: 1.35rem;
    color: var(--ge-blue-deep);
}

.ge-city-hero {
    position: relative;
    margin: clamp(-5rem, -8vw, -4rem) 0 0;
    padding: .65rem .65rem 0;
    background: #fff;
    box-shadow: var(--ge-shadow);
    transform: rotate(-.25deg);
}

.ge-city-hero img {
    display: block;
    width: 100%;
    height: clamp(360px, 54vw, 680px);
    object-fit: cover;
}

.ge-city-hero figcaption,
.ge-gallery__item figcaption,
.ge-about__photo figcaption {
    padding: .75rem .55rem .85rem;
    color: var(--ge-ink-soft);
    font-family: "Bad Script", cursive;
    font-size: .92rem;
}

.ge-city-layout {
    padding-top: clamp(4rem, 8vw, 7rem);
    padding-bottom: clamp(4rem, 8vw, 7rem);
}

.ge-prose {
    color: var(--ge-ink-soft);
}

.ge-prose h2 {
    color: var(--ge-ink);
}

.ge-prose p {
    margin-bottom: 1.25rem;
}

.ge-prose a {
    font-weight: 700;
}

.ge-prose--opening > p:not(.ge-kicker):first-of-type,
.ge-prose--large > p:first-of-type {
    color: var(--ge-ink);
    font-size: 1.16rem;
    line-height: 1.76;
}

.ge-prose--large h2:not(:first-child) {
    margin-top: 3.5rem;
}

.ge-guide-section {
    margin-top: clamp(4rem, 7vw, 6.5rem);
    padding-top: clamp(3rem, 5vw, 4.5rem);
    border-top: 1px solid var(--ge-line);
}

.ge-highlights {
    margin-top: 2.2rem;
    border-top: 1px solid var(--ge-line);
}

.ge-highlight {
    display: grid;
    grid-template-columns: 3.2rem 1fr;
    gap: 1.2rem;
    padding: 1.7rem 0;
    border-bottom: 1px solid var(--ge-line);
}

.ge-highlight > span {
    color: var(--ge-blue);
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .1em;
}

.ge-highlight h3 {
    margin-bottom: .45rem;
}

.ge-highlight p {
    margin: 0;
    color: var(--ge-ink-soft);
}

.ge-guide-section--split {
    display: grid;
    grid-template-columns: minmax(12rem, .75fr) 1.4fr;
    gap: 2rem;
}

.ge-guide-section--split h2 {
    font-size: 1.8rem;
}

.ge-itinerary {
    margin-top: clamp(4rem, 7vw, 6.5rem);
    padding: clamp(2rem, 5vw, 3.6rem);
    color: #fff;
    background: var(--ge-ink);
    border-radius: .35rem;
}

.ge-itinerary h2,
.ge-itinerary h3,
.ge-itinerary .ge-kicker {
    color: #fff;
}

.ge-itinerary__intro > p:last-child {
    color: rgba(255, 255, 255, .72);
}

.ge-itinerary__steps {
    margin: 2.4rem 0 0;
    padding: 0;
    list-style: none;
    counter-reset: route-step;
}

.ge-itinerary__steps li {
    display: grid;
    grid-template-columns: 5.5rem 1fr;
    gap: 1.25rem;
    padding: 1.4rem 0;
    border-top: 1px solid rgba(255, 255, 255, .18);
}

.ge-itinerary__time {
    color: var(--ge-blue-light);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.ge-itinerary__steps h3 {
    font-size: 1.05rem;
}

.ge-itinerary__steps p {
    margin: 0;
    color: rgba(255, 255, 255, .76);
    font-size: .91rem;
}

.ge-city-aside {
    position: sticky;
    top: 2rem;
}

.ge-notebook,
.ge-contact-card {
    position: relative;
    padding: 2rem;
    overflow: hidden;
    background: var(--ge-paper);
    border: 1px solid var(--ge-line);
    box-shadow: 0 14px 35px rgba(36, 55, 83, .08);
}

.ge-notebook + .ge-notebook {
    margin-top: 1.4rem;
}

.ge-notebook--blue {
    background: var(--ge-paper-blue);
    transform: rotate(.35deg);
}

.ge-notebook h2 {
    font-size: 1.45rem;
}

.ge-notebook ul {
    margin: 1.4rem 0 0;
    padding-left: 1.2rem;
    color: var(--ge-ink-soft);
    font-size: .9rem;
}

.ge-notebook li + li {
    margin-top: .8rem;
}

.ge-check-list {
    padding: 0 !important;
    list-style: none;
}

.ge-check-list li {
    display: flex;
    gap: .65rem;
}

.ge-check-list i {
    color: var(--ge-blue-deep);
    font-size: 1.1rem;
}

.ge-random-panel {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: .85rem;
    margin-top: 1.4rem;
    padding: 1rem;
    color: #fff !important;
    background: var(--ge-blue-deep);
    text-decoration: none;
}

.ge-random-panel > i:first-child {
    font-size: 1.45rem;
}

.ge-random-panel small,
.ge-random-panel span {
    display: block;
}

.ge-random-panel small {
    color: rgba(255, 255, 255, .7);
    font-size: .66rem;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.ge-gallery {
    padding: clamp(4.5rem, 8vw, 7.5rem) 0;
    background: rgba(238, 247, 251, .97);
}

.ge-gallery__grid {
    columns: 3 300px;
    column-gap: 1.3rem;
}

.ge-gallery__item {
    display: inline-block;
    width: 100%;
    margin: 0 0 1.3rem;
    padding: .45rem .45rem 0;
    background: #fff;
    box-shadow: 0 10px 28px rgba(36, 55, 83, .1);
    break-inside: avoid;
}

.ge-gallery__item:nth-child(3n + 1) {
    transform: rotate(-.3deg);
}

.ge-gallery__item:nth-child(3n + 2) {
    transform: rotate(.25deg);
}

.ge-gallery__item img {
    display: block;
    width: 100%;
    height: auto;
}

.ge-sources {
    padding: clamp(3.5rem, 7vw, 6rem) 0;
    background: rgba(255, 253, 247, .96);
}

.ge-source-links {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
    margin: 1.5rem 0 0;
    padding: 0;
    list-style: none;
}

.ge-source-links a {
    display: inline-flex;
    gap: .45rem;
    align-items: center;
    padding: .58rem .8rem;
    color: var(--ge-ink);
    background: #fff;
    border: 1px solid var(--ge-line);
    border-radius: 999px;
    font-size: .78rem;
    font-weight: 700;
    text-decoration: none;
}

.ge-source-links a:hover {
    background: var(--ge-sky);
}

.ge-about__photo {
    margin: 0 0 1.6rem;
    padding: .55rem .55rem 0;
    background: #fff;
    box-shadow: var(--ge-shadow);
    transform: rotate(1deg);
}

.ge-about__photo img {
    display: block;
    width: 100%;
    min-height: 360px;
    object-fit: cover;
}

.ge-stat-list {
    margin: 1.5rem 0 2rem;
}

.ge-stat-list > div {
    display: grid;
    grid-template-columns: 4rem 1fr;
    align-items: baseline;
    gap: 1rem;
    padding: .75rem 0;
    border-top: 1px solid var(--ge-line);
}

.ge-stat-list dt {
    color: var(--ge-blue-deep);
    font-family: "Bad Script", cursive;
    font-size: 2rem;
    font-weight: 400;
}

.ge-stat-list dd {
    margin: 0;
    color: var(--ge-ink-soft);
    font-size: .88rem;
}

.ge-contact-card {
    min-height: 360px;
    padding: clamp(2rem, 5vw, 3.3rem);
}

.ge-contact-card__icon {
    display: grid;
    width: 4.4rem;
    height: 4.4rem;
    margin-bottom: 2.2rem;
    place-items: center;
    color: var(--ge-blue-deep);
    background: var(--ge-sky);
    border-radius: 50%;
    font-size: 1.8rem;
}

.ge-contact-card h2 {
    font-size: clamp(1.35rem, 3vw, 2rem);
    overflow-wrap: anywhere;
}

.ge-section-heading--compact {
    margin-bottom: 2rem;
}

.ge-airport-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border-top: 1px solid var(--ge-line);
}

.ge-airport-list > a {
    display: grid;
    grid-template-columns: 3.7rem 1fr auto;
    align-items: center;
    gap: .8rem;
    min-height: 78px;
    padding: .8rem;
    color: var(--ge-ink);
    border-right: 1px solid var(--ge-line);
    border-bottom: 1px solid var(--ge-line);
    text-decoration: none;
}

.ge-airport-list > a:nth-child(even) {
    border-right: 0;
}

.ge-airport-list > a:hover {
    background: var(--ge-paper-blue);
}

.ge-airport-list__code {
    display: grid;
    width: 3rem;
    height: 3rem;
    place-items: center;
    color: #fff;
    background: var(--ge-blue-deep);
    border-radius: 50%;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .08em;
}

.ge-airport-list strong,
.ge-airport-list small {
    display: block;
}

.ge-airport-list strong {
    font-size: .92rem;
}

.ge-airport-list small {
    color: var(--ge-ink-soft);
    font-size: .72rem;
}

.ge-flight-checklist {
    position: sticky;
    top: 2rem;
    padding: clamp(2rem, 4vw, 3rem);
    color: #fff;
    background: var(--ge-ink);
}

.ge-flight-checklist h2,
.ge-flight-checklist .ge-kicker {
    color: #fff;
}

.ge-flight-checklist ol {
    margin: 2rem 0;
    padding: 0;
    list-style: none;
    counter-reset: flight-check;
}

.ge-flight-checklist li {
    position: relative;
    padding: 1.1rem 0 1.1rem 2.9rem;
    border-top: 1px solid rgba(255, 255, 255, .17);
    counter-increment: flight-check;
}

.ge-flight-checklist li::before {
    position: absolute;
    top: 1rem;
    left: 0;
    content: "0" counter(flight-check);
    color: var(--ge-blue-light);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .08em;
}

.ge-flight-checklist strong,
.ge-flight-checklist span {
    display: block;
}

.ge-flight-checklist strong {
    color: #fff;
}

.ge-flight-checklist span,
.ge-flight-checklist__note {
    color: rgba(255, 255, 255, .72);
    font-size: .86rem;
}

.ge-flight-checklist__note {
    padding-top: 1.4rem;
    border-top: 1px solid rgba(255, 255, 255, .17);
}

.ge-error {
    display: grid;
    min-height: 65vh;
    padding: 6rem 0;
    place-items: center;
    text-align: center;
    background: rgba(223, 254, 254, .88);
}

.ge-error .container {
    max-width: 720px;
}

.ge-error__code {
    margin: 0;
    color: rgba(72, 107, 158, .16);
    font-family: "Bad Script", cursive;
    font-size: clamp(7rem, 20vw, 15rem);
    line-height: .7;
}

.ge-error__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .8rem;
    margin-top: 2rem;
}

.ge-footer {
    padding: clamp(3.5rem, 7vw, 5.5rem) 0 1.5rem;
    color: rgba(255, 255, 255, .76);
    background: var(--ge-ink);
}

.ge-footer__logo {
    display: block;
    width: 222px;
    height: 51px;
    margin-bottom: 1.25rem;
    object-fit: contain;
    opacity: .92;
}

.ge-footer__note {
    max-width: 470px;
    font-size: .9rem;
}

.ge-footer__heading {
    margin-bottom: 1rem;
    color: #fff !important;
    font-size: .78rem !important;
    letter-spacing: .11em !important;
    text-transform: uppercase;
}

.ge-footer__links {
    margin: 0;
    padding: 0;
    list-style: none;
}

.ge-footer__links li + li {
    margin-top: .45rem;
}

.ge-footer__links a {
    color: rgba(255, 255, 255, .76);
    font-size: .88rem;
    text-decoration: none;
}

.ge-footer__links a:hover {
    color: #fff;
    text-decoration: underline;
}

.ge-footer__bar {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 3.5rem;
    padding-top: 1.4rem;
    color: rgba(255, 255, 255, .5);
    border-top: 1px solid rgba(255, 255, 255, .14);
    font-size: .72rem;
}

@media (max-width: 991.98px) {
    .ge-header__inner {
        min-height: 70px;
    }

    .ge-brand img {
        width: 187px;
        height: auto;
    }

    .ge-header .navbar-collapse {
        padding: 1rem 0 1.35rem;
        border-top: 1px solid rgba(36, 55, 83, .14);
    }

    .ge-header .nav-link {
        padding: .65rem 0 !important;
    }

    .ge-header .nav-link.active::before,
    .ge-header .nav-link:not(.dropdown-toggle):hover::before {
        display: none;
    }

    .ge-destination-menu {
        min-width: 0;
        columns: 2;
        box-shadow: none;
    }

    .ge-random-link {
        display: inline-flex;
        align-items: center;
        gap: .4rem;
        margin-top: .5rem;
    }

    .ge-carousel .carousel-inner,
    .ge-carousel .carousel-item,
    .ge-carousel .carousel-item > a,
    .ge-carousel img {
        min-height: 380px;
    }

    .ge-discovery {
        min-height: 0;
    }

    .ge-country-note,
    .ge-home-note__inner {
        grid-template-columns: 1fr;
    }

    .ge-country-note .ge-btn-primary,
    .ge-home-note__inner .ge-btn-outline {
        justify-self: start;
    }

    .ge-city-mast__facts {
        padding: 1rem 0 0;
        border-top: 1px solid var(--ge-line);
        border-left: 0;
    }

    .ge-city-aside,
    .ge-flight-checklist {
        position: static;
    }
}

@media (max-width: 767.98px) {
    body.ge-site {
        line-height: 1.66;
    }

    /* Bootstrap's g-5 row uses wider negative margins than a mobile container.
       Keep the vertical rhythm while preventing a 12px horizontal spill. */
    .ge-site .row.g-5 {
        --bs-gutter-x: 1.5rem;
    }

    .ge-site h1 {
        font-size: clamp(2.75rem, 15vw, 4.5rem);
    }

    .ge-site h2 {
        font-size: 1.8rem;
    }

    .ge-home-hero {
        padding-top: 2.4rem;
    }

    .ge-home-hero__heading {
        margin-bottom: 1.8rem;
    }

    .ge-home-hero__heading > p:last-child {
        font-size: 1rem;
    }

    .ge-carousel {
        border-width: .35rem;
        border-radius: .75rem;
    }

    .ge-carousel .carousel-inner,
    .ge-carousel .carousel-item,
    .ge-carousel .carousel-item > a,
    .ge-carousel img {
        min-height: 315px;
        max-height: 380px;
    }

    .ge-carousel__caption {
        right: 1.2rem;
        bottom: 1.7rem;
        left: 1.2rem;
        display: block;
    }

    .ge-carousel__caption > span {
        display: block;
        font-size: 2rem;
    }

    .ge-carousel__caption small {
        display: none;
    }

    .ge-discovery {
        padding: 1.8rem;
        border-radius: .35rem 1.8rem .35rem .35rem;
    }

    .ge-section-heading {
        display: block;
    }

    .ge-section-heading > p,
    .ge-section-heading > .ge-text-link {
        display: block;
        margin-top: 1rem;
    }

    .ge-country-index__item {
        grid-template-columns: 2.2rem 1fr auto;
        gap: .7rem;
    }

    .ge-country-index__cities {
        grid-column: 2 / 4;
        margin-top: -.55rem;
    }

    .ge-postcard__image {
        height: 250px;
    }

    .ge-home-note__mark {
        width: 4.2rem;
        height: 4.2rem;
    }

    .ge-breadcrumb {
        margin-bottom: 2rem;
    }

    .ge-page-mast,
    .ge-city-mast {
        padding-top: 2.8rem;
    }

    .ge-country-note {
        gap: 1.2rem;
        padding: 1.8rem;
    }

    .ge-city-hero {
        margin-top: -3.5rem;
        padding: .35rem .35rem 0;
    }

    .ge-city-hero img {
        height: 330px;
    }

    .ge-guide-section--split {
        grid-template-columns: 1fr;
        gap: .8rem;
    }

    .ge-itinerary {
        margin-right: -.2rem;
        margin-left: -.2rem;
        padding: 1.8rem 1.25rem;
    }

    .ge-itinerary__steps li {
        grid-template-columns: 1fr;
        gap: .45rem;
    }

    .ge-gallery__grid {
        columns: 2 220px;
        column-gap: .85rem;
    }

    .ge-gallery__item {
        margin-bottom: .85rem;
    }

    .ge-airport-list {
        grid-template-columns: 1fr;
    }

    .ge-airport-list > a,
    .ge-airport-list > a:nth-child(even) {
        border-right: 0;
    }

    .ge-footer__bar {
        display: block;
    }

    .ge-footer__bar span {
        display: block;
    }

    .ge-footer__bar span + span {
        margin-top: .35rem;
    }
}

@media (max-width: 449.98px) {
    .ge-brand img {
        width: 168px;
    }

    .ge-destination-menu {
        columns: 1;
    }

    .ge-carousel .carousel-inner,
    .ge-carousel .carousel-item,
    .ge-carousel .carousel-item > a,
    .ge-carousel img {
        min-height: 275px;
    }

    .ge-gallery__grid {
        columns: 1;
    }
}

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

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