:root {
  --spruce: #6b1306;
  --ink: #2e1412;
  --clapboard: #fbf3e6;
  --fog: #ebd9ba;
  --birch: #6e5a50;
  --lamplight: #ebbe69;
  --lamplight-hi: #f3d394;
  --oxblood: #3a0b04;
  --rim-blue: #3b6bcf;
  --display: 'Young Serif', Georgia, 'Times New Roman', serif;
  --body: 'Albert Sans', 'Helvetica Neue', Arial, sans-serif;
  --wrap: min(1240px, 100% - 2.5rem);
  --col: min(860px, 100% - 2.5rem);
  --gap: clamp(4.5rem, 10vw, 8rem);
}
*,
*::before,
*::after {
  box-sizing: border-box;
}
:root {
  padding-top: env(safe-area-inset-top, 0px);
  padding-bottom: env(safe-area-inset-bottom, 0px);
}
html {
  scroll-behavior: smooth;
  scroll-padding-top: 88px;
}
body {
  margin: 0;
  background: var(--clapboard);
  color: var(--ink);
  font: 400 1.0625rem/1.65 var(--body);
  -webkit-font-smoothing: antialiased;
  padding-bottom: 64px;
}
img {
  max-width: 100%;
  height: auto;
  display: block;
}
a {
  color: inherit;
}
h1,
h2,
h3 {
  font-family: var(--display);
  font-weight: 400;
  line-height: 1.05;
  margin: 0;
  letter-spacing: -0.01em;
}
p {
  margin: 0 0 1em;
  max-width: 62ch;
}
.skip {
  position: absolute;
  left: -999px;
  top: 0;
  background: var(--lamplight);
  color: var(--ink);
  padding: 0.75rem 1rem;
  z-index: 100;
}
.skip:focus {
  left: 1rem;
}
:focus-visible {
  outline: 3px solid var(--lamplight);
  outline-offset: 3px;
}
.wrap {
  width: var(--wrap);
  margin-inline: auto;
}
.col {
  width: var(--col);
  margin-inline: auto;
}

/* Buttons */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  font: 600 1rem/1 var(--body);
  text-decoration: none;
  padding: 1rem 1.6rem;
  border-radius: 2px;
  transition:
    background 0.2s,
    transform 0.2s,
    box-shadow 0.2s;
}
.btn--book {
  background: var(--spruce);
  color: var(--lamplight-hi);
  box-shadow: inset 0 -3px 0 rgba(0, 0, 0, 0.25);
}
.btn--book:hover {
  background: #86200f;
  transform: translateY(-1px);
}
.shuttle .btn--book,
.family .btn--book,
.book-bar .btn--book {
  background: var(--lamplight);
  color: var(--oxblood);
  box-shadow: inset 0 -3px 0 rgba(0, 0, 0, 0.15);
}
.shuttle .btn--book:hover,
.family .btn--book:hover,
.book-bar .btn--book:hover {
  background: var(--lamplight-hi);
}
.btn--ghost {
  border: 1.5px solid currentColor;
  padding: 0.9rem 1.4rem;
}
.btn--ghost:hover {
  background: rgba(255, 255, 255, 0.08);
}

/* Nav (top sticky) */
.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: var(--clapboard);
  transition:
    box-shadow 0.25s,
    background 0.25s;
}
.site-header.is-scrolled {
  box-shadow: 0 1px 0 var(--fog);
  background: rgba(251, 243, 230, 0.97);
}
.site-header__inner {
  display: flex;
  align-items: center;
  gap: 1rem;
  min-height: 72px;
}
.brand {
  display: block;
  align-self: flex-start;
  margin-top: 6px;
  position: relative;
  z-index: 2;
  filter: drop-shadow(0 6px 10px rgba(62, 18, 16, 0.25));
}
.brand__logo,
.site-footer__logo {
  display: block;
  background: url('data:image/webp;base64,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')
    center/contain no-repeat;
}
.brand__logo {
  height: 66px;
  width: 93px;
}
@media (min-width: 768px) {
  .brand__logo {
    height: 92px;
    width: 130px;
  }
}
.site-header__inner {
  min-height: 76px;
}
.site-footer__logo {
  height: 90px;
  width: 127px;
  margin-bottom: 1rem;
}
.brand__name {
  font-family: var(--display);
  font-size: 1.45rem;
  color: var(--spruce);
}
.brand__since {
  font-size: 0.8rem;
  color: var(--birch);
  margin-top: 0.25rem;
}
.menu {
  display: none;
  list-style: none;
  margin: 0 0 0 auto;
  padding: 0;
  gap: 1.75rem;
}
.menu-item a {
  text-decoration: none;
  font-weight: 500;
  font-size: 0.98rem;
  padding: 0.4rem 0;
  border-bottom: 2px solid transparent;
}
.menu-item a:hover {
  border-color: var(--lamplight);
}
.site-header__actions {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.site-header__phone {
  font-weight: 600;
  text-decoration: none;
  color: var(--spruce);
  font-size: 0.95rem;
}
.site-header .btn--book {
  padding: 0.75rem 1.1rem;
}
@media (min-width: 1024px) {
  .site-header nav {
    margin-left: auto;
  }
  .menu {
    display: flex;
  }
  .site-header__actions {
    margin-left: 2rem;
  }
}
.site-header__phone,
.site-header .btn--book {
  white-space: nowrap;
}
@media (max-width: 480px) {
  .site-header__phone {
    font-size: 0.85rem;
  }
  .site-header .btn--book {
    padding: 0.65rem 0.8rem;
    font-size: 0.9rem;
  }
  .site-header__actions {
    gap: 0.6rem;
  }
}
@media (max-width: 420px) {
  .site-header__phone span {
    display: none;
  }
}

/* Hero: editorial open */
.hero {
  padding-top: clamp(2.5rem, 7vw, 5.5rem);
}
.hero__grid {
  display: grid;
  gap: 2rem;
}
.hero__title {
  font-size: clamp(2.75rem, 9vw, 6.5rem);
  color: var(--spruce);
}
.hero__line {
  display: block;
}
.hero__aside {
  max-width: 36rem;
  padding-bottom: clamp(2.5rem, 6vw, 4rem);
}
.hero__aside p {
  color: var(--birch);
  font-size: 1.1rem;
}
.hero__price {
  font-family: var(--display);
  font-size: 1.35rem;
  color: var(--ink);
  margin: 1.25rem 0 1.4rem;
}
.hero__ctas {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
}
.hero__ctas a:not(.btn) {
  font-weight: 600;
  color: var(--spruce);
}
.hero__plate {
  border-left: 6px solid var(--rim-blue);
  background: var(--spruce);
  color: var(--clapboard);
  padding: 1.4rem 1.6rem;
  max-width: 30rem;
}
.hero__plate strong {
  font-family: var(--display);
  font-weight: 400;
  font-size: 1.4rem;
  display: block;
  margin-bottom: 0.3rem;
}
.hero__plate span {
  color: #ebd3b5;
  font-size: 0.95rem;
}

/* Night photo band */
.hero__band {
  margin: 0;
}
.hero__photo {
  width: 100%;
  height: clamp(320px, 62vw, 760px);
  aspect-ratio: auto;
  object-fit: cover;
  object-position: center 60%;
  background: var(--oxblood);
}
.hero__band figcaption {
  font-size: 0.9rem;
  color: var(--birch);
  padding-top: 0.75rem;
}

/* Entrance motion: one subtle fade */
@media (prefers-reduced-motion: no-preference) {
  .hero__title {
    animation: fade 1.1s ease-out both;
  }
  @keyframes fade {
    from {
      opacity: 0;
    }
    to {
      opacity: 1;
    }
  }
}

/* Under one roof: floors */
.roof {
  padding-top: var(--gap);
}
.roof__intro {
  display: grid;
  gap: 1rem;
  margin-bottom: 3rem;
}
.roof__intro h2 {
  font-size: clamp(2rem, 4.5vw, 3.4rem);
  color: var(--spruce);
  max-width: 16ch;
}
.roof__intro p {
  color: var(--birch);
}
.floor {
  display: grid;
  gap: 1.5rem;
  border-top: 2px solid var(--spruce);
  padding: 2.25rem 0 var(--gap);
}
.floor__name {
  margin-bottom: 0.25rem;
  font-family: var(--display);
  font-size: 1.15rem;
  color: var(--spruce);
  display: flex;
  gap: 0.6rem;
  align-items: baseline;
}
.floor__name small {
  font-family: var(--body);
  font-size: 0.9rem;
  color: var(--birch);
}
.floor h3 {
  font-size: clamp(1.7rem, 3.4vw, 2.6rem);
  margin-bottom: 1rem;
}

/* Upstairs: room teaser */
.rooms {
  list-style: none;
  margin: 2.25rem 0 0;
  padding: 0;
  display: grid;
  gap: 1.75rem;
}
.room {
  display: flex;
  flex-direction: column;
}
.room__img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  background: var(--fog);
}
.room__name {
  font-family: var(--display);
  font-size: 1.35rem;
  margin: 1rem 0 0.3rem;
}
.room__desc {
  color: var(--birch);
  font-size: 0.97rem;
  margin: 0;
}
.rooms__more {
  margin-top: 1.75rem;
  font-weight: 600;
}
.rooms__more a {
  color: var(--spruce);
}
@media (min-width: 600px) {
  .rooms {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 1024px) {
  .rooms {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1.25rem;
  }
  .room:nth-child(even) {
    margin-top: 2.5rem;
  }
}
.family {
  margin-top: 3rem;
  display: grid;
  gap: 0;
  background: var(--spruce);
  color: var(--clapboard);
}
.family__img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  background: var(--birch);
}
.family__body {
  padding: 2rem;
}
.family__body h4 {
  font-family: var(--display);
  font-weight: 400;
  font-size: 1.8rem;
  margin: 0 0 0.75rem;
  line-height: 1.1;
}
.family__body p {
  color: #ebd3b5;
}
@media (min-width: 768px) {
  .family {
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
  }
  .family__img {
    height: 100%;
    aspect-ratio: auto;
  }
  .family__body {
    padding: 2.75rem;
  }
}

/* Main floor */
.mainfloor {
  display: grid;
  gap: 1.75rem;
}
.mainfloor__pics {
  display: grid;
  gap: 1rem;
}
.mainfloor__img {
  width: 100%;
  aspect-ratio: 3/2;
  object-fit: cover;
  background: var(--fog);
}
@media (min-width: 768px) {
  .mainfloor__pics {
    grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
    align-items: end;
  }
  .mainfloor__img {
    aspect-ratio: 4/3;
  }
  .mainfloor__img--alt {
    aspect-ratio: 3/4;
  }
}
.mainfloor__list {
  list-style: none;
  padding: 0;
  margin: 1.5rem 0 0;
  display: grid;
  gap: 1.25rem;
}
.mainfloor__list li {
  padding-left: 1.25rem;
  border-left: 3px solid var(--lamplight);
}
.mainfloor__list strong {
  display: block;
  font-weight: 600;
}

/* Downstairs: pub */
.pub {
  background: var(--oxblood);
  color: var(--clapboard);
  padding: 0 0 2.25rem;
  display: grid;
  gap: 2rem;
}
.pub > div,
.pub > dl {
  padding: 0 2.25rem;
}
.pub__photo {
  width: 100%;
  aspect-ratio: 16/9;
  object-fit: cover;
  background: #2a0802;
}
.pub__sign {
  width: min(220px, 60%);
  margin: 0 2.25rem;
  transform: rotate(-2deg);
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.4);
  background: #2a0802;
}
.pub h3 {
  color: var(--lamplight);
}
.pub p {
  color: #ead9c4;
}
.pub__facts {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem;
  margin: 0;
}
.pub__facts div {
  border-top: 1px solid #6a2a24;
  padding-top: 0.75rem;
}
.pub__facts dt {
  font-family: var(--display);
  font-size: 2.4rem;
  color: var(--clapboard);
  line-height: 1;
}
.pub__facts dd {
  margin: 0.35rem 0 0;
  color: #d9c2a6;
  font-size: 0.95rem;
}
.pub a {
  color: var(--lamplight);
}

/* Gallery strip */
.gallery {
  padding-bottom: var(--gap);
}
.gallery__track {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: clamp(240px, 30vw, 400px);
  gap: 1rem;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding: 0 max(1.25rem, calc((100vw - 1240px) / 2)) 1rem;
  scroll-padding-inline: max(1.25rem, calc((100vw - 1240px) / 2));
}
.gallery__track figure {
  margin: 0;
  scroll-snap-align: start;
}
.gallery__track img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  background: var(--fog);
}
.gallery__track figcaption {
  font-size: 0.9rem;
  color: var(--birch);
  margin-top: 0.5rem;
}
@media (max-width: 600px) {
  .gallery__track {
    grid-auto-columns: 78%;
  }
}

/* Shuttle statement */
.shuttle {
  background: var(--spruce);
  color: var(--clapboard);
  padding: var(--gap) 0;
}
.shuttle__grid {
  display: grid;
  gap: 2rem;
}
.shuttle__title {
  font-size: clamp(2.6rem, 7vw, 5.8rem);
  max-width: 13ch;
}
.shuttle__body p {
  color: #ebd3b5;
  font-size: 1.1rem;
}
.shuttle__body strong {
  color: var(--clapboard);
}

/* Voices */
.voices {
  padding: var(--gap) 0;
}
.voices h2 {
  font-size: clamp(1.9rem, 4vw, 3rem);
  color: var(--spruce);
  margin-bottom: 2.5rem;
  max-width: 20ch;
}
.voices__grid {
  display: grid;
  gap: 2.75rem;
}
.voice:nth-child(even) {
  padding-left: clamp(0rem, 8vw, 6rem);
}
.voice {
  margin: 0;
}
.voice blockquote {
  margin: 0 0 0.75rem;
  font-family: var(--display);
  font-size: clamp(1.5rem, 3vw, 2rem);
  line-height: 1.3;
}
.voice figcaption {
  color: var(--birch);
  font-size: 0.95rem;
}

/* Location */
.location {
  display: grid;
  gap: 2rem;
  padding-bottom: var(--gap);
}
.location h2 {
  font-size: clamp(1.9rem, 4vw, 3rem);
  color: var(--spruce);
  margin-bottom: 1rem;
}
.location address {
  font-style: normal;
  font-size: 1.15rem;
  margin-bottom: 1.25rem;
}
.location__map {
  width: 100%;
  min-height: 380px;
  border: 0;
  background: var(--fog);
}
.location__facts {
  list-style: none;
  padding: 0;
  margin: 0 0 1.5rem;
  display: grid;
  gap: 0.5rem;
}
.location__facts li {
  color: var(--birch);
}

/* Final CTA */
.cta {
  border-top: 2px solid var(--spruce);
  padding: var(--gap) 0;
  text-align: left;
}
.cta h2 {
  font-size: clamp(2.4rem, 6vw, 4.8rem);
  color: var(--spruce);
  max-width: 14ch;
  margin-bottom: 1.75rem;
}
.cta__row {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 1.5rem;
  align-items: center;
}
.cta__row a:not(.btn) {
  font-weight: 600;
  font-size: 1.1rem;
  color: var(--spruce);
}

/* Footer */
.site-footer {
  background: var(--oxblood);
  color: #e2cfb6;
  padding: 3.5rem 0 2.5rem;
  font-size: 0.95rem;
}
.site-footer__grid {
  display: grid;
  gap: 2rem;
}
.site-footer .brand__name {
  color: var(--clapboard);
}
.site-footer a {
  color: var(--lamplight-hi);
}
.site-footer ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.4rem;
}
.site-footer__legal {
  margin-top: 2.5rem;
  padding-top: 1.25rem;
  border-top: 1px solid #6a2a24;
  font-size: 0.85rem;
}
@media (min-width: 768px) {
  .site-footer__grid {
    grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr);
  }
}

/* Bottom booking bar (fixed mechanic) */
.book-bar {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 60;
  background: var(--spruce);
  color: var(--clapboard);
  padding: 0.6rem 0 calc(0.6rem + env(safe-area-inset-bottom, 0px));
}
.book-bar__inner {
  display: flex;
  align-items: center;
  gap: 1rem;
}
.book-bar__text {
  font-size: 0.95rem;
  flex: 1;
}
.book-bar__text strong {
  font-family: var(--display);
  font-weight: 400;
  font-size: 1.1rem;
}
.book-bar__phone {
  color: var(--clapboard);
  font-weight: 600;
  text-decoration: none;
  display: none;
}
.book-bar .btn {
  padding: 0.75rem 1.2rem;
}
@media (min-width: 768px) {
  .book-bar__phone {
    display: inline;
  }
}

/* Image fallback */
.img-missing {
  visibility: hidden;
}

@media (prefers-reduced-motion: reduce) {
  * {
    transition: none !important;
    animation: none !important;
    scroll-behavior: auto !important;
  }
}

/* ===== Shared: mobile menu ===== */
.menu-toggle {
  display: inline-flex;
  align-items: center;
  background: none;
  border: 1.5px solid var(--spruce);
  color: var(--spruce);
  font: 600 0.9rem/1 var(--body);
  padding: 0.65rem 0.8rem;
  border-radius: 2px;
  cursor: pointer;
}
.menu-item--call {
  display: none;
}
.menu-item a[aria-current='page'] {
  border-color: var(--spruce);
}
@media (min-width: 1024px) {
  .menu-toggle {
    display: none;
  }
}
@media (max-width: 1199px) {
  .site-header__phone span {
    display: none;
  }
}
@media (max-width: 600px) {
  .site-header__phone {
    display: none;
  }
}
@media (max-width: 1023px) {
  .site-nav.is-open .menu {
    display: flex;
    flex-direction: column;
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    background: var(--clapboard);
    padding: 0.5rem 1.25rem 1.25rem;
    border-bottom: 2px solid var(--spruce);
    box-shadow: 0 12px 24px rgba(58, 11, 4, 0.12);
    gap: 0;
  }
  .site-nav.is-open .menu-item a {
    display: block;
    padding: 0.9rem 0;
    border-bottom: 1px solid var(--fog);
    font-size: 1.1rem;
  }
  .site-nav.is-open .menu-item--call {
    display: block;
  }
  .site-nav.is-open .menu-item--call a {
    color: var(--spruce);
    font-weight: 600;
    border-bottom: 0;
  }
}
.room__name a {
  text-decoration: none;
}
.room__name a:hover {
  text-decoration: underline;
}
.family__more {
  display: inline-block;
  margin-left: 1rem;
  color: var(--lamplight-hi);
  font-weight: 600;
}

/* ===== Inner page hero ===== */
.page-hero {
  padding: clamp(2.5rem, 7vw, 5rem) 0 clamp(2rem, 5vw, 3.5rem);
}
.page-hero__eyebrow {
  font-family: var(--display);
  color: var(--spruce);
  font-size: 1.1rem;
  margin-bottom: 0.75rem;
}
.page-hero__title {
  font-size: clamp(2.6rem, 8vw, 5.75rem);
  color: var(--spruce);
  margin-bottom: 1.25rem;
}
@media (prefers-reduced-motion: no-preference) {
  .page-hero__title {
    animation: fade 1.1s ease-out both;
  }
}
.page-hero__lede {
  font-size: 1.15rem;
  color: var(--birch);
  max-width: 40rem;
  margin-bottom: 1.5rem;
}
.page-hero .hero__ctas a:not(.btn) {
  font-weight: 600;
  color: var(--spruce);
}

/* ===== Rooms ===== */
.jump {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  padding: clamp(2.5rem, 6vw, 4rem) 0 1rem;
}
.jump a {
  font-weight: 600;
  font-size: 0.95rem;
  color: var(--spruce);
  text-decoration: none;
  border: 1.5px solid var(--fog);
  padding: 0.55rem 0.9rem;
  border-radius: 2px;
}
.jump a:hover {
  border-color: var(--spruce);
}
.room-types {
  display: grid;
  gap: clamp(4rem, 9vw, 6.5rem);
  padding: 2rem 0 var(--gap);
}
.room-type {
  display: grid;
  gap: 1.75rem;
  scroll-margin-top: 110px;
}
.room-type__pics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.6rem;
}
.room-type__img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  background: var(--fog);
}
.room-type__img--lead {
  grid-column: 1/-1;
  aspect-ratio: 16/10;
}
.room-type__body h2 {
  font-size: clamp(1.9rem, 4vw, 2.8rem);
  color: var(--spruce);
  margin-bottom: 0.75rem;
}
.features {
  list-style: none;
  padding: 0;
  margin: 0 0 1.75rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.features li {
  font-size: 0.9rem;
  font-weight: 500;
  background: #f4e6cb;
  color: var(--ink);
  padding: 0.4rem 0.7rem;
  border-radius: 2px;
}
.know {
  border-top: 2px solid var(--spruce);
  padding: 2.5rem 0 var(--gap);
}
.know h2 {
  font-size: clamp(1.8rem, 3.6vw, 2.6rem);
  color: var(--spruce);
  margin-bottom: 1.5rem;
}
.know__list {
  margin: 0;
  display: grid;
  gap: 1.25rem;
}
.know__list div {
  display: grid;
  gap: 0.25rem;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid var(--fog);
}
.know__list dt {
  font-weight: 600;
}
.know__list dd {
  margin: 0;
  color: var(--birch);
}
@media (min-width: 768px) {
  .know__list div {
    grid-template-columns: minmax(0, 1fr) minmax(0, 3fr);
    gap: 1.5rem;
  }
}

/* ===== Pub / events / explore shared blocks ===== */
.split {
  display: grid;
  gap: 2.5rem;
  padding: clamp(3rem, 7vw, 5rem) 0;
}
.split h2,
.feature h2,
.cards h2,
.steps h2,
.board h2,
.seasons h2,
.note h2,
.contact h2 {
  color: var(--spruce);
}
.split h2 {
  font-size: clamp(1.8rem, 3.6vw, 2.6rem);
  margin-bottom: 1.25rem;
}
.hours {
  margin: 0 0 1.25rem;
  display: grid;
  gap: 0.75rem;
}
.hours div {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  border-bottom: 1px solid var(--fog);
  padding-bottom: 0.75rem;
}
.hours dt {
  font-weight: 600;
}
.hours dd {
  margin: 0;
  color: var(--birch);
  text-align: right;
}
.pub__facts--light dt {
  color: var(--spruce);
}
.pub__facts--light div {
  border-top-color: var(--fog);
}
.pub__facts--light dd {
  color: var(--birch);
}
.split a:not(.btn) {
  color: var(--spruce);
  font-weight: 600;
}
.feature {
  display: grid;
  gap: 2rem;
  align-items: center;
  padding: 0 0 clamp(3rem, 7vw, 5rem);
}
.feature__img {
  width: 100%;
  background: var(--fog);
}
.feature__img--sign {
  max-width: 300px;
  transform: rotate(-2deg);
  box-shadow: 0 14px 30px rgba(58, 11, 4, 0.25);
}
.feature h2 {
  font-size: clamp(1.8rem, 3.6vw, 2.6rem);
  margin-bottom: 1rem;
}
@media (min-width: 768px) {
  .feature {
    grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
  }
}
.duo {
  display: grid;
  gap: 1rem;
  padding-bottom: clamp(3rem, 7vw, 5rem);
}
.duo__img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  background: var(--fog);
}
@media (min-width: 768px) {
  .duo {
    grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
    align-items: end;
  }
  .duo__img:last-child {
    aspect-ratio: 4/5;
  }
}
.note {
  background: #f4e6cb;
  padding: 2rem clamp(1.5rem, 4vw, 2.5rem);
  margin-bottom: var(--gap);
  border-left: 6px solid var(--rim-blue);
}
.note h2 {
  font-size: 1.6rem;
  margin-bottom: 0.5rem;
}
.note p {
  margin: 0;
  color: var(--ink);
}
.cards {
  padding: clamp(3rem, 7vw, 5rem) 0;
}
.cards h2,
.steps h2,
.board h2,
.seasons h2 {
  font-size: clamp(1.8rem, 3.6vw, 2.6rem);
  margin-bottom: 1.75rem;
}
.cards__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 1px;
  background: var(--fog);
  border: 1px solid var(--fog);
}
.cards__list li {
  background: var(--clapboard);
  padding: 1.5rem;
}
.cards__list h3 {
  font-size: 1.35rem;
  color: var(--ink);
  margin-bottom: 0.5rem;
}
.cards__list p {
  margin: 0;
  color: var(--birch);
  font-size: 0.97rem;
}
@media (min-width: 640px) {
  .cards__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.steps {
  border-top: 2px solid var(--spruce);
  padding: 2.5rem 0 var(--gap);
}
.steps__list {
  margin: 0 0 2rem;
  padding-left: 1.4rem;
  display: grid;
  gap: 1rem;
}
.steps__list li::marker {
  font-family: var(--display);
  color: var(--spruce);
}
.steps__list strong {
  color: var(--ink);
}
.board {
  padding: clamp(3rem, 7vw, 5rem) 0;
}
.distance-board {
  margin: 0;
  border-top: 2px solid var(--spruce);
}
.distance-board div {
  display: grid;
  gap: 0.25rem;
  padding: 1.1rem 0;
  border-bottom: 1px solid var(--fog);
}
.distance-board dt {
  font-family: var(--display);
  font-size: 1.25rem;
  color: var(--spruce);
}
.distance-board dd {
  margin: 0;
  color: var(--ink);
}
@media (min-width: 768px) {
  .distance-board div {
    grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
    gap: 1.5rem;
    align-items: baseline;
  }
}
.seasons {
  padding-bottom: clamp(3rem, 7vw, 5rem);
}
.seasons__grid {
  display: grid;
  gap: 2rem;
}
.seasons__grid h3 {
  font-size: 1.6rem;
  color: var(--spruce);
  margin-bottom: 0.5rem;
}
.seasons__grid p {
  color: var(--birch);
  margin: 0;
}
@media (min-width: 768px) {
  .seasons__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2.5rem 2rem;
  }
}

/* ===== Contact ===== */
.contact {
  padding-bottom: clamp(3rem, 7vw, 5rem);
}
.contact__cards {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 1rem;
}
.contact__cards li {
  border-top: 2px solid var(--spruce);
  padding-top: 1rem;
}
.contact__cards h2 {
  font-size: 1.15rem;
  margin-bottom: 0.4rem;
}
.contact__cards p {
  margin: 0 0 0.3rem;
  color: var(--birch);
}
.contact__cards a {
  color: var(--spruce);
  font-weight: 600;
}
.contact__big {
  font-family: var(--display);
  font-weight: 400 !important;
  font-size: 1.7rem;
  text-decoration: none;
}
.contact__big--sm {
  font-size: 1.2rem;
  word-break: break-all;
}
@media (min-width: 640px) {
  .contact__cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.75rem;
  }
}
.cta > p {
  color: var(--birch);
  margin-bottom: 1.5rem;
}
.site-footer ul {
  align-content: start;
}

/* ===== Homepage photo hero ===== */
.hero--photo {
  position: relative;
  padding: 0;
  display: grid;
  align-items: end;
  min-height: min(92vh, 900px);
  background: var(--oxblood);
}
.hero__slides {
  position: absolute;
  inset: 0;
  overflow: hidden;
}
.hero__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 62% 45%;
  opacity: 0;
  transition: opacity 1.2s ease;
}
.hero__bg.is-active {
  opacity: 1;
}
.hero__controls {
  position: absolute;
  right: max(1.25rem, calc((100vw - 1240px) / 2));
  bottom: calc(96px + 1rem);
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  background: rgba(58, 11, 4, 0.72);
  padding: 0.45rem 0.6rem;
  border-radius: 3px;
}
.hero__arrow,
.hero__pause {
  background: none;
  border: 0;
  color: var(--clapboard);
  font: 600 1.5rem/1 var(--display);
  cursor: pointer;
  padding: 0.15rem 0.45rem;
}
.hero__pause {
  font: 600 0.8rem/1 var(--body);
  border: 1px solid rgba(251, 243, 230, 0.5);
  border-radius: 2px;
  padding: 0.4rem 0.55rem;
  margin-left: 0.25rem;
}
.hero__dots {
  display: flex;
  gap: 0.4rem;
}
.hero__dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  border: 1px solid var(--clapboard);
  background: transparent;
  padding: 0;
  cursor: pointer;
}
.hero__dot.is-active {
  background: var(--lamplight);
  border-color: var(--lamplight);
}
.hero__panel {
  position: relative;
  z-index: 2;
  width: min(620px, 100% - 2.5rem);
  margin: 0 0 calc(96px + clamp(1rem, 3vw, 2rem))
    max(1.25rem, calc((100vw - 1240px) / 2));
  background: var(--clapboard);
  border-top: 6px solid var(--spruce);
  padding: clamp(1.5rem, 3.5vw, 2.75rem);
}
.hero--photo .hero__title {
  font-size: clamp(2.3rem, 4.6vw, 4rem);
  margin-bottom: 1.25rem;
}
.hero__lede {
  color: var(--birch);
  font-size: 1.05rem;
  margin-bottom: 1.5rem;
}
@media (max-width: 767px) {
  .hero--photo {
    display: block;
    min-height: 0;
    background: var(--clapboard);
  }
  .hero__slides {
    position: relative;
    height: 56vh;
    min-height: 300px;
  }
  .hero__controls {
    top: 1rem;
    bottom: auto;
    right: 1rem;
  }
  .hero__panel {
    width: auto;
    margin: -3.5rem 1rem 0;
    padding: 1.5rem 1.25rem;
  }
}

/* ===== Compact booking bar ===== */
body {
  padding-bottom: 110px;
}
.book-bar {
  left: 50%;
  right: auto;
  bottom: calc(12px + env(safe-area-inset-bottom, 0px));
  transform: translateX(-50%);
  width: max-content;
  max-width: calc(100% - 1rem);
  display: flex;
  align-items: flex-end;
  gap: 0.6rem;
  padding: 0.6rem 0.7rem;
  border-radius: 4px;
  box-shadow: 0 10px 30px rgba(58, 11, 4, 0.35);
  margin: 0;
}
.book-bar__field {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--lamplight-hi);
}
.book-bar__field input {
  font: 500 0.95rem/1 var(--body);
  color: var(--ink);
  background: var(--clapboard);
  border: 0;
  border-radius: 2px;
  padding: 0.55rem 0.5rem;
  min-width: 0;
  width: 9.5rem;
}
.book-bar__field input:focus-visible {
  outline: 3px solid var(--lamplight);
  outline-offset: 1px;
}
.book-bar .btn {
  padding: 0.75rem 1.1rem;
  white-space: nowrap;
}
@media (max-width: 420px) {
  .book-bar {
    gap: 0.4rem;
    padding: 0.5rem;
  }
  .book-bar__field input {
    width: 7.4rem;
    font-size: 0.85rem;
    padding: 0.5rem 0.35rem;
  }
  .book-bar .btn {
    padding: 0.7rem 0.75rem;
    font-size: 0.9rem;
  }
}

/* ===== Wider layout (desktop uses the full 1240px frame) ===== */
:root {
  --col: min(1240px, 100% - 2.5rem);
}
html {
  overflow-x: clip;
}
p {
  max-width: 68ch;
}
@media (min-width: 1024px) {
  .roof__intro {
    grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
    column-gap: 4rem;
    align-items: end;
    margin-bottom: 3.5rem;
  }
  .roof__intro h2 {
    max-width: none;
  }
  .floor__name {
    margin-bottom: 0.5rem;
  }
  .mainfloor {
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    column-gap: 3rem;
    align-items: center;
  }
  .shuttle__grid {
    grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
    column-gap: 4rem;
    align-items: end;
  }
  .shuttle__title {
    max-width: none;
  }
  .voices__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    column-gap: 3rem;
  }
  .voice:nth-child(even) {
    padding-left: 0;
    margin-top: 3rem;
  }
  .location {
    grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
    column-gap: 3rem;
    align-items: stretch;
  }
  .location__map {
    height: 100%;
    min-height: 420px;
  }
  .cta {
    display: grid;
    grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
    align-items: end;
    column-gap: 3rem;
  }
  .cta h2 {
    max-width: none;
    margin-bottom: 0;
  }
}

/* Downstairs: full-width pub band */
#downstairs.floor {
  display: block;
  padding-bottom: 0;
}
.gallery {
  padding-top: clamp(3rem, 6vw, 5rem);
}
#downstairs .floor__name {
  position: static;
  flex-direction: row;
  margin-bottom: 1.5rem;
}
#downstairs .pub {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  padding: 0;
}
#downstairs .pub > div,
#downstairs .pub > dl {
  padding: 0 1.5rem;
}
#downstairs .pub__sign {
  margin: 0 1.5rem 2rem;
}
@media (min-width: 1024px) {
  #downstairs .pub {
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
    grid-template-rows: auto auto 1fr;
    column-gap: 0;
    row-gap: 2rem;
    align-items: start;
  }
  #downstairs .pub__photo {
    grid-column: 1;
    grid-row: 1 / span 3;
    height: 100%;
    min-height: 620px;
    aspect-ratio: auto;
  }
  #downstairs .pub > div,
  #downstairs .pub > dl {
    grid-column: 2;
    padding: 0 max(1.25rem, calc((100vw - 1240px) / 2)) 0
      clamp(2.5rem, 4vw, 4rem);
  }
  #downstairs .pub > div {
    padding-top: clamp(3rem, 5vw, 4.5rem);
  }
  #downstairs .pub h3 {
    font-size: clamp(2.2rem, 3.4vw, 3.2rem);
  }
  #downstairs .pub__sign {
    grid-column: 2;
    margin: 0 0 3rem clamp(2.5rem, 4vw, 4rem);
  }
}

/* Inner pages */
@media (min-width: 1024px) {
  .page-hero__lede {
    max-width: 46rem;
  }
  .room-type {
    grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
    column-gap: 3.5rem;
    align-items: center;
  }
  .room-type--flip {
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  }
  .room-type--flip .room-type__pics {
    order: 2;
  }
  .split {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    column-gap: 4rem;
    align-items: center;
  }
  .cards__list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .seasons__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .contact__cards {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .steps {
    display: grid;
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    column-gap: 4rem;
  }
  .steps .cta__row {
    grid-column: 2;
  }
  .board {
    display: grid;
    grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
    column-gap: 3rem;
    align-items: start;
  }
}

/* ===== FAQ ===== */
.faq {
  padding: clamp(3rem, 7vw, 5rem) 0;
}
.faq h2 {
  font-size: clamp(1.9rem, 4vw, 3rem);
  color: var(--spruce);
  margin-bottom: 1.75rem;
}
.faq__list {
  border-top: 2px solid var(--spruce);
}
.faq__item {
  padding: 1.25rem 0;
  border-bottom: 1px solid var(--fog);
}
.faq__q {
  font-size: 1.3rem;
  color: var(--ink);
  margin-bottom: 0.4rem;
}
.faq__a {
  margin: 0;
  color: var(--birch);
}
@media (min-width: 1024px) {
  .faq__list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 3.5rem;
  }
}

/* ===== Pub calendar (mirrors The Events Calendar month + list views) ===== */
.tribe-events {
  padding: clamp(2rem, 5vw, 3.5rem) 0 clamp(3rem, 7vw, 5rem);
}
.tribe-events-c-top-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  border-top: 2px solid var(--spruce);
  padding: 1.25rem 0;
}
.tribe-events-c-top-bar__nav {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.tribe-events-c-top-bar__today-button,
.tribe-events-c-top-bar__nav-button,
.tribe-events-c-view-selector__button {
  font: 600 0.95rem/1 var(--body);
  color: var(--spruce);
  background: none;
  border: 1.5px solid var(--fog);
  border-radius: 2px;
  padding: 0.6rem 0.85rem;
  cursor: pointer;
}
.tribe-events-c-top-bar__nav-button {
  font-size: 1.3rem;
  padding: 0.4rem 0.75rem;
}
.tribe-events-c-top-bar__today-button:hover,
.tribe-events-c-top-bar__nav-button:hover,
.tribe-events-c-view-selector__button:hover {
  border-color: var(--spruce);
}
.tribe-events-c-top-bar__datepicker {
  font-size: clamp(1.5rem, 3vw, 2.1rem);
  color: var(--spruce);
  margin-left: 0.5rem;
}
.tribe-events-c-view-selector {
  display: flex;
  gap: 0.4rem;
}
.tribe-events-c-view-selector__button[aria-pressed='true'] {
  background: var(--spruce);
  border-color: var(--spruce);
  color: var(--lamplight-hi);
}
.tribe-events-calendar-month__table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}
.tribe-events-calendar-month__table th {
  font: 600 0.8rem/1 var(--body);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--birch);
  text-align: left;
  padding: 0.75rem 0.6rem;
  border-bottom: 2px solid var(--spruce);
}
.tribe-events-calendar-month__day {
  vertical-align: top;
  height: 7.5rem;
  padding: 0.5rem 0.55rem;
  border: 1px solid var(--fog);
  background: var(--clapboard);
}
.tribe-events-calendar-month__day--other-month {
  background: #f6ecda;
  color: #a8988a;
}
.tribe-events-calendar-month__day--past .tribe-events-calendar-month__event {
  opacity: 0.5;
}
.tribe-events-calendar-month__day-date {
  font-family: var(--display);
  font-size: 1.1rem;
  display: block;
  margin-bottom: 0.35rem;
}
.tribe-events-calendar-month__day--current
  .tribe-events-calendar-month__day-date {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  background: var(--spruce);
  color: var(--lamplight-hi);
}
.tribe-events-calendar-month__event {
  display: block;
  font-size: 0.82rem;
  font-weight: 600;
  line-height: 1.3;
  padding: 0.3rem 0.45rem;
  margin-bottom: 0.3rem;
  border-left: 3px solid var(--lamplight);
  background: #f4e6cb;
  color: var(--ink);
}
.tribe-events-calendar-month__event--hoot {
  border-left-color: var(--spruce);
}
.tribe-events-calendar-month__event--music {
  border-left-color: var(--rim-blue);
}
.tribe-events-calendar-month__event-time {
  display: block;
  font-weight: 500;
  color: var(--birch);
}
.tribe-events-calendar-month__closed {
  font-size: 0.78rem;
  color: #a8988a;
  font-style: italic;
}
.tribe-events-calendar-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.tribe-events-calendar-list__month-separator {
  font-family: var(--display);
  font-size: 1.5rem;
  color: var(--spruce);
  padding: 1.75rem 0 0.5rem;
}
.tribe-events-calendar-list__event {
  display: grid;
  grid-template-columns: 4.5rem minmax(0, 1fr);
  gap: 1.25rem;
  padding: 1.25rem 0;
  border-bottom: 1px solid var(--fog);
}
.tribe-events-calendar-list__event-date-tag {
  text-align: center;
  border-top: 3px solid var(--spruce);
  padding-top: 0.4rem;
}
.tribe-events-calendar-list__event-date-tag-weekday {
  display: block;
  font: 600 0.75rem/1 var(--body);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--birch);
}
.tribe-events-calendar-list__event-date-tag-daynum {
  display: block;
  font-family: var(--display);
  font-size: 2rem;
  line-height: 1.1;
  color: var(--spruce);
}
.tribe-events-calendar-list__event-datetime {
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--birch);
  margin: 0 0 0.25rem;
}
.tribe-events-calendar-list__event-title {
  font-size: 1.45rem;
  color: var(--ink);
  margin: 0 0 0.4rem;
}
.tribe-events-calendar-list__event-description {
  margin: 0;
  color: var(--birch);
}
.tribe-events-legend {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem;
  margin: 1.25rem 0 0;
  padding: 0;
  font-size: 0.9rem;
  color: var(--birch);
}
.tribe-events-legend li {
  display: flex;
  align-items: center;
  gap: 0.45rem;
}
.tribe-events-legend__dot {
  width: 0.8rem;
  height: 0.8rem;
  border-radius: 2px;
  background: var(--lamplight);
}
.tribe-events-legend__dot--hoot {
  background: var(--spruce);
}
.tribe-events-legend__dot--music {
  background: var(--rim-blue);
}
.tribe-events-legend__dot--closed {
  background: #d9cbb3;
}
.note a {
  color: var(--spruce);
  font-weight: 600;
}
@media (max-width: 767px) {
  .tribe-events-c-view-selector {
    display: none;
  }
  .tribe-events-c-top-bar__datepicker {
    font-size: 1.4rem;
  }
}

/* ===== Dropdown: Suds Pub > About / Pub calendar ===== */
.menu-item-has-children {
  position: relative;
}
.menu-item-has-children > a::after {
  content: '';
  display: inline-block;
  width: 0.38em;
  height: 0.38em;
  margin-left: 0.45em;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: translateY(-0.2em) rotate(45deg);
}
.sub-menu {
  list-style: none;
  margin: 0;
  padding: 0;
}
.current-menu-ancestor > a {
  border-color: var(--spruce);
}
@media (min-width: 1024px) {
  .sub-menu {
    position: absolute;
    left: -1rem;
    top: 100%;
    min-width: 13rem;
    padding: 0.4rem 0;
    background: var(--clapboard);
    border-top: 2px solid var(--spruce);
    box-shadow: 0 14px 28px rgba(58, 11, 4, 0.16);
    opacity: 0;
    visibility: hidden;
    transform: translateY(6px);
    transition:
      opacity 0.18s,
      transform 0.18s,
      visibility 0.18s;
    z-index: 60;
  }
  .menu-item-has-children:hover > .sub-menu,
  .menu-item-has-children:focus-within > .sub-menu {
    opacity: 1;
    visibility: visible;
    transform: none;
  }
  .sub-menu .menu-item a {
    display: block;
    padding: 0.65rem 1rem;
    border-bottom: 0;
    white-space: nowrap;
  }
  .sub-menu .menu-item a:hover,
  .sub-menu .menu-item a[aria-current='page'] {
    background: #f4e6cb;
  }
}
@media (max-width: 1023px) {
  .site-nav.is-open .sub-menu {
    padding-left: 1rem;
  }
  .site-nav.is-open .sub-menu .menu-item a {
    font-size: 1rem;
    color: var(--birch);
  }
}

/* ===== Split inner-page hero: copy + photo side by side ===== */
.page-hero--split {
  display: grid;
  gap: 2rem;
  padding-bottom: clamp(2.5rem, 6vw, 4rem);
}
.page-hero__media {
  margin: 0;
}
.page-hero__img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  background: var(--fog);
}
.page-hero__media figcaption {
  font-size: 0.9rem;
  color: var(--birch);
  padding-top: 0.6rem;
}
@media (min-width: 1024px) {
  .page-hero--split {
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    column-gap: clamp(2.5rem, 4vw, 4rem);
    align-items: center;
  }
  .page-hero--split .page-hero__title {
    font-size: clamp(2.6rem, 5vw, 4.6rem);
  }
  .page-hero__img {
    aspect-ratio: auto;
    height: clamp(360px, 36vw, 540px);
  }
}

/* ===== Home hero: cream panel left, summer/winter slideshow right ===== */
.home-hero {
  display: grid;
  background: var(--clapboard);
}
.home-hero__panel {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 1.4rem;
  padding: 1.5rem 1.25rem 1.75rem;
  border-top: 6px solid var(--spruce);
}
.home-hero__title {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  color: var(--spruce);
}
.home-hero__name {
  font-size: clamp(2.4rem, 3.5vw, 3.6rem);
  line-height: 1;
}
.home-hero__tag {
  font-size: clamp(1.3rem, 2.1vw, 1.95rem);
  line-height: 1.15;
  color: var(--oxblood);
}
.home-hero .hero__ctas a:not(.btn) {
  font-weight: 600;
  color: var(--spruce);
}
.home-hero__seasons {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem;
}
.home-hero__seasons .hero__dot,
.home-hero__seasons .hero__pause {
  width: auto;
  height: auto;
  border-radius: 2px;
  font: 600 0.85rem/1 var(--body);
  padding: 0.5rem 0.75rem;
  border: 1.5px solid var(--fog);
  background: none;
  color: var(--birch);
  cursor: pointer;
  margin: 0;
}
.home-hero__seasons .hero__dot.is-active {
  background: var(--spruce);
  border-color: var(--spruce);
  color: var(--lamplight-hi);
}
.home-hero__seasons .hero__pause {
  margin-left: 0.35rem;
}
.home-hero__media {
  position: relative;
  margin: 0;
  overflow: hidden;
  background: var(--fog);
  height: clamp(220px, 36svh, 420px);
}
.home-hero__media .hero__slides {
  position: absolute;
  inset: 0;
  height: auto;
  min-height: 0;
}
.home-hero__media .hero__bg {
  object-position: 58% 55%;
}
@media (prefers-reduced-motion: no-preference) {
  .home-hero__name {
    animation: fade 1.1s ease-out both;
  }
}
@media (max-width: 899px) {
  .home-hero__media {
    order: -1;
  }
  .home-hero__panel {
    border-top: 0;
  }
}
@media (min-width: 900px) {
  .home-hero {
    grid-template-columns: minmax(0, 5fr) minmax(0, 8fr);
    height: clamp(520px, calc(100svh - 76px - 116px), 780px);
  }
  .home-hero__panel {
    padding: clamp(2rem, 4vw, 3.5rem) clamp(2rem, 3.5vw, 3.5rem)
      clamp(2rem, 4vw, 3.5rem) max(1.25rem, calc((100vw - 1240px) / 2));
  }
  .home-hero__media {
    height: auto;
  }
}

/* ===== Welcome intro with porch photo ===== */
.welcome {
  display: grid;
  gap: 2rem;
  padding: clamp(3rem, 7vw, 5.5rem) 0;
}
.welcome__title {
  font-size: clamp(2.2rem, 4.5vw, 3.4rem);
  color: var(--spruce);
  margin-bottom: 1.25rem;
}
.welcome__lede {
  font-size: clamp(1.1rem, 1.5vw, 1.3rem);
  line-height: 1.7;
  color: var(--ink);
  max-width: 40rem;
  margin-bottom: 1.75rem;
}
.welcome .cta__row a:not(.btn) {
  font-size: 1rem;
}
.welcome__photo {
  margin: 0;
  justify-self: center;
  width: min(100%, 460px);
}
.welcome__img {
  width: 100%;
  aspect-ratio: 0.64;
  object-fit: cover;
  object-position: center;
  background: var(--fog);
  box-shadow: 0 18px 40px rgba(58, 11, 4, 0.18);
}
.welcome__photo figcaption {
  font-size: 0.9rem;
  color: var(--birch);
  padding-top: 0.7rem;
}
@media (min-width: 900px) {
  .welcome {
    grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
    column-gap: clamp(3rem, 6vw, 6rem);
    align-items: center;
  }
}

/* ===== Rooms page: every room, grouped by type ===== */
.room-cat {
  padding: clamp(2.5rem, 6vw, 4.5rem) 0 0;
  scroll-margin-top: 100px;
}
.room-cat__head {
  border-top: 2px solid var(--spruce);
  padding-top: 1.5rem;
  margin-bottom: 1.75rem;
  display: grid;
  gap: 0.75rem;
}
.room-cat__head h2,
.room-type__body h2 {
  font-size: clamp(1.9rem, 4vw, 2.8rem);
  color: var(--spruce);
}
.room-cat__head p {
  color: var(--birch);
  margin: 0;
}
.room-cat__count {
  font-family: var(--body);
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--birch);
  margin-left: 0.5rem;
  white-space: nowrap;
}
@media (min-width: 1024px) {
  .room-cat__head {
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    column-gap: 3rem;
    align-items: end;
  }
}
.room-grid {
  list-style: none;
  margin: 0 0 1.75rem;
  padding: 0;
  display: grid;
  gap: 1.5rem;
}
@media (min-width: 600px) {
  .room-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 1024px) {
  .room-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
.room-card {
  display: flex;
  flex-direction: column;
  background: #fffbf4;
  border: 1px solid var(--fog);
  scroll-margin-top: 100px;
}
.room-card__img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  background: var(--fog);
}
.room-card__img--none {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f4e6cb;
  color: var(--birch);
  font-weight: 600;
  font-size: 0.9rem;
}
.room-card__body {
  padding: 1rem 1.1rem 1.2rem;
}
.room-card__name {
  font-size: 1.45rem;
  color: var(--spruce);
  margin-bottom: 0.25rem;
}
.room-card__where {
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--birch);
  margin: 0 0 0.5rem;
}
.room-card__features {
  list-style: none;
  margin: 0.5rem 0 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}
.room-card__features li {
  font-size: 0.85rem;
  font-weight: 500;
  background: #f4e6cb;
  color: var(--ink);
  padding: 0.3rem 0.55rem;
  border-radius: 2px;
}
#apartment .room-type {
  padding-top: 1.5rem;
  border-top: 2px solid var(--spruce);
}
.room-cat + .know {
  margin-top: clamp(3rem, 7vw, 5rem);
}

/* Phone number stays visible in the header on phones */
@media (max-width: 600px) {
  .site-header__phone {
    display: inline;
    font-size: 0.84rem;
  }
  .book-label-rest {
    display: none;
  }
  .site-header__actions {
    gap: 0.5rem;
  }
  .site-header .btn--book {
    padding: 0.62rem 0.75rem;
  }
  .menu-toggle {
    padding: 0.6rem 0.65rem;
  }
}
@media (max-width: 480px) {
  .brand__logo {
    height: 58px;
    width: 82px;
  }
}
@media (max-width: 359px) {
  .site-header__phone {
    font-size: 0.76rem;
  }
}
.welcome + .roof {
  padding-top: clamp(1rem, 3vw, 2rem);
}

/* ===== Oct 31 trial: wider frame + Brian-style hero (delete this block to revert) ===== */
:root {
  --frame: 1560px;
  --gutter: clamp(1.25rem, 4vw, 4.5rem);
  --wrap: min(var(--frame), 100% - var(--gutter) * 2);
  --col: min(var(--frame), 100% - var(--gutter) * 2);
}
.gallery__track {
  padding: 0 max(var(--gutter), calc((100vw - var(--frame)) / 2)) 1rem;
  scroll-padding-inline: max(var(--gutter), calc((100vw - var(--frame)) / 2));
}
.hero__controls {
  right: max(var(--gutter), calc((100vw - var(--frame)) / 2));
}
@media (min-width: 1024px) {
  #downstairs .pub > div,
  #downstairs .pub > dl {
    padding-right: max(var(--gutter), calc((100vw - var(--frame)) / 2));
  }
}
@media (min-width: 900px) {
  .home-hero {
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  }
  .home-hero__panel {
    gap: 1.75rem;
    padding: clamp(2rem, 4vw, 3.5rem) clamp(1.5rem, 3vw, 3rem)
      clamp(2rem, 4vw, 3.5rem)
      max(var(--gutter), calc((100vw - var(--frame)) / 2));
  }
  .home-hero__title {
    gap: 0.9rem;
  }
  .home-hero__name {
    font-size: clamp(2.4rem, 3vw, 3.75rem);
    text-wrap: balance;
  }
  .home-hero__tag {
    font-size: clamp(1.35rem, 2vw, 2.1rem);
    line-height: 1.2;
    text-wrap: balance;
  }
}

/* EC-BTN-104 + EC-NAV-121: Re-assert hero / CTA text-white on buttons & links.
   Uses class~= (word match) not class*= (substring) to avoid matching hover:text-white etc. */
button[class~='text-white/90'],
a[class~='text-white/90'] {
  color: rgba(255, 255, 255, 0.9);
}
button[class~='text-white/80'],
a[class~='text-white/80'] {
  color: rgba(255, 255, 255, 0.8);
}
button[class~='text-white/70'],
a[class~='text-white/70'] {
  color: rgba(255, 255, 255, 0.7);
}
button[class~='text-white/60'],
a[class~='text-white/60'] {
  color: rgba(255, 255, 255, 0.6);
}
button[class~='text-white/50'],
a[class~='text-white/50'] {
  color: rgba(255, 255, 255, 0.5);
}
button[class~='text-white/40'],
a[class~='text-white/40'] {
  color: rgba(255, 255, 255, 0.4);
}
button[class~='text-white'],
a[class~='text-white'] {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}

/* EC-ANIM-008b / EC-ANIM-009: carousel-only override — scroll-reveal elements animate via IO in functions.php */
.scroll-fade-up:has([aria-roledescription='carousel']),
.scroll-fade-up:has([data-wpconvert-blog-filter-bar]),
.scroll-fade-left:has([aria-roledescription='carousel']),
.scroll-fade-right:has([aria-roledescription='carousel']),
.scroll-scale-in:has([aria-roledescription='carousel']) {
  opacity: 1 !important;
  transform: none !important;
}
