/* ============================================================
   Camillo - mobile layout corrections

   The desktop site remains the source of truth for colours,
   typography, imagery and component styling. This file only
   changes placement, scale, spacing and touch behaviour.
   ============================================================ */

/* Full-bleed contact sections must use the layout viewport rather
   than 100vw, which includes the browser scrollbar on some devices. */
body.contact-page main > .banner {
  padding-right: 0 !important;
  padding-left: 0 !important;
}

body.contact-page .banner > .contact-cover.wp-block-cover.alignfull,
body.contact-page .contact-panels,
body.contact-page .contact-strip {
  box-sizing: border-box;
  width: 100%;
  max-width: none;
  margin-right: 0;
  margin-left: 0;
}

/* The manage-reservation documents do not include the body reset used
   by the booking page. Keep both page-id-25 surfaces flush to viewport. */
body.page-id-25 {
  margin: 0 !important;
}

body.page-id-25 .bk {
  overflow: clip;
}

/* Local Tips has no published article body. The existing document title
   becomes a mobile-only branded title instead of leaving a broken void. */
body.page-id-32 .wp-site-blocks {
  display: flex;
  min-height: 100svh;
  flex-direction: column;
}

body.page-id-32 main {
  flex: 1 0 auto;
}

.local-tips-mobile-title {
  display: none;
}

/* app.js clones the compact logo into the full-screen menu after the
   SVG conversion pass. Style that fallback explicitly at every size. */
.mobile-menu-logo-bianco,
.mobile-menu-logo-bianco a,
.mobile-menu-logo-bianco svg {
  color: #fff !important;
}

.mobile-menu-logo-bianco img {
  filter: brightness(0) invert(1) !important;
}

.mobile-menu-logo-bianco img,
.mobile-menu-logo-bianco svg {
  display: block;
  width: clamp(112px, 18vw, 180px) !important;
  height: auto;
}

body:not(.has-banner) header .polylang-switcher-inline,
body:not(.has-banner) header .polylang-switcher-inline a,
body:not(.has-banner) header .polylang-switcher-inline .divider,
body:not(.has-banner) header .wp-block-navigation__responsive-container-open {
  color: var(--camillo-ink, #1a1a1a) !important;
}

body:not(.has-banner) header .polylang-switcher-inline a {
  text-decoration: none;
}

body:not(.has-banner) header .wp-block-navigation__responsive-container-open svg {
  fill: currentColor !important;
}

@media (max-width: 767.98px) {
  :root,
  body {
    --mobile-gutter: clamp(18px, 5.1vw, 22px);
    --wp--style--root--padding-left: var(--mobile-gutter) !important;
    --wp--style--root--padding-right: var(--mobile-gutter) !important;
    --wp--style--root--padding-top: 0 !important;
    --wp--style--root--padding-bottom: 0 !important;
  }

  html {
    scroll-padding-top: 96px;
  }

  body,
  .wp-site-blocks {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
    overflow-x: clip;
  }

  img,
  svg {
    max-width: 100%;
  }

  a,
  button,
  input,
  select,
  textarea {
    -webkit-tap-highlight-color: transparent;
  }

  a:focus-visible,
  button:focus-visible,
  input:focus-visible,
  select:focus-visible,
  textarea:focus-visible {
    outline: 3px solid var(--camillo-pink, #faa8b5);
    outline-offset: 3px;
  }

  /* Header --------------------------------------------------- */

  header.wp-block-template-part {
    position: relative;
    z-index: 1000;
  }

  body.has-banner > .wp-site-blocks > header.wp-block-template-part {
    position: absolute;
    inset: 0 0 auto;
    width: 100%;
  }

  header.wp-block-template-part > .wp-block-group {
    padding-inline: 0 !important;
  }

  header .wp-block-group.alignwide,
  header .wp-block-group.is-content-justification-space-between {
    box-sizing: border-box;
    width: 100%;
    min-height: 82px;
    padding: max(13px, env(safe-area-inset-top)) var(--mobile-gutter) 11px !important;
    gap: 7px !important;
  }

  header .wp-block-group.alignwide > .wp-block-group:first-child {
    min-width: 0;
    flex: 0 1 auto;
  }

  #logo-bianco,
  #logo-bianco a {
    display: block;
    line-height: 0;
  }

  body.has-banner #logo-bianco,
  body.has-banner #logo-bianco a,
  body.has-banner #logo-bianco svg {
    color: #fff !important;
  }

  body.has-banner #logo-bianco img,
  .mobile-menu-logo-bianco img {
    filter: brightness(0) invert(1) !important;
  }

  body:not(.has-banner) #logo-bianco,
  body:not(.has-banner) #logo-bianco a,
  body:not(.has-banner) #logo-bianco svg {
    color: var(--camillo-ink, #1a1a1a) !important;
  }

  /* Keep the external-logo fallback visible on light, non-hero pages
     before app.js replaces it with the inline SVG. */
  body:not(.has-banner) #logo-bianco img {
    filter: brightness(0) !important;
  }

  #logo-bianco img,
  #logo-bianco svg,
  .mobile-menu-logo-bianco img,
  .mobile-menu-logo-bianco svg {
    display: block;
    width: clamp(112px, 31vw, 130px) !important;
    height: auto;
  }

  .mobile-menu-logo-bianco,
  .mobile-menu-logo-bianco a,
  .mobile-menu-logo-bianco svg {
    color: #fff !important;
  }

  header .wp-container-core-group-is-layout-6c531013,
  header [class*="wp-container-core-group-is-layout-"]:has(.polylang-switcher-inline) {
    min-width: 0;
    margin-left: auto;
    gap: 7px !important;
  }

  header .wp-block-group.is-layout-constrained.block-visibility-hide-small-screen,
  header .block-visibility-hide-small-screen.has-global-padding.is-layout-constrained,
  header .block-visibility-hide-small-screen:has(.polylang-switcher-inline) {
    display: flex !important;
    align-items: center;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  header .polylang-switcher-inline {
    display: flex;
    align-items: center;
    gap: 0;
    font-size: clamp(12px, 3.5vw, 15px) !important;
    white-space: nowrap;
  }

  header .polylang-switcher-inline a {
    display: inline-flex;
    align-items: center;
    min-height: 40px;
    padding-inline: 2px;
  }

  header .polylang-switcher-inline .divider {
    padding-inline: 0.28em;
  }

  .wp-block-navigation__responsive-container-open {
    display: grid !important;
    place-items: center;
    width: 44px;
    min-width: 44px !important;
    height: 46px;
    min-height: 46px !important;
    margin: 0 !important;
    padding: 8px 0 8px 6px !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  .wp-block-navigation__responsive-container-open svg,
  .wp-block-navigation__responsive-container-open.custom-open-icon svg {
    width: 38px !important;
    height: 29px !important;
  }

  body.has-banner main,
  body.has-banner main.wp-block-group,
  body.page-pdn main.wp-block-group,
  body.page-pdn main {
    margin-top: 0 !important;
  }

  body.page-id-32 main.wp-block-group {
    min-height: clamp(360px, 62svh, 520px);
    margin-top: 0 !important;
    padding: 0 !important;
    background: var(--camillo-ink, #1a1a1a);
  }

  body.page-id-32 .local-tips-mobile-title {
    box-sizing: border-box;
    display: flex;
    min-height: inherit;
    align-items: flex-end;
    padding: 112px var(--mobile-gutter) 44px;
    color: var(--camillo-pink, #f5c1cd);
  }

  body.page-id-32 .local-tips-mobile-title h1 {
    max-width: 8ch;
    margin: 0;
    color: inherit;
    font-size: clamp(3rem, 15vw, 4.6rem);
    line-height: 0.88;
  }

  /* Original navigation overlay, with mobile-safe geometry. */
  .wp-block-navigation__responsive-container.is-menu-open {
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100dvh !important;
    min-height: 100dvh !important;
    padding: 0 !important;
    background-position: center !important;
    background-size: cover !important;
  }

  .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__responsive-close,
  .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__responsive-dialog {
    width: 100%;
    height: 100%;
  }

  .wp-block-navigation__responsive-container-close {
    display: grid !important;
    place-items: center;
    top: max(16px, env(safe-area-inset-top)) !important;
    right: var(--mobile-gutter) !important;
    width: 48px !important;
    min-width: 48px;
    height: 48px !important;
    min-height: 48px;
    padding: 8px !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  .wp-block-navigation__responsive-container-close svg,
  .wp-block-navigation__responsive-container-close.custom-close-icon svg {
    width: 42px !important;
    height: 29px !important;
  }

  .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__responsive-container-content {
    box-sizing: border-box;
    width: min(100%, 650px) !important;
    height: 100%;
    margin: 0 auto !important;
    padding: calc(max(88px, env(safe-area-inset-top) + 74px)) var(--mobile-gutter)
      max(24px, env(safe-area-inset-bottom)) !important;
    justify-content: center !important;
  }

  .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__container {
    align-items: flex-start !important;
    width: 100%;
    margin-top: 0 !important;
  }

  .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation-item__content {
    display: inline-flex !important;
    align-items: center;
    min-height: 44px;
    padding-block: 3px !important;
  }

  /* Home ----------------------------------------------------- */

  body.page-id-103 main .banner:first-child > .wp-block-cover.alignfull {
    display: flex !important;
    min-height: clamp(460px, 64svh, 560px) !important;
    padding: 104px var(--mobile-gutter) 38px !important;
    align-items: flex-end !important;
    background: var(--camillo-ink, #1a1a1a);
  }

  body.page-id-103 main .banner:first-child .wp-block-cover__image-background {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: 76% 50% !important;
  }

  body.page-id-103 main .banner:first-child .wp-block-cover__background {
    display: block !important;
    background: linear-gradient(
      180deg,
      rgb(0 0 0 / 0.08) 18%,
      rgb(0 0 0 / 0.34) 48%,
      rgb(0 0 0 / 0.84) 100%
    ) !important;
    opacity: 1 !important;
  }

  body.page-id-103 main .banner:first-child .wp-block-cover__inner-container,
  body.page-id-103 main .banner:first-child
    .wp-block-cover__inner-container > .wp-block-group {
    position: relative !important;
    box-sizing: border-box;
    width: 100%;
    max-width: none !important;
    margin: 0 !important;
  }

  body.page-id-103 main .banner:first-child .wp-block-cover__inner-container {
    padding: 0 !important;
  }

  body.page-id-103 main .banner:first-child
    .wp-block-cover__inner-container > .wp-block-group {
    padding: 0 !important;
  }

  body.page-id-103 main .banner:first-child .wp-block-buttons {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch !important;
    gap: 10px !important;
    width: 100%;
    max-width: 500px;
    margin-top: 22px;
  }

  body.page-id-103 main .banner:first-child .wp-block-button {
    display: block;
    width: 100% !important;
    height: 100%;
    min-width: 0;
  }

  body.page-id-103 main .banner:first-child .wp-block-button__link {
    display: grid;
    box-sizing: border-box;
    width: 100% !important;
    height: 100%;
    min-height: 48px;
    place-items: center;
    padding: 10px 8px !important;
  }

  body.page-id-103 .entry-content > .wp-block-group:nth-child(2) > .wp-block-group {
    box-sizing: border-box;
    width: 100%;
    max-width: 760px !important;
    margin-inline: auto !important;
    padding: 52px var(--mobile-gutter) 56px !important;
  }

  /* Food and drink keep their real image ratios. The narrower drink
     card retains the asymmetric rhythm of the desktop composition. */
  body.page-id-103 .entry-content > .wp-block-group:nth-child(3) .wp-block-columns {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch;
    gap: 0 !important;
  }

  body.page-id-103 .entry-content > .wp-block-group:nth-child(3)
    .wp-block-column {
    width: 100% !important;
    max-width: 100% !important;
    flex-basis: auto !important;
  }

  body.page-id-103 .entry-content > .wp-block-group:nth-child(3)
    .wp-block-column:nth-child(2) {
    width: 100% !important;
    max-width: none !important;
    margin-left: 0;
    align-self: stretch;
  }

  body.page-id-103 .entry-content > .wp-block-group:nth-child(3)
    .wp-block-column:first-child .wp-block-cover {
    aspect-ratio: 1024 / 970 !important;
    min-height: 0 !important;
  }

  body.page-id-103 .entry-content > .wp-block-group:nth-child(3)
    .wp-block-column:nth-child(2) .wp-block-cover {
    aspect-ratio: 702 / 972 !important;
    min-height: 0 !important;
  }

  /* The supporting landscape remains uncropped because its long copy is
     substantially taller than the photograph on a phone. */
  body.page-id-103 .entry-content > .wp-block-group:nth-child(4) .wp-block-cover {
    display: grid !important;
    grid-template-rows: auto auto;
    min-height: 0 !important;
    padding: 0 !important;
    align-items: stretch !important;
    background-color: var(--camillo-ink, #1a1a1a);
  }

  body.page-id-103 .entry-content > .wp-block-group:nth-child(4)
    .wp-block-cover__image-background {
    position: relative !important;
    inset: auto !important;
    grid-row: 1;
    display: block;
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 1024 / 683;
    object-fit: contain !important;
    object-position: 50% 50% !important;
  }

  body.page-id-103 .entry-content > .wp-block-group:nth-child(4)
    .wp-block-cover__background {
    display: none !important;
  }

  body.page-id-103 .entry-content > .wp-block-group:nth-child(4)
    .wp-block-cover__inner-container {
    position: relative !important;
    grid-row: 2;
    box-sizing: border-box;
    width: 100%;
    max-width: none !important;
    padding: 44px var(--mobile-gutter) 48px !important;
  }

  body.page-id-103 .entry-content > .wp-block-group:nth-child(4)
    .wp-block-cover__inner-container > .wp-block-group,
  body.page-id-103 .entry-content > .wp-block-group:nth-child(4)
    .wp-block-cover__inner-container > .wp-block-group > .wp-block-group {
    width: 100%;
    max-width: 620px !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  body.page-id-103 .entry-content > .wp-block-group:nth-child(4) .wp-block-spacer {
    display: none !important;
  }

  body.page-id-103 .entry-content > .wp-block-group:nth-child(4) p {
    margin-block: 0 !important;
  }

  body.page-id-103 .entry-content > .wp-block-group:nth-child(4) p + p {
    margin-top: clamp(18px, 5vw, 28px) !important;
  }

  body.page-id-103 .entry-content > .wp-block-group:nth-child(4)
    p:nth-of-type(2) > br:first-child,
  body.page-id-103 .entry-content > .wp-block-group:nth-child(4)
    p:nth-of-type(3) > br:first-child {
    display: none;
  }

  body.page-id-103 .entry-content > .wp-block-group:nth-child(4) h2.wp-block-heading {
    text-align: left !important;
  }

  /* Made in Camillo ------------------------------------------ */

  /* The portrait source is designed to carry copy. Keep the original
     desktop cover treatment and tighten only its mobile geometry. */
  body.page-id-30 main .banner:first-child > .wp-block-cover.alignfull {
    display: flex !important;
    min-height: clamp(680px, 100svh, 780px) !important;
    padding: 104px var(--mobile-gutter) 40px !important;
    align-items: center !important;
    background: #000;
  }

  body.page-id-30 main .banner:first-child .wp-block-cover__image-background {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: 50% 58% !important;
  }

  body.page-id-30 main .banner:first-child .wp-block-cover__inner-container {
    position: relative !important;
    box-sizing: border-box;
    width: 100%;
    padding: 0 !important;
  }

  body.page-id-30 main .banner:first-child
    .wp-block-cover__inner-container > .wp-block-group {
    width: 100%;
    max-width: 680px !important;
    margin: 0 auto !important;
    padding: 0 !important;
  }

  body.page-id-30 main .banner:first-child h1.wp-block-heading {
    margin: 0 0 22px !important;
  }

  body.page-id-30 main .banner:first-child p {
    margin-inline: auto !important;
  }

  body.page-id-30 main .banner:first-child p.has-displace-2-0-font-family {
    margin-block: 22px !important;
  }

  /* Treat every image/copy pair as one editorial module. The overlap keeps
     the original left/right alternation visible without squeezing the copy
     into an unreadable phone-sized column. */
  body.page-id-30 .entry-content > .wp-block-group:nth-child(2) .wp-block-columns,
  body.page-id-30 .entry-content > .wp-block-group:nth-child(3) .wp-block-columns {
    position: relative;
    isolation: isolate;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 0 !important;
    margin: 0 !important;
  }

  body.page-id-30 .entry-content > .wp-block-group:nth-child(2) .wp-block-columns {
    grid-template-rows: auto clamp(56px, 18vw, 72px) auto;
    padding: clamp(34px, 10vw, 46px) 0 clamp(20px, 6vw, 30px);
  }

  body.page-id-30 .entry-content > .wp-block-group:nth-child(3) .wp-block-columns {
    grid-template-rows: auto clamp(42px, 14vw, 58px) auto;
    padding: clamp(18px, 5vw, 28px) 0 clamp(44px, 12vw, 58px);
  }

  body.page-id-30 .entry-content > .wp-block-group:nth-child(2) .wp-block-column,
  body.page-id-30 .entry-content > .wp-block-group:nth-child(3) .wp-block-column {
    min-width: 0;
    max-width: none !important;
    flex-basis: auto !important;
    align-self: stretch !important;
  }

  body.page-id-30 .entry-content > .wp-block-group:nth-child(2)
    .wp-block-column:has(img[src*="mic-tortelli"]) {
    z-index: 1;
    grid-area: 1 / 1 / 3 / 2;
    justify-self: start;
    width: 78% !important;
  }

  body.page-id-30 .entry-content > .wp-block-group:nth-child(2)
    .wp-block-column:has(h2) {
    z-index: 2;
    grid-area: 2 / 1 / 4 / 2;
    justify-self: end;
    width: 90% !important;
    background: var(--wp--preset--color--cream, #fff4e6);
  }

  body.page-id-30 .entry-content > .wp-block-group:nth-child(3)
    .wp-block-column:has(img[src*="mic-dough"]) {
    z-index: 1;
    grid-area: 1 / 1 / 3 / 2;
    justify-self: end;
    width: 92% !important;
  }

  body.page-id-30 .entry-content > .wp-block-group:nth-child(3)
    .wp-block-column:has(h2) {
    z-index: 2;
    grid-area: 2 / 1 / 4 / 2;
    justify-self: start;
    width: 90% !important;
    background: var(--wp--preset--color--cream, #fff4e6);
  }

  body.page-id-30 .entry-content > .wp-block-group:nth-child(2)
    .wp-block-column:has(h2) > .wp-block-group,
  body.page-id-30 .entry-content > .wp-block-group:nth-child(3)
    .wp-block-column:has(h2) > .wp-block-group {
    box-sizing: border-box;
    width: 100%;
    margin: 0 !important;
    padding: clamp(28px, 8vw, 38px) var(--mobile-gutter)
      clamp(36px, 10vw, 46px) !important;
  }

  body.page-id-30 .entry-content h2.wp-block-heading {
    font-size: clamp(1.85rem, 8.5vw, 2.6rem) !important;
  }

  /* Preserve the desktop alternation: portrait pasta anchors the left edge,
     landscape dough the right. Their copy panels cross the image edge. */
  body.page-id-30 .wp-block-columns:has(img[src*="mic-tortelli"]) .wp-block-cover {
    width: 100%;
    max-width: none;
    min-height: 0 !important;
    margin: 0 !important;
    aspect-ratio: 1137 / 1800 !important;
  }

  body.page-id-30 .wp-block-columns:has(img[src*="mic-dough"]) .wp-block-cover {
    width: 100%;
    max-width: none;
    min-height: 0 !important;
    margin: 0 !important;
    aspect-ratio: 4 / 3 !important;
  }

  body.page-id-30 .wp-block-columns:has(img[src*="mic-dough"])
    .wp-block-cover__image-background {
    object-position: 54% 55% !important;
  }

  /* Desktop line breaks used as vertical spacers become redundant once
     image and copy are stacked. Internal headline breaks stay intact. */
  body.page-id-30 .wp-block-columns:has(img[src*="mic-dough"]) h2 > br,
  body.page-id-30 .entry-content > .wp-block-group:nth-child(4) h2 > br:first-child {
    display: none;
  }

  /* Our Vibes ------------------------------------------------ */

  body.page-id-27 main .banner > .wp-block-cover.alignfull {
    min-height: clamp(520px, 78svh, 680px) !important;
    padding: 104px var(--mobile-gutter) clamp(96px, 14svh, 120px) !important;
    align-items: flex-end !important;
  }

  body.page-id-27 .banner .wp-block-cover__image-background {
    object-position: 50% 70% !important;
  }

  body.page-id-27 .banner .wp-block-cover__background {
    display: block !important;
    background: linear-gradient(
      180deg,
      rgb(0 0 0 / 0.04) 26%,
      rgb(0 0 0 / 0.18) 52%,
      rgb(0 0 0 / 0.72) 100%
    ) !important;
    opacity: 1 !important;
  }

  body.page-id-27 .entry-content .who-we-are {
    top: 0 !important;
    margin: 0 !important;
  }

  body.page-id-27 .banner .wp-block-cover__inner-container,
  body.page-id-27 .banner .wp-block-cover__inner-container > .wp-block-group {
    box-sizing: border-box;
    width: 100%;
    margin: 0 !important;
    padding: 0 !important;
  }

  body.page-id-27 main .has-light-pink-background-color > .wp-block-group {
    box-sizing: border-box;
    padding: 44px var(--mobile-gutter) 50px !important;
  }

  body.page-id-27 main .has-light-pink-background-color .wp-block-image {
    width: 100%;
    max-width: none !important;
    margin: 0 0 28px !important;
  }

  body.page-id-27 main .has-light-pink-background-color .wp-block-image img {
    display: block;
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 3 / 2;
    object-fit: contain;
  }

  body.page-id-27 main .has-light-pink-background-color h2.wp-block-heading {
    margin: 0 0 20px !important;
    text-align: center !important;
  }

  body.page-id-27 main .has-light-pink-background-color p {
    max-width: 38ch;
    margin: 14px auto 0 !important;
    text-align: center !important;
  }

  body.page-id-27 main .has-black-background-color .wp-block-columns {
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
    margin: 0 !important;
    padding-bottom: clamp(48px, 14vw, 64px) !important;
  }

  body.page-id-27 main .has-black-background-color .wp-block-column {
    width: 100% !important;
    max-width: none !important;
    flex-basis: auto !important;
  }

  body.page-id-27 main .has-black-background-color
    .wp-block-column:first-child > .wp-block-group {
    box-sizing: border-box;
    width: 100%;
    margin: 0 !important;
    padding: 44px var(--mobile-gutter) 42px !important;
  }

  body.page-id-27 main .has-black-background-color h2.wp-block-heading {
    font-size: clamp(2.1rem, 10vw, 3rem) !important;
  }

  body.page-id-27 main .has-black-background-color .who-we-are {
    width: 76%;
    margin: 0 var(--mobile-gutter) 0 auto !important;
  }

  body.page-id-27 main .has-black-background-color .who-we-are img {
    display: block;
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 4 / 5;
    object-fit: contain;
  }

  body.page-id-27 main .has-intense-pink-background-color > .wp-block-group {
    padding: 46px 0 50px !important;
  }

  body.page-id-27 main .has-intense-pink-background-color .wp-block-spacer {
    height: 32px !important;
  }

  /* Contact and FAQ ------------------------------------------ */

  body.contact-page main .banner > .contact-cover.wp-block-cover.alignfull,
  body.faq-page main .banner > .contact-cover.wp-block-cover.alignfull {
    min-height: clamp(400px, 112vw, 500px) !important;
    padding: 104px var(--mobile-gutter) 36px !important;
    align-items: flex-end !important;
  }

  body.contact-page .contact-cover .wp-block-cover__inner-container,
  body.faq-page .contact-cover .wp-block-cover__inner-container {
    width: 100%;
    max-width: 1240px !important;
    margin: 0 auto !important;
    padding: 0 !important;
    align-self: flex-end;
  }

  body.contact-page .contact-cover .wp-block-cover__inner-container > .wp-block-group,
  body.faq-page .contact-cover .wp-block-cover__inner-container > .wp-block-group {
    width: 100%;
    margin: 0 !important;
    padding: 0 !important;
  }

  body.contact-page:not(.faq-page) .contact-panels {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    width: 100%;
    margin-left: 0 !important;
    gap: 0 !important;
    overflow: visible !important;
  }

  body.contact-page:not(.faq-page) .contact-panel {
    box-sizing: border-box;
    width: 100%;
    min-height: 0 !important;
    padding: 44px var(--mobile-gutter) 42px !important;
  }

  body.contact-page:not(.faq-page) .contact-panel__title,
  body.contact-page:not(.faq-page) .contact-strip__value {
    overflow-wrap: anywhere;
  }

  body.contact-page:not(.faq-page) .contact-panel--mail .contact-panel__title {
    max-width: 100%;
    white-space: normal !important;
  }

  body.contact-page:not(.faq-page) .contact-panel__title {
    font-size: clamp(1.75rem, 8.7vw, 2.15rem);
  }

  body.contact-page:not(.faq-page) .contact-strip {
    padding: 42px var(--mobile-gutter) 46px;
  }

  body.contact-page:not(.faq-page) .contact-strip__inner {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px 20px;
  }

  body.contact-page:not(.faq-page) .contact-strip__cell:first-child {
    grid-column: 1 / -1;
  }

  /* FAQ keeps every answer verbatim but collapses the long page into
     an accessible accordion on small screens. */
  body.faq-page .faq-wrap {
    padding: 52px var(--mobile-gutter) 60px;
  }

  body.faq-page .faq-item {
    display: block;
    padding: 0;
  }

  body.faq-page .faq-item > h2 {
    margin: 0;
    font-size: clamp(1.4rem, 5.8vw, 1.5rem);
    line-height: 1.02;
  }

  body.faq-page .faq-toggle {
    appearance: none;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 18px;
    width: 100%;
    min-height: 60px;
    margin: 0;
    padding: 19px 0;
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    font-weight: inherit;
    line-height: inherit;
    letter-spacing: inherit;
    text-align: left;
    text-transform: inherit;
    cursor: pointer;
  }

  body.faq-page .faq-toggle::after {
    content: "+";
    display: block;
    color: currentColor;
    font: inherit;
    font-size: 1.35em;
    font-weight: 400;
    line-height: 1;
  }

  body.faq-page .faq-toggle[aria-expanded="true"]::after {
    content: "\2212";
  }

  body.faq-page .faq-answer {
    padding: 0 0 26px;
  }

  body.faq-page .faq-answer[hidden] {
    display: none !important;
  }

  body.faq-page .faq-cta {
    align-items: flex-start;
    padding: 24px;
  }

  /* Menu and press retain their dedicated responsive styling. */
  body.page-id-23 .menu-category-chip,
  body.page-pdn .pdn-chip {
    min-height: 44px;
  }

  body.page-id-23 .menu-page .banner .wp-block-cover.alignfull {
    width: 100% !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
  }

  /* Press uses a landscape campaign image. Preserve the complete frame,
     then continue the existing hero copy on its original ink surface. */
  body.page-pdn .pdn-hero {
    display: grid;
    grid-template-rows: auto auto;
    min-height: 0 !important;
    background: var(--c-ink, #1a1a1a);
  }

  body.page-pdn .pdn-hero__img {
    position: relative;
    inset: auto;
    grid-row: 1;
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    object-position: 50% 100%;
  }

  body.page-pdn .pdn-hero__overlay {
    display: none;
  }

  body.page-pdn .pdn-hero__in {
    position: relative;
    inset: auto;
    grid-row: 2;
    box-sizing: border-box;
    width: 100%;
  }

  /* Booking and reservation management ---------------------- */

  body.page-id-25 {
    margin: 0 !important;
  }

  body.page-id-25 > .wp-site-blocks > header.wp-block-template-part {
    position: absolute;
    inset: 0 0 auto;
    width: 100%;
  }

  body.page-id-25 header .wp-block-group.is-layout-constrained.block-visibility-hide-small-screen,
  body.page-id-25 header .block-visibility-hide-small-screen.has-global-padding.is-layout-constrained,
  body.page-id-25 header .block-visibility-hide-small-screen:has(.polylang-switcher-inline) {
    display: flex !important;
  }

  body.page-id-25 main.wp-block-group {
    margin-top: 0 !important;
  }

  body.page-id-25 .banner:first-child > .wp-block-cover {
    min-height: clamp(420px, 72svh, 620px) !important;
    padding: 104px var(--mobile-gutter) 40px !important;
    align-items: center !important;
  }

  body.page-id-25 .banner:first-child .wp-block-cover__image-background {
    object-position: 50% 50% !important;
  }

  body.page-id-25 main .banner:first-child > .wp-block-cover.manage-cover-image {
    min-height: clamp(300px, 52svh, 460px) !important;
    padding: 0 !important;
  }

  body.page-id-25 .banner:first-child .wp-block-cover__inner-container,
  body.page-id-25 .banner:first-child
    .wp-block-cover__inner-container > .wp-block-group {
    width: 100%;
    margin: 0 !important;
    padding: 0 !important;
  }

  body.page-id-25 .bk {
    padding: 44px var(--mobile-gutter)
      calc(78px + env(safe-area-inset-bottom, 0px));
    overflow: clip;
  }

  body.page-id-25 .bk-title {
    max-width: 100%;
    font-size: clamp(40px, 12vw, 56px);
  }

  body.page-id-25 .bk-chip,
  body.page-id-25 .booking-day,
  body.page-id-25 .bk-cal-arrow,
  body.page-id-25 .bk-cal-jump,
  body.page-id-25 .bk-cta__btn {
    min-height: 48px;
  }

  body.page-id-25 .bk-cta--manage {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.page-id-25 .bk-cta--manage .bk-cta__sum,
  body.page-id-25 .bk-cta--manage .bk-msg {
    grid-column: 1 / -1;
  }

  body.page-id-25 .bk-cta--manage .bk-cta__btn {
    width: 100%;
    justify-content: center;
    padding-inline: 12px;
  }

  body.page-id-25 .bk-cta {
    margin-right: calc(-1 * var(--mobile-gutter));
    margin-left: calc(-1 * var(--mobile-gutter));
    padding-right: var(--mobile-gutter);
    padding-left: var(--mobile-gutter);
  }

  /* Footer --------------------------------------------------- */

  footer .has-light-pink-background-color > .wp-block-group:first-child,
  footer .has-cream-background-color > .wp-block-group:first-child {
    padding-top: clamp(52px, 14vw, 72px) !important;
    padding-right: 0 !important;
    padding-bottom: 40px !important;
    padding-left: 0 !important;
  }

  footer .wp-block-column > .has-global-padding {
    padding-inline: 0 !important;
  }

  footer .wp-block-columns {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr);
    align-items: start !important;
    gap: 26px !important;
  }

  footer .wp-block-columns > .wp-block-column {
    width: auto !important;
    max-width: none !important;
    min-width: 0;
    flex-basis: auto !important;
    text-align: left !important;
  }

  footer .wp-block-column.float-right,
  footer .wp-block-column.is-content-justification-right {
    display: flex;
    align-items: flex-start;
    justify-content: flex-start !important;
    text-align: left !important;
  }

  footer .wp-block-column.float-right > .wp-block-group,
  footer .wp-block-column.is-content-justification-right > .wp-block-group {
    margin-right: auto !important;
    margin-left: 0 !important;
    padding: 0 !important;
  }

  footer .wp-block-column.float-right p,
  footer .wp-block-column.is-content-justification-right p {
    margin-right: auto !important;
    margin-left: 0 !important;
    text-align: left !important;
  }

  footer #logo-nero img,
  footer #logo-nero svg {
    width: clamp(132px, 40vw, 160px) !important;
  }

  /* Preserve the original alignfull behaviour of the black bar. */
  footer .wp-block-group.has-black-background-color {
    width: calc(100% + (2 * var(--mobile-gutter))) !important;
    max-width: none !important;
    margin-right: calc(-1 * var(--mobile-gutter)) !important;
    margin-left: calc(-1 * var(--mobile-gutter)) !important;
    padding: 16px var(--mobile-gutter) !important;
  }
}

@media (max-width: 479.98px) {
  body.page-id-103 main .banner:first-child .wp-block-buttons {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 379.98px) {
  #logo-bianco img,
  #logo-bianco svg {
    width: 108px !important;
  }

  header .wp-block-group.alignwide,
  header .wp-block-group.is-content-justification-space-between {
    gap: 5px !important;
  }

  .wp-block-navigation__responsive-container-open {
    width: 42px;
    min-width: 42px !important;
  }

  body.contact-page:not(.faq-page) .contact-strip__inner {
    grid-template-columns: minmax(0, 1fr);
  }

  body.contact-page:not(.faq-page) .contact-strip__cell:first-child {
    grid-column: auto;
  }

  body.contact-page:not(.faq-page) .contact-panel--mail .contact-panel__title {
    font-size: 0.88rem;
    letter-spacing: -0.055em;
    white-space: nowrap !important;
    overflow-wrap: normal;
    word-break: normal;
  }

  footer .wp-block-columns {
    grid-template-columns: minmax(0, 1fr);
    align-items: start !important;
  }

  footer .wp-block-column.float-right,
  footer .wp-block-column.is-content-justification-right {
    justify-content: flex-start !important;
    text-align: left !important;
  }

  footer .wp-block-column.float-right > .wp-block-group,
  footer .wp-block-column.is-content-justification-right > .wp-block-group,
  footer .wp-block-column.float-right p,
  footer .wp-block-column.is-content-justification-right p {
    margin-right: auto !important;
    margin-left: 0 !important;
    text-align: left !important;
  }
}

@media (min-width: 560px) and (max-width: 767.98px) {
  footer .wp-block-columns {
    grid-template-columns: minmax(180px, 0.85fr) minmax(0, 1.15fr);
    align-items: end !important;
    gap: 24px !important;
  }

  footer .wp-block-column.float-right,
  footer .wp-block-column.is-content-justification-right {
    align-items: flex-end;
    justify-content: flex-end !important;
    text-align: right !important;
  }

  footer .wp-block-column.float-right > .wp-block-group,
  footer .wp-block-column.is-content-justification-right > .wp-block-group,
  footer .wp-block-column.float-right p,
  footer .wp-block-column.is-content-justification-right p {
    margin-right: 0 !important;
    margin-left: auto !important;
    text-align: right !important;
  }
}

@media (min-width: 768px) and (max-width: 1023.98px) {
  body,
  .wp-site-blocks {
    max-width: 100%;
    overflow-x: hidden;
    overflow-x: clip;
  }

  body.has-banner > .wp-site-blocks > header.wp-block-template-part {
    position: absolute;
    inset: 0 0 auto;
    z-index: 1000;
    width: 100%;
  }

  body.has-banner main,
  body.has-banner main.wp-block-group,
  body.page-pdn main,
  body.page-pdn main.wp-block-group {
    margin-top: 0 !important;
  }

  body.page-id-32 main.wp-block-group {
    min-height: clamp(480px, 58svh, 620px);
    margin-top: 0 !important;
    padding: 0 !important;
    background: var(--camillo-ink, #1a1a1a);
  }

  body.page-id-32 .local-tips-mobile-title {
    box-sizing: border-box;
    display: flex;
    min-height: inherit;
    align-items: flex-end;
    padding: 132px 36px 56px;
    color: var(--camillo-pink, #f5c1cd);
  }

  body.page-id-32 .local-tips-mobile-title h1 {
    max-width: 9ch;
    margin: 0;
    color: inherit;
    font-size: clamp(4.5rem, 10vw, 6.5rem);
    line-height: 0.88;
  }

  header.wp-block-template-part > .wp-block-group {
    padding-inline: 0 !important;
  }

  header .wp-block-group.alignwide,
  header .wp-block-group.is-content-justification-space-between {
    padding-inline: 28px !important;
  }

  .wp-block-navigation__responsive-container-open {
    display: grid !important;
    place-items: center;
    width: 44px;
    min-width: 44px !important;
    height: 46px;
    min-height: 46px !important;
    padding: 7px 0 7px 4px !important;
  }

  .wp-block-navigation__responsive-container-open svg,
  .wp-block-navigation__responsive-container-open.custom-open-icon svg {
    width: 40px !important;
    height: 29px !important;
  }

  body.page-id-103 main .banner:first-child > .wp-block-cover.alignfull {
    display: flex !important;
    min-height: clamp(560px, 70svh, 700px) !important;
    padding: 118px 36px 48px !important;
    align-items: flex-end !important;
    background: var(--camillo-ink, #1a1a1a);
  }

  body.page-id-103 main .banner:first-child .wp-block-cover__image-background {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: 70% 50% !important;
  }

  body.page-id-103 main .banner:first-child .wp-block-cover__background {
    display: block !important;
    background: linear-gradient(
      90deg,
      rgb(0 0 0 / 0.68) 0%,
      rgb(0 0 0 / 0.38) 48%,
      rgb(0 0 0 / 0.08) 100%
    ) !important;
    opacity: 1 !important;
  }

  body.page-id-103 main .banner:first-child .wp-block-cover__inner-container {
    position: relative !important;
    box-sizing: border-box;
    width: 100%;
    max-width: none !important;
    padding: 0 !important;
  }

  body.page-id-103 main .banner:first-child
    .wp-block-cover__inner-container > .wp-block-group {
    width: 100%;
    max-width: 760px !important;
    margin: 0 auto !important;
    padding: 0 !important;
  }

  body.page-id-103 main .banner:first-child .wp-block-buttons {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch !important;
    gap: 12px !important;
    width: min(100%, 520px);
  }

  body.page-id-103 main .banner:first-child .wp-block-button,
  body.page-id-103 main .banner:first-child .wp-block-button__link {
    width: 100% !important;
    height: 100%;
  }

  body.page-id-103 main .banner:first-child .wp-block-button__link {
    display: grid;
    box-sizing: border-box;
    min-height: 50px;
    place-items: center;
  }

  /* Keep the desktop 2:1 relationship on tablets while respecting
     both source ratios instead of forcing two equal-height crops. */
  body.page-id-103 .entry-content > .wp-block-group:nth-child(3)
    .wp-block-columns {
    display: grid !important;
    grid-template-columns: 58% 42%;
    align-items: start;
    gap: 0 !important;
    flex-wrap: nowrap !important;
  }

  body.page-id-103 .entry-content > .wp-block-group:nth-child(3)
    .wp-block-column {
    width: auto !important;
    max-width: none !important;
    min-width: 0;
    flex-basis: auto !important;
  }

  body.page-id-103 .entry-content > .wp-block-group:nth-child(3)
    .wp-block-column:first-child .wp-block-cover {
    min-height: 0 !important;
    aspect-ratio: 1024 / 970 !important;
  }

  body.page-id-103 .entry-content > .wp-block-group:nth-child(3)
    .wp-block-column:nth-child(2) .wp-block-cover {
    min-height: 0 !important;
    aspect-ratio: 702 / 972 !important;
  }

  /* Landscape OUR VIBE photography also remains uncropped on portrait
     tablets. This mirrors the phone reflow without changing its styling. */
  body.page-id-103 .entry-content > .wp-block-group:nth-child(4) .wp-block-cover {
    display: grid !important;
    grid-template-rows: auto auto;
    min-height: 0 !important;
    padding: 0 !important;
    align-items: stretch !important;
    background-color: var(--camillo-ink, #1a1a1a);
  }

  body.page-id-103 .entry-content > .wp-block-group:nth-child(4)
    .wp-block-cover__image-background {
    position: relative !important;
    inset: auto !important;
    grid-row: 1;
    display: block;
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 1024 / 683;
    object-fit: contain !important;
    object-position: 50% 50% !important;
  }

  body.page-id-103 .entry-content > .wp-block-group:nth-child(4)
    .wp-block-cover__background {
    display: none !important;
  }

  body.page-id-103 .entry-content > .wp-block-group:nth-child(4)
    .wp-block-cover__inner-container {
    position: relative !important;
    grid-row: 2;
    box-sizing: border-box;
    width: 100%;
    max-width: none !important;
    padding: 56px 28px 60px !important;
  }

  body.page-id-103 .entry-content > .wp-block-group:nth-child(4)
    .wp-block-cover__inner-container > .wp-block-group,
  body.page-id-103 .entry-content > .wp-block-group:nth-child(4)
    .wp-block-cover__inner-container > .wp-block-group > .wp-block-group {
    width: 100%;
    max-width: 680px !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  body.page-id-103 .entry-content > .wp-block-group:nth-child(4) .wp-block-spacer {
    display: none !important;
  }

  /* Tablets have enough room to recover the original side-by-side rhythm.
     Keep one image and one copy panel in every section instead of carrying
     the long phone stack into an almost desktop-sized viewport. */
  body.page-id-30 .entry-content > .wp-block-group:nth-child(2) .wp-block-columns,
  body.page-id-30 .entry-content > .wp-block-group:nth-child(3) .wp-block-columns {
    display: grid !important;
    gap: 0 !important;
    margin: 0 !important;
    align-items: stretch !important;
  }

  body.page-id-30 .entry-content > .wp-block-group:nth-child(2) .wp-block-columns {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    min-height: clamp(600px, 70vw, 720px);
  }

  body.page-id-30 .entry-content > .wp-block-group:nth-child(3) .wp-block-columns {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    min-height: clamp(600px, 70vw, 720px);
  }

  body.page-id-30 .entry-content > .wp-block-group:nth-child(2)
    .wp-block-column,
  body.page-id-30 .entry-content > .wp-block-group:nth-child(3)
    .wp-block-column {
    width: auto !important;
    min-width: 0;
    max-width: none !important;
    flex-basis: auto !important;
    align-self: stretch !important;
  }

  body.page-id-30 .entry-content > .wp-block-group:nth-child(2)
    .wp-block-column:has(h2) > .wp-block-group,
  body.page-id-30 .entry-content > .wp-block-group:nth-child(3)
    .wp-block-column:has(h2) > .wp-block-group {
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: 100%;
    height: 100%;
    margin: 0 !important;
    padding: clamp(46px, 6vw, 64px) clamp(38px, 5vw, 54px) !important;
  }

  body.page-id-30 .wp-block-columns:has(img[src*="mic-dough"]) h2 > br,
  body.page-id-30 .entry-content > .wp-block-group:nth-child(4)
    h2 > br:first-child {
    display: none;
  }

  body.page-id-30 .wp-block-columns:has(img[src*="mic-tortelli"]) .wp-block-cover {
    width: 100%;
    max-width: none;
    height: 100%;
    min-height: inherit !important;
    margin: 0 !important;
    aspect-ratio: auto !important;
  }

  body.page-id-30 .wp-block-columns:has(img[src*="mic-dough"]) .wp-block-cover {
    width: 100%;
    max-width: none;
    height: 100%;
    min-height: inherit !important;
    margin: 0 !important;
    aspect-ratio: auto !important;
  }

  body.page-id-30 main .banner:first-child > .wp-block-cover.alignfull {
    min-height: clamp(700px, 76svh, 820px) !important;
    padding: 118px 36px 48px !important;
    align-items: center !important;
  }

  body.page-id-30 .entry-content > .wp-block-group:nth-child(4) > .wp-block-cover {
    display: flex !important;
    min-height: clamp(720px, 82svh, 840px) !important;
    padding: 0 !important;
    align-items: center !important;
    background-color: #000;
  }

  body.page-id-30 .entry-content > .wp-block-group:nth-child(4)
    > .wp-block-cover > .wp-block-cover__image-background {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: 55% 50% !important;
  }

  body.page-id-30 .entry-content > .wp-block-group:nth-child(4)
    > .wp-block-cover > .wp-block-cover__background {
    display: block !important;
    z-index: 1;
    background: linear-gradient(
      90deg,
      transparent 0 42%,
      rgba(0, 0, 0, 0.88) 56%,
      #000 72%
    ) !important;
    opacity: 1 !important;
  }

  body.page-id-30 .entry-content > .wp-block-group:nth-child(4)
    > .wp-block-cover > .wp-block-cover__inner-container {
    position: relative !important;
    z-index: 2;
    box-sizing: border-box;
    width: 100%;
    padding: 52px 42px !important;
  }

  body.page-id-30 .entry-content > .wp-block-group:nth-child(4) .wp-block-columns {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    gap: 32px !important;
    margin: 0 !important;
  }

  body.page-id-30 .entry-content > .wp-block-group:nth-child(4)
    .wp-block-column {
    width: auto !important;
    min-width: 0;
    max-width: none !important;
    flex-basis: auto !important;
  }

  body.page-id-30 .entry-content > .wp-block-group:nth-child(4)
    .wp-block-column:has(h2) > .wp-block-group {
    margin: 0 !important;
    padding: 0 !important;
  }

  body.page-id-27 main .banner > .wp-block-cover.alignfull {
    min-height: clamp(600px, 68svh, 720px) !important;
    padding: 118px 36px 48px !important;
    align-items: center !important;
  }

  body.page-id-27 .banner .wp-block-cover__image-background {
    object-position: 50% 70% !important;
  }

  body.page-id-27 .banner .wp-block-cover__background {
    background: transparent !important;
    opacity: 0 !important;
  }

  body.page-id-27 .banner .wp-block-cover__inner-container,
  body.page-id-27 .banner .wp-block-cover__inner-container > .wp-block-group {
    box-sizing: border-box;
    width: 100%;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  body.page-id-27 .who-we-are {
    top: 0 !important;
  }

  body.page-id-27 main .has-black-background-color .wp-block-columns {
    padding-bottom: clamp(48px, 6vw, 64px) !important;
  }

  body.contact-page main .banner > .contact-cover.wp-block-cover.alignfull,
  body.faq-page main .banner > .contact-cover.wp-block-cover.alignfull {
    min-height: clamp(520px, 62svh, 660px) !important;
    padding: 118px 36px 48px !important;
    align-items: flex-end !important;
  }

  body.page-pdn .pdn-hero {
    display: grid;
    grid-template-rows: auto auto;
    min-height: 0 !important;
    background: var(--c-ink, #1a1a1a);
  }

  body.page-pdn .pdn-hero__img {
    position: relative;
    inset: auto;
    grid-row: 1;
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    object-position: 50% 100%;
  }

  body.page-pdn .pdn-hero__overlay {
    display: none;
  }

  body.page-pdn .pdn-hero__in {
    position: relative;
    inset: auto;
    grid-row: 2;
    box-sizing: border-box;
    width: 100%;
  }

  body.page-id-25 .banner:first-child > .wp-block-cover {
    min-height: clamp(500px, 64vh, 700px) !important;
    padding: 104px 28px 40px !important;
    align-items: center !important;
  }

  body.page-id-25 main .banner:first-child > .wp-block-cover.manage-cover-image {
    min-height: clamp(360px, 48vh, 520px) !important;
    padding: 0 !important;
  }

  body.page-id-23 .menu-page .banner .wp-block-cover.alignfull,
  body.contact-page main .banner > .contact-cover.wp-block-cover.alignfull {
    width: 100% !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
  }

  body.contact-page .contact-panels,
  body.contact-page .contact-strip {
    box-sizing: border-box;
    width: 100% !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
  }

  body.contact-page .contact-panel--mail .contact-panel__title {
    max-width: 100%;
    white-space: normal !important;
    overflow-wrap: anywhere;
  }

  footer .wp-block-columns {
    display: grid !important;
    grid-template-columns: minmax(180px, 0.85fr) minmax(0, 1.15fr);
    align-items: end !important;
    gap: 24px !important;
  }

  footer .wp-block-columns > .wp-block-column {
    width: auto !important;
    max-width: none !important;
    min-width: 0;
    flex-basis: auto !important;
  }

  footer .wp-block-column.float-right,
  footer .wp-block-column.is-content-justification-right {
    justify-content: flex-end !important;
    text-align: right !important;
  }
}

/* On phones the cocktail image and copy share one black editorial field.
   The copy panel overlaps the image edge instead of becoming another full
   width row below it. */
@media (max-width: 767.98px) {
  body.page-id-30 .entry-content > .wp-block-group:nth-child(4) > .wp-block-cover {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: auto clamp(38px, 12vw, 50px) auto;
    min-height: 0 !important;
    padding: clamp(34px, 10vw, 44px) 0 0 !important;
    align-items: stretch !important;
    background-color: #000;
  }

  body.page-id-30 .entry-content > .wp-block-group:nth-child(4)
    > .wp-block-cover > .wp-block-cover__image-background {
    position: relative !important;
    inset: auto !important;
    z-index: 1;
    grid-area: 1 / 1 / 3 / 2;
    justify-self: start;
    width: 84% !important;
    height: auto !important;
    aspect-ratio: 4 / 3;
    object-fit: cover !important;
    object-position: 0 50% !important;
  }

  body.page-id-30 .entry-content > .wp-block-group:nth-child(4)
    > .wp-block-cover > .wp-block-cover__background {
    display: none !important;
  }

  body.page-id-30 .entry-content > .wp-block-group:nth-child(4)
    > .wp-block-cover > .wp-block-cover__inner-container {
    position: relative !important;
    z-index: 2;
    grid-area: 2 / 1 / 4 / 2;
    justify-self: end;
    box-sizing: border-box;
    width: 92%;
    padding: clamp(34px, 9vw, 44px) var(--mobile-gutter)
      clamp(54px, 14vw, 70px) !important;
    background: #000;
  }

  body.page-id-30 .entry-content > .wp-block-group:nth-child(4) .wp-block-columns {
    display: block !important;
    margin: 0 !important;
  }

  body.page-id-30 .entry-content > .wp-block-group:nth-child(4)
    .wp-block-column:first-child:empty {
    display: none !important;
  }

  body.page-id-30 .entry-content > .wp-block-group:nth-child(4)
    .wp-block-column:has(h2) {
    width: 100% !important;
    max-width: none !important;
  }

  body.page-id-30 .entry-content > .wp-block-group:nth-child(4)
    .wp-block-column:has(h2) > .wp-block-group {
    margin: 0 !important;
    padding: 0 !important;
  }
}

@media (min-width: 768px) and (max-width: 899.98px) {
  body.page-id-27 main .has-black-background-color .wp-block-columns {
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
    margin: 0 !important;
  }

  body.page-id-27 main .has-black-background-color .wp-block-column {
    width: 100% !important;
    max-width: none !important;
    flex-basis: auto !important;
  }

  body.page-id-27 main .has-black-background-color .who-we-are {
    width: min(76%, 620px);
    margin: 0 clamp(28px, 4vw, 40px) 0 auto !important;
  }

  body.page-id-27 main .has-black-background-color .who-we-are img {
    display: block;
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 4 / 5;
    object-fit: contain;
  }
}

@media (min-width: 1024px) {
  body.page-id-103 main .banner:first-child .wp-block-buttons {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch !important;
    gap: 12px !important;
    width: min(100%, 560px);
  }

  body.page-id-103 main .banner:first-child .wp-block-button,
  body.page-id-103 main .banner:first-child .wp-block-button__link {
    width: 100% !important;
    height: 100%;
  }

  body.page-id-103 main .banner:first-child .wp-block-button__link {
    display: grid;
    box-sizing: border-box;
    min-height: 56px;
    place-items: center;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}
