@layer reset {
  *,
  :before,
  :after {
    box-sizing: border-box;
  }
  html {
    scroll-behavior: smooth;
  }
  body,
  h1,
  h2,
  h3,
  p,
  ul,
  ol,
  figure {
    margin: 0;
  }
  img,
  picture,
  svg {
    max-width: 100%;
    display: block;
  }
  button,
  input,
  select,
  textarea {
    font: inherit;
  }
}
@layer base {
  :root {
    --pine-950: #0d241d;
    --pine-900: #13352a;
    --pine-800: #1c4a3a;
    --pine-700: #276149;
    --moss: #71846e;
    --saffron: #d7963f;
    --saffron-light: #f0c47d;
    --cream: #f7f2e8;
    --paper: #fffdf8;
    --ink: #16201c;
    --muted: #637068;
    --line: #13352a24;
    --shadow: 0 20px 60px #0d241d1f;
    --radius-sm: 0.75rem;
    --radius: 1.25rem;
    --radius-lg: 2rem;
    --serif: Georgia, "Times New Roman", serif;
    --sans:
      Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont,
      "Segoe UI", sans-serif;
  }
  body {
    background: var(--paper);
    min-width: 320px;
    color: var(--ink);
    font-family: var(--sans);
    text-rendering: optimizelegibility;
    font-size: 1rem;
    line-height: 1.65;
    overflow-x: clip;
  }
  body:before {
    z-index: -1;
    content: "";
    pointer-events: none;
    background-image: radial-gradient(#13352a0b 1px, #0000 1px);
    background-size: 24px 24px;
    position: fixed;
    inset: 0;
  }
  h1,
  h2,
  h3 {
    color: var(--pine-950);
    font-family: var(--serif);
    text-wrap: balance;
    font-weight: 500;
    line-height: 1.08;
  }
  h1 {
    letter-spacing: -0.045em;
    font-size: clamp(2.75rem, 7vw, 6.25rem);
  }
  h2 {
    letter-spacing: -0.035em;
    font-size: clamp(2.1rem, 4.5vw, 4.25rem);
  }
  h3 {
    letter-spacing: -0.02em;
    font-size: clamp(1.35rem, 2vw, 1.85rem);
  }
  p {
    text-wrap: pretty;
  }
  a {
    color: inherit;
  }
  :focus-visible {
    outline: 3px solid var(--saffron);
    outline-offset: 4px;
  }
  ::selection {
    background: var(--saffron-light);
    color: var(--pine-950);
  }
}
@layer components {
  .container {
    width: min(1180px, 100% - 2rem);
    margin-inline: auto;
  }
  .container--narrow {
    width: min(820px, 100% - 2rem);
    margin-inline: auto;
  }
  .section {
    padding-block: clamp(4.5rem, 9vw, 8rem);
  }
  .section--cream {
    background: var(--cream);
  }
  .section--pine {
    background: var(--pine-950);
    color: #ffffffc7;
  }
  .section--pine h2,
  .section--pine h3 {
    color: #fff;
  }
  .section-heading {
    gap: 1rem;
    margin-bottom: clamp(2rem, 5vw, 4rem);
    display: grid;
  }
  .section-heading--split {
    grid-template-columns: 1.25fr 0.75fr;
    align-items: end;
  }
  .section-heading p {
    max-width: 43rem;
    color: var(--muted);
    font-size: 1.05rem;
  }
  .section--pine .section-heading p {
    color: #ffffffad;
  }
  .eyebrow {
    color: var(--pine-700);
    letter-spacing: 0.17em;
    text-transform: uppercase;
    align-items: center;
    gap: 0.7rem;
    font-size: 0.74rem;
    font-weight: 800;
    display: flex;
  }
  .eyebrow:before {
    background: var(--saffron);
    content: "";
    width: 2.1rem;
    height: 1px;
  }
  .section--pine .eyebrow,
  .hero .eyebrow {
    color: var(--saffron-light);
  }
  .button {
    background: var(--saffron);
    min-height: 3.1rem;
    color: var(--pine-950);
    letter-spacing: 0.025em;
    border: 1px solid #0000;
    border-radius: 999px;
    justify-content: center;
    align-items: center;
    gap: 0.65rem;
    padding: 0.75rem 1.35rem;
    font-size: 0.88rem;
    font-weight: 800;
    text-decoration: none;
    transition:
      transform 0.2s,
      background 0.2s,
      box-shadow 0.2s;
    display: inline-flex;
  }
  .button:hover {
    background: var(--saffron-light);
    transform: translateY(-2px);
    box-shadow: 0 12px 28px #d7963f40;
  }
  .button--dark {
    background: var(--pine-900);
    color: #fff;
  }
  .button--dark:hover {
    background: var(--pine-700);
  }
  .button--outline {
    color: #fff;
    background: 0 0;
    border-color: #ffffff59;
  }
  .button--outline:hover {
    color: var(--pine-950);
    background: #fff;
  }
  .text-link {
    color: var(--pine-800);
    text-underline-offset: 0.25rem;
    align-items: center;
    gap: 0.45rem;
    font-weight: 800;
    display: inline-flex;
  }
  .text-link:after {
    content: "→";
    transition: transform 0.2s;
  }
  .text-link:hover:after {
    transform: translate(0.25rem);
  }
  .site-header {
    z-index: 50;
    color: #fff;
    border-bottom: 1px solid #0000;
    transition:
      background 0.25s,
      color 0.25s,
      border-color 0.25s,
      box-shadow 0.25s;
    position: fixed;
    inset: 0 0 auto;
  }
  .site-header.is-scrolled,
  .site-header[data-solid="true"] {
    border-color: var(--line);
    color: var(--pine-950);
    backdrop-filter: blur(15px);
    background: #fffdf8f5;
    box-shadow: 0 8px 35px #0d241d14;
  }
  .header-inner {
    justify-content: space-between;
    align-items: center;
    gap: 1.2rem;
    min-height: 5rem;
    display: flex;
  }
  .brand {
    letter-spacing: 0.01em;
    align-items: center;
    gap: 0.7rem;
    font-weight: 850;
    text-decoration: none;
    display: inline-flex;
  }
  .brand img {
    object-fit: contain;
    width: 2.5rem;
    height: 2.5rem;
  }
  .brand-copy {
    line-height: 1;
    display: grid;
  }
  .brand-copy small {
    color: var(--saffron-light);
    letter-spacing: 0.18em;
    text-transform: uppercase;
    margin-top: 0.35rem;
    font-size: 0.58rem;
  }
  .is-scrolled .brand-copy small,
  [data-solid="true"] .brand-copy small {
    color: var(--pine-700);
  }
  .site-nav {
    align-items: center;
    gap: 1.5rem;
    display: flex;
  }
  .site-nav > a:not(.button) {
    font-size: 0.84rem;
    font-weight: 700;
    text-decoration: none;
    position: relative;
  }
  .site-nav > a:not(.button):after {
    background: var(--saffron);
    content: "";
    height: 2px;
    transition: transform 0.2s;
    position: absolute;
    bottom: -0.55rem;
    left: 0;
    right: 0;
    transform: scaleX(0);
  }
  .site-nav > a[aria-current="page"]:after,
  .site-nav > a:hover:after {
    transform: scaleX(1);
  }
  .menu-button {
    width: 2.75rem;
    height: 2.75rem;
    color: inherit;
    cursor: pointer;
    background: 0 0;
    border: 1px solid;
    border-radius: 50%;
    justify-content: center;
    align-items: center;
    display: none;
  }
  .hero {
    background: var(--pine-950);
    color: #fff;
    align-items: end;
    min-height: min(860px, 96svh);
    display: grid;
    position: relative;
    overflow: hidden;
  }
  .hero-media,
  .hero-media picture,
  .hero-media img {
    width: 100%;
    height: 100%;
    position: absolute;
    inset: 0;
  }
  .hero-media img {
    object-fit: cover;
    object-position: center;
  }
  .hero:after {
    content: "";
    background:
      linear-gradient(90deg, #071913d1 0%, #07191357 48%, #0719130f 100%),
      linear-gradient(#0000 30%, #07191314 55%, #0719137a);
    position: absolute;
    inset: 0;
  }
  .hero-content {
    z-index: 1;
    gap: 1.4rem;
    max-width: 850px;
    padding-block: 10rem 6rem;
    display: grid;
    position: relative;
  }
  .hero h1 {
    color: #fff;
  }
  .hero-lead {
    color: #ffffffd4;
    max-width: 40rem;
    font-size: clamp(1rem, 2vw, 1.2rem);
  }
  .hero-actions {
    flex-wrap: wrap;
    gap: 0.8rem;
    margin-top: 0.5rem;
    display: flex;
  }
  .hero-trust {
    color: #ffffffc7;
    flex-wrap: wrap;
    gap: 1rem 2rem;
    margin-top: 1rem;
    font-size: 0.84rem;
    font-weight: 700;
    display: flex;
  }
  .hero-trust span:before {
    color: var(--saffron-light);
    content: "✦";
    margin-right: 0.5rem;
  }
  .home-progress {
    z-index: 70;
    transform-origin: 0;
    background: linear-gradient(90deg, var(--saffron), var(--saffron-light));
    pointer-events: none;
    will-change: transform;
    height: 3px;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    transform: scaleX(0);
    box-shadow: 0 0 16px #f0c47d73;
  }
  .home-hero__media {
    --home-parallax-y: 0px;
    transform: translate3d(0, var(--home-parallax-y), 0) scale(1.04);
    will-change: transform;
  }
  .home-hero:after {
    background:
      linear-gradient(#0719137a, #0000 22%),
      linear-gradient(90deg, #071913de 0%, #0719136e 49%, #07191314 100%),
      linear-gradient(#0000 28%, #0719130f 52%, #07191394);
  }
  .home-hero__shell {
    position: relative;
  }
  .home-hero__shell:after {
    z-index: 0;
    content: "";
    filter: blur(3px);
    pointer-events: none;
    background: radial-gradient(circle, #f0c47d2e, #d7963f0f 42%, #0000 70%);
    border-radius: 50%;
    width: clamp(16rem, 32vw, 29rem);
    height: clamp(16rem, 32vw, 29rem);
    animation: 6s ease-in-out infinite alternate home-sun-breathe;
    position: absolute;
    top: 14%;
    right: 2%;
  }
  .home-hero__line {
    vertical-align: bottom;
    margin-bottom: -0.1em;
    padding-bottom: 0.1em;
    display: inline-block;
    overflow: hidden;
  }
  .home-hero__line > span {
    display: block;
  }
  .home-hero__feeling {
    z-index: 2;
    color: #fff;
    backdrop-filter: blur(16px);
    background: #081c158a;
    border: 1px solid #fff3;
    border-radius: 999px;
    align-items: center;
    gap: 0.9rem;
    padding: 0.75rem 1.2rem 0.75rem 0.8rem;
    display: flex;
    position: absolute;
    bottom: 5.8rem;
    right: 0;
    box-shadow: 0 18px 50px #00000029;
  }
  .home-hero__sun {
    background: radial-gradient(
      circle at 35% 35%,
      #fff0cf,
      var(--saffron-light) 35%,
      var(--saffron)
    );
    border-radius: 50%;
    width: 2.55rem;
    height: 2.55rem;
    display: block;
    position: relative;
    box-shadow:
      0 0 0 6px #f0c47d1a,
      0 0 28px #f0c47d52;
  }
  .home-hero__sun:after {
    content: "";
    border: 1px solid #0d241d52;
    border-radius: 50%;
    position: absolute;
    inset: 0.65rem;
  }
  .home-hero__feeling div {
    line-height: 1.25;
    display: grid;
  }
  .home-hero__feeling small {
    color: #ffffff85;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    font-size: 0.58rem;
    font-weight: 800;
  }
  .home-hero__feeling strong {
    font-family: var(--serif);
    font-size: 1.05rem;
    font-weight: 500;
  }
  .motion-ready .home-hero__media {
    animation: 1.8s cubic-bezier(0.22, 1, 0.36, 1) both home-hero-arrive;
  }
  .motion-ready .home-hero__eyebrow {
    animation: 0.7s 0.18s both reviews-fade-up;
  }
  .motion-ready .home-hero__line > span {
    animation: 0.95s cubic-bezier(0.2, 0.9, 0.3, 1) both home-line-in;
    animation-delay: calc(0.3s + var(--line-index, 0) * 0.15s);
  }
  .motion-ready .home-hero__lead {
    animation: 0.75s 0.72s both reviews-fade-up;
  }
  .motion-ready .home-hero__actions {
    animation: 0.75s 0.86s both reviews-fade-up;
  }
  .motion-ready .home-hero__trust {
    animation: 0.75s 1s both reviews-fade-up;
  }
  .motion-ready .home-hero__feeling {
    animation: 0.9s cubic-bezier(0.18, 0.89, 0.32, 1.18) 1.05s both
      home-feeling-in;
  }
  @keyframes home-hero-arrive {
    0% {
      transform: translate3d(0, var(--home-parallax-y), 0) scale(1.15);
      filter: brightness(0.7) saturate(0.82);
    }
    to {
      transform: translate3d(0, var(--home-parallax-y), 0) scale(1.04);
      filter: brightness() saturate();
    }
  }
  @keyframes home-line-in {
    0% {
      transform: translateY(112%) rotate(1.5deg);
    }
    to {
      transform: translateY(0) rotate(0);
    }
  }
  @keyframes home-feeling-in {
    0% {
      opacity: 0;
      transform: translate(35px) scale(0.94);
    }
  }
  @keyframes home-sun-breathe {
    to {
      opacity: 0.72;
      transform: scale(1.08);
    }
  }
  .quick-booking-wrap {
    z-index: 5;
    margin-top: -2.3rem;
    position: relative;
  }
  .quick-booking {
    backdrop-filter: blur(18px);
    background: #fffdf8f7;
    border: 1px solid #13352a1a;
    border-radius: 1.35rem;
    grid-template-columns: 1.15fr repeat(3, 1fr) auto;
    align-items: end;
    gap: 1rem;
    padding: 1.15rem;
    transition:
      transform 0.3s,
      box-shadow 0.3s;
    display: grid;
    position: relative;
    overflow: hidden;
    box-shadow: 0 24px 65px #0d241d2b;
  }
  .quick-booking:before {
    transform-origin: 0;
    background: linear-gradient(
      90deg,
      var(--saffron),
      var(--saffron-light),
      transparent
    );
    content: "";
    height: 2px;
    transition: transform 0.55s;
    position: absolute;
    inset: 0 0 auto;
    transform: scaleX(0.15);
  }
  .quick-booking:hover {
    transform: translateY(-3px);
    box-shadow: 0 30px 75px #0d241d33;
  }
  .quick-booking:hover:before {
    transform: scaleX(1);
  }
  .quick-booking__intro {
    align-self: center;
    padding-inline: 0.35rem;
    display: grid;
  }
  .quick-booking__intro span,
  .quick-booking label > span {
    color: var(--muted);
    letter-spacing: 0.11em;
    text-transform: uppercase;
    font-size: 0.64rem;
    font-weight: 850;
  }
  .quick-booking__intro strong {
    color: var(--pine-950);
    font-family: var(--serif);
    font-size: 1.45rem;
    font-weight: 500;
  }
  .quick-booking label {
    gap: 0.35rem;
    display: grid;
  }
  .quick-booking input,
  .quick-booking select {
    border: 1px solid var(--line);
    width: 100%;
    min-height: 3.15rem;
    color: var(--ink);
    background: #fff;
    border-radius: 0.7rem;
    padding: 0.65rem 0.8rem;
    font-size: 0.84rem;
  }
  .quick-booking input:focus,
  .quick-booking select:focus {
    border-color: var(--saffron);
    outline: none;
    box-shadow: 0 0 0 4px #d7963f1f;
  }
  .quick-booking .button {
    min-width: 11.5rem;
  }
  .confidence-strip {
    background: linear-gradient(#f7f2e89e, #0000);
    padding: 2.7rem 0 1rem;
  }
  .confidence-grid {
    grid-template-columns: repeat(4, 1fr);
    display: grid;
  }
  .confidence-grid > div {
    border-right: 1px solid var(--line);
    text-align: center;
    gap: 0.1rem;
    padding: 0.7rem 1.5rem;
    display: grid;
  }
  .confidence-grid > div:last-child {
    border-right: 0;
  }
  .confidence-grid strong {
    color: var(--pine-800);
    font-family: var(--serif);
    font-size: clamp(1.45rem, 2.5vw, 2rem);
    font-weight: 500;
    line-height: 1;
  }
  .confidence-grid strong > span {
    color: inherit;
    font: inherit;
    letter-spacing: inherit;
  }
  .confidence-grid span {
    color: var(--muted);
    letter-spacing: 0.04em;
    font-size: 0.72rem;
    font-weight: 750;
  }
  .page-hero {
    background: var(--pine-950);
    color: #ffffffc7;
    padding-block: 10rem 4.5rem;
  }
  .page-hero h1 {
    color: #fff;
    max-width: 930px;
  }
  .page-hero p {
    max-width: 650px;
    margin-top: 1.3rem;
    font-size: 1.1rem;
  }
  .breadcrumbs {
    margin-bottom: 1.5rem;
    font-size: 0.78rem;
    font-weight: 700;
  }
  .breadcrumbs ol {
    flex-wrap: wrap;
    gap: 0.5rem;
    padding: 0;
    list-style: none;
    display: flex;
  }
  .breadcrumbs li:not(:last-child):after {
    color: var(--saffron);
    content: "/";
    margin-left: 0.5rem;
  }
  .breadcrumbs a {
    color: #ffffffb3;
    text-decoration: none;
  }
  .room-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 1.25rem;
    display: grid;
  }
  .room-card {
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: #fff;
    transition:
      transform 0.25s,
      box-shadow 0.25s;
    position: relative;
    overflow: hidden;
    box-shadow: 0 8px 28px #0d241d0f;
  }
  .room-card:hover {
    box-shadow: var(--shadow);
    transform: translateY(-6px);
  }
  .room-card__media {
    aspect-ratio: 4/3;
    background: var(--cream);
    position: relative;
    overflow: hidden;
  }
  .room-card__media img {
    object-fit: cover;
    width: 100%;
    height: 100%;
    transition: transform 0.6s;
  }
  .room-card:hover .room-card__media img {
    transform: scale(1.04);
  }
  .room-card__tag {
    color: #fff;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    backdrop-filter: blur(7px);
    background: #0d241dd6;
    border-radius: 999px;
    padding: 0.4rem 0.7rem;
    font-size: 0.68rem;
    font-weight: 800;
    position: absolute;
    top: 1rem;
    left: 1rem;
  }
  .room-card__body {
    gap: 0.85rem;
    padding: 1.4rem;
    display: grid;
  }
  .room-card__body p {
    color: var(--muted);
    font-size: 0.93rem;
  }
  .room-card__meta {
    justify-content: space-between;
    align-items: center;
    gap: 0.8rem;
    padding-top: 0.25rem;
    display: flex;
  }
  .room-card__price strong {
    color: var(--pine-800);
    font-family: var(--serif);
    font-size: 1.35rem;
    font-weight: 500;
    line-height: 1;
    display: block;
  }
  .room-card__price small {
    color: var(--muted);
    font-size: 0.7rem;
  }
  .room-card__link {
    z-index: 1;
    position: absolute;
    inset: 0;
  }
  .room-card__meta .arrow {
    background: var(--cream);
    width: 2.65rem;
    height: 2.65rem;
    color: var(--pine-800);
    border-radius: 50%;
    place-items: center;
    transition:
      background 0.2s,
      color 0.2s;
    display: grid;
  }
  .room-card:hover .arrow {
    background: var(--pine-800);
    color: #fff;
  }
  .home-page .room-card:after {
    z-index: 2;
    transform-origin: 0;
    background: linear-gradient(90deg, var(--saffron), var(--saffron-light));
    content: "";
    pointer-events: none;
    height: 3px;
    transition: transform 0.45s;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    transform: scaleX(0);
  }
  .home-page .room-card:hover:after {
    transform: scaleX(1);
  }
  .feature-grid {
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
    display: grid;
  }
  .feature {
    border: 1px solid var(--line);
    border-radius: var(--radius-sm);
    background: #ffffffa8;
    padding: 1.5rem;
  }
  .feature__icon {
    background: var(--cream);
    width: 2.8rem;
    height: 2.8rem;
    color: var(--saffron);
    border-radius: 50%;
    place-items: center;
    margin-bottom: 1rem;
    font-size: 1.15rem;
    display: grid;
  }
  .feature h3 {
    font-size: 1.15rem;
  }
  .feature p {
    color: var(--muted);
    margin-top: 0.45rem;
    font-size: 0.86rem;
  }
  .guest-reviews {
    color: #ffffffb8;
    background: #091b15;
    overflow: hidden;
  }
  .review-stage {
    grid-template-columns: 0.85fr 1.15fr;
    align-items: center;
    gap: clamp(2rem, 7vw, 7rem);
    display: grid;
  }
  .review-summary {
    justify-items: start;
    gap: 1.2rem;
    display: grid;
  }
  .review-summary h2 {
    color: #fff;
  }
  .review-summary > p {
    max-width: 34rem;
  }
  .google-score {
    align-items: center;
    gap: 1rem;
    padding-block: 0.35rem;
    display: flex;
  }
  .google-score > strong {
    color: #fff;
    font-family: var(--serif);
    border-right: 1px solid #ffffff2e;
    padding-right: 1rem;
    font-size: 4.5rem;
    font-weight: 500;
    line-height: 0.9;
  }
  .google-score > div {
    display: grid;
  }
  .google-score b {
    color: #fff;
    font-size: 0.77rem;
  }
  .google-score small {
    color: #ffffff8c;
    font-size: 0.7rem;
  }
  .review-stars {
    color: var(--saffron-light);
    letter-spacing: 0.16em;
    white-space: nowrap;
    font-size: 0.86rem;
  }
  .review-verified {
    color: #ffffff75;
    max-width: 29rem;
    font-size: 0.65rem;
  }
  .review-list {
    gap: 0.85rem;
    display: grid;
  }
  .review-card {
    border-radius: var(--radius);
    background: #ffffff0e;
    border: 1px solid #ffffff1a;
    gap: 1rem;
    margin: 0;
    padding: clamp(1.25rem, 3vw, 1.8rem);
    transition:
      transform 0.2s,
      background 0.2s;
    display: grid;
  }
  .review-card:hover {
    background: #ffffff14;
    transform: translate(-4px);
  }
  .review-card__top {
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    display: flex;
  }
  .google-mark {
    color: #4285f4;
    background: #fff;
    border-radius: 50%;
    place-items: center;
    width: 1.9rem;
    height: 1.9rem;
    font-size: 0.82rem;
    font-weight: 900;
    display: grid;
  }
  .review-card blockquote {
    color: #fff;
    font-family: var(--serif);
    margin: 0;
    font-size: clamp(1.25rem, 2.3vw, 1.75rem);
    line-height: 1.35;
  }
  .review-card figcaption {
    display: grid;
  }
  .review-card figcaption strong {
    color: #fff;
    font-size: 0.8rem;
  }
  .review-card figcaption span {
    color: #ffffff7a;
    font-size: 0.68rem;
  }
  .home-page .guest-reviews {
    background:
      radial-gradient(circle at 8% 20%, #d7963f1f, #0000 30%),
      radial-gradient(circle at 90% 75%, #71846e21, #0000 28%), #091b15;
    position: relative;
  }
  .home-page .guest-reviews:after {
    content: "";
    pointer-events: none;
    border: 1px solid #ffffff0b;
    border-radius: 50%;
    width: 28rem;
    height: 28rem;
    position: absolute;
    bottom: -12rem;
    right: -6rem;
    box-shadow:
      0 0 0 5rem #ffffff03,
      0 0 0 10rem #ffffff02;
  }
  .home-page .review-stage {
    z-index: 1;
    position: relative;
  }
  .home-review-actions {
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem;
    display: flex;
  }
  .home-review-google {
    color: #fff;
    text-underline-offset: 0.25rem;
    font-size: 0.78rem;
    font-weight: 800;
  }
  .home-page .review-card {
    position: relative;
    overflow: hidden;
  }
  .home-page .review-card:before {
    content: "";
    pointer-events: none;
    background: linear-gradient(100deg, #0000, #ffffff0b, #0000);
    transition: transform 0.8s;
    position: absolute;
    inset: 0;
    transform: translate(-102%);
  }
  .home-page .review-card:hover:before {
    transform: translate(102%);
  }
  .reviews-hero {
    background: var(--pine-950);
    color: #fff;
    align-items: end;
    min-height: min(840px, 92svh);
    display: grid;
    position: relative;
    overflow: hidden;
  }
  .reviews-hero__media,
  .reviews-hero__media picture,
  .reviews-hero__media img {
    width: 100%;
    height: 100%;
    position: absolute;
    inset: 0;
  }
  .reviews-hero__media {
    --parallax-y: 0px;
    transform: translate3d(0, var(--parallax-y), 0) scale(1.04);
    will-change: transform;
  }
  .reviews-hero__media img {
    object-fit: cover;
    object-position: center 44%;
  }
  .reviews-hero:after {
    content: "";
    background:
      linear-gradient(90deg, #071913eb 0%, #0719139c 47%, #07191333 100%),
      linear-gradient(#0000 38%, #071913bf);
    position: absolute;
    inset: 0;
  }
  .reviews-hero__content {
    z-index: 1;
    padding-block: 9.5rem 5.5rem;
    position: relative;
  }
  .reviews-hero .eyebrow {
    color: var(--saffron-light);
  }
  .reviews-hero__grid {
    grid-template-columns: minmax(0, 1.3fr) minmax(280px, 0.7fr);
    align-items: end;
    gap: clamp(2rem, 7vw, 7rem);
    margin-top: 1.1rem;
    display: grid;
  }
  .reviews-hero h1 {
    color: #fff;
    max-width: 830px;
    font-size: clamp(3.25rem, 7.2vw, 6.7rem);
  }
  .reviews-hero__grid > div > p {
    color: #ffffffc9;
    max-width: 630px;
    margin-top: 1.4rem;
    font-size: clamp(1rem, 2vw, 1.18rem);
  }
  .hero-word {
    vertical-align: bottom;
    margin: 0 0.16em -0.1em 0;
    padding-bottom: 0.1em;
    display: inline-block;
    overflow: hidden;
  }
  .hero-word > span {
    display: block;
  }
  .reviews-score-card {
    border-radius: var(--radius-lg);
    color: #fff;
    backdrop-filter: blur(18px);
    background: #081c15ad;
    border: 1px solid #fff3;
    justify-items: start;
    padding: clamp(1.5rem, 3vw, 2rem);
    text-decoration: none;
    transition:
      transform 0.25s,
      background 0.25s;
    display: grid;
    position: relative;
    overflow: hidden;
    box-shadow: 0 25px 80px #0003;
  }
  .reviews-score-card:after {
    content: "";
    pointer-events: none;
    background: linear-gradient(90deg, #0000, #ffffff14, #0000);
    transition: transform 0.9s;
    position: absolute;
    inset: -80% -45%;
    transform: translate(-55%) rotate(24deg);
  }
  .reviews-score-card:hover {
    background: #081c15d1;
    transform: translateY(-5px);
  }
  .reviews-score-card:hover:after {
    transform: translate(45%) rotate(24deg);
  }
  .reviews-score-card__label {
    color: #ffffffb8;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    align-items: center;
    gap: 0.7rem;
    font-size: 0.72rem;
    font-weight: 850;
    display: flex;
  }
  .reviews-score-card__score {
    color: #fff;
    font-family: var(--serif);
    letter-spacing: -0.06em;
    margin-block: 1.1rem 0.35rem;
    font-size: clamp(4.5rem, 8vw, 6.5rem);
    font-weight: 500;
    line-height: 0.75;
  }
  .reviews-score-card .review-stars .is-muted {
    color: #ffffff40;
  }
  .reviews-score-card strong {
    margin-top: 0.8rem;
    font-size: 0.9rem;
  }
  .reviews-score-card small {
    color: #ffffff80;
    margin-top: 0.25rem;
    font-size: 0.67rem;
  }
  .reviews-scroll-cue {
    color: #ffffff8c;
    letter-spacing: 0.13em;
    text-transform: uppercase;
    align-items: center;
    gap: 0.7rem;
    font-size: 0.6rem;
    font-weight: 800;
    text-decoration: none;
    display: flex;
    position: absolute;
    bottom: 1.3rem;
    left: 0;
  }
  .reviews-scroll-cue i {
    background: #ffffff2e;
    width: 2.8rem;
    height: 1px;
    display: block;
    position: relative;
    overflow: hidden;
  }
  .reviews-scroll-cue i:after {
    background: var(--saffron-light);
    content: "";
    animation: 2s ease-in-out infinite review-scroll-line;
    position: absolute;
    inset: 0;
    transform: translate(-100%);
  }
  .motion-ready .reviews-hero__media {
    animation: 1.7s cubic-bezier(0.22, 1, 0.36, 1) both reviews-hero-image;
  }
  .motion-ready .reviews-hero__breadcrumb {
    animation: 0.65s 0.1s both reviews-fade-down;
  }
  .motion-ready .reviews-hero__eyebrow {
    animation: 0.7s 0.24s both reviews-fade-up;
  }
  .motion-ready .hero-word > span {
    animation: 0.85s cubic-bezier(0.2, 0.9, 0.3, 1) both reviews-word-in;
    animation-delay: calc(0.34s + var(--word-index) * 90ms);
  }
  .motion-ready .reviews-hero__lead {
    animation: 0.75s 0.82s both reviews-fade-up;
  }
  .motion-ready .reviews-score-card {
    animation: 0.95s cubic-bezier(0.18, 0.89, 0.32, 1.18) 0.72s both
      reviews-score-in;
  }
  .motion-ready .reviews-score-card__stars > span {
    animation: 0.45s cubic-bezier(0.18, 0.89, 0.32, 1.7) both reviews-star-pop;
    animation-delay: calc(1.15s + var(--star-index) * 90ms);
    display: inline-block;
  }
  .motion-ready .reviews-scroll-cue {
    animation: 0.75s 1.2s both reviews-fade-up;
  }
  @keyframes reviews-hero-image {
    0% {
      transform: translate3d(0, var(--parallax-y), 0) scale(1.14);
      filter: brightness(0.7);
    }
    to {
      transform: translate3d(0, var(--parallax-y), 0) scale(1.04);
      filter: brightness();
    }
  }
  @keyframes reviews-fade-down {
    0% {
      opacity: 0;
      transform: translateY(-14px);
    }
  }
  @keyframes reviews-fade-up {
    0% {
      opacity: 0;
      transform: translateY(24px);
    }
  }
  @keyframes reviews-word-in {
    0% {
      transform: translateY(112%) rotate(2deg);
    }
    to {
      transform: translateY(0) rotate(0);
    }
  }
  @keyframes reviews-score-in {
    0% {
      opacity: 0;
      transform: translateY(45px) scale(0.93);
    }
  }
  @keyframes reviews-star-pop {
    0% {
      opacity: 0;
      transform: translateY(8px) scale(0.25) rotate(-22deg);
    }
  }
  @keyframes review-scroll-line {
    45%,
    to {
      transform: translate(100%);
    }
  }
  .reviews-subnav {
    z-index: 30;
    border-bottom: 1px solid var(--line);
    backdrop-filter: blur(18px);
    background: #fffdf8f0;
    position: sticky;
    top: 5rem;
    box-shadow: 0 8px 25px #0d241d0f;
  }
  .reviews-progress {
    transform-origin: 0;
    background: linear-gradient(90deg, var(--saffron), var(--saffron-light));
    will-change: transform;
    height: 2px;
    position: absolute;
    bottom: -1px;
    left: 0;
    right: 0;
    transform: scaleX(0);
  }
  .reviews-subnav__inner {
    scrollbar-width: none;
    overscroll-behavior-inline: contain;
    align-items: center;
    gap: 0.25rem;
    padding-block: 0.7rem;
    display: flex;
    overflow-x: auto;
  }
  .reviews-subnav__inner::-webkit-scrollbar {
    display: none;
  }
  .reviews-subnav__inner > span,
  .reviews-subnav a {
    white-space: nowrap;
    flex: none;
  }
  .reviews-subnav__inner > span {
    color: var(--muted);
    letter-spacing: 0.11em;
    text-transform: uppercase;
    margin-right: auto;
    padding-right: 1.5rem;
    font-size: 0.62rem;
    font-weight: 850;
  }
  .reviews-subnav a {
    color: var(--pine-800);
    border-radius: 999px;
    padding: 0.55rem 0.85rem;
    font-size: 0.73rem;
    font-weight: 800;
    text-decoration: none;
    transition:
      background 0.2s,
      color 0.2s;
  }
  .reviews-subnav a:hover,
  .reviews-subnav a[aria-current] {
    background: var(--pine-900);
    color: #fff;
  }
  .reviews-stories,
  .review-topics,
  .honest-feedback,
  .review-final {
    scroll-margin-top: 9rem;
  }
  .reviews-source-note {
    border-left: 3px solid var(--saffron);
    max-width: 38rem;
    padding-left: 1.2rem;
  }
  .reviews-source-note strong {
    color: var(--pine-900);
    font-family: var(--serif);
    margin-bottom: 0.35rem;
    font-size: 1.12rem;
    font-weight: 500;
    display: block;
  }
  .reviews-source-note p {
    color: var(--muted);
    font-size: 0.82rem;
  }
  .review-story-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    display: grid;
  }
  .review-story {
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: #fff;
    flex-direction: column;
    gap: 1.4rem;
    min-width: 0;
    min-height: 395px;
    padding: clamp(1.25rem, 2.8vw, 1.8rem);
    transition:
      transform 0.25s,
      box-shadow 0.25s,
      border-color 0.25s;
    display: flex;
    position: relative;
    overflow: hidden;
    box-shadow: 0 9px 35px #0d241d0e;
  }
  .review-story:before {
    z-index: 0;
    background: radial-gradient(
      420px circle at var(--pointer-x, 50%) var(--pointer-y, 50%),
      #d7963f24,
      transparent 48%
    );
    content: "";
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.35s;
    position: absolute;
    inset: 0;
  }
  .review-story:hover {
    box-shadow: var(--shadow);
    border-color: #d7963f8c;
    transform: translateY(-5px);
  }
  .review-story:hover:before {
    opacity: 1;
  }
  .review-story--featured {
    background: var(--pine-950);
    color: #ffffffbd;
    grid-column: span 2;
  }
  .review-story--featured:after {
    color: #ffffff09;
    content: "“";
    font-family: var(--serif);
    pointer-events: none;
    font-size: 24rem;
    line-height: 1;
    position: absolute;
    bottom: -5.5rem;
    right: -1rem;
  }
  .review-story__top {
    z-index: 1;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 0.75rem;
    display: grid;
    position: relative;
  }
  .review-avatar {
    background: var(--cream);
    width: 2.7rem;
    height: 2.7rem;
    color: var(--pine-800);
    font-family: var(--serif);
    border-radius: 50%;
    place-items: center;
    font-size: 1.25rem;
    display: grid;
  }
  .review-story--featured .review-avatar {
    background: var(--saffron);
    color: var(--pine-950);
  }
  .review-story__top > div {
    line-height: 1.3;
    display: grid;
  }
  .review-story__top strong {
    color: var(--pine-950);
    font-size: 0.8rem;
  }
  .review-story--featured .review-story__top strong {
    color: #fff;
  }
  .review-story__top div span {
    color: var(--muted);
    font-size: 0.65rem;
  }
  .review-story--featured .review-story__top div span {
    color: #ffffff7a;
  }
  .review-story__rating {
    color: var(--saffron);
    letter-spacing: 0.08em;
    white-space: nowrap;
    font-size: 0.65rem;
  }
  .review-story__copy {
    z-index: 1;
    gap: 0.65rem;
    display: grid;
    position: relative;
  }
  .review-story__copy > span {
    color: var(--pine-700);
    letter-spacing: 0.12em;
    text-transform: uppercase;
    font-size: 0.6rem;
    font-weight: 850;
  }
  .review-story--featured .review-story__copy > span {
    color: var(--saffron-light);
  }
  .review-story h3 {
    font-size: clamp(1.55rem, 2.6vw, 2.15rem);
  }
  .review-story--featured h3 {
    color: #fff;
    max-width: 650px;
    font-size: clamp(2rem, 4vw, 3.25rem);
  }
  .review-story__copy p {
    max-width: 720px;
    color: var(--muted);
    font-size: 0.9rem;
  }
  .review-story--featured .review-story__copy p {
    color: #ffffffb3;
    font-size: 1rem;
  }
  .review-score-pills {
    z-index: 1;
    flex-wrap: wrap;
    gap: 0.4rem;
    display: flex;
    position: relative;
  }
  .review-score-pills span {
    border: 1px solid var(--line);
    color: var(--pine-800);
    border-radius: 999px;
    padding: 0.34rem 0.58rem;
    font-size: 0.59rem;
    font-weight: 800;
  }
  .review-story--featured .review-score-pills span {
    color: #ffffffb8;
    border-color: #ffffff26;
  }
  .review-story__verified {
    z-index: 1;
    color: var(--muted);
    align-items: center;
    gap: 0.4rem;
    margin-top: auto;
    font-size: 0.63rem;
    font-weight: 750;
    display: flex;
    position: relative;
  }
  .review-story__verified span {
    color: #287842;
    background: #eaf4ec;
    border-radius: 50%;
    place-items: center;
    width: 1.15rem;
    height: 1.15rem;
    font-size: 0.62rem;
    display: grid;
  }
  .review-story--featured .review-story__verified {
    color: #ffffff7a;
  }
  .reviews-all-link {
    text-align: center;
    justify-content: center;
    align-items: center;
    gap: 1.2rem;
    margin-top: 2.5rem;
    display: flex;
  }
  .reviews-all-link p {
    color: var(--muted);
    font-family: var(--serif);
    font-size: 1.1rem;
  }
  .review-topics__layout {
    grid-template-columns: 1.15fr 0.85fr;
    gap: clamp(1.5rem, 5vw, 4.5rem);
    display: grid;
  }
  .review-topic-chart {
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    background: #fff;
    gap: 1.3rem;
    padding: clamp(1.4rem, 4vw, 2.5rem);
    display: grid;
    box-shadow: 0 15px 45px #0d241d0f;
  }
  .review-topic-row {
    gap: 0.55rem;
    display: grid;
  }
  .review-topic-row > div:first-child {
    justify-content: space-between;
    align-items: baseline;
    gap: 1rem;
    display: flex;
  }
  .review-topic-row strong {
    color: var(--pine-900);
    font-size: 0.78rem;
  }
  .review-topic-row div > span {
    color: var(--muted);
    font-size: 0.66rem;
  }
  .review-topic-track {
    background: var(--cream);
    border-radius: 999px;
    height: 0.55rem;
    overflow: hidden;
  }
  .review-topic-track span {
    width: var(--topic-width);
    transform-origin: 0;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--saffron), var(--saffron-light));
    height: 100%;
    transition: transform 0.9s cubic-bezier(0.2, 0.8, 0.25, 1);
    transition-delay: var(--topic-delay);
    display: block;
    transform: scaleX(1);
  }
  .motion-ready .review-topic-chart:not(.is-visible) .review-topic-track span {
    transform: scaleX(0);
  }
  .review-topic-notes {
    align-content: start;
    gap: 0;
    display: grid;
  }
  .review-topic-notes article {
    border-bottom: 1px solid var(--line);
    grid-template-columns: 3.2rem 1fr;
    gap: 1rem;
    padding-block: 1.25rem;
    display: grid;
  }
  .review-topic-notes article:first-child {
    padding-top: 0.4rem;
  }
  .review-topic-notes article > span {
    color: var(--saffron);
    font-family: var(--serif);
    font-size: 1.5rem;
  }
  .review-topic-notes h3 {
    font-size: 1.25rem;
  }
  .review-topic-notes p {
    color: var(--muted);
    margin-top: 0.25rem;
    font-size: 0.82rem;
  }
  .honest-feedback__panel {
    border-radius: var(--radius-lg);
    background: var(--pine-900);
    color: #ffffffb3;
    box-shadow: var(--shadow);
    grid-template-columns: 0.9fr 1.1fr;
    align-items: stretch;
    display: grid;
    overflow: hidden;
  }
  .honest-feedback__media {
    min-height: 570px;
  }
  .honest-feedback__media picture,
  .honest-feedback__media img {
    width: 100%;
    height: 100%;
  }
  .honest-feedback__media img {
    object-fit: cover;
  }
  .honest-feedback__copy {
    align-content: center;
    justify-items: start;
    gap: 1.25rem;
    padding: clamp(2rem, 6vw, 5rem);
    display: grid;
  }
  .honest-feedback__copy .eyebrow {
    color: var(--saffron-light);
  }
  .honest-feedback__copy h2 {
    color: #fff;
    font-size: clamp(2.3rem, 4.7vw, 4rem);
  }
  .honest-feedback__copy p {
    max-width: 650px;
  }
  .honest-feedback__actions,
  .review-final__actions {
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem;
    margin-top: 0.3rem;
    display: flex;
  }
  .honest-feedback__actions .text-link {
    color: #fff;
  }
  .review-final {
    position: relative;
    overflow: hidden;
  }
  .review-final:before,
  .review-final:after {
    content: "";
    filter: blur(2px);
    pointer-events: none;
    background: #d7963f12;
    border-radius: 50%;
    width: 28rem;
    height: 28rem;
    position: absolute;
  }
  .review-final:before {
    animation: 12s ease-in-out infinite alternate review-orbit;
    top: -20rem;
    left: 10%;
  }
  .review-final:after {
    animation: 14s ease-in-out -3s infinite alternate-reverse review-orbit;
    bottom: -22rem;
    right: -14rem;
  }
  .review-final__inner {
    z-index: 1;
    grid-template-columns: 1.2fr 0.8fr;
    align-items: end;
    gap: clamp(2rem, 7vw, 7rem);
    display: grid;
    position: relative;
  }
  .review-final__inner > div:last-child {
    justify-items: start;
    gap: 1.3rem;
    display: grid;
  }
  .review-final__inner p {
    max-width: 540px;
  }
  .motion-ready [data-reveal] {
    opacity: 0;
    transition:
      opacity 0.75s ease var(--reveal-delay, 0s),
      transform 0.85s cubic-bezier(0.2, 0.8, 0.25, 1) var(--reveal-delay, 0s);
    transform: translateY(42px);
  }
  .motion-ready [data-reveal].is-visible {
    opacity: 1;
    transform: translateY(0);
  }
  .motion-ready [data-reveal-child] {
    opacity: 0;
    transition:
      opacity 0.65s 0.16s,
      transform 0.75s cubic-bezier(0.2, 0.8, 0.25, 1) 0.16s;
    transform: translateY(24px);
  }
  .motion-ready [data-reveal-child]:nth-child(2) {
    transition-delay: 0.28s;
  }
  .motion-ready .is-visible [data-reveal-child] {
    opacity: 1;
    transform: translateY(0);
  }
  .motion-ready [data-image-reveal] {
    clip-path: inset(0 100% 0 0);
    transition: clip-path 1s cubic-bezier(0.65, 0, 0.35, 1) 0.1s;
    overflow: hidden;
  }
  .motion-ready [data-image-reveal] img {
    transition: transform 1.35s cubic-bezier(0.2, 0.8, 0.25, 1) 0.1s;
    transform: scale(1.12);
  }
  .motion-ready .is-visible [data-image-reveal] {
    clip-path: inset(0);
  }
  .motion-ready .is-visible [data-image-reveal] img {
    transform: scale(1);
  }
  .motion-ready .review-story.is-visible:hover {
    transform: translateY(-7px);
  }
  @keyframes review-orbit {
    to {
      transform: translate(4rem, 2rem) scale(1.12);
    }
  }
  .story-grid {
    grid-template-columns: 1fr 1fr;
    align-items: center;
    gap: clamp(2rem, 6vw, 6rem);
    display: grid;
  }
  .story-media {
    position: relative;
  }
  .story-media__main {
    border-radius: var(--radius-lg);
    aspect-ratio: 4/5;
    overflow: hidden;
  }
  .story-media__main img {
    object-fit: cover;
    width: 100%;
    height: 100%;
  }
  .story-media__badge {
    border-radius: var(--radius);
    background: var(--saffron);
    max-width: 13rem;
    color: var(--pine-950);
    box-shadow: var(--shadow);
    padding: 1.25rem;
    position: absolute;
    bottom: 2rem;
    right: -1rem;
  }
  .home-page .story-media__badge {
    animation: 4.5s ease-in-out infinite alternate home-badge-float;
  }
  .story-media__badge strong {
    font-family: var(--serif);
    font-size: 1.6rem;
    font-weight: 500;
    display: block;
  }
  .story-copy {
    gap: 1.3rem;
    display: grid;
  }
  .story-copy > p {
    color: var(--muted);
  }
  .check-list {
    grid-template-columns: 1fr 1fr;
    gap: 0.8rem;
    padding: 0;
    list-style: none;
    display: grid;
  }
  .check-list li {
    align-items: start;
    gap: 0.55rem;
    font-size: 0.9rem;
    font-weight: 700;
    display: flex;
  }
  .check-list li:before {
    color: var(--saffron);
    content: "◆";
    font-size: 0.7rem;
    transform: translateY(0.25rem);
  }
  .experience-grid {
    grid-template-rows: repeat(2, 250px);
    grid-template-columns: 1.2fr 0.8fr 0.8fr;
    gap: 0.8rem;
    display: grid;
  }
  .experience-card {
    border-radius: var(--radius);
    position: relative;
    overflow: hidden;
  }
  .experience-card:first-child {
    grid-row: 1/-1;
  }
  .experience-card img {
    object-fit: cover;
    width: 100%;
    height: 100%;
    transition: transform 0.6s;
  }
  .experience-card:hover img {
    transform: scale(1.04);
  }
  .experience-card:after {
    content: "";
    background: linear-gradient(#0000, #071913c7);
    position: absolute;
    inset: 45% 0 0;
  }
  .experience-card span {
    z-index: 1;
    color: #fff;
    font-family: var(--serif);
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    font-size: 1.25rem;
    display: flex;
    position: absolute;
    bottom: 0.9rem;
    left: 1rem;
    right: 1rem;
  }
  .home-page .experience-card span:after {
    content: "→";
    width: 2rem;
    height: 2rem;
    font-family: var(--sans);
    opacity: 0;
    border: 1px solid #ffffff59;
    border-radius: 50%;
    flex: none;
    place-items: center;
    font-size: 0.75rem;
    transition:
      opacity 0.25s,
      transform 0.25s,
      background 0.25s;
    display: grid;
    transform: translate(0.4rem);
  }
  .home-page .experience-card:hover span:after {
    opacity: 1;
    background: #ffffff1f;
    transform: translate(0);
  }
  .home-page .experience-card {
    transition:
      transform 0.3s,
      box-shadow 0.3s;
    box-shadow: 0 12px 35px #0d241d1a;
  }
  .home-page .experience-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 22px 48px #0d241d29;
  }
  .home-day {
    background: linear-gradient(
      180deg,
      var(--paper),
      #f4efe5 45%,
      var(--paper)
    );
    position: relative;
    overflow: clip;
  }
  .home-day:before {
    background: repeating-linear-gradient(
      90deg,
      var(--saffron) 0 28px,
      var(--pine-800) 28px 46px,
      var(--saffron-light) 46px 58px,
      transparent 58px 70px
    );
    content: "";
    opacity: 0.58;
    height: 5px;
    position: absolute;
    inset: 0 0 auto;
  }
  .home-day__layout {
    grid-template-columns: minmax(250px, 0.68fr) minmax(0, 1.32fr);
    align-items: start;
    gap: clamp(2rem, 7vw, 7rem);
    display: grid;
  }
  .home-day__aside {
    border-top: 1px solid var(--line);
    align-content: start;
    gap: 1.6rem;
    min-width: 0;
    padding: 1.5rem 0 1rem 2rem;
    display: grid;
    position: sticky;
    top: 7rem;
  }
  .home-day__count {
    color: var(--muted);
    align-items: baseline;
    display: flex;
  }
  .home-day__count strong {
    color: var(--saffron);
    font-family: var(--serif);
    letter-spacing: -0.07em;
    font-size: 4.4rem;
    font-weight: 500;
    line-height: 0.8;
  }
  .home-day__count span {
    letter-spacing: 0.08em;
    margin-left: 0.45rem;
    font-size: 0.72rem;
    font-weight: 850;
  }
  .home-day__aside-copy {
    gap: 0.65rem;
    display: grid;
  }
  .home-day__aside-copy > span {
    color: var(--pine-700);
    letter-spacing: 0.13em;
    text-transform: uppercase;
    font-size: 0.62rem;
    font-weight: 850;
  }
  .home-day__aside-copy h3 {
    max-width: 280px;
    font-size: clamp(1.8rem, 3.2vw, 2.7rem);
  }
  .home-day__aside-copy p {
    max-width: 300px;
    color: var(--muted);
    font-size: 0.85rem;
  }
  .home-day__nav {
    gap: 0.15rem;
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
  }
  .home-day__nav a {
    color: var(--muted);
    border-radius: 0.65rem;
    grid-template-columns: 3.2rem 1fr;
    align-items: center;
    gap: 0.7rem;
    padding: 0.55rem 0.65rem;
    font-size: 0.78rem;
    font-weight: 800;
    text-decoration: none;
    transition:
      color 0.25s,
      background 0.25s,
      transform 0.25s;
    display: grid;
  }
  .home-day__nav a span {
    color: var(--saffron);
    font-family: var(--serif);
    font-size: 0.82rem;
    font-weight: 500;
  }
  .home-day__nav a:hover {
    color: var(--pine-900);
    transform: translate(4px);
  }
  .home-day__nav a.is-active {
    background: var(--pine-900);
    color: #fff;
  }
  .home-day__track {
    background: #13352a1a;
    width: 2px;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    overflow: hidden;
  }
  .home-day__track span {
    width: 100%;
    height: var(--day-progress);
    background: linear-gradient(var(--saffron), var(--saffron-light));
    transition: height 0.65s cubic-bezier(0.2, 0.8, 0.25, 1);
    display: block;
  }
  .home-day__scenes {
    gap: clamp(1.3rem, 3vw, 2.5rem);
    min-width: 0;
    display: grid;
  }
  .home-day__scene {
    border-radius: var(--radius-lg);
    background: var(--pine-950);
    color: #fff;
    border: 1px solid #ffffff2e;
    min-height: clamp(510px, 68vh, 700px);
    scroll-margin-top: 7rem;
    transition:
      box-shadow 0.45s,
      border-color 0.45s;
    position: relative;
    overflow: hidden;
    box-shadow: 0 18px 55px #0d241d1f;
  }
  .home-day__scene.is-active {
    border-color: #d7963f8c;
    box-shadow: 0 30px 80px #0d241d36;
  }
  .home-day__media,
  .home-day__media picture,
  .home-day__media img {
    width: 100%;
    height: 100%;
    position: absolute;
    inset: 0;
  }
  .home-day__media img {
    object-fit: cover;
    transition:
      filter 0.7s,
      transform 1.2s cubic-bezier(0.2, 0.8, 0.25, 1);
    transform: scale(1.055);
  }
  .home-day__scene:after {
    content: "";
    background:
      linear-gradient(#0000, #0719131a 42%, #071913e6),
      linear-gradient(90deg, #0719133d, #0000 55%);
    position: absolute;
    inset: 0;
  }
  .home-day__scene-copy {
    z-index: 1;
    gap: 0.75rem;
    max-width: 760px;
    padding: clamp(1.5rem, 5vw, 3.5rem);
    display: grid;
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
  }
  .home-day__scene-copy > span {
    color: #ffffffa3;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    align-items: center;
    gap: 0.8rem;
    font-size: 0.62rem;
    font-weight: 850;
    display: flex;
  }
  .home-day__scene-copy > span b {
    color: var(--saffron-light);
    font-family: var(--serif);
    letter-spacing: 0;
    font-size: 1rem;
    font-weight: 500;
  }
  .home-day__scene-copy h3 {
    color: #fff;
    font-size: clamp(2.4rem, 5.5vw, 4.7rem);
  }
  .home-day__scene-copy p {
    color: #ffffffbf;
    max-width: 570px;
    font-size: clamp(0.9rem, 1.6vw, 1.05rem);
  }
  .motion-ready .home-day__scene .home-day__scene-copy > * {
    opacity: 0.55;
    transition:
      opacity 0.6s,
      transform 0.7s cubic-bezier(0.2, 0.8, 0.25, 1);
    transform: translateY(14px);
  }
  .motion-ready .home-day__scene.is-active .home-day__scene-copy > * {
    opacity: 1;
    transform: translateY(0);
  }
  .motion-ready
    .home-day__scene.is-active
    .home-day__scene-copy
    > :nth-child(2) {
    transition-delay: 80ms;
  }
  .motion-ready
    .home-day__scene.is-active
    .home-day__scene-copy
    > :nth-child(3) {
    transition-delay: 0.16s;
  }
  .home-day__end {
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: #fff;
    justify-content: space-between;
    align-items: center;
    gap: 1.5rem;
    padding: clamp(1.25rem, 4vw, 2rem);
    display: flex;
  }
  .home-day__end > span {
    color: var(--pine-900);
    font-family: var(--serif);
    font-size: clamp(1.35rem, 2.5vw, 2rem);
  }
  .home-day__end > div {
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem;
    display: flex;
  }
  @supports (animation-timeline: scroll()) {
    .home-progress {
      animation: linear both home-native-progress scroll();
    }
    .home-day__media img {
      animation: linear both home-scene-parallax view();
      animation-range: entry exit;
    }
  }
  @keyframes home-native-progress {
    0% {
      transform: scaleX(0);
    }
    to {
      transform: scaleX(1);
    }
  }
  @keyframes home-scene-parallax {
    0% {
      transform: scale(1.08) translateY(-3%);
    }
    to {
      transform: scale(1.08) translateY(3%);
    }
  }
  .cta-panel {
    border-radius: var(--radius-lg);
    background: var(--pine-900);
    color: #ffffffbd;
    grid-template-columns: 1.1fr 0.9fr;
    align-items: center;
    gap: 2rem;
    display: grid;
    overflow: hidden;
  }
  .cta-panel__copy {
    gap: 1.2rem;
    padding: clamp(2rem, 5vw, 4.5rem);
    display: grid;
  }
  .cta-panel h2 {
    color: #fff;
  }
  .cta-panel__image {
    height: 100%;
    min-height: 420px;
  }
  .cta-panel__image img {
    object-fit: cover;
    width: 100%;
    height: 100%;
  }
  .home-page .cta-panel {
    background:
      radial-gradient(circle at 20% 0%, #d7963f26, transparent 34%),
      var(--pine-900);
    position: relative;
    box-shadow: 0 25px 70px #0d241d2e;
  }
  .home-page .cta-panel:before {
    content: "";
    pointer-events: none;
    border: 1px solid #ffffff0f;
    border-radius: 50%;
    width: 24rem;
    height: 24rem;
    position: absolute;
    bottom: -12rem;
    left: -9rem;
    box-shadow: 0 0 0 4rem #ffffff04;
  }
  .home-page .cta-panel__copy {
    z-index: 1;
    position: relative;
  }
  .home-page .section--pine .feature {
    color: #ffffffa3;
    background: #ffffff0e;
    border-color: #ffffff1a;
    transition:
      transform 0.28s,
      background 0.28s,
      border-color 0.28s;
  }
  .home-page .section--pine .feature:hover {
    background: #ffffff16;
    border-color: #f0c47d57;
    transform: translateY(-6px);
  }
  .home-page .section--pine .feature__icon {
    background: #ffffff14;
  }
  .home-page .section--pine .feature:hover .feature__icon {
    background: var(--saffron);
    color: var(--pine-950);
    transform: rotate(-7deg) scale(1.08);
  }
  .home-page .section--pine .feature__icon {
    transition:
      transform 0.28s,
      background 0.28s,
      color 0.28s;
  }
  .motion-ready .home-page .room-card.is-visible:hover,
  .motion-ready .home-page .article-card.is-visible:hover,
  .motion-ready .home-page .experience-card.is-visible:hover,
  .motion-ready .home-page .feature.is-visible:hover {
    transform: translateY(-6px);
  }
  @keyframes home-badge-float {
    to {
      transform: translateY(-9px) rotate(0.4deg);
    }
  }
  .site-footer {
    color: #ffffffa6;
    background: #091b15;
    padding: 4rem 0 6.5rem;
  }
  .footer-grid {
    grid-template-columns: 1.3fr repeat(3, 1fr);
    gap: 2.5rem;
    display: grid;
  }
  .footer-brand p {
    max-width: 20rem;
    margin-top: 1rem;
  }
  .footer-title {
    color: #fff;
    letter-spacing: 0.13em;
    text-transform: uppercase;
    margin-bottom: 1rem;
    font-size: 0.75rem;
    font-weight: 800;
  }
  .footer-links {
    gap: 0.55rem;
    padding: 0;
    list-style: none;
    display: grid;
  }
  .footer-links a {
    text-decoration: none;
  }
  .footer-links a:hover {
    color: var(--saffron-light);
  }
  .footer-bottom {
    border-top: 1px solid #ffffff1a;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 3rem;
    padding-top: 1.4rem;
    font-size: 0.78rem;
    display: flex;
  }
  .mobile-booking {
    z-index: 40;
    border: 1px solid var(--line);
    backdrop-filter: blur(12px);
    background: #fffdf8f5;
    border-radius: 999px;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem;
    padding: 0.45rem;
    display: none;
    position: fixed;
    bottom: 0.75rem;
    left: 0.75rem;
    right: 0.75rem;
    box-shadow: 0 12px 35px #0d241d33;
  }
  .mobile-booking a {
    min-height: 2.8rem;
  }
  .room-intro {
    grid-template-columns: 1.05fr 0.95fr;
    align-items: start;
    gap: clamp(2rem, 6vw, 5rem);
    display: grid;
  }
  .room-intro__copy {
    gap: 1.2rem;
    display: grid;
  }
  .room-intro__copy > p {
    color: var(--muted);
    font-size: 1.08rem;
  }
  .room-facts {
    flex-wrap: wrap;
    gap: 0.7rem;
    display: flex;
  }
  .room-facts span {
    border: 1px solid var(--line);
    color: var(--pine-800);
    border-radius: 999px;
    padding: 0.5rem 0.8rem;
    font-size: 0.78rem;
    font-weight: 800;
  }
  .price-card {
    border: 1px solid var(--line);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    background: #fff;
    padding: clamp(1.4rem, 4vw, 2.2rem);
  }
  .price-card h2 {
    font-size: 1.8rem;
  }
  .price-list {
    gap: 0.7rem;
    margin: 1.3rem 0;
    padding: 0;
    list-style: none;
    display: grid;
  }
  .price-list li {
    border-bottom: 1px solid var(--line);
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    padding: 0.85rem 0;
    display: flex;
  }
  .price-list span {
    color: var(--muted);
    font-size: 0.84rem;
  }
  .price-list span strong {
    color: var(--pine-950);
    display: block;
  }
  .price-list b {
    color: var(--pine-800);
    font-family: var(--serif);
    font-size: 1.35rem;
    font-weight: 500;
  }
  .price-note {
    color: var(--muted);
    font-size: 0.75rem;
  }
  .gallery-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
  }
  .gallery-item {
    border-radius: var(--radius);
    background: var(--cream);
    cursor: zoom-in;
    overflow: hidden;
  }
  .gallery-item picture {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    line-height: 0;
  }
  .gallery-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transition: transform 0.5s;
  }
  .gallery-item:hover img {
    transform: scale(1.025);
  }
  .gallery-lightbox {
    z-index: 100;
    position: fixed;
    inset: 0;
    display: grid;
    place-items: center;
    padding: clamp(1rem, 4vw, 3rem);
  }
  .gallery-lightbox[hidden] {
    display: none;
  }
  .gallery-lightbox__backdrop {
    background: #061610e8;
    position: absolute;
    inset: 0;
  }
  .gallery-lightbox__content {
    z-index: 1;
    width: min(1100px, 100%);
    max-height: 100%;
    position: relative;
  }
  .gallery-lightbox__image {
    object-fit: contain;
    width: 100%;
    max-height: calc(100svh - 9rem);
    margin: auto;
  }
  .gallery-lightbox__caption {
    color: #ffffffd9;
    text-align: center;
    max-width: 52rem;
    margin: 0.8rem auto 0;
    font-size: 0.82rem;
  }
  .gallery-lightbox__close {
    z-index: 2;
    width: 2.75rem;
    height: 2.75rem;
    color: var(--pine-950);
    cursor: pointer;
    background: #fff;
    border: 0;
    border-radius: 50%;
    font-size: 2rem;
    line-height: 1;
    position: absolute;
    top: 0.75rem;
    right: 0.75rem;
  }
  .has-gallery-lightbox {
    overflow: hidden;
  }
  .gallery-caption {
    color: var(--muted);
    padding: 0.8rem 1rem;
    font-size: 0.78rem;
  }
  .home-journal .section-heading > div:last-child {
    justify-items: start;
    gap: 0.75rem;
    display: grid;
  }
  .article-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 1.25rem;
    display: grid;
  }
  .article-card {
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: #fff;
    transition:
      transform 0.25s,
      box-shadow 0.25s;
    display: grid;
    overflow: hidden;
    box-shadow: 0 8px 28px #0d241d0f;
  }
  .article-card:hover {
    box-shadow: var(--shadow);
    transform: translateY(-5px);
  }
  .article-card__image {
    aspect-ratio: 16/10;
    background: var(--pine-900);
    display: block;
    overflow: hidden;
  }
  .article-card__image picture,
  .article-card__image img {
    width: 100%;
    height: 100%;
  }
  .article-card__image img {
    object-fit: cover;
    transition: transform 0.6s;
  }
  .article-card:hover .article-card__image img {
    transform: scale(1.035);
  }
  .article-card__body {
    align-content: start;
    gap: 0.9rem;
    padding: 1.4rem;
    display: grid;
  }
  .article-card__meta {
    color: var(--pine-700);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    align-items: center;
    gap: 0.75rem;
    font-size: 0.66rem;
    font-weight: 850;
    display: flex;
  }
  .article-card__meta span + span {
    color: var(--muted);
    align-items: center;
    gap: 0.75rem;
    display: flex;
  }
  .article-card__meta span + span:before {
    background: var(--saffron);
    content: "";
    border-radius: 50%;
    width: 3px;
    height: 3px;
  }
  .article-card h3 {
    font-size: clamp(1.35rem, 2.2vw, 1.75rem);
  }
  .article-card h3 a {
    text-decoration: none;
  }
  .article-card__body > p {
    color: var(--muted);
    font-size: 0.9rem;
  }
  .article-card__footer {
    color: var(--muted);
    justify-content: space-between;
    align-items: center;
    gap: 0.8rem;
    margin-top: auto;
    padding-top: 0.3rem;
    font-size: 0.7rem;
    display: flex;
  }
  .article-card__read {
    color: var(--pine-800);
    white-space: nowrap;
    font-weight: 850;
    text-decoration: none;
  }
  .article-card__read span {
    margin-left: 0.25rem;
    transition: transform 0.2s;
    display: inline-block;
  }
  .article-card:hover .article-card__read span {
    transform: translate(0.2rem);
  }
  .article-card--featured {
    grid-template-columns: 1.15fr 0.85fr;
    margin-top: 3rem;
  }
  .article-card--featured .article-card__image {
    aspect-ratio: auto;
    min-height: 460px;
  }
  .article-card--featured .article-card__body {
    align-content: center;
    padding: clamp(2rem, 5vw, 4rem);
  }
  .article-card--featured h3 {
    font-size: clamp(2rem, 4vw, 3.6rem);
  }
  .article-card--featured .article-card__body > p {
    font-size: 1rem;
  }
  .journal-intro {
    grid-template-columns: 1.1fr 0.9fr;
    align-items: end;
    gap: clamp(2rem, 6vw, 6rem);
    display: grid;
  }
  .journal-intro h2 {
    max-width: 780px;
  }
  .journal-intro > p {
    max-width: 38rem;
    color: var(--muted);
  }
  .journal-cta {
    border-radius: var(--radius-lg);
    background: var(--pine-950);
    color: #ffffffb8;
    grid-template-columns: 1.05fr 0.95fr;
    align-items: center;
    gap: clamp(2rem, 7vw, 7rem);
    padding: clamp(2rem, 6vw, 5rem);
    display: grid;
  }
  .journal-cta h2 {
    color: #fff;
  }
  .journal-cta > div:last-child {
    justify-items: start;
    gap: 1.25rem;
    display: grid;
  }
  .article-hero {
    background: var(--pine-950);
    color: #ffffffc7;
    padding: 10rem 0 5rem;
  }
  .article-hero__inner {
    width: min(930px, 100% - 2rem);
  }
  .article-hero h1 {
    color: #fff;
    max-width: 920px;
    font-size: clamp(2.8rem, 6.5vw, 5.8rem);
  }
  .article-hero__inner > p {
    max-width: 760px;
    margin-top: 1.4rem;
    font-size: clamp(1rem, 2vw, 1.2rem);
  }
  .article-kicker {
    color: var(--saffron-light);
    letter-spacing: 0.13em;
    text-transform: uppercase;
    align-items: center;
    gap: 0.8rem;
    margin-bottom: 1rem;
    font-size: 0.7rem;
    font-weight: 850;
    display: flex;
  }
  .article-kicker span + span {
    color: #ffffff94;
    align-items: center;
    gap: 0.8rem;
    display: flex;
  }
  .article-kicker span + span:before {
    background: var(--saffron);
    content: "";
    width: 1.8rem;
    height: 1px;
  }
  .article-byline {
    align-items: center;
    gap: 0.8rem;
    margin-top: 2rem;
    display: flex;
  }
  .article-byline img {
    object-fit: contain;
    background: #fff;
    border: 1px solid #ffffff38;
    border-radius: 50%;
    width: 2.7rem;
    height: 2.7rem;
  }
  .article-byline div {
    display: grid;
  }
  .article-byline strong {
    color: #fff;
    font-size: 0.82rem;
  }
  .article-byline span {
    font-size: 0.72rem;
  }
  .article-cover {
    z-index: 2;
    border-radius: 0 0 var(--radius-lg) var(--radius-lg);
    background: var(--cream);
    height: min(64vw, 680px);
    margin-top: -1px;
    position: relative;
    overflow: hidden;
  }
  .article-cover picture,
  .article-cover img {
    width: 100%;
    height: 100%;
  }
  .article-cover img {
    object-fit: cover;
  }
  .article-layout {
    grid-template-columns: 250px minmax(0, 760px);
    justify-content: center;
    gap: clamp(2rem, 6vw, 6rem);
    padding-block: clamp(4rem, 8vw, 7rem);
    display: grid;
  }
  .article-sidebar {
    align-self: stretch;
  }
  .toc-card {
    border-top: 3px solid var(--saffron);
    padding-top: 1rem;
    position: sticky;
    top: 7rem;
  }
  .toc-title {
    color: var(--pine-950);
    letter-spacing: 0.12em;
    text-transform: uppercase;
    margin-bottom: 1rem;
    font-size: 0.72rem;
    font-weight: 850;
  }
  .toc-card ol {
    counter-reset: toc;
    gap: 0.75rem;
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
  }
  .toc-card li {
    color: var(--muted);
    counter-increment: toc;
    grid-template-columns: 1.5rem 1fr;
    gap: 0.35rem;
    font-size: 0.78rem;
    line-height: 1.4;
    display: grid;
  }
  .toc-card li:before {
    color: var(--saffron);
    content: "0" counter(toc);
    font-family: var(--serif);
  }
  .toc-card a {
    text-decoration: none;
  }
  .toc-card a:hover {
    color: var(--pine-800);
  }
  .sidebar-enquiry {
    border-radius: var(--radius-sm);
    background: var(--cream);
    gap: 0.55rem;
    margin-top: 2rem;
    padding: 1.1rem;
    display: grid;
  }
  .sidebar-enquiry span {
    color: var(--pine-700);
    letter-spacing: 0.11em;
    text-transform: uppercase;
    font-size: 0.62rem;
    font-weight: 850;
  }
  .sidebar-enquiry strong {
    color: var(--pine-950);
    font-family: var(--serif);
    font-size: 1.15rem;
    font-weight: 500;
    line-height: 1.25;
  }
  .sidebar-enquiry a {
    color: var(--pine-800);
    font-size: 0.75rem;
    font-weight: 850;
  }
  .article-content {
    min-width: 0;
  }
  .article-intro {
    color: var(--pine-900);
    font-family: var(--serif);
    font-size: clamp(1.35rem, 2.4vw, 1.85rem);
    line-height: 1.45;
  }
  .article-highlights {
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--cream);
    margin: 2.5rem 0 3.5rem;
    padding: clamp(1.4rem, 4vw, 2rem);
  }
  .article-highlights > p {
    color: var(--pine-800);
    letter-spacing: 0.12em;
    text-transform: uppercase;
    margin-bottom: 1rem;
    font-size: 0.72rem;
    font-weight: 850;
  }
  .article-highlights ul,
  .article-section ul {
    gap: 0.7rem;
    padding-left: 1.2rem;
    display: grid;
  }
  .article-highlights li::marker,
  .article-section li::marker {
    color: var(--saffron);
  }
  .article-highlights li {
    font-size: 0.92rem;
  }
  .article-section {
    margin-top: 3.6rem;
    scroll-margin-top: 7rem;
  }
  .article-section h2 {
    margin-bottom: 1.25rem;
    font-size: clamp(2rem, 4vw, 3rem);
  }
  .article-section p,
  .article-section li {
    color: #435049;
    font-size: 1.02rem;
    line-height: 1.85;
  }
  .article-section p + p,
  .article-section p + ul {
    margin-top: 1rem;
  }
  .article-note {
    border-left: 4px solid var(--saffron);
    background: var(--cream);
    margin-top: 1.7rem;
    padding: 1.15rem 1.4rem;
  }
  .article-note strong {
    color: var(--pine-800);
    letter-spacing: 0.11em;
    text-transform: uppercase;
    font-size: 0.67rem;
  }
  .article-note p {
    color: var(--ink);
    margin-top: 0.3rem;
    font-size: 0.92rem;
    line-height: 1.6;
  }
  .article-end-cta {
    border-radius: var(--radius-lg);
    background: var(--pine-900);
    color: #ffffffbd;
    gap: 1rem;
    margin-top: 4.5rem;
    padding: clamp(1.7rem, 5vw, 3rem);
    display: grid;
  }
  .article-end-cta h2 {
    color: #fff;
    font-size: clamp(2rem, 4vw, 3.2rem);
  }
  .article-end-cta > div {
    flex-wrap: wrap;
    align-items: center;
    gap: 1.2rem;
    display: flex;
  }
  .article-end-cta .text-link {
    color: #fff;
  }
  .contact-grid {
    grid-template-columns: 0.8fr 1.2fr;
    gap: clamp(2rem, 5vw, 5rem);
    display: grid;
  }
  .contact-cards {
    gap: 1rem;
    display: grid;
  }
  .contact-card {
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: #fff;
    padding: 1.3rem;
  }
  .contact-card small {
    color: var(--muted);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    margin-bottom: 0.35rem;
    font-size: 0.67rem;
    font-weight: 800;
    display: block;
  }
  .contact-card a {
    color: var(--pine-800);
    font-weight: 800;
  }
  .form-card {
    border-radius: var(--radius-lg);
    background: var(--cream);
    padding: clamp(1.4rem, 4vw, 3rem);
  }
  .form-grid {
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
    margin-top: 1.5rem;
    display: grid;
  }
  .field {
    gap: 0.4rem;
    display: grid;
  }
  .field--full {
    grid-column: 1/-1;
  }
  .field label {
    font-size: 0.77rem;
    font-weight: 800;
  }
  .field input,
  .field select,
  .field textarea {
    border: 1px solid var(--line);
    width: 100%;
    color: var(--ink);
    background: #fff;
    border-radius: 0.7rem;
    padding: 0.8rem 0.9rem;
  }
  .field textarea {
    resize: vertical;
    min-height: 105px;
  }
  .form-note {
    color: var(--muted);
    margin-top: 0.8rem;
    font-size: 0.75rem;
  }
  .map {
    border-radius: var(--radius-lg);
    background: var(--cream);
    overflow: hidden;
  }
  .map iframe {
    border: 0;
    width: 100%;
    height: 450px;
  }
  .policy {
    color: var(--muted);
  }
  .policy h2 {
    margin: 2.2rem 0 0.8rem;
    font-size: 1.7rem;
  }
  .policy h3 {
    margin: 1.5rem 0 0.6rem;
    font-size: 1.25rem;
  }
  .policy ul {
    padding-left: 1.2rem;
  }
  .policy .notice {
    border-left: 4px solid var(--saffron);
    background: var(--cream);
    color: var(--ink);
    margin: 1.5rem 0;
    padding: 1rem 1.2rem;
  }
  .skip-link {
    z-index: 100;
    color: #000;
    background: #fff;
    border-radius: 0.4rem;
    padding: 0.6rem 1rem;
    font-weight: 800;
    position: fixed;
    top: 0.5rem;
    left: 0.5rem;
    transform: translateY(-150%);
  }
  .skip-link:focus {
    transform: translateY(0);
  }
}
@layer utilities {
  .sr-only {
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    width: 1px;
    height: 1px;
    position: absolute;
    overflow: hidden;
  }
  .mt-2 {
    margin-top: 2rem;
  }
  .center {
    text-align: center;
  }
}
@media (width <= 980px) {
  .menu-button {
    display: flex;
  }
  .site-nav {
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--paper);
    color: var(--pine-950);
    box-shadow: var(--shadow);
    align-items: stretch;
    gap: 0;
    padding: 0.75rem;
    display: none;
    position: fixed;
    top: 5rem;
    left: 1rem;
    right: 1rem;
  }
  .site-nav[data-open="true"] {
    display: grid;
  }
  .site-nav > a:not(.button) {
    padding: 0.8rem;
  }
  .site-nav > a:not(.button):after {
    display: none;
  }
  .site-nav .button {
    margin-top: 0.4rem;
  }
  .room-grid,
  .feature-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .gallery-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .footer-grid {
    grid-template-columns: 1fr 1fr;
  }
  .quick-booking {
    grid-template-columns: repeat(3, 1fr);
  }
  .quick-booking__intro {
    grid-column: 1/-1;
  }
  .quick-booking .button {
    min-width: 0;
  }
  .article-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .article-grid .article-card:last-child:nth-child(odd) {
    grid-column: 1/-1;
    grid-template-columns: 0.8fr 1.2fr;
  }
  .article-grid .article-card:last-child:nth-child(odd) .article-card__image {
    aspect-ratio: auto;
    min-height: 300px;
  }
  .review-stage {
    grid-template-columns: 1fr 1.2fr;
    gap: 3rem;
  }
  .reviews-hero__grid {
    grid-template-columns: 1fr minmax(260px, 0.5fr);
    gap: 2rem;
  }
  .review-story-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .review-topics__layout {
    grid-template-columns: 1fr;
  }
  .home-hero__feeling {
    display: none;
  }
}
@media (width <= 720px) {
  .section-heading--split,
  .story-grid,
  .room-intro,
  .contact-grid,
  .cta-panel,
  .journal-intro,
  .journal-cta,
  .review-stage {
    grid-template-columns: 1fr;
  }
  .hero {
    min-height: 780px;
  }
  .hero-content {
    padding-bottom: 5rem;
  }
  .hero:after {
    background: linear-gradient(#07191338 20%, #071913db);
  }
  .home-hero:after {
    background:
      linear-gradient(90deg, #07191357, #0719130f),
      linear-gradient(#0000 36%, #07191373);
  }
  .home-hero__media img {
    object-position: 67% center;
  }
  .home-hero h1,
  .home-hero__lead {
    text-shadow: 0 2px 20px #07191347;
  }
  .room-grid {
    grid-template-columns: 1fr;
  }
  .gallery-grid {
    grid-template-columns: 1fr;
  }
  .experience-grid {
    grid-template-rows: 320px 210px 210px;
    grid-template-columns: 1fr 1fr;
  }
  .experience-card:first-child {
    grid-area: auto/1/auto/-1;
  }
  .experience-card:nth-child(4),
  .experience-card:nth-child(5) {
    grid-column: span 1;
  }
  .story-media__badge {
    right: 0.75rem;
  }
  .cta-panel__image {
    min-height: 300px;
  }
  .footer-grid {
    grid-template-columns: 1fr;
  }
  .footer-bottom {
    flex-direction: column;
  }
  .mobile-booking {
    display: grid;
  }
  .form-grid {
    grid-template-columns: 1fr;
  }
  .field--full {
    grid-column: auto;
  }
  .quick-booking-wrap {
    margin-top: -1.5rem;
  }
  .quick-booking {
    grid-template-columns: 1fr 1fr;
  }
  .quick-booking__intro,
  .quick-booking .button {
    grid-column: 1/-1;
  }
  .confidence-grid {
    grid-template-columns: 1fr 1fr;
  }
  .confidence-grid > div:nth-child(2) {
    border-right: 0;
  }
  .confidence-grid > div:nth-child(-n + 2) {
    border-bottom: 1px solid var(--line);
  }
  .article-grid,
  .article-card--featured,
  .article-grid .article-card:last-child:nth-child(odd) {
    grid-template-columns: 1fr;
  }
  .article-grid .article-card:last-child:nth-child(odd) {
    grid-column: auto;
  }
  .article-card--featured {
    margin-top: 2rem;
  }
  .article-card--featured .article-card__image,
  .article-grid .article-card:last-child:nth-child(odd) .article-card__image {
    aspect-ratio: 16/10;
    min-height: 0;
  }
  .article-card--featured .article-card__body {
    padding: 1.5rem;
  }
  .article-hero {
    padding-top: 8rem;
  }
  .article-layout {
    grid-template-columns: 1fr;
  }
  .article-sidebar {
    display: none;
  }
  .article-cover {
    border-radius: 0 0 var(--radius) var(--radius);
    width: calc(100% - 1.25rem);
    height: min(78vw, 520px);
  }
  .hero-trust {
    grid-template-columns: 1fr 1fr;
    gap: 0.6rem 1rem;
    display: grid;
  }
  .hero-trust span:last-child {
    grid-column: 1/-1;
  }
  .home-hero__shell:after {
    opacity: 0.65;
    top: 20%;
    right: -30%;
  }
  .home-hero .hero-content {
    gap: 1.2rem;
  }
  .home-page .quick-booking:hover {
    transform: none;
  }
  .home-review-actions {
    flex-direction: column;
    align-items: flex-start;
  }
  .home-day__layout {
    grid-template-columns: 1fr;
  }
  .home-day__aside {
    gap: 1.2rem;
    padding: 1.2rem 0 0;
    position: static;
    top: auto;
  }
  .home-day__count strong {
    font-size: 3.6rem;
  }
  .home-day__aside-copy h3,
  .home-day__aside-copy p {
    max-width: none;
  }
  .home-day__nav {
    scrollbar-width: none;
    scroll-snap-type: x proximity;
    margin-inline: -1rem;
    padding: 0.25rem 1rem 0.65rem;
    display: flex;
    overflow-x: auto;
  }
  .home-day__nav::-webkit-scrollbar {
    display: none;
  }
  .home-day__nav li {
    scroll-snap-align: start;
    flex: none;
  }
  .home-day__nav a {
    grid-template-columns: auto 1fr;
    min-width: 120px;
  }
  .home-day__track {
    display: none;
  }
  .home-day__scene {
    min-height: 540px;
    scroll-margin-top: 6rem;
  }
  .home-day__end {
    flex-direction: column;
    align-items: flex-start;
  }
  .reviews-hero {
    min-height: 860px;
  }
  .reviews-hero__content {
    padding-block: 8rem 3.5rem;
  }
  .reviews-hero__grid,
  .honest-feedback__panel,
  .review-final__inner {
    grid-template-columns: 1fr;
  }
  .reviews-hero h1 {
    font-size: clamp(3.05rem, 14.5vw, 5rem);
  }
  .reviews-score-card {
    border-radius: var(--radius);
    max-width: 330px;
    padding: 1.25rem;
  }
  .reviews-score-card__score {
    font-size: 4.5rem;
  }
  .reviews-subnav__inner {
    width: 100%;
    padding-inline: 1rem;
  }
  .reviews-subnav__inner > span {
    display: none;
  }
  .review-story-grid {
    grid-template-columns: 1fr;
  }
  .review-story--featured {
    grid-column: auto;
  }
  .review-story {
    min-height: 365px;
  }
  .reviews-all-link {
    flex-direction: column;
    align-items: stretch;
  }
  .reviews-all-link .button {
    align-self: center;
  }
  .honest-feedback__media {
    min-height: 340px;
  }
}
@media (width <= 480px) {
  .container,
  .container--narrow {
    width: min(100% - 1.25rem, 1180px);
  }
  .header-inner {
    min-height: 4.5rem;
  }
  .brand img {
    width: 2.2rem;
    height: 2.2rem;
  }
  .site-nav {
    top: 4.5rem;
    left: 0.65rem;
    right: 0.65rem;
  }
  .hero-actions .button {
    width: 100%;
  }
  .feature-grid,
  .check-list {
    grid-template-columns: 1fr;
  }
  .experience-grid {
    grid-template-rows: repeat(5, 260px);
    grid-template-columns: 1fr;
    display: grid;
  }
  .experience-card:first-child,
  .experience-card:nth-child(4),
  .experience-card:nth-child(5) {
    grid-column: auto;
  }
  .quick-booking {
    border-radius: var(--radius);
    grid-template-columns: 1fr;
  }
  .quick-booking__intro,
  .quick-booking .button {
    grid-column: auto;
  }
  .quick-booking__intro {
    padding: 0.2rem 0;
  }
  .confidence-grid > div {
    padding-inline: 0.6rem;
  }
  .article-card__footer {
    flex-direction: column;
    align-items: flex-start;
  }
  .reviews-subnav {
    top: 4.5rem;
  }
  .reviews-subnav__inner {
    gap: 0.1rem;
  }
  .reviews-subnav a {
    padding-inline: 0.72rem;
  }
  .review-story__top {
    grid-template-columns: auto 1fr;
  }
  .review-story__rating {
    grid-column: 2;
  }
  .review-topic-row > div:first-child {
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
  }
  .honest-feedback__actions,
  .review-final__actions {
    flex-direction: column;
    align-items: stretch;
    width: 100%;
  }
  .honest-feedback__actions .button,
  .review-final__actions .button {
    width: 100%;
  }
  .home-hero__line {
    margin-bottom: -0.06em;
    padding-bottom: 0.06em;
  }
  .home-page .hero-actions {
    gap: 0.65rem;
  }
  .home-page .hero-trust {
    font-size: 0.76rem;
  }
  .home-day__scene {
    border-radius: var(--radius);
    min-height: 480px;
  }
  .home-day__scene-copy h3 {
    font-size: clamp(2.2rem, 12vw, 3.1rem);
  }
  .home-day__end > div,
  .home-day__end .button {
    width: 100%;
  }
}
@media (prefers-reduced-motion: reduce) {
  *,
  :before,
  :after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    transition-delay: 0s !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    animation-delay: 0s !important;
  }
  .motion-ready [data-reveal],
  .motion-ready [data-reveal-child] {
    opacity: 1 !important;
    transform: none !important;
  }
  .motion-ready [data-image-reveal] {
    clip-path: none !important;
  }
  .motion-ready [data-image-reveal] img,
  .motion-ready .review-topic-chart .review-topic-track span {
    transform: none !important;
  }
  .motion-ready .home-day__scene .home-day__scene-copy > * {
    opacity: 1 !important;
    transform: none !important;
  }
  .home-day__media img {
    animation: none !important;
    transform: scale(1.02) !important;
  }
}
