@media (max-width: 991px) {

  .site-main {
    padding: 2.5rem 0;
  }

  .site-footer__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  :root {
    --gutter: 18px;
  }

  body {
    font-size: 15px;
  }
}

@media (max-width: 640px) {
  .site-breadcrumb {
    display: none;
  }
}

/* ======================================================
   Header - tablet / mobile
   ====================================================== */

@media (max-width: 1100px) {

  /* ======================================================
     Header base
     ====================================================== */

  .site-header {
    margin: 0;
    padding: 0;
  }

  .site-header__inner {
    position: relative;
    margin: 0 auto;
    padding: 0;
  }

  .site-header__content {
    position: relative;
    min-height: 0;
    margin: 0;
    padding: 0;
  }


  /* ======================================================
     Utility row - phone + languages
     ====================================================== */

  .site-header__utility {
    position: static;
    display: block;
    width: 100%;
    min-height: 30px;
    margin: 0;
    padding: 12px 0 4px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.20);
  }

  .site-header__utility .region-top-bar {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    width: 100%;
    margin: 0;
    padding: 0;
    gap: 0;
  }

  /* Utility blocks should not stretch */
  .site-header__utility .block {
    flex: 0 0 auto;
    width: auto;
    margin: 0;
    padding: 0;
    text-align: right;
  }

  .site-header__utility .header-phone {
    color: var(--color-gold);
    font-size: 0.85rem;
    font-weight: 600;
    line-height: 1;
  }

  .site-header__utility
  .language-switcher-language-url > div:not(.contextual) > ul {
    gap: 8px;
  }

  .site-header__utility
  .language-switcher-language-url > div:not(.contextual) > ul > li > span,
  .site-header__utility
  .language-switcher-language-url > div:not(.contextual) > ul > li > a > span {
    font-size: 0.7rem;
  }

  .site-header__utility
  .language-switcher-language-url > div:not(.contextual) > ul > li img {
    width: 17px;
    height: 11px;
  }


  /* ======================================================
     Main mobile header row
     ====================================================== */

  .site-header__navigation {
    position: relative;
    z-index: 80;
    width: 100%;
    margin: 0;
    padding: 0;
    background: var(--color-navy);
  }

  .site-header .region-header {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    min-height: 70px;
    margin: 0;
    /* Keep space for the burger button */
    padding: 5px 0;
  }


  /* ======================================================
     Logo
     ====================================================== */

  .site-header .block-system-branding-block {
    grid-column: 1;
    grid-row: 1;
    align-self: start;
    justify-self: start;
    width: auto;
    margin: 0;
    padding: 0;
  }

  .site-header .block-system-branding-block a,
  .site-header .site-logo {
    justify-content: flex-start;
    width: auto;
  }

  .site-header .site-logo img {
    width: 120px;
    max-height: 64px;
    height: auto;
  }


  /* ======================================================
     Reservation button
     ====================================================== */

  #block-st-george-headerreservation {
    grid-column: 2;
    grid-row: 1;
    align-self: center;
    margin: 0 40px 0 0;
    padding: 0;
  }

  .site-header .header-booking-button {
    min-height: 34px;
    padding: 0.46rem 0.62rem;
    font-size: 0.61rem;
    letter-spacing: 0;
    margin-right: 8px;
  }


  /* ======================================================
     Burger
     ====================================================== */

  .site-header__menu-toggle {
    position: absolute;
    top: auto;
    right: 0px;
    bottom: 17px;
    z-index: 100;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    width: 34px;
    height: 34px;
    min-height: 0;
    padding: 6px;
    color: var(--color-white);
    background: transparent;
    border: 0;
    transform: none;
  }

  .site-header__menu-toggle:hover,
  .site-header__menu-toggle:focus {
    color: var(--color-gold);
    background: transparent;
    border: 0;
  }

  .site-header__menu-toggle span {
    display: block;
    width: 100%;
    height: 2px;
    background: currentColor;
    transition:
      transform 240ms ease,
      opacity 180ms ease;
  }


  /* Burger -> X */
  .site-header.is-menu-open
  .site-header__menu-toggle span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
  }

  .site-header.is-menu-open
  .site-header__menu-toggle span:nth-child(2) {
    opacity: 0;
  }

  .site-header.is-menu-open
  .site-header__menu-toggle span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
  }


  /* ======================================================
     Main menu
     ====================================================== */

.site-header .menu--main {
  position: absolute;

  top: 100%;
  left: 50%;
  right: auto;

  z-index: 90;

  display: none;

  grid-column: 1 / -1;
  grid-row: auto;

  width: 100vw;
  min-width: 100vw;
  max-width: none;

  margin: 0;
  padding: 0;

  background: var(--color-navy);

  border-top: 1px solid rgba(255, 255, 255, 0.12);
  box-shadow: 0 16px 30px rgba(0, 0, 0, 0.24);

  transform: translateX(-50%);
}

.site-header.is-menu-open .menu--main {
  display: block;
}


/* Main navigation list */
.site-header .menu--main > .menu {
  display: flex;
  flex-direction: column;
  align-items: stretch;

  width: 100%;

  margin: 0;
  padding: 0;

  background: var(--color-navy);
}

.site-header .menu--main > .menu > .menu-item {
  width: 100%;
  margin: 0;
  padding: 0;
}

.site-header .menu--main > .menu > .menu-item > a {
  display: flex;
  align-items: center;
  justify-content: space-between;

  width: 100%;
  min-height: 48px;

  padding: 0.75rem 14px;

  color: var(--color-white);

  font-size: 0.84rem;
  font-weight: 600;

  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}


/* Active main menu item */
.site-header .menu--main > .menu > .menu-item--active-trail > a,
.site-header .menu--main > .menu > .menu-item > a.is-active {
  color: var(--color-gold);
}

  /* ======================================================
     Mobile submenus
     ====================================================== */

  .site-header .menu--main .menu-item .menu {
    position: static;
    display: none;
    width: 100%;
    min-width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
    opacity: 1;
    visibility: visible;
    transform: none;
    background: rgba(0, 0, 0, 0.16);
    border: 0;
    box-shadow: none;
    column-count: 1;
    columns: auto;
    transition: none;
  }

  .site-header .menu--main .menu-item .menu::before {
    display: none;
  }

  .site-header .menu--main
  .menu-item--expanded.is-submenu-open > .menu {
    display: block;
  }

  .site-header .menu--main
  .menu-item .menu .menu-item {
    display: block;
    width: 100%;
    margin: 0;
    padding: 0;
  }

  .site-header .menu--main
  .menu-item .menu .menu-item > a {
    display: flex;
    align-items: center;
    width: 100%;
    min-height: 44px;
    margin: 0;
    padding: 0.7rem 28px;
    color: rgba(255, 255, 255, 0.76);
    font-size: 0.8rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    transform: none;
  }

  .site-header .menu--main
  .menu-item .menu .menu-item--active-trail > a,
  .site-header .menu--main
  .menu-item .menu .menu-item > a.is-active {
    box-shadow: none;
  }
  
.site-header .menu--main
.menu-item .menu .menu-item > a:hover,
.site-header .menu--main
.menu-item .menu .menu-item > a:focus {
  padding-left: 28px;
  color: var(--color-gold);
  background: rgba(255, 255, 255, 0.04);
  transform: none;
}

  /* ======================================================
     Mobile submenu chevron
     ====================================================== */

  .site-header .menu--main
  .menu-item--expanded > a::after {
    flex: 0 0 auto;
    margin-left: auto;
    margin-right: 4px;
  }

  .site-header .menu--main
  .menu-item--expanded.is-submenu-open > a::after {
    transform: rotate(-135deg) translate(-1px, -1px);
  }

  /* ======================================================
   Mobile menu - final reset
   ====================================================== */

  /* Main list */
  .site-header .menu--main > .menu {
    display: block;
    width: 100%;
    min-width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
    columns: auto;
    column-count: 1;
    transform: none;
  }

  /* Main items */
  .site-header .menu--main > .menu > .menu-item {
    position: relative;
    display: block;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
    transform: none;
  }

  /* Main links */
  .site-header .menu--main > .menu > .menu-item > a {
    position: relative;
    left: auto;
    right: auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0.8rem 20px;
    transform: none;
  }

  /* Never move links on hover */
  .site-header .menu--main > .menu > .menu-item > a:hover,
  .site-header .menu--main > .menu > .menu-item > a:focus {
    margin-left: 0;
    padding-left: 20px;
    transform: none;
  }

  /* Submenu */
  .site-header .menu--main > .menu > .menu-item > .menu {
    position: static;
    left: auto;
    right: auto;
    top: auto;
    display: none;
    width: 100%;
    min-width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
    columns: auto;
    column-count: 1;
    opacity: 1;
    visibility: visible;
    transform: none;
    background: rgba(0, 0, 0, 0.16);
    border: 0;
    box-shadow: none;
  }

  /* Open submenu */
  .site-header .menu--main
  > .menu
  > .menu-item--expanded.is-submenu-open
  > .menu {
    display: block;
  }

  /* Submenu items */
  .site-header .menu--main
  > .menu
  > .menu-item
  > .menu
  > .menu-item {
    display: block;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
    transform: none;
  }

  /* Submenu links */
  .site-header .menu--main
  > .menu
  > .menu-item
  > .menu
  > .menu-item
  > a {
    position: relative;
    left: auto;
    right: auto;
    display: block;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0.72rem 32px;
    color: rgba(255, 255, 255, 0.76);
    transform: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  }

  /* Submenu hover */
  .site-header .menu--main
  > .menu
  > .menu-item
  > .menu
  > .menu-item
  > a:hover,
  .site-header .menu--main
  > .menu
  > .menu-item
  > .menu
  > .menu-item
  > a:focus {
    margin-left: 0;
    padding-left: 32px;
    color: var(--color-gold);
    transform: none;
  }

}

@media (max-width: 680px) {

  /* Mobile logo fine tuning */
  .site-header .block-system-branding-block {
    position: relative;
    z-index: 90;
    margin-left: -10px;
    transform: translateY(-10px);
  }

  .site-header .site-logo img {
    width: 145px;
    max-height: 78px;
    height: auto;
  }
  
  .site-header__menu-toggle {
    position: absolute;
    top: 50%;
    right: 0;
    bottom: auto;
    z-index: 100;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    width: 39px;
    height: 39px;
    min-height: 0;
    padding: 6px;
    color: var(--color-white);
    background: transparent;
    border: 0;
    transform: translateY(-50%);
    margin-top: 14px;
  }  
}

/* ======================================================
   Blog / Articles
   ====================================================== */

@media (max-width: 1100px) {
  .blog-cards .view-content {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 680px) {
  .blog-cards {
    margin-top: 36px;
  }

  .blog-cards .view-content {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .blog-cards .views-field-field-image img,
  .blog-cards .views-field-field-media-image img {
    height: 230px;
  }

  .blog-cards .views-row > .views-field:not(.views-field-field-image):not(.views-field-field-media-image) {
    padding-left: 22px;
    padding-right: 22px;
  }
}

@media (max-width: 980px) {
  .node--type-article .article-detail-layout {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
  }

  .node--type-article .article-detail-toc,
  .node--type-article .article-detail-main {
    grid-column: 1;
  }

  .node--type-article .article-detail-toc {
    position: static;
  }

  .node--type-article .article-detail-main {
    max-width: none;
  }

  .node--type-article .article-detail-main .field--name-field-image img,
  .node--type-article .article-detail-main .field--name-field-media-image img {
    height: auto;
  }
}

/* ======================================================
   Activities / Routes
   ====================================================== */

@media (max-width: 1100px) {
  .routes-cards .view-content {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 700px) {
  .routes-cards .view-content {
    grid-template-columns: 1fr;
  }

  .routes-cards .views-field-field-main-image img,
  .routes-cards .views-field-field-route-image img,
  .routes-cards .views-field-field-image img {
    height: 240px;
  }
}

@media (max-width: 420px) {
  .routes-cards .views-field-field-difficulty,
  .routes-cards .views-field-field-total-distance,
  .routes-cards .views-field-field-total-time,
  .routes-cards .views-field-field-positive-elevation,
  .routes-cards .views-field-field-route-difficulty,
  .routes-cards .views-field-field-route-distance-total,
  .routes-cards .views-field-field-route-time-total,
  .routes-cards .views-field-field-route-elevation-gain {
    flex: 0 0 100%;
    max-width: 100%;
    padding-left: 32px;
    padding-right: 32px;
  }
}

/* ======================================================
   Hotel
   ====================================================== */

@media (max-width: 1100px) {
  .hotel-intro-split,
  .hotel-restaurant-split {
    grid-template-columns: 1fr 420px;
    gap: 36px;
  }

  .hotel-benefit {
    padding: 0 20px;
  }
}

@media (max-width: 900px) {
  .hotel-intro-split,
  .hotel-restaurant-split {
    grid-template-columns: 1fr;
  }

  .hotel-restaurant-split__media {
    order: 1;
  }

  .hotel-restaurant-split__content {
    order: 2;
  }

  .hotel-intro-split__media img,
  .hotel-restaurant-split__media img {
    height: auto;
  }

  .hotel-atmosphere-gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .hotel-atmosphere-gallery__item--large {
    grid-row: auto;
    grid-column: 1 / -1;
  }

  .hotel-atmosphere-gallery__item--large img,
  .hotel-atmosphere-gallery__item img {
    height: 280px;
  }

  .hotel-benefits {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px 0;
  }

  .hotel-benefit:nth-child(2) {
    border-right: 0;
  }
}

@media (max-width: 620px) {
  .hotel-page {
    width: 100%;
  }

  .hotel-intro-split,
  .hotel-atmosphere,
  .hotel-benefits,
  .hotel-accommodation-cta,
  .hotel-restaurant-split {
    margin-bottom: 54px;
  }

  .hotel-atmosphere-gallery {
    grid-template-columns: 1fr;
  }

  .hotel-atmosphere-gallery__item--large {
    grid-column: auto;
  }

  .hotel-atmosphere-gallery__item img,
  .hotel-atmosphere-gallery__item--large img {
    height: 250px;
  }

  .hotel-benefits {
    grid-template-columns: 1fr;
    padding: 26px 0;
  }

  .hotel-benefit {
    padding: 0 12px 24px;
    border-right: 0;
    border-bottom: 1px solid rgba(217, 211, 189, 0.85);
  }

  .hotel-benefit:last-child {
    padding-bottom: 0;
    border-bottom: 0;
  }

  .hotel-accommodation-cta {
    padding: 42px 24px;
  }
}

@media (max-width: 1100px) {
  .hotel-gallery .view-content {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .hotel-gallery__item img {
    height: 280px;
  }
}

@media (max-width: 680px) {
  .hotel-gallery-tabs {
    gap: 18px;
    margin-bottom: 30px;
  }

  .hotel-gallery-tabs__button {
    font-size: 0.8rem;
  }

  .hotel-gallery .view-content {
    grid-template-columns: 1fr;
  }

  .hotel-gallery__item img {
    height: 250px;
  }
}

@media (max-width: 640px) {

  .site-footer__grid {
    grid-template-columns: 1fr;
  }

  .tabs,
  ul.tabs {
    overflow-x: auto;
    flex-wrap: nowrap;
    padding-bottom: 0.5rem;
  }

  .tabs a,
  .tabs__link {
    white-space: nowrap;
  }

  #block-table-reservation .form-datetime-wrapper,
  #block-table-reservation .container-inline {
    grid-template-columns: 1fr;
  }

  .restaurant-events-contact .button {
    width: 100%;
    margin-right: 0;
    margin-left: 0;
  }

  .rooms-overview .view-content {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  
  .rooms-overview .views-row {
    grid-template-columns: 1fr;
  }

  .rooms-overview .views-field-field-gallery,
  .rooms-overview .views-field-field-room-gallery,
  .rooms-overview .views-field-field-image,
  .rooms-overview .views-field-field-room-image {
    grid-row: auto;
  }

  .rooms-overview .views-field-field-gallery img,
  .rooms-overview .views-field-field-room-gallery img,
  .rooms-overview .views-field-field-image img,
  .rooms-overview .views-field-field-room-image img {
    width: 100%;
    height: 210px;
    min-height: 0;
    object-fit: cover;
    object-position: center;
  }

  .rooms-overview .views-field-title,
  .rooms-overview .views-field-body,
  .rooms-overview .views-field-field-capacity,
  .rooms-overview .views-field-field-area,
  .rooms-overview .views-field-field-bed-type,
  .rooms-overview .views-field-field-price-from,
  .rooms-overview .views-field-view-node,
  .rooms-overview .views-field-nothing {
    grid-column: auto;
  }

}

@media (max-width: 900px) {

  .path-frontpage .site-content .block + .block {
    margin-top: 80px;
  }

  .home-restaurant {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .home-restaurant__media img {
    height: auto;
  }

  .home-benefits {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .home-gallery-preview__grid {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto;
  }
  
  .home-gallery-preview__item--large {
    grid-row: auto;
  }
  
  .home-gallery-preview__item {
    height: 260px;
  }
  
  .home-reviews__grid {
    grid-template-columns: 1fr;
  }
}


@media (max-width: 640px) {

  .path-frontpage .site-main {
    padding-top: 40px;
  }

  .path-frontpage .site-content .block + .block {
    margin-top: 80px;
  }

  .home-direct-booking {
    padding: 36px 24px;
  }

  .home-benefits,
  .home-gallery-preview__grid {
    grid-template-columns: 1fr;
  }

  .home-gallery-preview__item {
    height: 240px;
  }

  .home-restaurant__content .button {
    width: 100%;
    margin-right: 0;
  }

  .home-restaurant__actions {
    display: grid;
    grid-template-columns: 1fr;
    max-width: none;
  }

  .home-restaurant__actions .button {
    width: 100%;
  }

  .home-restaurant__actions .button:nth-child(3) {
    flex-basis: auto;
    grid-column: auto;
  }
}

@media (prefers-reduced-motion: reduce) {
  .js-reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

/* ======================================================
   Room detail
   ====================================================== */

@media (max-width: 900px) {

  .room-detail-top {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .room-detail-summary {
    position: static;
  }

  .room-detail-amenities .field__items {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}


@media (max-width: 640px) {

  .room-detail-top {
    gap: 24px;
    margin-bottom: 40px;
  }

  .room-detail-summary,
  .room-detail-description {
    padding: 24px 20px;
  }

  .node--type-room .room-detail-left > .field:first-child {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  /* Main image */
  .node--type-room
  .room-detail-left
  > .field:first-child
  > .field__item:first-child {
    grid-column: 1 / -1;
  }

  .node--type-room
  .room-detail-left
  > .field:first-child
  > .field__item:first-child
  > a.photoswipe {
    display: block;
    height: 250px;
    overflow: hidden;
  }

  .node--type-room
  .room-detail-left
  > .field:first-child
  > .field__item:first-child
  > a.photoswipe
  > img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
  }

  /* Thumbnails */
  .node--type-room
  .room-detail-left
  > .field:first-child
  > .field__item:not(:first-child)
  > a.photoswipe {
    display: block;
    height: 110px;
    overflow: hidden;
  }

  .node--type-room
  .room-detail-left
  > .field:first-child
  > .field__item:not(:first-child)
  > a.photoswipe
  > img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  /* Amenities */
  .room-detail-amenities {
  }
  
  .room-detail-amenities
  .field--name-field-room-amenities
  > .field__items {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px 10px;
  }

  .room-detail-amenities 
  .taxonomy-term--type-amenities 
  .field--name-taxonomy-term-title h3  {
    font-size: 0.73rem;
    line-height: 1.3;
  }
  
  .room-detail-description {
    font-size: .95rem;
    line-height: 1.65;
  }
}

/* ======================================================
   Restaurant
   ====================================================== */

@media (max-width: 900px) {

  .restaurant-intro {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .restaurant-intro__media img {
    height: auto;
  }

  .restaurant-events-intro {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .restaurant-events-intro__media img {
    height: auto;
  }
}


@media (max-width: 640px) {

  .restaurant-intro {
    display: flex;
    flex-direction: column;
    gap: 0;
  }

  .restaurant-intro__content {
    display: contents;
  }

  /* Eyebrow */
  .restaurant-intro__eyebrow {
    order: 1;
  }

  /* Title */
  .restaurant-intro__content h2 {
    order: 2;
    margin-bottom: 20px;
  }

  /* Image directly below the title */
  .restaurant-intro__media {
    order: 3;
    margin-bottom: 24px;
  }

  .restaurant-intro__media img {
    display: block;
    width: 100%;
    height: 240px;
    object-fit: cover;
  }

  /* Description paragraphs */
  .restaurant-intro__content > p:not(.restaurant-intro__eyebrow) {
    order: 4;
  }

  /* Buttons */
  .restaurant-intro__content > p:last-child {
    order: 5;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    width: 100%;
    margin-top: 10px;
  }

  .restaurant-intro__content > p:last-child .button {
    width: min(100%, 280px);
    margin: 0;
    text-align: center;
  }

  .restaurant-gallery {
    margin-top: 48px;
  }

  .restaurant-section-heading {
    margin-bottom: 24px;
  }

  .restaurant-gallery__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .restaurant-gallery__grid img {
    display: block;
    width: 100%;
    height: 150px;
    object-fit: cover;
  }

  .restaurant-gallery__grid img:first-child {
    grid-column: 1 / -1;
    height: 240px;
  }
  
  /* Restaurant cards */
  .restaurant-cards {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .restaurant-card {
    padding: 24px 20px;
  }

  .restaurant-card h3 {
    margin-bottom: 10px;
  }

  .restaurant-card p {
    margin-bottom: 12px;
  }

  .restaurant-card p:last-child {
    margin-bottom: 0;
  }

  .restaurant-card__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 0.65rem 1rem;
  }  

}

/* ======================================================
   Restaurant about
   ====================================================== */

@media (max-width: 900px) {

  .restaurant-about-intro,
  .restaurant-about-split {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .restaurant-about-split__media {
    order: 2;
  }

  .restaurant-about-split__content {
    order: 1;
  }

  .restaurant-about-intro__media img,
  .restaurant-about-split__media img {
    height: auto;
  }

}


@media (max-width: 640px) {

  .restaurant-about-intro {
    display: flex;
    flex-direction: column;
    gap: 0;
  }

  .restaurant-about-intro__content {
    display: contents;
  }

  .restaurant-about-intro__content h3 {
    order: 1;
    margin-bottom: 20px;
  }

  .restaurant-about-intro__media {
    order: 2;
    margin-bottom: 24px;
  }

  .restaurant-about-intro__media img {
    display: block;
    width: 100%;
    height: 240px;
    object-fit: cover;
  }

  .restaurant-about-intro__content > p {
    order: 3;
  }

  .restaurant-about-intro__content > p:last-child {
    order: 4;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    width: 100%;
    margin-top: 10px;
  }

  .restaurant-about-intro__content > p:last-child .button {
    width: min(100%, 280px);
    margin: 0;
    text-align: center;
  }
  
  /* Restaurant about - terrace */
  .restaurant-about-split {
    display: flex;
    flex-direction: column;
    gap: 0;
  }

  .restaurant-about-split__content {
    display: contents;
  }

  .restaurant-about-split__content
  .restaurant-section-heading__eyebrow {
    order: 1;
  }

  .restaurant-about-split__content h3 {
    order: 2;
    margin-bottom: 20px;
  }

  .restaurant-about-split__media {
    order: 3;
    margin-bottom: 24px;
  }

  .restaurant-about-split__media img {
    display: block;
    width: 100%;
    height: 240px;
    object-fit: cover;
  }

  .restaurant-about-split__content > p:not(.restaurant-section-heading__eyebrow) {
    order: 4;
  }
  
  .restaurant-about-cards {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .restaurant-about-card {
    padding: 24px 20px;
  }

  .restaurant-about-card h3 {
    margin-bottom: 10px;
  }

  .restaurant-about-card p {
    margin-bottom: 12px;
  }

  .restaurant-about-card p:last-child {
    margin-bottom: 0;
  }  
}

/* ======================================================
   Restaurant menu
   ====================================================== */

@media (max-width: 640px) {

  .restaurant-menu-tabs {
    margin: 28px 0 34px;
  }

  .restaurant-menu-tabs__primary,
  .restaurant-menu-tabs__secondary {
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    gap: 18px;
    padding-bottom: 6px;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .restaurant-menu-tabs__primary::-webkit-scrollbar,
  .restaurant-menu-tabs__secondary::-webkit-scrollbar {
    display: none;
  }

  .restaurant-menu-tabs__primary {
    justify-content: center;
    margin-bottom: 14px;
  }

  .restaurant-menu-tabs__secondary {
    justify-content: flex-start;
  }

  .restaurant-menu-tabs__button,
  .restaurant-menu-tabs__subbutton {
    flex: 0 0 auto;
    white-space: nowrap;
  }

  .restaurant-menu-tabs__button {
    font-size: 1rem;
    padding: 7px 0 9px;
  }

  .restaurant-menu-tabs__subbutton {
    font-size: 0.78rem;
    padding: 5px 0 7px;
  }

  /* Food menu grid */
  #block-st-george-views-block-restaurant-menu-block-1 .view-content,
  #block-st-george-views-block-restaurant-menu-block-2 .view-content {
    grid-template-columns: 1fr;
    gap: 42px;
  }

  /* Food item */
  #block-st-george-views-block-restaurant-menu-block-1 .views-row,
  #block-st-george-views-block-restaurant-menu-block-2 .views-row {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
    gap: 8px;
    min-height: 0;
    text-align: center;
  }

  /* Reset desktop field positions */
  #block-st-george-views-block-restaurant-menu-block-1 .views-field-field-menu-image,
  #block-st-george-views-block-restaurant-menu-block-2 .views-field-field-menu-image,
  #block-st-george-views-block-restaurant-menu-block-1 .views-field-title,
  #block-st-george-views-block-restaurant-menu-block-2 .views-field-title,
  #block-st-george-views-block-restaurant-menu-block-1 .views-field-field-menu-quantity,
  #block-st-george-views-block-restaurant-menu-block-2 .views-field-field-menu-quantity,
  #block-st-george-views-block-restaurant-menu-block-1 .views-field-field-menu-description,
  #block-st-george-views-block-restaurant-menu-block-2 .views-field-field-menu-description,
  #block-st-george-views-block-restaurant-menu-block-1 .views-field-field-price-eur,
  #block-st-george-views-block-restaurant-menu-block-2 .views-field-field-price-eur {
    grid-column: 1;
    grid-row: auto;
  }

  /* Image */
  #block-st-george-views-block-restaurant-menu-block-1
  .views-field-field-menu-image,
  #block-st-george-views-block-restaurant-menu-block-2
  .views-field-field-menu-image {
    margin-bottom: 10px;
  }

  #block-st-george-views-block-restaurant-menu-block-1
  .views-field-field-menu-image img,
  #block-st-george-views-block-restaurant-menu-block-2
  .views-field-field-menu-image img {
    width: 190px;
    height: 190px;
    margin: 0 auto;
  }

  /* Price */
  #block-st-george-views-block-restaurant-menu-block-1
  .views-field-field-price-eur,
  #block-st-george-views-block-restaurant-menu-block-2
  .views-field-field-price-eur {
    margin-top: 8px;
    padding-top: 10px;
    text-align: center;
  }
  
  /* Drinks menu */
  #block-st-george-views-block-restaurant-menu-block-3 .views-row,
  #block-st-george-views-block-restaurant-menu-block-4 .views-row,
  #block-st-george-views-block-restaurant-menu-block-5 .views-row,
  #block-st-george-views-block-restaurant-menu-block-6 .views-row,
  #block-st-george-views-block-restaurant-menu-block-7 .views-row,
  #block-st-george-views-block-restaurant-menu-block-8 .views-row {
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-rows: auto auto;
    gap: 4px 16px;
    padding: 16px 0;
  }

  /* Drink title */
  #block-st-george-views-block-restaurant-menu-block-3 .views-field-title,
  #block-st-george-views-block-restaurant-menu-block-4 .views-field-title,
  #block-st-george-views-block-restaurant-menu-block-5 .views-field-title,
  #block-st-george-views-block-restaurant-menu-block-6 .views-field-title,
  #block-st-george-views-block-restaurant-menu-block-7 .views-field-title,
  #block-st-george-views-block-restaurant-menu-block-8 .views-field-title {
    grid-column: 1;
    grid-row: 1;
    min-width: 0;
  }

  /* Quantity */
  #block-st-george-views-block-restaurant-menu-block-3 .views-field-field-menu-quantity,
  #block-st-george-views-block-restaurant-menu-block-4 .views-field-field-menu-quantity,
  #block-st-george-views-block-restaurant-menu-block-5 .views-field-field-menu-quantity,
  #block-st-george-views-block-restaurant-menu-block-6 .views-field-field-menu-quantity,
  #block-st-george-views-block-restaurant-menu-block-7 .views-field-field-menu-quantity,
  #block-st-george-views-block-restaurant-menu-block-8 .views-field-field-menu-quantity {
    grid-column: 1;
    grid-row: 2;
    font-size: 0.82rem;
  }

  /* Price */
  #block-st-george-views-block-restaurant-menu-block-3 .views-field-field-price-eur,
  #block-st-george-views-block-restaurant-menu-block-4 .views-field-field-price-eur,
  #block-st-george-views-block-restaurant-menu-block-5 .views-field-field-price-eur,
  #block-st-george-views-block-restaurant-menu-block-6 .views-field-field-price-eur,
  #block-st-george-views-block-restaurant-menu-block-7 .views-field-field-price-eur,
  #block-st-george-views-block-restaurant-menu-block-8 .views-field-field-price-eur {
    grid-column: 2;
    grid-row: 1 / span 2;
    align-self: center;
    white-space: nowrap;
    text-align: right;
  }  

}

/* ======================================================
   Restaurant events
   ====================================================== */

@media (max-width: 900px) {

  .restaurant-events-intro {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .restaurant-events-intro__media img {
    height: auto;
  }

}

@media (max-width: 640px) {

  /* Intro */
  .restaurant-events-intro {
    display: flex;
    flex-direction: column;
    gap: 0;
  }

  .restaurant-events-intro__content {
    display: contents;
  }

  .restaurant-events-intro__content h3 {
    order: 1;
    margin-bottom: 20px;
  }

  .restaurant-events-intro__media {
    order: 2;
    margin-bottom: 24px;
  }

  .restaurant-events-intro__media img {
    display: block;
    width: 100%;
    height: 240px;
    object-fit: cover;
  }

  .restaurant-events-intro__content > p {
    order: 3;
  }

  .restaurant-events-intro__content > p:last-child {
    order: 4;
    display: flex;
    justify-content: center;
    width: 100%;
    margin-top: 10px;
  }

  .restaurant-events-intro__content > p:last-child .button {
    width: min(100%, 280px);
    margin: 0;
    text-align: center;
  }


  /* Event cards */
  .restaurant-events-cards {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .restaurant-events-card {
    min-height: 0;
    padding: 24px 20px;
  }

  .restaurant-events-card h3 {
    margin-bottom: 10px;
  }

  .restaurant-events-card p {
    margin-bottom: 12px;
  }

  .restaurant-events-card p:last-child {
    margin-bottom: 0;
  }


  /* Final CTA */
  .restaurant-events-contact {
    padding: 36px 20px;
  }

  .restaurant-events-contact__content > p:last-child {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
  }

  .restaurant-events-contact .button {
    width: min(100%, 280px);
    margin: 0;
  }

}

/* ======================================================
   Contact
   ====================================================== */

@media (max-width: 900px) {

  .contact-top {
    grid-template-columns: 1fr;
    gap: 32px;
    margin-bottom: 56px;
  }

  .contact-map {
    min-height: 0;
  }

  .contact-map iframe {
    display: block;
    width: 100%;
    height: 360px;
  }

  .contact-details {
    justify-content: flex-start;
  }

}


@media (max-width: 640px) {

  .contact-top {
    gap: 24px;
    margin-bottom: 48px;
  }

  .contact-map iframe {
    height: 280px;
  }

  .contact-details h2 {
    margin-bottom: 20px;
  }

  .contact-details__item {
    margin-bottom: 16px;
  }

  .contact-details__item strong {
    display: block;
    margin-bottom: 4px;
  }

  .contact-details__item span,
  .contact-details__item a {
    overflow-wrap: anywhere;
  }

  .contact-details__map-link {
    margin-top: 20px;
  }

}

@media (max-width: 900px) {

  #block-st-george-webform form {
    grid-template-columns: 1fr;
    margin: 56px 0;
  }

  #block-st-george-webform .contact-form-content {
    order: 1;
  }

  #block-st-george-webform .contact-form-image {
    order: 2;
    height: 360px;
  }

}

@media (max-width: 640px) {

  #block-st-george-webform form {
    margin: 48px 0;
  }

  #block-st-george-webform .contact-form-content {
    padding: 28px 20px;
  }

  #block-st-george-webform .contact-form-heading {
    margin-bottom: 20px;
  }

  #block-st-george-webform .contact-form-heading h2 {
    font-size: 1.8rem;
  }

  #block-st-george-webform .contact-form-image {
    height: 260px;
  }

  #block-st-george-webform .contact-form-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  #block-st-george-webform .webform-button--submit {
    width: 100%;
  }

}

/* ======================================================
   Route detail
   ====================================================== */

@media (max-width: 900px) {

  .node--type-route .route-detail-layout {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .node--type-route .route-detail-sidebar {
    position: static;
  }

}


@media (max-width: 640px) {

  .node--type-route .route-detail-layout {
    margin-top: 24px;
    margin-bottom: 56px;
    gap: 28px;
  }

  .node--type-route .route-detail-main .field {
    margin-bottom: 28px;
  }

  .node--type-route .route-detail-main .field--name-field-short-description,
  .node--type-route .route-detail-main .field--name-field-route-short-description {
    padding: 22px 20px;
  }

  .node--type-route .route-detail-main .field--name-field-gallery .field__items {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .node--type-route .route-detail-main .field--name-field-gallery img {
    height: 240px;
    object-fit: cover;
  }

  .node--type-route .route-detail-sidebar {
    padding: 24px 20px;
  }

  .node--type-route .route-detail-main .field--type-link a {
    width: 100%;
  }

}

@media (max-width: 640px) {

  .restaurant-drinks-promo {
    grid-template-columns: 1fr;
    margin: 8px 0 32px;
  }

  .restaurant-drinks-promo__media {
    min-height: 0;
    height: 280px;
  }
  
  .restaurant-drinks-promo__media img {
    object-position: center top;
  }

  .restaurant-drinks-promo__content {
    padding: 26px 20px;
  }

  .restaurant-drinks-promo__content h3 {
    font-size: 1.35rem;
  }

}