:root {
  --ivory:#f4f0e8;
  --sand:#d6c6af;
  --deep:#30372b;
  --olive:#555a43;
  --clay:#a5755b;
  --paper:#fffdfa;
  --line:rgba(48,55,43,.22);
  font-family:Arial,sans-serif;
  color:var(--deep);
  background:var(--ivory);
  scroll-behavior:smooth;
}

* {
  box-sizing:border-box;
}

[hidden] {
  display:none!important;
}

body {
  margin:0;
  background:var(--ivory);
  font-size:16px;
  line-height:1.55;
}

.skip {
  position:fixed;
  top:-5rem;
  left:1rem;
  z-index:20;
  padding:.75rem;
  background:var(--paper);
  color:var(--deep);
}

.skip:focus {
  top:1rem;
}

.site-header {
  height:5.5rem;
  padding:0 max(4vw,20px);
  display:flex;
  align-items:center;
  justify-content:space-between;
  position:relative;
  background:var(--ivory);
  border-bottom:1px solid rgba(214,198,175,.55);
  z-index:3;
}

.brand {
  width:9.3rem;
  line-height:0;
}

.brand img,.site-footer img {
  max-width:100%;
  height:auto;
}

.desktop-nav {
  display:flex;
  gap:2rem;
  margin-left:auto;
  margin-right:2rem;
}

.desktop-nav a,.mobile-menu a {
  color:var(--deep);
  font-size:.9rem;
  font-weight:700;
  text-decoration:none;
}

.header-actions {
  display:flex;
  align-items:center;
  gap:.75rem;
}

.button,.menu-button,.motion-toggle,.text-button {
  font:inherit;
  cursor:pointer;
}

.button {
  display:inline-flex;
  min-height:44px;
  align-items:center;
  justify-content:center;
  border:1px solid var(--olive);
  border-radius:999px;
  padding:.7rem 1.15rem;
  background:var(--olive);
  color:var(--ivory);
  font-weight:700;
  text-decoration:none;
}

.button:hover {
  background:var(--deep);
}

.button span {
  margin-left:.5rem;
}

.button-small {
  min-height:44px;
}

.menu-button {
  display:none;
  min-height:44px;
  border:0;
  background:transparent;
  color:var(--deep);
  font-weight:700;
}

.prototype-note {
  position:sticky;
  top:0;
  z-index:2;
  margin:0;
  padding:.45rem max(4vw,20px);
  background:var(--sand);
  color:var(--deep);
  font-size:.78rem;
  text-align:center;
}

main {
  min-height:70vh;
}

main:focus {
  outline:0;
}

.hero {
  min-height:min(700px,calc(100svh - 5.5rem));
  height:calc(100svh - 5.5rem);
  position:relative;
  display:flex;
  align-items:flex-end;
  overflow:hidden;
  color:var(--paper);
}

.hero-image {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  animation:hero-settle 1200ms cubic-bezier(.2,.65,.25,1) both;
}

.hero::after {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(48,55,43,.7),rgba(48,55,43,.3) 65%,rgba(48,55,43,.12));
}

.hero-content {
  position:relative;
  z-index:1;
  width:min(1200px,100%);
  margin:0 auto;
  padding:3rem max(4vw,20px) 5rem;
}

.eyebrow {
  margin:0;
  color:var(--olive);
  font-size:.74rem;
  font-weight:700;
  letter-spacing:.11em;
  text-transform:uppercase;
}

.hero .eyebrow {
  color:var(--sand);
}

h1,h2,h3 {
  font-family:Futura,"Trebuchet MS",Arial,sans-serif;
  font-weight:500;
  letter-spacing:-.04em;
  line-height:1.02;
}

a:focus-visible,button:focus-visible,summary:focus-visible {
  outline:2px solid var(--clay);
  outline-offset:4px;
}

h1:focus {
  outline:0;
}

.modal-open {
  overflow:hidden;
}

h1 {
  max-width:700px;
  margin:.7rem 0 1.2rem;
  font-size:clamp(46px,6vw,72px);
}

h2 {
  margin:.55rem 0 1rem;
  font-size:clamp(32px,4vw,44px);
}

h3 {
  font-size:clamp(28px,3vw,36px);
  margin:.5rem 0 1rem;
}

.hero-copy {
  max-width:28rem;
  margin:0 0 1.3rem;
  font-size:1.1rem;
}

.search-strip {
  width:min(1200px,calc(100% - max(8vw,40px)));
  margin:-2rem auto 0;
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:1fr 1fr .9fr auto;
  align-items:center;
  border:1px solid var(--sand);
  background:var(--paper);
}

.search-strip div {
  padding:1rem 1.25rem;
  border-right:1px solid var(--sand);
}

.search-strip small {
  display:block;
  color:var(--olive);
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
}

.search-strip strong {
  font-size:.95rem;
}

.search-strip .button {
  margin:.65rem;
  white-space:nowrap;
}

.section {
  width:min(1200px,100%);
  margin:0 auto;
  padding:96px max(4vw,20px);
}

.section h2 {
  font-size:clamp(28px,3vw,36px);
}

.intro {
  display:grid;
  grid-template-columns:1fr 1.08fr;
  align-items:center;
  gap:clamp(2rem,9vw,9rem);
}

.intro-copy {
  max-width:29rem;
}

.intro p:not(.eyebrow),.apartment-description {
  color:var(--olive);
  font-size:1.08rem;
}

.intro-figure,.pool-figure {
  margin:0;
}

.intro-figure img,.pool-figure img {
  width:100%;
  display:block;
  object-fit:cover;
}

.intro-figure img {
  aspect-ratio:1.25;
}

.caption {
  margin:.55rem 0 0;
  color:var(--olive);
  font-size:.8125rem;
}

.apartment-preview {
  display:grid;
  grid-template-columns:1.25fr .75fr;
  gap:2rem;
  align-items:end;
  border-top:1px solid var(--line);
  padding-top:48px;
}

.apartment-preview img {
  width:100%;
  aspect-ratio:1.38;
  object-fit:cover;
  display:block;
}

.preview-copy {
  padding-bottom:1rem;
}

.text-link,.text-button {
  border:0;
  background:transparent;
  padding:.4rem 0;
  color:var(--deep);
  font-weight:700;
  text-decoration:none;
  text-align:left;
}

.coast {
  background:var(--deep);
  color:var(--ivory);
}

.coast-grid {
  display:grid;
  grid-template-columns:.78fr 1.22fr;
  gap:clamp(2rem,7vw,7rem);
  align-items:center;
}

.coast .eyebrow,.coast .caption {
  color:var(--sand);
}

.pool-figure img {
  aspect-ratio:1.6;
}

.site-footer {
  padding:48px max(4vw,20px);
  border-top:1px solid var(--sand);
  display:flex;
  gap:1.5rem;
  align-items:center;
  flex-wrap:wrap;
}

.site-footer img {
  width:8.5rem;
}

.site-footer p {
  margin:0;
  font-family:Futura,"Trebuchet MS",Arial,sans-serif;
  font-size:1.45rem;
}

.hospitality-signature {
  color:var(--olive);
  font-size:.78rem;
}

.site-footer small {
  width:100%;
  color:var(--olive);
}

.motion-toggle {
  margin-left:auto;
  min-height:44px;
  border:0;
  background:transparent;
  color:var(--olive);
  text-decoration:underline;
  text-underline-offset:.3rem;
}

.motion-toggle:disabled {
  cursor:default;
  opacity:.72;
}

.breadcrumb {
  display:block;
  color:var(--olive);
  font-size:.85rem;
  margin-bottom:2rem;
}

.breadcrumb a {
  color:inherit;
}

.apartment-page {
  width:min(1200px,100%);
  margin:0 auto;
  padding:48px max(4vw,20px) 112px;
}

.apartment-heading {
  max-width:41rem;
}

.apartment-page h1 {
  font-size:clamp(32px,3.67vw,44px);
}

.badge {
  display:inline-block;
  border:1px solid var(--sand);
  border-radius:999px;
  padding:.25rem .55rem;
  font-size:.72rem;
  color:var(--olive);
}

.apartment-layout {
  display:grid;
  grid-template-columns:minmax(0,1.5fr) minmax(260px,.5fr);
  gap:48px;
  margin-top:3rem;
}

.gallery {
  display:grid;
  height:min(620px,62vw);
  grid-template-columns:1.35fr 1fr;
  grid-template-rows:repeat(2,minmax(0,1fr));
  gap:12px;
}

.gallery figure {
  margin:0;
  position:relative;
  overflow:hidden;
}

.gallery figure:first-child {
  grid-row:span 2;
}

.gallery img {
  display:block;
  width:100%;
  height:100%;
  min-height:0;
  object-fit:cover;
}

.gallery button {
  display:block;
  border:0;
  background:none;
  padding:0;
  width:100%;
  height:100%;
  cursor:zoom-in;
}

.gallery figcaption {
  position:absolute;
  left:0;
  bottom:0;
  right:0;
  padding:.5rem .7rem;
  background:linear-gradient(transparent,rgba(0,0,0,.62));
  color:white;
  font-size:.8125rem;
  text-align:left;
}

.gallery-controls {
  display:none;
}

.info-block {
  border-top:1px solid var(--line);
  padding:1.25rem 0;
}

.info-block h3 {
  font-size:1.35rem;
}

.info-block p {
  color:var(--olive);
  margin:.35rem 0;
}

.booking-aside {
  align-self:start;
  position:sticky;
  top:4.2rem;
  border:1px solid var(--sand);
  border-radius:12px;
  padding:1.5rem;
  background:var(--paper);
}

.booking-aside p {
  margin:.5rem 0;
  color:var(--olive);
}

.booking-aside .price {
  color:var(--deep);
  font-weight:700;
  font-size:1.1rem;
}

.booking-aside .button {
  width:100%;
  margin-top:1rem;
}

.demo-details {
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  padding:1rem 0;
}

.demo-details summary {
  cursor:pointer;
  font-weight:700;
}

.demo-details p {
  color:var(--olive);
  margin:.75rem 0 0;
}

.mobile-book {
  display:none;
}

.preparing {
  width:min(760px,100%);
  margin:0 auto;
  padding:12vh max(4vw,20px);
}

.preparing p {
  max-width:34rem;
  color:var(--olive);
  font-size:1.1rem;
}

.lightbox {
  border:0;
  background:transparent;
  padding:0;
  width:min(900px,92vw);
  color:var(--deep);
}

.lightbox::backdrop {
  background:rgba(48,55,43,.6);
}

.lightbox-inner {
  position:relative;
  background:var(--paper);
  padding:1.25rem;
}

.lightbox img {
  width:100%;
  max-height:68vh;
  display:block;
  object-fit:contain;
  background:var(--ivory);
}

.lightbox p {
  margin:.7rem 0;
}

.icon-button {
  position:absolute;
  right:1.8rem;
  top:1.8rem;
  width:44px;
  height:44px;
  border:0;
  border-radius:999px;
  background:var(--paper);
  color:var(--deep);
  font-size:1.8rem;
  z-index:1;
}

.lightbox-actions {
  display:flex;
  justify-content:space-between;
}

.is-changing {
  animation:route-in 160ms ease both;
}

@keyframes hero-settle {
  from {
    transform:scale(1.025);
  }

  to {
    transform:scale(1);
  }

}

@keyframes route-in {
  from {
    opacity:.5;
  }

  to {
    opacity:1;
  }

}

@media(max-width:760px) {
  .site-header {
    height:5rem;
  }

  .desktop-nav {
    display:none;
  }

  .menu-button {
    display:block;
  }

  .mobile-menu {
    position:absolute;
    left:0;
    right:0;
    top:100%;
    background:var(--paper);
    border-bottom:1px solid var(--sand);
    padding:16px 20px;
    display:grid;
    gap:.85rem;
  }

  .prototype-note {
    top:0;
  }

  .hero {
    height:calc(100svh - 5rem);
    min-height:0;
    align-items:flex-end;
  }

  .hero::after {
    background:linear-gradient(180deg,rgba(48,55,43,.12),rgba(48,55,43,.72) 72%);
  }

  .hero-content {
    padding:2rem 20px 4rem;
  }

  .hero-copy {
    font-size:1rem;
    margin-bottom:1rem;
  }

  .search-strip {
    width:calc(100% - 40px);
    grid-template-columns:1fr 1fr;
    margin:-1.25rem auto 0;
  }

  .search-strip div {
    padding:.75rem;
    border-bottom:1px solid var(--sand);
  }

  .search-strip div:nth-child(2) {
    border-right:0;
  }

  .search-strip div:nth-child(3) {
    grid-column:span 2;
    border-right:0;
    border-bottom:0;
  }

  .search-strip .button {
    grid-column:span 2;
    margin:.75rem;
  }

  .section {
    padding:64px 20px;
  }

  .intro,.apartment-preview,.coast-grid {
    grid-template-columns:1fr;
    gap:2rem;
  }

  .intro-figure {
    order:-1;
  }

  .apartment-preview {
    padding-top:32px;
  }

  .coast {
    padding-top:0;
  }

  .site-footer {
    padding:40px 20px;
  }

  body[data-route="apartamento"] .site-footer {
    padding-bottom:calc(116px + env(safe-area-inset-bottom));
  }

  .site-footer p {
    width:100%;
  }

  .motion-toggle {
    margin-left:0;
  }

  .apartment-page {
    padding:32px 20px calc(92px + env(safe-area-inset-bottom));
  }

  .apartment-layout {
    display:block;
    margin-top:2rem;
  }

  .gallery {
    display:block;
    height:auto;
  }

  .gallery figure {
    display:none;
  }

  .gallery figure.active {
    display:block;
  }

  .gallery img {
    aspect-ratio:1.08;
    min-height:0;
  }

  .gallery-controls .text-button {
    min-height:44px;
  }

  .gallery-controls {
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-top:.75rem;
  }

  .booking-aside {
    display:none;
  }

  .mobile-book {
    position:fixed;
    z-index:2;
    left:0;
    right:0;
    bottom:0;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:1rem;
    padding:.65rem 20px calc(.65rem + env(safe-area-inset-bottom));
    background:var(--paper);
    border-top:1px solid var(--sand);
  }

  .mobile-book .button {
    flex:0 0 auto;
  }

  .lightbox {
    width:100%;
    max-width:none;
    margin:auto 0 0;
  }

  .lightbox-inner {
    border-radius:14px 14px 0 0;
    padding:1.25rem;
  }

  .lightbox img {
    max-height:58vh;
  }

}

@media(prefers-reduced-motion:reduce) {
  :root {
    scroll-behavior:auto;
  }

  *,*::before,*::after {
    animation-duration:1ms!important;
    transition-duration:1ms!important;
    scroll-behavior:auto!important;
  }

}

html.reduce-motion {
  scroll-behavior:auto;
}

html.reduce-motion *,html.reduce-motion *::before,html.reduce-motion *::after {
  animation-duration:1ms!important;
  transition-duration:1ms!important;
  scroll-behavior:auto!important;
}

.no-js-fallback {
  width:min(760px,100%);
  margin:auto;
  padding:48px max(4vw,20px);
}

.no-js-fallback img {
  width:100%;
  max-height:340px;
  object-fit:cover;
}

.dates-page,.review-page,.confirmation-page {
  width:min(1200px,100%);
  margin:auto;
  padding:48px max(4vw,20px) 96px;
}

.dates-page h1,.review-page h1,.confirmation-page h1 {
  font-size:clamp(32px,3.67vw,44px);
}

.stages {
  display:flex;
  gap:0;
  list-style:none;
  padding:0;
  margin:0 0 2.5rem;
}

.stages li {
  color:var(--olive);
  font-size:.82rem;
  display:flex;
  align-items:center;
}

.stages li:not(:last-child)::after {
  content:"";
  height:1px;
  width:44px;
  background:var(--sand);
  margin:0 .65rem;
}

.stages .current {
  color:var(--deep);
  font-weight:700;
}

.dates-intro {
  color:var(--olive);
}

.date-layout {
  display:grid;
  grid-template-columns:minmax(0,1fr) 280px;
  gap:48px;
  margin-top:2.25rem;
}

.date-fields {
  display:grid;
  grid-template-columns:1fr 1fr;
  border:1px solid var(--sand);
  border-radius:12px;
}

.date-fields div {
  padding:1rem 1.2rem;
}

.date-fields div+div {
  border-left:1px solid var(--sand);
}

.date-fields span,.native-dates label,.guest-field legend {
  display:block;
  font-size:.82rem;
  font-weight:700;
}

.date-fields strong {
  display:block;
  margin:.25rem 0;
}

.selection-live {
  color:var(--olive);
  min-height:1.5rem;
}

.field-message,.native-error {
  color:#8a3220;
  font-size:.9rem;
}

.calendar-navigation {
  display:flex;
  justify-content:flex-end;
  gap:.5rem;
  margin:.75rem 0;
}

.icon-calendar {
  width:44px;
  height:44px;
  border:1px solid var(--sand);
  border-radius:999px;
  background:transparent;
  font-size:1.1rem;
}

.calendars {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
}

.calendar-month h3 {
  text-transform:none;
  font-size:1.25rem;
}

.weekdays,.days {
  display:grid;
  grid-template-columns:repeat(7,1fr);
  gap:2px;
}

.weekdays span {
  padding:.35rem 0;
  text-align:center;
  color:var(--olive);
  font-size:.72rem;
}

.day {
  min-width:44px;
  min-height:44px;
  border:0;
  background:transparent;
  color:var(--deep);
  border-radius:999px;
}

.day:hover:not(:disabled) {
  background:var(--sand);
}

.day:disabled {
  color:#aaa;
  cursor:not-allowed;
}

.day.range {
  background:var(--sand);
  border-radius:0;
}

.day.selected {
  background:var(--deep);
  color:var(--ivory);
}

.native-dates {
  margin-top:2rem;
  padding-top:1rem;
  border-top:1px solid var(--line);
}

.native-dates summary {
  font-weight:700;
  cursor:pointer;
}

.native-dates label {
  margin-top:1rem;
}

.native-dates input {
  display:block;
  width:100%;
  min-height:44px;
  margin-top:.35rem;
  padding:.5rem;
  border:1px solid var(--sand);
  border-radius:8px;
  background:var(--paper);
  color:var(--deep);
}

input:focus-visible,select:focus-visible {
  outline:2px solid var(--clay);
  outline-offset:2px;
}

.guest-field {
  display:flex;
  gap:1rem;
  margin:2rem 0 0;
  padding:1rem 0;
  border:0;
  border-top:1px solid var(--line);
}

.guest-field legend {
  width:100%;
  margin-bottom:.5rem;
}

.guest-field label {
  font-size:1rem;
}

.date-summary {
  align-self:start;
  position:sticky;
  top:4.5rem;
  padding:1.5rem;
  border:1px solid var(--sand);
  border-radius:12px;
  background:var(--paper);
}

.date-summary .button {
  width:100%;
  margin-top:.75rem;
}

.date-summary .button:disabled {
  opacity:.5;
  cursor:not-allowed;
}

.stay-summary {
  display:flex;
  gap:1.25rem;
  align-items:center;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  padding:1.25rem 0;
  margin:2rem 0;
}

.stay-summary img {
  width:120px;
  height:92px;
  object-fit:cover;
}

.stay-summary p {
  margin:.2rem 0;
}

.price-breakdown,.review-note {
  max-width:560px;
  border-bottom:1px solid var(--line);
  padding:1.25rem 0;
}

.price-breakdown h2,.review-note h2 {
  font-size:clamp(28px,3vw,36px);
}

.price-breakdown p {
  display:flex;
  justify-content:space-between;
  gap:1rem;
}

.price-breakdown .total {
  font-size:1.1rem;
  color:var(--deep);
}

.review-note p,.subtle {
  color:var(--olive);
}

.confirmation-page {
  max-width:760px;
}

.confirmation-total {
  font-size:1.1rem;
}

.review-page .button,.confirmation-page .button {
  margin-top:1rem;
}

@media(max-width:760px) {
  .dates-page,.review-page,.confirmation-page {
    padding:32px 20px 80px;
  }

  .date-layout {
    display:block;
    margin-top:1.5rem;
  }

  .date-summary {
    position:static;
    margin-top:1.5rem;
  }

  .calendars {
    grid-template-columns:1fr;
  }

  .calendar-month+ .calendar-month {
    display:none;
  }

  .date-fields {
    grid-template-columns:1fr 1fr;
  }

  .date-fields div {
    padding:12px;
    min-width:0;
  }

  .date-fields div+div {
    border-left:1px solid var(--sand);
    border-top:0;
  }

  .guest-field {
    display:block;
  }

  .guest-field label {
    display:block;
    margin:.5rem 0;
  }

  .stages {
    margin-bottom:1.5rem;
  }

  .stages li:not(:last-child)::after {
    width:22px;
    margin:0 .4rem;
  }

  .stay-summary img {
    width:92px;
    height:76px;
  }

  .review-page .button,.confirmation-page .button {
    width:100%;
  }

}

/* Refinamento após inspeção nativa: campos compactos e contexto de reserva. */
.button {
  transition:background-color 160ms ease,border-color 160ms ease;
  gap:8px;
}

.button span {
  margin-left:0;
}

.button:active {
  transform:translateY(1px);
}

.text-link:hover,.text-button:hover {
  text-decoration:underline;
  text-underline-offset:4px;
}

.breadcrumb {
  min-height:24px;
}

.gallery img {
  transition:transform 450ms ease;
}

.lightbox[open] .lightbox-inner {
  animation:sheet-in 240ms ease both;
}

@keyframes sheet-in {
  from {
    opacity:0;
    transform:translateY(12px);
  }

  to {
    opacity:1;
    transform:none;
  }

}

.info-block h2 {
  font-size:28px;
}

.eyebrow,.search-strip small {
  font-size:13px;
}

.date-fields strong {
  font-weight:500;
  font-size:17px;
  line-height:1.35;
}

.date-fields .edit-date {
  font-size:13px;
  min-height:36px;
}

.date-fields>div:has([aria-pressed="true"]) {
  background:var(--paper);
  box-shadow:inset 0 -2px var(--olive);
}

.date-fields {
  overflow:hidden;
}

.date-fields .edit-date[aria-pressed="true"] {
  text-decoration:underline;
  text-underline-offset:4px;
}

.date-summary .button {
  font-size:14px;
  line-height:1.4;
}

.dates-intro {
  font-size:14px;
}

.calendar-month h3 {
  font:500 19px/1.3 Futura,"Trebuchet MS",sans-serif;
  letter-spacing:-.025em;
}

.calendar-month h3::first-letter {
  text-transform:uppercase;
}

.calendar-month table {
  width:100%;
  table-layout:fixed;
  border-collapse:collapse;
}

.calendar-month th {
  font-size:13px;
  font-weight:400;
  color:var(--olive);
  height:36px;
}

.calendar-month td {
  padding:0;
  text-align:center;
  height:44px;
}

.calendar-month .day {
  width:100%;
  font:400 15px Arial,sans-serif;
}

.calendar-month .day.range {
  border-radius:0;
}

.calendar-month .day.selected {
  border-radius:999px;
}

.icon-calendar {
  cursor:pointer;
}

.icon-calendar:disabled {
  opacity:.35;
  cursor:default;
}

.native-dates summary {
  min-height:44px;
  padding-block:10px;
}

.native-dates input {
  font:16px Arial,sans-serif;
}

.guest-field label {
  display:inline-flex;
  align-items:center;
  min-height:44px;
  gap:6px;
}

.guest-field input {
  width:18px;
  height:18px;
  accent-color:var(--olive);
}

.review-page .price-breakdown h2,.review-page .review-note h2 {
  font:500 24px/1.2 Futura,"Trebuchet MS",Arial,sans-serif;
}

.stay-summary .text-link {
  display:inline-flex;
  min-height:44px;
  align-items:center;
  font-size:14px;
  text-decoration:underline;
  text-underline-offset:4px;
}

.subtle {
  font-size:13px;
}

.stages [aria-current="step"] {
  font-weight:700;
  color:var(--deep);
}

@media(hover:hover) {
  .gallery button:hover img {
    transform:scale(1.018);
  }

}

@media(max-width:1100px) {
  .date-layout {
    grid-template-columns:1fr;
  }

  .date-summary {
    position:static;
    max-width:none;
    display:flex;
    gap:16px;
    align-items:center;
    flex-wrap:wrap;
  }

  .date-summary .button {
    width:auto;
    margin:0 0 0 auto;
  }

  .date-summary p {
    margin:0;
  }

  .date-summary .eyebrow {
    width:100%;
  }

}

@media(max-width:760px) {
  .dates-page .breadcrumb {
    margin-bottom:16px;
  }

  .dates-page .stages {
    margin-bottom:24px;
  }

  .dates-page h1 {
    margin-bottom:12px;
  }

  .dates-page .date-layout {
    margin-top:20px;
  }

  .dates-page .date-fields strong {
    font-size:16px;
  }

  .date-summary {
    display:block;
    padding:20px;
  }

  .date-summary p {
    margin:8px 0;
  }

  .date-summary .button {
    width:100%;
    margin-top:16px;
  }

  .guest-field label {
    display:inline-flex;
    margin:0 12px 0 0;
  }

  .selection-live {
    font-size:14px;
    margin:16px 0 8px;
  }

  .calendar-navigation {
    margin:8px 0;
  }

  .calendar-month h3 {
    margin:12px 0;
  }

  .review-page .stay-summary {
    align-items:flex-start;
  }

  .review-page .stay-summary p {
    font-size:14px;
  }

  .gallery figcaption {
    font-size:13px;
  }

  .site-footer {
    gap:16px;
  }

}

.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip-path:inset(50%);
  white-space:nowrap;
  border:0;
}

.calendar-month h2 {
  font:500 19px/1.3 Futura,"Trebuchet MS",sans-serif;
  letter-spacing:-.025em;
  margin:12px 0;
}

.calendar-month h2::first-letter {
  text-transform:uppercase;
}

.calendar-context {
  margin-right:auto;
  align-self:center;
  color:var(--olive);
  font-size:13px;
}

.summary-total small {
  display:block;
  color:var(--olive);
  font-size:13px;
}

.summary-total strong {
  font-size:24px;
  font-weight:500;
}

.review-grid {
  display:grid;
  grid-template-columns:minmax(0,1fr) 360px;
  gap:64px;
  align-items:start;
  margin-top:32px;
}

.review-grid .stay-summary {
  margin:0;
  padding-top:0;
  border-top:0;
  align-items:flex-start;
}

.review-cost {
  padding:28px;
  background:var(--paper);
  border:1px solid var(--sand);
  border-radius:12px;
}

.review-cost .price-breakdown {
  padding:0 0 16px;
}

.review-cost .price-breakdown h2 {
  margin-top:0;
}

.review-cost .total {
  padding-top:16px;
  border-top:1px solid var(--sand);
  font-size:20px;
}

.review-cost .price-breakdown small {
  color:var(--olive);
  font-size:13px;
}

.review-cost .button {
  width:100%;
}

.demo-guest {
  color:var(--olive);
  font-size:14px;
  padding-block:16px;
}

.confirmation-page {
  padding-top:64px;
}

.confirmation-page .stay-summary {
  padding-block:24px;
}

.confirmation-page h1 {
  max-width:540px;
}

@media(max-width:900px) {
  .review-grid {
    grid-template-columns:1fr;
    gap:24px;
    max-width:660px;
  }

  .review-cost {
    padding:24px;
  }

  .review-note {
    max-width:none;
  }

  .review-page .price-breakdown {
    max-width:none;
  }

}

@media(max-width:760px) {
  .calendar-month h2 {
    font-size:19px;
  }

  .review-grid {
    margin-top:24px;
    gap:8px;
  }

  .review-cost {
    padding:20px;
  }

  .date-fields .edit-date {
    font-size:13px;
    min-height:40px;
  }

  .confirmation-page {
    padding-top:32px;
  }

}

.review-note summary {
  font-weight:700;
  min-height:44px;
  display:list-item;
  cursor:pointer;
  padding-block:8px;
}

.review-note {
  padding:12px 0;
}

.demo-guest {
  padding-block:8px;
  font-size:14px;
}

.date-fields .edit-date {
  min-height:44px;
}

.unit-facts {
  display:flex;
  gap:32px;
  flex-wrap:wrap;
  margin:24px 0 8px;
}

.unit-facts dt {
  font-size:13px;
  color:var(--olive);
  margin-bottom:4px;
}

.unit-facts dd {
  font-size:16px;
  margin:0;
}

.unit-facts>div {
  min-width:120px;
}
