@font-face {
  font-family: "Verandah Reverie";
  src: url("/assets/fonts/VerandahReverie.otf") format("opentype");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

:root {
  --boarding-mauve: #8b7185;
  --boarding-mauve-deep: #684f63;
  --boarding-mauve-dark: #513d4d;
  --boarding-blush: #c7adb6;
  --boarding-blush-light: #eadde1;
  --boarding-purple: #7047a3;
  --boarding-gold: #d4ae70;
  --boarding-gold-light: #f1d39b;

  --boarding-white: #ffffff;
  --boarding-warm-white: #fffdfb;
  --boarding-cream: #faf6f1;
  --boarding-cream-dark: #f2e8e4;
  --boarding-charcoal: #353136;
  --boarding-muted: #6d656a;

  --boarding-line: rgba(139, 113, 133, 0.18);
  --boarding-line-strong: rgba(139, 113, 133, 0.3);

  --boarding-shadow-small:
    0 12px 30px rgba(61, 44, 57, 0.08);

  --boarding-shadow-medium:
    0 24px 58px rgba(61, 44, 57, 0.14);

  --boarding-shadow-large:
    0 38px 86px rgba(61, 44, 57, 0.2);

  --boarding-serif:
    "Italiana",
    "Cormorant Garamond",
    Georgia,
    serif;

  --boarding-body:
    "Poppins",
    Arial,
    sans-serif;

  --boarding-script:
    "Verandah Reverie",
    "Cormorant Garamond",
    cursive;

  --boarding-ease:
    cubic-bezier(0.16, 1, 0.3, 1);
}

/* =========================================================
   PAGE FOUNDATION
========================================================= */

.boarding-page {
  position: relative;
  overflow: hidden;
  color: var(--boarding-charcoal);
  background: var(--boarding-warm-white);
  font-family: var(--boarding-body);
}

.boarding-page *,
.boarding-page *::before,
.boarding-page *::after {
  box-sizing: border-box;
}

.boarding-page img {
  display: block;
  max-width: 100%;
}

.boarding-shell {
  width: min(1420px, calc(100% - 96px));
  margin-inline: auto;
}

.boarding-script {
  font-family: var(--boarding-script);
  font-style: normal;
  font-weight: 400;
  letter-spacing: 0;
  word-spacing: 0;
  font-kerning: normal;
  font-variant-ligatures:
    common-ligatures
    contextual;
  text-rendering: optimizeLegibility;
}

.boarding-eyebrow {
  margin: 0 0 18px;
  color: var(--boarding-mauve);
  font-family: var(--boarding-body);
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.23em;
  line-height: 1.4;
  text-transform: uppercase;
}

.boarding-reveal {
  opacity: 1;
}

.boarding-section-heading {
  max-width: 930px;
  margin: 0 auto 74px;
  text-align: center;
}

.boarding-section-heading h2,
.boarding-intro__heading h2,
.boarding-includes__heading h2,
.boarding-bath-callout h2,
.cat-boarding__content h2,
.boarding-report__content h2,
.boarding-closing h2,
.boarding-reservations__heading h2 {
  margin: 0;
  color: var(--boarding-charcoal);
  font-family: var(--boarding-serif);
  font-size: clamp(3.8rem, 5.35vw, 6.7rem);
  font-style: normal;
  font-weight: 400;
  letter-spacing: -0.005em;
  line-height: 0.96;
}

.boarding-section-heading h2 > .boarding-script,
.boarding-intro__heading h2 > .boarding-script,
.boarding-includes__heading h2 > .boarding-script,
.boarding-bath-callout h2 > .boarding-script,
.cat-boarding__content h2 > .boarding-script,
.boarding-report__content h2 > .boarding-script,
.boarding-closing h2 > .boarding-script,
.boarding-reservations__heading h2 > .boarding-script {
  display: block;
  margin-top: 28px;
  color: var(--boarding-mauve);
  font-size: 0.9em;
  line-height: 0.7;
}

.boarding-section-heading > p:last-child {
  max-width: 720px;
  margin: 34px auto 0;
  color: var(--boarding-muted);
  font-size: 1rem;
  line-height: 1.82;
}

/* =========================================================
   HERO
========================================================= */

.boarding-hero {
  position: relative;
  min-height: 860px;
  display: flex;
  align-items: center;
  overflow: hidden;
  padding: 76px 0;
  background: #2e282d;
  isolation: isolate;
}

.boarding-hero__image {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
}

.boarding-hero__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 46%;
  transform: scale(1.025);
}

.boarding-hero__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(
      90deg,
      rgba(29, 23, 28, 0.87) 0%,
      rgba(33, 27, 32, 0.75) 34%,
      rgba(34, 28, 33, 0.35) 64%,
      rgba(34, 28, 33, 0.1) 100%
    ),
    linear-gradient(
      180deg,
      rgba(23, 18, 22, 0.08),
      rgba(23, 18, 22, 0.36)
    );
}

.boarding-hero__content {
  position: relative;
  z-index: 3;
  width: min(790px, 100%);
  margin-left: clamp(12px, 2.6vw, 44px);
  color: var(--boarding-white);
}

.boarding-hero .boarding-eyebrow {
  color: #ead9e0;
}

.boarding-hero h1 {
  margin: 0;
  color: #fffaf7;
  font-family: var(--boarding-serif);
  font-size: clamp(4.45rem, 6vw, 7.45rem);
  font-style: normal;
  font-weight: 400;
  letter-spacing: -0.005em;
  line-height: 0.92;
  text-shadow:
    0 8px 30px rgba(0, 0, 0, 0.28);
}

.boarding-hero h1 > span {
  display: block;
}

.boarding-hero__title-main {
  width: max-content;
  max-width: 100%;
  white-space: nowrap;
}

.boarding-hero__title-script {
  margin-top: 30px;
  color: #f2dce5;
  font-size: 0.82em;
  line-height: 0.7;
  white-space: nowrap;
  text-shadow:
    0 8px 22px rgba(0, 0, 0, 0.22);
}

.boarding-hero__copy {
  max-width: 680px;
  margin: 48px 0 0;
  color: rgba(255, 250, 247, 0.94);
  font-size: clamp(1rem, 1.15vw, 1.2rem);
  line-height: 1.85;
  text-shadow:
    0 4px 16px rgba(0, 0, 0, 0.28);
}

.boarding-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  margin-top: 40px;
}

.boarding-hero__actions .button {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  transition:
    transform 320ms var(--boarding-ease),
    box-shadow 320ms ease,
    border-color 320ms ease,
    background 320ms ease;
}

.boarding-hero__actions .button::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: -40%;
  left: -120%;
  width: 70%;
  height: 180%;
  background:
    linear-gradient(
      90deg,
      transparent,
      rgba(255, 255, 255, 0.26),
      transparent
    );
  transform: rotate(18deg);
  transition:
    left 650ms var(--boarding-ease);
}

.boarding-hero__actions .button:hover {
  transform: translateY(-5px);
}

.boarding-hero__actions .button:hover::before {
  left: 150%;
}

.boarding-hero__actions .button-primary {
  box-shadow:
    0 18px 36px rgba(47, 31, 43, 0.26);
}

.boarding-hero__actions .button-primary:hover {
  box-shadow:
    0 26px 48px rgba(47, 31, 43, 0.36);
}

.boarding-hero__actions .button-secondary {
  color: #fffaf7;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.42);
  backdrop-filter: blur(12px);
}

.boarding-hero__actions .button-secondary:hover {
  background: rgba(255, 255, 255, 0.17);
  border-color: rgba(255, 255, 255, 0.7);
}

/* =========================================================
   INTRODUCTION
========================================================= */

.boarding-intro {
  position: relative;
  overflow: hidden;
  padding: 132px 0;
  background:
    radial-gradient(
      circle at 8% 18%,
      rgba(199, 173, 182, 0.2),
      transparent 32%
    ),
    var(--boarding-warm-white);
}

.boarding-intro::before {
  content: "";
  position: absolute;
  top: -180px;
  right: -160px;
  width: 480px;
  height: 480px;
  border: 1px solid rgba(139, 113, 133, 0.08);
  border-radius: 50%;
  pointer-events: none;
}

.boarding-intro::after {
  content: "";
  position: absolute;
  right: 9%;
  bottom: 13%;
  width: 92px;
  height: 92px;
  background:
    linear-gradient(
      45deg,
      transparent 44%,
      rgba(139, 113, 133, 0.08) 45% 55%,
      transparent 56%
    ),
    linear-gradient(
      -45deg,
      transparent 44%,
      rgba(139, 113, 133, 0.08) 45% 55%,
      transparent 56%
    );
  transform: rotate(8deg);
  pointer-events: none;
}

.boarding-intro__layout{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:minmax(0,.95fr) 420px;
  gap:90px;
  align-items:center;
}

.boarding-intro__heading{
  max-width:760px;
}

.boarding-intro__heading h2{
  font-size:clamp(3.6rem,5vw,6.15rem);
}

.boarding-heading-line{
  display:block;
  max-width:560px;
white-space:normal;
}

.boarding-intro__script-line{
  display:block;
  margin-top:32px;
  color:var(--boarding-mauve);
  font-size:.83em;
  line-height:.68;
}

.boarding-intro__script-line--second{
  margin-top:12px;
  padding-left:54px;
}

.boarding-intro__copy{
  max-width:700px;
}

.boarding-intro__copy p{
  margin:0 0 24px;
  color:var(--boarding-muted);
  font-size:1.04rem;
  line-height:1.9;
}

.boarding-intro__copy p:last-child{
  margin-bottom:0;
}

.boarding-intro__promise{
  position:relative;
  margin-top:36px!important;
  padding:28px 0 0 34px;
  color:var(--boarding-mauve)!important;
  font-family:"Cormorant Garamond",Georgia,serif;
  font-size:clamp(1.85rem,2.15vw,2.7rem)!important;
  font-style:italic;
  font-weight:600;
  line-height:1.2!important;
  max-width:560px;
white-space:normal;
align-self:flex-start;
}

.boarding-intro__promise::before{
  content:"";
  position:absolute;
  top:20px;
  bottom:0;
  left:0;
  width:2px;
  background:linear-gradient(
    180deg,
    var(--boarding-gold),
    rgba(212,174,112,.1)
  );
}

.boarding-intro__promise::after{
  content:"✦";
  display:inline-block;
  margin-left:13px;
  color:var(--boarding-gold);
  font-size:.55em;
  vertical-align:middle;
}

/* ---------- Daisy ---------- */

.boarding-intro__daisy{
  position:relative;
  display:flex;
  align-items:flex-end;
  justify-content:center;
}

.boarding-intro__daisy-circle{
  position:absolute;
  width:360px;
  height:360px;
  border-radius:50%;
  background:
    radial-gradient(
      circle,
      rgba(199,173,182,.34) 0%,
      rgba(199,173,182,.18) 58%,
      transparent 100%);
}

.boarding-intro__daisy img{
  position:relative;
  z-index:2;
  width:430px;
  max-width:100%;
  height:auto;
  transform:translateY(20px);
  filter:drop-shadow(0 26px 42px rgba(0,0,0,.18));
  transition:
    transform .45s ease,
    filter .45s ease;
}

.boarding-intro:hover .boarding-intro__daisy img{
  transform:translateY(8px) scale(1.03);
}

@media (max-width:991px){

  .boarding-intro__layout{
    grid-template-columns:1fr;
    gap:38px;
    text-align:center;
  }

  .boarding-intro__daisy{
    order:-1;
  }

  .boarding-intro__daisy-circle{
    width:250px;
    height:250px;
  }

  .boarding-intro__daisy img{
    width:265px;
    transform:none;
  }

}

/* =========================================================
   BOARDING OPTIONS
========================================================= */

.boarding-options {
  position: relative;
  overflow: hidden;
  padding: 132px 0 150px;
  background:
    linear-gradient(
      180deg,
      #f7f0ef 0%,
      #fcf9f7 100%
    );
}

.boarding-options::before {
  content: "";
  position: absolute;
  top: 4%;
  left: -130px;
  width: 330px;
  height: 330px;
  border-radius: 50%;
  background:
    radial-gradient(
      circle,
      rgba(199, 173, 182, 0.18),
      transparent 68%
    );
  pointer-events: none;
}

.boarding-options::after {
  content: "";
  position: absolute;
  right: -150px;
  bottom: 3%;
  width: 430px;
  height: 430px;
  border-radius: 50%;
  background:
    radial-gradient(
      circle,
      rgba(212, 174, 112, 0.12),
      transparent 68%
    );
  pointer-events: none;
}

.boarding-options .boarding-shell {
  position: relative;
  z-index: 2;
}

.boarding-options__grid {
  display: grid;
  grid-template-columns:
    repeat(2, minmax(0, 1fr));
  gap: 34px;
  align-items: stretch;
}

.boarding-card {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(139, 113, 133, 0.14);
  border-radius: 34px;
  background:
    linear-gradient(
      145deg,
      rgba(255, 255, 255, 0.96),
      rgba(252, 248, 247, 0.9)
    );
  box-shadow: var(--boarding-shadow-medium);
  isolation: isolate;
  transition:
    transform 600ms var(--boarding-ease),
    box-shadow 600ms ease,
    border-color 500ms ease;
}

.boarding-card:hover {
  transform:
    translateY(-13px)
    scale(1.008);
  border-color:
    rgba(139, 113, 133, 0.28);
  box-shadow: var(--boarding-shadow-large);
}

.boarding-card::before {
  content: "";
  position: absolute;
  z-index: 0;
  top: -150px;
  right: -120px;
  width: 350px;
  height: 350px;
  border-radius: 50%;
  background:
    radial-gradient(
      circle,
      rgba(199, 173, 182, 0.18),
      rgba(199, 173, 182, 0.03) 68%,
      transparent 70%
    );
  transition:
    transform 750ms var(--boarding-ease),
    opacity 500ms ease;
}

.boarding-card::after {
  content: "";
  position: absolute;
  z-index: 0;
  left: -40%;
  bottom: -55%;
  width: 100%;
  height: 90%;
  border-radius: 50%;
  background:
    radial-gradient(
      circle,
      rgba(212, 174, 112, 0.1),
      transparent 68%
    );
  opacity: 0;
  transition:
    opacity 600ms ease,
    transform 750ms var(--boarding-ease);
}

.boarding-card:hover::before {
  transform:
    scale(1.16)
    translate(-14px, 18px);
}

.boarding-card:hover::after {
  opacity: 1;
  transform:
    translate(25%, -12%)
    scale(1.12);
}

.boarding-card--standard:hover {
  background:
    linear-gradient(
      145deg,
      #ffffff,
      #f7eeef
    );
}

.boarding-card--luxury {
  color: var(--boarding-white);
  border-color: rgba(255, 255, 255, 0.16);
  background:
    linear-gradient(
      145deg,
      #8a7183 0%,
      #6d5368 48%,
      #574155 100%
    );
  box-shadow:
    0 30px 70px rgba(65, 43, 61, 0.25);
}

.boarding-card--luxury::before {
  background:
    radial-gradient(
      circle,
      rgba(255, 255, 255, 0.1),
      transparent 68%
    );
}

.boarding-card--luxury::after {
  background:
    radial-gradient(
      circle,
      rgba(241, 211, 155, 0.16),
      transparent 68%
    );
}

.boarding-card--luxury:hover {
  border-color:
    rgba(241, 211, 155, 0.38);
  background:
    linear-gradient(
      145deg,
      #957b8e 0%,
      #73586e 48%,
      #5b4459 100%
    );
  box-shadow:
    0 40px 92px rgba(65, 43, 61, 0.34);
}

.boarding-card__number {
  position: absolute;
  z-index: 1;
  top: 26px;
  right: 34px;
  color: rgba(139, 113, 133, 0.12);
  font-family: var(--boarding-serif);
  font-size: 6.2rem;
  font-weight: 400;
  letter-spacing: -0.005em;
  line-height: 1;
  transition:
    transform 600ms var(--boarding-ease),
    color 500ms ease;
}

.boarding-card:hover .boarding-card__number {
  color: rgba(139, 113, 133, 0.2);
  transform:
    translate(-7px, 8px)
    scale(1.08);
}

.boarding-card--luxury .boarding-card__number {
  color: rgba(255, 255, 255, 0.09);
}

.boarding-card--luxury:hover .boarding-card__number {
  color: rgba(255, 255, 255, 0.16);
}

.boarding-card__badge {
  position: absolute;
  z-index: 3;
  top: 26px;
  left: 30px;
  padding: 9px 15px;
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: 999px;
  color: var(--boarding-white);
  background: rgba(255, 255, 255, 0.1);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  backdrop-filter: blur(10px);
  transition:
    transform 320ms var(--boarding-ease),
    background 320ms ease;
}

.boarding-card--luxury:hover .boarding-card__badge {
  transform: translateY(-3px);
  background: rgba(255, 255, 255, 0.16);
}

.boarding-card__content {
  position: relative;
  z-index: 2;
  padding: 65px 54px 58px;
}

.boarding-card--luxury .boarding-card__content {
  padding-top: 94px;
}

.boarding-card__kicker {
  margin: 0 0 20px;
  color: var(--boarding-mauve);
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  line-height: 1.5;
  text-transform: uppercase;
}

.boarding-card__kicker--legacy {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  color: #f5e7ec;
}

.boarding-card__kicker--legacy > span {
  color: var(--boarding-gold-light);
}

.boarding-card__kicker--legacy strong {
  color: #fffaf7;
  font-size: inherit;
}

.boarding-card__kicker--legacy em {
  width: 100%;
  margin-top: 5px;
  color: #f1d4df;
  font-family:
    "Cormorant Garamond",
    Georgia,
    serif;
  font-size: 1.28rem;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.25;
  text-transform: none;
}

.boarding-card h3 {
  margin: 0;
  color: var(--boarding-charcoal);
  font-family: var(--boarding-serif);
  font-size: clamp(3.5rem, 4.45vw, 5.45rem);
  font-style: normal;
  font-weight: 400;
  letter-spacing: -0.005em;
  line-height: 0.95;
}

.boarding-card h3 span {
  display: block;
  margin-top: 28px;
  color: var(--boarding-mauve);
  font-family: var(--boarding-script);
  font-size: 0.98em;
  font-style: normal;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 0.69;
}

.boarding-card--luxury h3,
.boarding-card--luxury h3 span {
  color: #fffaf7;
}

.boarding-card__lead {
  margin: 36px 0 0;
  color: var(--boarding-muted);
  font-size: 1rem;
  line-height: 1.8;
}

.boarding-card--luxury .boarding-card__lead {
  color: rgba(255, 255, 255, 0.84);
}

.boarding-card__accommodation {
  position: relative;
  margin-top: 32px;
  padding: 27px 27px 26px;
  overflow: hidden;
  border: 1px solid rgba(139, 113, 133, 0.16);
  border-radius: 19px;
  background: rgba(248, 244, 240, 0.78);
  transition:
    transform 350ms var(--boarding-ease),
    border-color 350ms ease,
    background 350ms ease,
    box-shadow 350ms ease;
}

.boarding-card__accommodation::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 4px;
  height: 100%;
  background:
    linear-gradient(
      180deg,
      var(--boarding-gold),
      var(--boarding-blush)
    );
}

.boarding-card__accommodation:hover {
  transform: translateY(-5px);
  border-color:
    rgba(139, 113, 133, 0.28);
  background: #fff;
  box-shadow: var(--boarding-shadow-small);
}

.boarding-card--luxury .boarding-card__accommodation {
  border-color: rgba(255, 255, 255, 0.18);
  background: rgba(255, 255, 255, 0.08);
}

.boarding-card--luxury .boarding-card__accommodation:hover {
  border-color: rgba(241, 211, 155, 0.38);
  background: rgba(255, 255, 255, 0.13);
}

.boarding-card__label {
  display: block;
  margin-bottom: 8px;
  color: var(--boarding-mauve);
  font-size: 0.71rem;
  font-weight: 700;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.boarding-card--luxury .boarding-card__label {
  color: #ead6df;
}

.boarding-card__accommodation strong {
  display: block;
  color: var(--boarding-charcoal);
  font-size: 1.08rem;
  line-height: 1.45;
}

.boarding-card--luxury .boarding-card__accommodation strong {
  color: var(--boarding-white);
}

.boarding-card__accommodation p {
  margin: 12px 0 0;
  color: var(--boarding-muted);
  font-size: 0.9rem;
  line-height: 1.7;
}

.boarding-card--luxury .boarding-card__accommodation p {
  color: rgba(255, 255, 255, 0.78);
}

.boarding-card__safety-note {
  margin: 29px 0 0;
  color: var(--boarding-mauve);
  font-size: 0.92rem;
  font-style: italic;
  font-weight: 500;
  line-height: 1.74;
}

.boarding-card__safety-note strong {
  font-weight: 700;
}

.boarding-card__safety-note--luxury {
  color: #f0dce4;
}

.boarding-luxury-features {
  display: grid;
  grid-template-columns:
    repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin: 29px 0 0;
  padding: 0;
  list-style: none;
}

.boarding-luxury-features li {
  position: relative;
  padding: 15px 16px 15px 40px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 14px;
  color: rgba(255, 255, 255, 0.9);
  background: rgba(255, 255, 255, 0.06);
  font-size: 0.9rem;
  transition:
    transform 300ms var(--boarding-ease),
    background 300ms ease,
    border-color 300ms ease,
    box-shadow 300ms ease;
}

.boarding-luxury-features li:hover {
  transform:
    translateY(-5px)
    scale(1.015);
  border-color:
    rgba(241, 211, 155, 0.38);
  background: rgba(255, 255, 255, 0.12);
  box-shadow:
    0 16px 30px rgba(38, 24, 35, 0.18);
}

.boarding-luxury-features li::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 16px;
  width: 13px;
  height: 13px;
  background:
    linear-gradient(
      45deg,
      transparent 40%,
      #efcb87 41% 59%,
      transparent 60%
    ),
    linear-gradient(
      -45deg,
      transparent 40%,
      #efcb87 41% 59%,
      transparent 60%
    );
  transform:
    translateY(-50%)
    rotate(8deg);
  transition:
    transform 300ms var(--boarding-ease),
    filter 300ms ease;
}

.boarding-luxury-features li:hover::before {
  filter: brightness(1.2);
  transform:
    translateY(-50%)
    rotate(26deg)
    scale(1.22);
}

.boarding-suite-names {
  display: grid;
  grid-template-columns:
    repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 24px;
}

.boarding-suite-names span {
  position: relative;
  padding: 17px;
  overflow: hidden;
  border: 1px solid rgba(212, 174, 112, 0.42);
  border-radius: 15px;
  color: #fff5e5;
  background: rgba(212, 174, 112, 0.08);
  font-family:
    "Cormorant Garamond",
    Georgia,
    serif;
  font-size: 1.2rem;
  font-weight: 600;
  text-align: center;
  transition:
    transform 300ms var(--boarding-ease),
    background 300ms ease,
    border-color 300ms ease;
}

.boarding-suite-names span::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(
      120deg,
      transparent,
      rgba(255, 255, 255, 0.13),
      transparent
    );
  transform: translateX(-120%);
  transition:
    transform 650ms var(--boarding-ease);
}

.boarding-suite-names span:hover {
  transform: translateY(-5px);
  border-color:
    rgba(241, 211, 155, 0.72);
  background:
    rgba(212, 174, 112, 0.15);
}

.boarding-suite-names span:hover::before {
  transform: translateX(120%);
}

.boarding-pricing {
  margin-top: 31px;
  border-top: 1px solid rgba(139, 113, 133, 0.16);
}

.boarding-card--luxury .boarding-pricing {
  border-color: rgba(255, 255, 255, 0.15);
}

.boarding-pricing > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 17px 0;
  border-bottom:
    1px solid rgba(139, 113, 133, 0.12);
  transition:
    padding 280ms var(--boarding-ease),
    background 280ms ease;
}

.boarding-pricing > div:hover {
  padding-inline: 12px;
  background:
    rgba(199, 173, 182, 0.09);
}

.boarding-card--luxury .boarding-pricing > div {
  border-color:
    rgba(255, 255, 255, 0.12);
}

.boarding-card--luxury .boarding-pricing > div:hover {
  background:
    rgba(255, 255, 255, 0.07);
}

.boarding-pricing span {
  color: var(--boarding-muted);
  font-size: 0.94rem;
}

.boarding-card--luxury .boarding-pricing span {
  color: rgba(255, 255, 255, 0.76);
}

.boarding-pricing strong {
  color: var(--boarding-mauve);
  font-size: 1.1rem;
}

.boarding-card--luxury .boarding-pricing strong {
  color: #fff3df;
}

.boarding-card__fine-print,
.boarding-card__quote {
  margin: 23px 0 0;
  color: var(--boarding-muted);
  font-size: 0.86rem;
  line-height: 1.66;
}

.boarding-card__quote {
  color: #ead7df;
  font-family:
    "Cormorant Garamond",
    Georgia,
    serif;
  font-size: 1.48rem;
  font-style: italic;
  font-weight: 600;
}

/* =========================================================
   EVERY STAY INCLUDES
========================================================= */

.boarding-includes {
  position: relative;
  overflow: hidden;
  padding: 132px 0;
  background:
    radial-gradient(
      circle at 84% 18%,
      rgba(199, 173, 182, 0.16),
      transparent 30%
    ),
    var(--boarding-white);
}

.boarding-includes::before {
  content: "";
  position: absolute;
  top: -190px;
  left: -170px;
  width: 470px;
  height: 470px;
  border: 1px solid rgba(139, 113, 133, 0.08);
  border-radius: 50%;
  pointer-events: none;
}

.boarding-includes::after {
  content: "";
  position: absolute;
  right: 5%;
  bottom: 4%;
  width: 104px;
  height: 104px;
  background:
    linear-gradient(
      45deg,
      transparent 44%,
      rgba(139, 113, 133, 0.06) 45% 55%,
      transparent 56%
    ),
    linear-gradient(
      -45deg,
      transparent 44%,
      rgba(139, 113, 133, 0.06) 45% 55%,
      transparent 56%
    );
  transform: rotate(8deg);
  pointer-events: none;
}

.boarding-includes__layout {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns:
    minmax(0, 0.76fr)
    minmax(0, 1.24fr);
  gap: 98px;
  align-items: start;
}

.boarding-includes__heading {
  position: sticky;
  top: 120px;
}

.boarding-includes__heading h2 > span {
  display: block;
}

.boarding-includes__care-line {
  display: flex !important;
  align-items: baseline;
  gap: 12px;
  margin-top: 7px;
}

.boarding-ampersand {
  display: inline-block !important;
  margin: 0 !important;
  color: inherit;
  font-size: 0.9em !important;
  line-height: 0.7 !important;
  transform: translateY(0.08em);
}

.boarding-includes__script-line {
  margin-top: 25px !important;
  color: var(--boarding-mauve) !important;
  font-size: 0.88em !important;
  line-height: 0.7 !important;
  white-space: nowrap;
}

.boarding-includes__heading > p:last-child {
  max-width: 560px;
  margin: 36px 0 0;
  color: var(--boarding-muted);
  font-size: 1rem;
  line-height: 1.82;
}

.boarding-includes__content {
  min-width: 0;
}

.boarding-includes__grid {
  display: grid;
  grid-template-columns:
    repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.boarding-includes__item {
  position: relative;
  min-height: 142px;
  padding: 29px;
  overflow: hidden;
  border: 1px solid rgba(139, 113, 133, 0.13);
  border-radius: 23px;
  background:
    linear-gradient(
      145deg,
      #fcf9f7,
      #f8f1f0
    );
  box-shadow:
    0 12px 28px rgba(64, 48, 59, 0.06);
  isolation: isolate;
  transition:
    transform 420ms var(--boarding-ease),
    box-shadow 420ms ease,
    border-color 420ms ease,
    background 420ms ease;
}

.boarding-includes__item::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: -80px;
  right: -70px;
  width: 180px;
  height: 180px;
  border-radius: 50%;
  background:
    radial-gradient(
      circle,
      rgba(199, 173, 182, 0.22),
      transparent 70%
    );
  transition:
    transform 520ms var(--boarding-ease),
    opacity 420ms ease;
}

.boarding-includes__item::after {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  background:
    linear-gradient(
      135deg,
      rgba(139, 113, 133, 0.08),
      rgba(212, 174, 112, 0.08)
    );
  opacity: 0;
  transition: opacity 420ms ease;
}

.boarding-includes__item:hover {
  transform:
    translateY(-9px)
    scale(1.012);
  border-color:
    rgba(139, 113, 133, 0.28);
  box-shadow:
    0 25px 48px rgba(64, 48, 59, 0.13);
}

.boarding-includes__item:hover::before {
  transform:
    translate(-14px, 15px)
    scale(1.17);
}

.boarding-includes__item:hover::after {
  opacity: 1;
}

.boarding-includes__item span {
  display: block;
  margin-bottom: 18px;
  color: rgba(139, 113, 133, 0.42);
  font-family: var(--boarding-serif);
  font-size: 2.2rem;
  font-weight: 400;
  letter-spacing: -0.005em;
  line-height: 1;
  transition:
    color 350ms ease,
    transform 350ms var(--boarding-ease);
}

.boarding-includes__item:hover span {
  color: var(--boarding-mauve);
  transform: translateX(4px);
}

.boarding-includes__item p {
  margin: 0;
  color: var(--boarding-charcoal);
  font-size: 0.97rem;
  line-height: 1.62;
}

.boarding-includes__food-note {
  margin: 28px 0 0;
  color: var(--boarding-mauve);
  font-size: 0.94rem;
  font-style: italic;
  line-height: 1.74;
}

.boarding-includes__food-note strong {
  font-weight: 700;
}

/* =========================================================
   END OF PART 1
   PART 2 CONTINUES DIRECTLY BELOW
========================================================= */

/* =========================================================
   GO-HOME BATH
========================================================= */

.boarding-bath-callout {
  position: relative;
  overflow: hidden;
  padding: 106px 0;
  background:
    radial-gradient(
      circle at 18% 18%,
      rgba(255, 255, 255, 0.12),
      transparent 29%
    ),
    linear-gradient(
      135deg,
      #684f63 0%,
      #8d7184 48%,
      #b393a0 100%
    );
  isolation: isolate;
}

.boarding-bath-callout::before {
  content: "";
  position: absolute;
  z-index: 0;
  top: -35px;
  right: 7%;
  width: 150px;
  height: 150px;
  background:
    linear-gradient(
      45deg,
      transparent 44%,
      rgba(255, 255, 255, 0.1) 45% 55%,
      transparent 56%
    ),
    linear-gradient(
      -45deg,
      transparent 44%,
      rgba(255, 255, 255, 0.1) 45% 55%,
      transparent 56%
    );
  transform: rotate(8deg);
  pointer-events: none;
}

.boarding-bath-callout::after {
  content: "";
  position: absolute;
  z-index: 0;
  left: 3%;
  bottom: -50px;
  width: 108px;
  height: 108px;
  background:
    linear-gradient(
      45deg,
      transparent 44%,
      rgba(255, 255, 255, 0.09) 45% 55%,
      transparent 56%
    ),
    linear-gradient(
      -45deg,
      transparent 44%,
      rgba(255, 255, 255, 0.09) 45% 55%,
      transparent 56%
    );
  transform: rotate(8deg);
  pointer-events: none;
}

.boarding-bath-callout__inner {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns:
    minmax(0, 1fr)
    390px;
  gap:40px;
  align-items: center;
}

.boarding-bath-feature{
    transform:translateX(-40px);
}

.boarding-bath-callout .boarding-eyebrow {
  color: #f0dfe6;
}

.boarding-bath-callout h2 {
  color: var(--boarding-white);
}

.boarding-bath-callout__main-line {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 12px;
}

.boarding-bath-callout__main-line .boarding-ampersand {
  color: var(--boarding-white);
  transform: translateY(0.03em);
}

.boarding-bath-callout__script-line {
  display: block;
  width: max-content;
  max-width: 100%;
  margin-top: 30px !important;
  color: #5a3d52 !important;
  font-size: 1.08em !important;
  line-height: 0.68 !important;
  white-space: nowrap;
  text-shadow:
    0 8px 18px
    rgba(50, 31, 46, 0.1);
}

.boarding-bath-callout__copy > p:last-child {
  max-width: 760px;
  margin: 36px 0 0;
  color: rgba(255, 255, 255, 0.88);
  font-size: 1rem;
  line-height: 1.84;
}

.boarding-bath-callout__paw {
  position: absolute;
  z-index: 1;
  color: rgba(255, 255, 255, 0.11);
  pointer-events: none;
}

.boarding-bath-callout__paw svg {
  width: 100%;
  height: 100%;
  stroke-width: 1.3;
}

.boarding-bath-callout__paw--one {
  top: 12%;
  left: 5%;
  width: 58px;
  height: 58px;
  transform: rotate(-18deg);
}

.boarding-bath-callout__paw--two {
  right: 4%;
  bottom: 15%;
  width: 78px;
  height: 78px;
  transform: rotate(19deg);
}

.boarding-bath-callout__paw--three {
  top: 21%;
  right: 31%;
  width: 40px;
  height: 40px;
  transform: rotate(-8deg);
}

.boarding-bath-feature {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.31);
  border-radius: 34px;
  color: var(--boarding-white);
  background:
    linear-gradient(
      180deg,
      rgba(240, 214, 224, 0.38) 0%,
      rgba(240, 214, 224, 0.3) 34%,
      rgba(83, 59, 79, 0.25) 34%,
      rgba(83, 59, 79, 0.42) 100%
    );
  box-shadow:
    0 30px 66px rgba(39, 25, 36, 0.27);
  text-align: center;
  backdrop-filter: blur(15px);
  isolation: isolate;
  transition:
    transform 520ms var(--boarding-ease),
    box-shadow 520ms ease,
    border-color 420ms ease;
}

.boarding-bath-feature:hover {
  transform:
    translateY(-12px)
    rotate(-0.8deg)
    scale(1.012);
  border-color:
    rgba(255, 255, 255, 0.55);
  box-shadow:
    0 44px 84px rgba(39, 25, 36, 0.36);
}

.boarding-bath-feature::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 12px;
  border: 1px solid rgba(255, 255, 255, 0.17);
  border-radius: 25px;
  pointer-events: none;
}

.boarding-bath-feature::after {
  content: "";
  position: absolute;
  z-index: -1;
  top: -90px;
  right: -70px;
  width: 210px;
  height: 210px;
  border-radius: 50%;
  background:
    radial-gradient(
      circle,
      rgba(255, 255, 255, 0.2),
      transparent 70%
    );
  transition:
    transform 600ms var(--boarding-ease);
}

.boarding-bath-feature:hover::after {
  transform:
    translate(-15px, 22px)
    scale(1.18);
}

.boarding-bath-feature__top{
  min-height:142px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:28px 24px 25px;
  text-transform:uppercase;
  background:
    linear-gradient(
      180deg,
      rgba(255,255,255,.13),
      rgba(255,255,255,.035)
    );
}

.boarding-bath-feature__eyebrow{
  display:block;
  color:#fffaf7;
  font-family:var(--boarding-body);
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.2em;
  line-height:1.3;
  text-transform:uppercase;
}

.boarding-bath-feature__complimentary{
  display:block;
  color:var(--boarding-gold-light);
  font-family:var(--boarding-serif);
  font-size:clamp(2.2rem,3vw,3rem);
  font-style:normal;
  font-weight:400;
  letter-spacing:.035em;
  line-height:.96;
  text-transform:uppercase;
  text-shadow:0 8px 18px rgba(45,28,41,.16);
}

.boarding-bath-feature__content{
  padding:38px 30px 42px;
  background:
    linear-gradient(
      180deg,
      rgba(71,49,67,.08),
      rgba(71,49,67,.22)
    );
}

.boarding-bath-feature__title{
  display:block;
  color:#fffaf7;
  font-family:var(--boarding-serif);
  font-size:clamp(2.65rem,3.5vw,3.65rem);
  font-style:normal;
  font-weight:400;
  letter-spacing:-.015em;
  line-height:1;
  text-shadow:0 10px 24px rgba(42,26,38,.2);
}

.boarding-bath-feature__content > span{
  display:block;
  max-width:280px;
  margin:25px auto 0;
  color:rgba(255,255,255,.82);
  font-size:.84rem;
  line-height:1.65;
}

.boarding-bath-feature__bottom{
  min-height:82px;
  display:grid;
  place-items:center;
  padding:18px;
  color:var(--boarding-gold-light);
  background:
    linear-gradient(
      90deg,
      rgba(67,46,63,.18),
      rgba(67,46,63,.38),
      rgba(67,46,63,.18)
    );
}

.boarding-bath-feature__bottom svg{
  width:38px;
  height:38px;
  color:var(--boarding-gold-light);
  stroke:var(--boarding-gold-light);
  stroke-width:1.5;
  transition:
    transform 420ms var(--boarding-ease),
    color 420ms ease;
}

.boarding-bath-feature:hover
.boarding-bath-feature__bottom svg {
  color: #f5d69a;
  transform:
    rotate(-12deg)
    scale(1.14);
}

/* =========================================================
   CAT BOARDING
========================================================= */

.cat-boarding {
  position: relative;
  overflow: hidden;
  padding: 142px 0;
  background:
    radial-gradient(
      circle at 88% 22%,
      rgba(199, 173, 182, 0.21),
      transparent 31%
    ),
    linear-gradient(
      180deg,
      #fdfaf8,
      #faf4f2
    );
}

.cat-boarding::before {
  content: "";
  position: absolute;
  left: -180px;
  bottom: -190px;
  width: 500px;
  height: 500px;
  border: 1px solid rgba(139, 113, 133, 0.08);
  border-radius: 50%;
  pointer-events: none;
}

.cat-boarding__layout {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns:
    minmax(0, 1.03fr)
    minmax(0, 0.97fr);
  gap: 105px;
  align-items: center;
}

.cat-boarding__visual {
  position: relative;
}

.cat-boarding__image-wrap {
  position: relative;
  overflow: hidden;
  border-radius: 35px;
  box-shadow: var(--boarding-shadow-large);
  isolation: isolate;
  transition:
    transform 650ms var(--boarding-ease),
    box-shadow 650ms ease;
}

.cat-boarding__image-wrap::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(
      180deg,
      transparent 58%,
      rgba(44, 31, 41, 0.18)
    );
  pointer-events: none;
}

.cat-boarding__image-wrap:hover {
  transform:
    translateY(-10px)
    rotate(-0.45deg);
  box-shadow:
    0 46px 94px rgba(61, 44, 57, 0.23);
}

.cat-boarding__image-wrap img {
  width: 100%;
  min-height: 650px;
  object-fit: cover;
  object-position: center;
  transform: scale(1.01);
  transition:
    transform 850ms var(--boarding-ease),
    filter 650ms ease;
}

.cat-boarding__image-wrap:hover img {
  transform: scale(1.055);
  filter: saturate(1.04);
}

.cat-boarding__image-caption {
  margin: 26px 0 0;
  color: var(--boarding-mauve);
  font-family:
    "Cormorant Garamond",
    Georgia,
    serif;
  font-size: 1.65rem;
  font-style: italic;
  font-weight: 600;
  line-height: 1.2;
  text-align: center;
}

.cat-boarding__heading-main {
  display: block;
  width: max-content;
  max-width: 100%;
  white-space: nowrap;
}

.cat-boarding__lead {
  margin: 36px 0 0;
  color: var(--boarding-muted);
  font-size: 1.05rem;
  line-height: 1.84;
}

.cat-boarding__features {
  display: grid;
  grid-template-columns:
    repeat(2, minmax(0, 1fr));
  gap: 13px;
  margin: 31px 0 0;
  padding: 0;
  list-style: none;
}

.cat-boarding__features li {
  position: relative;
  padding: 15px 17px 15px 40px;
  overflow: hidden;
  border: 1px solid rgba(139, 113, 133, 0.14);
  border-radius: 14px;
  color: var(--boarding-charcoal);
  background: rgba(255, 255, 255, 0.77);
  font-size: 0.89rem;
  transition:
    transform 320ms var(--boarding-ease),
    color 320ms ease,
    background 320ms ease,
    border-color 320ms ease,
    box-shadow 320ms ease;
}

.cat-boarding__features li::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 16px;
  width: 13px;
  height: 13px;
  background:
    linear-gradient(
      45deg,
      transparent 40%,
      var(--boarding-gold) 41% 59%,
      transparent 60%
    ),
    linear-gradient(
      -45deg,
      transparent 40%,
      var(--boarding-gold) 41% 59%,
      transparent 60%
    );
  transform:
    translateY(-50%)
    rotate(8deg);
  transition:
    transform 320ms var(--boarding-ease),
    filter 320ms ease;
}

.cat-boarding__features li:hover {
  color: var(--boarding-mauve-deep);
  background: var(--boarding-white);
  border-color:
    rgba(139, 113, 133, 0.3);
  box-shadow:
    0 14px 28px rgba(64, 48, 59, 0.1);
  transform:
    translateY(-5px)
    translateX(2px);
}

.cat-boarding__features li:hover::before {
  filter: brightness(0.86);
  transform:
    translateY(-50%)
    rotate(28deg)
    scale(1.18);
}

.cat-boarding__food-note,
.cat-boarding__sharing-note {
  margin: 25px 0 0;
  color: var(--boarding-mauve);
  font-size: 0.9rem;
  font-style: italic;
  line-height: 1.74;
}

.cat-boarding__food-note strong,
.cat-boarding__sharing-note strong {
  font-weight: 700;
}

.cat-condos {
  display: grid;
  grid-template-columns:
    repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 29px;
}

.cat-condos span {
  position: relative;
  padding: 17px 18px;
  overflow: hidden;
  border: 1px solid rgba(212, 174, 112, 0.42);
  border-radius: 15px;
  color: var(--boarding-mauve);
  background:
    linear-gradient(
      145deg,
      rgba(251, 246, 238, 0.96),
      rgba(247, 238, 229, 0.82)
    );
  font-family:
    "Cormorant Garamond",
    Georgia,
    serif;
  font-size: 1.16rem;
  font-weight: 600;
  text-align: center;
  transition:
    transform 340ms var(--boarding-ease),
    background 340ms ease,
    border-color 340ms ease,
    box-shadow 340ms ease;
}

.cat-condos span::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(
      120deg,
      transparent,
      rgba(255, 255, 255, 0.6),
      transparent
    );
  transform: translateX(-120%);
  transition:
    transform 700ms var(--boarding-ease);
}

.cat-condos span:hover {
  transform:
    translateY(-6px)
    scale(1.012);
  border-color:
    rgba(212, 174, 112, 0.72);
  background:
    linear-gradient(
      145deg,
      #fffaf1,
      #f7e9df
    );
  box-shadow:
    0 18px 34px rgba(76, 55, 70, 0.11);
}

.cat-condos span:hover::before {
  transform: translateX(120%);
}

.cat-boarding__price {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-top: 31px;
  padding: 21px 23px;
  overflow: hidden;
  border-radius: 17px;
  color: var(--boarding-white);
  background:
    linear-gradient(
      110deg,
      var(--boarding-mauve-deep),
      var(--boarding-mauve)
    );
  box-shadow:
    0 18px 34px rgba(111, 86, 106, 0.2);
  transition:
    transform 350ms var(--boarding-ease),
    box-shadow 350ms ease;
}

.cat-boarding__price:hover {
  transform: translateY(-5px);
  box-shadow:
    0 25px 46px rgba(111, 86, 106, 0.29);
}

.cat-boarding__price span {
  font-size: 0.9rem;
  font-weight: 600;
}

.cat-boarding__price strong {
  font-size: 1.2rem;
}

/* =========================================================
   VACATION REPORT CARD
========================================================= */

.boarding-report {
  position: relative;
  overflow: hidden;
  padding: 134px 0;
  background:
    radial-gradient(
      circle at 12% 82%,
      rgba(212, 174, 112, 0.1),
      transparent 28%
    ),
    var(--boarding-white);
}

.boarding-report::before {
  content: "";
  position: absolute;
  top: -170px;
  right: -170px;
  width: 440px;
  height: 440px;
  border-radius: 50%;
  background:
    radial-gradient(
      circle,
      rgba(199, 173, 182, 0.15),
      transparent 68%
    );
  pointer-events: none;
}

.boarding-report__layout {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns:
    minmax(0, 0.94fr)
    minmax(620px, 1.06fr);
  gap: 64px;
  align-items: center;
}

.boarding-report__content {
  min-width: 0;
  transform: translateX(-24px);
}

.boarding-report__heading-main{
  display:block;
  max-width:660px;
  font-size:.78em;
  line-height:.96;
}

.boarding-report__script-line{
  display:block;
  margin-top:24px !important;
  max-width:560px;
white-space:normal;
  font-size:.72em !important;
  line-height:.82 !important;
}

.boarding-report__content > p:last-child {
  margin: 36px 0 0;
  color: var(--boarding-muted);
  font-size: 1rem;
  line-height: 1.84;
}

.boarding-report__card{
  position:relative;
  padding:46px;
  transform:scale(1.03);
  transform-origin:center;
  overflow: hidden;
  border: 1px solid rgba(139, 113, 133, 0.18);
  border-radius: 31px;
  background:
    linear-gradient(
      150deg,
      #fcf8f6 0%,
      #f2e7e9 100%
    );
  box-shadow: var(--boarding-shadow-medium);
  isolation: isolate;
  transition:
    transform 550ms var(--boarding-ease),
    box-shadow 550ms ease,
    border-color 450ms ease;
}

.boarding-report__card::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: -95px;
  right: -80px;
  width: 230px;
  height: 230px;
  border-radius: 50%;
  background:
    radial-gradient(
      circle,
      rgba(199, 173, 182, 0.28),
      transparent 70%
    );
  transition:
    transform 650ms var(--boarding-ease);
}

.boarding-report__card:hover {
  transform:
    translateY(-11px)
    rotate(0.35deg);
  border-color:
    rgba(139, 113, 133, 0.31);
  box-shadow:
    0 38px 76px rgba(61, 44, 57, 0.19);
}

.boarding-report__card:hover::before {
  transform:
    translate(-18px, 20px)
    scale(1.16);
}

.boarding-report__card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding-bottom: 26px;
  border-bottom:
    1px solid rgba(139, 113, 133, 0.18);
}

.boarding-report__card-header span {
  color: #242025;
  font-family: var(--boarding-serif);
  font-size: 2rem;
  font-style: normal;
  font-weight: 400;
  letter-spacing: -0.005em;
  line-height: 1.1;
}

.boarding-report__card-header strong {
  color: var(--boarding-gold);
  letter-spacing: 0.1em;
  white-space: nowrap;
}

.boarding-report__items {
  display: grid;
  grid-template-columns:
    repeat(2, minmax(0, 1fr));
  gap: 13px;
  margin-top: 29px;
}

.boarding-report__item {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 62px;
  padding: 14px 15px;
  overflow: hidden;
  border: 1px solid rgba(139, 113, 133, 0.14);
  border-radius: 15px;
  background: rgba(255, 255, 255, 0.68);
  transition:
    transform 330ms var(--boarding-ease),
    color 330ms ease,
    background 330ms ease,
    border-color 330ms ease,
    box-shadow 330ms ease;
}

.boarding-report__item:hover {
  transform:
    translateY(-5px)
    scale(1.01);
  color: var(--boarding-white);
  border-color: var(--boarding-mauve);
  background:
    linear-gradient(
      115deg,
      var(--boarding-mauve-deep),
      var(--boarding-mauve)
    );
  box-shadow:
    0 16px 30px rgba(75, 53, 69, 0.16);
}

.boarding-report__icon {
  flex: 0 0 36px;
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: var(--boarding-mauve);
  background:
    rgba(199, 173, 182, 0.18);
  transition:
    transform 350ms var(--boarding-ease),
    color 350ms ease,
    background 350ms ease;
}

.boarding-report__icon svg {
  width: 19px;
  height: 19px;
  stroke-width: 1.7;
}

.boarding-report__item:hover
.boarding-report__icon {
  color: #fff2d9;
  background:
    rgba(255, 255, 255, 0.14);
  transform:
    rotate(-8deg)
    scale(1.1);
}

.boarding-report__item p {
  margin: 0;
  color: #393339;
  font-size: 0.87rem;
  line-height: 1.42;
  transition: color 330ms ease;
}

.boarding-report__item:hover p {
  color: var(--boarding-white);
}

.boarding-report__keepsake {
  margin: 29px 0 0;
  color: var(--boarding-mauve);
  font-family:
    "Cormorant Garamond",
    Georgia,
    serif;
  font-size: 1.52rem;
  font-style: italic;
  font-weight: 600;
  text-align: center;
}

/* =========================================================
   HOURS
========================================================= */

.boarding-hours {
  position: relative;
  overflow: hidden;
  padding: 124px 0;
  background:
    linear-gradient(
      180deg,
      #f7f0ef 0%,
      #fdfaf8 100%
    );
}

.boarding-hours::before {
  content: "";
  position: absolute;
  top: -190px;
  left: 50%;
  width: 520px;
  height: 520px;
  border: 1px solid rgba(139, 113, 133, 0.07);
  border-radius: 50%;
  transform: translateX(-50%);
  pointer-events: none;
}

.boarding-section-heading--hours {
  position: relative;
  z-index: 2;
  margin-bottom: 61px;
}

.boarding-section-heading--hours h2 > span:first-child {
  display: block;
}

.boarding-hours__script-line {
  display: flex !important;
  align-items: baseline;
  justify-content: center;
  flex-wrap: wrap;
  gap: 13px;
  margin-top: 27px !important;
  color: var(--boarding-mauve) !important;
  font-size: 0.88em !important;
  line-height: 0.72 !important;
}

.boarding-hours__grid {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns:
    repeat(3, minmax(0, 1fr));
  gap: 20px;
}

.boarding-hours__card {
  position: relative;
  padding: 35px 28px;
  overflow: hidden;
  border: 1px solid rgba(139, 113, 133, 0.14);
  border-radius: 23px;
  background: rgba(255, 255, 255, 0.85);
  box-shadow:
    0 11px 27px rgba(64, 48, 59, 0.06);
  text-align: center;
  transition:
    transform 420ms var(--boarding-ease),
    color 420ms ease,
    background 420ms ease,
    border-color 420ms ease,
    box-shadow 420ms ease;
}

.boarding-hours__card::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(
      135deg,
      var(--boarding-mauve-deep),
      var(--boarding-mauve)
    );
  opacity: 0;
  transition: opacity 420ms ease;
}

.boarding-hours__card > * {
  position: relative;
  z-index: 2;
}

.boarding-hours__card:hover {
  transform:
    translateY(-10px)
    scale(1.012);
  border-color:
    rgba(139, 113, 133, 0.36);
  box-shadow:
    0 26px 50px rgba(64, 48, 59, 0.15);
}

.boarding-hours__card:hover::before {
  opacity: 1;
}

.boarding-hours__card p {
  margin: 0 0 11px;
  color: var(--boarding-muted);
  font-size: 0.9rem;
  transition: color 420ms ease;
}

.boarding-hours__card strong {
  color: var(--boarding-mauve);
  font-family: var(--boarding-serif);
  font-size: 1.8rem;
  font-style: normal;
  font-weight: 400;
  letter-spacing: -0.005em;
  transition: color 420ms ease;
}

.boarding-hours__card:hover p {
  color: rgba(255, 255, 255, 0.76);
}

.boarding-hours__card:hover strong {
  color: var(--boarding-white);
}

.boarding-hours__notice {
  position: relative;
  z-index: 2;
  max-width: 1020px;
  margin: 38px auto 0;
  text-align: center;
}

.boarding-hours__notice p {
  margin: 0;
  color: var(--boarding-mauve);
  font-size: 0.92rem;
  font-style: italic;
  line-height: 1.74;
}

.boarding-hours__notice p + p {
  margin-top: 12px;
}

.boarding-hours__notice strong {
  font-weight: 700;
}

/* =========================================================
   HEALTH & VACCINATION REQUIREMENTS
========================================================= */

.boarding-policies {
  position: relative;
  overflow: hidden;
  padding: 132px 0 150px;
  background: var(--boarding-white);
}

.boarding-policies::before {
  content: "";
  position: absolute;
  right: -170px;
  bottom: -190px;
  width: 500px;
  height: 500px;
  border-radius: 50%;
  background:
    radial-gradient(
      circle,
      rgba(199, 173, 182, 0.15),
      transparent 68%
    );
  pointer-events: none;
}

.boarding-section-heading--policies {
  position: relative;
  z-index: 2;
}

/* Desktop Boarding hero uses the main HERO styles above.
   Mobile hero overrides belong in mobile-fixes-v2.css only. */

.boarding-policies__grid {
  position: relative;
  z-index: 2;
  display: grid;
  gap: 24px;
  align-items: stretch;
}

.boarding-policies__grid--three {
  grid-template-columns:
    repeat(3, minmax(0, 1fr));
}

/* =========================================================
   POLICY CARD FOUNDATION
========================================================= */

.boarding-policy-card {
  position: relative;
  min-height: 470px;
  display: flex;
  flex-direction: column;
  padding: 42px 32px 155px;
  overflow: hidden;
  border: 1px solid rgba(139, 113, 133, 0.14);
  border-radius: 26px;
  box-shadow:
    0 14px 33px rgba(64, 48, 59, 0.07);
  isolation: isolate;

  transition:
    transform 470ms var(--boarding-ease),
    color 470ms ease,
    background 470ms ease,
    border-color 470ms ease,
    box-shadow 470ms ease;
}

/* Large bottom-right circle */

.boarding-policy-card::before {
  content: "";
  position: absolute;
  right: -34px;
  bottom: -48px;
  z-index: 1;

  width: 220px;
  height: 220px;

  border-radius: 50%;
  opacity: 0.42;
  pointer-events: none;

  transition:
    transform 600ms var(--boarding-ease),
    opacity 470ms ease,
    background 470ms ease;
}

/* Dark hover background */

.boarding-policy-card::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;

  opacity: 0;
  pointer-events: none;

  transition:
    opacity 470ms ease;
}

.boarding-policy-card:hover {
  transform:
    translateY(-12px)
    scale(1.012);

  border-color: transparent;

  box-shadow:
    0 31px 62px rgba(64, 48, 59, 0.17);
}

.boarding-policy-card:hover::before {
  opacity: 0.24;

  transform:
    translate(-8px, -8px)
    scale(1.14);
}

.boarding-policy-card:hover::after {
  opacity: 1;
}

/* =========================================================
   INDIVIDUAL CARD COLORS
========================================================= */

.boarding-policy-card--dogs {
  background: #f1edf5;
}

.boarding-policy-card--dogs::before {
  background: #c6b3d1;
}

.boarding-policy-card--dogs::after {
  background:
    linear-gradient(
      145deg,
      #725a85,
      #543f68
    );
}

.boarding-policy-card--cats {
  background: #f8f3e8;
}

.boarding-policy-card--cats::before {
  background: #e1c68f;
}

.boarding-policy-card--cats::after {
  background:
    linear-gradient(
      145deg,
      #a38357,
      #745a38
    );
}

.boarding-policy-card--prevention {
  background: #edf4ef;
}

.boarding-policy-card--prevention::before {
  background: #acc9b5;
}

.boarding-policy-card--prevention::after {
  background:
    linear-gradient(
      145deg,
      #607c68,
      #405847
    );
}

/* =========================================================
   NUMBER AND ICON POSITIONING
========================================================= */

.boarding-policy-card__top {
  position: static !important;
  display: block;
  margin: 0;
}

.boarding-policy-card__number {
  position: absolute;
  top: 22px;
  right: 27px;
  z-index: 4;

  display: block;

  font-family: var(--boarding-serif);
  font-size: 2.9rem;
  font-weight: 400;
  letter-spacing: -0.005em;
  line-height: 1;

  transition:
    color 420ms ease,
    transform 420ms var(--boarding-ease);
}

/* Number colors */

.boarding-policy-card--dogs
.boarding-policy-card__number {
  color: #745b8a;
}

.boarding-policy-card--cats
.boarding-policy-card__number {
  color: #a97f37;
}

.boarding-policy-card--prevention
.boarding-policy-card__number {
  color: #587361;
}

/* Icon centered within the corner circle */

.boarding-policy-card__icon {
  position: absolute;
  right: -34px;
  bottom: -48px;
  z-index: 2;

  width: 220px;
  height: 220px;

  display: flex;
  align-items: center;
  justify-content: center;

  border: 0;
  border-radius: 50%;
  background: transparent;

  pointer-events: none;

  transition:
    transform 520ms var(--boarding-ease),
    color 420ms ease;
}

.boarding-policy-card__icon::before {
  display: none;
}

.boarding-policy-card__icon svg {
  width: 94px;
  height: 94px;

  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;

  transform: translate(-3px, -5px);

  transition:
    transform 520ms var(--boarding-ease),
    color 420ms ease,
    filter 420ms ease;
}

/* Icon colors */

.boarding-policy-card--dogs
.boarding-policy-card__icon {
  color: #745b8a;
}

.boarding-policy-card--cats
.boarding-policy-card__icon {
  color: #a97f37;
}

.boarding-policy-card--prevention
.boarding-policy-card__icon {
  color: #587361;
}

/* =========================================================
   WRITTEN CONTENT
========================================================= */

.boarding-policy-card h3,
.boarding-policy-card > p,
.boarding-policy-card ul {
  position: relative;
  z-index: 3;
}

.boarding-policy-card h3 {
  max-width: calc(100% - 78px);
  margin: 0;

  color: var(--boarding-charcoal);
  font-family: var(--boarding-serif);
  font-size: 2.1rem;
  font-style: normal;
  font-weight: 400;
  letter-spacing: -0.005em;
  line-height: 1.1;

  transition:
    color 440ms ease;
}

.boarding-policy-card > p:not(.boarding-policy-card__note) {
  margin: 22px 0 0;

  color: var(--boarding-muted);
  font-size: 0.96rem;
  line-height: 1.72;

  transition:
    color 440ms ease;
}

.boarding-policy-card ul {
  margin: 22px 0 0;
  padding: 0;
  list-style: none;
}

.boarding-policy-card li {
  position: relative;
  padding: 8px 0 8px 24px;

  color: var(--boarding-muted);
  font-size: 0.94rem;
  line-height: 1.65;

  transition:
    color 440ms ease,
    transform 300ms var(--boarding-ease);
}

.boarding-policy-card li::before {
  content: "";
  position: absolute;
  top: 13px;
  left: 2px;
  width: 10px;
  height: 6px;
  border-left: 2px solid var(--boarding-mauve);
  border-bottom: 2px solid var(--boarding-mauve);
  transform: rotate(-45deg);
  transition:
    border-color 440ms ease,
    transform 300ms var(--boarding-ease);
}

.boarding-policy-card li:hover {
  transform: translateX(4px);
}

/* Both special notes align at the bottom-left */

.boarding-policy-card__note {
  position: relative;
  z-index: 3;

  width: calc(100% - 115px);
  max-width: 250px;

  margin: auto 0 0 !important;
  padding-top: 28px;

  font-size: 0.92rem !important;
  font-style: italic;
  font-weight: 700;
  line-height: 1.5 !important;

  transition:
    color 440ms ease;
}

.boarding-policy-card--cats
.boarding-policy-card__note {
  color: #a97f37 !important;
}

.boarding-policy-card--prevention
.boarding-policy-card__note {
  color: #587361 !important;
}

/* =========================================================
   CARD HOVER
========================================================= */

.boarding-policy-card:hover
.boarding-policy-card__number {
  color: rgba(255, 255, 255, 0.68);

  transform:
    translate(-3px, 3px)
    scale(1.04);
}

.boarding-policy-card:hover
.boarding-policy-card__icon {
  color: #ffffff;

  transform:
    translate(-6px, -6px)
    scale(1.1);
}

.boarding-policy-card:hover
.boarding-policy-card__icon svg {
  transform:
    translate(-3px, -5px)
    scale(1.08);

  filter:
    drop-shadow(
      0 12px 18px
      rgba(24, 16, 22, 0.2)
    );
}

.boarding-policy-card:hover h3,
.boarding-policy-card:hover > p,
.boarding-policy-card:hover li {
  color: rgba(255, 255, 255, 0.88);
}

.boarding-policy-card:hover li::before {
  border-color: #f5d69a;
}

.boarding-policy-card:hover
.boarding-policy-card__note {
  color: #fff2d8 !important;
}


/* =========================================================
   RESERVATIONS & POLICIES
========================================================= */

.boarding-reservations {
  position: relative;
  overflow: hidden;
  padding: 126px 0 138px;
  background:
    radial-gradient(
      circle at 12% 20%,
      rgba(199, 173, 182, 0.18),
      transparent 30%
    ),
    linear-gradient(
      180deg,
      #f8f2f1 0%,
      #fdfaf8 100%
    );
}

.boarding-reservations::before {
  content: "";
  position: absolute;
  right: -150px;
  top: -170px;
  width: 430px;
  height: 430px;
  border: 1px solid rgba(139, 113, 133, 0.07);
  border-radius: 50%;
}

.boarding-reservations__layout {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns:
    minmax(0, 0.8fr)
    minmax(0, 1.2fr);
  gap: 90px;
  align-items: center;
}

.boarding-reservations__heading {
  max-width: 620px;
}

.boarding-reservations__heading h2 > .boarding-script {
  margin-top: 25px;
  font-size: 0.84em;
}

.boarding-reservations__heading > p:last-child {
  margin: 34px 0 0;
  color: var(--boarding-muted);
  font-size: 1rem;
  line-height: 1.82;
}

.boarding-reservations__cards {
  display: grid;
  gap: 18px;
}

.boarding-reservation-card {
  position: relative;
  display: grid;
  grid-template-columns: 68px 1fr;
  gap: 22px;
  align-items: start;
  padding: 26px 28px;
  overflow: hidden;
  border: 1px solid rgba(139, 113, 133, 0.14);
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.82);
  box-shadow:
    0 12px 28px rgba(64, 48, 59, 0.07);
  transition:
    transform 420ms var(--boarding-ease),
    background 420ms ease,
    border-color 420ms ease,
    box-shadow 420ms ease;
}

.boarding-reservation-card::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(
      110deg,
      var(--boarding-mauve-deep),
      var(--boarding-mauve)
    );
  opacity: 0;
  transition: opacity 420ms ease;
}

.boarding-reservation-card > * {
  position: relative;
  z-index: 2;
}

.boarding-reservation-card:hover {
  transform:
    translateY(-8px)
    translateX(4px);
  border-color: transparent;
  box-shadow:
    0 24px 46px rgba(64, 48, 59, 0.15);
}

.boarding-reservation-card:hover::before {
  opacity: 1;
}

.boarding-reservation-card__icon {
  width: 58px;
  height: 58px;
  display: grid;
  place-items: center;
  border-radius: 18px;
  color: var(--boarding-mauve);
  background: rgba(199, 173, 182, 0.2);
  transition:
    transform 420ms var(--boarding-ease),
    color 420ms ease,
    background 420ms ease;
}

.boarding-reservation-card__icon svg {
  width: 27px;
  height: 27px;
  stroke-width: 1.65;
}

.boarding-reservation-card:hover
.boarding-reservation-card__icon {
  color: #fff3dd;
  background: rgba(255, 255, 255, 0.14);
  transform:
    rotate(-8deg)
    scale(1.08);
}

.boarding-reservation-card h3 {
  margin: 0;
  color: var(--boarding-charcoal);
  font-family: var(--boarding-serif);
  font-size: 1.75rem;
  font-weight: 400;
  letter-spacing: -0.005em;
  line-height: 1.12;
  transition: color 420ms ease;
}

.boarding-reservation-card p {
  margin: 10px 0 0;
  color: var(--boarding-muted);
  font-size: 0.91rem;
  line-height: 1.72;
  transition: color 420ms ease;
}

.boarding-reservation-card:hover h3 {
  color: var(--boarding-white);
}

.boarding-reservation-card:hover p {
  color: rgba(255, 255, 255, 0.82);
}

/* =========================================================
   FINAL CTA
========================================================= */

.boarding-closing {
  position: relative;
  min-height: 770px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background: #2d272c;
  isolation: isolate;
}

.boarding-closing::before {
  content: "";
  position: absolute;
  z-index: 2;
  top: 13%;
  left: 8%;
  width: 150px;
  height: 150px;
  border: 1px solid rgba(255, 255, 255, 0.09);
  border-radius: 50%;
  pointer-events: none;
}

.boarding-closing__image {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.boarding-closing__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 52%;
  transform: scale(1.015);
}

.boarding-closing__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(
      90deg,
      rgba(29, 23, 28, 0.8),
      rgba(36, 29, 35, 0.57)
    ),
    linear-gradient(
      180deg,
      rgba(29, 23, 28, 0.13),
      rgba(29, 23, 28, 0.58)
    );
}

.boarding-closing__content {
  position: relative;
  z-index: 3;
  max-width: 1020px;
  padding: 98px 0;
  color: var(--boarding-white);
  text-align: center;
}

.boarding-closing .boarding-eyebrow {
  color: #ead9e1;
}

.boarding-closing h2 {
  color: var(--boarding-white);
}

.boarding-closing h2 > .boarding-script {
  color: #f1dce5;
}

.boarding-closing__content > p:not(.boarding-eyebrow) {
  max-width: 730px;
  margin: 38px auto 0;
  color: rgba(255, 255, 255, 0.88);
  font-size: 1.02rem;
  line-height: 1.84;
}

.boarding-closing .button {
  position: relative;
  overflow: hidden;
  margin-top: 40px;
  isolation: isolate;
  transition:
    transform 320ms var(--boarding-ease),
    box-shadow 320ms ease;
}

.boarding-closing .button::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: -45%;
  left: -120%;
  width: 70%;
  height: 190%;
  background:
    linear-gradient(
      90deg,
      transparent,
      rgba(255, 255, 255, 0.27),
      transparent
    );
  transform: rotate(18deg);
  transition:
    left 650ms var(--boarding-ease);
}

.boarding-closing .button:hover {
  transform:
    translateY(-6px)
    scale(1.015);
  box-shadow:
    0 25px 46px rgba(0, 0, 0, 0.28);
}

.boarding-closing .button:hover::before {
  left: 150%;
}

/* =========================================================
   LARGE TABLET / SMALL DESKTOP
========================================================= */

@media (max-width: 1180px) {
  .boarding-shell {
    width:
      min(1100px, calc(100% - 64px));
  }

  .boarding-hero__content {
    width: min(760px, 100%);
    margin-left: 0;
  }

  .boarding-report__layout {
    grid-template-columns: 1fr;
  }

  .boarding-report__card {
    transform: none;
  }

  .boarding-report__script-line {
    white-space: normal;
  }

  .boarding-intro__layout,
  .cat-boarding__layout,
  .boarding-report__layout,
  .boarding-reservations__layout {
    gap: 68px;
  }

  .boarding-includes__layout {
    gap: 58px;
  }

  .boarding-card__content {
    padding-inline: 40px;
  }

  .boarding-bath-callout__inner {
    grid-template-columns:
      minmax(0, 1fr)
      350px;
    gap: 58px;
  }

  .boarding-policy-heading__script {
    white-space: normal;
  }
}

/* =========================================================
   TABLET
========================================================= */

@media (max-width: 920px) {
  .boarding-shell {
    width:
      min(860px, calc(100% - 46px));
  }

  .boarding-hero {
    min-height: 770px;
  }

  .boarding-hero__overlay {
    background:
      linear-gradient(
        90deg,
        rgba(29, 23, 28, 0.82),
        rgba(29, 23, 28, 0.43)
      );
  }

  .boarding-hero__title-main,
  .boarding-hero__title-script {
    width: auto;
    white-space: normal;
  }

  .boarding-intro__layout,
  .boarding-includes__layout,
  .cat-boarding__layout,
  .boarding-report__layout,
  .boarding-reservations__layout {
    grid-template-columns: 1fr;
    gap: 58px;
  }

  .boarding-heading-line,
  .boarding-intro__promise,
  .boarding-includes__script-line,
  .boarding-report__heading-main,
  .boarding-report__script-line,
  .cat-boarding__heading-main {
    width: auto;
    white-space: normal;
  }

  .boarding-intro__script-line--second {
    padding-left: 0;
  }

  .boarding-report__content {
  transform: none;
}

.boarding-report__heading-main,
.boarding-report__script-line {
  width: auto;
  white-space: normal;
}

  .boarding-options__grid {
    grid-template-columns: 1fr;
  }

  .boarding-includes__heading {
    position: static;
  }

  .boarding-bath-callout__inner {
    grid-template-columns: 1fr;
    gap: 50px;
  }

  .boarding-bath-feature {
    width: min(500px, 100%);
    margin-inline: auto;
  }

  .cat-boarding__visual {
    order: 1;
  }

  .cat-boarding__content {
    order: 2;
  }

  .cat-boarding__image-wrap img {
    min-height: 540px;
  }

  .boarding-hours__grid {
    grid-template-columns: 1fr;
  }

  .boarding-policies__grid--three {
    grid-template-columns: 1fr;
  }

  .boarding-policy-card {
    min-height: 450px;
  }
}

/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 680px) {
  .boarding-shell {
    width: calc(100% - 32px);
  }

  .boarding-eyebrow {
    font-size: 0.67rem;
    letter-spacing: 0.19em;
  }

  .boarding-section-heading h2,
  .boarding-intro__heading h2,
  .boarding-includes__heading h2,
  .boarding-bath-callout h2,
  .cat-boarding__content h2,
  .boarding-report__content h2,
  .boarding-closing h2,
  .boarding-reservations__heading h2 {
    font-size: clamp(3rem, 13vw, 4.15rem);
  }

  /* Home-page mobile hero structure: image first, headline over image, panel below. */
  .boarding-hero {
    min-height: 0;
    display: block;
    padding: 0;
    overflow: visible;
    background: #f7f0ef;
  }

  .boarding-hero__image {
    position: relative;
    inset: auto;
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
  }

  .boarding-hero__image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
    transform: none;
    background: #2e282d;
  }

  .boarding-hero__overlay {
    inset: 0 0 auto;
    width: 100%;
    aspect-ratio: 16 / 9;
    background:
      linear-gradient(
        180deg,
        rgba(29, 23, 28, 0.08) 0%,
        rgba(29, 23, 28, 0.2) 48%,
        rgba(29, 23, 28, 0.74) 100%
      );
  }

  .boarding-hero .boarding-shell {
    width: 100%;
  }

  .boarding-hero__content {
    width: 100%;
    margin: 0;
    padding: 34px 22px 38px;
    color: var(--boarding-charcoal);
    background:
      linear-gradient(
        180deg,
        #f7f0ef 0%,
        #fffdfb 100%
      );
    box-shadow: 0 -12px 30px rgba(35, 26, 33, 0.08);
  }

  .boarding-hero .boarding-eyebrow {
    position: absolute;
    left: 22px;
    bottom: calc(100% + 88px);
    margin: 0;
    color: #f2e4ea;
    text-shadow: 0 3px 14px rgba(0, 0, 0, 0.35);
  }

  .boarding-hero h1 {
    position: absolute;
    left: 22px;
    right: 22px;
    bottom: calc(100% + 18px);
    margin: 0;
    color: #fffaf7;
    font-size: clamp(2.7rem, 12vw, 4.15rem);
    line-height: 0.94;
    text-shadow: 0 5px 22px rgba(0, 0, 0, 0.42);
  }

  .boarding-hero__title-main,
  .boarding-hero__title-script {
    width: auto;
    white-space: normal;
  }

  .boarding-hero__title-script {
    margin-top: 14px;
    font-size: 0.7em;
    line-height: 0.84;
  }

  .boarding-hero__copy {
    margin-top: 0;
    color: var(--boarding-muted);
    font-size: 0.94rem;
    line-height: 1.72;
    text-shadow: none;
  }

  .boarding-hero__actions {
    flex-direction: column;
    margin-top: 28px;
  }

  .boarding-hero__actions .button {
    width: 100%;
    justify-content: center;
  }

  .boarding-hero__actions .button-secondary {
    color: var(--boarding-mauve-deep);
    background: rgba(139, 113, 133, 0.08);
    border-color: rgba(139, 113, 133, 0.28);
    backdrop-filter: none;
  }

  .boarding-intro,
  .boarding-options,
  .boarding-includes,
  .cat-boarding,
  .boarding-report,
  .boarding-hours,
  .boarding-policies,
  .boarding-reservations {
    padding: 84px 0;
  }

  .boarding-section-heading {
    margin-bottom: 49px;
  }

  .boarding-intro__layout {
    gap: 40px;
  }

  .boarding-intro__heading h2 {
    font-size: clamp(3rem, 13vw, 4.1rem);
    line-height: 0.96;
  }

  .boarding-intro__script-line {
    margin-top: 18px !important;
    font-size: 0.82em !important;
    line-height: 0.84 !important;
  }

  .boarding-intro__script-line--second {
    margin-top: 8px !important;
  }

  .boarding-intro__copy p {
    font-size: 0.95rem;
    line-height: 1.78;
  }

  .boarding-intro__promise {
    padding-left: 23px;
    font-size: 1.45rem !important;
    line-height: 1.48 !important;
  }

  .boarding-card__content,
  .boarding-card--luxury .boarding-card__content {
    padding: 44px 24px 40px;
  }

  .boarding-card--luxury .boarding-card__content {
    padding-top: 84px;
  }

  .boarding-card h3 {
    font-size: clamp(3rem, 13vw, 4.45rem);
  }

  .boarding-luxury-features,
  .boarding-suite-names,
  .boarding-includes__grid,
  .cat-boarding__features,
  .cat-condos,
  .boarding-report__items {
    grid-template-columns: 1fr;
  }

  .boarding-card__number {
    right: 22px;
    font-size: 4.8rem;
  }

  .boarding-bath-callout {
    padding: 78px 0;
  }

  .boarding-bath-callout h2 {
    font-size: clamp(3rem, 13vw, 4.1rem);
    line-height: 0.96;
  }

  .boarding-bath-callout__main-line {
    display: block;
  }

  .boarding-bath-callout__main-line .boarding-ampersand {
    margin-left: 7px !important;
  }

  .boarding-bath-callout__script-line {
    width: max-content;
    max-width: 100%;
    margin-top: 20px !important;
    font-size: 0.9em !important;
    line-height: 0.78 !important;
    white-space: nowrap;
  }

  .boarding-bath-callout__copy > p:last-child {
    margin-top: 26px;
    font-size: 0.95rem;
    line-height: 1.72;
  }

  .boarding-bath-feature {
    border-radius: 28px;
  }

  .boarding-bath-feature__top {
    min-height: 132px;
    padding:
      25px
      20px
      22px;
  }

  .boarding-bath-feature__top p > strong {
    font-size:
      clamp(
        2.15rem,
        10vw,
        2.8rem
      );
  }

  .boarding-bath-feature__content {
    padding:
      32px
      24px
      38px;
  }

  .boarding-bath-feature__content > strong {
    font-size:
      clamp(
        3.15rem,
        15vw,
        4.1rem
      );
    line-height: 0.8;
  }

  .boarding-bath-callout__paw--three {
    display: none;
  }

  .cat-boarding__image-wrap {
    border-radius: 24px;
  }

  .cat-boarding__image-wrap img {
    min-height: 430px;
  }

  .cat-boarding__price {
    align-items: flex-start;
    flex-direction: column;
  }

  .boarding-report__layout {
    gap: 38px;
  }

  .boarding-report__content {
    transform: none;
  }

  .boarding-report__content h2 {
    font-size: clamp(2.85rem, 12.5vw, 3.9rem);
    line-height: 0.98;
  }

  .boarding-report__heading-main {
    max-width: none;
    font-size: 0.9em;
    line-height: 0.98;
  }

  .boarding-report__script-line {
    margin-top: 16px !important;
    font-size: 0.76em !important;
    line-height: 0.86 !important;
    white-space: normal !important;
  }

  .boarding-report__content > p:last-child {
    margin-top: 24px;
    font-size: 0.94rem;
    line-height: 1.72;
  }

  .boarding-report__card {
    padding: 24px 20px;
    transform: none;
    border-radius: 26px;
  }

  .boarding-report__card-header {
    align-items: flex-start;
    flex-direction: column;
    gap: 14px;
  }

  .boarding-report__card-header strong {
    font-size: clamp(1.65rem, 7.5vw, 2.1rem);
    line-height: 1.12;
  }

  .boarding-report__items {
    gap: 12px;
  }

  .boarding-report__item {
    min-height: 64px;
    padding: 15px 16px;
  }

  .boarding-report__keepsake {
    font-size: 1rem;
    line-height: 1.45;
  }

  .boarding-section-heading--hours {
    margin-bottom: 42px;
  }

  .boarding-section-heading--hours h2 {
    font-size: clamp(3rem, 13vw, 4.15rem);
    line-height: 0.96;
  }

  .boarding-hours__script-line {
    margin-top: 18px !important;
    gap: 8px;
    font-size: 0.68em !important;
    line-height: 0.86 !important;
  }

  .boarding-hours__card {
    padding: 30px 22px;
    border-radius: 24px;
  }

  .boarding-hours__notice p {
    font-size: 0.94rem;
    line-height: 1.72;
  }

  .boarding-policy-heading__main {
    gap: 8px;
  }

  .boarding-policy-heading__script {
    margin-top: 21px !important;
    white-space: normal;
    font-size: 0.8em !important;
  }

  .boarding-policy-card {
    min-height: 430px;
    padding: 36px 24px 145px;
  }

  .boarding-policy-card__number {
    top: 20px;
    right: 22px;
    font-size: 2.5rem;
  }

  .boarding-policy-card h3 {
    max-width: calc(100% - 65px);
    font-size: 1.85rem;
  }

  .boarding-policy-card > p:not(.boarding-policy-card__note) {
    font-size: 0.92rem;
  }

  .boarding-policy-card li {
    font-size: 0.9rem;
  }

  .boarding-policy-card::before,
  .boarding-policy-card__icon {
    right: -40px;
    bottom: -50px;
    width: 195px;
    height: 195px;
  }

  .boarding-policy-card__icon svg {
    width: 84px;
    height: 84px;
  }

  .boarding-policy-card__note {
    width: calc(100% - 100px);
    font-size: 0.88rem !important;
  }

  .boarding-reservation-card {
    grid-template-columns: 54px 1fr;
    gap: 17px;
    padding: 23px 21px;
  }

  .boarding-reservation-card__icon {
    width: 50px;
    height: 50px;
  }

  .boarding-closing {
    min-height: 710px;
  }

  .boarding-closing__image img {
    object-position: 52% center;
  }

  .boarding-closing__content {
    padding: 76px 0;
  }
}

/* =========================================================
   SMALL MOBILE
========================================================= */

@media (max-width: 420px) {
  .boarding-shell {
    width: calc(100% - 26px);
  }

  .boarding-hero h1 {
    font-size: 3.32rem;
  }

  .boarding-card__content,
  .boarding-card--luxury
  .boarding-card__content {
    padding-inline: 20px;
  }

  .boarding-bath-feature__top p > strong {
    font-size: 2.2rem;
  }

  .boarding-bath-feature__content > strong {
    font-size: 3.25rem;
  }

  .boarding-report__card-header span {
    font-size: 1.7rem;
  }

  .boarding-hours__card strong {
    font-size: 1.55rem;
  }
}

/* =========================================================
   REDUCED MOTION
========================================================= */

@media (prefers-reduced-motion: reduce) {
  .boarding-page *,
  .boarding-page *::before,
  .boarding-page *::after {
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }

  .boarding-reveal {
    opacity: 1 !important;
    transform: none !important;
  }

  .boarding-hero__image img,
  .boarding-closing__image img {
    transform: none !important;
  }

  .sleep-z{
    position:absolute;
    z-index:5;
    color:#8b7185;
    font-family:"Cormorant Garamond",serif;
    font-size:2rem;
    font-weight:700;
    line-height:1;
    opacity:0;
    pointer-events:none;
    animation:sleepFloat 5s infinite;
}

.z1{
    top:22px;
    right:118px;
}

.z2{
    top:-6px;
    right:78px;
    font-size:2.5rem;
    animation-delay:1.2s;
}

.z3{
    top:-38px;
    right:38px;
    font-size:3rem;
    animation-delay:2.4s;
}

@keyframes sleepFloat{
    0%{
        opacity:0;
        transform:translateY(0) scale(.6);
    }
    20%{
        opacity:1;
    }
    80%{
        opacity:1;
    }
    100%{
        opacity:0;
        transform:translate(-10px,-45px) scale(1.2);
    }
}

/* =========================================================
   SLEEPING DAISY — ANIMATED Z'S
========================================================= */

.boarding-intro__daisy{
  position:relative;
}

.boarding-intro__daisy .sleep-z{
  position:absolute;
  z-index:20;
  display:block;
  margin:0;
  color:#8b7185;
  font-family:"Cormorant Garamond",serif;
  font-weight:600;
  font-style:italic;
  line-height:1;
  opacity:0;
  pointer-events:none;
  animation:
    boardingSleepRise
    4.8s
    ease-out
    infinite!important;
}

.boarding-intro__daisy .z1{
  top:31%;
  right:22%;
  font-size:1.55rem;
  animation-delay:0s!important;
}

.boarding-intro__daisy .z2{
  top:23%;
  right:15%;
  font-size:2rem;
  animation-delay:1.2s!important;
}

.boarding-intro__daisy .z3{
  top:14%;
  right:8%;
  font-size:2.55rem;
  animation-delay:2.4s!important;
}

@keyframes boardingSleepRise{
  0%{
    opacity:0;
    transform:
      translate3d(0,12px,0)
      scale(.65)
      rotate(-8deg);
  }

  18%{
    opacity:.9;
  }

  70%{
    opacity:.7;
  }

  100%{
    opacity:0;
    transform:
      translate3d(18px,-58px,0)
      scale(1.2)
      rotate(5deg);
  }
}
}
/* =========================================================
   BOARDING INTRO — COMPACT FINAL LAYOUT
========================================================= */

.boarding-intro{
  padding-top:90px;
  padding-bottom:90px;
}

.boarding-intro__layout{
  min-height:680px;
  align-items:center;
}

.boarding-intro__daisy{
  min-height:430px;
  align-self:end;
}

.boarding-intro__daisy-circle{
  width:410px;
  height:410px;
}

.boarding-intro__daisy > img{
  width:520px;
  max-width:none;
}

/* Animated sleeping Zs */

.boarding-intro__daisy .sleep-z{
  position:absolute;
  z-index:30;
  display:block;
  color:#8b7185;
  font-family:"Cormorant Garamond",serif;
  font-style:italic;
  font-weight:600;
  line-height:1;
  opacity:0;
  pointer-events:none;
  animation:boardingSleepZ 4.8s ease-out infinite;
}

.boarding-intro__daisy .z1{
  top:30%;
  right:15%;
  font-size:1.6rem;
  animation-delay:0s;
}

.boarding-intro__daisy .z2{
  top:21%;
  right:9%;
  font-size:2.1rem;
  animation-delay:1.2s;
}

.boarding-intro__daisy .z3{
  top:11%;
  right:3%;
  font-size:2.7rem;
  animation-delay:2.4s;
}

@keyframes boardingSleepZ{
  0%{
    opacity:0;
    transform:translate(0,12px) scale(.65);
  }

  20%{
    opacity:1;
  }

  72%{
    opacity:.8;
  }

  100%{
    opacity:0;
    transform:translate(20px,-58px) scale(1.2);
  }
}

/* =========================================================
   BOARDING INTRO — COMPACT FINAL POSITION
========================================================= */

.boarding-intro{
  padding-top:70px!important;
  padding-bottom:45px!important;
}

.boarding-intro__layout{
  min-height:540px!important;
  align-items:center!important;
}

.boarding-intro__daisy{
  min-height:350px!important;
  align-self:center!important;
  transform:translateY(-105px)!important;
}

.boarding-intro__daisy-circle{
  width:400px!important;
  height:400px!important;
}

.boarding-intro__daisy > img{
  width:550px!important;
  max-width:none!important;
}

.boarding-intro__daisy .z1{
  top:22%!important;
  right:15%!important;
}

.boarding-intro__daisy .z2{
  top:12%!important;
  right:8%!important;
}

.boarding-intro__daisy .z3{
  top:1%!important;
  right:1%!important;
}