/*
Theme Name: Innatstjohn
Theme URI: https://innatstjohn.com/
Author: Inn at St John
Description: A bespoke, responsive WordPress theme for Inn at St John.
Version: 1.1.0
Requires at least: 6.5
Requires PHP: 8.0
Text Domain: innatstjohn
*/

@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("assets/fonts/inter-latin.woff2") format("woff2");
}

:root {
  --color-ink: #080706;
  --color-burgundy: #701b1c;
  --color-burgundy-dark: #471011;
  --color-gold: #d5a141;
  --color-teal: #087477;
  --color-yellow: #fff200;
  --color-forest: var(--color-burgundy);
  --color-sage: #8f6425;
  --color-cream: #fff9e8;
  --color-sand: #ead5aa;
  --color-white: #fff;
  --content-width: 1200px;
  --radius: 0.35rem;
  --shadow: 0 1rem 3rem rgb(22 35 29 / 12%);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--color-ink);
  background: var(--color-cream);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 1rem;
  line-height: 1.7;
}
img { display: block; max-width: 100%; height: auto; }
a { color: var(--color-forest); text-underline-offset: 0.2em; }
a:hover { color: var(--color-sage); }
h1, h2, h3, h4 {
  margin: 0 0 0.65em;
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 400;
  line-height: 1.1;
}
h1 { font-size: clamp(2.5rem, 7vw, 5.5rem); }
h2 { font-size: clamp(2rem, 4vw, 3.4rem); }
h3 { font-size: clamp(1.35rem, 2vw, 1.8rem); }
p { margin: 0 0 1.35rem; }
.screen-reader-text {
  position: absolute !important;
  width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.screen-reader-text:focus {
  z-index: 100000; top: 1rem; left: 1rem; width: auto; height: auto;
  padding: 0.75rem 1rem; clip: auto; background: var(--color-white);
}
.site-shell { width: min(calc(100% - 2rem), var(--content-width)); margin-inline: auto; }
.site-header {
  position: sticky; top: 0; z-index: 1000; border-top: 3px solid var(--color-burgundy);
  border-bottom: 1px solid rgb(213 161 65 / 18%);
  background: rgb(23 18 16 / 97%); box-shadow: 0 0.6rem 2rem rgb(8 7 6 / 18%);
  backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
  transition: background 240ms ease, border-color 240ms ease, box-shadow 240ms ease, backdrop-filter 240ms ease;
}
.home .site-header { position: fixed; right: 0; left: 0; }
.home .site-header:not(.is-scrolled) { border-top-color: var(--color-gold); border-bottom-color: transparent; background: transparent; box-shadow: none; backdrop-filter: none; -webkit-backdrop-filter: none; }
.home .site-header:not(.is-scrolled) .site-title, .home .site-header:not(.is-scrolled) .primary-menu a, .home .site-header:not(.is-scrolled) .header-phone { color: var(--color-white); text-shadow: 0 1px 12px rgb(0 0 0 / 35%); }
.home .site-header:not(.is-scrolled) .site-description, .home .site-header:not(.is-scrolled) .header-phone-label { color: var(--color-gold); }
.home .site-header:not(.is-scrolled) .primary-menu a:hover, .home .site-header:not(.is-scrolled) .primary-menu .current-menu-item > a { color: var(--color-gold); }
.home .site-header:not(.is-scrolled) .custom-logo, .home .site-header:not(.is-scrolled) .brand-logo img { filter: drop-shadow(0 0.4rem 0.7rem rgb(0 0 0 / 35%)); }
.page:not(.home) .site-header { position: fixed; right: 0; left: 0; }
.page:not(.home) .site-header:not(.is-scrolled) { border-top-color: var(--color-gold); border-bottom-color: transparent; background: transparent; box-shadow: none; backdrop-filter: none; -webkit-backdrop-filter: none; }
.page:not(.home) .site-header:not(.is-scrolled) .site-title, .page:not(.home) .site-header:not(.is-scrolled) .primary-menu a, .page:not(.home) .site-header:not(.is-scrolled) .header-phone { color: var(--color-white); text-shadow: 0 1px 12px rgb(0 0 0 / 35%); }
.page:not(.home) .site-header:not(.is-scrolled) .site-description, .page:not(.home) .site-header:not(.is-scrolled) .header-phone-label { color: var(--color-gold); }
.page:not(.home) .site-header:not(.is-scrolled) .primary-menu a:hover, .page:not(.home) .site-header:not(.is-scrolled) .primary-menu .current-menu-item > a { color: var(--color-gold); }
.page:not(.home) .site-header:not(.is-scrolled) .custom-logo, .page:not(.home) .site-header:not(.is-scrolled) .brand-logo img { filter: drop-shadow(0 0.4rem 0.7rem rgb(0 0 0 / 35%)); }
.admin-bar .site-header { top: 32px; }
.header-inner { min-height: 6.35rem; display: grid; grid-template-columns: minmax(210px, 0.8fr) auto minmax(290px, 1fr); align-items: center; gap: clamp(1rem, 2vw, 2.5rem); }
.site-branding { display: flex; align-items: center; gap: 0.85rem; }
.custom-logo, .brand-logo img { max-height: 5.25rem; width: auto; filter: drop-shadow(0 0.35rem 0.55rem rgb(112 27 28 / 14%)); }
.brand-logo { display: block; flex: 0 0 auto; text-decoration: none; }
.site-title { color: var(--color-white); font-family: Georgia, serif; font-size: 1.25rem; text-decoration: none; white-space: nowrap; }
.site-description { margin: 0; color: var(--color-gold); font-size: 0.68rem; letter-spacing: 0.09em; text-transform: uppercase; }
.main-navigation { justify-self: center; }
.menu-toggle { display: none; border: 1px solid var(--color-gold); border-radius: 999px; color: var(--color-white); background: transparent; padding: 0.55rem 0.9rem; font: inherit; font-size: 0.8rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.menu-toggle-icon { display: none; }
.mobile-menu-details { display: none; }
.primary-menu { display: flex; align-items: center; gap: clamp(1.2rem, 1.8vw, 2rem); margin: 0; padding: 0; list-style: none; }
.primary-menu a { color: var(--color-cream); text-decoration: none; }
.primary-menu a { position: relative; padding: 2.1rem 0 1.95rem; font-family: Inter, ui-sans-serif, system-ui, sans-serif; font-size: 0.96rem; font-weight: 600; letter-spacing: 0.012em; white-space: nowrap; }
.primary-menu a::after { content: ""; position: absolute; right: 0; bottom: 1.55rem; left: 0; height: 2px; transform: scaleX(0); transform-origin: center; background: var(--color-gold); transition: transform 180ms ease; }
.primary-menu a:hover::after, .primary-menu .current-menu-item > a::after { transform: scaleX(1); }
.primary-menu a:hover, .primary-menu .current-menu-item > a { color: var(--color-gold); }
.primary-menu .menu-item-has-children { position: relative; }
.primary-menu .menu-item-has-children > a { display: flex; align-items: center; gap: 0.45rem; }
.primary-menu .menu-item-has-children > a::before { width: 0.4rem; height: 0.4rem; order: 2; transform: translateY(-0.12rem) rotate(45deg); border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; content: ""; transition: transform 180ms ease; }
.primary-menu .sub-menu { position: absolute; top: calc(100% - 1.15rem); left: -1.25rem; z-index: 20; min-width: 13.5rem; margin: 0; padding: 0.55rem 0; transform: translateY(0.65rem); border-top: 3px solid var(--color-gold); background: rgb(255 249 232 / 98%); box-shadow: 0 1rem 2.75rem rgb(8 7 6 / 17%); list-style: none; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity 180ms ease, transform 180ms ease, visibility 180ms ease; }
.primary-menu .sub-menu a { display: block; padding: 0.65rem 1.25rem; color: var(--color-ink); font-size: 0.8rem; font-weight: 600; text-shadow: none; }
.primary-menu .sub-menu a::after { right: auto; bottom: 0.45rem; left: 1.25rem; width: 2rem; }
.primary-menu .sub-menu a:hover, .primary-menu .sub-menu .current-menu-item > a { color: var(--color-burgundy); background: rgb(213 161 65 / 10%); }
.primary-menu .menu-item-has-children:hover > .sub-menu, .primary-menu .menu-item-has-children:focus-within > .sub-menu { transform: translateY(0); opacity: 1; visibility: visible; pointer-events: auto; }
.primary-menu .menu-item-has-children:hover > a::before, .primary-menu .menu-item-has-children:focus-within > a::before { transform: translateY(0.1rem) rotate(225deg); }
.home .site-header:not(.is-scrolled) .sub-menu a, .page:not(.home) .site-header:not(.is-scrolled) .sub-menu a { color: var(--color-ink); text-shadow: none; }
.header-actions { justify-self: end; display: flex; align-items: center; gap: clamp(0.75rem, 1.25vw, 1.25rem); }
.header-phone { display: flex; flex-direction: column; color: var(--color-white); line-height: 1.2; text-align: right; text-decoration: none; white-space: nowrap; }
.header-phone-label { color: var(--color-gold); font-size: 0.61rem; font-weight: 800; letter-spacing: 0.13em; text-transform: uppercase; }
.header-phone-number { margin-top: 0.2rem; font-size: 0.86rem; font-weight: 800; }
.header-phone:hover .header-phone-number { color: var(--color-burgundy); }
.header-cta { display: inline-flex; min-height: 3rem; align-items: center; justify-content: center; gap: 0.7rem; border: 1px solid var(--color-gold); border-radius: 0.35rem; padding: 0.7rem 1rem 0.7rem 1.15rem; color: var(--color-burgundy-dark); background: var(--color-gold); box-shadow: 0 0.45rem 1.1rem rgb(112 27 28 / 12%); font-size: 0.76rem; font-weight: 800; letter-spacing: 0.075em; text-decoration: none; text-transform: uppercase; white-space: nowrap; transition: color 180ms ease, background 180ms ease, border-color 180ms ease, transform 180ms ease, box-shadow 180ms ease; }
.header-cta::after { content: "→"; font-size: 1.05rem; font-weight: 500; line-height: 1; transition: transform 180ms ease; }
.header-cta:hover { border-color: var(--color-burgundy); color: var(--color-white); background: var(--color-burgundy); box-shadow: 0 0.65rem 1.5rem rgb(112 27 28 / 20%); transform: translateY(-1px); }
.header-cta:hover::after { transform: translateX(0.2rem); }
.hero {
  min-height: 70vh; display: grid; place-items: center; text-align: center;
  color: var(--color-white);
  background:
    radial-gradient(circle at 50% 30%, rgb(213 161 65 / 18%), transparent 34%),
    linear-gradient(135deg, var(--color-burgundy-dark), var(--color-ink) 68%);
  border-bottom: 8px solid var(--color-gold);
}
.hero-inner { width: min(calc(100% - 2rem), 900px); padding: 6rem 0; }
.eyebrow { margin-bottom: 1.25rem; color: var(--color-gold); font-size: 0.8rem; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; }
.hero p { max-width: 680px; margin-inline: auto; font-size: clamp(1.05rem, 2vw, 1.3rem); }
.button, .wp-block-button__link, input[type="submit"] {
  display: inline-block; border: 2px solid var(--color-burgundy); border-radius: var(--radius);
  padding: 0.8rem 1.25rem; color: var(--color-white); background: var(--color-burgundy);
  font: inherit; font-weight: 700; text-decoration: none; cursor: pointer;
}
.button:hover, .wp-block-button__link:hover, input[type="submit"]:hover { border-color: var(--color-gold); color: var(--color-ink); background: var(--color-gold); }
.button-light { border-color: var(--color-gold); color: var(--color-ink); background: var(--color-gold); }
.button-light:hover { border-color: var(--color-yellow); background: var(--color-yellow); }
.home-main { overflow: hidden; }
.section-pad { padding-block: clamp(3.75rem, 6vw, 6.25rem); }
.home-hero {
  min-height: 100svh;
  background:
    linear-gradient(90deg, rgb(0 0 0 / 80%) 0%, rgb(0 0 0 / 62%) 48%, rgb(0 0 0 / 36%) 100%),
    linear-gradient(0deg, rgb(0 0 0 / 48%), transparent 58%),
    var(--home-hero-image, url("assets/images/home/inn-exterior.png")) center 58% / cover no-repeat;
}
.home-hero .hero-inner { width: min(calc(100% - 2rem), 900px); padding: clamp(5.5rem, 10vw, 8.5rem) 0; }
.home-hero .eyebrow { font-size: 0.68rem; letter-spacing: 0.16em; }
.home-hero h1 { font-size: clamp(3rem, 6vw, 5.8rem); line-height: 0.98; letter-spacing: -0.04em; }
.home-hero h1 em { color: var(--color-gold); font-weight: 400; }
.home-hero > .hero-inner > p:not(.eyebrow) { max-width: 610px; margin-top: 1.75rem; color: rgb(255 255 255 / 82%); }
.hero-actions { display: flex; align-items: center; justify-content: center; gap: 1.75rem; margin-top: 2.25rem; }
.hero-text-link { color: var(--color-white); font-weight: 700; text-decoration: none; }
.hero-text-link span, .text-arrow-link span { display: inline-block; margin-left: 0.3rem; color: var(--color-gold); transition: transform 180ms ease; }
.hero-text-link:hover { color: var(--color-gold); }
.hero-text-link:hover span, .text-arrow-link:hover span { transform: translateX(0.3rem); }
.intro-grid { display: grid; grid-template-columns: 1fr 4fr; gap: clamp(2rem, 6vw, 7rem); }
.section-kicker { display: flex; align-items: flex-start; gap: 0.8rem; padding-top: 0.5rem; color: var(--color-sage); font-size: 0.72rem; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; }
.section-kicker span { color: var(--color-burgundy); }
.section-kicker p { margin: 0; }
.home-intro { position: relative; background: linear-gradient(110deg, #fffdf8 0 72%, #f8f0df 72%); }
.home-intro .section-kicker { align-self: start; align-items: center; gap: 1rem; padding-top: 0.85rem; font-size: 0.86rem; }
.home-intro .section-kicker::after { width: 3rem; height: 1px; background: var(--color-gold); content: ""; }
.home-intro .section-kicker span { font-family: Georgia, serif; font-size: 1.6rem; font-weight: 400; letter-spacing: 0; line-height: 1; }
.intro-copy { max-width: 920px; }
.intro-copy h2 { max-width: 15ch; font-size: clamp(3rem, 5.2vw, 5.6rem); line-height: 0.98; }
.intro-story-grid { display: grid; grid-template-columns: minmax(260px, 0.75fr) minmax(360px, 1.25fr); gap: clamp(2rem, 5vw, 4.5rem); align-items: center; margin-top: 3rem; }
.intro-columns { display: grid; grid-template-columns: 1fr; gap: 0; margin: 0 0 1.5rem; color: #514740; }
.intro-columns p:first-child { color: var(--color-ink); font-family: Georgia, serif; font-size: 1.18rem; line-height: 1.65; }
.intro-visual { position: relative; margin: 0; }
.intro-visual::before { position: absolute; inset: -0.75rem 0.75rem 0.75rem -0.75rem; z-index: 0; border: 1px solid var(--color-gold); content: ""; }
.intro-visual img { position: relative; z-index: 1; width: 100%; min-height: 360px; aspect-ratio: 4 / 3; object-fit: cover; }
.intro-visual figcaption { position: absolute; right: -1rem; bottom: -1.25rem; z-index: 2; display: flex; width: min(14rem, 70%); align-items: center; gap: 0.8rem; padding: 1rem 1.15rem; color: var(--color-white); background: var(--color-burgundy); box-shadow: 0 0.8rem 2rem rgb(8 7 6 / 18%); }
.intro-visual figcaption strong { color: var(--color-gold); font-family: Georgia, serif; font-size: 1.7rem; font-weight: 400; }
.intro-visual figcaption span { font-size: 0.67rem; font-weight: 700; line-height: 1.35; letter-spacing: 0.05em; text-transform: uppercase; }
.text-arrow-link { display: inline-flex; align-items: center; color: var(--color-burgundy); font-size: 0.82rem; font-weight: 800; letter-spacing: 0.07em; text-decoration: none; text-transform: uppercase; }
.rooms-section { color: var(--color-white); background: var(--color-ink); }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 3rem; margin-bottom: 3.5rem; }
.section-heading > div { max-width: 720px; }
.section-heading > p { max-width: 430px; color: rgb(255 255 255 / 65%); }
.rooms-section h2 { color: var(--color-white); }
.room-slider { min-width: 0; }
.room-slider-viewport { overflow: hidden; }
.room-grid { display: flex; gap: 1.35rem; align-items: stretch; transition: transform 520ms cubic-bezier(0.22, 1, 0.36, 1); }
.room-card { flex: 0 0 calc((100% - 2.7rem) / 3); border: 1px solid rgb(255 255 255 / 13%); background: #151210; transition: transform 220ms ease, border-color 220ms ease; }
.room-card:hover { transform: translateY(-0.5rem); border-color: var(--color-gold); }
.room-image { display: block; overflow: hidden; aspect-ratio: 4 / 3; }
.room-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 500ms ease; }
.room-card:hover .room-image img { transform: scale(1.035); }
.room-card-copy { padding: 1.5rem; }
.room-card-copy span { color: var(--color-gold); font-size: 0.63rem; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; }
.room-card-copy h3 { margin: 0.35rem 0 0.6rem; }
.room-card-copy p { margin: 0 0 1.25rem; color: rgb(255 255 255 / 58%); font-size: 0.82rem; }
.room-card-copy > a { display: inline-flex; align-items: center; gap: 0.55rem; color: var(--color-white); font-size: 0.72rem; font-weight: 800; letter-spacing: 0.09em; text-decoration: none; text-transform: uppercase; }
.room-card-copy > a b { color: var(--color-gold); font-size: 1rem; transition: transform 180ms ease; }
.room-card-copy > a:hover { color: var(--color-gold); }
.room-card-copy > a:hover b { transform: translateX(0.25rem); }
.room-slider-footer { display: flex; align-items: center; justify-content: space-between; gap: 2rem; margin-top: 1.75rem; }
.room-slider-controls { display: flex; align-items: center; gap: 0.85rem; }
.room-slider-controls > button { display: grid; width: 2.65rem; height: 2.65rem; place-items: center; border: 1px solid rgb(255 255 255 / 35%); border-radius: 50%; color: var(--color-white); background: transparent; font: inherit; cursor: pointer; }
.room-slider-controls > button:hover { border-color: var(--color-gold); color: var(--color-ink); background: var(--color-gold); }
.room-slider-dots { display: flex; gap: 0.45rem; }
.room-slider-dots button { width: 0.5rem; height: 0.5rem; border: 0; border-radius: 50%; padding: 0; background: rgb(255 255 255 / 25%); cursor: pointer; }
.room-slider-dots button.is-active { background: var(--color-gold); transform: scale(1.25); }
.awards-section { position: relative; padding: clamp(3.75rem, 6vw, 5.75rem) 0; overflow: hidden; border-top: 1px solid rgb(213 161 65 / 35%); border-bottom: 1px solid rgb(213 161 65 / 35%); background: radial-gradient(circle at 50% 0%, rgb(213 161 65 / 15%), transparent 34%), #f8f0df; }
.awards-section::before { position: absolute; top: 0; left: 50%; width: 1px; height: 2.5rem; background: var(--color-gold); content: ""; }
.awards-inner { position: relative; }
.awards-heading { max-width: 760px; margin: 0 auto clamp(2.5rem, 5vw, 4rem); text-align: center; }
.awards-heading .eyebrow { margin-bottom: 0.85rem; }
.awards-heading h2 { margin: 0; color: var(--color-burgundy-dark); font-size: clamp(2.5rem, 4.8vw, 4.75rem); line-height: 1; }
.awards-heading > p:last-child { max-width: 620px; margin: 1.25rem auto 0; color: #65584f; }
.award-slider { min-width: 0; padding: clamp(1.5rem, 3vw, 2.5rem); border: 1px solid rgb(112 27 28 / 10%); background: rgb(255 255 255 / 68%); box-shadow: 0 1.25rem 3.5rem rgb(71 16 17 / 7%); }
.award-slider-viewport { overflow: hidden; padding-block: 0.5rem; }
.award-slider-track { display: flex; gap: 1rem; transition: transform 450ms cubic-bezier(0.22, 1, 0.36, 1); }
.award-slide { position: relative; display: grid; min-height: 10rem; flex: 0 0 calc((100% - 3rem) / 4); place-items: center; }
.award-slide::after { position: absolute; right: -0.5rem; width: 1px; height: 62%; background: rgb(112 27 28 / 10%); content: ""; }
.award-slide img { width: clamp(7rem, 9vw, 8.75rem); height: clamp(7rem, 9vw, 8.75rem); object-fit: contain; filter: drop-shadow(0 0.45rem 0.7rem rgb(71 16 17 / 8%)); transition: transform 220ms ease; }
.award-slide:hover img { transform: translateY(-0.3rem) scale(1.03); }
.award-slider-controls { display: flex; align-items: center; justify-content: center; gap: 1.5rem; margin-top: 1.25rem; }
.award-slider-arrows { display: flex; gap: 0.5rem; }
.award-slider-arrows button { display: grid; width: 2.35rem; height: 2.35rem; place-items: center; border: 1px solid var(--color-burgundy); border-radius: 50%; color: var(--color-burgundy); background: transparent; font: inherit; cursor: pointer; transition: color 180ms ease, background 180ms ease; }
.award-slider-arrows button:hover { color: var(--color-white); background: var(--color-burgundy); }
.award-slider-dots { display: flex; gap: 0.45rem; }
.award-slider-dots button { width: 0.55rem; height: 0.55rem; border: 0; border-radius: 50%; padding: 0; background: rgb(112 27 28 / 24%); cursor: pointer; }
.award-slider-dots button.is-active { background: var(--color-burgundy); transform: scale(1.25); }
.amenities-section { position: relative; background: linear-gradient(90deg, #e7f0ed 0 38%, #f5f8f6 38%); }
.amenities-layout { display: grid; grid-template-columns: minmax(0, 0.92fr) minmax(420px, 1.08fr); gap: clamp(3rem, 7vw, 7rem); align-items: center; }
.amenities-image { position: relative; padding: 0 0 1.5rem 1.5rem; }
.amenities-image::before { position: absolute; inset: 1.5rem 1.5rem 0 0; background: var(--color-teal); content: ""; }
.amenities-image::after { position: absolute; inset: -0.75rem 0.75rem 2.25rem 0.75rem; border: 1px solid rgb(213 161 65 / 70%); content: ""; }
.amenities-image img { position: relative; z-index: 1; width: 100%; min-height: 560px; aspect-ratio: 4 / 5; object-fit: cover; }
.amenities-image span { position: absolute; right: -0.4rem; bottom: 3.25rem; z-index: 2; padding: 0.85rem 1.15rem; color: var(--color-burgundy-dark); background: var(--color-gold); box-shadow: 0 0.8rem 2rem rgb(8 7 6 / 15%); font-size: 0.68rem; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; }
.amenities-copy h2 { max-width: 12ch; font-size: clamp(3rem, 4.8vw, 5rem); line-height: 0.98; }
.amenities-copy .amenities-lead { max-width: 620px; margin-top: 1.5rem; color: #5f534b; font-size: 1.03rem; }
.amenities-included { margin: 2rem 0 0.6rem; color: var(--color-burgundy); font-size: 0.68rem; font-weight: 800; letter-spacing: 0.15em; text-transform: uppercase; }
.amenity-list { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.5rem; margin: 0; padding: 0; border-top: 1px solid rgb(112 27 28 / 16%); list-style: none; }
.amenity-list li { display: grid; min-height: 4.65rem; grid-template-columns: 2.3rem 1fr; align-items: center; padding: 0.8rem 0; border-bottom: 1px solid rgb(112 27 28 / 16%); }
.amenity-list li span { display: grid; width: 1.65rem; height: 1.65rem; place-items: center; border-radius: 50%; color: var(--color-burgundy-dark); background: rgb(213 161 65 / 35%); font-size: 0.62rem; font-weight: 800; }
.amenity-list li strong { font-size: 0.82rem; line-height: 1.35; }
.amenities-actions { display: flex; align-items: center; gap: 1.5rem; margin-top: 2rem; }
.stay-highlights-section { position: relative; color: var(--color-white); background: radial-gradient(circle at 88% 12%, rgb(213 161 65 / 10%), transparent 30%), var(--color-burgundy-dark); }
.stay-highlights-section .section-heading h2 { max-width: 13ch; color: var(--color-white); }
.stay-highlights-section .section-heading > p { color: rgb(255 255 255 / 68%); }
.stay-highlights-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid rgb(213 161 65 / 32%); border-bottom: 1px solid rgb(213 161 65 / 32%); }
.stay-highlights-grid article { min-height: 270px; padding: 2.5rem; border-right: 1px solid rgb(213 161 65 / 25%); }
.stay-highlights-grid article:first-child { padding-left: 0; }
.stay-highlights-grid article:last-child { padding-right: 0; border-right: 0; }
.stay-highlights-grid article > span { color: var(--color-gold); font-size: 0.72rem; font-weight: 800; }
.stay-highlights-grid h3 { margin-top: 2.5rem; color: var(--color-white); }
.stay-highlights-grid p { color: rgb(255 255 255 / 64%); }
.stay-highlights-link { display: inline-flex; align-items: center; gap: 0.6rem; margin-top: 2rem; color: var(--color-white); font-size: 0.72rem; font-weight: 800; letter-spacing: 0.1em; text-decoration: none; text-transform: uppercase; }
.stay-highlights-link span { color: var(--color-gold); font-size: 1rem; transition: transform 180ms ease; }
.stay-highlights-link:hover { color: var(--color-gold); }
.stay-highlights-link:hover span { transform: translateX(0.25rem); }
.reviews-section { background: #fffdf8; }
.reviews-heading { position: relative; max-width: 760px; margin: 0 auto 3.5rem; text-align: center; }
.trustindex-reviews { width: 100%; }
.google-reviews-link { margin: 2rem 0 0; text-align: center; }
.review-score { display: inline-flex; align-items: center; gap: 0.8rem; margin-top: 1rem; }
.review-score strong { font-family: Georgia, serif; font-size: 1.8rem; }
.review-score span, .review-grid blockquote > div { color: var(--color-gold); letter-spacing: 0.08em; }
.review-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.review-grid blockquote { margin: 0; padding: 2rem; border-top: 3px solid var(--color-gold); background: var(--color-white); box-shadow: 0 0.8rem 2rem rgb(8 7 6 / 6%); }
.review-grid blockquote p { margin: 1.5rem 0; font-family: Georgia, serif; font-size: 1.2rem; line-height: 1.5; }
.review-grid cite { color: var(--color-sage); font-size: 0.7rem; font-style: normal; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; }
.contact-section { position: relative; overflow: hidden; border-top: 4px solid var(--color-gold); color: var(--color-white); background: linear-gradient(90deg, rgb(20 4 5 / 91%), rgb(71 16 17 / 79%)), linear-gradient(0deg, rgb(0 0 0 / 40%), transparent 70%), url("assets/images/home/inn-lobby.png") center 54% / cover no-repeat; box-shadow: inset 0 0 8rem rgb(0 0 0 / 28%); }
.contact-section::before { position: absolute; top: 0; left: 50%; width: 1px; height: 2.5rem; background: var(--color-gold); content: ""; }
.contact-section::after { position: absolute; inset: 1.25rem; border: 1px solid rgb(213 161 65 / 18%); content: ""; pointer-events: none; }
.contact-section > .site-shell { position: relative; z-index: 1; }
.contact-heading { display: grid; grid-template-columns: 1.25fr 0.75fr; gap: clamp(2rem, 8vw, 8rem); align-items: end; margin-bottom: clamp(2.5rem, 5vw, 4.5rem); }
.contact-heading h2 { max-width: 13ch; margin: 0; color: var(--color-white); font-size: clamp(2.8rem, 5vw, 5rem); line-height: 0.98; }
.contact-heading > p { max-width: 480px; margin: 0 0 0.4rem; color: rgb(255 255 255 / 72%); }
.contact-layout { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; align-items: end; }
.contact-card { position: relative; display: flex; min-height: 300px; flex-direction: column; align-items: flex-start; padding: clamp(1.6rem, 3vw, 2.5rem); overflow: hidden; border: 1px solid rgb(213 161 65 / 28%); color: var(--color-ink); background: rgb(255 249 232 / 94%); box-shadow: 0 1.25rem 3rem rgb(0 0 0 / 22%); text-decoration: none; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); transition: border-color 200ms ease, box-shadow 200ms ease, transform 200ms ease; }
.contact-card:nth-child(2) { min-height: 325px; }
.contact-card::after { position: absolute; right: 0; bottom: 0; left: 0; height: 4px; transform: scaleX(0); transform-origin: left; background: var(--color-gold); content: ""; transition: transform 220ms ease; }
.contact-card:hover { border-color: var(--color-gold); color: var(--color-ink); box-shadow: 0 1.5rem 3.5rem rgb(0 0 0 / 32%); transform: translateY(-0.5rem); }
.contact-card:hover::after { transform: scaleX(1); }
.contact-number { align-self: flex-end; color: rgb(112 27 28 / 42%); font-family: Georgia, serif; font-size: 1.55rem; line-height: 1; }
.contact-label { margin-top: 1.6rem; color: var(--color-burgundy); font-size: 0.67rem; font-weight: 800; letter-spacing: 0.15em; text-transform: uppercase; }
.contact-card strong { margin-top: 0.8rem; font-family: Georgia, serif; font-size: clamp(1.1rem, 1.8vw, 1.35rem); font-weight: 400; line-height: 1.55; }
.contact-card strong span { color: #675a50; font-family: Inter, sans-serif; font-size: 0.77rem; font-weight: 500; }
.contact-link { display: inline-flex; align-items: center; gap: 0.5rem; margin-top: auto; padding-top: 1.5rem; color: var(--color-burgundy); font-size: 0.69rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.contact-link b { color: var(--color-burgundy); font-size: 1rem; transition: transform 180ms ease; }
.contact-card:hover .contact-link b { transform: translateX(0.2rem); }
.page-banner { position: relative; display: grid; min-height: clamp(380px, 52vh, 540px); align-items: end; overflow: hidden; border-bottom: 5px solid var(--color-gold); color: var(--color-white); background: linear-gradient(90deg, rgb(0 0 0 / 76%), rgb(0 0 0 / 38%)), linear-gradient(0deg, rgb(0 0 0 / 48%), transparent 65%), var(--page-banner-image) center 52% / cover no-repeat; }
.page-banner::after { position: absolute; inset: auto 0 0; height: 35%; background: linear-gradient(transparent, rgb(0 0 0 / 32%)); content: ""; pointer-events: none; }
.page-banner-inner { position: relative; z-index: 1; padding-top: 9rem; padding-bottom: clamp(3rem, 6vw, 5.5rem); }
.page-banner .eyebrow { margin: 0 0 0.65rem; }
.page-banner h1 { max-width: 12ch; margin: 0; color: var(--color-white); font-size: clamp(3rem, 6vw, 5.5rem); line-height: 0.98; }
.page-breadcrumbs { position: absolute; right: 0; bottom: clamp(3rem, 6vw, 5.5rem); display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 0.65rem; max-width: 42%; margin: 0; color: rgb(255 255 255 / 66%); font-size: 0.68rem; font-weight: 700; letter-spacing: 0.1em; text-align: right; text-transform: uppercase; }
.page-breadcrumbs a { color: var(--color-white); text-decoration: none; }
.page-breadcrumbs a:hover { color: var(--color-gold); }
.page-breadcrumbs > span:first-of-type { color: var(--color-gold); }
.gallery-page { background: #fffdf8; }
.gallery-intro-grid { display: grid; grid-template-columns: 1.25fr 0.75fr; gap: clamp(3rem, 9vw, 9rem); align-items: end; }
.gallery-intro h2 { max-width: 13ch; margin: 0; font-size: clamp(2.8rem, 5vw, 5rem); line-height: 0.98; }
.gallery-intro-grid > div:last-child p { color: #5f534b; font-size: 1.02rem; }
.gallery-intro-grid > div:last-child span { color: var(--color-burgundy); font-size: 0.68rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; }
.gallery-collection { padding-bottom: clamp(4rem, 7vw, 7rem); }
.gallery-editor-content .wp-block-gallery { display: grid; grid-auto-flow: dense; grid-auto-rows: 260px; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.gallery-editor-content .wp-block-gallery.has-nested-images figure.wp-block-image { width: 100% !important; height: 100%; margin: 0 !important; overflow: hidden; border-radius: 2px; cursor: zoom-in; }
.gallery-editor-content .wp-block-gallery.has-nested-images figure.wp-block-image:nth-child(7n + 1), .gallery-editor-content .wp-block-gallery.has-nested-images figure.wp-block-image:nth-child(7n + 5) { grid-column: span 2; }
.gallery-editor-content .wp-block-gallery.has-nested-images figure.wp-block-image:nth-child(7n + 3) { grid-row: span 2; }
.gallery-editor-content .wp-block-gallery.has-nested-images figure.wp-block-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 650ms cubic-bezier(0.22, 1, 0.36, 1), filter 300ms ease; }
.gallery-editor-content .wp-block-gallery.has-nested-images figure.wp-block-image:hover img, .gallery-editor-content .wp-block-gallery.has-nested-images figure.wp-block-image:focus-visible img { filter: brightness(.88); transform: scale(1.04); }
.gallery-editor-content .wp-block-gallery.has-nested-images figure.wp-block-image:focus-visible { outline: 3px solid var(--color-gold); outline-offset: 3px; }
.gallery-editor-content .wp-block-gallery figcaption { display: none !important; }
.gallery-item { position: relative; min-width: 0; margin: 0; padding: 0; overflow: hidden; border: 0; color: var(--color-white); background: var(--color-ink); cursor: pointer; text-align: left; }
.gallery-item-wide { grid-column: span 2; }
.gallery-item-tall { grid-row: span 2; }
.gallery-item img { width: 100%; height: 100%; object-fit: cover; transition: transform 650ms cubic-bezier(0.22, 1, 0.36, 1), opacity 300ms ease; }
.gallery-item::after { position: absolute; inset: 0; background: linear-gradient(0deg, rgb(0 0 0 / 76%), transparent 58%); content: ""; transition: background 250ms ease; }
.gallery-item-overlay { position: absolute; right: 1.4rem; bottom: 1.25rem; left: 1.4rem; z-index: 1; display: grid; grid-template-columns: 1fr auto; align-items: end; }
.gallery-item-overlay small { grid-column: 1; color: var(--color-gold); font-size: 0.61rem; font-weight: 800; letter-spacing: 0.13em; text-transform: uppercase; }
.gallery-item-overlay strong { grid-column: 1; margin-top: 0.15rem; font-family: Georgia, serif; font-size: clamp(1.15rem, 2vw, 1.65rem); font-weight: 400; }
.gallery-item-overlay i { grid-row: 1 / 3; grid-column: 2; color: var(--color-gold); font-size: 1.15rem; font-style: normal; }
.gallery-item:hover img, .gallery-item:focus-visible img { opacity: 0.86; transform: scale(1.045); }
.gallery-item:focus-visible { outline: 3px solid var(--color-gold); outline-offset: 3px; }
.gallery-closing { color: var(--color-white); background: var(--color-burgundy-dark); }
.gallery-closing-inner { display: flex; align-items: end; justify-content: space-between; gap: 3rem; }
.gallery-closing h2 { max-width: 12ch; margin: 0; color: var(--color-white); }
.gallery-lightbox[hidden] { display: none; }
.gallery-lightbox { position: fixed; inset: 0; z-index: 3000; display: grid; grid-template-columns: 4rem minmax(0, 1fr) 4rem; align-items: center; padding: 2rem; color: var(--color-white); background: rgb(8 7 6 / 96%); }
.gallery-lightbox figure { width: min(100%, 1100px); margin: auto; text-align: center; }
.gallery-lightbox img { width: 100%; max-height: 78vh; object-fit: contain; }
.gallery-lightbox figcaption { margin-top: 1rem; color: var(--color-cream); font-family: Georgia, serif; font-size: 1.15rem; }
.gallery-lightbox button { border: 1px solid rgb(255 255 255 / 30%); border-radius: 50%; color: var(--color-white); background: transparent; cursor: pointer; font: inherit; }
.gallery-lightbox-prev, .gallery-lightbox-next { display: grid; width: 3rem; height: 3rem; place-items: center; }
.gallery-lightbox-close { position: absolute; top: 1.5rem; right: 1.5rem; z-index: 1; width: 3rem; height: 3rem; font-size: 1.65rem; }
.gallery-lightbox button:hover { border-color: var(--color-gold); color: var(--color-ink); background: var(--color-gold); }
.gallery-lightbox-open { overflow: hidden; }
.contact-reference-page { background: #f7f4ed; }
.contact-reference-section { position: relative; overflow: hidden; }
.contact-reference-section::before { position: absolute; top: 0; right: 0; width: 42%; height: 100%; background: linear-gradient(135deg, rgb(213 161 65 / 8%), rgb(112 27 28 / 5%)); content: ""; }
.contact-reference-layout { position: relative; display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(520px, 1.1fr); gap: clamp(3rem, 8vw, 8rem); align-items: center; }
.contact-reference-info h2, .contact-reference-form h2 { margin-bottom: 1rem; font-size: clamp(2.8rem, 4.6vw, 4.75rem); line-height: 0.98; }
.contact-reference-lead { max-width: 600px; color: #70645b; font-size: 1.02rem; }
.contact-reference-details { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-top: 3rem; }
.contact-reference-details > a { position: relative; display: grid; grid-template-columns: 2.55rem 1fr; gap: .9rem; align-items: start; min-height: 8.6rem; padding: 1.25rem 2.5rem 1.25rem 1.15rem; border: 1px solid rgb(112 27 28 / 12%); border-radius: .8rem; color: var(--color-ink); background: rgb(255 255 255 / 60%); text-decoration: none; transition: border-color 250ms ease, box-shadow 250ms ease, transform 250ms ease; }
.contact-reference-details > a:last-child { grid-column: 1 / -1; }
.contact-reference-details > a > b { display: grid; width: 2.55rem; height: 2.55rem; place-items: center; border-radius: 50%; color: #351310; background: var(--color-gold); font-size: .65rem; letter-spacing: .08em; }
.contact-reference-details > a > i { position: absolute; top: 1.1rem; right: 1.1rem; color: var(--color-burgundy); font-style: normal; }
.contact-reference-details svg { width: 3.25rem; height: 3.25rem; fill: none; stroke: var(--color-gold); stroke-linecap: round; stroke-linejoin: round; stroke-width: 2.8; }
.contact-reference-details strong { display: block; margin-bottom: 0.6rem; font-family: Georgia, serif; font-size: 1.45rem; font-weight: 400; }
.contact-reference-details small { color: #83776e; font-size: 0.84rem; line-height: 1.7; }
.contact-reference-details > a:hover { border-color: rgb(213 161 65 / 75%); box-shadow: 0 14px 28px rgb(72 25 20 / 9%); transform: translateY(-3px); }
.contact-reference-details > a:hover strong { color: var(--color-burgundy); }
.contact-reference-socials { display: flex; align-items: center; gap: 0.75rem; margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid rgb(112 27 28 / 14%); }
.contact-reference-socials > span { margin-right: auto; color: var(--color-burgundy); font-size: 0.65rem; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; }
.contact-reference-socials a { display: grid; width: 2.25rem; height: 2.25rem; place-items: center; border: 1px solid rgb(112 27 28 / 16%); border-radius: 50%; color: var(--color-burgundy); font-weight: 800; text-decoration: none; }
.contact-reference-socials a:hover { border-color: var(--color-gold); color: var(--color-ink); background: var(--color-gold); }
.contact-reference-form { position: relative; padding: clamp(2rem, 3.5vw, 3.25rem); border-top: 4px solid var(--color-gold); background: var(--color-white); box-shadow: 0 1.5rem 4rem rgb(71 16 17 / 10%); }
.contact-reference-form .eyebrow { margin-bottom: 0.6rem; }
.contact-reference-form h2 { font-size: clamp(2.25rem, 3.4vw, 3.4rem); }
.contact-reference-form .inn-contact-form { margin-top: 1.5rem; }
.contact-reference-form .form-row { display: block; }
.contact-reference-form .form-row > p { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin: 0; }
.contact-reference-form .form-row > p > br { display: none; }
.contact-reference-form .inn-contact-form > p { margin: 0; }
.contact-reference-form .inn-contact-form label { display: block; min-width: 0; margin-bottom: 0.8rem; }
.contact-reference-form input:not([type="submit"]), .contact-reference-form select, .contact-reference-form textarea { width: 100%; min-height: 3.25rem; border: 1px solid #d9d1c7; border-radius: 0; padding: 0.72rem 0.9rem; color: var(--color-ink); background: #fffefa; font: inherit; font-size: 0.84rem; }
.contact-reference-form textarea { height: 125px; min-height: 125px; resize: vertical; }
.contact-reference-form input:focus, .contact-reference-form select:focus, .contact-reference-form textarea:focus { border-color: var(--color-gold); outline: 2px solid rgb(213 161 65 / 18%); }
.contact-reference-form .form-submit-row { margin-top: 0.35rem; }
.contact-reference-form input[type="submit"] { width: 100%; min-height: 3.65rem; border-color: var(--color-burgundy); border-radius: 0; color: var(--color-white); background: var(--color-burgundy); font-size: 0.76rem; letter-spacing: 0.09em; text-transform: uppercase; }
.contact-reference-form input[type="submit"]:hover { border-color: var(--color-gold); color: var(--color-ink); background: var(--color-gold); }
.contact-reference-form .wpcf7-spinner { display: block; margin: 0.8rem auto 0; }
.contact-reference-form .wpcf7-not-valid-tip { margin-top: 0.25rem; font-size: 0.7rem; }
.contact-reference-form .wpcf7-response-output { margin: 1rem 0 0 !important; padding: 0.75rem 1rem !important; border-width: 1px !important; font-size: 0.78rem; }
.contact-full-map { width: 100%; height: clamp(400px, 42vw, 620px); overflow: hidden; border-top: 5px solid var(--color-gold); background: #e5dfd4; }
.contact-full-map iframe { display: block; width: 100%; height: 100%; border: 0; }
.about-page { background: #fffdf8; }
.about-history-section { position: relative; overflow: hidden; }
.about-history-section::before { position: absolute; top: 0; right: 0; width: 38%; height: 100%; background: linear-gradient(135deg, rgb(213 161 65 / 7%), rgb(112 27 28 / 4%)); content: ""; }
.about-history-layout { position: relative; display: grid; grid-template-columns: minmax(440px, 1.05fr) minmax(380px, 0.95fr); gap: clamp(3.5rem, 8vw, 8rem); align-items: center; }
.about-history-visual { position: relative; margin: 0; padding: 1rem 0 0 1rem; }
.about-history-visual::before { position: absolute; inset: 0 1rem 1rem 0; border: 1px solid var(--color-gold); content: ""; }
.about-history-image { position: relative; z-index: 1; overflow: hidden; background: #d7d1c8; box-shadow: 0 1.25rem 3.5rem rgb(71 16 17 / 14%); }
.about-history-image::after { position: absolute; inset: 0; background: linear-gradient(135deg, rgb(71 16 17 / 8%), transparent 45%); content: ""; pointer-events: none; }
.about-history-image img { width: 100%; height: clamp(480px, 48vw, 650px); object-fit: cover; object-position: center 56%; filter: grayscale(1) sepia(0.12) contrast(1.06); transition: filter 400ms ease, transform 700ms cubic-bezier(0.22, 1, 0.36, 1); }
.about-history-visual:hover img { filter: grayscale(0.7) sepia(0.08) contrast(1.04); transform: scale(1.015); }
.about-history-visual figcaption { position: absolute; right: -1rem; bottom: 2.5rem; z-index: 2; display: flex; min-width: 11rem; align-items: center; gap: 0.75rem; padding: 0.9rem 1.15rem; color: var(--color-white); background: var(--color-burgundy); box-shadow: 0 0.8rem 2rem rgb(0 0 0 / 20%); }
.about-history-visual figcaption strong { color: var(--color-gold); font-family: Georgia, serif; font-size: 1.8rem; font-weight: 400; line-height: 1; }
.about-history-visual figcaption span { font-size: 0.63rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; }
.about-history-copy { position: relative; }
.about-history-copy .eyebrow { margin-bottom: 1rem; color: var(--color-burgundy); }
.about-history-copy h2 { max-width: 10ch; margin: 0; font-size: clamp(3.25rem, 5.5vw, 5.8rem); line-height: 0.95; }
.about-history-rule { display: flex; align-items: center; width: 6rem; height: 1rem; margin: 1.75rem 0; }
.about-history-rule::before { width: 0.55rem; height: 0.55rem; transform: rotate(45deg); border: 1px solid var(--color-gold); content: ""; }
.about-history-rule span { width: 100%; height: 1px; background: var(--color-gold); }
.about-history-copy > p:not(.eyebrow) { max-width: 600px; color: #655950; }
.about-history-copy .about-history-lead { color: var(--color-ink); font-family: Georgia, serif; font-size: 1.2rem; line-height: 1.65; }
.about-history-fact { display: grid; max-width: 310px; grid-template-columns: auto auto; align-items: end; gap: 0 0.8rem; margin-top: 2.25rem; padding-top: 1.25rem; border-top: 1px solid rgb(112 27 28 / 16%); }
.about-history-fact strong { grid-row: 1 / 3; grid-column: 1; color: var(--color-burgundy); font-family: Georgia, serif; font-size: 3.6rem; font-weight: 400; line-height: 0.9; }
.about-history-fact span { color: #75685f; font-size: 0.62rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; }
.about-service-section { position: relative; overflow: hidden; color: var(--color-white); background: radial-gradient(circle at 12% 0%, rgb(213 161 65 / 14%), transparent 31%), linear-gradient(135deg, var(--color-burgundy-dark), #2c090a); }
.about-service-section::before { position: absolute; inset: 1.35rem; border: 1px solid rgb(213 161 65 / 16%); content: ""; pointer-events: none; }
.about-service-layout { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(440px, 1.08fr) minmax(380px, 0.92fr); gap: clamp(3.5rem, 8vw, 8rem); align-items: center; }
.about-service-visual { position: relative; margin: 0; padding: 0 0 1rem 1rem; }
.about-service-visual::before { position: absolute; inset: 1rem 1rem 0 0; background: var(--color-gold); content: ""; }
.about-service-visual img { position: relative; z-index: 1; width: 100%; height: clamp(420px, 40vw, 560px); object-fit: cover; box-shadow: 0 1.5rem 4rem rgb(0 0 0 / 28%); }
.about-service-visual figcaption { position: absolute; right: -1.2rem; bottom: 2.5rem; z-index: 2; width: min(18rem, 76%); padding: 1.15rem 1.3rem; color: var(--color-ink); background: var(--color-cream); box-shadow: 0 1rem 2.5rem rgb(0 0 0 / 24%); }
.about-service-visual figcaption span { display: block; margin-bottom: 0.35rem; color: var(--color-burgundy); font-size: 0.6rem; font-weight: 800; letter-spacing: 0.13em; text-transform: uppercase; }
.about-service-visual figcaption strong { font-family: Georgia, serif; font-size: 1.05rem; font-weight: 400; line-height: 1.4; }
.about-service-copy .eyebrow { margin-bottom: 1rem; }
.about-service-copy h2 { max-width: 12ch; margin-bottom: 1.75rem; color: var(--color-white); font-size: clamp(3rem, 5vw, 5rem); line-height: 0.98; }
.about-service-copy > p:not(.eyebrow) { max-width: 590px; color: rgb(255 255 255 / 68%); }
.about-service-copy > p:nth-of-type(2) { color: rgb(255 255 255 / 84%); font-family: Georgia, serif; font-size: 1.13rem; line-height: 1.65; }
.about-service-values { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 2.5rem; border-top: 1px solid rgb(213 161 65 / 32%); border-bottom: 1px solid rgb(213 161 65 / 32%); }
.about-service-values div { padding: 1.25rem 1rem; border-right: 1px solid rgb(213 161 65 / 25%); }
.about-service-values div:first-child { padding-left: 0; }
.about-service-values div:last-child { padding-right: 0; border-right: 0; }
.about-service-values span { display: block; margin-bottom: 0.35rem; color: var(--color-gold); font-size: 0.6rem; font-weight: 800; }
.about-service-values strong { font-family: Georgia, serif; font-size: 1rem; font-weight: 400; }
.about-medical-section { position: relative; overflow: hidden; background: #eef4f1; }
.about-medical-section::before { position: absolute; top: -12rem; right: -10rem; width: 30rem; height: 30rem; border: 1px solid rgb(213 161 65 / 24%); border-radius: 50%; content: ""; pointer-events: none; }
.about-medical-section::after { position: absolute; bottom: 0; left: 0; width: 34%; height: 0.35rem; background: var(--color-gold); content: ""; }
.about-medical-layout { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(460px, 1.08fr) minmax(380px, 0.92fr); align-items: center; gap: clamp(3.5rem, 8vw, 8rem); }
.about-medical-visual { position: relative; margin: 0; padding: 1rem 0 0 1rem; }
.about-medical-visual::before { position: absolute; inset: 0 1rem 1rem 0; border: 1px solid var(--color-gold); content: ""; }
.about-medical-image { position: relative; z-index: 1; overflow: hidden; background: #cad7d1; box-shadow: 0 1.5rem 4rem rgb(16 52 51 / 18%); }
.about-medical-image::after { position: absolute; inset: 0; background: linear-gradient(135deg, rgb(16 52 51 / 15%), transparent 52%); content: ""; pointer-events: none; }
.about-medical-image img { width: 100%; height: clamp(390px, 36vw, 520px); object-fit: cover; transition: transform 700ms cubic-bezier(.22,1,.36,1); }
.about-medical-visual:hover img { transform: scale(1.025); }
.about-medical-visual figcaption { position: absolute; right: -1rem; bottom: 2.2rem; z-index: 2; display: flex; align-items: center; gap: 0.85rem; max-width: 18rem; padding: 0.95rem 1.2rem; color: var(--color-cream); background: #123c3c; box-shadow: 0 0.8rem 2rem rgb(0 0 0 / 20%); }
.about-medical-visual figcaption span { color: var(--color-gold); font-size: 0.62rem; font-weight: 900; letter-spacing: 0.12em; }
.about-medical-visual figcaption strong { font-family: Georgia, serif; font-size: 1rem; font-weight: 400; line-height: 1.35; }
.about-medical-copy .eyebrow { margin-bottom: 1rem; color: var(--color-burgundy); }
.about-medical-copy h2 { max-width: 12ch; margin: 0 0 1.65rem; font-size: clamp(3rem, 4.8vw, 5rem); line-height: 0.98; }
.about-medical-copy > p:not(.eyebrow) { max-width: 610px; color: #615951; }
.about-medical-copy .about-medical-lead { color: var(--color-ink); font-family: Georgia, serif; font-size: clamp(1.08rem, 1.5vw, 1.25rem); line-height: 1.65; }
.about-medical-guests { display: flex; flex-wrap: wrap; gap: 0.55rem; margin: 1.75rem 0 2rem; }
.about-medical-guests span { padding: 0.5rem 0.8rem; border: 1px solid rgb(18 60 60 / 20%); color: #123c3c; background: rgb(255 255 255 / 58%); font-size: 0.61rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; }
.about-medical-copy .button { min-width: 12rem; justify-content: center; }
.about-charm-section { position: relative; overflow: hidden; background: linear-gradient(115deg, #fffdf8 0 62%, #f3ead9 62%); }
.about-charm-layout { display: grid; grid-template-columns: minmax(380px, 0.9fr) minmax(460px, 1.1fr); gap: clamp(3.5rem, 8vw, 8rem); align-items: center; }
.about-charm-copy .eyebrow { margin-bottom: 1rem; color: var(--color-burgundy); }
.about-charm-copy h2 { max-width: 11ch; margin-bottom: 1.75rem; font-size: clamp(3.1rem, 5vw, 5.2rem); line-height: 0.98; }
.about-charm-copy > p:not(.eyebrow) { max-width: 590px; color: #675b52; }
.about-charm-copy .about-charm-lead { color: var(--color-ink); font-family: Georgia, serif; font-size: 1.16rem; line-height: 1.65; }
.about-charm-details { display: flex; flex-wrap: wrap; gap: 0.6rem; margin: 2rem 0; }
.about-charm-details span { padding: 0.5rem 0.75rem; border: 1px solid rgb(112 27 28 / 18%); color: var(--color-burgundy); background: rgb(255 255 255 / 62%); font-size: 0.6rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.about-charm-visual { position: relative; margin: 0; padding: 1rem 1rem 0 0; }
.about-charm-visual::before { position: absolute; inset: 0 0 1rem 1rem; border: 1px solid var(--color-gold); content: ""; }
.about-charm-image { position: relative; z-index: 1; overflow: hidden; box-shadow: 0 1.25rem 3.5rem rgb(71 16 17 / 14%); }
.about-charm-image img { width: 100%; height: clamp(430px, 42vw, 570px); object-fit: cover; transition: transform 650ms cubic-bezier(0.22, 1, 0.36, 1); }
.about-charm-visual:hover img { transform: scale(1.025); }
.about-charm-visual figcaption { position: absolute; bottom: 2.5rem; left: -1rem; z-index: 2; width: min(17rem, 74%); padding: 1rem 1.2rem; color: var(--color-white); background: var(--color-burgundy); box-shadow: 0 1rem 2.5rem rgb(0 0 0 / 20%); }
.about-charm-visual figcaption span { display: block; margin-bottom: 0.3rem; color: var(--color-gold); font-size: 0.6rem; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; }
.about-charm-visual figcaption strong { font-family: Georgia, serif; font-size: 1.05rem; font-weight: 400; line-height: 1.4; }
.about-mission-section { position: relative; overflow: hidden; background: linear-gradient(105deg, #edf4f1 0 36%, #fffdf8 36%); }
.about-mission-section::before { position: absolute; top: 0; left: 50%; width: 1px; height: 2.5rem; background: var(--color-gold); content: ""; }
.about-mission-layout { position: relative; display: grid; grid-template-columns: minmax(440px, 1.05fr) minmax(400px, 0.95fr); gap: clamp(3.5rem, 8vw, 8rem); align-items: center; }
.about-mission-visual { position: relative; margin: 0; padding: 0 1rem 1rem 0; }
.about-mission-visual::before { position: absolute; inset: 1rem 0 0 1rem; background: var(--color-burgundy); content: ""; }
.about-mission-image { position: relative; z-index: 1; overflow: hidden; box-shadow: 0 1.25rem 3.5rem rgb(71 16 17 / 15%); }
.about-mission-image::after { position: absolute; inset: 0; background: linear-gradient(135deg, rgb(112 27 28 / 8%), transparent 44%); content: ""; }
.about-mission-image img { width: 100%; height: clamp(440px, 43vw, 590px); object-fit: cover; object-position: center 48%; transition: transform 650ms cubic-bezier(0.22, 1, 0.36, 1); }
.about-mission-visual:hover img { transform: scale(1.02); }
.about-mission-mark { position: absolute; right: -0.75rem; bottom: 2.5rem; z-index: 2; display: grid; width: 5.5rem; height: 5.5rem; place-items: center; border: 1px solid var(--color-gold); border-radius: 50%; color: var(--color-white); background: var(--color-burgundy); box-shadow: 0 0.8rem 2rem rgb(0 0 0 / 20%); }
.about-mission-mark span { align-self: end; font-family: Georgia, serif; font-size: 1.15rem; line-height: 1; }
.about-mission-mark small { align-self: start; color: var(--color-gold); font-size: 0.52rem; font-weight: 800; letter-spacing: 0.1em; }
.about-mission-copy .eyebrow { margin-bottom: 1rem; color: var(--color-burgundy); }
.about-mission-copy h2 { max-width: 11ch; margin-bottom: 1.75rem; font-size: clamp(3.1rem, 5vw, 5.2rem); line-height: 0.98; }
.about-mission-copy > p:not(.eyebrow) { max-width: 610px; color: #675b52; }
.about-mission-copy .about-mission-lead { color: var(--color-ink); font-family: Georgia, serif; font-size: 1.17rem; line-height: 1.65; }
.about-mission-principles { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 2.5rem; border-top: 1px solid rgb(112 27 28 / 16%); border-bottom: 1px solid rgb(112 27 28 / 16%); }
.about-mission-principles div { padding: 1.2rem 1rem; border-right: 1px solid rgb(112 27 28 / 14%); }
.about-mission-principles div:first-child { padding-left: 0; }
.about-mission-principles div:last-child { padding-right: 0; border-right: 0; }
.about-mission-principles span, .about-mission-principles small { display: block; }
.about-mission-principles span { margin-bottom: 0.25rem; color: var(--color-gold); font-size: 0.58rem; font-weight: 800; }
.about-mission-principles strong { color: var(--color-burgundy); font-family: Georgia, serif; font-size: 1.05rem; font-weight: 400; }
.about-mission-principles small { margin-top: 0.25rem; color: #7c6f66; font-size: 0.59rem; line-height: 1.45; }
/* Gutenberg-managed inner-page sections. */
.inn-flex-section { position: relative; overflow: hidden; background: #fffdf8; }
.inn-flex-layout { display: grid; grid-template-columns: minmax(430px, 1.05fr) minmax(360px, .95fr); align-items: center; gap: clamp(3rem, 7vw, 7rem); }
.inn-flex-reverse .inn-flex-visual { order: 2; }
.inn-flex-visual { position: relative; margin: 0; padding: 1rem 0 0 1rem; }
.inn-flex-visual::before { position: absolute; inset: 0 1rem 1rem 0; border: 1px solid var(--color-gold); content: ""; }
.inn-flex-visual > div { position: relative; z-index: 1; overflow: hidden; box-shadow: 0 1.5rem 4rem rgb(33 18 14 / 18%); }
.inn-flex-visual img { width: 100%; height: clamp(400px, 40vw, 570px); object-fit: cover; transition: transform 650ms cubic-bezier(.22,1,.36,1); }
.inn-flex-visual:hover img { transform: scale(1.025); }
.inn-flex-visual figcaption { position: absolute; right: -1rem; bottom: 2rem; z-index: 2; display: flex; max-width: 18rem; align-items: center; gap: .75rem; padding: .9rem 1.15rem; color: var(--color-cream); background: var(--color-burgundy); box-shadow: 0 .8rem 2rem rgb(0 0 0 / 22%); }
.inn-flex-visual figcaption span { color: var(--color-gold); font-size: .6rem; font-weight: 900; letter-spacing: .12em; }
.inn-flex-visual figcaption strong { font-family: Georgia, serif; font-size: 1rem; font-weight: 400; line-height: 1.35; }
.inn-flex-copy h2 { max-width: 12ch; margin: 0 0 1.5rem; font-size: clamp(2.9rem, 4.8vw, 5rem); line-height: .98; }
.inn-flex-copy > p:not(.eyebrow) { max-width: 620px; color: #645b53; }
.inn-flex-copy .inn-flex-lead { color: var(--color-ink); font-family: Georgia, serif; font-size: clamp(1.08rem, 1.5vw, 1.25rem); line-height: 1.65; }
.inn-flex-items { display: flex; flex-wrap: wrap; gap: .55rem; margin-top: 1.75rem; }
.inn-flex-items > span { padding: .48rem .75rem; border: 1px solid rgb(112 27 28 / 18%); color: var(--color-burgundy); background: rgb(255 255 255 / 55%); font-size: .61rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.inn-flex-items > a { display: grid; width: 100%; grid-template-columns: 2rem 1fr auto; gap: .75rem; padding: .75rem 0; border-bottom: 1px solid rgb(112 27 28 / 13%); color: inherit; font-family: Georgia, serif; text-decoration: none; }
.inn-flex-items > a span, .inn-flex-items > a b { color: var(--color-gold); font-family: Arial, sans-serif; font-size: .62rem; }
.inn-flex-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1.25rem; margin-top: 2rem; }
.inn-flex-burgundy, .inn-flex-dark, .inn-flex-teal { color: var(--color-cream); }
.inn-flex-burgundy { background: #401313; }
.inn-flex-dark { background: #211816; }
.inn-flex-teal { background: #123c3c; }
.inn-flex-burgundy .inn-flex-copy h2, .inn-flex-dark .inn-flex-copy h2, .inn-flex-teal .inn-flex-copy h2 { color: var(--color-cream); }
.inn-flex-burgundy .inn-flex-copy > p:not(.eyebrow), .inn-flex-dark .inn-flex-copy > p:not(.eyebrow), .inn-flex-teal .inn-flex-copy > p:not(.eyebrow) { color: rgb(255 249 232 / 72%); }
.inn-flex-burgundy .inn-flex-copy .inn-flex-lead, .inn-flex-dark .inn-flex-copy .inn-flex-lead, .inn-flex-teal .inn-flex-copy .inn-flex-lead { color: var(--color-cream); }
.inn-flex-burgundy .inn-flex-items > a, .inn-flex-dark .inn-flex-items > a, .inn-flex-teal .inn-flex-items > a { border-bottom-color: rgb(255 249 232 / 14%); color: var(--color-cream); }
.inn-flex-sage { background: #eef4f1; }
.inn-page-intro { position: relative; overflow: hidden; text-align: center; background: #fffdf8; }
.inn-page-intro header { max-width: 860px; margin: 0 auto; }
.inn-page-intro h2 { margin: 0; font-size: clamp(3rem, 5.8vw, 5.8rem); line-height: .97; }
.inn-page-intro header > p:last-child { max-width: 720px; margin: 1.5rem auto 0; color: #655b52; }
.inn-intro-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: clamp(1rem, 2vw, 1.6rem); margin-top: clamp(3rem, 6vw, 5.5rem); text-align: left; }
.inn-intro-grid a { position: relative; display: grid; min-height: clamp(17rem, 27vw, 22rem); align-content: end; overflow: hidden; padding: clamp(1.35rem, 2.4vw, 2rem); border: 1px solid rgb(213 161 65 / 30%); border-radius: 1.15rem; color: var(--color-cream); background: linear-gradient(145deg, #5f1819, #21100f); box-shadow: 0 18px 45px rgb(49 22 18 / 12%); text-decoration: none; isolation: isolate; transition: border-color 300ms ease, box-shadow 300ms ease, transform 300ms ease; }
.inn-intro-grid img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; opacity: .86; filter: saturate(.9) contrast(1.03); transition: filter 500ms ease, transform 700ms cubic-bezier(.2,.7,.2,1); }
.inn-intro-grid a::after { position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgb(12 8 7 / 5%) 15%, rgb(21 10 9 / 22%) 44%, rgb(21 10 9 / 94%) 100%); content: ""; }
.inn-intro-grid span, .inn-intro-grid strong, .inn-intro-grid small, .inn-intro-grid i { position: relative; z-index: 1; }
.inn-intro-grid span { margin-bottom: .55rem; color: var(--color-gold); font-size: .7rem; font-weight: 800; letter-spacing: .16em; }
.inn-intro-grid strong { max-width: calc(100% - 3rem); font-family: Georgia, serif; font-size: clamp(1.55rem, 2vw, 2rem); font-weight: 400; line-height: 1.08; }
.inn-intro-grid small { max-width: calc(100% - 2.5rem); margin-top: .65rem; color: rgb(255 249 232 / 74%); font-size: .82rem; line-height: 1.55; }
.inn-intro-grid i { position: absolute; right: 1.4rem; bottom: 1.45rem; display: grid; width: 2.35rem; height: 2.35rem; place-items: center; border: 1px solid rgb(255 249 232 / 40%); border-radius: 50%; color: var(--color-cream); font-family: Arial, sans-serif; font-size: 1rem; font-style: normal; transition: color 300ms ease, background 300ms ease, transform 300ms ease; }
.inn-intro-grid a:hover { border-color: rgb(213 161 65 / 75%); box-shadow: 0 24px 58px rgb(49 22 18 / 22%); transform: translateY(-6px); }
.inn-intro-grid a:hover img { filter: saturate(1.06) contrast(1.05); transform: scale(1.065); }
.inn-intro-grid a:hover i { color: #2a1311; background: var(--color-gold); transform: translateX(3px); }
.inn-intro-grid a:focus-visible { outline: 3px solid var(--color-gold); outline-offset: 4px; }

/* Persistent mobile call control. */
.mobile-call-button { position: fixed; z-index: 9; place-items: center; border: 1px solid rgb(255 249 232 / 34%); border-radius: 999px; color: #2b1511; background: var(--color-gold); box-shadow: 0 12px 32px rgb(27 12 10 / 30%); text-decoration: none; }
.mobile-call-button { bottom: max(1rem, env(safe-area-inset-bottom)); left: 1rem; display: none; width: 3rem; height: 3rem; padding: .82rem; border-radius: 50%; }
.mobile-call-button svg { width: 100%; height: 100%; fill: currentColor; }
.mobile-call-button span { display: none; }
.inn-page-cta { padding-block: clamp(4rem, 7vw, 7rem); color: var(--color-cream); background: radial-gradient(circle at 86% 10%, rgb(213 161 65 / 15%), transparent 32%), #211816; }
.inn-page-cta > div { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 3rem; }
.inn-page-cta h2 { max-width: 15ch; margin: 0; color: var(--color-cream); font-size: clamp(2.8rem, 5vw, 5rem); line-height: .98; }
.inn-page-cta p:not(.eyebrow) { max-width: 700px; color: rgb(255 249 232 / 68%); }
.inn-page-cta > div > div:last-child { display: flex; flex-direction: column; gap: 1rem; }
.inn-page-cta > div > div:last-child > a:not(.button) { color: var(--color-gold); text-align: center; text-decoration: none; }
.gallery-page > .wp-block-gallery { width: min(calc(100% - 2rem), 1200px); margin: 0 auto clamp(3.5rem, 6vw, 6rem); }
/* Activities page — opening discovery section. */
.activities-discover { position: relative; overflow: hidden; background: #fffdf8; }
.activities-discover::before { position: absolute; top: 0; right: 0; width: 28%; height: 100%; background: linear-gradient(135deg, transparent 0 49.5%, rgb(213 161 65 / 8%) 50%); content: ""; pointer-events: none; }
.activities-discover-heading { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(300px, 0.7fr); align-items: end; gap: clamp(2rem, 8vw, 8rem); margin-bottom: clamp(2.75rem, 6vw, 5.25rem); padding-bottom: clamp(2rem, 4vw, 3.25rem); border-bottom: 1px solid rgb(112 27 28 / 16%); }
.activities-discover-heading .eyebrow { margin-bottom: 0.8rem; }
.activities-discover-heading h2 { max-width: 12ch; margin: 0; font-size: clamp(2.65rem, 5vw, 5rem); line-height: 0.98; }
.activities-discover-heading > p { max-width: 42rem; margin: 0; color: #625b53; font-size: clamp(1rem, 1.4vw, 1.14rem); line-height: 1.85; }
.activities-category-grid { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.25rem, 2.6vw, 2.5rem); }
.activity-category-card { position: relative; display: block; color: var(--color-ink); text-decoration: none; }
.activity-category-card figure { position: relative; margin: 0; overflow: hidden; background: var(--color-sand); aspect-ratio: 4 / 5; }
.activity-category-card figure::after { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 50%, rgb(0 0 0 / 38%)); content: ""; opacity: 0.35; transition: opacity 280ms ease; }
.activity-category-card img { width: 100%; height: 100%; object-fit: cover; transition: transform 650ms cubic-bezier(.2,.7,.2,1), filter 300ms ease; }
.activity-category-copy { display: grid; grid-template-columns: auto 1fr auto; align-items: start; gap: 1rem; padding: 1.35rem 0 0; border-top: 3px solid var(--color-gold); }
.activity-category-number { padding-top: 0.25rem; color: var(--color-burgundy); font-size: 0.7rem; font-weight: 800; letter-spacing: 0.12em; }
.activity-category-copy p { margin: 0 0 0.32rem; color: #7d7267; font-size: 0.65rem; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; }
.activity-category-copy h3 { margin: 0; color: var(--color-burgundy); font-size: clamp(1.4rem, 2.15vw, 2rem); line-height: 1.1; }
.activity-category-arrow { display: grid; width: 2.6rem; height: 2.6rem; place-items: center; border: 1px solid rgb(112 27 28 / 20%); border-radius: 50%; color: var(--color-burgundy); font-size: 1.1rem; transition: color 220ms ease, background 220ms ease, transform 220ms ease; }
.activity-category-card:hover img, .activity-category-card:focus-visible img { transform: scale(1.045); filter: saturate(1.08); }
.activity-category-card:hover figure::after, .activity-category-card:focus-visible figure::after { opacity: 0.65; }
.activity-category-card:hover .activity-category-arrow, .activity-category-card:focus-visible .activity-category-arrow { color: var(--color-cream); background: var(--color-burgundy); transform: translate(0.18rem, 0.18rem); }
.activity-category-card:focus-visible { outline: 3px solid var(--color-gold); outline-offset: 5px; }

.activity-feature { position: relative; overflow: hidden; color: var(--color-cream); background: #251817; }
.activity-feature::before { position: absolute; inset: 0; background: radial-gradient(circle at 88% 14%, rgb(213 161 65 / 12%), transparent 31%), linear-gradient(110deg, rgb(112 27 28 / 25%), transparent 44%); content: ""; pointer-events: none; }
.activity-feature::after { position: absolute; top: 0; right: clamp(1rem, 5vw, 5rem); width: 1px; height: 38%; background: linear-gradient(var(--color-gold), transparent); content: ""; }
.activity-feature-layout { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(360px, 0.92fr); align-items: center; gap: clamp(3rem, 7vw, 7.5rem); }
.activity-feature-visual { position: relative; margin: 0; padding: 0 0 1.25rem 1.25rem; }
.activity-feature-visual::before { position: absolute; inset: 1.25rem 1.25rem 0 0; border: 1px solid rgb(213 161 65 / 46%); content: ""; }
.activity-feature-image { position: relative; z-index: 1; overflow: hidden; box-shadow: 0 2rem 5rem rgb(0 0 0 / 32%); }
.activity-feature-image::after { position: absolute; inset: 0; background: linear-gradient(135deg, rgb(112 27 28 / 18%), transparent 52%); content: ""; }
.activity-feature-image img { width: 100%; height: clamp(390px, 36vw, 540px); object-fit: cover; transition: transform 700ms cubic-bezier(.2,.7,.2,1); }
.activity-feature-visual:hover img { transform: scale(1.025); }
.activity-feature-visual figcaption { position: absolute; right: -1rem; bottom: -0.4rem; z-index: 2; display: flex; align-items: center; gap: 0.75rem; padding: 0.85rem 1.15rem; color: var(--color-ink); background: var(--color-gold); box-shadow: 0 0.8rem 2rem rgb(0 0 0 / 25%); }
.activity-feature-visual figcaption span { font-size: 0.62rem; font-weight: 900; letter-spacing: 0.12em; }
.activity-feature-visual figcaption strong { font-family: Georgia, serif; font-size: 0.95rem; font-weight: 400; }
.activity-feature-copy .eyebrow { margin-bottom: 0.85rem; color: var(--color-gold); }
.activity-feature-copy h2 { max-width: 10ch; margin: 0 0 1.35rem; color: var(--color-cream); font-size: clamp(3rem, 5vw, 5.3rem); line-height: 0.96; }
.activity-feature-lead { max-width: 38rem; margin: 0; color: rgb(255 249 232 / 72%); font-family: Georgia, serif; font-size: clamp(1.05rem, 1.6vw, 1.3rem); line-height: 1.7; }
.activity-quick-links { margin-top: clamp(2rem, 4vw, 3.25rem); padding-top: 1.35rem; border-top: 1px solid rgb(213 161 65 / 36%); }
.activity-quick-links > p { margin: 0 0 0.55rem; color: var(--color-gold); font-size: 0.65rem; font-weight: 800; letter-spacing: 0.15em; text-transform: uppercase; }
.activity-quick-links ul { margin: 0; padding: 0; list-style: none; }
.activity-quick-links li { border-bottom: 1px solid rgb(255 249 232 / 11%); }
.activity-quick-links a { display: grid; grid-template-columns: 2rem 1fr auto; align-items: center; gap: 0.75rem; padding: 0.78rem 0; color: var(--color-cream); font-family: Georgia, serif; font-size: clamp(0.98rem, 1.4vw, 1.15rem); text-decoration: none; transition: color 180ms ease, padding 180ms ease; }
.activity-quick-links a span { color: rgb(213 161 65 / 72%); font-family: Arial, sans-serif; font-size: 0.57rem; font-weight: 800; letter-spacing: 0.1em; }
.activity-quick-links a b { color: var(--color-gold); font-family: Arial, sans-serif; font-size: 0.9rem; font-weight: 400; transition: transform 180ms ease; }
.activity-quick-links a:hover, .activity-quick-links a:focus-visible { padding-left: 0.4rem; color: var(--color-gold); }
.activity-quick-links a:hover b, .activity-quick-links a:focus-visible b { transform: translate(0.18rem, -0.18rem); }
.activity-quick-links a:focus-visible { outline: 2px solid var(--color-gold); outline-offset: 2px; }
.activity-feature-light { color: var(--color-ink); background: #f4eee3; }
.activity-feature-light::before { background: radial-gradient(circle at 8% 84%, rgb(8 116 119 / 8%), transparent 30%), linear-gradient(110deg, transparent 58%, rgb(213 161 65 / 11%)); }
.activity-feature-light::after { right: auto; left: clamp(1rem, 5vw, 5rem); background: linear-gradient(var(--color-burgundy), transparent); }
.activity-feature-light .activity-feature-visual::before { border-color: rgb(112 27 28 / 35%); }
.activity-feature-light .activity-feature-visual figcaption { color: var(--color-cream); background: var(--color-burgundy); }
.activity-feature-light .activity-feature-copy .eyebrow { color: var(--color-burgundy); }
.activity-feature-light .activity-feature-copy h2 { color: var(--color-ink); }
.activity-feature-light .activity-feature-lead { color: #5f554c; }
.activity-feature-light .activity-quick-links { border-top-color: rgb(112 27 28 / 22%); }
.activity-feature-light .activity-quick-links > p { color: var(--color-burgundy); }
.activity-feature-light .activity-quick-links li { border-bottom-color: rgb(112 27 28 / 12%); }
.activity-feature-light .activity-quick-links a { color: var(--color-ink); }
.activity-feature-light .activity-quick-links a span { color: rgb(112 27 28 / 65%); }
.activity-feature-light .activity-quick-links a b { color: var(--color-burgundy); }
.activity-feature-light .activity-quick-links a:hover, .activity-feature-light .activity-quick-links a:focus-visible { color: var(--color-burgundy); }
.activity-feature-light .activity-quick-links a:focus-visible { outline-color: var(--color-burgundy); }
.activity-feature-guided { background: #173a3b; }
.activity-feature-guided::before { background: radial-gradient(circle at 90% 10%, rgb(213 161 65 / 15%), transparent 32%), linear-gradient(110deg, rgb(8 116 119 / 22%), transparent 48%); }
.activity-feature-beaches { background: #fffaf0; }
.activity-feature-sports { background: #451516; }
.activity-feature-sports::before { background: radial-gradient(circle at 12% 88%, rgb(213 161 65 / 13%), transparent 31%), linear-gradient(105deg, rgb(8 7 6 / 25%), transparent 58%); }
.restaurants-intro { position: relative; overflow: hidden; text-align: center; background: #fffdf8; }
.restaurants-intro::before, .restaurants-intro::after { position: absolute; width: clamp(10rem, 22vw, 22rem); height: clamp(10rem, 22vw, 22rem); border: 1px solid rgb(213 161 65 / 22%); border-radius: 50%; content: ""; }
.restaurants-intro::before { top: -48%; left: -5%; }
.restaurants-intro::after { right: -7%; bottom: -55%; }
.restaurants-intro-inner { position: relative; z-index: 1; max-width: 980px; }
.restaurants-intro .eyebrow { margin-bottom: 0.85rem; }
.restaurants-intro h2 { max-width: 15ch; margin: 0 auto 1.5rem; font-size: clamp(2.8rem, 5.6vw, 5.8rem); line-height: 0.97; }
.restaurants-intro-inner > p:not(.eyebrow) { max-width: 700px; margin: 0 auto; color: #655b52; font-size: clamp(1rem, 1.35vw, 1.15rem); line-height: 1.8; }
.restaurants-intro-notes { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: clamp(2.5rem, 5vw, 4rem); border-top: 1px solid rgb(112 27 28 / 15%); border-bottom: 1px solid rgb(112 27 28 / 15%); }
.restaurants-intro-notes span { display: flex; align-items: center; justify-content: center; gap: 0.8rem; padding: 1.1rem; border-right: 1px solid rgb(112 27 28 / 13%); color: var(--color-burgundy); font-family: Georgia, serif; font-size: 1rem; }
.restaurants-intro-notes span:last-child { border-right: 0; }
.restaurants-intro-notes b { color: var(--color-gold); font-family: Arial, sans-serif; font-size: 0.58rem; letter-spacing: 0.1em; }
.restaurant-feature-fine { background: #3d1715; }
.restaurant-feature-fine::before { background: radial-gradient(circle at 85% 12%, rgb(213 161 65 / 16%), transparent 30%), linear-gradient(110deg, rgb(91 31 23 / 25%), transparent 50%); }
.restaurant-feature-casual { background: #f5ede0; }
.restaurant-feature-global { background: #123c3c; }
.restaurant-feature-global::before { background: radial-gradient(circle at 12% 88%, rgb(213 161 65 / 15%), transparent 30%), linear-gradient(110deg, rgb(8 116 119 / 20%), transparent 48%); }
.restaurant-feature .activity-feature-image img { object-position: center; }
.restaurant-feature-casual .activity-feature-image img { object-position: center 44%; }
.events-calendar { position: relative; overflow: hidden; background: #fffdf8; }
.events-calendar::before { position: absolute; inset: 0; background: radial-gradient(circle at 8% 12%, rgb(213 161 65 / 12%), transparent 26%), linear-gradient(135deg, transparent 0 74%, rgb(112 27 28 / 4%) 74.1%); content: ""; pointer-events: none; }
.events-calendar-heading { position: relative; z-index: 1; max-width: 850px; margin: 0 auto clamp(3rem, 7vw, 6rem); text-align: center; }
.events-calendar-heading .eyebrow { margin-bottom: 1rem; }
.events-calendar-heading h2 { margin: 0; font-size: clamp(3rem, 6vw, 5.8rem); line-height: .96; }
.events-calendar-heading > p:last-child { max-width: 720px; margin: 1.75rem auto 0; color: #625b53; font-size: clamp(1rem, 1.35vw, 1.14rem); line-height: 1.8; }
.events-season-grid { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(.8rem, 1.6vw, 1.5rem); }
.events-season-card { position: relative; display: grid; min-height: clamp(330px, 35vw, 480px); align-content: end; overflow: hidden; padding: clamp(1.25rem, 2.5vw, 2rem); color: var(--color-cream); text-decoration: none; }
.events-season-card img, .events-season-card-shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.events-season-card img { object-fit: cover; transition: transform 650ms cubic-bezier(.22,1,.36,1); }
.events-season-card-shade { background: linear-gradient(0deg, rgb(8 7 6 / 86%), rgb(8 7 6 / 5%) 68%); }
.events-season-card-number { position: absolute; top: 1.25rem; left: 1.25rem; z-index: 1; display: grid; width: 2.5rem; height: 2.5rem; place-items: center; border: 1px solid rgb(255 249 232 / 50%); border-radius: 50%; color: var(--color-gold); font-size: .68rem; font-weight: 800; }
.events-season-card strong { position: relative; z-index: 1; font-family: Georgia, serif; font-size: clamp(1.7rem, 2.8vw, 2.65rem); font-weight: 400; }
.events-season-card i { position: absolute; right: 1.5rem; bottom: 1.5rem; z-index: 1; color: var(--color-gold); font-size: 1.35rem; font-style: normal; transition: transform 180ms ease; }
.events-season-card:hover img, .events-season-card:focus-visible img { transform: scale(1.06); }
.events-season-card:hover i, .events-season-card:focus-visible i { transform: translate(.2rem, .2rem); }
.event-season-winter { background: #301717; }
.event-season-winter::before { background: radial-gradient(circle at 88% 15%, rgb(213 161 65 / 14%), transparent 32%), linear-gradient(110deg, rgb(112 27 28 / 25%), transparent 55%); }
.event-season-spring { background: #f3ecdf; }
.event-season-summer { background: #123c3c; }
.event-season-summer::before { background: radial-gradient(circle at 12% 86%, rgb(213 161 65 / 16%), transparent 30%), linear-gradient(110deg, rgb(8 116 119 / 22%), transparent 50%); }
.event-season-fall { background: #f5eee3; }
.event-season .activity-feature-image img { object-position: center; }
.event-season-winter .activity-feature-image img { object-position: center 62%; }
.events-closing .activities-closing-copy h2 { max-width: 11ch; }
.policies-page { background: #f6f0e6; }
.policies-section { position: relative; overflow: hidden; }
.policies-section::before { position: absolute; top: -14rem; right: -12rem; width: 36rem; height: 36rem; border: 1px solid rgb(213 161 65 / 22%); border-radius: 50%; content: ""; pointer-events: none; }
.policies-intro { position: relative; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(300px, .7fr); align-items: end; gap: clamp(2rem, 8vw, 8rem); margin-bottom: clamp(3rem, 6vw, 5rem); padding-bottom: clamp(2.25rem, 4vw, 3.5rem); border-bottom: 1px solid rgb(112 27 28 / 20%); }
.policies-intro h2 { max-width: 14ch; margin: 0; font-size: clamp(2.7rem, 5vw, 5rem); line-height: .98; }
.policies-intro > div:last-child > p { margin: 0 0 1.5rem; color: #615850; font-size: clamp(1rem, 1.3vw, 1.12rem); line-height: 1.8; }
.policies-contact-link { display: grid; grid-template-columns: 1fr auto; align-items: center; padding: 1rem 0; border-top: 1px solid rgb(213 161 65 / 50%); border-bottom: 1px solid rgb(213 161 65 / 50%); color: var(--color-burgundy); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; }
.policies-contact-link span { grid-column: 1; margin-top: .25rem; color: #6d6259; font-size: .82rem; font-weight: 500; letter-spacing: 0; text-transform: none; }
.policies-contact-link b { grid-row: 1 / 3; grid-column: 2; color: var(--color-gold); font-size: 1.2rem; transition: transform 180ms ease; }
.policies-contact-link:hover b { transform: translateX(.25rem); }
.policies-grid { position: relative; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.policy-card { position: relative; min-height: 290px; padding: clamp(1.6rem, 3vw, 2.75rem); border: 1px solid rgb(112 27 28 / 11%); background: rgb(255 253 248 / 88%); transition: transform 220ms ease, border-color 220ms ease, box-shadow 220ms ease; }
.policy-card:hover { transform: translateY(-4px); border-color: rgb(213 161 65 / 62%); box-shadow: 0 1.25rem 3rem rgb(73 46 32 / 9%); }
.policy-card-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: clamp(1.4rem, 2.5vw, 2.2rem); }
.policy-number { color: var(--color-burgundy); font-size: .68rem; font-weight: 800; letter-spacing: .12em; }
.policy-icon { display: grid; width: 2.75rem; height: 2.75rem; place-items: center; border: 1px solid rgb(213 161 65 / 60%); border-radius: 50%; color: var(--color-burgundy); font-family: Georgia, serif; font-size: 1rem; }
.policy-card h3 { margin: 0 0 1.15rem; color: var(--color-ink); font-family: Georgia, serif; font-size: clamp(1.55rem, 2.4vw, 2.15rem); font-weight: 400; }
.policy-card ul { display: grid; gap: .65rem; margin: 0; padding: 0; color: #625a53; list-style: none; }
.policy-card li { position: relative; padding-left: 1rem; font-size: .94rem; line-height: 1.6; }
.policy-card li::before { position: absolute; top: .66em; left: 0; width: .3rem; height: .3rem; border-radius: 50%; background: var(--color-gold); content: ""; }
.policies-note { display: flex; min-height: 290px; flex-direction: column; justify-content: center; padding: clamp(2rem, 4vw, 3.5rem); color: var(--color-cream); background: linear-gradient(145deg, #5b1719, #2e1212); }
.policies-note .eyebrow { color: var(--color-gold); }
.policies-note h3 { max-width: 15ch; margin: .45rem 0 1rem; color: var(--color-cream); font-family: Georgia, serif; font-size: clamp(2rem, 3vw, 3rem); font-weight: 400; line-height: 1.05; }
.policies-note > p:not(.eyebrow) { max-width: 580px; margin: 0; color: rgb(255 249 232 / 72%); line-height: 1.7; }
.policies-note > div { display: flex; flex-wrap: wrap; gap: .75rem 1.5rem; margin-top: 1.5rem; }
.policies-note a { color: var(--color-gold); font-size: .78rem; font-weight: 800; letter-spacing: .05em; text-decoration: none; }
.legal-page { background: #f7f2e9; }
.legal-section { position: relative; }
.legal-intro { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(300px, .7fr); align-items: end; gap: clamp(2rem, 8vw, 8rem); margin-bottom: clamp(3rem, 6vw, 5rem); padding-bottom: clamp(2.25rem, 4vw, 3.5rem); border-bottom: 1px solid rgb(112 27 28 / 18%); }
.legal-intro h2 { max-width: 13ch; margin: 0; font-size: clamp(2.8rem, 5vw, 5rem); line-height: .98; }
.legal-intro > div:last-child p { margin: 0 0 1.25rem; color: #625a52; font-size: clamp(1rem, 1.3vw, 1.12rem); line-height: 1.8; }
.legal-intro > div:last-child span { color: var(--color-burgundy); font-size: .68rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.legal-layout { display: grid; grid-template-columns: minmax(220px, .3fr) minmax(0, 1fr); align-items: start; gap: clamp(2rem, 6vw, 6rem); }
.legal-navigation { position: sticky; top: 8rem; padding: 1.5rem; border-top: 3px solid var(--color-gold); background: #2e1615; }
.legal-navigation > p { margin: 0 0 1rem; color: var(--color-gold); font-size: .68rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.legal-navigation ol { margin: 0; padding: 0; list-style: none; }
.legal-navigation li + li { border-top: 1px solid rgb(255 249 232 / 10%); }
.legal-navigation a { display: grid; grid-template-columns: 2rem 1fr; gap: .4rem; padding: .75rem 0; color: rgb(255 249 232 / 78%); font-size: .78rem; line-height: 1.35; text-decoration: none; }
.legal-navigation a span { color: var(--color-gold); font-size: .62rem; font-weight: 800; letter-spacing: .06em; }
.legal-navigation a:hover { color: var(--color-gold); }
.legal-help { display: grid; gap: .35rem; margin-top: 1.25rem; padding-top: 1.25rem; border-top: 1px solid rgb(213 161 65 / 38%); }
.legal-help span { color: rgb(255 249 232 / 55%); font-size: .65rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.legal-help a { display: block; padding: 0; color: var(--color-cream); font-size: .76rem; }
.legal-content { display: grid; gap: 1rem; }
.legal-card { display: grid; grid-template-columns: 3.5rem minmax(0, 1fr); gap: clamp(1rem, 3vw, 2.4rem); padding: clamp(1.65rem, 3.5vw, 3rem); scroll-margin-top: 8rem; border: 1px solid rgb(112 27 28 / 10%); background: rgb(255 253 248 / 90%); }
.legal-card-number { padding-top: .35rem; color: var(--color-burgundy); font-size: .68rem; font-weight: 800; letter-spacing: .12em; }
.legal-card h3 { margin: 0 0 1rem; color: var(--color-ink); font-family: Georgia, serif; font-size: clamp(1.6rem, 2.5vw, 2.25rem); font-weight: 400; }
.legal-card p { margin: 0; color: #625a52; line-height: 1.75; }
.legal-card p + p { margin-top: .85rem; }
.legal-card a { color: var(--color-burgundy); font-weight: 700; }
.legal-card ul { display: grid; gap: .65rem; margin: 1rem 0 0; padding: 0; color: #625a52; list-style: none; }
.legal-card li { position: relative; padding-left: 1.15rem; line-height: 1.65; }
.legal-card li::before { position: absolute; top: .7em; left: 0; width: .32rem; height: .32rem; border-radius: 50%; background: var(--color-gold); content: ""; }
.legal-contact-panel { display: grid; grid-template-columns: minmax(220px, .7fr) minmax(260px, 1fr) auto; align-items: center; gap: 2rem; margin-top: 1rem; padding: clamp(2rem, 4vw, 3.5rem); color: var(--color-cream); background: linear-gradient(135deg, #66191b, #321313); }
.legal-contact-panel .eyebrow { color: var(--color-gold); }
.legal-contact-panel h3 { margin: .35rem 0 0; color: var(--color-cream); font-family: Georgia, serif; font-size: clamp(1.8rem, 3vw, 2.75rem); font-weight: 400; }
.legal-contact-panel > p { margin: 0; color: rgb(255 249 232 / 70%); line-height: 1.7; }
.legal-contact-panel .button { white-space: nowrap; }
.restaurants-closing { background-image: linear-gradient(90deg, rgb(8 7 6 / 89%) 0%, rgb(70 16 17 / 68%) 54%, rgb(8 7 6 / 42%) 100%), linear-gradient(0deg, rgb(70 16 17 / 48%), transparent 65%), url("assets/images/activities/portland-location.jpg"); }
.activities-closing { position: relative; display: grid; min-height: clamp(560px, 72vh, 760px); align-items: center; overflow: hidden; border-top: 5px solid var(--color-gold); color: var(--color-cream); background: linear-gradient(90deg, rgb(8 7 6 / 88%) 0%, rgb(8 7 6 / 68%) 48%, rgb(8 7 6 / 40%) 100%), linear-gradient(0deg, rgb(70 16 17 / 45%), transparent 65%), url("assets/images/activities/portland-location.jpg") center 47% / cover no-repeat; }
.activities-closing::before { position: absolute; inset: 1rem; border: 1px solid rgb(213 161 65 / 34%); content: ""; pointer-events: none; }
.activities-closing::after { position: absolute; right: 0; bottom: 0; width: 32%; height: 45%; background: linear-gradient(135deg, transparent 49.5%, rgb(213 161 65 / 18%) 50%); content: ""; pointer-events: none; }
.activities-closing-inner { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: clamp(3rem, 9vw, 10rem); padding-block: clamp(5rem, 10vw, 8rem); }
.activities-closing-copy { max-width: 760px; }
.activities-closing-copy .eyebrow { margin-bottom: 1rem; color: var(--color-gold); }
.activities-closing-copy h2 { max-width: 10ch; margin: 0 0 1.5rem; color: var(--color-cream); font-size: clamp(3.4rem, 7vw, 7rem); line-height: 0.92; }
.activities-closing-copy > p:not(.eyebrow) { max-width: 650px; margin: 0; color: rgb(255 249 232 / 76%); font-size: clamp(1rem, 1.45vw, 1.18rem); line-height: 1.8; }
.activities-closing-meta { display: flex; flex-wrap: wrap; gap: 1.5rem 2.5rem; margin-top: 2.25rem; padding-top: 1.25rem; border-top: 1px solid rgb(213 161 65 / 35%); }
.activities-closing-meta span { display: flex; align-items: center; gap: 0.6rem; color: rgb(255 249 232 / 76%); font-size: 0.72rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.activities-closing-meta b { color: var(--color-gold); font-size: 1rem; font-weight: 400; }
.activities-closing-actions { display: flex; min-width: 220px; flex-direction: column; align-items: stretch; gap: 1.25rem; }
.activities-closing-actions .button { justify-content: center; min-height: 3.6rem; }
.activities-closing-link { display: flex; align-items: center; justify-content: space-between; padding-bottom: 0.65rem; border-bottom: 1px solid rgb(213 161 65 / 65%); color: var(--color-cream); font-size: 0.72rem; font-weight: 800; letter-spacing: 0.1em; text-decoration: none; text-transform: uppercase; }
.activities-closing-link span { color: var(--color-gold); font-size: 1.2rem; transition: transform 180ms ease; }
.activities-closing-link:hover { color: var(--color-gold); }
.activities-closing-link:hover span { transform: translateX(0.25rem); }

.content-area { padding: clamp(3rem, 7vw, 7rem) 0; }
.entry-header, .archive-header { max-width: 850px; margin-bottom: 3rem; }
.entry-content { max-width: 850px; }
.entry-content > * { max-width: 850px; }
.entry-content > .alignwide { width: min(1100px, calc(100vw - 2rem)); max-width: none; }
.entry-content > .alignfull { width: 100vw; max-width: none; margin-left: calc(50% - 50vw); }
.post-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem; }
.post-card { overflow: hidden; border-top: 4px solid var(--color-teal); background: var(--color-white); box-shadow: var(--shadow); }
.post-card-content { padding: 1.5rem; }
.post-card h2 { font-size: 1.7rem; }
.post-card h2 a { color: var(--color-ink); text-decoration: none; }
.entry-meta { color: var(--color-sage); font-size: 0.88rem; }
.pagination { margin-top: 3rem; }
.nav-links { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.page-numbers { padding: 0.45rem 0.75rem; background: var(--color-white); text-decoration: none; }
.page-numbers.current { color: var(--color-white); background: var(--color-forest); }
.site-footer { position: relative; overflow: hidden; padding: clamp(3.5rem, 6vw, 5.5rem) 0 1.25rem; border-top: 4px solid var(--color-gold); color: var(--color-cream); background: radial-gradient(circle at 84% 8%, rgb(112 27 28 / 38%), transparent 34%), linear-gradient(135deg, #1d1815, #0d0b0a); }
.site-footer::before { position: absolute; top: 0; bottom: 0; left: 50%; width: 1px; background: linear-gradient(transparent, rgb(213 161 65 / 12%), transparent); content: ""; pointer-events: none; }
.footer-inner { position: relative; z-index: 1; }
.footer-top { display: grid; grid-template-columns: 0.85fr 1.15fr; gap: clamp(3rem, 10vw, 9rem); align-items: center; }
.footer-brand { display: flex; align-items: center; gap: 1.5rem; }
.footer-logo { display: inline-block; flex: 0 0 auto; filter: drop-shadow(0 0.5rem 1.3rem rgb(0 0 0 / 35%)); }
.footer-logo img { width: auto; height: clamp(5.75rem, 8vw, 7.5rem); }
.footer-brand p { margin: 0; color: rgb(255 249 232 / 62%); font-size: 0.82rem; }
.footer-brand .footer-brand-name { margin-bottom: 0.35rem; color: var(--color-cream); font-family: Georgia, serif; font-size: clamp(1.25rem, 2vw, 1.65rem); }
.footer-invitation { padding-left: clamp(2rem, 5vw, 5rem); border-left: 1px solid rgb(213 161 65 / 25%); }
.footer-invitation .eyebrow { margin-bottom: 0.65rem; }
.footer-invitation h2 { max-width: 14ch; margin-bottom: 1.25rem; color: var(--color-cream); font-size: clamp(2.2rem, 4vw, 3.8rem); line-height: 1; }
.footer-book-button { display: inline-flex; align-items: center; gap: 1rem; padding-bottom: 0.35rem; border-bottom: 1px solid var(--color-gold); color: var(--color-cream); font-size: 0.75rem; font-weight: 800; letter-spacing: 0.1em; text-decoration: none; text-transform: uppercase; }
.footer-book-button span { color: var(--color-gold); font-size: 1.1rem; transition: transform 180ms ease; }
.footer-book-button:hover { color: var(--color-gold); }
.footer-book-button:hover span { transform: translateX(0.25rem); }
.footer-social-row { display: flex; align-items: center; justify-content: space-between; padding: 1.2rem 0; border-bottom: 1px solid rgb(255 249 232 / 12%); }
.footer-social-row > p { margin: 0; color: rgb(255 249 232 / 55%); font-size: 0.7rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
.footer-socials { display: flex; gap: 0.55rem; }
.footer-socials a { display: grid; width: 2.35rem; height: 2.35rem; place-items: center; border: 1px solid rgb(213 161 65 / 45%); border-radius: 50%; color: var(--color-gold); background: transparent; transition: color 180ms ease, background 180ms ease, transform 180ms ease; }
.footer-socials a:hover { color: var(--color-ink); background: var(--color-gold); transform: translateY(-2px); }
.footer-socials svg { width: 1.05rem; height: 1.05rem; fill: currentColor; }
.footer-contact-grid { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: clamp(2.5rem, 5vw, 4.5rem); border-top: 1px solid rgb(255 249 232 / 14%); border-bottom: 1px solid rgb(255 249 232 / 14%); }
.footer-contact-grid a { display: flex; min-height: 6.5rem; flex-direction: column; align-items: flex-start; justify-content: center; padding: 1.2rem clamp(1.25rem, 3vw, 2.5rem); border-right: 1px solid rgb(255 249 232 / 14%); color: var(--color-cream); text-align: left; text-decoration: none; }
.footer-contact-grid a:first-child { padding-left: 0; }
.footer-contact-grid a:last-child { border-right: 0; }
.footer-contact-grid span { margin-bottom: 0.55rem; color: var(--color-gold); font-size: 0.66rem; font-weight: 800; letter-spacing: 0.15em; text-transform: uppercase; }
.footer-contact-grid strong { font-family: Georgia, serif; font-size: clamp(1rem, 1.45vw, 1.25rem); font-weight: 400; }
.footer-contact-grid a:hover strong { color: var(--color-gold); }
.footer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding-top: 1.15rem; color: rgb(255 249 232 / 52%); font-size: 0.7rem; }
.footer-bottom p { margin: 0; text-align: right; }
.footer-bottom p a { color: var(--color-gold); font-weight: 700; text-underline-offset: 0.2rem; }
.footer-bottom p a:hover { color: var(--color-cream); }
.footer-legal { display: flex; gap: 1.25rem; }
.footer-legal a { color: var(--color-cream); text-underline-offset: 0.25rem; }
.footer-legal a:hover { color: var(--color-gold); }
.has-burgundy-color { color: var(--color-burgundy); }
.has-burgundy-background-color { background-color: var(--color-burgundy); }
.has-antique-gold-color { color: var(--color-gold); }
.has-antique-gold-background-color { background-color: var(--color-gold); }
.has-inn-teal-color { color: var(--color-teal); }
.has-inn-teal-background-color { background-color: var(--color-teal); }
.has-sign-yellow-color { color: var(--color-yellow); }
.has-sign-yellow-background-color { background-color: var(--color-yellow); }
.has-black-color { color: var(--color-ink); }
.has-black-background-color { background-color: var(--color-ink); }
.has-warm-cream-color { color: var(--color-cream); }
.has-warm-cream-background-color { background-color: var(--color-cream); }
input[type="search"], input[type="text"], input[type="email"], textarea {
  width: 100%; border: 1px solid var(--color-sand); border-radius: var(--radius); padding: 0.8rem; font: inherit; background: var(--color-white);
}
.search-form { display: flex; gap: 0.5rem; max-width: 600px; }
.search-form label { flex: 1; }

@media (max-width: 800px) {
	.mobile-call-button { display: grid; }
  body.mobile-menu-open { overflow: hidden; }
  .menu-toggle { position: relative; z-index: 5; display: inline-flex; min-width: 5.6rem; min-height: 3rem; align-items: center; justify-content: center; gap: 0.7rem; border-color: var(--color-gold); color: var(--color-cream); background: transparent; padding: 0.55rem 0.8rem 0.55rem 1rem; transition: color 220ms ease, background 220ms ease, border-color 220ms ease; }
  .menu-toggle-icon { position: relative; display: block; width: 1.1rem; height: 0.8rem; }
  .menu-toggle-icon i { position: absolute; left: 0; width: 100%; height: 1.5px; border-radius: 2px; background: currentColor; transition: top 260ms ease, transform 260ms ease; }
  .menu-toggle-icon i:first-child { top: 0.2rem; }
  .menu-toggle-icon i:last-child { top: 0.62rem; }
  .main-navigation.toggled .menu-toggle { color: var(--color-ink); background: var(--color-gold); }
  .main-navigation.toggled .menu-toggle-icon i:first-child { top: 0.42rem; transform: rotate(45deg); }
  .main-navigation.toggled .menu-toggle-icon i:last-child { top: 0.42rem; transform: rotate(-45deg); }
  .admin-bar .site-header { top: 46px; }
  .header-inner { min-height: 5.65rem; display: flex; gap: 0.75rem; }
  .site-branding { margin-right: auto; }
  .site-branding > div { display: none; }
  .custom-logo, .brand-logo img { max-height: 4.5rem; }
  .site-title { font-size: 1.1rem; }
  .main-navigation { position: relative; z-index: 4; order: 3; }
  .main-navigation::before { position: fixed; z-index: 0; inset: 0; background: radial-gradient(circle at 92% 9%, rgb(112 27 28 / 52%), transparent 33%), radial-gradient(circle at 8% 94%, rgb(8 116 119 / 24%), transparent 32%), linear-gradient(145deg, #211916 0%, #0c0a09 72%); content: ""; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity 380ms ease, visibility 380ms ease; }
  .main-navigation::after { position: fixed; z-index: 1; right: -18vw; bottom: -18vw; width: 62vw; height: 62vw; transform: scale(0.75); border: 1px solid rgb(213 161 65 / 20%); border-radius: 50%; content: ""; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity 500ms ease 120ms, transform 700ms ease 120ms, visibility 500ms ease; }
  .main-navigation.toggled::before, .main-navigation.toggled::after { opacity: 1; visibility: visible; }
  .main-navigation.toggled::after { transform: scale(1); }
  .main-navigation .primary-menu { position: fixed; z-index: 2; inset: 0; display: flex; overflow-y: auto; flex-direction: column; align-items: stretch; justify-content: center; gap: 0; margin: 0; padding: 8rem max(2rem, 8vw) 9.5rem; border: 0; border-radius: 0; background: transparent; box-shadow: none; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity 280ms ease, visibility 280ms ease; }
  .main-navigation.toggled .primary-menu { opacity: 1; visibility: visible; pointer-events: auto; }
  .primary-menu > li { width: 100%; max-width: 42rem; margin: 0 auto; transform: translateY(1.5rem); border-bottom: 1px solid rgb(255 249 232 / 13%); opacity: 0; transition: transform 520ms cubic-bezier(.2,.75,.2,1), opacity 420ms ease; }
  .main-navigation.toggled .primary-menu > li { transform: translateY(0); opacity: 1; }
  .main-navigation.toggled .primary-menu > li:nth-child(1) { transition-delay: 120ms; }
  .main-navigation.toggled .primary-menu > li:nth-child(2) { transition-delay: 190ms; }
  .main-navigation.toggled .primary-menu > li:nth-child(3) { transition-delay: 260ms; }
  .main-navigation.toggled .primary-menu > li:nth-child(4) { transition-delay: 330ms; }
  .main-navigation.toggled .primary-menu > li:nth-child(5) { transition-delay: 400ms; }
  .main-navigation.toggled .primary-menu > li:nth-child(6) { transition-delay: 470ms; }
  .primary-menu a { display: block; padding: 0.75rem 0.1rem; }
  .primary-menu a::after { display: none; }
  .mobile-menu-open .site-header .main-navigation .primary-menu > li > a { color: var(--color-cream) !important; font-family: Georgia, "Times New Roman", serif; font-size: clamp(2rem, 8.5vw, 3.35rem); font-weight: 400; line-height: 1.15; letter-spacing: -0.025em; text-shadow: none !important; }
  .mobile-menu-open .site-header .main-navigation .primary-menu > li > a:hover, .mobile-menu-open .site-header .main-navigation .primary-menu > .current-menu-item > a, .mobile-menu-open .site-header .main-navigation .primary-menu > .current-menu-parent > a, .mobile-menu-open .site-header .main-navigation .primary-menu > .current-menu-ancestor > a { color: var(--color-gold) !important; }
  .primary-menu .menu-item-has-children > a { justify-content: flex-start; gap: 0.9rem; }
  .primary-menu .menu-item-has-children > a::before { width: 0.55rem; height: 0.55rem; border-color: var(--color-gold); }
  .primary-menu .sub-menu { position: static; display: flex; min-width: 0; flex-wrap: wrap; gap: 0.35rem 1.35rem; margin: -0.1rem 0 0.8rem; padding: 0 0 0.25rem; transform: none; border: 0; background: transparent; box-shadow: none; opacity: 1; visibility: visible; pointer-events: auto; }
  .primary-menu .sub-menu li { transform: translateY(0.7rem); opacity: 0; transition: transform 400ms ease, opacity 400ms ease; }
  .main-navigation.toggled .primary-menu .sub-menu li { transform: translateY(0); opacity: 1; }
  .main-navigation.toggled .primary-menu .sub-menu li:nth-child(1) { transition-delay: 410ms; }
  .main-navigation.toggled .primary-menu .sub-menu li:nth-child(2) { transition-delay: 470ms; }
  .main-navigation.toggled .primary-menu .sub-menu li:nth-child(3) { transition-delay: 530ms; }
  .mobile-menu-open .site-header .main-navigation .primary-menu .sub-menu a { padding: 0.35rem 0; color: rgb(255 249 232 / 68%) !important; background: transparent !important; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.11em; text-shadow: none !important; text-transform: uppercase; }
  .mobile-menu-open .site-header .main-navigation .primary-menu .sub-menu a:hover, .mobile-menu-open .site-header .main-navigation .primary-menu .sub-menu .current-menu-item > a { color: var(--color-gold) !important; background: transparent !important; }
  .mobile-menu-details { position: fixed; z-index: 3; right: max(2rem, 8vw); bottom: max(1.5rem, 4vw); left: max(2rem, 8vw); display: flex; max-width: 42rem; align-items: flex-end; justify-content: space-between; gap: 2rem; margin: auto; transform: translateY(1rem); color: rgb(255 249 232 / 52%); opacity: 0; visibility: hidden; transition: transform 480ms ease 540ms, opacity 400ms ease 540ms, visibility 400ms ease; }
  .main-navigation.toggled .mobile-menu-details { transform: translateY(0); opacity: 1; visibility: visible; }
  .mobile-menu-details p { max-width: 18rem; margin: 0; font-family: Georgia, serif; font-size: 0.9rem; line-height: 1.5; }
  .mobile-menu-details div { display: flex; flex-direction: column; align-items: flex-end; }
  .mobile-menu-details a { color: var(--color-gold); font-size: 0.67rem; font-weight: 700; letter-spacing: 0.07em; text-decoration: none; }
  .mobile-menu-open .site-header { border-top-color: var(--color-gold) !important; border-bottom-color: rgb(213 161 65 / 18%) !important; background: #171210 !important; box-shadow: none !important; backdrop-filter: none !important; -webkit-backdrop-filter: none !important; }
  .mobile-menu-open .site-header .custom-logo, .mobile-menu-open .site-header .brand-logo img { filter: drop-shadow(0 0.35rem 0.7rem rgb(0 0 0 / 45%)); }
  .header-actions { order: 2; }
  .header-phone { display: none; }
  .header-cta { min-height: 2.55rem; padding: 0.55rem 0.7rem 0.55rem 0.8rem; font-size: 0.65rem; }
  .home .site-header:not(.is-scrolled) .menu-toggle { border-color: var(--color-gold); color: var(--color-white); }
  .home .site-header:not(.is-scrolled) .main-navigation.toggled .primary-menu a { color: var(--color-ink); text-shadow: none; }
  .home .site-header:not(.is-scrolled) .main-navigation.toggled .primary-menu .current-menu-item > a { color: var(--color-burgundy); }
  .page:not(.home) .site-header:not(.is-scrolled) .menu-toggle { border-color: var(--color-gold); color: var(--color-white); }
  .page:not(.home) .site-header:not(.is-scrolled) .main-navigation.toggled .primary-menu a { color: var(--color-ink); text-shadow: none; }
  .page:not(.home) .site-header:not(.is-scrolled) .main-navigation.toggled .primary-menu .current-menu-item > a { color: var(--color-burgundy); }
  .post-grid { grid-template-columns: 1fr; }
  .site-description { display: none; }
  .section-pad { padding-block: 3.25rem; }
  .home-hero { min-height: clamp(46rem, 100svh, 60rem); background-position: center 54%; }
  .home-hero .hero-inner { padding: 6.5rem 0 3.5rem; transform: translateY(-1.25rem); }
  .home-hero .eyebrow { font-size: 0.62rem; }
  .page-banner { min-height: 420px; }
  .page-banner-inner { padding-top: 8rem; padding-bottom: 3rem; }
  .page-breadcrumbs { position: static; justify-content: flex-start; max-width: none; margin-bottom: 1.5rem; text-align: left; }
  .gallery-intro-grid { grid-template-columns: 1fr; gap: 1.5rem; }
  .gallery-editor-content .wp-block-gallery { grid-auto-rows: 220px; grid-template-columns: 1fr 1fr; }
  .gallery-editor-content .wp-block-gallery.has-nested-images figure.wp-block-image:nth-child(7n + 3) { grid-row: auto; }
  .gallery-item-wide { grid-column: span 2; }
  .gallery-closing-inner { align-items: flex-start; flex-direction: column; }
  .gallery-lightbox { grid-template-columns: 3rem minmax(0, 1fr) 3rem; padding: 1rem; }
  .contact-reference-layout { grid-template-columns: 1fr; gap: 3rem; }
  .contact-reference-section::before { display: none; }
  .contact-reference-details { gap: 1.75rem; }
  .contact-reference-form .form-row > p { grid-template-columns: 1fr; gap: 0; }
  .contact-full-map { height: auto; min-height: 390px; aspect-ratio: 4 / 3; }
  .about-history-layout { grid-template-columns: 1fr; gap: 3rem; }
  .inn-flex-layout { grid-template-columns: 1fr; gap: 3rem; }
  .inn-flex-reverse .inn-flex-visual { order: 0; }
  .inn-flex-visual { padding-left: .65rem; }
  .inn-flex-visual img { height: min(520px, 80vw); }
  .inn-flex-visual figcaption { right: -.15rem; }
  .inn-flex-copy h2 { max-width: 14ch; }
  .inn-page-cta > div { grid-template-columns: 1fr; }
  .inn-page-cta > div > div:last-child { align-items: flex-start; }
  .about-history-section::before { display: none; }
  .about-history-visual { padding-left: 0.6rem; }
  .about-history-image img { height: min(650px, 115vw); }
  .about-history-visual figcaption { right: -0.25rem; }
  .about-service-layout { grid-template-columns: 1fr; gap: 3rem; }
	.about-medical-layout { grid-template-columns: 1fr; gap: 3rem; }
	.about-medical-visual { padding-left: 0.65rem; }
	.about-medical-image img { height: min(480px, 68vw); }
	.about-medical-visual figcaption { right: -0.15rem; }
	.about-medical-copy h2 { max-width: 14ch; }
  .about-service-section::before { inset: 0.65rem; }
  .about-service-visual { padding-left: 0.6rem; }
  .about-service-visual img { height: min(500px, 90vw); }
  .about-service-visual figcaption { right: -0.25rem; }
  .about-charm-section { background: #fffdf8; }
  .about-charm-layout { grid-template-columns: 1fr; gap: 3rem; }
  .about-charm-visual { padding-right: 0.6rem; }
  .about-charm-image img { height: min(520px, 95vw); }
  .about-charm-visual figcaption { left: -0.25rem; }
  .about-mission-section { background: #fffdf8; }
  .about-mission-layout { grid-template-columns: 1fr; gap: 3rem; }
  .about-mission-visual { padding-right: 0.6rem; }
  .about-mission-image img { height: min(570px, 110vw); }
  .about-mission-mark { right: -0.2rem; }
  .activities-discover::before { display: none; }
  .activities-discover-heading { grid-template-columns: 1fr; gap: 1.25rem; }
  .activities-discover-heading h2 { max-width: 13ch; }
  .activities-category-grid { grid-template-columns: 1fr; gap: 2.5rem; }
  .events-season-grid { grid-template-columns: 1fr 1fr; }
  .events-season-card { min-height: 390px; }
  .policies-intro { grid-template-columns: 1fr; gap: 1.75rem; }
  .legal-intro { grid-template-columns: 1fr; gap: 1.75rem; }
  .legal-layout { grid-template-columns: 1fr; }
  .legal-navigation { position: relative; top: auto; }
  .legal-navigation ol { display: grid; grid-template-columns: 1fr 1fr; column-gap: 1.5rem; }
  .legal-contact-panel { grid-template-columns: 1fr; }
  .activity-category-card figure { aspect-ratio: 4 / 3; }
  .activity-category-copy { padding-top: 1.1rem; }
  .activity-feature-layout { grid-template-columns: 1fr; gap: 3.5rem; }
  .activity-feature-visual { padding-left: 0.65rem; }
  .activity-feature-image img { height: min(520px, 75vw); }
  .activity-feature-visual figcaption { right: -0.2rem; }
  .activity-feature-copy h2 { max-width: none; }
  .restaurants-intro-notes { grid-template-columns: 1fr; }
  .restaurants-intro-notes span { border-right: 0; border-bottom: 1px solid rgb(112 27 28 / 13%); }
  .restaurants-intro-notes span:last-child { border-bottom: 0; }
  .activities-closing { min-height: 650px; background-position: 62% center; }
  .activities-closing::before { inset: 0.65rem; }
  .activities-closing-inner { grid-template-columns: 1fr; align-items: start; gap: 2.5rem; }
  .activities-closing-copy h2 { max-width: 9ch; }
  .activities-closing-actions { min-width: 0; align-items: flex-start; }
  .activities-closing-actions .button { width: min(100%, 280px); }
  .activities-closing-link { width: min(100%, 280px); }
  .home-hero h1 { font-size: clamp(2.65rem, 12vw, 4.25rem); }
  .hero-actions { flex-direction: column; gap: 1.15rem; }
  .intro-grid { grid-template-columns: 1fr; gap: 2rem; }
  .section-kicker { display: none; }
  .home-intro { background: var(--color-white); }
  .home-intro .section-kicker { display: flex; }
  .intro-story-grid { grid-template-columns: 1fr; margin-top: 2.25rem; }
  .intro-columns { grid-template-columns: 1fr; gap: 0; }
  .intro-visual img { min-height: 300px; }
  .intro-visual figcaption { right: -0.25rem; }
  .section-heading { display: block; margin-bottom: 2.5rem; }
  .section-heading > p { margin-top: 1rem; }
  .room-card { flex-basis: 100%; }
  .room-slider-footer { align-items: flex-start; flex-direction: column; }
  .award-slide { flex-basis: calc((100% - 1rem) / 2); }
  .amenities-layout { grid-template-columns: 1fr; }
  .amenities-section { background: #f5f8f6; }
  .amenities-image { padding-left: 0.75rem; }
  .amenities-image img { min-height: 400px; aspect-ratio: 4 / 3; }
  .amenities-image span { right: -0.25rem; }
  .amenity-list { grid-template-columns: 1fr; }
  .amenities-actions { align-items: flex-start; flex-direction: column; }
  .stay-highlights-grid { grid-template-columns: 1fr; }
  .stay-highlights-grid article, .stay-highlights-grid article:first-child, .stay-highlights-grid article:last-child { min-height: 0; padding: 1.75rem 0; border-right: 0; border-bottom: 1px solid rgb(213 161 65 / 25%); }
  .stay-highlights-grid article:last-child { border-bottom: 0; }
  .stay-highlights-grid h3 { margin-top: 1.25rem; }
  .review-grid { grid-template-columns: 1fr; }
  .contact-heading, .contact-layout { grid-template-columns: 1fr; }
  .contact-heading { gap: 1.25rem; }
  .contact-card, .contact-card:nth-child(2) { min-height: 240px; }
  .contact-section::after { inset: 0.65rem; }
  .footer-contact-grid { grid-template-columns: 1fr; }
  .site-footer::before { display: none; }
  .footer-top { grid-template-columns: 1fr; gap: 2.5rem; }
  .footer-brand { align-items: center; }
  .footer-invitation { padding-left: 0; border-left: 0; }
  .footer-social-row { align-items: flex-start; flex-direction: column; gap: 1rem; }
  .footer-contact-grid a, .footer-contact-grid a:first-child { min-height: 5.25rem; padding-inline: 0; border-right: 0; border-bottom: 1px solid rgb(255 249 232 / 16%); }
  .footer-contact-grid a:last-child { border-bottom: 0; }
  .footer-bottom { flex-direction: column; gap: 1rem; text-align: center; }
  .footer-bottom p { text-align: center; }
}

@media (min-width: 801px) and (max-width: 1120px) {
  .header-inner { grid-template-columns: auto 1fr auto; }
  .site-branding > div, .header-phone { display: none; }
  .primary-menu { gap: 1rem; }
  .primary-menu a { font-size: 0.87rem; }
  .header-cta { padding-inline: 0.85rem; }
  .activities-category-copy { grid-template-columns: auto 1fr; }
  .events-season-grid { grid-template-columns: 1fr; }
  .events-season-card { min-height: 360px; }
  .policies-grid { grid-template-columns: 1fr; }
  .policy-card, .policies-note { min-height: 0; }
  .legal-navigation ol { grid-template-columns: 1fr; }
  .legal-card { grid-template-columns: 2.25rem minmax(0, 1fr); padding-inline: 1.25rem; }
  .activity-category-arrow { display: none; }
}

@media (max-width: 480px) {
  .header-inner { min-height: 5.15rem; gap: 0.5rem; }
  .custom-logo, .brand-logo img { max-height: 3.8rem; }
  .menu-toggle { min-width: 5.05rem; min-height: 2.75rem; gap: 0.5rem; padding: 0.48rem 0.62rem 0.48rem 0.78rem; font-size: 0.7rem; letter-spacing: 0.06em; }
  .menu-toggle-icon { width: 0.95rem; }
  .header-cta { min-height: 2.75rem; gap: 0.45rem; padding: 0.52rem 0.65rem 0.52rem 0.72rem; border-radius: 0.3rem; font-size: 0.58rem; letter-spacing: 0.055em; }
  .header-cta::after { font-size: 0.92rem; }
  .home-hero { min-height: clamp(43rem, 100svh, 56rem); background-position: 48% 52%; }
  .home-hero .hero-inner { width: min(calc(100% - 2.5rem), 900px); padding: 6rem 0 2.75rem; transform: translateY(-1.5rem); }
  .home-hero .eyebrow { margin-bottom: 1rem; font-size: 0.56rem; line-height: 1.55; }
  .home-hero h1 { font-size: clamp(2.45rem, 11vw, 3.35rem); line-height: 0.98; }
  .home-hero > .hero-inner > p:not(.eyebrow) { margin-top: 1.35rem; font-size: 1rem; line-height: 1.65; }
  .hero-actions { gap: 0.85rem; margin-top: 1.65rem; }
  .hero-actions .button { padding: 0.72rem 1.05rem; }
  .award-slide { flex-basis: 100%; }
  .gallery-editor-content .wp-block-gallery { grid-auto-rows: 260px; grid-template-columns: 1fr; }
  .gallery-editor-content .wp-block-gallery.has-nested-images figure.wp-block-image:nth-child(7n + 1), .gallery-editor-content .wp-block-gallery.has-nested-images figure.wp-block-image:nth-child(7n + 5) { grid-column: auto; }
  .gallery-item-wide { grid-column: auto; }
  .gallery-item-tall { grid-row: auto; }
  .gallery-lightbox { grid-template-columns: 2.5rem minmax(0, 1fr) 2.5rem; padding-inline: 0.5rem; }
  .gallery-lightbox-prev, .gallery-lightbox-next { width: 2.25rem; height: 2.25rem; }
  .contact-reference-details { grid-template-columns: 1fr; }
  .contact-reference-details > a:last-child { grid-column: auto; }
  .contact-reference-form { padding: 1.5rem; }
  .about-service-values { grid-template-columns: 1fr; }
  .about-service-values div, .about-service-values div:first-child, .about-service-values div:last-child { padding: 0.9rem 0; border-right: 0; border-bottom: 1px solid rgb(213 161 65 / 22%); }
  .about-service-values div:last-child { border-bottom: 0; }
  .about-mission-principles { grid-template-columns: 1fr; }
  .about-mission-principles div, .about-mission-principles div:first-child, .about-mission-principles div:last-child { padding: 0.9rem 0; border-right: 0; border-bottom: 1px solid rgb(112 27 28 / 12%); }
  .about-mission-principles div:last-child { border-bottom: 0; }
}
