/* Christ's College Hospitality design tokens.
   Generated from the design system's tokens.json (source: christscollegeconference theme).
   Fluid values scale in a straight line from a 767px viewport (min) to 1440px (max). */

@font-face {
  font-family: "Gantari";
  src: url("fonts/Gantari-Variable.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Gantari";
  src: url("fonts/Gantari-Italic-Variable.woff2") format("woff2");
  font-weight: 100 900;
  font-style: italic;
  font-display: swap;
}

:root {
  --font-sans: "Gantari", sans-serif;
  --color-black: #000000;
  --color-white: #ffffff;
  --color-grey: #e5e5e5;
  --color-selection: #adcfe8;
  --color-bg: #ffffff;
  --color-bg-grey: #f3f3f3;
  --color-bg-blue: #f6f9fe;
  --color-primary: #133673;
  --color-accent: #c51a1b;
  --color-keyline: #dae4e7;
  --color-yellow: #fabb05;
  --color-font: #133673;
  --color-font-grey: #a9a9a9;
  --color-primary-hover: #113067;
  --color-accent-hover: #b11718;
  --color-icon: #bcbcbc;
  --color-error: #e80000;
  --overlay-top: rgba(0, 0, 0, 0.1);
  --overlay-bottom: rgba(0, 0, 0, 0.2);
  --overlay-top-mobile: rgba(0, 0, 0, 0.3);
  --overlay-bottom-mobile: rgba(0, 0, 0, 0.5);
  --focus-ring: var(--color-primary);
  --focus-ring-inverse: var(--color-white);
  --space-gutter: clamp(1.25rem, -0.8869rem + 4.4577vw, 3.125rem);
  --space-section: clamp(1.875rem, -2.3988rem + 8.9153vw, 5.625rem);
  --space-hero: clamp(1.875rem, -0.9742rem + 5.9435vw, 4.375rem);
  --space-grid: clamp(1.25rem, -0.8869rem + 4.4577vw, 3.125rem);
  --space-grid-wide: clamp(1.25rem, -2.3115rem + 7.4294vw, 4.375rem);
  --space-grid-tight: clamp(1.25rem, 0.5377rem + 1.4859vw, 1.875rem);
  --space-grid-gallery: clamp(0.9375rem, -0.1309rem + 2.2288vw, 1.875rem);
  --space-card: clamp(0.9375rem, -0.1309rem + 2.2288vw, 1.875rem);
  --space-panel: clamp(0.9375rem, -0.8432rem + 3.7147vw, 2.5rem);
  --space-text: clamp(1.25rem, 0.9651rem + 0.5944vw, 1.5rem);
  --space-section-header: clamp(1.25rem, -0.1746rem + 2.9718vw, 2.5rem);
  --space-header: clamp(1.25rem, 0.8226rem + 0.8915vw, 1.625rem);
  --space-footer: clamp(1.875rem, 0.4504rem + 2.9718vw, 3.125rem);
  --space-cta: clamp(1.875rem, 0.8066rem + 2.2288vw, 2.8125rem);
  --space-accordion: clamp(1.25rem, 0.5377rem + 1.4859vw, 1.875rem);
  --space-nav: clamp(0.9375rem, 0.2252rem + 1.4859vw, 1.5625rem);
  --space-button-y: clamp(0.625rem, 0.4113rem + 0.4458vw, 0.8125rem);
  --space-button-left: clamp(1.25rem, 0.5377rem + 1.4859vw, 1.875rem);
  --space-button-right: clamp(2.5rem, 1.7877rem + 1.4859vw, 3.125rem);
  --space-3: 3px;
  --space-5: 5px;
  --space-10: 10px;
  --space-12: 12px;
  --space-15: 15px;
  --space-20: 20px;
  --space-25: 25px;
  --space-30: 30px;
  --space-35: 35px;
  --space-50: 50px;
  --space-60: 60px;
  --container: 1410px;
  --container-thin: 1050px;
  --container-wide: 1700px;
  --logo-height: clamp(3.125rem, 2.0566rem + 2.2288vw, 4.0625rem);
  --footer-logo-height: clamp(2.5rem, 2.1439rem + 0.7429vw, 2.8125rem);
  --title-bar-width: 115px;
  --title-bar-height: 5px;
  --feature-height: clamp(18.75rem, 8.0656rem + 22.2883vw, 28.125rem);
  --carousel-arrow: 42px;
  --carousel-dot: 10px;
  --page-number: 35px;
  --burger: 40px;
  --bullet: clamp(0.3125rem, 0.17rem + 0.2972vw, 0.4375rem);
  --social-icon: 30px;
  --social-icon-footer: 35px;
  --highlight-image: 150px;
  --hero-logo: clamp(3.4375rem, 2.7252rem + 1.4859vw, 4.0625rem);
  --dropdown-width: 400px;
  --drawer-width: 456px;
  --radius-xs: 3px;
  --radius-sm: 4px;
  --radius-md: 5px;
  --radius-lg: 10px;
  --radius-full: 50%;
  --shadow-dropdown: 0px 5px 20px 0px rgba(0, 0, 0, 0.2);
  --shadow-drawer: 0px 0px 5px 0px rgba(0, 0, 0, 0.3);
  --opacity-disabled: 0.5;
  --opacity-underlay: 0.2;
  --z-dropdown: 5;
  --z-skip: 10;
  --z-carousel-arrow: 99;
  --z-header: 999;
  --z-underlay: 9998;
  --z-drawer: 9999;
}

/* Type styles: put these classes on text (the components do). */
.fontHeroTitle {
  font-family: var(--font-sans);
  font-size: clamp(2.1875rem, 0.4068rem + 3.7147vw, 3.75rem);
  line-height: 1;
  font-weight: 700;
}
.fontSectionTitle {
  font-family: var(--font-sans);
  font-size: clamp(1.875rem, 0.4504rem + 2.9718vw, 3.125rem);
  line-height: 1;
  font-weight: 700;
}
.fontHeader1 {
  font-family: var(--font-sans);
  font-size: clamp(1.875rem, 1.5189rem + 0.7429vw, 2.1875rem);
  line-height: 1.15;
  font-weight: 600;
}
.fontHeader2 {
  font-family: var(--font-sans);
  font-size: clamp(1.5625rem, 1.2064rem + 0.7429vw, 1.875rem);
  line-height: 1.25;
  font-weight: 600;
}
.fontHeader3 {
  font-family: var(--font-sans);
  font-size: clamp(1.3125rem, 0.9564rem + 0.7429vw, 1.625rem);
  line-height: 1.25;
  font-weight: 600;
}
.fontHeader4 {
  font-family: var(--font-sans);
  font-size: clamp(1.125rem, 0.6976rem + 0.8915vw, 1.5rem);
  line-height: 1.5;
  font-weight: 600;
}
.fontHeader5 {
  font-family: var(--font-sans);
  font-size: clamp(1.0625rem, 0.7064rem + 0.7429vw, 1.375rem);
  line-height: 1.5;
  font-weight: 600;
}
.fontHeader6 {
  font-family: var(--font-sans);
  font-size: clamp(1rem, 0.7151rem + 0.5944vw, 1.25rem);
  line-height: 1.5;
  font-weight: 600;
}
.fontBodyLarger {
  font-family: var(--font-sans);
  font-size: clamp(1.125rem, 0.6264rem + 1.0401vw, 1.5625rem);
  line-height: 1.5;
  font-weight: 400;
}
.fontBodyLarge {
  font-family: var(--font-sans);
  font-size: clamp(1.0625rem, 0.6351rem + 0.8915vw, 1.4375rem);
  line-height: 1.5;
  font-weight: 400;
}
.fontBodyRegular {
  font-family: var(--font-sans);
  font-size: clamp(1rem, 0.7151rem + 0.5944vw, 1.25rem);
  line-height: 1.5;
  font-weight: 400;
}
.fontBodySmall {
  font-family: var(--font-sans);
  font-size: clamp(0.9375rem, 0.7238rem + 0.4458vw, 1.125rem);
  line-height: 1.5;
  font-weight: 400;
}
.fontBodySmaller {
  font-family: var(--font-sans);
  font-size: clamp(0.875rem, 0.7325rem + 0.2972vw, 1rem);
  line-height: 1.5;
  font-weight: 400;
}
.fontQuote {
  font-family: var(--font-sans);
  font-size: clamp(1.3125rem, 0.9564rem + 0.7429vw, 1.625rem);
  line-height: 1.25;
  font-weight: 600;
  font-style: italic;
}
.fontTestimonial {
  font-family: var(--font-sans);
  font-size: clamp(1rem, 0.7151rem + 0.5944vw, 1.25rem);
  line-height: 1.4;
  font-weight: 400;
}
.fontButton {
  font-family: var(--font-sans);
  font-size: clamp(0.9375rem, 0.7238rem + 0.4458vw, 1.125rem);
  line-height: 1.5;
  font-weight: 600;
}
.fontNavigation {
  font-family: var(--font-sans);
  font-size: clamp(0.9375rem, 0.7238rem + 0.4458vw, 1.125rem);
  line-height: 1.5;
  font-weight: 600;
}
.fontNavigationSub {
  font-family: var(--font-sans);
  font-size: clamp(0.875rem, 0.7325rem + 0.2972vw, 1rem);
  line-height: 1.5;
  font-weight: 500;
}
.fontLabel {
  font-family: var(--font-sans);
  font-size: clamp(1rem, 0.7151rem + 0.5944vw, 1.25rem);
  line-height: 1.5;
  font-weight: 600;
}
.fontFooterHeading {
  font-family: var(--font-sans);
  font-size: clamp(0.875rem, 0.7325rem + 0.2972vw, 1rem);
  line-height: 1.5;
  font-weight: 500;
  text-transform: uppercase;
}
.fontCiteName {
  font-family: var(--font-sans);
  font-size: clamp(0.875rem, 0.7325rem + 0.2972vw, 1rem);
  line-height: 1;
  font-weight: 700;
  text-transform: uppercase;
}

/* Christ's College Hospitality: component styles.
   Ported from the christscollegeconference WordPress theme (static/css/*.scss and blocks/*).
   Colours, spacing, radii, shadows and sizes come from tokens.css (var(--…)). Text sizes come from the
   type classes in tokens.css (.fontHeader1, .fontBodyRegular, …), which the components put on their elements.
   Components render the 1440px design. Layouts collapse at the theme's breakpoints: 1012px (tablet), 767px (mobile). */

/* ---------- Base (zero specificity, like the theme's base layer) ---------- */
:where(html) { font-size: 100%; }
:where(body) { margin: 0; padding: 0; font-family: var(--font-sans); font-weight: 400; color: var(--color-font); background: var(--color-bg); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
:where(*, *::before, *::after) { box-sizing: border-box; }
::selection { color: var(--color-white); background: var(--color-selection); }
:where(img) { display: block; max-width: 100%; }
:where(input, textarea, select, button) { font-family: var(--font-sans); font-weight: 400; }
:where(a) { -webkit-tap-highlight-color: transparent; color: var(--color-accent); text-decoration: none; }
:where(a:hover) { text-decoration: none; color: var(--color-font); }
:where(h1, h2, h3, h4, h5, h6) { font-family: var(--font-sans); color: var(--color-font); }
:where(p, h1, h2, h3, h4, h5, h6) { margin-top: 0; margin-bottom: var(--space-text); }
:where(p, h1, h2, h3, h4, h5, h6):last-child { margin-bottom: 0; }
/* Element defaults for prose. They mirror fontBodyRegular and fontHeader1–6. Components put the classes on instead. */
:where(p, figcaption, small, td, th, label, blockquote, cite, input, textarea, li, pre) { font-size: 1.25rem; line-height: 1.5; color: var(--color-font); }
:where(h1) { font-size: 2.1875rem; line-height: 1.15; font-weight: 600; }
:where(h2) { font-size: 1.875rem; line-height: 1.25; font-weight: 600; }
:where(h3) { font-size: 1.625rem; line-height: 1.25; font-weight: 600; }
:where(h4) { font-size: 1.5rem; line-height: 1.5; font-weight: 600; }
:where(h5) { font-size: 1.375rem; line-height: 1.5; font-weight: 600; }
:where(h6) { font-size: 1.25rem; line-height: 1.5; font-weight: 600; }
:where(p, li) :where(a:not(.button)) { border-bottom: solid 1px var(--color-accent); }
:where(p, li) :where(a:not(.button)):hover { border-bottom: solid 1px var(--color-font); }
/* Intentional addition: the live theme sets no focus style. */
:where(a, button, input, select, textarea, [tabindex]):focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 2px; }
:where(.footer, .feature) :where(a, button):focus-visible { outline-color: var(--focus-ring-inverse); }

/* ---------- Skip link ---------- */
.skip { position: absolute; z-index: var(--z-skip); top: -100px; left: 10px; background-color: var(--color-font); padding: 10px; color: var(--color-white); font-weight: 600; }
.skip:hover { color: var(--color-white); }
.skip:focus { top: 10px; }

/* ---------- Containers (container / containerThin / containerWide mixins) ---------- */
.hero .hero-inner, .cards .cards-inner, .posts .posts-inner, .textimage .textimage-inner, .testimonials .testimonials-inner,
.cta .cta-inner, .accordion .accordion-inner, .highlights .highlights-inner, .gallery .gallery-inner, .embed.embed--fullwidth .embed-inner,
.article .article-inner, .image .image-inner, .singlepage .singlepage-inner, .searchresults .searchresults-inner {
  position: relative; margin: 0 auto; width: 100%; max-width: var(--container); padding-left: var(--space-gutter); padding-right: var(--space-gutter);
}
.embed.embed--thin .embed-inner, .singlepage .singlepage-inner.singlepage-inner--thin, .feature .feature-inner {
  position: relative; margin: 0 auto; width: 100%; max-width: var(--container-thin); padding-left: var(--space-gutter); padding-right: var(--space-gutter);
}

/* ---------- Block options (blocks mixin: padding_top, padding_bottom, bg_grey) ---------- */
:is(.cards, .posts, .textimage, .testimonials, .cta, .accordion, .highlights, .gallery, .embed, .article, .image, .singlepage, .searchresults).padding_top { padding-top: var(--space-section); }
:is(.cards, .posts, .textimage, .testimonials, .cta, .accordion, .highlights, .gallery, .embed, .article, .image, .singlepage, .searchresults).padding_bottom { padding-bottom: var(--space-section); }
:is(.cards, .posts, .textimage, .testimonials, .cta, .accordion, .highlights, .gallery, .embed, .article, .image, .singlepage, .searchresults).bg_grey { background-color: var(--color-bg-grey); }

/* ---------- Button (button mixin) ---------- */
.button {
  color: var(--color-white); background-color: var(--color-primary); display: inline-block; transition: 0.2s all; cursor: pointer; border: none; font-weight: 600; border-radius: var(--radius-md);
  padding: var(--space-button-y) var(--space-button-right) var(--space-button-y) var(--space-button-left);
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width=%2213%22 height=%2223%22 viewBox=%220 0 13 23%22 fill=%22none%22 xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cpath d=%22M12.5651 12.5651L2.5651 22.5651C2.28331 22.8469 1.90112 23.0052 1.5026 23.0052C1.10409 23.0052 0.721894 22.8469 0.440102 22.5651C0.158309 22.2833 2.96917e-09 21.9011 0 21.5026C-2.96917e-09 21.1041 0.158309 20.7219 0.440102 20.4401L9.37885 11.5039L0.442602 2.5651C0.303073 2.42557 0.192391 2.25993 0.116879 2.07762C0.0413657 1.89532 0.00249958 1.69993 0.00249958 1.5026C0.00249958 1.30528 0.0413657 1.10988 0.116879 0.927581C0.192391 0.745277 0.303073 0.579632 0.442602 0.440102C0.582132 0.300573 0.747777 0.189892 0.930081 0.114379C1.11239 0.0388661 1.30778 -1.47018e-09 1.5051 0C1.70243 1.47018e-09 1.89782 0.0388661 2.08012 0.114379C2.26243 0.189892 2.42807 0.300573 2.5676 0.440102L12.5676 10.4401C12.7073 10.5796 12.818 10.7453 12.8935 10.9278C12.969 11.1102 13.0078 11.3057 13.0075 11.5031C13.0073 11.7005 12.9681 11.896 12.8922 12.0782C12.8163 12.2605 12.7051 12.4259 12.5651 12.5651Z%22 fill=%22%23ffffff%22/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: calc(100% - 20px) 50%; background-size: 7px;
  text-decoration: none; font-family: var(--font-sans);
}
@media (max-width: 1012px) { .button { background-position: calc(100% - 18px) 50%; } }
@media (max-width: 767px) { .button { background-position: calc(100% - 17px) 50%; } }
.button:hover { border: none; color: var(--color-white); background-color: var(--color-primary-hover); }
.button.button--alt { background-color: var(--color-accent); }
.button.button--alt:hover { border: none; color: var(--color-white); background-color: var(--color-accent-hover); }
ul.buttons { list-style-type: none; margin: 0 0 24px; padding: 0; display: flex; align-items: center; flex-wrap: wrap; }
ul.buttons li { margin-right: var(--space-15); }
ul.buttons li:last-child { margin-right: 0; }
ul.buttons li::before { display: none !important; }

/* ---------- Header ---------- */
.header { background-color: var(--color-white); }
.header.header--fixed { position: fixed; z-index: var(--z-header); top: 0; left: 0; right: 0; }
.header .header-container { position: relative; margin: 0 auto; width: 100%; max-width: var(--container-wide); padding: var(--space-header) var(--space-gutter); }
.header .header-inner { display: flex; align-items: center; }
.header .header-logo a { display: block; border: 0; }
.header .header-logo a img { height: var(--logo-height); width: auto; }
.header .header-navigation { list-style-type: none; margin: 0; padding: 0; display: flex; align-items: center; flex-wrap: wrap; z-index: var(--z-carousel-arrow); }
.header .header-navigation > li { margin-left: var(--space-nav); position: relative; }
.header .header-navigation > li:first-child { margin-left: 35px; }
@media (min-height: 770px) and (min-width: 1210px) { .header .header-navigation > li:first-child { margin-left: 55px; } }
.header .header-navigation > li:hover > a, .header .header-navigation > li.current-menu-item > a, .header .header-navigation > li.current-menu-ancestor > a { border-bottom: solid 1px var(--color-accent); }
.header .header-navigation > li.menu-item-has-children { background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width=%2216%22 height=%229%22 viewBox=%220 0 16 9%22 fill=%22none%22 xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cpath stroke=%22%23bcbcbc%22 d=%22M0.5 0.5L7.59615 8.30764C7.64795 8.36836 7.71051 8.41676 7.77997 8.44985C7.84943 8.48293 7.92431 8.5 8 8.5C8.07569 8.5 8.15057 8.48293 8.22003 8.44985C8.28949 8.41676 8.35205 8.36836 8.40385 8.30764L15.5 0.5%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22/%3E%3C/svg%3E"); background-repeat: no-repeat; background-size: 10px; background-position: 100% 50%; padding-right: 17px; }
.header .header-navigation > li > a { color: var(--color-font); display: inline-block; padding: 2px 0; position: relative; border-bottom: solid 1px transparent; }
.header .header-navigation ul { list-style-type: none; margin: 0; transition: 0.2s all ease-in-out; background-color: var(--color-white); opacity: 0; visibility: hidden; position: absolute; z-index: var(--z-dropdown); width: var(--dropdown-width); left: -30px; top: 70px; padding: var(--space-30); border-radius: var(--radius-md); box-shadow: var(--shadow-dropdown); }
.header .header-navigation ul::before { content: ""; display: block; width: 100%; height: 18px; background-color: transparent; position: absolute; top: -18px; left: 0; background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width=%2211%22 height=%226%22 viewBox=%220 0 11 6%22 fill=%22none%22 xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cpath d=%22M0 6L5.5 0L11 6H0Z%22 fill=%22white%22/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: 30px 100%; }
.header .header-navigation ul.isActive { opacity: 1; visibility: visible; top: 50px; }
/* Intentional addition: keyboard users open a dropdown by tabbing into it. */
.header .header-navigation > li:focus-within > ul { opacity: 1; visibility: visible; top: 50px; }
.header .header-navigation ul li { background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width=%2213%22 height=%2223%22 viewBox=%220 0 13 23%22 fill=%22none%22 xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cpath d=%22M12.5651 12.5651L2.5651 22.5651C2.28331 22.8469 1.90112 23.0052 1.5026 23.0052C1.10409 23.0052 0.721894 22.8469 0.440102 22.5651C0.158309 22.2833 2.96917e-09 21.9011 0 21.5026C-2.96917e-09 21.1041 0.158309 20.7219 0.440102 20.4401L9.37885 11.5039L0.442602 2.5651C0.303073 2.42557 0.192391 2.25993 0.116879 2.07762C0.0413657 1.89532 0.00249958 1.69993 0.00249958 1.5026C0.00249958 1.30528 0.0413657 1.10988 0.116879 0.927581C0.192391 0.745277 0.303073 0.579632 0.442602 0.440102C0.582132 0.300573 0.747777 0.189892 0.930081 0.114379C1.11239 0.0388661 1.30778 -1.47018e-09 1.5051 0C1.70243 1.47018e-09 1.89782 0.0388661 2.08012 0.114379C2.26243 0.189892 2.42807 0.300573 2.5676 0.440102L12.5676 10.4401C12.7073 10.5796 12.818 10.7453 12.8935 10.9278C12.969 11.1102 13.0078 11.3057 13.0075 11.5031C13.0073 11.7005 12.9681 11.896 12.8922 12.0782C12.8163 12.2605 12.7051 12.4259 12.5651 12.5651Z%22 fill=%22%23bcbcbc%22/%3E%3C/svg%3E"); background-position: 100% 50%; background-repeat: no-repeat; background-size: 5px; margin-bottom: var(--space-3); }
.header .header-navigation ul li:last-child { margin-bottom: 0; }
.header .header-navigation ul li.current-menu-item > a { font-weight: 600; color: var(--color-font); border-bottom: solid 1px var(--color-accent); }
.header .header-navigation ul li a { color: var(--color-font); transition: 0.2s all; border-bottom: solid 1px transparent; }
.header .header-navigation ul li a:hover { color: var(--color-font); border-bottom: solid 1px var(--color-accent); }
.header .header-contacts { margin-left: auto; display: flex; align-items: center; }
.header .header-contacts p { margin: 0; }
.header .header-contacts p.header-contactdetails { text-align: right; margin-right: var(--space-20); line-height: 1.4; display: none; }
@media (min-width: 1500px) { .header .header-contacts p.header-contactdetails { display: block; } }
.header .header-contacts p.header-contactdetails a { color: var(--color-font); border-bottom: solid 1px transparent; }
.header .header-contacts p.header-contactdetails a:hover { border-bottom: solid 1px var(--color-accent); }
.header .header-burger { position: relative; display: none; width: var(--burger); height: var(--burger); cursor: pointer; border: none; border-radius: var(--radius-md); background-color: var(--color-primary); padding: 0; }
.header .header-burger span { transition: 0.2s; background: var(--color-white); display: block; height: 2px; width: 19px; position: absolute; top: 18px; left: 10px; }
.header .header-burger span:nth-child(1) { margin-top: -6px; }
.header .header-burger span:nth-child(2) { margin: 0; }
.header .header-burger span:nth-child(3) { margin-top: 6px; }
.header .header-burger.isActive span:nth-child(1) { margin-top: 0 !important; transform: rotate(45deg); }
.header .header-burger.isActive span:nth-child(2) { opacity: 0; }
.header .header-burger.isActive span:nth-child(3) { margin-top: 0 !important; transform: rotate(-45deg); }
@media (max-width: 1012px) {
  .header .header-navigation { display: none; }
  .header .header-contacts { margin-right: 15px; }
  .header .header-contacts p.header-contactbutton a.button { height: 40px; padding-top: 0; padding-bottom: 0; line-height: 40px; }
  .header .header-burger { display: block; }
}
@media (max-width: 767px) {
  .header.header--fixed { position: relative; }
  .header .header-contacts { margin-right: 10px; display: none; }
  .header .header-burger { margin-left: auto; }
}
/* header--compact: the 1012px-and-below state at any width (this system's addition, for previews and narrow slots) */
.header.header--compact .header-navigation { display: none; }
.header.header--compact .header-contacts { margin-right: 15px; }
.header.header--compact .header-contacts p.header-contactdetails { display: none; }
.header.header--compact .header-contacts p.header-contactbutton a.button { height: 40px; padding-top: 0; padding-bottom: 0; line-height: 40px; }
.header.header--compact .header-burger { display: block; }

/* ---------- Mobile navigation ---------- */
.mobilenavigation-underlay { position: fixed; top: 0; bottom: 0; left: 0; right: 0; z-index: var(--z-underlay); background-color: var(--color-black); opacity: var(--opacity-underlay); display: none; }
.mobilenavigation-underlay.isActive { display: block; }
.mobilenavigation { width: var(--drawer-width); max-width: 100%; background-color: var(--color-white); overflow-y: auto; box-shadow: var(--shadow-drawer); }
.mobilenavigation.mobilenavigation--fixed { position: fixed; z-index: var(--z-drawer); right: -110%; top: 0; bottom: 0; transition: 0.3s right ease-in-out; }
.mobilenavigation.mobilenavigation--fixed.isActive { right: 0; }
@media (max-width: 767px) { .mobilenavigation { width: 100%; } }
.mobilenavigation .mobilenavigation-header { display: flex; align-items: center; justify-content: space-between; padding-top: clamp(1.25rem, 0.5377043091rem + 1.485884101vw, 1.875rem); padding-bottom: clamp(1.25rem, 0.5377043091rem + 1.485884101vw, 1.875rem); padding-left: clamp(1.25rem, -4.4483655275rem + 11.8870728083vw, 6.25rem); padding-right: clamp(1.25rem, -4.4483655275rem + 11.8870728083vw, 6.25rem); }
.mobilenavigation .mobilenavigation-header h6 { margin: 0; }
.mobilenavigation .mobilenavigation-menu { border-top: solid 1px var(--color-grey); list-style-type: none; margin: 0; padding: 0; }
.mobilenavigation .mobilenavigation-menu > li.menu-item-has-children { position: relative; }
.mobilenavigation .mobilenavigation-menu > li.menu-item-has-children .toggle-menu { position: absolute; top: 0; right: 0; width: 50px; height: 50px; border-left: 1px solid var(--color-grey); cursor: pointer; background: none; border-top: 0; border-right: 0; border-bottom: 0; padding: 0; }
@media (max-width: 767px) { .mobilenavigation .mobilenavigation-menu > li.menu-item-has-children .toggle-menu { width: 46px; height: 46px; } }
.mobilenavigation .mobilenavigation-menu > li.menu-item-has-children .toggle-menu .toggle-arrow { position: absolute; top: calc(50% - 7px); left: calc(50% - 7px); height: 10px; width: 10px; border: solid var(--color-font); border-width: 0 1px 1px 0; display: inline-block; box-sizing: border-box; transform: rotate(45deg); }
.mobilenavigation .mobilenavigation-menu > li.menu-item-has-children .toggle-menu.isActive .toggle-arrow { transform: rotate(-135deg); top: calc(50% - 3px); }
.mobilenavigation .mobilenavigation-menu > li > a { border-bottom: 1px solid var(--color-grey); display: block; padding: 12px 20px; color: var(--color-font); padding-left: clamp(1.25rem, -4.4483655275rem + 11.8870728083vw, 6.25rem); padding-right: clamp(1.25rem, -4.4483655275rem + 11.8870728083vw, 6.25rem); }
.mobilenavigation .mobilenavigation-menu > li > .sub-menu { list-style-type: none; margin: 0; border-bottom: 1px solid var(--color-grey); padding: 20px; display: none; padding-left: clamp(1.25rem, -4.4483655275rem + 11.8870728083vw, 6.25rem); padding-right: clamp(1.25rem, -4.4483655275rem + 11.8870728083vw, 6.25rem); }
.mobilenavigation .mobilenavigation-menu > li > .sub-menu.isActive { display: block; }
.mobilenavigation .mobilenavigation-menu > li > .sub-menu > li { margin-bottom: 7px; }
.mobilenavigation .mobilenavigation-menu > li > .sub-menu > li:last-child { margin-bottom: 0; }
.mobilenavigation .mobilenavigation-menu > li > .sub-menu li.current-menu-item a { border-bottom: solid 1px var(--color-font); }
.mobilenavigation .mobilenavigation-menu > li > .sub-menu a { color: var(--color-font); border-bottom: none; }
.mobilenavigation .mobilenavigation-details { border-top: solid 1px var(--color-grey); padding: 20px; }
.mobilenavigation .mobilenavigation-details ul.social li { margin: 0 10px 0 0; }
.mobilenavigation .mobilenavigation-details ul.social li a svg { height: var(--social-icon); fill: var(--color-primary); }
.mobilenavigation .mobilenavigation-details ul.mobilenavigation-legal { list-style-type: none; margin: 0 0 24px; padding: 0; }
.mobilenavigation .mobilenavigation-details ul.mobilenavigation-legal li, .mobilenavigation .mobilenavigation-details ul.mobilenavigation-legal li a { color: var(--color-font); }
.mobilenavigation .mobilenavigation-details p, .mobilenavigation .mobilenavigation-details p a:not(.button) { color: var(--color-font); }

/* ---------- Footer ---------- */
.footer { background-color: var(--color-primary); }
.footer .footer-inner { position: relative; margin: 0 auto; width: 100%; max-width: var(--container-wide); padding: var(--space-footer) var(--space-gutter); }
.footer .footer-header { margin-bottom: var(--space-30); display: flex; align-items: center; flex-wrap: wrap; }
.footer .footer-header .footer-logos { display: flex; align-items: center; }
.footer .footer-header .footer-logo { margin-right: var(--space-30); }
@media (min-height: 770px) and (min-width: 1210px) { .footer .footer-header .footer-logo { margin-right: 45px; } }
.footer .footer-header .footer-logo:last-child { margin-right: 0; }
.footer .footer-header .footer-logo a { display: block; border: 0; }
.footer .footer-header .footer-logo a img { height: var(--footer-logo-height); width: auto; }
.footer .footer-header .footer-contacts { margin-left: auto; display: flex; align-items: center; }
.footer .footer-header .footer-contacts ul { list-style-type: none; margin: 0; padding: 0; display: flex; }
.footer .footer-header .footer-contacts ul li { margin-right: var(--space-20); }
.footer .footer-header .footer-contacts ul.contacts li a { color: var(--color-white); border-bottom: solid 1px transparent; }
.footer .footer-header .footer-contacts ul.contacts li a:hover { border-bottom: solid 1px var(--color-white); }
.footer .footer-header .footer-contacts ul.social li { margin: 0 0 0 var(--space-15); }
.footer .footer-header .footer-contacts ul.social li:first-child { margin-left: 0; }
.footer .footer-header .footer-contacts ul.social li a { border-bottom: none; }
.footer .footer-header .footer-contacts ul.social li a svg { height: var(--social-icon-footer); fill: var(--color-white); }
.footer .footer-content { margin-bottom: var(--space-30); display: flex; }
.footer .footer-content .footer-contact { flex: 0 0 16.67%; }
.footer .footer-content h6 { color: var(--color-yellow); text-transform: uppercase; margin-bottom: var(--space-12); }
.footer .footer-content ul.footer-navigation { display: flex; flex: 0 0 83.33%; }
.footer .footer-content ul.footer-navigation > li { flex: 1; }
.footer .footer-content ul.footer-navigation > li > a { color: var(--color-yellow); text-transform: uppercase; cursor: default; border-bottom: none; }
.footer .footer-content ul.footer-navigation > li > a:hover { border-bottom: none; }
.footer .footer-content ul.footer-navigation > li ul.sub-menu { padding-top: var(--space-12); }
.footer .footer-content ul.footer-navigation > li ul.sub-menu li { margin-bottom: 1px; }
.footer .footer-content ul.footer-navigation > li ul.sub-menu li:last-child { margin-bottom: 0; }
.footer .footer-legal p { margin: 0 0 var(--space-3); }
.footer .footer-legal p span { margin-left: 20px; }
.footer .footer-legal ul { margin: 0 0 var(--space-15); display: flex; align-items: center; flex-wrap: wrap; }
.footer .footer-legal ul li { margin-right: var(--space-15); }
.footer .footer-legal ul li:last-child { margin-bottom: 0; margin-right: 0; }
.footer p { color: var(--color-white); }
.footer p a { color: var(--color-white); border-bottom: solid 1px transparent; }
.footer p a:hover { color: var(--color-white); border-bottom: solid 1px var(--color-white); }
.footer ul { list-style-type: none; margin: 0; padding: 0; }
.footer ul li { color: var(--color-white); }
.footer ul li a { color: var(--color-white); border-bottom: solid 1px transparent; }
.footer ul li a:hover { color: var(--color-white); border-bottom: solid 1px var(--color-white); }
@media (max-width: 1012px) {
  .footer .footer-header { flex-direction: column; align-items: flex-start; }
  .footer .footer-header .footer-contacts { padding-top: 30px; margin-left: 0; flex-direction: column; align-items: flex-start; }
  .footer .footer-header .footer-contacts ul.social { padding-top: 15px; }
  .footer .footer-content .footer-contact { flex: 0 0 100%; }
  .footer .footer-content ul.footer-navigation { display: none; }
}
@media (max-width: 767px) {
  .footer .footer-header .footer-contacts ul.contacts { flex-direction: column; margin-bottom: 15px; }
  .footer .footer-legal ul { flex-direction: column; align-items: flex-start; padding-top: 15px; }
  .footer .footer-legal ul li { margin-right: 0; margin-bottom: 2px; }
}

/* ---------- Social links ---------- */
ul.social { list-style-type: none; margin: 0; padding: 0; display: flex; flex-flow: row wrap; align-items: center; }
ul.social li { margin: 0 7px; }
ul.social li::before { display: none !important; }
ul.social li a { display: block; border-bottom: none !important; }
ul.social li a:hover { border-bottom: none !important; }
ul.social li a svg { height: var(--social-icon); width: auto; display: block; transition: 0.2s all; fill: var(--color-white); }
ul.social li a:hover svg { transform: scale(1.05); }
ul.social.social--primary li a svg { fill: var(--color-primary); }

/* ---------- Pagination ---------- */
ul.page-numbers { list-style-type: none; margin: 0; padding: 0; display: flex; flex-direction: row; align-items: center; padding-top: clamp(1.875rem, 0.4504086181rem + 2.9717682021vw, 3.125rem); }
ul.page-numbers li { margin: 0 10px 0 0; }
ul.page-numbers li::before { display: none !important; }
ul.page-numbers li a, ul.page-numbers li span { display: inline-block; background-color: var(--color-primary); color: var(--color-white); border-radius: var(--radius-xs); text-align: center; width: var(--page-number); height: var(--page-number); line-height: var(--page-number); border: none; }
ul.page-numbers li a:hover { background-color: var(--color-accent); color: var(--color-white); }
ul.page-numbers li span { background-color: var(--color-accent); }

/* ---------- Section header ---------- */
.sectionheader { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: var(--space-section-header); }
.sectionheader .sectionheader-content { flex: 1; }
.sectionheader .sectionheader-content h2 { margin: 0; }
.sectionheader .sectionheader-content p { padding-top: var(--space-15); margin: 0; }
.sectionheader .sectionheader-cta { padding-left: var(--space-50); display: flex; align-items: center; }
.sectionheader .sectionheader-cta a { border: 0; }
.sectionheader .sectionheader-cta img { max-height: 50px; }
.sectionheader .sectionheader-cta ul { list-style-type: none; margin: 0; padding: 0 0 0 var(--space-30); display: flex; align-items: center; }
.sectionheader .sectionheader-cta ul li { margin-right: var(--space-10); }
.sectionheader .sectionheader-cta ul li:last-child { margin-right: 0; }
@media (max-width: 1012px) { .sectionheader { flex-direction: column; } .sectionheader .sectionheader-cta { padding-left: 0; padding-top: 20px; } }
@media (max-width: 767px) { .sectionheader .sectionheader-cta { flex-direction: column; align-items: flex-start; } .sectionheader .sectionheader-cta ul { padding-left: 0; padding-top: 20px; } }

/* ---------- Title bar (Hero h1, post h1) ---------- */
.hero h1, .singlepage header h1 { margin: 0 0 var(--space-30); position: relative; }
.hero h1::after, .singlepage header h1::after { content: ""; position: absolute; bottom: -30px; left: 0; width: var(--title-bar-width); height: var(--title-bar-height); background-color: var(--color-accent); }

/* ---------- Hero ---------- */
.hero .hero-inner { padding-top: var(--space-hero); padding-bottom: var(--space-hero); }
.hero .hero-wrapper { display: grid; grid-template-columns: 5fr 2fr; gap: var(--space-grid-wide); }
.hero .hero-image img { border-radius: var(--radius-md); }
.hero .hero-footer { display: flex; align-items: center; justify-content: space-between; padding-top: var(--space-35); }
.hero .hero-contentarea { padding-top: var(--space-25); }
.hero ul.hero-buttons { list-style-type: none; margin: 0; padding: 0; display: flex; align-items: center; flex-wrap: wrap; }
.hero ul.hero-buttons li { margin-right: var(--space-15); }
.hero ul.hero-logos { list-style-type: none; margin: 0; padding: 0; display: flex; align-items: center; }
.hero ul.hero-logos li { margin-left: var(--space-25); }
.hero ul.hero-logos li a { border: 0; display: block; }
.hero ul.hero-logos li img { max-height: var(--hero-logo); }
@media (min-height: 770px) and (min-width: 1210px) { .hero ul.hero-logos li img { max-height: 70px; } }
@media (max-width: 1012px) {
  .hero .hero-inner { padding: 0; }
  .hero .hero-wrapper { grid-template-columns: 1fr; gap: 0; }
  .hero .hero-image { order: 1; }
  .hero .hero-image img { object-fit: cover; aspect-ratio: 2/1; width: 100%; }
  .hero .hero-content { order: 2; padding: clamp(1.875rem, 0.4504086181rem + 2.9717682021vw, 3.125rem) clamp(1.25rem, -0.8868870728rem + 4.4576523031vw, 3.125rem); }
  .hero .hero-footer { padding: 0 clamp(1.25rem, -0.8868870728rem + 4.4576523031vw, 3.125rem) clamp(1.875rem, 0.4504086181rem + 2.9717682021vw, 3.125rem); flex-direction: column; align-items: flex-start; }
  .hero ul.hero-logos { padding-top: 35px; }
  .hero ul.hero-logos li { margin-left: 0; margin-right: 25px; }
  .hero ul.hero-logos li img { max-height: 60px; }
}
@media (max-width: 767px) {
  .hero ul.hero-buttons { flex-direction: column; align-items: flex-start; }
  .hero ul.hero-buttons li { margin-right: 0; margin-bottom: 10px; }
  .hero ul.hero-logos li img { max-height: 55px; }
}

/* ---------- Cards ---------- */
.cards .cards-items { display: grid; gap: var(--space-grid); }
.cards.cards--one .cards-items { grid-template-columns: 1fr; }
.cards.cards--two .cards-items { grid-template-columns: 1fr 1fr; }
.cards.cards--three .cards-items { grid-template-columns: 1fr 1fr 1fr; }
.cards.cards--four .cards-items { grid-template-columns: 1fr 1fr 1fr 1fr; gap: var(--space-grid-tight); }
@media (max-width: 1012px) { .cards.cards--three .cards-items, .cards.cards--four .cards-items { grid-template-columns: 1fr 1fr; } }
@media (max-width: 767px) { .cards.cards--two .cards-items, .cards.cards--three .cards-items { grid-template-columns: 1fr; } }
.cards .cards-item { position: relative; }
.cards .cards-item.cards-item--link:hover .cards-image img { transform: scale(1.05); }
.cards .cards-item .cards-image { overflow: hidden; border-radius: var(--radius-lg); }
.cards .cards-item .cards-image img { transition: 0.3s all ease-in-out; }
.cards .cards-item .cards-content { padding-top: var(--space-10); }
.cards .cards-item .cards-content h3 { margin: 0; }
.cards .cards-item .cards-content h3 a { border-bottom: solid 1px transparent; color: var(--color-primary); }
.cards .cards-item .cards-content h3 a:hover { border-bottom: solid 1px var(--color-font); }
.cards .cards-item .cards-content h3 a::after { content: ""; position: absolute; top: 0; bottom: 0; left: 0; right: 0; }
.cards .cards-item .cards-content p { padding-top: var(--space-10); margin: 0; }
@media (max-width: 767px) { .cards .cards-item .cards-content h3 { font-size: clamp(1.125rem, 0.6976225854rem + 0.8915304606vw, 1.5rem); line-height: 1.5; font-weight: 600; } }

/* ---------- Posts (also Rooms and Rooms Related) ---------- */
.posts .posts-items { display: grid; gap: var(--space-grid); }
.posts .posts-items.posts-items--two { grid-template-columns: 1fr 1fr; }
.posts .posts-items.posts-items--three { grid-template-columns: 1fr 1fr 1fr; }
.posts .posts-items.posts-items--four { grid-template-columns: 1fr 1fr 1fr 1fr; gap: var(--space-grid-tight); }
@media (max-width: 1012px) { .posts .posts-items.posts-items--three, .posts .posts-items.posts-items--four { grid-template-columns: 1fr 1fr; } }
@media (max-width: 767px) { .posts .posts-items.posts-items--two, .posts .posts-items.posts-items--three, .posts .posts-items.posts-items--four { grid-template-columns: 1fr; } }
.posts .posts-item { position: relative; border-radius: var(--radius-lg); overflow: hidden; display: flex; flex-direction: column; }
.posts .posts-item:hover .posts-image img { transform: scale(1.05); }
.posts .posts-item .posts-image { overflow: hidden; }
.posts .posts-item .posts-image img { transition: 0.2s all ease-in-out; }
.posts .posts-item .posts-content { border: solid 1px var(--color-keyline); border-top: none; padding: var(--space-card); border-bottom-left-radius: var(--radius-lg); border-bottom-right-radius: var(--radius-lg); flex: 1; }
.posts .posts-item .posts-content h3 { margin: 0; }
.posts .posts-item .posts-content h3 a { border-bottom: solid 1px transparent; color: var(--color-font); }
.posts .posts-item .posts-content h3 a:hover { border-bottom: solid 1px var(--color-font); }
.posts .posts-item .posts-content h3 a::after { content: ""; position: absolute; top: 0; bottom: 0; left: 0; right: 0; }
.posts .posts-item .posts-content p { padding-top: var(--space-10); margin: 0; }
.posts .posts-item .posts-content p.posts-date { padding: 0; }

/* ---------- Carousel controls (carousel-arrows / carousel-dots mixins, on slick markup) ---------- */
.cch-carousel { position: relative; }
.cch-carousel .slick-list { position: relative; display: block; overflow: hidden; margin: 0; padding: 0; }
.cch-carousel .slick-track { display: flex; transition: transform 0.5s ease; }
.cch-carousel .slick-slide { flex: 0 0 auto; min-height: 1px; }
.cch-carousel .slick-slide img { display: block; }
.slick-arrow { position: absolute; z-index: var(--z-carousel-arrow); top: 50%; margin-top: -21px; background-color: var(--color-primary); cursor: pointer; border: none; width: var(--carousel-arrow); height: var(--carousel-arrow); border-radius: var(--radius-full); background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width=%2213%22 height=%2223%22 viewBox=%220 0 13 23%22 fill=%22none%22 xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cpath d=%22M12.5651 12.5651L2.5651 22.5651C2.28331 22.8469 1.90112 23.0052 1.5026 23.0052C1.10409 23.0052 0.721894 22.8469 0.440102 22.5651C0.158309 22.2833 2.96917e-09 21.9011 0 21.5026C-2.96917e-09 21.1041 0.158309 20.7219 0.440102 20.4401L9.37885 11.5039L0.442602 2.5651C0.303073 2.42557 0.192391 2.25993 0.116879 2.07762C0.0413657 1.89532 0.00249958 1.69993 0.00249958 1.5026C0.00249958 1.30528 0.0413657 1.10988 0.116879 0.927581C0.192391 0.745277 0.303073 0.579632 0.442602 0.440102C0.582132 0.300573 0.747777 0.189892 0.930081 0.114379C1.11239 0.0388661 1.30778 -1.47018e-09 1.5051 0C1.70243 1.47018e-09 1.89782 0.0388661 2.08012 0.114379C2.26243 0.189892 2.42807 0.300573 2.5676 0.440102L12.5676 10.4401C12.7073 10.5796 12.818 10.7453 12.8935 10.9278C12.969 11.1102 13.0078 11.3057 13.0075 11.5031C13.0073 11.7005 12.9681 11.896 12.8922 12.0782C12.8163 12.2605 12.7051 12.4259 12.5651 12.5651Z%22 fill=%22%23ffffff%22/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: center center; background-size: 8px; padding: 0; font-size: 0; color: transparent; }
.slick-arrow.slick-prev { left: -21px; transform: rotate(180deg); }
.slick-arrow.slick-next { right: -21px; }
.slick-arrow.slick-disabled { opacity: var(--opacity-disabled); cursor: default; }
@media (max-width: 767px) { .slick-arrow.slick-prev { left: 10px; } .slick-arrow.slick-next { right: 10px; } }
.slick-dots { list-style-type: none; margin: 0; padding: 0; display: flex; align-items: center; justify-content: center; position: absolute; bottom: 0; left: 0; right: 0; }
.slick-dots li { margin-left: var(--space-10); }
.slick-dots li::before { display: none !important; }
.slick-dots li:first-child { margin-left: 0; }
.slick-dots li.slick-active button { background: var(--color-font); }
.slick-dots li button { display: block; background: transparent; border: solid 1px var(--color-font); border-radius: var(--radius-full); width: var(--carousel-dot); height: var(--carousel-dot); cursor: pointer; color: transparent; font-size: 0; line-height: 0; padding: 0; margin: 0; }

/* ---------- Text + Image ---------- */
.textimage .textimage-wrapper { display: grid; gap: var(--space-grid); }
.textimage.textimage--6col6col .textimage-wrapper { grid-template-columns: 1fr 1fr; }
.textimage.textimage--5col7col .textimage-wrapper { grid-template-columns: 2fr 3fr; }
.textimage.textimage--7col5col .textimage-wrapper { grid-template-columns: 3fr 2fr; }
.textimage.textimage--reverse .textimage-content { order: 2; }
.textimage.textimage--reverse .textimage-image { order: 1; }
.textimage.textimage--middle .textimage-wrapper { align-items: center; }
.textimage .textimage-content { order: 1; }
.textimage .textimage-image { order: 2; min-width: 0; min-height: 0; }
.textimage .textimage-image img { border-radius: var(--radius-lg); }
.textimage .textimage-carousel .slick-list { margin: 0 -15px; }
.textimage .textimage-carousel .slick-slide { padding: 0 15px; }
@media (min-height: 770px) and (min-width: 1210px) { .textimage .textimage-carousel .slick-list { margin: 0 -20px; } .textimage .textimage-carousel .slick-slide { padding: 0 20px; } }
.textimage .textimage-carousel .slick-arrow.slick-prev { left: -21px; }
.textimage .textimage-carousel .slick-arrow.slick-next { right: -21px; }
@media (max-width: 767px) {
  .textimage.textimage--6col6col .textimage-wrapper, .textimage.textimage--5col7col .textimage-wrapper, .textimage.textimage--7col5col .textimage-wrapper { grid-template-columns: 1fr; }
  .textimage .textimage-content { order: 2; }
  .textimage .textimage-image { order: 1; }
}

/* ---------- Feature ---------- */
.feature { position: relative; }
.feature .feature-carousel .slick-arrow.slick-prev { left: 40px; }
.feature .feature-carousel .slick-arrow.slick-next { right: 40px; }
@media (max-width: 767px) { .feature .feature-carousel .slick-arrow.slick-prev { left: 10px; } .feature .feature-carousel .slick-arrow.slick-next { right: 10px; } }
.feature .feature-carousel .slick-slide { width: 100%; }
.feature .feature-slide { position: relative; height: var(--feature-height); }
@media (min-height: 770px) and (min-width: 1210px) { .feature .feature-slide { height: 550px; } }
@media (max-width: 1012px) { .feature .feature-slide { height: 400px; } }
@media (max-width: 767px) { .feature .feature-slide { height: 300px; } }
.feature .feature-background { position: absolute; z-index: 1; top: 0; bottom: 0; left: 0; right: 0; background-position: center center; background-repeat: no-repeat; background-size: cover; }
.feature .feature-background::after { content: ""; position: absolute; z-index: 2; top: 0; bottom: 0; left: 0; right: 0; background: linear-gradient(to bottom, var(--overlay-top), var(--overlay-bottom)); }
@media (max-width: 767px) { .feature .feature-background::after { background: linear-gradient(to bottom, var(--overlay-top-mobile), var(--overlay-bottom-mobile)); } }
.feature .feature-inner { z-index: 3; display: flex; align-items: center; justify-content: center; height: 100%; }
.feature .feature-content { text-align: center; }
.feature .feature-content h3 { color: var(--color-white); }
.feature .feature-content p { color: var(--color-white); }
.feature .feature-content ul.feature-buttons { list-style-type: none; margin: 0; padding: 10px 0 0; display: flex; align-items: center; justify-content: center; }
.feature .feature-content ul.feature-buttons li { margin: 0 10px; }

/* ---------- Testimonials ---------- */
.testimonials.bg_grey .testimonials-item blockquote { border: none; }
.testimonials .testimonials-carousel .slick-list { margin: 0 -15px; }
.testimonials .testimonials-carousel .slick-slide { padding: 0 15px; }
@media (min-height: 770px) and (min-width: 1210px) { .testimonials .testimonials-carousel .slick-list { margin: 0 -20px; } .testimonials .testimonials-carousel .slick-slide { padding: 0 20px; } }
.testimonials .testimonials-carousel .slick-track { align-items: stretch; }
.testimonials .testimonials-items { display: grid; gap: var(--space-grid); }
.testimonials .testimonials-items.testimonials-items--one { grid-template-columns: 1fr; }
.testimonials .testimonials-items.testimonials-items--two { grid-template-columns: 1fr 1fr; }
.testimonials .testimonials-items.testimonials-items--three { grid-template-columns: 1fr 1fr 1fr; }
@media (max-width: 1012px) { .testimonials .testimonials-items.testimonials-items--three { grid-template-columns: 1fr 1fr; } }
@media (max-width: 767px) { .testimonials .testimonials-items.testimonials-items--two, .testimonials .testimonials-items.testimonials-items--three { grid-template-columns: 1fr; } }
.testimonials .testimonials-item { height: 100%; }
.testimonials .testimonials-item blockquote { margin: 0; text-align: center; background-color: var(--color-white); border-radius: var(--radius-lg); height: 100%; border: solid 1px var(--color-keyline); display: flex; flex-direction: column; padding: var(--space-panel); }
.testimonials .testimonials-item blockquote p { margin-bottom: var(--space-text); }
.testimonials .testimonials-item blockquote p.testimonials-heading { font-weight: 700; }
.testimonials .testimonials-item blockquote cite { font-style: normal; margin-top: auto; display: block; }
.testimonials .testimonials-item blockquote cite p { margin: 0; text-transform: uppercase; }
.testimonials .testimonials-item blockquote cite label { line-height: 1; margin: 0; }
.testimonials .testimonials-item blockquote cite img { padding-top: 15px; height: 35px; width: auto; margin: 0 auto; }

/* ---------- Call to Action ---------- */
.cta { padding-top: var(--space-cta); padding-bottom: var(--space-cta); }
.cta .cta-wrapper { padding: var(--space-panel); background-color: var(--color-bg-grey); border-radius: var(--radius-lg); display: flex; flex-wrap: wrap; justify-content: space-between; }
.cta .cta-content { flex: 1; }
.cta .cta-button { flex: 0 0 40%; }
.cta .cta-button p { margin: 0; text-align: right; }
.cta h3 { margin-bottom: var(--space-15); }
@media (max-width: 1012px) { .cta .cta-wrapper { flex-direction: column; } .cta .cta-button p { text-align: left; padding-top: 25px; } }

/* ---------- Accordion ---------- */
.accordion .accordion-items { border-top: solid 1px var(--color-font); }
.accordion .accordion-items .accordion-item { border-bottom: solid 1px var(--color-font); }
.accordion .accordion-item { padding-top: var(--space-accordion); padding-bottom: var(--space-accordion); }
.accordion .accordion-header a, .accordion .accordion-header button { position: relative; display: block; padding: 0 50px 0 0; color: var(--color-accent); background: none; border: 0; width: 100%; text-align: left; cursor: pointer; font-family: var(--font-sans); }
.accordion .accordion-header a:hover, .accordion .accordion-header button:hover { color: var(--color-font); }
.accordion .accordion-header a::after, .accordion .accordion-header button::after { content: ""; position: absolute; top: calc(50% - 11px); right: 5px; width: 22px; height: 22px; transform: rotate(45deg); transition: 0.1s all linear; background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2232%22 height=%2232%22 viewBox=%220 0 32 32%22 fill=%22none%22%3E%3Cpath d=%22M31 1L1 31%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22/%3E%3Cpath d=%22M1 1L31 31%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22/%3E%3C/svg%3E"); background-size: 30px; background-repeat: no-repeat; background-position: center; }
.accordion .accordion-item.isActive .accordion-header a::after, .accordion .accordion-item.isActive .accordion-header button::after { transform: rotate(0deg); }
.accordion .accordion-content { display: none; padding: 50px 30px 50px 30px; }
.accordion .accordion-item.isActive .accordion-content { display: block; }
@media (max-width: 767px) { .accordion .accordion-content { padding: 30px 0px 30px 0px; } }

/* ---------- Highlights ---------- */
.highlights .highlights-items { display: grid; gap: var(--space-grid); justify-content: center; }
.highlights .highlights-items.highlights-items--three { grid-template-columns: 1fr 1fr 1fr; }
.highlights .highlights-items.highlights-items--four { grid-template-columns: 1fr 1fr 1fr 1fr; }
.highlights .highlights-items.highlights-items--five { grid-template-columns: 1fr 1fr 1fr 1fr 1fr; }
.highlights .highlights-items.highlights-items--six { grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr; }
@media (max-width: 1012px) { .highlights .highlights-items.highlights-items--four, .highlights .highlights-items.highlights-items--five, .highlights .highlights-items.highlights-items--six { grid-template-columns: 1fr 1fr 1fr; } }
@media (max-width: 767px) { .highlights .highlights-items.highlights-items--three { grid-template-columns: 1fr; } .highlights .highlights-items.highlights-items--four, .highlights .highlights-items.highlights-items--five, .highlights .highlights-items.highlights-items--six { grid-template-columns: 1fr 1fr; } }
.highlights .highlights-item .highlights-image img { border-radius: var(--radius-full); max-height: var(--highlight-image); margin: 0 auto; }
.highlights .highlights-item .highlights-content { padding-top: var(--space-10); }
.highlights .highlights-item .highlights-content h3 { margin: 0; text-align: center; color: var(--color-primary); }
.highlights h2 { margin-bottom: var(--space-25); text-align: center; }

/* ---------- Gallery ---------- */
.gallery .gallery-items { display: grid; gap: var(--space-grid-gallery); }
.gallery .gallery-items.gallery-items--two { grid-template-columns: 1fr 1fr; }
.gallery .gallery-items.gallery-items--three { grid-template-columns: 1fr 1fr 1fr; }
.gallery .gallery-items.gallery-items--four { grid-template-columns: 1fr 1fr 1fr 1fr; }
.gallery .gallery-items.gallery-items--five { grid-template-columns: 1fr 1fr 1fr 1fr 1fr; }
.gallery .gallery-items.gallery-items--six { grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr; }
.gallery .gallery-items .gallery-item a { display: block; border: 0; }
.gallery .gallery-items .gallery-item img { display: block; width: 100%; }
.gallery .gallery-carousel { position: relative; padding-bottom: 25px; }
.gallery .gallery-carousel .slick-slide { width: 100%; }
.gallery .gallery-carousel .gallery-item { position: relative; }
.gallery .gallery-carousel .gallery-item img { display: block; width: 100%; }
.gallery .gallery-carousel .slick-dots { justify-content: flex-end; left: auto; }

/* ---------- Embed ---------- */
.embed .embed-code iframe { width: 100%; max-width: 100%; height: auto; aspect-ratio: 16/9; display: block; border: 0; }
.embed .embed-content { padding-top: var(--space-25); }
.embeddedcontent:not(.embeddedcontent--enabled) { background-color: var(--color-bg-grey); border: solid 1px var(--color-primary); padding: 20px; }
.embeddedcontent iframe { display: none; }
.embeddedcontent--enabled iframe { display: block; }
.embeddedcontent--enabled .embeddedcontent-message { display: none; }
.embeddedcontent-message img { display: block; width: 100%; height: auto; }
.embeddedcontent-message p.embeddedcontent-thumbnail { position: relative; }
.embeddedcontent-message p.embeddedcontent-thumbnail a { display: block; border: 0; }

/* ---------- Image ---------- */
.image figure { padding: 0; margin: 0; }
.image figure > a { position: relative; display: block; border: 0; }
.image figure > a::after { content: ""; position: absolute; top: 20px; right: 20px; width: 25px; height: 25px; background-color: var(--color-primary); background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox=%220 0 39 39%22 version=%221.1%22 xmlns=%22http://www.w3.org/2000/svg%22 xmlns:xlink=%22http://www.w3.org/1999/xlink%22%3E%3Cpath fill=%22%23FFFFFF%22 d=%22M4.875,14.6181208 C4.875,9.24587083 9.24570833,4.8751625 14.6185,4.8751625 C19.99075,4.8751625 24.3609167,9.24587083 24.3609167,14.6181208 C24.3609167,19.9903708 19.99075,24.3610792 14.6185,24.3610792 C9.24570833,24.3610792 4.875,19.9903708 4.875,14.6181208 M38.1457917,34.6104958 L26.5682083,23.0323708 C28.2468333,20.6528292 29.2359167,17.7516625 29.2359167,14.6181208 C29.2359167,6.54457917 22.6915,0.0001625 14.6185,0.0001625 C6.5455,0.0001625 0,6.54457917 0,14.6181208 C0,22.6905792 6.5455,29.2360792 14.6185,29.2360792 C17.76775,29.2360792 20.6819167,28.2372458 23.0679583,26.5434542 L34.6395833,38.1161625 C35.70125,39.1772875 37.35875,39.2579958 38.3229167,38.2932875 C39.2870833,37.3291208 39.2074583,35.6716208 38.1457917,34.6104958%22 %3E%3C/path%3E%3C/svg%3E"); background-position: center center; background-size: 15px; background-repeat: no-repeat; }
.image figure img { width: 100%; }
.image figcaption { padding-top: var(--space-10); }

/* ---------- Article (content + sidebar) ---------- */
.article.article--sidebar .article-wrapper { display: grid; grid-template-columns: 5fr 2fr; gap: var(--space-grid-wide); }
@media (max-width: 1012px) { .article.article--sidebar .article-wrapper { grid-template-columns: 1fr; gap: 0; } }
.article .article-item { padding-bottom: var(--space-25); margin-bottom: var(--space-25); border-bottom: solid 1px var(--color-grey); }
.article .article-item:last-child { padding-bottom: 0; margin-bottom: 0; border-bottom: none; }
.article .article-item.article-item--image figure, .article .article-item.article-item--video figure { padding: 0; margin: 0; }
.article .article-item.article-item--image figure img { border-radius: var(--radius-md); }
.article .article-item.article-item--image figure > a, .article .article-item.article-item--video figure > a { display: block; position: relative; border: 0; }
.article .article-item.article-item--image figure > a::after, .article .article-item.article-item--video figure > a::after { content: ""; position: absolute; bottom: 0; left: 0; width: 40px; height: 40px; background-color: var(--color-primary); background-repeat: no-repeat; background-position: center center; background-size: 20px; }
.article .article-item.article-item--image figure > a::after { background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2232%22 height=%2232%22 viewBox=%220 0 256 256%22%3E%3Cpath fill=%22%23ffffff%22 d=%22M229.66,218.34l-50.07-50.06a88.11,88.11,0,1,0-11.31,11.31l50.06,50.07a8,8,0,0,0,11.32-11.32ZM40,112a72,72,0,1,1,72,72A72.08,72.08,0,0,1,40,112Z%22%3E%3C/path%3E%3C/svg%3E"); }
.article .article-item.article-item--video figure > a::after { background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2232%22 height=%2232%22 viewBox=%220 0 256 256%22%3E%3Cpath fill=%22%23ffffff%22 d=%22M232.4,114.49,88.32,26.35a16,16,0,0,0-16.2-.3A15.86,15.86,0,0,0,64,39.87V216.13A15.94,15.94,0,0,0,80,232a16.07,16.07,0,0,0,8.36-2.35L232.4,141.51a15.81,15.81,0,0,0,0-27ZM80,215.94V40l143.83,88Z%22%3E%3C/path%3E%3C/svg%3E"); }
.article .article-item.article-item--image figure figcaption { margin-top: var(--space-15); }
.article .article-item.article-item--video figure figcaption { margin-top: var(--space-15); padding-left: 15px; border-left: solid 2px var(--color-grey); }
.article .article-item.article-item--buttons ul { list-style-type: none; margin: 0; padding: 0; display: flex; align-items: center; }
.article .article-item.article-item--buttons ul li { margin-right: var(--space-15); }
.article .article-item.article-item--buttons ul li:last-child { margin-right: 0; }
.article .article-item.article-item--buttons ul li::before { display: none !important; }
.article .article-item.article-item--social ul.social li { margin: 0 10px 0 0; }
.article .article-item.article-item--social ul.social li a svg { height: var(--social-icon); fill: var(--color-primary); }
.article .article-item.article-item--quicklinks h6 { margin-bottom: var(--space-12); }
.article .article-item.article-item--quicklinks ul { padding-left: 17px; margin: 0; }
.article .article-item.article-item--quicklinks ul li { margin-bottom: var(--space-5); }
.article .article-item.article-item--quicklinks ul li:last-child { margin-bottom: 0; }

/* ---------- Content area (rich text: _contentarea.scss) ---------- */
.contentArea iframe[src*="google.com/map"], .contentArea iframe[src*="vimeo.com"], .contentArea iframe[src*="youtu.be"], .contentArea iframe[src*="youtube.com"] { aspect-ratio: 16/9; object-fit: cover; object-position: center; width: 100% !important; max-width: 100% !important; height: auto !important; }
.contentArea table { margin-bottom: 24px; }
.contentArea hr { border: none; border-top: solid 1px var(--color-font); margin-top: var(--space-35); margin-bottom: var(--space-35); padding: 0; background: 0 0; }
.contentArea ul { list-style: none; margin-top: 0; margin-bottom: 24px; padding-left: 17px; }
.contentArea ul:last-child { margin-bottom: 0; }
.contentArea ul li { position: relative; margin-bottom: var(--space-3); }
.contentArea ul li:last-child { margin-bottom: 0; }
.contentArea ul li::before { content: ""; position: absolute; left: -15px; display: inline-block; width: var(--bullet); height: var(--bullet); border-radius: var(--radius-full); background: var(--color-accent); top: 0.75rem; }
@media (max-width: 767px) { .contentArea ul li::before { width: 5px; height: 5px; top: 0.625rem; } }
.contentArea ul.buttons { margin-bottom: 24px; padding: 0; }
.contentArea ul.buttons li { margin-right: var(--space-15); }
.contentArea ol { margin-top: 0; margin-bottom: 24px; padding-left: 17px; }
.contentArea ol:last-child { margin-bottom: 0; }
.contentArea ol li { margin-bottom: var(--space-3); }
.contentArea ol li:last-child { margin-bottom: 0; }
.contentArea blockquote { margin: 0 0 24px; border-left: solid 3px var(--color-primary); padding: 10px 0 10px 20px; }
@media (min-height: 770px) and (min-width: 1210px) { .contentArea blockquote { padding-left: 30px; } }
@media (max-width: 1012px) { .contentArea blockquote { padding-left: 15px; } }
@media (max-width: 767px) { .contentArea blockquote { padding-left: 10px; } }
.contentArea blockquote p { font-size: 1.625rem; line-height: 1.25; font-weight: 600; font-style: italic; }
.contentArea blockquote cite { font-style: normal; color: var(--color-font); padding-top: 15px; display: block; }

/* ---------- Single page (post template) ---------- */
.singlepage .singlepage-hero { display: none; }
@media (max-width: 1012px) { .singlepage .singlepage-hero { display: block; } }
.singlepage .singlepage-hero img { position: relative; top: -30px; object-fit: cover; aspect-ratio: 2/1; width: 100%; }
.singlepage .singlepage-wrapper { display: grid; grid-template-columns: 5fr 2fr; gap: var(--space-grid-wide); }
@media (max-width: 1012px) { .singlepage .singlepage-wrapper { grid-template-columns: 1fr; gap: 0; } }
.singlepage header { margin-bottom: var(--space-60); }
.singlepage header img { display: none; }
@media (max-width: 767px) { .singlepage header img { display: block; margin-bottom: 30px; } }
@media (max-width: 1012px) { .singlepage aside { padding-top: 30px; } }
.singlepage aside .singlepage-item { padding-bottom: var(--space-25); margin-bottom: var(--space-25); border-bottom: solid 1px var(--color-grey); }
.singlepage aside .singlepage-item:last-child { padding-bottom: 0; margin-bottom: 0; border-bottom: none; }
@media (max-width: 1012px) { .singlepage aside .singlepage-item.singlepage-item--featuredimage { display: none; } }
.singlepage aside ul.social li { margin: 0 10px 0 0; }
.singlepage aside ul.social li a svg { height: var(--social-icon); fill: var(--color-primary); }
.singlepage aside img { border-radius: var(--radius-md); }

/* ---------- Search results ---------- */
.searchresults .searchresults-item { margin-bottom: clamp(1.875rem, 0.4504086181rem + 2.9717682021vw, 3.125rem); }
.searchresults .searchresults-item:last-child { margin-bottom: 0; }
.searchresults .searchresults-item h3 { margin: 0; }
.searchresults .searchresults-item h3 a { border-bottom: solid 1px transparent; }
.searchresults .searchresults-item h3 a:hover { border-bottom: solid 1px var(--color-font); }
.searchresults .searchresults-item p { padding-top: var(--space-10); margin: 0; }

/* ---------- Filters (room listing) ---------- */
.filters { padding-bottom: clamp(1.25rem, -2.4539375929rem + 7.7265973254vw, 4.5rem); }
.filters .filters-items { display: flex; align-items: center; }
@media (max-width: 1012px) { .filters .filters-items { flex-direction: column; align-items: flex-start; } }
.filters .filters-item { position: relative; margin-left: var(--space-20); width: 250px; }
.filters .filters-item:first-child { margin-left: 0; }
.filters .filters-item.filters-item--push { margin-left: auto; }
@media (max-width: 1012px) { .filters .filters-item { margin-left: 0; margin-bottom: 10px; width: 50%; } .filters .filters-item.filters-item--push { margin-left: 0; } .filters .filters-item:last-child { margin-bottom: 0; } }
@media (max-width: 767px) { .filters .filters-item { width: 100%; } }
.filters .filters-item input[type=text] { background-color: var(--color-bg-grey); padding: 12px 10px; border: none; border-radius: 0; width: 100%; color: var(--color-font); }
.filters .filters-item button { position: absolute; background-color: transparent; top: 0; bottom: 0; right: 0; border: none; aspect-ratio: 1; cursor: pointer; display: flex; align-items: center; justify-content: center; background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2232%22 height=%2232%22 viewBox=%220 0 256 256%22%3E%3Cpath fill=%22%231e3743%22 d=%22M229.66,218.34l-50.07-50.06a88.11,88.11,0,1,0-11.31,11.31l50.06,50.07a8,8,0,0,0,11.32-11.32ZM40,112a72,72,0,1,1,72,72A72.08,72.08,0,0,1,40,112Z%22%3E%3C/path%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: center; background-size: 18px; font-size: 0; color: transparent; }
.filters .filters-item select { appearance: none; -webkit-appearance: none; background-color: var(--color-primary); padding: 12px 17px 12px 15px; border: none; border-radius: var(--radius-md); cursor: pointer; color: var(--color-white); width: 100%; background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width=%2216%22 height=%229%22 viewBox=%220 0 16 9%22 fill=%22none%22 xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cpath stroke=%22%23bcbcbc%22 d=%22M0.5 0.5L7.59615 8.30764C7.64795 8.36836 7.71051 8.41676 7.77997 8.44985C7.84943 8.48293 7.92431 8.5 8 8.5C8.07569 8.5 8.15057 8.48293 8.22003 8.44985C8.28949 8.41676 8.35205 8.36836 8.40385 8.30764L15.5 0.5%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22/%3E%3C/svg%3E"); background-repeat: no-repeat; background-size: 10px; background-position: calc(100% - 15px) 50%; }
.filters .filters-item.filters-item--social { display: flex; align-items: center; width: auto; }
.filters .filters-item p { margin: 0; font-weight: 600; margin-right: var(--space-10); }
.filters .filters-item p a { font-weight: 400; }
.filters .filters-item ul.social li { margin: 0 0 0 10px; }
.filters .filters-item ul.social li a svg { fill: var(--color-primary); }

/* ---------- Enquiry form (Ninja Forms, as the theme restyles it) ---------- */
.nf-form-cont { margin-bottom: 40px; background-color: var(--color-bg-grey); padding: var(--space-card); border-radius: var(--radius-lg); }
.nf-form-cont .nf-form-title h3 { margin-bottom: 25px; }
.nf-form-cont .nf-form-fields-required { margin-bottom: 24px; color: var(--color-font); }
.nf-form-cont .nf-field-container { clear: both; margin-bottom: 25px; position: relative; }
.nf-form-cont .nf-field-label { margin-bottom: 5px; display: block; }
.nf-form-cont .nf-field-label label, .nf-form-cont .nf-field-label .nf-label-span { color: var(--color-font); margin: 0; padding: 0; }
.nf-form-cont .ninja-forms-req-symbol, .nf-form-cont .nf-error-msg { color: var(--color-error); }
.nf-form-cont .nf-form-content input[type=text], .nf-form-cont .nf-form-content input[type=password], .nf-form-cont .nf-form-content input[type=email], .nf-form-cont .nf-form-content input[type=tel], .nf-form-cont .nf-form-content textarea {
  padding: 10px 18px; outline: none; border: solid 1px var(--color-keyline); color: var(--color-font) !important; width: 100%; background: var(--color-white); margin: 0;
}
.nf-form-cont .nf-form-content textarea { height: 100px !important; }
.nf-form-cont .nf-form-content input:focus-visible, .nf-form-cont .nf-form-content textarea:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 2px; }
.nf-form-cont .nf-error .ninja-forms-field { border: 1px solid var(--color-error); }
.nf-form-cont .nf-form-content ul { list-style: none; margin: 0; padding: 0; }
.nf-form-cont .nf-form-content ul li { margin: 0 0 5px; padding-left: 0; display: flex; align-items: flex-start; }
.nf-form-cont .nf-form-content ul li::before { display: none; }
.nf-form-cont .nf-form-content ul li input { margin: 0.5625rem 10px 0 0; }
.nf-form-cont .nf-form-content ul li label { margin: 0; cursor: pointer; }
.nf-form-cont .nf-form-content .submit-container { margin-bottom: 5px; }
.nf-form-cont .nf-form-content input[type=submit] { height: auto; -webkit-appearance: none; appearance: none; }
.nf-form-cont .nf-response-msg p { margin: 0; }

/* Christ's College Hospitality: site styles.
   Loads after the design system (assets/ds/tokens.css and components.css) and only uses its
   tokens. Adds layout for pages the design system has no block for: the property page,
   booking card, room cards, gallery mosaic, dialogs, reviews and forms. */

/* ---------- Fluid element defaults (the design system's element sizes are its 1440px values) ---------- */
:where(p, figcaption, small, td, th, label, blockquote, cite, input, textarea, select, li, pre, dd) { font-size: clamp(1rem, 0.7151rem + 0.5944vw, 1.25rem); }
:where(h1) { font-size: clamp(1.875rem, 1.5189rem + 0.7429vw, 2.1875rem); }
:where(h2) { font-size: clamp(1.5625rem, 1.2064rem + 0.7429vw, 1.875rem); }
:where(h3) { font-size: clamp(1.3125rem, 0.9564rem + 0.7429vw, 1.625rem); }
:where(h4) { font-size: clamp(1.125rem, 0.6976rem + 0.8915vw, 1.5rem); }
:where(h5) { font-size: clamp(1.0625rem, 0.7064rem + 0.7429vw, 1.375rem); }
:where(h6) { font-size: clamp(1rem, 0.7151rem + 0.5944vw, 1.25rem); }
html { scroll-behavior: smooth; scroll-padding-top: 90px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
/* Nothing may make the page scroll sideways on phones (clip, unlike hidden, keeps sticky elements working) */
html { overflow-x: clip; }
body { background: var(--color-bg); overflow-x: hidden; overflow-x: clip; }
/* The design system caps this logo's height; let its width follow so it keeps its shape */
.sectionheader-cta img { width: auto; height: auto; }
/* Carousel arrows sit in the page margin; keep them inside the screen on phones */
@media (max-width: 767px) { .slick-prev { left: -16px; } .slick-next { right: -16px; } }
img { height: auto; }
dialog { color: var(--color-font); }

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

/* ---------- Containers and section options for site blocks ---------- */
.container, .amenities .amenities-inner { position: relative; margin: 0 auto; width: 100%; max-width: var(--container); padding-left: var(--space-gutter); padding-right: var(--space-gutter); }
.container--thin { max-width: var(--container-thin); }
.container--narrow { max-width: 640px; }
section.padding_top { padding-top: var(--space-section); }
section.padding_bottom { padding-bottom: var(--space-section); }
section.bg_grey { background-color: var(--color-bg-grey); }

/* ---------- Page titles: the red title bar ---------- */
.title-bar { position: relative; margin: 0 0 calc(var(--space-30) + var(--title-bar-height)); }
.title-bar::after { content: ""; position: absolute; bottom: calc(-1 * var(--space-30)); left: 0; width: var(--title-bar-width); height: var(--title-bar-height); background-color: var(--color-accent); }

/* ---------- Hero ---------- */
.hero .hero-image img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; }
.hero .hero-contentarea p + p { margin-top: 0; }
.hero.hero--compact .hero-inner { padding-bottom: var(--space-25); }
.hero.hero--compact .hero-content { max-width: 960px; }
@media (max-width: 1012px) {
  .hero .hero-image img { aspect-ratio: 2 / 1; }
  .hero.hero--compact .hero-content { padding-top: var(--space-30); }
}

/* ---------- Image ratios ---------- */
.ratio-square { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; }
.ratio-post { width: 100%; aspect-ratio: 820 / 500; object-fit: cover; }
.ratio-room { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.ratio-video { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.cards .cards-item .cards-image img { width: 100%; }

/* ---------- Buttons ---------- */
ul.buttons { margin-bottom: 0; row-gap: var(--space-15); }
.button { text-align: left; }
.button--block { display: block; width: 100%; text-align: center; padding-left: var(--space-button-right); }
button.button { line-height: 1.5; }
.link-button { background: none; border: 0; padding: 0; color: var(--color-accent); border-bottom: solid 1px var(--color-accent); cursor: pointer; font-family: var(--font-sans); transition: 0.2s all; }
.link-button:hover { color: var(--color-font); border-bottom-color: var(--color-font); }
.contentArea ul.buttons li::before, ul.buttons li::before { display: none; }
.contentArea ul.buttons { padding-left: 0; margin-top: var(--space-25); }

/* ---------- Header: open dropdowns on hover too (the design system toggles .isActive from JS) ---------- */
.header .header-navigation > li:hover > ul { opacity: 1; visibility: visible; top: 50px; }
.header .header-navigation ul.sub-menu { padding-left: var(--space-30); }
.header .header-navigation ul li a { display: inline-block; }
.header .header-logo a img { width: auto; }
@media (max-width: 1012px) { .header nav[aria-label="Main"] { display: none; } }
.mobilenavigation[aria-hidden="true"] { visibility: hidden; }
.mobilenavigation.isActive { visibility: visible; }
.mobilenavigation .mobilenavigation-details p a:not(.button) { color: var(--color-font); }
.mobilenavigation .mobilenavigation-details .button { color: var(--color-white); }
body.nav-open { overflow: hidden; }

/* ---------- Breadcrumbs ---------- */
.breadcrumbs { margin-bottom: var(--space-20); }
.breadcrumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; }
.breadcrumbs li { font-size: inherit; color: var(--color-font); }
.breadcrumbs li + li::before { content: "/"; margin: 0 8px; color: var(--color-icon); }
.breadcrumbs a { color: var(--color-font); border-bottom: solid 1px transparent; }
.breadcrumbs a:hover { border-bottom-color: var(--color-accent); }

/* ---------- Posts: labels, placeholders and filters ---------- */
.posts .posts-item .posts-content p.posts-label { padding: 0 0 var(--space-5); margin: 0; color: var(--color-font); font-weight: 600; }
.posts .posts-item .posts-content p.posts-date { padding-top: var(--space-10); }
.posts-placeholder { aspect-ratio: 820 / 500; background: var(--color-bg-grey); display: flex; align-items: center; justify-content: center; padding: var(--space-20); text-align: center; border-top-left-radius: var(--radius-lg); border-top-right-radius: var(--radius-lg); }
.posts-placeholder span { color: var(--color-primary); }
.posts .posts-item .posts-image img { width: 100%; }
.posts-item[hidden] { display: none !important; }
.filters { padding-bottom: var(--space-30); }
.filters .filters-item input[type=text] { border-radius: var(--radius-md); padding-right: 46px; }
.filters-count { margin: var(--space-15) 0 0; }
.filters-empty { padding-top: var(--space-20); }
.posts nav[aria-label="Pagination"] { display: flex; justify-content: center; }

/* ---------- Stars: the design system's stars.webp, cropped for ratings below five ---------- */
.stars { --stars-w: 6.5rem; display: inline-block; width: calc(var(--stars-w) * var(--rating, 5) / 5); overflow: hidden; vertical-align: middle; line-height: 0; flex: none; }
.stars img { width: var(--stars-w); max-width: none; height: auto; display: block; }
.testimonials .testimonials-item blockquote cite .stars { display: block; margin: 15px auto 0; --stars-w: 7.25rem; }
.testimonials .testimonials-item blockquote cite .stars img { padding: 0; width: var(--stars-w); height: auto; margin: 0; }

/* ---------- Home: amenities grid and notes ---------- */
.feature-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-grid-tight) var(--space-grid); }
.feature-grid li { border-top: solid 1px var(--color-font); padding-top: var(--space-20); }
.feature-grid h3 { margin: 0 0 var(--space-10); }
.feature-grid p { margin: 0; }
.notes { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-grid-tight); margin-top: var(--space-section-header); }
.note { border: solid 1px var(--color-keyline); border-radius: var(--radius-lg); padding: var(--space-card); }
.note h3 { margin: 0 0 var(--space-10); }
.note p { margin: 0; }
@media (max-width: 1012px) { .feature-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 767px) { .feature-grid, .notes { grid-template-columns: 1fr; } }

/* ---------- Feature banner: keep white text readable on bright photos ---------- */
.feature .feature-content { max-width: 760px; }
.feature .feature-content h2, .feature .feature-content p { color: var(--color-white); text-shadow: 0 1px 12px rgba(0, 0, 0, 0.35); }
.feature .feature-content h2 { margin-bottom: var(--space-15); }

/* ---------- Newsletter call to action before the footer ---------- */
.cta.cta--newsletter { padding-top: 0; padding-bottom: var(--space-section); }
.cta .cta-button p { margin: 0; }

/* =====================================================================
   Property page
   ===================================================================== */
.property-top { padding-top: var(--space-hero); }
.property-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-30); }
.property-title h1 { margin-bottom: calc(var(--space-30) + var(--title-bar-height) + var(--space-10)); }
.property-address { margin: 0; }
.property-rating { display: flex; align-items: center; gap: var(--space-10); color: var(--color-font); border-bottom: none; padding-top: var(--space-10); white-space: nowrap; }
.property-rating:hover { color: var(--color-font); }
.property-rating span { border-bottom: solid 1px transparent; }
.property-rating:hover span { border-bottom-color: var(--color-accent); }
.property-facts { list-style: none; margin: var(--space-25) 0 0; padding: 0; display: flex; flex-wrap: wrap; }
.property-facts li { font-size: inherit; padding-right: var(--space-15); margin-right: var(--space-15); border-right: solid 1px var(--color-font); line-height: 1.2; margin-bottom: 6px; }
.property-facts li:last-child { border-right: none; }
@media (max-width: 767px) { .property-heading { flex-direction: column; gap: 0; } }

/* In-page navigation */
.subnav { position: sticky; top: 0; z-index: var(--z-header); background: var(--color-white); border-bottom: solid 1px var(--color-keyline); margin-top: var(--space-30); }
.subnav-inner { margin: 0 auto; max-width: var(--container); padding: 0 var(--space-gutter); display: flex; align-items: center; gap: var(--space-20); }
.subnav ul { list-style: none; margin: 0; padding: 0; display: flex; overflow-x: auto; scrollbar-width: none; flex: 1; }
.subnav ul::-webkit-scrollbar { display: none; }
.subnav li { flex: none; }
.subnav li a { display: block; padding: 18px 0 16px; margin-right: var(--space-nav); color: var(--color-font); border-bottom: solid 2px transparent; }
.subnav li a:hover, .subnav li a.is-current { border-bottom-color: var(--color-accent); }
.subnav-book { flex: none; padding-top: 8px; padding-bottom: 8px; }
@media (max-width: 767px) { .subnav-book { display: none; } }

/* Gallery mosaic (gallery photos stay square-cornered) */
.mosaic-section { padding-top: var(--space-30); }
.mosaic { position: relative; display: grid; grid-template-columns: 2fr 1fr 1fr; grid-template-rows: 1fr 1fr; gap: var(--space-10); aspect-ratio: 2.4 / 1; }
.mosaic-tile { position: relative; display: block; padding: 0; border: 0; background: var(--color-bg-grey); overflow: hidden; cursor: zoom-in; min-height: 0; }
.mosaic-tile img { width: 100%; height: 100%; object-fit: cover; transition: 0.3s all ease-in-out; }
.mosaic-tile:hover img { transform: scale(1.05); }
.mosaic-tile--main { grid-row: 1 / span 2; }
.mosaic-all { position: absolute; right: var(--space-20); bottom: var(--space-20); z-index: 2; }
@media (max-width: 767px) {
  .mosaic { grid-template-columns: 1fr 1fr; grid-template-rows: auto auto; aspect-ratio: auto; }
  .mosaic-tile--main { grid-column: 1 / span 2; grid-row: auto; aspect-ratio: 3 / 2; }
  .mosaic-tile:not(.mosaic-tile--main) { aspect-ratio: 1 / 1; }
  .mosaic-tile:nth-child(n+4) { display: none; }
}

/* Two columns with a sticky booking card (5fr / 2fr, as the design system's sidebars) */
.property-layout { display: grid; grid-template-columns: 5fr 2fr; gap: var(--space-grid-wide); padding-top: var(--space-section-header); padding-bottom: var(--space-section); align-items: start; }
.property-main { min-width: 0; }
.property-section { padding-bottom: var(--space-35); margin-bottom: var(--space-35); border-bottom: solid 1px var(--color-font); }
.property-section:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
.property-section > h2 { margin-bottom: var(--space-20); }
.property-aside { position: sticky; top: 84px; }
@media (max-width: 1012px) {
  .property-layout { grid-template-columns: 1fr; }
  .property-aside { display: none; }
}

.checklist { padding-left: 17px; }
.readmore { margin-top: var(--space-text); }
.readmore[hidden] { display: none; }

/* Booking card */
.booking-card { border: solid 1px var(--color-keyline); border-radius: var(--radius-lg); padding: var(--space-card); background: var(--color-white); }
.booking-card h2 { margin-bottom: var(--space-5); }
.booking-card > p { margin-bottom: var(--space-20); }
.booking-form { display: grid; gap: var(--space-15); }
.booking-dates { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-10); }
.booking-field label { display: block; font-weight: 600; margin-bottom: var(--space-5); color: var(--color-font); }
.booking-field input, .booking-field select { width: 100%; min-height: 46px; padding: 8px 10px; border: solid 1px var(--color-keyline); border-radius: var(--radius-md); background: var(--color-white); color: var(--color-font); font-family: var(--font-sans); }
.booking-field select { appearance: none; -webkit-appearance: none; background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='9' viewBox='0 0 16 9' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='%23bcbcbc' d='M0.5 0.5L7.59615 8.30764C7.64795 8.36836 7.71051 8.41676 7.77997 8.44985C7.84943 8.48293 7.92431 8.5 8 8.5C8.07569 8.5 8.15057 8.48293 8.22003 8.44985C8.28949 8.41676 8.35205 8.36836 8.40385 8.30764L15.5 0.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-size: 10px; background-position: calc(100% - 12px) 50%; padding-right: 30px; }
.booking-form .button { width: 100%; text-align: center; padding-left: var(--space-button-right); }
.booking-error { color: var(--color-error); margin: 0; }
.booking-promo { margin: var(--space-15) 0 0; text-align: center; }
.booking-contact { margin-top: var(--space-20); padding-top: var(--space-15); border-top: solid 1px var(--color-grey); }
.booking-contact p { margin: 0 0 var(--space-5); text-align: center; font-size: inherit; }

/* Mobile booking bar (the card is hidden below 1012px) */
.booking-bar { display: none; }
@media (max-width: 1012px) {
  .booking-bar { display: flex; position: fixed; z-index: var(--z-header); left: 0; right: 0; bottom: 0; background: var(--color-white); border-top: solid 1px var(--color-keyline); padding: 10px var(--space-gutter); align-items: center; justify-content: space-between; gap: var(--space-15); transform: translateY(110%); visibility: hidden; transition: transform 0.3s ease-in-out, visibility 0s linear 0.3s; }
  .booking-bar.is-visible { transform: translateY(0); visibility: visible; transition: transform 0.3s ease-in-out, visibility 0s; }
  .booking-bar p { margin: 0; line-height: 1.3; }
  .page-property .footer { padding-bottom: 70px; }
}

/* Rooms */
.room-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-grid-tight); margin-top: var(--space-25); }
.room-card { border: solid 1px var(--color-keyline); border-radius: var(--radius-lg); overflow: hidden; display: flex; flex-direction: column; }
.room-card-image { position: relative; display: block; border: 0; padding: 0; background: var(--color-bg-grey); cursor: zoom-in; overflow: hidden; }
.room-card-image img { transition: 0.3s all ease-in-out; }
.room-card:hover .room-card-image img { transform: scale(1.05); }
.photo-count { position: absolute; right: 12px; bottom: 12px; background: var(--color-primary); color: var(--color-white); border-radius: var(--radius-md); padding: 2px 10px; }
.room-card-content { padding: var(--space-20) var(--space-card) var(--space-card); flex: 1; display: flex; flex-direction: column; align-items: flex-start; }
.room-card-content h3 { margin: 0 0 var(--space-5); }
.room-card-content p { margin: 0 0 var(--space-15); }
.room-card-content .link-button { margin-top: auto; }
@media (max-width: 767px) { .room-grid { grid-template-columns: 1fr; } }

/* Amenities */
.amenity-list { list-style: none; margin: 0 0 var(--space-30); padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-20) var(--space-grid); }
.amenity-list li { position: relative; padding-left: 17px; }
.amenity-list li::before { content: ""; position: absolute; left: 0; top: 0.7rem; width: var(--bullet); height: var(--bullet); border-radius: var(--radius-full); background: var(--color-accent); }
.amenity-list h3 { margin: 0; }
.amenity-list p { margin: 0; }
.amenity-groups { columns: 2; column-gap: var(--space-grid); }
.amenity-groups > div { break-inside: avoid; margin-bottom: var(--space-25); }
.amenity-groups h3 { margin-bottom: var(--space-10); }
@media (max-width: 767px) { .amenity-list { grid-template-columns: 1fr; } .amenity-groups { columns: 1; } }

/* Availability panel */
.availability-panel { background: var(--color-bg-grey); border-radius: var(--radius-lg); padding: var(--space-panel); display: flex; align-items: center; justify-content: space-between; gap: var(--space-30); }
.availability-panel h2 { margin-bottom: var(--space-10); }
.availability-panel p { margin: 0; }
.availability-panel > p { flex: none; }
@media (max-width: 767px) { .availability-panel { flex-direction: column; align-items: flex-start; } }

/* Offers list */
.offer-list { list-style: none; margin: 0 0 var(--space-20); padding: 0; }
.offer-row { display: grid; grid-template-columns: 140px 1fr; gap: var(--space-25); padding: var(--space-20) 0; border-top: solid 1px var(--color-grey); }
.offer-row:first-child { border-top: none; padding-top: 0; }
.offer-row-image { display: block; border: 0; border-radius: var(--radius-lg); overflow: hidden; }
.offer-row-image img { transition: 0.3s all ease-in-out; }
.offer-row:hover .offer-row-image img { transform: scale(1.05); }
.offer-row h3 { margin: 0 0 var(--space-5); }
.offer-row h3 a { color: var(--color-font); border-bottom: solid 1px transparent; }
.offer-row h3 a:hover { border-bottom-color: var(--color-font); }
.offer-row p { margin: 0 0 var(--space-5); }
@media (max-width: 767px) { .offer-row { grid-template-columns: 90px 1fr; gap: var(--space-15); } }

/* Reviews */
.reviews-overview { display: grid; grid-template-columns: 240px 1fr; gap: var(--space-grid); align-items: start; margin-bottom: var(--space-30); }
.rating-summary p { margin: 0 0 var(--space-10); }
.rating-score { display: flex; align-items: baseline; gap: var(--space-10); }
.rating-score .fontSectionTitle { line-height: 1; }
.rating-summary .stars { --stars-w: 8rem; margin-bottom: var(--space-10); }
.rating-bars { list-style: none; margin: var(--space-15) 0 0; padding: 0; }
.rating-bars li { display: grid; grid-template-columns: 54px 1fr 32px; align-items: center; gap: var(--space-10); margin-bottom: var(--space-5); }
.rating-bars li span:last-child { text-align: right; }
.rating-bar { display: block; height: 6px; background: var(--color-grey); border-radius: var(--radius-md); overflow: hidden; }
.rating-bar span { display: block; height: 100%; background: var(--color-primary); }
.review-list { display: grid; gap: var(--space-20); }
.review-card { border: solid 1px var(--color-keyline); border-radius: var(--radius-lg); padding: var(--space-card); background: var(--color-white); }
.review-card h3 { margin: 0 0 var(--space-5); }
.review-meta { display: flex; align-items: center; gap: var(--space-10); margin: 0 0 var(--space-15); }
.review-meta .stars { --stars-w: 5.5rem; }
.review-body p { font-size: clamp(0.9375rem, 0.7238rem + 0.4458vw, 1.125rem); margin-bottom: var(--space-10); }
.review-body--clamp { display: -webkit-box; -webkit-line-clamp: 5; -webkit-box-orient: vertical; overflow: hidden; }
.review-author { margin: var(--space-10) 0 0; font-weight: 600; }
@media (max-width: 767px) { .reviews-overview { grid-template-columns: 1fr; } }

/* Location */
.location-grid { display: grid; grid-template-columns: 7fr 5fr; gap: var(--space-grid); align-items: stretch; }
.location-map { display: flex; }
.location-map .map { flex: 1; background-color: var(--color-white); justify-content: center; }
.location-map .map.embeddedcontent--enabled { background: none; }
.location-map .map iframe { height: 100%; min-height: 420px; aspect-ratio: auto; }
.location-grid .contentArea h3 { margin-top: var(--space-25); }
@media (max-width: 1012px) { .location-grid { grid-template-columns: 1fr; } }

/* Map and video: load only when asked (the design system's blocked-embed panel) */
.map { border-radius: var(--radius-lg); overflow: hidden; min-height: 320px; display: flex; align-items: center; }
.map .embeddedcontent-message { padding: var(--space-panel); }
.map iframe { width: 100%; aspect-ratio: 4 / 3; border: 0; display: block; }
.map.embeddedcontent--enabled { padding: 0; border: none; background: none; display: block; min-height: 0; }
.embed .map iframe { aspect-ratio: 21 / 9; }
@media (max-width: 767px) { .embed .map iframe { aspect-ratio: 4 / 3; } }
.video { margin: 0; }
.video-play { position: relative; display: block; width: 100%; padding: 0; border: 0; background: var(--color-primary); cursor: pointer; border-radius: var(--radius-lg); overflow: hidden; }
.video-play img { opacity: 0.92; transition: 0.3s all ease-in-out; }
.video-play[hidden] { display: none; }
.video-play:hover img { transform: scale(1.03); opacity: 1; }
.video-badge { position: absolute; left: 0; bottom: 0; width: 64px; height: 64px; background-color: var(--color-primary); background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 256 256'%3E%3Cpath fill='%23ffffff' d='M232.4,114.49,88.32,26.35a16,16,0,0,0-16.2-.3A15.86,15.86,0,0,0,64,39.87V216.13A15.94,15.94,0,0,0,80,232a16.07,16.07,0,0,0,8.36-2.35L232.4,141.51a15.81,15.81,0,0,0,0-27ZM80,215.94V40l143.83,88Z'%3E%3C/path%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: center; background-size: 28px; }
.video-note { margin: var(--space-10) 0 0; }
.video iframe { width: 100%; aspect-ratio: 16 / 9; border: 0; display: block; border-radius: var(--radius-lg); }

/* Host */
.host-grid { display: grid; grid-template-columns: 5fr 7fr; gap: var(--space-grid); align-items: center; }
.host-image img { border-radius: var(--radius-lg); }
.host-label { margin-bottom: var(--space-10) !important; }
.contentArea ul.host-facts { list-style: none; padding: 0; margin: 0 0 var(--space-25); display: flex; flex-wrap: wrap; }
.contentArea ul.host-facts li { padding-right: var(--space-15); margin-right: var(--space-15); border-right: solid 1px var(--color-font); line-height: 1.2; font-size: inherit; margin-bottom: 6px; }
.contentArea ul.host-facts li:last-child { border-right: none; }
.contentArea ul.host-facts li::before { display: none; }
@media (max-width: 767px) { .host-grid { grid-template-columns: 1fr; } }

/* Reserve (embedded booking engine) */
.reserve-head { max-width: 900px; margin-bottom: var(--space-section-header); }
.reserve-head h2 { margin-bottom: var(--space-15); }
.ibe-wrap { background: var(--color-white); border: solid 1px var(--color-keyline); border-radius: var(--radius-lg); padding: var(--space-15); min-height: 240px; }
.ibe-wrap iframe { display: block; width: 100% !important; max-width: none !important; border: 0; }
.ibe-loading { padding: var(--space-20); }
.ibe-loading p { margin: 0 0 var(--space-5); }
.ibe-wrap.is-loaded .ibe-loading { display: none; }
.reserve-mobile { display: none; }
.reserve-mobile .booking-form { background: var(--color-white); border: solid 1px var(--color-keyline); border-radius: var(--radius-lg); padding: var(--space-card); }
.no-js .reserve-mobile, .reserve.is-compact .reserve-mobile { display: block; }
.no-js .reserve-embed, .reserve.is-compact .reserve-embed { display: none; }
.booking-page .ibe-wrap { min-height: 480px; }
.booking-fallback { margin-top: var(--space-20); }
.group-note { margin: var(--space-15) 0 var(--space-20); padding: 12px 16px; border-left: 3px solid var(--color-primary); background: var(--color-white); }
.booking-page .group-note { background: var(--color-bg-blue); }

/* Guest information cards */
.info-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-grid-tight); }
.info-card { border: solid 1px var(--color-keyline); border-radius: var(--radius-lg); padding: var(--space-card); display: flex; flex-direction: column; align-items: flex-start; }
.info-card h3 { margin-bottom: var(--space-10); }
.info-card > p { margin-bottom: var(--space-15); }
.info-card .contentArea { margin: 0 0 var(--space-20); }
.info-card .contentArea ul { margin: 0; }
.info-card .link-button { margin-top: auto; }
@media (max-width: 1012px) { .info-cards { grid-template-columns: 1fr; } }

/* ---------- Dialogs ---------- */
dialog.modal, dialog.lightbox { padding: 0; border: 0; max-width: none; max-height: none; background: transparent; }
dialog.modal::backdrop { background: rgba(0, 0, 0, 0.5); }
dialog.modal { width: min(720px, calc(100vw - 2 * var(--space-gutter))); margin: auto; }
dialog.modal.modal--wide { width: min(980px, calc(100vw - 2 * var(--space-gutter))); }
.modal-panel { background: var(--color-white); border-radius: var(--radius-lg); max-height: calc(100vh - 40px); max-height: calc(100dvh - 40px); display: flex; flex-direction: column; overflow: hidden; }
.modal-header { display: flex; align-items: center; justify-content: space-between; gap: var(--space-20); padding: var(--space-20) var(--space-card); border-bottom: solid 1px var(--color-grey); }
.modal-header h2 { margin: 0; }
.modal-body { padding: var(--space-card); overflow-y: auto; }
.modal-close { flex: none; width: 42px; height: 42px; border-radius: var(--radius-full); border: 0; background-color: var(--color-bg-grey); cursor: pointer; background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32' fill='none'%3E%3Cpath d='M31 1L1 31' stroke='%23133673' stroke-width='2' stroke-linecap='round'/%3E%3Cpath d='M1 1L31 31' stroke='%23133673' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E"); background-size: 14px; background-repeat: no-repeat; background-position: center; transition: 0.2s all; }
.modal-close:hover { background-color: var(--color-grey); }
.modal-close--inverse { background-color: var(--color-primary); background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32' fill='none'%3E%3Cpath d='M31 1L1 31' stroke='%23ffffff' stroke-width='2' stroke-linecap='round'/%3E%3Cpath d='M1 1L31 31' stroke='%23ffffff' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E"); }
.modal-close--inverse:hover { background-color: var(--color-primary-hover); }
.modal-body .contentArea h3 { margin-top: var(--space-20); }
.modal-body h3.fontHeader5 { margin-bottom: var(--space-10); }
.modal-body .contentArea ul { margin-bottom: var(--space-20); }
.modal-carousel { margin-bottom: var(--space-25); }
.modal-carousel figure, .modal-body > figure { margin: 0; }
.modal-carousel img { border-radius: var(--radius-lg); }
.modal-carousel .slick-arrow.slick-prev { left: 10px; }
.modal-carousel .slick-arrow.slick-next { right: 10px; }
.room-facts { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-15); margin: 0 0 var(--space-25); padding: 0 0 var(--space-20); border-bottom: solid 1px var(--color-grey); }
.room-facts dt { font-weight: 600; color: var(--color-font); }
.room-facts dd { margin: 0; color: var(--color-font); }
@media (max-width: 767px) { .room-facts { grid-template-columns: 1fr 1fr; } }
.mini-highlights { margin-top: var(--space-25); }
.mini-highlights ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); gap: var(--space-15); }
.mini-highlights li { text-align: center; }
.mini-highlights img { width: 72px; height: 72px; border-radius: var(--radius-full); margin: 0 auto var(--space-5); }
.mini-highlights span { display: block; color: var(--color-primary); font-weight: 600; line-height: 1.3; }
.room-video { margin-top: var(--space-25); }
.modal-actions { margin-top: var(--space-30); }

/* Lightbox */
dialog.lightbox { width: 100vw; height: 100vh; height: 100dvh; margin: 0; }
dialog.lightbox::backdrop { background: rgba(0, 0, 0, 0.92); }
.lightbox-inner { position: relative; width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; padding: 70px 80px; }
.lightbox-figure { margin: 0; max-width: 100%; max-height: 100%; display: flex; flex-direction: column; align-items: center; }
.lightbox-figure img { max-width: 100%; max-height: calc(100vh - 190px); max-height: calc(100dvh - 190px); width: auto; height: auto; object-fit: contain; }
.lightbox-figure figcaption { color: var(--color-white); text-align: center; padding-top: var(--space-15); max-width: 760px; }
.lightbox-count { position: absolute; top: 24px; left: 30px; margin: 0; color: var(--color-white); }
.lightbox .modal-close { position: absolute; top: 16px; right: 20px; }
.lightbox .slick-arrow { position: absolute; top: 50%; }
.lightbox .slick-arrow.slick-prev { left: 20px; }
.lightbox .slick-arrow.slick-next { right: 20px; }
@media (max-width: 767px) { .lightbox-inner { padding: 70px 10px 90px; } .lightbox .slick-arrow { top: auto; bottom: 24px; margin: 0; } .lightbox .slick-arrow.slick-prev { left: calc(50% - 52px); } .lightbox .slick-arrow.slick-next { right: calc(50% - 52px); } }

/* ---------- Carousels (slick markup, driven by site.js) ---------- */
.cch-carousel .slick-track { will-change: transform; }
.cch-carousel .slick-slide > img, .cch-carousel .slick-slide figure img { width: 100%; }
.textimage .textimage-carousel { margin: 0 21px; }
@media (max-width: 767px) { .textimage .textimage-carousel { margin: 0; } }
.testimonials .testimonials-carousel { margin: 0 21px; }
@media (max-width: 767px) { .testimonials .testimonials-carousel { margin: 0; } .testimonials .testimonials-carousel .slick-arrow { top: auto; bottom: -60px; } .testimonials .testimonials-carousel { margin-bottom: 60px; } .testimonials .testimonials-carousel .slick-prev { left: calc(50% - 52px); } .testimonials .testimonials-carousel .slick-next { right: calc(50% - 52px); } }

/* ---------- Content (Markdown) ---------- */
.contentArea h2 { margin-top: var(--space-35); }
.contentArea h3 { margin-top: var(--space-25); }
.contentArea > :first-child { margin-top: 0; }
.contentArea img { border-radius: var(--radius-lg); }
.md-figure { margin: var(--space-10) 0 var(--space-text); }
.md-figure img { width: 100%; }
.md-figure figcaption { padding-top: var(--space-10); color: var(--color-font); }
.md-figure--portrait { float: right; width: 40%; max-width: 360px; margin: var(--space-5) 0 var(--space-20) var(--space-30); }
@media (max-width: 767px) { .md-figure--portrait { float: none; width: 100%; max-width: none; margin-left: 0; } }
.contentArea::after { content: ""; display: table; clear: both; }
.table-wrap { overflow-x: auto; margin-bottom: 24px; }
.table-wrap table { border-collapse: collapse; width: 100%; }
.table-wrap th, .table-wrap td { border: solid 1px var(--color-keyline); padding: 8px 12px; text-align: left; vertical-align: top; }
.contentArea ul ul { margin-top: var(--space-5); margin-bottom: var(--space-5); }

/* ---------- Single pages (posts, places, offers, legal) ---------- */
.singlepage header .post-meta { margin: 0 0 var(--space-10); }
.singlepage .singlepage-wrapper.singlepage-wrapper--single { grid-template-columns: 1fr; }
.singlepage .singlepage-hero img { width: 100%; }
.singlepage aside .singlepage-item h3 { margin-bottom: var(--space-10); }
.singlepage aside .singlepage-item p { margin-bottom: var(--space-10); }
.singlepage aside .booking-form { margin-top: var(--space-15); }
.singlepage aside ul.buttons { margin: var(--space-15) 0; }
.lead { margin-bottom: var(--space-text); }
.promo-code { display: inline-block; padding: 6px 16px; border: dashed 2px var(--color-accent); border-radius: var(--radius-md); color: var(--color-font); letter-spacing: 0; }
.contact-list { list-style: none; margin: 0 0 var(--space-15); padding: 0; }
.contact-list li { margin-bottom: var(--space-10); font-size: inherit; display: flex; flex-direction: column; }
.contact-list li span.fontBodySmaller { font-weight: 600; }
.contentArea ul.contact-list { padding-left: 0; }
.contentArea ul.contact-list li::before { display: none; }
.quicklinks { list-style: none; margin: 0; padding: 0; }
.quicklinks li { margin-bottom: var(--space-10); }
.quicklinks a { color: var(--color-font); border-bottom: solid 1px transparent; }
.quicklinks a:hover { border-bottom-color: var(--color-accent); }
.points .point-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-grid); }
.points .point { background: var(--color-white); border-radius: var(--radius-lg); padding: var(--space-panel); }
.points .point h2 { margin-bottom: var(--space-10); }
.points .point p { margin: 0; }
@media (max-width: 1012px) { .points .point-grid { grid-template-columns: 1fr; } }

/* ---------- Reviews page ---------- */
.review-feed { list-style: none; margin: var(--space-25) 0 0; padding: 0; display: grid; gap: var(--space-20); }
.review-feed > li::before { display: none; }
.review-more { margin-top: var(--space-30); text-align: center; }
.reviews-aside .rating-summary { padding: var(--space-card); background: var(--color-bg-grey); border-radius: var(--radius-lg); }
.article .article-item { border-bottom-color: var(--color-grey); }
.article .article-item h3 { margin-bottom: var(--space-10); }
.article .article-item p { margin-bottom: var(--space-10); }
.article .article-column > h2 { margin-bottom: 0; }

/* ---------- Guide Book quick links ---------- */
.quicknav { border-top: solid 1px var(--color-keyline); border-bottom: solid 1px var(--color-keyline); background: var(--color-white); position: sticky; top: 0; z-index: var(--z-header); }
.quicknav ul { list-style: none; margin: 0; padding: 0; display: flex; overflow-x: auto; scrollbar-width: none; }
.quicknav ul::-webkit-scrollbar { display: none; }
.quicknav li { flex: none; }
.quicknav a { display: block; padding: 16px 0 14px; margin-right: var(--space-nav); color: var(--color-font); border-bottom: solid 2px transparent; }
.quicknav a:hover { border-bottom-color: var(--color-accent); }
.page-guide .accordion .sectionheader { margin-bottom: var(--space-20); }
.page-guide .accordion.padding_top + .accordion { padding-top: 0; }

/* ---------- Forms ---------- */
.form-section .nf-form-cont { margin-bottom: 0; }
.nf-form-cont .nf-form-content { display: flex; flex-wrap: wrap; column-gap: var(--space-20); }
.nf-form-cont .nf-field-container { width: 100%; }
.nf-form-cont .nf-field-container--half { width: calc(50% - var(--space-20) / 2); }
@media (max-width: 767px) { .nf-form-cont .nf-field-container--half { width: 100%; } }
.nf-form-cont .nf-form-content input[type=date], .nf-form-cont .nf-form-content select { padding: 10px 18px; border: solid 1px var(--color-keyline); color: var(--color-font); width: 100%; background-color: var(--color-white); margin: 0; font-family: var(--font-sans); min-height: 48px; }
.nf-form-cont .nf-form-content select { appearance: none; -webkit-appearance: none; background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='9' viewBox='0 0 16 9' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='%23bcbcbc' d='M0.5 0.5L7.59615 8.30764C7.64795 8.36836 7.71051 8.41676 7.77997 8.44985C7.84943 8.48293 7.92431 8.5 8 8.5C8.07569 8.5 8.15057 8.48293 8.22003 8.44985C8.28949 8.41676 8.35205 8.36836 8.40385 8.30764L15.5 0.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-size: 10px; background-position: calc(100% - 15px) 50%; padding-right: 40px; }
.nf-form-cont .nf-form-content textarea { height: 140px !important; font-family: var(--font-sans); }
.nf-form-cont .nf-field-description p { margin: var(--space-5) 0 0; }
.nf-form-cont .nf-form-content input[type=checkbox], .nf-form-cont .nf-form-content input[type=radio] { width: 18px; height: 18px; accent-color: var(--color-primary); flex: none; }
.nf-form-cont .nf-form-content ul li label p { margin: 0; }
.nf-form-cont .form-intro { margin-bottom: var(--space-15); }
.nf-form-cont .nf-error input, .nf-form-cont .nf-error select, .nf-form-cont .nf-error textarea { border-color: var(--color-error) !important; }
.nf-form-cont .nf-error-msg { margin-top: var(--space-5); }
.hp-field { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form-status { width: 100%; margin-top: var(--space-15); }
.form-status.is-error { color: var(--color-error); }
.nf-form-cont .submit-container .button[disabled] { opacity: var(--opacity-disabled); cursor: progress; }
.form-success { padding: var(--space-20) 0 0; }
.form-success:focus { outline: none; }
.form-success p { margin-bottom: var(--space-15); }
.form-success::before { content: ""; display: block; width: var(--title-bar-width); height: var(--title-bar-height); background: var(--color-accent); margin-bottom: var(--space-20); }

/* ---------- Link tree ---------- */
.linktree-head { text-align: center; margin-bottom: var(--space-30); }
.linktree-photo { width: 160px; height: 160px; object-fit: cover; border-radius: var(--radius-full); margin: 0 auto var(--space-20); }
.linktree-list { list-style: none; margin: 0 0 var(--space-30); padding: 0; display: grid; gap: var(--space-15); }
.linktree-social { justify-content: center; }
.linktree-social li a svg { height: var(--social-icon); }

/* ---------- Footer additions ---------- */
.footer .footer-content .footer-heading { color: var(--color-yellow); margin: 0 0 var(--space-12); font-size: clamp(0.875rem, 0.7325rem + 0.2972vw, 1rem); }
.footer .footer-content ul.footer-navigation > li > a { pointer-events: none; }
.footer .footer-legal p.footer-credit { margin-top: var(--space-10); }
.footer .footer-content p { margin-bottom: var(--space-10); }
@media (max-width: 1012px) {
  .footer .footer-content { flex-direction: column; }
  .footer .footer-content .footer-contact { margin-bottom: var(--space-30); }
  .footer .footer-content ul.footer-navigation { flex-wrap: wrap; row-gap: var(--space-30); }
  .footer .footer-content ul.footer-navigation > li { flex: 0 0 50%; }
}

/* ---------- Scroll reveal (once, at 95% of the viewport) ---------- */
@media (prefers-reduced-motion: no-preference) {
  .js .reveal { opacity: 0; transform: translateY(30px); transition: transform 1s cubic-bezier(0.075, 0.82, 0.165, 1), opacity 1s cubic-bezier(0.25, 0.46, 0.45, 0.94); }
  .js .reveal.is-visible { opacity: 1; transform: none; }
  .js .reveal-stagger > * { opacity: 0; transform: translateY(10px); transition: transform 0.8s cubic-bezier(0.075, 0.82, 0.165, 1), opacity 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94); }
  .js .reveal-stagger.is-visible > * { opacity: 1; transform: none; }
  .js .reveal-photo { opacity: 0; transition: opacity 2s cubic-bezier(0.25, 0.46, 0.45, 0.94) 0.5s; }
  .js .reveal-photo.is-visible { opacity: 1; }
}

/* ---------- Print ---------- */
@media print {
  .header-burger, .mobilenavigation, .subnav, .booking-bar, .cta--newsletter, .footer, .quicknav { display: none !important; }
  .js .reveal, .js .reveal-stagger > *, .js .reveal-photo { opacity: 1 !important; transform: none !important; }
  .accordion .accordion-content { display: block !important; }
}

/* Fact lists on phones: dots instead of rules so wrapped lines read cleanly */
@media (max-width: 767px) {
  .property-facts li, .contentArea ul.host-facts li { border-right: none; padding-right: 0; margin-right: 10px; }
  .property-facts li:not(:last-child)::after, .contentArea ul.host-facts li:not(:last-child)::after { content: "·"; margin-left: 10px; }
}

/* Headings that are links stay navy and take the red underline used by navigation */
.contentArea :is(h2, h3, h4, h5, h6) a { color: var(--color-font); border-bottom: solid 1px var(--color-accent); }
.contentArea :is(h2, h3, h4, h5, h6) a:hover { color: var(--color-font); border-bottom-color: var(--color-font); }
.contact-list li { align-items: flex-start; }

.ibe-offsite { padding: var(--space-20); }
.ibe-offsite p { margin-bottom: var(--space-15); }
.ibe-wrap.is-offsite { min-height: 0; }

/* Accessibility-driven markup: sidebars are divs (not nested landmarks), radio groups use fieldsets */
.cta h2 { margin-bottom: var(--space-15); }
.singlepage .singlepage-aside .singlepage-item { padding-bottom: var(--space-25); margin-bottom: var(--space-25); border-bottom: solid 1px var(--color-grey); }
.singlepage .singlepage-aside .singlepage-item:last-child { padding-bottom: 0; margin-bottom: 0; border-bottom: none; }
.singlepage .singlepage-aside img { border-radius: var(--radius-md); }
.singlepage .singlepage-aside ul.social li { margin: 0 10px 0 0; }
.singlepage .singlepage-aside ul.social li a svg { height: var(--social-icon); fill: var(--color-primary); }
@media (max-width: 1012px) {
  .singlepage .singlepage-aside { padding-top: 30px; }
  .singlepage .singlepage-aside .singlepage-item.singlepage-item--featuredimage { display: none; }
}
.nf-fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.nf-fieldset legend { padding: 0; margin-bottom: 5px; color: var(--color-font); }
/* Newsletter panel after a grey band: keep white space between the two greys */
.bg_grey + .cta--newsletter, .feature + .cta--newsletter { padding-top: var(--space-section); }

/* Small award badge beside a call-to-action's heading */
.cta--badge .cta-wrapper { align-items: center; }
.cta-badge { flex: 0 0 auto; margin-right: var(--space-30); }
.cta-badge img { display: block; width: 68px; height: auto; }
@media (max-width: 1012px) { .cta--badge .cta-wrapper { align-items: flex-start; } .cta-badge { margin: 0 0 var(--space-20); } .cta-badge img { width: 60px; } }

/* Cookie Control panel: the "Off" label on its toggles is too faint to pass contrast checks */
#ccc .checkbox-toggle-off, #ccc .checkbox-toggle-on { color: #ffffff !important; }
/* Footer legal links: comfortable tap targets on phones */
.footer .footer-legal ul li a { display: inline-block; padding: 6px 0; min-height: 24px; }
/* Hero badges shrink on smaller screens: keep their shape */
.hero ul.hero-logos li img { width: auto; }
