.spring-announcement { position: relative; overflow: hidden; margin: 22px 0; padding: 34px 38px; border: 1px solid #e5cbbb; border-radius: 26px; background: linear-gradient(135deg,#fff7ed 0%,#f6e5d7 100%); box-shadow: 0 18px 45px rgba(89,55,39,.08); }
.spring-announcement > * { position: relative; z-index: 1; }
.spring-mark { position: absolute; z-index: 0; top: -34px; right: 32px; color: rgba(151,74,54,.07); font-family: serif; font-size: 178px; line-height: 1; user-select: none; }
.spring-kicker { margin: 0 0 10px; color: #95533e; font-size: 13px; font-weight: 800; letter-spacing: .18em; }
.spring-announcement h2 { margin: 0; color: #6f3f30; font-size: clamp(28px,4vw,48px); line-height: 1.25; }
.spring-description { margin: 18px 0 0; color: #675c55; font-size: 17px; }
.spring-meta { display: flex; flex-wrap: wrap; gap: 10px 22px; margin: 24px 0 4px; color: #6e4739; font-size: 14px; font-weight: 750; }
.spring-price-details { margin-top: 18px; border-top: 1px solid rgba(121,78,57,.18); padding-top: 16px; }
.spring-price-details summary { cursor: pointer; color: #49342c; font-weight: 800; }
.policy-copy { color: #625850; font-size: 15px; line-height: 1.75; }
.policy-copy ul { padding-left: 1.25rem; }
.table-scroll { overflow-x: auto; margin-top: 12px; }
.spring-price-table { width: 100%; min-width: 620px; border-collapse: collapse; color: #403934; font-size: 14px; }
.spring-price-table caption { padding: 0 0 10px; color: #776d65; text-align: left; }
.spring-price-table th,.spring-price-table td { padding: 11px 12px; border-bottom: 1px solid rgba(99,75,61,.14); text-align: right; white-space: nowrap; }
.spring-price-table th:first-child,.spring-price-table td:first-child { text-align: left; }
.choice-card-copy { display: block; min-width: 0; }
.choice-card-price { display: grid; gap: 5px; }
.rate-line { display: flex; flex-wrap: nowrap; align-items: baseline; gap: 0 4px; }
.rate-label { flex: 0 0 auto; color: #746b65; font-size: 12px; font-weight: 700; white-space: nowrap; }
.rate-amount { display: inline-flex; flex: 0 0 auto; align-items: baseline; gap: 4px; color: #746b65; font-size: 12px; font-weight: 700; white-space: nowrap; }
.rate-amount strong { color: #754634; font-size: 22px; letter-spacing: -.035em; }
.spring-card-rate .rate-label,.spring-card-rate .rate-amount,.spring-card-rate .rate-amount strong { color: #9b4936; }
.choice-card-media--jump { position: relative; isolation: isolate; display: flex; align-items: center; justify-content: center; background: #e9e1d7; }
.choice-card-media--jump::before { content: ""; position: absolute; z-index: 0; inset: -16px; background: url("assets/jump-family-room.jpg") center 58% / cover no-repeat; filter: blur(14px); opacity: .3; transform: scale(1.08); }
.choice-card-media--jump .jump-photo-crop { position: relative; z-index: 1; display: block; width: 75%; height: 100%; overflow: hidden; }
.choice-card .choice-card-media--jump img.room-photo--jump { width: 100%; height: 100%; object-fit: cover; object-position: center 58%; }
.spring-date-status { margin: 10px 0 0; color: #884b39; font-size: 14px; font-weight: 700; }
.time-choice.is-unavailable { opacity: .48; }
.spring-summary { margin: 0 0 18px; padding: 16px; border: 1px solid rgba(123,76,55,.17); border-radius: 16px; background: #fbf4ec; }
.spring-summary h3 { margin: 0 0 10px; color: #4a3931; font-size: 15px; }
.period-line { display: grid; grid-template-columns: 1fr auto; gap: 10px; margin: 12px 0; font-size: 14px; }
.period-line > .period-copy { display: grid; gap: 2px; }
.period-line .period-label { display: inline; }
.period-line small { color: #7d746e; }
.holiday-line strong,.holiday-line b { color: #984a36; }
.season-deposit-note { margin: 14px 0 0; color: #704638; font-size: 14px; line-height: 1.65; }
@media(min-width:1240px) { .room-options { grid-template-columns:repeat(3,minmax(0,1fr)); } .choice-card-title { font-size:14px; } .choice-card-copy { min-height:143px; } }
@media(max-width:1100px) and (min-width:861px) { .calculator-grid { grid-template-columns:1fr; } .summary-panel { position:static; } .booking-summary { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:720px) { .spring-announcement { padding:26px 22px; border-radius:20px; } .spring-mark { right:-8px; font-size:138px; } }
@media(max-width:560px) { .room-options { grid-template-columns:1fr; } .choice-card > .choice-card-body { display:grid; grid-template-columns:minmax(0,1fr) 96px; padding:0; } .choice-card .choice-card-copy { padding:14px 12px; } .choice-card .choice-card-media { aspect-ratio:auto; min-height:180px; } .choice-card-media--jump .jump-photo-crop { width:100%; height:auto; aspect-ratio:3/5; } }
