/* ===================================================================
   A Casa d'Irene — Mediterranean editorial theme
   =================================================================== */

:root{
  --cream:        #f4ecdc;
  --cream-deep:   #ece1cb;
  --paper:        #fbf7ee;
  --ink:          #261f17;
  --ink-soft:     #4a3f31;
  --olive:        #3c4a2e;
  --olive-deep:   #2a3520;
  --terracotta:   #c1572e;
  --terracotta-deep:#9c4421;
  --gold:         #cf9a3e;
  --line:         rgba(38,31,23,0.14);

  --serif: "Fraunces", "Iowan Old Style", serif;
  --sans: "Archivo", "Helvetica Neue", sans-serif;

  --container: 1180px;
  --radius: 2px;
}

*{ margin:0; padding:0; box-sizing:border-box; }

html{ scroll-behavior:smooth; }

body{
  background:var(--cream);
  color:var(--ink);
  font-family:var(--sans);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img{ display:block; max-width:100%; height:auto; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; background:none; border:none; color:inherit; }
ul{ list-style:none; }

h1,h2,h3{ font-family:var(--serif); font-weight:600; line-height:1.08; letter-spacing:-0.01em; }
em{ font-style:italic; font-weight:400; color:var(--terracotta); }

.eyebrow{
  font-family:var(--sans);
  font-size:0.72rem;
  font-weight:700;
  letter-spacing:0.22em;
  text-transform:uppercase;
  color:var(--terracotta-deep);
  margin-bottom:0.9rem;
}
.center{ text-align:center; }

section{ position:relative; }

/* ---------- grain overlay ---------- */
.grain{
  position:fixed; inset:0; z-index:999; pointer-events:none; opacity:0.045; mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ---------- reveal-on-scroll ---------- */
.reveal{
  opacity:0;
  transform:translateY(22px);
  transition:opacity 0.8s cubic-bezier(.22,.61,.36,1), transform 0.8s cubic-bezier(.22,.61,.36,1);
  transition-delay:calc(var(--d, 0) * 90ms);
}
.reveal.in{ opacity:1; transform:translateY(0); }

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:0.5rem;
  padding:0.95rem 1.9rem;
  font-family:var(--sans); font-weight:600; font-size:0.92rem; letter-spacing:0.02em;
  border-radius:var(--radius);
  transition:transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
  white-space:nowrap;
}
.btn--solid{ background:var(--terracotta); color:var(--paper); box-shadow:0 8px 24px -8px rgba(193,87,46,0.55); }
.btn--solid:hover{ background:var(--terracotta-deep); transform:translateY(-2px); }
.btn--ghost-light{ border:1.5px solid rgba(251,247,238,0.6); color:var(--paper); }
.btn--ghost-light:hover{ background:rgba(251,247,238,0.12); border-color:var(--paper); }
.btn--small{ padding:0.7rem 1.3rem; font-size:0.82rem; }

/* ===================== NAV ===================== */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:200;
  display:flex; align-items:center; justify-content:space-between;
  padding:1.3rem clamp(1.2rem, 4vw, 3.2rem);
  transition:background 0.4s ease, padding 0.4s ease, box-shadow 0.4s ease;
}
.nav.scrolled{
  background:rgba(244,236,220,0.92);
  backdrop-filter:blur(10px);
  padding:0.8rem clamp(1.2rem, 4vw, 3.2rem);
  box-shadow:0 1px 0 var(--line);
}
.nav__brand{ display:flex; align-items:center; gap:0.6rem; z-index:5; }
.nav__brand-mark{
  display:inline-flex; align-items:center; justify-content:center;
  width:34px; height:34px; border-radius:50%;
  background:var(--terracotta); color:var(--paper);
  font-family:var(--serif); font-size:0.85rem; font-weight:600;
}
.nav__brand-text{
  font-family:var(--serif); font-weight:600; font-size:1.08rem;
  color:var(--paper); transition:color 0.4s ease;
}
.nav.scrolled .nav__brand-text{ color:var(--ink); }

.nav__links{ display:flex; align-items:center; gap:2.1rem; }
.nav__links a{
  font-size:0.86rem; font-weight:600; color:rgba(251,247,238,0.88);
  position:relative; padding:0.3rem 0; transition:color 0.4s ease;
}
.nav.scrolled .nav__links a{ color:var(--ink-soft); }
.nav__links a:not(.nav__cta)::after{
  content:""; position:absolute; left:0; bottom:0; height:1.5px; width:0; background:currentColor;
  transition:width 0.3s ease;
}
.nav__links a:not(.nav__cta):hover::after{ width:100%; }
.nav__cta{
  background:var(--terracotta); color:var(--paper) !important; padding:0.55rem 1.15rem; border-radius:var(--radius);
}
.nav__cta:hover{ background:var(--terracotta-deep); }

.lang-toggle{
  display:flex; align-items:center; gap:0.15rem;
  border:1px solid rgba(251,247,238,0.45); border-radius:30px; padding:0.2rem; margin-right:0.4rem;
  transition:border-color 0.4s ease;
}
.nav.scrolled .lang-toggle{ border-color:var(--line); }
.lang-toggle__opt{
  font-size:0.74rem; font-weight:700; letter-spacing:0.04em; padding:0.32rem 0.7rem; border-radius:20px;
  color:rgba(251,247,238,0.75); transition:background 0.25s ease, color 0.25s ease;
}
.nav.scrolled .lang-toggle__opt{ color:var(--ink-soft); }
.lang-toggle__opt.active{ background:var(--terracotta); color:var(--paper) !important; }

.nav__burger{ display:none; flex-direction:column; gap:5px; z-index:5; }
.nav__burger span{ width:24px; height:2px; background:var(--paper); transition:background 0.4s ease; }
.nav.scrolled .nav__burger span{ background:var(--ink); }

/* ===================== HERO ===================== */
.hero{
  position:relative; height:100vh; min-height:560px;
  display:flex; flex-direction:column; justify-content:center;
  overflow:hidden;
}
.hero__media{ position:absolute; inset:0; z-index:0; }
.hero__media img{
  width:100%; height:100%; object-fit:cover;
  transform:scale(1.08);
}
.hero__scrim{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(38,31,23,0.35) 0%, rgba(38,31,23,0.32) 45%, rgba(33,26,18,0.78) 100%);
}
.hero__content{
  position:relative; z-index:2; color:var(--paper);
  padding:0 clamp(1.2rem, 6vw, 6rem); max-width:920px;
}
.hero__pin{
  display:inline-block; font-size:0.78rem; font-weight:600; letter-spacing:0.18em; text-transform:uppercase;
  padding:0.4rem 0.9rem; border:1px solid rgba(251,247,238,0.45); border-radius:40px; margin-bottom:1.6rem;
}
.hero__title{
  font-size:clamp(2.6rem, 7vw, 5.2rem); color:var(--paper);
  display:flex; flex-direction:column; gap:0.05em;
}
.hero__title-italic{ font-style:italic; font-weight:400; color:#f0c98a; }
.hero__sub{
  font-size:clamp(1.02rem, 1.6vw, 1.2rem); max-width:540px; margin-top:1.5rem; color:rgba(251,247,238,0.92);
}
.hero__actions{ display:flex; gap:1rem; margin-top:2.2rem; flex-wrap:wrap; }
.hero__scroll{
  position:absolute; bottom:2.2rem; left:clamp(1.2rem, 6vw, 6rem); z-index:2;
  display:flex; align-items:center; gap:0.6rem; color:var(--paper); font-size:0.78rem; letter-spacing:0.1em; text-transform:uppercase; font-weight:600;
}
.hero__scroll span{
  width:1px; height:34px; background:rgba(251,247,238,0.7); position:relative; overflow:hidden;
}
.hero__scroll span::after{
  content:""; position:absolute; top:0; left:0; width:100%; height:40%; background:var(--paper);
  animation:scrollLine 1.8s ease-in-out infinite;
}
@keyframes scrollLine{ 0%{ transform:translateY(-100%); } 100%{ transform:translateY(250%); } }

/* ===================== STAY (INTRO) ===================== */
.stay{
  max-width:var(--container); margin:0 auto;
  padding:7.5rem clamp(1.2rem, 4vw, 2rem) 6rem;
  display:grid; grid-template-columns:1fr 1fr; gap:5vw; align-items:center;
}
.stay__text h2{ font-size:clamp(2.1rem, 4vw, 2.9rem); margin-bottom:1.6rem; }
.stay__lead{ font-size:1.18rem; color:var(--ink); margin-bottom:1.1rem; font-weight:500; }
.stay__text p{ color:var(--ink-soft); margin-bottom:1.1rem; max-width:480px; }
.stay__stats{ display:flex; gap:2.4rem; margin-top:2rem; padding-top:1.8rem; border-top:1px solid var(--line); }
.stay__stats div{ display:flex; flex-direction:column; }
.stay__stats strong{ font-family:var(--serif); font-size:1.7rem; color:var(--terracotta); }
.stay__stats span{ font-size:0.78rem; color:var(--ink-soft); letter-spacing:0.02em; }

.stay__collage{ position:relative; min-height:420px; }
.stay__img-main{
  width:88%; border-radius:var(--radius); box-shadow:0 30px 60px -20px rgba(38,31,23,0.35);
  object-fit:cover; height:420px;
}
.stay__img-sub{
  position:absolute; bottom:-2.5rem; right:0; width:52%; height:230px; object-fit:cover;
  border-radius:var(--radius); border:6px solid var(--paper); box-shadow:0 24px 48px -18px rgba(38,31,23,0.4);
}
.stay__tag{
  position:absolute; top:-1.2rem; left:1.5rem; background:var(--olive); color:var(--cream);
  font-size:0.74rem; font-weight:600; letter-spacing:0.06em; padding:0.5rem 1rem; border-radius:30px;
}

/* ===================== AMENITIES ===================== */
.amenities{ background:var(--paper); padding:6.5rem clamp(1.2rem, 4vw, 2rem); }
.amenities h2{ font-size:clamp(2rem, 3.6vw, 2.7rem); max-width:600px; margin:0 auto 3.5rem; }
.amenities__grid{
  max-width:var(--container); margin:0 auto;
  display:grid; grid-template-columns:repeat(3, 1fr); gap:1px; background:var(--line);
  border:1px solid var(--line);
}
.amenity{ background:var(--paper); padding:2.6rem 2.2rem; transition:background 0.3s ease; }
.amenity:hover{ background:var(--cream); }
.amenity svg{
  width:38px; height:38px; fill:none; stroke:var(--terracotta); stroke-width:2; stroke-linecap:round; stroke-linejoin:round;
  margin-bottom:1.3rem;
}
.amenity h3{ font-size:1.15rem; margin-bottom:0.5rem; }
.amenity p{ color:var(--ink-soft); font-size:0.92rem; max-width:280px; }

/* ===================== GALLERY ===================== */
.gallery{ max-width:var(--container); margin:0 auto; padding:7.5rem clamp(1.2rem, 4vw, 2rem) 6rem; }
.gallery h2{ font-size:clamp(2rem, 3.6vw, 2.7rem); margin-bottom:2.8rem; }

.gallery__tabs{ display:flex; justify-content:center; gap:0.6rem; margin-bottom:3rem; flex-wrap:wrap; }
.gallery__tabs button{
  padding:0.55rem 1.2rem; font-size:0.84rem; font-weight:600; border:1px solid var(--line); border-radius:30px;
  color:var(--ink-soft); transition:all 0.25s ease;
}
.gallery__tabs button:hover{ border-color:var(--terracotta); color:var(--terracotta); }
.gallery__tabs button.active{ background:var(--olive); border-color:var(--olive); color:var(--cream); }

.gallery__grid{
  display:grid; grid-template-columns:repeat(4, 1fr); gap:1.1rem;
}
.g-item{
  position:relative; overflow:hidden; border-radius:var(--radius); cursor:pointer;
  grid-column:span 1; aspect-ratio:4/5; transition:opacity 0.4s ease, transform 0.4s ease;
}
.g-item.span-2{ grid-column:span 2; aspect-ratio:8/5; }
.g-item img{ width:100%; height:100%; object-fit:cover; transition:transform 0.6s ease; }
.g-item:hover img{ transform:scale(1.07); }
.g-item figcaption{
  position:absolute; left:0; right:0; bottom:0; padding:1.1rem 1.1rem 0.9rem;
  background:linear-gradient(180deg, transparent, rgba(20,16,11,0.82));
  color:var(--cream); font-size:0.82rem; opacity:0; transform:translateY(8px);
  transition:opacity 0.35s ease, transform 0.35s ease;
}
.g-item:hover figcaption{ opacity:1; transform:translateY(0); }
.g-item.hide{ display:none; }

/* ===================== STORY BAND ===================== */
.band{
  display:grid; grid-template-columns:1fr 1fr; min-height:560px;
}
.band__media{ position:relative; overflow:hidden; }
.band__media img{ width:100%; height:100%; object-fit:cover; min-height:340px; }
.band__text{
  background:var(--olive); color:var(--cream);
  display:flex; flex-direction:column; justify-content:center;
  padding:5rem clamp(1.5rem, 6vw, 5rem);
}
.band__text h2{ color:var(--cream); font-size:clamp(2rem, 3.6vw, 2.8rem); margin-bottom:1.4rem; }
.band__text em{ color:#f0c98a; }
.band__text p{ color:rgba(244,236,220,0.85); max-width:440px; font-size:1.04rem; }

/* ===================== NEARBY ===================== */
.nearby{ max-width:var(--container); margin:0 auto; padding:7.5rem clamp(1.2rem, 4vw, 2rem) 6rem; }
.nearby h2{ font-size:clamp(2rem, 3.6vw, 2.8rem); }
.nearby__lead{ max-width:620px; margin:1.3rem auto 3.5rem; color:var(--ink-soft); font-size:1.05rem; }

.nearby__grid{ display:grid; grid-template-columns:repeat(4, 1fr); gap:1.4rem; }
.place{
  background:var(--paper); border-radius:var(--radius); overflow:hidden; border:1px solid var(--line);
  display:flex; flex-direction:column;
}
.place__media{ aspect-ratio:4/3.3; overflow:hidden; }
.place__media img{ width:100%; height:100%; object-fit:cover; transition:transform 0.6s ease; }
.place:hover .place__media img{ transform:scale(1.06); }
.place__body{ padding:1.5rem; flex:1; display:flex; flex-direction:column; }
.place__dist{
  font-size:0.72rem; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; color:var(--terracotta-deep);
  margin-bottom:0.6rem;
}
.place__body h3{ font-size:1.18rem; margin-bottom:0.6rem; }
.place__body p{ color:var(--ink-soft); font-size:0.9rem; }

/* ===================== QUOTE BANNER ===================== */
.quote-banner{
  position:relative; min-height:62vh; display:flex; align-items:center; justify-content:center;
  overflow:hidden;
}
.quote-banner img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.quote-banner__scrim{ position:absolute; inset:0; background:rgba(20,12,8,0.42); }
.quote-banner blockquote{
  position:relative; z-index:1; max-width:780px; padding:0 1.5rem; text-align:center;
}
.quote-banner blockquote p{
  font-family:var(--serif); font-style:italic; font-weight:400; color:var(--paper);
  font-size:clamp(1.5rem, 3.4vw, 2.4rem); line-height:1.4;
}

/* ===================== FOR WHO ===================== */
.for-who{ background:var(--paper); padding:7rem clamp(1.2rem, 4vw, 2rem); }
.for-who h2{ font-size:clamp(2rem, 3.6vw, 2.8rem); margin-bottom:3.2rem; }
.for-who__grid{ max-width:var(--container); margin:0 auto; display:grid; grid-template-columns:repeat(3, 1fr); gap:2.5rem; }
.for-who__item{ border-top:2px solid var(--terracotta); padding-top:1.4rem; }
.for-who__num{ font-family:var(--serif); font-size:0.95rem; color:var(--terracotta); letter-spacing:0.05em; }
.for-who__item h3{ font-size:1.5rem; margin:0.6rem 0 0.6rem; }
.for-who__item p{ color:var(--ink-soft); max-width:320px; }

/* ===================== BOOK ===================== */
.book{ background:var(--ink); color:var(--cream); padding:7rem clamp(1.2rem, 4vw, 2rem); }
.book__inner{
  max-width:var(--container); margin:0 auto;
  display:grid; grid-template-columns:1fr 0.85fr; gap:5vw; align-items:start;
}
.book__intro h2{ color:var(--cream); font-size:clamp(2.1rem, 4vw, 3rem); margin-bottom:1.3rem; }
.book__intro h2 em{ color:#e9a857; }
.book__intro > p{ color:rgba(244,236,220,0.78); max-width:440px; margin-bottom:1.8rem; font-size:1.04rem; }
.book__notes{ display:flex; flex-direction:column; gap:0.7rem; }
.book__notes li{
  font-size:0.88rem; color:rgba(244,236,220,0.72); padding-left:1.4rem; position:relative;
}
.book__notes li::before{ content:"—"; position:absolute; left:0; color:var(--terracotta); }

.book__card{
  background:var(--paper); color:var(--ink); border-radius:6px; padding:2.2rem;
  box-shadow:0 40px 80px -30px rgba(0,0,0,0.55);
}
.book__card-head{ display:flex; align-items:baseline; justify-content:space-between; gap:0.8rem; margin-bottom:1.6rem; flex-wrap:wrap; }
.book__price-amount{ font-family:var(--serif); font-size:2rem; font-weight:600; }
.book__price-unit{ color:var(--ink-soft); font-size:0.9rem; margin-left:0.2rem; }
.book__badge{ font-size:0.72rem; font-weight:600; letter-spacing:0.04em; color:var(--olive); background:rgba(60,74,46,0.1); padding:0.35rem 0.7rem; border-radius:30px; }

.book__dates{ display:grid; grid-template-columns:1fr 1fr; gap:0.8rem; margin-bottom:1.1rem; }
.book__dates label, .book__guests{
  display:flex; flex-direction:column; gap:0.35rem; border:1px solid var(--line); border-radius:4px; padding:0.7rem 0.9rem;
}
.book__dates label span, .book__guests > span{ font-size:0.7rem; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; color:var(--ink-soft); }
.book__dates input{
  font-family:var(--sans); font-size:0.95rem; color:var(--ink); border:none; background:none; padding:0;
}
.book__dates input:focus{ outline:none; }
.book__guests{ flex-direction:row; align-items:center; justify-content:space-between; margin-bottom:0.4rem; }
.stepper{ display:flex; align-items:center; gap:0.9rem; }
.stepper__btn{
  width:26px; height:26px; border:1px solid var(--line); border-radius:50%; font-size:1rem; line-height:1;
  display:flex; align-items:center; justify-content:center; transition:border-color 0.2s ease, color 0.2s ease;
}
.stepper__btn:hover{ border-color:var(--terracotta); color:var(--terracotta); }
#guestCount{ font-weight:600; min-width:1ch; text-align:center; }
.book__cap-note{ font-size:0.76rem; color:var(--ink-soft); margin-bottom:1.3rem; }

.book__summary{ border-top:1px dashed var(--line); padding-top:1rem; margin-bottom:1.2rem; font-size:0.9rem; }
.book__summary > div{ display:flex; justify-content:space-between; margin-bottom:0.5rem; color:var(--ink-soft); }
.book__total{ font-weight:700; color:var(--ink); padding-top:0.5rem; border-top:1px solid var(--line); }
.book__error{ color:var(--terracotta-deep); font-size:0.82rem; margin-bottom:1rem; }

.book__submit{ width:100%; }
.book__fineprint{ font-size:0.74rem; color:var(--ink-soft); text-align:center; margin-top:0.9rem; line-height:1.5; }
.book__success{
  margin-top:1.2rem; padding:1rem; background:rgba(60,74,46,0.1); border:1px solid rgba(60,74,46,0.25);
  border-radius:4px; color:var(--olive); font-size:0.9rem;
}
.book__alt-link{
  display:block; text-align:center; margin-top:1.3rem; font-size:0.84rem; font-weight:600; color:var(--terracotta-deep);
  border-top:1px solid var(--line); padding-top:1.1rem;
}
.book__alt-link:hover{ text-decoration:underline; }

/* ===================== FOOTER ===================== */
.footer{
  background:var(--ink); color:rgba(244,236,220,0.65); text-align:center;
  padding:3rem 1.5rem 2.2rem; border-top:1px solid rgba(244,236,220,0.12);
}
.footer__brand{ display:flex; align-items:center; justify-content:center; gap:0.6rem; margin-bottom:1rem; font-family:var(--serif); color:var(--cream); font-size:1.1rem; }
.footer p{ font-size:0.85rem; margin-bottom:0.4rem; }
.footer__fine{ font-size:0.76rem; opacity:0.7; margin-top:0.8rem; }

/* ===================== LIGHTBOX ===================== */
.lightbox{
  position:fixed; inset:0; z-index:500; background:rgba(15,11,7,0.94);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  opacity:0; visibility:hidden; transition:opacity 0.3s ease;
  padding:2rem;
}
.lightbox.open{ opacity:1; visibility:visible; }
.lightbox img{ max-width:min(86vw, 1100px); max-height:78vh; object-fit:contain; border-radius:2px; }
.lightbox p{ color:rgba(244,236,220,0.85); margin-top:1.1rem; font-size:0.92rem; text-align:center; }
.lightbox__close{ position:absolute; top:1.6rem; right:1.8rem; font-size:2.1rem; color:var(--cream); line-height:1; }
.lightbox__nav{
  position:absolute; top:50%; transform:translateY(-50%); font-size:2.6rem; color:var(--cream);
  width:56px; height:56px; display:flex; align-items:center; justify-content:center; border-radius:50%;
  transition:background 0.2s ease;
}
.lightbox__nav:hover{ background:rgba(244,236,220,0.12); }
.lightbox__prev{ left:1rem; }
.lightbox__next{ right:1rem; }

/* ===================== STICKY MOBILE BOOK BAR ===================== */
.sticky-book{
  position:fixed; left:0; right:0; bottom:0; z-index:150;
  background:var(--paper); border-top:1px solid var(--line);
  display:none; align-items:center; justify-content:space-between;
  padding:0.9rem 1.2rem; box-shadow:0 -8px 24px -12px rgba(0,0,0,0.2);
}
.sticky-book__price{ font-family:var(--serif); }
.sticky-book__price strong{ font-size:1.15rem; }
.sticky-book__price span{ color:var(--ink-soft); font-size:0.82rem; margin-left:0.2rem; }

/* ===================== RESPONSIVE ===================== */
@media (max-width: 980px){
  .stay{ grid-template-columns:1fr; }
  .stay__collage{ margin-top:3rem; min-height:380px; }
  .amenities__grid{ grid-template-columns:repeat(2, 1fr); }
  .gallery__grid{ grid-template-columns:repeat(2, 1fr); }
  .g-item.span-2{ grid-column:span 2; }
  .band{ grid-template-columns:1fr; }
  .band__media{ min-height:320px; }
  .nearby__grid{ grid-template-columns:repeat(2, 1fr); }
  .for-who__grid{ grid-template-columns:1fr; gap:2rem; }
  .book__inner{ grid-template-columns:1fr; }
  .book__intro{ margin-bottom:1rem; }
}

@media (max-width: 720px){
  .nav__links{
    position:fixed; top:0; right:0; height:100vh; width:min(78vw, 320px);
    background:var(--paper); flex-direction:column; align-items:flex-start; justify-content:center;
    gap:1.6rem; padding:2rem 2.4rem; transform:translateX(100%); transition:transform 0.4s ease;
    box-shadow:-10px 0 40px rgba(0,0,0,0.18);
  }
  .nav__links.open{ transform:translateX(0); }
  .nav__links a{ color:var(--ink) !important; font-size:1.05rem; }
  .nav__burger{ display:flex; }
  .nav__cta{ margin-top:0.5rem; }
  .lang-toggle{ border-color:var(--line); margin-right:0; margin-bottom:0.6rem; }
  .lang-toggle__opt{ color:var(--ink-soft); }

  .amenities__grid{ grid-template-columns:1fr; }
  .gallery__grid{ grid-template-columns:1fr 1fr; }
  .nearby__grid{ grid-template-columns:1fr; }
  .place__media{ aspect-ratio:16/10; }

  .stay, .gallery, .nearby{ padding-top:5.5rem; padding-bottom:4rem; }
  .band__text, .amenities, .for-who, .book{ padding:4.5rem 1.2rem; }

  .sticky-book{ display:flex; }
  .book{ padding-bottom:7rem; }
}

@media (max-width: 480px){
  .gallery__grid{ grid-template-columns:1fr; }
  .g-item.span-2{ grid-column:span 1; aspect-ratio:4/5; }
  .book__dates{ grid-template-columns:1fr; }
}
