.lodge-specials {
  --specials-ink: var(--stiltz-ink, #242320);
  --specials-accent: var(--hospitality-brand, #314f86);
  --specials-paper: #f7f9fc;
  --specials-timber: var(--stiltz-timber, #7e6650);
  --specials-blue: var(--stiltz-blue, #61798c);
  --specials-serif: var(--hospitality-accent-font, var(--stiltz-serif, Georgia, serif));
  --specials-sans: var(--stiltz-sans, Arial, sans-serif);
  color: var(--specials-ink);
  background: linear-gradient(180deg, #fff 0%, #f5f8fa 52%, #fff 100%);
  overflow: hidden;
}

.lodge-specials-hero { position: relative; padding-bottom: 80px; }
.lodge-specials-hero-photo { height: min(62vw, 610px); min-height: 410px; overflow: hidden; position: relative; }
.lodge-specials-hero-photo::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(22,20,18,.28), transparent 45%); pointer-events: none; }
.lodge-specials-hero-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 55%; }
.lodge-specials-hero-copy {
  position: relative;
  width: min(890px, calc(100% - 48px));
  margin: -96px auto 0;
  padding: clamp(36px, 5vw, 72px) clamp(28px, 6vw, 84px);
  background: #fff;
  box-shadow: 0 28px 70px rgba(32,51,75,.17), 0 8px 22px rgba(32,51,75,.08);
  text-align: center;
}
.lodge-specials-eyebrow, .lodge-specials-card-label {
  display: block;
  color: var(--specials-accent);
  font-family: var(--specials-sans);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.lodge-specials-hero h1 { font-family: var(--specials-serif); font-size: clamp(38px, 5vw, 65px); font-weight: 400; line-height: 1.12; margin: 18px auto 20px; max-width: 710px; }
.lodge-specials-hero-copy p { margin: 0 auto; max-width: 600px; color: #514b44; font-size: clamp(16px, 1.5vw, 19px); line-height: 1.65; }

.lodge-specials-content { position: relative; width: min(1380px, calc(100% - 48px)); margin: 0 auto; padding-bottom: 24px; }
.lodge-specials-grid, .lodge-specials-terms { position: relative; z-index: 1; }
.lodge-specials-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.lodge-specials-card { position: relative; isolation: isolate; display: flex; flex-direction: column; min-height: 430px; overflow: hidden; padding: 32px; background: var(--specials-paper); border: 1px solid rgba(49,79,134,.14); transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.lodge-specials-card-art { position: absolute; inset: auto 0 0 auto; z-index: -1; width: 52%; height: 82%; object-fit: cover; object-position: center; filter: saturate(.88) brightness(1.06); -webkit-mask-image: radial-gradient(ellipse 95% 105% at 100% 100%, #000 38%, transparent 83%); mask-image: radial-gradient(ellipse 95% 105% at 100% 100%, #000 38%, transparent 83%); pointer-events: none; }
.lodge-specials-card-copy { position: relative; z-index: 1; display: flex; flex-direction: column; flex: 1; width: 100%; }
.lodge-specials-card-has-art .lodge-specials-card-copy { width: 62%; }
.lodge-specials-card-2 .lodge-specials-card-art { object-position: 18% center; }
.lodge-specials-card:focus-within { border-color: transparent; box-shadow: 0 18px 42px rgba(48,35,24,.16); }
@media (hover: hover) and (pointer: fine) {
  .lodge-specials-card:hover { transform: translateY(-4px); border-color: transparent; box-shadow: 0 18px 42px rgba(48,35,24,.16); }
}
.lodge-specials-card-2, .lodge-specials-card-3 { background: #fff; }
.lodge-specials-card h2 { font-family: var(--specials-serif); font-size: clamp(30px, 2.6vw, 38px); font-weight: 400; line-height: 1.18; margin: 12px 0 7px; }
.lodge-specials-discount { color: var(--specials-timber); font-family: var(--specials-serif); font-size: clamp(27px, 2.3vw, 34px); line-height: 1.2; margin: 0 0 14px; }
.lodge-specials-description { font-size: 15px; line-height: 1.5; margin: 0 0 10px; }
.lodge-specials-condition { color: #67615b; font-size: 13px; line-height: 1.45; margin: 0 0 18px; }
.lodge-specials-card-1 .lodge-specials-condition, .lodge-specials-card-2 .lodge-specials-condition { color: var(--specials-timber); font-size: 14px; font-weight: 600; border-top: 1px solid rgba(49,79,134,.16); padding-top: 12px; }
.lodge-specials-button {
  align-items: center;
  align-self: flex-start;
  display: inline-flex;
  justify-content: center;
  gap: 8px;
  min-height: 46px;
  margin-top: auto;
  padding: 10px 24px;
  background: var(--specials-accent);
  border: 1px solid var(--specials-accent);
  border-radius: 3px;
  color: #fff;
  font: 700 12px/1.3 var(--specials-sans);
  letter-spacing: .14em;
  text-decoration: none;
  text-transform: uppercase;
  transition: background .2s ease, border-color .2s ease;
}
.lodge-specials-button:hover, .lodge-specials-button:focus-visible { background: #223b69; border-color: #223b69; color: #fff; }
.lodge-specials-button:focus-visible { outline: 3px solid var(--specials-blue); outline-offset: 3px; }
.lodge-specials-terms { color: #655f58; font-size: 13px; line-height: 1.65; max-width: 860px; margin: 28px auto 0; text-align: center; }

.lodge-specials-dune { position: relative; height: clamp(340px, 37vw, 510px); overflow: hidden; background: #8b6142; }
.lodge-specials-dune > img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 62%; }
.lodge-specials-dune::after { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, transparent 30%, rgba(35,25,18,.08) 54%, rgba(35,25,18,.58) 100%); pointer-events: none; }
.lodge-specials-dune-edge { position: absolute; inset: -1px 0 auto; z-index: 2; display: block; width: 100%; height: clamp(90px, 11vw, 150px); color: #fff; pointer-events: none; }
.lodge-specials-dune-caption { position: absolute; z-index: 3; left: 50%; top: 82%; transform: translate(-50%, -50%); width: calc(100% - 48px); max-width: 1300px; margin: 0; color: #fff; font-family: var(--hospitality-accent-font, Papyrus, fantasy); font-size: clamp(32px, 3.5vw, 50px); line-height: 1.2; text-align: center; text-shadow: 0 2px 14px rgba(22,15,11,.8), 0 4px 30px rgba(22,15,11,.5); }
@media (min-width: 1100px) { .lodge-specials-dune-caption { white-space: nowrap; } }
@media (max-width: 1199px) {
  .lodge-specials-grid { grid-template-columns: 1fr; }
  .lodge-specials-card { min-height: 390px; }
}

@media (max-width: 620px) {
  .lodge-specials-card { min-height: 0; padding: 0; }
  .lodge-specials-card-art { position: relative; order: 2; z-index: 0; width: 100%; height: 140px; object-position: center 55%; -webkit-mask-image: linear-gradient(180deg, transparent, #000 34%); mask-image: linear-gradient(180deg, transparent, #000 34%); }
  .lodge-specials-card-copy, .lodge-specials-card-has-art .lodge-specials-card-copy { order: 1; width: 100%; padding: 28px 26px 24px; }
  .lodge-specials-button { margin-top: 10px; }
}

@media (max-width: 760px) {
  .lodge-specials-hero { padding-bottom: 48px; }
  .lodge-specials-hero-photo { height: 390px; min-height: 0; }
  .lodge-specials-hero-photo img { object-position: 50% 55%; }
  .lodge-specials-hero-copy { width: calc(100% - 28px); margin-top: -52px; padding: 38px 24px 42px; }
  .lodge-specials-hero h1 { font-size: clamp(34px, 9vw, 48px); }
  .lodge-specials-content { width: calc(100% - 28px); padding-bottom: 24px; }
  .lodge-specials-grid { grid-template-columns: 1fr; gap: 16px; }
  .lodge-specials-card { min-height: 0; }
  .lodge-specials-card h2 { font-size: 32px; }
  .lodge-specials-description { font-size: 15px; }
  .lodge-specials-dune { height: 330px; }
  .lodge-specials-dune > img { object-position: 55% center; }
  .lodge-specials-dune-edge { height: 90px; }
  .lodge-specials-dune-caption { font-size: clamp(29px, 8vw, 40px); width: calc(100% - 56px); }
}

@media (prefers-reduced-motion: reduce) {
  .lodge-specials-button, .lodge-specials-card { transition: none; }
  .lodge-specials-card:hover { transform: none; }
}

/* The Stiltz site uses its own lagoon-blue accents and display type. */
.lodge-specials .lodge-specials-button, .lodge-specials .lodge-specials-button:hover, .lodge-specials .lodge-specials-button:focus-visible { color: #fff !important; }
.lodge-specials-discount { font-family: var(--stiltz-serif, Georgia, serif); }
.lodge-specials-card-1 .lodge-specials-condition, .lodge-specials-card-2 .lodge-specials-condition { color: var(--specials-accent); }
.lodge-specials-dune { background: #53697c; }
@media (max-width: 360px) { .lodge-specials-dune-caption { font-size: 28px; } }
