/* Shared hierarchy based on the Villa MADORA card: eyebrow, headline, description. */
main .section .eyebrow{
  font-family:"DM Sans",sans-serif;
  font-size:.78rem;
  font-weight:600;
  line-height:1.5;
  letter-spacing:.2em;
  text-transform:uppercase;
  margin-bottom:.75rem;
}
main .telemetry.section .eyebrow{margin-bottom:.2rem}
main .section h2{
  font-family:"Manrope",sans-serif;
  font-size:2.1rem;
  font-weight:600;
  line-height:1.15;
  letter-spacing:-.04em;
}
main .section h2 + p,
main .intro > p:last-child,
main .discover-head > p,
main .loyal-lead,
main .contact > div:first-child > p:not(.eyebrow),
main .stay-card > p:not(.eyebrow){
  font-family:"DM Sans",sans-serif;
  font-size:1rem;
  font-weight:400;
  line-height:1.6;
  letter-spacing:normal;
}
main .section :is(.privacy-options,.connectivity-features,.loyal-benefits,.experience-grid) h3{
  font-family:"Manrope",sans-serif;
  font-size:clamp(1.25rem,1.7vw,1.6rem);
  line-height:1.16;
  letter-spacing:-.04em;
}
main .section :is(.privacy-options,.connectivity-features,.loyal-benefits,.experience-grid) article p{
  font-size:1rem;
  line-height:1.6;
}
@media(max-width:560px){
  main .section h2{font-size:clamp(1.8rem,7vw,2.1rem)}
  main .gallery .gallery-head h2{font-size:clamp(1.4rem,8vw,2.1rem);letter-spacing:-.055em}
  main .gallery .gallery-head .eyebrow{font-size:.72rem;letter-spacing:.14em}
}

/* Shorter section transitions without changing card or media dimensions. */
main > .section:not(.stays):not(.telemetry):not(.reviews):not(.connectivity){
  padding-block:clamp(2.5rem,3.5vw,3.5rem);
}
main > .stays.section{padding-top:0;padding-bottom:clamp(1rem,2vw,1.5rem)}
main .stays .stay-card > .eyebrow{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.35rem;
  white-space:nowrap;
}
.stay-house-icon{
  display:block;
  flex:0 0 auto;
  width:3.1rem;
  height:1.85rem;
  object-fit:contain;
  object-position:right center;
}
.stay-card.together .stay-house-icon{width:3.6rem}
main > .brand-story{margin-bottom:clamp(2rem,3vw,3rem)}
@media(max-width:900px){
  main > .section:not(.stays):not(.telemetry):not(.reviews):not(.connectivity){
    padding-block:clamp(2rem,5vw,3rem);
  }
}
@media(max-width:560px){
  main .stays .stay-card > .eyebrow{font-size:clamp(.65rem,2.7vw,.78rem);letter-spacing:.1em}
  .stay-house-icon{width:2.7rem;height:1.55rem}
  .stay-card.together .stay-house-icon{width:3.1rem}
  main > .section:not(.stays):not(.telemetry):not(.reviews):not(.connectivity){
    padding-block:1.85rem;
  }
  main > .brand-story{margin-bottom:2rem}
}

/* Uniform, legible disclosure controls on light and dark cards. */
.stay-overview-arrow,
.price-notice summary::after,
.manage-booking-card summary::after,
.loyalty-code-disclosure summary::after {
  border-right-color: #d39a17;
  border-bottom-color: #d39a17;
  border-right-width: 4px;
  border-bottom-width: 4px;
}
.stay-card.together .stay-overview-arrow { border-color: #ffc44d; }
.amenity-details summary::marker { color: #d39a17; font-weight: 900; }
.stay-card.together .amenity-details summary::marker { color: #ffc44d; }

/* A soft edge lifts yellow disclosure arrows from light and dark backgrounds. */
.stay-overview-arrow,
.story-disclosure summary::after,
.location-disclosure summary::after,
.connectivity-disclosure summary::after,
.loyal-intro-disclosure summary::after,
.loyal-benefits details summary::after,
.price-notice summary::after,
.manage-booking-card summary::after,
.loyalty-code-disclosure summary::after {
  filter: drop-shadow(0 1px 1px rgba(19,42,43,.55));
}
/* Keep both lines of the MADORA wordmark aligned at each screen width. */
.brand {
  display: inline-flex;
  flex-direction: column;
  width: 7.7em;
  flex-shrink: 0;
  white-space: nowrap;
}
.brand > .brand-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  width: 100%;
  font: 600 1em/1 "Manrope", sans-serif;
  letter-spacing: 0;
}
.brand > .brand-row-small {
  margin-top: .28rem;
  font: 600 .58rem/1 "DM Sans", sans-serif;
  letter-spacing: 0;
}
.brand-row i { font-style: normal; }

/* Short booking instructions stay legible above the calendar legend. */
.availability-guide { max-width: 37rem; font-size: .94rem; line-height: 1.48; }
#availability .availability-copy > .eyebrow { scroll-margin-top: 100px; }
.availability-guide.booking-guide-focus {
  position: relative;
  z-index: 2;
  border-radius: .5rem;
  outline: 3px solid rgba(255,196,77,.9);
  outline-offset: 8px;
  box-shadow: 0 0 28px 10px rgba(255,196,77,.64);
}
.availability-guide-title { font-weight: 700; margin: 0 0 .55rem; }
.availability-guide-steps { display: flex; flex-direction: column; gap: .38rem; }
.availability-guide-steps a { display: flex; align-items: baseline; gap: .55rem; color: inherit; text-decoration: none; }
.availability-guide-steps a:hover,
.availability-guide-steps a:focus-visible { text-decoration: underline; text-decoration-color: #b9820b; }
.availability-guide-steps a::before { content: "➜"; flex: none; color: #bd870d; font-size: .92em; }
.availability-guide-steps a:nth-child(2) { margin-left: 2.1rem; }
.availability-guide-steps a:nth-child(3) { margin-left: 4.2rem; }
.availability-guide-end { margin: .55rem 0 0; }
#stay-picker, #calendar { scroll-margin-top: 5rem; }
@media (max-width: 560px) {
  .availability-guide { font-size: .87rem; }
  .availability-guide-steps a:nth-child(2) { margin-left: 1.35rem; }
  .availability-guide-steps a:nth-child(3) { margin-left: 2.7rem; }
}
