.home .cabana-cta, .cabanas .cabana-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  max-width: 100%;
  padding: 10px 14px;
  border: 1px solid var(--teal, #087d8d);
  border-radius: 4px;
  background: var(--teal, #087d8d);
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
  text-decoration: none;
  white-space: normal;
}
.home .cabana-cta:hover, .cabanas .cabana-cta:hover { background: #066777; border-color: #066777; }
.cabanas .cabana-cta { background: #bb4d1b; border-color: #bb4d1b; }
.cabanas .cabana-cta:hover { background: #a54016; border-color: #a54016; }
.cabana-booking-notice[hidden] { display: none; }
.cabana-booking-notice { margin: 8px 0 0; font-size: 14px; line-height: 1.45; }
.cabana-booking-notice a { color: var(--teal, #087d8d); text-underline-offset: 3px; }
.hero-shell .hero-copy > p.cabana-booking-notice { font-size: 14px; margin-top: 8px; }

body.cabanas {
  --teal: #042456;
  margin: 0;
  background-color: #f2e6d6;
  background-image: linear-gradient(rgba(255,238,211,.28), rgba(255,238,211,.28)), url("assets/beach-sand-texture.webp");
  background-size: 640px 640px;
  background-repeat: repeat;
  color: var(--ink, #16384f);
  font-family: Arial, Helvetica, sans-serif;
  font-size: 16px;
  line-height: 1.5;
}
.cabanas .cabana-main {
  width: 100%;
  max-width: 1080px;
  margin: 0 auto;
  padding: 24px 24px 0;
}
.cabana-intro {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 320px);
  align-items: center;
  gap: 24px;
  margin-bottom: 24px;
}
.cabana-intro > div { min-width: 0; }
.cabana-intro h1 {
  margin: 0 0 12px;
  font-family: inherit;
  font-size: clamp(28px, 2.4vw, 34px);
  font-weight: 700;
  line-height: 1.15;
}
.cabana-intro p { max-width: 46ch; margin: 0 0 16px; }
.cabana-intro .location-only-badge {
  display: block;
  width: fit-content;
  max-width: 100%;
  margin: 0 0 4px;
  font-family: inherit;
  font-size: 12px;
}
.cabana-intro .cabana-booking-notice { margin: 8px 0 0; }
.cabana-intro img {
  display: block;
  width: 100%;
  max-width: 320px;
  height: auto;
  justify-self: end;
  border: 1px solid var(--line, #cfdee4);
  border-radius: 10px;
}
.cabana-pricing { margin: 0 0 24px; }
.cabana-pricing h2, .cabana-visit h2 {
  margin: 0 0 12px;
  font-family: inherit;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.25;
}
.cabana-price-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
.cabana-rate {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
  padding: 20px;
  border: 1px solid var(--line, #cfdee4);
  border-radius: 10px;
  background: rgba(255, 255, 255, .94);
  box-shadow: 0 4px 16px rgba(0, 0, 0, .08);
}
.cabana-rate h3 {
  min-height: 42px;
  margin: 0;
  font-family: inherit;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.3;
}
.cabana-rate .cabana-price {
  margin: 0;
  color: var(--teal, #087d8d);
  font-size: 26px;
  font-weight: 700;
  line-height: 1.1;
}
.cabana-rate > p:not(.cabana-price) { margin: 0; font-size: 14px; line-height: 1.45; }
.cabana-water-rates {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
  margin: 0;
}
.cabana-water-rates dt { font-size: 12px; }
.cabana-water-rates dd { margin: 2px 0 0; color: var(--teal, #087d8d); font-size: 20px; font-weight: 700; line-height: 1.25; }
.cabana-source-link { display: inline-flex; align-items: center; min-height: 44px; margin-top: 4px; color: var(--teal, #087d8d); font-size: 14px; text-underline-offset: 3px; }
.cabana-visit {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  padding: 20px;
  border: 1px solid var(--line, #cfdee4);
  border-radius: 4px;
  background: rgba(255, 255, 255, .78);
}
.cabana-visit p { margin: 0 0 8px; }
.cabana-visit p:last-child { margin-bottom: 0; }
.cabana-visit a, .cabana-footer a { color: var(--teal, #087d8d); overflow-wrap: anywhere; }
.cabana-policy { font-size: 14px; color: var(--muted, #526b79); }
.cabanas .cabana-footer { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 20px; margin-top: 20px; padding: 14px 0; background: transparent; font-size: 14px; }
.cabana-footer a { display: inline-flex; align-items: center; min-height: 44px; }
.cabana-footer > div { min-width: 0; }
.cabana-footer .cabana-email { display: block; }
.cabanas .navtext a[aria-current="page"], .cabanas .mobile-nav-links a[aria-current="page"] { color: var(--teal, #087d8d); text-decoration: underline; text-underline-offset: 4px; }
.cabana-cta:focus-visible, .cabanas main a:focus-visible { outline: 3px solid #e69b12; outline-offset: 3px; }

@media (max-width: 1023px) {
  .cabana-price-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cabana-intro { gap: 20px; }
}
@media (max-width: 720px) {
  .cabana-intro { grid-template-columns: minmax(0, 1fr); }
  .cabana-intro img { justify-self: center; }
}
@media (max-width: 600px) {
  .cabanas .cabana-main { padding: 20px 16px 0; }
  .cabana-intro { gap: 16px; }
  .cabana-price-grid { gap: 10px; }
  .cabana-rate { padding: 16px; }
  .cabana-rate h3 { min-height: 3.9em; }
  .cabana-visit { grid-template-columns: minmax(0, 1fr); gap: 16px; padding: 16px; }
}
@media (max-width: 359px) {
  .cabana-price-grid { grid-template-columns: minmax(0, 1fr); }
  .cabana-rate h3 { min-height: 0; }
}
