:root{
  --pink:#E11D48;
  --pink-dark:#BE123C;
  --ink:#222222;
  --gray:#717171;
  --line:#DDDDDD;
  --radius:12px;
  --max:1120px;
}

*{box-sizing:border-box;}
[hidden]{display:none !important;}
html{scroll-behavior:smooth;}
html,body{margin:0;padding:0;}

/* Flat outline icons, red */
.ic{
  width:20px;height:20px;
  flex-shrink:0;
  fill:none;
  stroke:var(--pink);
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
  vertical-align:middle;
}
.ic-list{width:18px;height:18px;margin-top:1px;}
.ic-small{width:16px;height:16px;}
.ic-big{width:28px;height:28px;}
body{
  font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif;
  color:var(--ink);
  background:#fff;
}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;background:none;border:none;}
hr{border:none;border-top:1px solid var(--line);margin:32px 0;}
.muted{color:var(--gray);}
.center{text-align:center;}
.skip-link{
  position:fixed;
  z-index:100;
  top:8px;
  left:8px;
  transform:translateY(-160%);
  padding:10px 14px;
  border-radius:8px;
  background:var(--ink);
  color:#fff;
  font-weight:700;
  transition:transform .15s ease;
}
.skip-link:focus{transform:translateY(0);outline:2px solid var(--pink);outline-offset:2px;}

/* Topbar */
.topbar{
  position:sticky;top:0;z-index:20;
  background:#fff;
  border-bottom:1px solid var(--line);
}
.topbar-inner{
  max-width:var(--max);
  margin:0 auto;
  padding:16px 24px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}
.logo{
  display:flex;align-items:center;gap:8px;
  color:var(--pink);
  font-weight:800;
  font-size:21px;
  white-space:nowrap;
}
.search-pill{
  display:flex;align-items:center;gap:10px;
  border:1px solid var(--line);
  border-radius:999px;
  padding:10px 10px 10px 20px;
  box-shadow:0 1px 4px rgba(0,0,0,.08);
  font-size:14px;
  font-weight:600;
  flex:1;
  max-width:400px;
  justify-content:center;
}
.search-pill .dot{color:var(--line);font-style:normal;}
.search-btn{
  background:var(--pink);
  color:#fff;
  width:32px;height:32px;
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:14px;
}
.topbar-right{display:flex;align-items:center;gap:14px;}
.host-link{font-weight:600;font-size:14px;padding:10px 12px;border-radius:22px;white-space:nowrap;}
.host-link:hover{background:#F7F7F7;}
.globe{width:40px;height:40px;border-radius:50%;font-size:16px;}
.globe:hover{background:#F7F7F7;}
.menu-btn{
  display:flex;align-items:center;gap:10px;
  border:1px solid var(--line);
  border-radius:999px;
  padding:6px 10px;
  box-shadow:0 1px 4px rgba(0,0,0,.08);
}
.avatar{
  width:28px;height:28px;border-radius:50%;
  background:var(--gray);color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-size:14px;
}

/* Section nav (in header, next to logo): inline on desktop, hamburger below 900px */
.nav-menu{
  position:relative;
  margin-left:auto;
}
.hamburger-btn{
  display:none;
  position:relative;
  width:40px;height:40px;
  padding:0;
  border:1px solid var(--line);
  border-radius:8px;
}
.hamburger-btn span{
  position:absolute;
  left:50%;
  width:18px;height:2px;
  background:var(--ink);
  border-radius:1px;
  transform:translateX(-50%);
  transition:transform .2s ease, opacity .2s ease;
}
.hamburger-btn span:nth-child(1){top:14px;}
.hamburger-btn span:nth-child(2){top:19px;}
.hamburger-btn span:nth-child(3){top:24px;}
.hamburger-btn.is-open span:nth-child(1){top:19px;transform:translateX(-50%) rotate(45deg);}
.hamburger-btn.is-open span:nth-child(2){opacity:0;}
.hamburger-btn.is-open span:nth-child(3){top:19px;transform:translateX(-50%) rotate(-45deg);}

/* Desktop: nav shown inline, no dropdown chrome */
.section-nav{
  display:flex;
  flex-direction:row;
  gap:28px;
}
.section-nav a{
  padding:8px 0;
  font-size:14px;
  font-weight:600;
  color:var(--gray);
  white-space:nowrap;
  border-bottom:2px solid transparent;
}
.section-nav a:hover{color:var(--ink);border-bottom-color:var(--ink);}

/* Below 900px: nav becomes a hamburger-triggered dropdown */
@media (max-width:900px){
  .hamburger-btn{display:flex;}
  .section-nav{
    display:none;
    flex-direction:column;
    position:absolute;
    top:calc(100% + 8px);
    right:0;
    min-width:240px;
    background:#fff;
    border:1px solid var(--line);
    border-radius:12px;
    box-shadow:0 8px 24px rgba(0,0,0,.15);
    padding:8px;
    z-index:30;
    gap:0;
  }
  .section-nav.is-open{display:flex;}
  .section-nav a{
    padding:10px 12px;
    color:var(--ink);
    border-radius:8px;
    border-bottom:none;
  }
  .section-nav a:hover{background:#F7F7F7;}
}

/* Mobile header: keep every control reachable without widening the viewport. */
@media (max-width:600px){
  .topbar-inner{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto auto;
    grid-template-areas:
      "logo language navigation"
      "reserve reserve reserve";
    gap:8px 10px;
    padding:12px 16px;
  }
  .logo{
    grid-area:logo;
    min-width:0;
    font-size:18px;
  }
  .logo span{
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .nav-menu{
    grid-area:navigation;
    margin-left:0;
    position:static;
  }
  .lang-switch{grid-area:language;}
  .header-reserve-btn{
    grid-area:reserve;
    width:100%;
    padding:10px 14px;
  }
  .section-nav{
    top:100%;
    right:16px;
    left:16px;
    min-width:0;
  }
}

.header-reserve-btn{
  background:var(--pink);
  color:#fff;
  font-weight:700;
  font-size:14px;
  padding:10px 20px;
  border-radius:8px;
  white-space:nowrap;
}
.header-reserve-btn:hover{background:var(--pink-dark);}

.lang-switch{
  position:relative;
  flex-shrink:0;
}
.lang-toggle{
  display:flex;align-items:center;gap:4px;
  padding:6px 8px;
  font-size:11px;
  font-weight:700;
  color:var(--ink);
  background:#F7F7F7;
  border-radius:999px;
  white-space:nowrap;
}
.lang-toggle:hover{background:#EFEFEF;}
.lang-caret{width:12px;height:12px;stroke:var(--gray);transition:transform .15s ease;}
.lang-toggle[aria-expanded="true"] .lang-caret{transform:rotate(180deg);}

.lang-menu{
  display:none;
  flex-direction:column;
  position:absolute;
  top:calc(100% + 6px);
  right:0;
  min-width:130px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:12px;
  box-shadow:0 8px 24px rgba(0,0,0,.15);
  padding:6px;
  z-index:30;
}
.lang-menu.is-open{display:flex;}
.lang-option{
  padding:8px 10px;
  font-size:12px;
  font-weight:600;
  color:var(--ink);
  border-radius:8px;
  text-align:left;
  white-space:nowrap;
}
.lang-option:hover{background:#F7F7F7;}
.lang-option.is-active{color:var(--pink);}

.nav-section{scroll-margin-top:90px;}

.rules-list{list-style:none;margin:0 0 20px;padding:0;display:flex;flex-direction:column;gap:16px;font-size:15px;}
.rules-list li{display:flex;align-items:flex-start;gap:10px;}

.price-example{font-size:14px;line-height:1.6;margin-top:12px;}

.estrutura-sub{
  font-size:16px;
  margin:24px 0 12px;
}
.estrutura-sub:first-of-type{margin-top:0;}

.footer-links{display:flex;justify-content:center;gap:24px;margin-bottom:12px;font-size:13px;font-weight:600;}
.footer-links a:hover{text-decoration:underline;}

/* Main */
.listing{max-width:var(--max);margin:0 auto;padding:24px;}

.title-row{
  display:flex;align-items:flex-start;justify-content:space-between;
  gap:16px;flex-wrap:wrap;
  margin-bottom:16px;
}
.title-main{max-width:640px;}
.badge-highlight{
  display:inline-block;
  background:var(--pink);
  color:#fff;
  font-size:14px;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
  padding:8px 18px;
  border-radius:999px;
  margin-bottom:14px;
}
.title-row h1{font-size:26px;margin:0;}
.title-subtitle{
  color:var(--ink);
  font-size:19px;
  font-weight:600;
  line-height:1.5;
  margin:10px 0 0;
}
.title-actions{display:flex;align-items:center;gap:20px;font-size:14px;font-weight:600;margin-top:6px;}
.rating a{text-decoration:underline;}
.ghost-btn{
  display:flex;align-items:center;gap:6px;
  padding:8px 12px;border-radius:8px;
  font-weight:600;
}
.ghost-btn:hover{background:#F7F7F7;}

/* Gallery */
.gallery-grid{
  display:grid;
  grid-template-columns:2fr 1fr 1fr;
  grid-template-rows:1fr 1fr;
  gap:8px;
  border-radius:var(--radius);
  overflow:hidden;
  position:relative;
  height:420px;
}
.gallery-main{grid-row:1/3;}
.gallery-grid img{width:100%;height:100%;object-fit:cover;display:block;}
.photo-open-btn{
  width:100%;height:100%;
  padding:0;border:none;
  display:block;
  cursor:pointer;
  background:none;
}
.gallery-thumb-last{position:relative;}
.gallery-thumb-last .show-all-btn{
  position:absolute;
  z-index:2;
  bottom:12px;right:12px;
  color:var(--pink);
}
.show-all-btn{
  display:flex;align-items:center;gap:6px;
  background:#fff;
  border:1px solid var(--ink);
  padding:8px 14px;
  border-radius:8px;
  font-weight:600;
  font-size:14px;
  box-shadow:0 1px 4px rgba(0,0,0,.2);
}
.show-all-btn.outline{
  position:static;
  border:1px solid var(--ink);
}
.gallery-mobile-nav,
.gallery-mobile-counter,
.gallery-mobile-all{display:none;}

/* Content row */
.content-row{
  display:grid;
  grid-template-columns:1fr 380px;
  gap:64px;
  margin-top:40px;
  align-items:start;
}
.content-main{min-width:0;}

.host-block{display:flex;align-items:center;justify-content:space-between;padding-bottom:24px;}
.host-block-text h2{font-size:22px;margin:0 0 6px;}
.host-block-text p{margin:0;color:var(--gray);}
.host-block-text .title-subtitle{margin-top:8px;}
.host-avatar{
  width:56px;height:56px;border-radius:50%;
  background:var(--pink);color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-weight:700;font-size:18px;
}
.host-avatar.big{width:72px;height:72px;font-size:22px;flex-shrink:0;}

.highlights{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:24px;}
.highlights li{display:flex;gap:16px;align-items:flex-start;}
.hi-icon{display:flex;}
.hi-icon .ic{width:26px;height:26px;}
.highlights strong{display:block;margin-bottom:4px;font-size:15px;}
.highlights p{margin:0;color:var(--gray);font-size:14px;}

.description p{line-height:1.6;font-size:15px;}
.link-btn{font-weight:700;text-decoration:underline;font-size:15px;}

.amenities h2, .calendar-block h2, .reviews h2, .location-block h2, .host-profile h2{
  font-size:22px;margin:0 0 20px;
}
.amenities-grid{
  list-style:none;margin:0 0 24px;padding:0;
  display:grid;grid-template-columns:1fr 1fr;gap:18px;
  font-size:15px;
}
.amenities-grid li{display:flex;align-items:flex-start;gap:10px;}

.calendar-block p{margin-top:0;}

/* Reviews */
.review-bars{
  display:grid;grid-template-columns:1fr 1fr;gap:12px 40px;margin-bottom:32px;
}
.review-bars > div{display:grid;grid-template-columns:110px 1fr 30px;align-items:center;gap:10px;font-size:14px;}
.bar{height:4px;background:var(--line);border-radius:2px;overflow:hidden;}
.bar i{display:block;height:100%;background:var(--ink);}
.review-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-bottom:24px;
}
.review-card p{font-size:14px;line-height:1.5;margin:10px 0 0;}
.review-head{display:flex;align-items:center;gap:12px;}
.review-avatar{
  width:44px;height:44px;border-radius:50%;
  background:#E5E7EB;color:var(--ink);
  display:flex;align-items:center;justify-content:center;
  font-weight:700;
}
.review-head strong{display:block;font-size:14px;}
.review-head span.muted{font-size:13px;}

.map-embed{
  width:100%;
  aspect-ratio:16 / 10;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:#EDEDED;
  margin-bottom:12px;
}
.map-embed iframe{display:block;width:100%;height:100%;border:0;}
.map-link{display:inline-block;margin-top:2px;font-size:15px;font-weight:700;text-decoration:underline;}
.map-link:focus-visible{outline:2px solid var(--pink);outline-offset:3px;border-radius:2px;}

.host-profile-card{
  display:flex;gap:20px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:24px;
}
.host-profile-card strong{font-size:16px;}
.host-profile-card p{font-size:14px;line-height:1.5;}

/* Booking card */
.booking-card{position:sticky;top:96px;}
.booking-card-inner{
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:0 6px 20px rgba(0,0,0,.12);
  padding:24px;
}
.booking-cta{margin-bottom:18px;}
.booking-cta-title{font-size:22px;font-weight:800;margin:0;color:var(--ink);}
.booking-cta-sub{font-size:15px;font-weight:600;color:var(--pink);margin:4px 0 0;}
.rating-inline{margin-left:auto;font-size:14px;font-weight:600;}
.rating-inline a{text-decoration:underline;}
.booking-dates{
  display:grid;
  grid-template-columns:1fr 1fr;
  border:1px solid var(--line);
  border-radius:8px;
  overflow:hidden;
  margin-bottom:8px;
}
.date-field{padding:10px 12px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);}
.date-field:nth-of-type(2){border-right:none;}
.guests-field{grid-column:1/3;padding:10px 12px;}
.date-field label, .guests-field label{
  display:block;font-size:10px;font-weight:700;letter-spacing:.03em;color:var(--gray);
}
.date-field span, .guests-field span{font-size:14px;}
.date-input-wrap{display:flex;align-items:center;gap:4px;min-width:0;width:100%;}
.date-field input[type="date"],
.guests-field select{
  width:100%;
  border:none;
  padding:0;
  font-family:inherit;
  font-size:14px;
  color:var(--ink);
  background:transparent;
}
.date-field input[type="date"]{
  color-scheme:light;
  min-width:0;
  flex:1;
}
.date-field input[type="date"]::-webkit-calendar-picker-indicator{
  display:none;
}
.date-picker-button{
  display:flex;
  align-items:center;
  justify-content:center;
  flex:0 0 44px;
  width:44px;
  height:44px;
  margin:0;
  border:1px solid var(--line);
  border-radius:50%;
  color:var(--pink);
  touch-action:manipulation;
}
.date-picker-button:hover,
.date-picker-button:focus-visible{background:#F7F7F7;outline:none;}
.date-picker-button .ic{display:block;width:20px;height:20px;stroke:currentColor;}
.date-picker-button:focus-visible{box-shadow:0 0 0 2px var(--pink);}
.date-picker-button:disabled,
.date-field input[type="date"]:disabled{cursor:not-allowed;opacity:.45;}
.guests-field select{
  appearance:none;
  -webkit-appearance:none;
}
.date-field:focus-within,
.guests-field:focus-within,
.form-field:focus-within{
  position:relative;
  z-index:1;
  box-shadow:inset 0 0 0 2px var(--pink);
}
.date-field input[type="date"]:focus,
.guests-field select:focus{outline:none;}

.min-stay-hint{
  display:flex;align-items:flex-start;gap:8px;
  font-size:13px;
  color:var(--gray);
  background:#F7F7F7;
  border-radius:8px;
  padding:10px 12px;
  margin-bottom:12px;
}
.min-stay-hint .ic{width:16px;height:16px;margin-top:1px;stroke:var(--gray);}

.booking-warning{
  align-items:center;gap:6px;
  color:var(--pink-dark);
  font-weight:600;
  font-size:13px;
  margin:0 0 12px;
}
.booking-warning:not([hidden]){display:flex;}
.booking-note{margin-top:12px;font-size:13px;}
.success-message{
  align-items:center;gap:8px;
  background:#ECFDF5;
  color:#047857;
  font-weight:600;
  font-size:13px;
  border-radius:8px;
  padding:10px 12px;
  margin:0 0 12px;
}
.success-message .ic{stroke:#047857;}
.success-message:not([hidden]){display:flex;}

.contact-fields{
  display:flex;flex-direction:column;gap:10px;
  margin-bottom:8px;
}
.form-field{
  border:1px solid var(--line);
  border-radius:8px;
  padding:10px 12px;
}
.form-field label{
  display:block;font-size:10px;font-weight:700;letter-spacing:.03em;color:var(--gray);margin-bottom:2px;
}
.form-field input{
  width:100%;
  border:none;
  padding:0;
  font-family:inherit;
  font-size:14px;
  color:var(--ink);
  background:transparent;
}
.form-field input:focus{outline:none;}
.form-field input::placeholder{color:#B5B5B5;}

.phone-field-row{
  display:flex;
  align-items:center;
  gap:8px;
}
.phone-field-row select{
  flex-shrink:0;
  border:none;
  border-right:1px solid var(--line);
  padding:0 8px 0 0;
  font-family:inherit;
  font-size:14px;
  color:var(--ink);
  background:transparent;
  appearance:none;
  -webkit-appearance:none;
}
.phone-field-row input{flex:1;}

.captcha-field .captcha-intro{
  font-size:14px;
  font-weight:700;
  color:var(--ink);
  margin:0 0 4px;
  letter-spacing:normal;
  text-transform:none;
}
.captcha-field label{
  font-size:12px;
  font-weight:500;
  text-transform:none;
  letter-spacing:normal;
  color:var(--gray);
  margin-bottom:8px;
}
.captcha-field .captcha-math{
  font-size:18px;
  font-weight:700;
  color:var(--pink);
  margin:0 0 8px;
}
.reserve-btn{
  display:block;
  width:100%;
  background:linear-gradient(90deg,var(--pink),var(--pink-dark));
  color:#fff;
  padding:14px;
  border-radius:8px;
  font-weight:700;
  font-size:16px;
  text-align:center;
  margin-bottom:12px;
  box-sizing:border-box;
}
.reserve-btn:hover{filter:brightness(0.95);}
.reserve-btn.is-disabled{
  background:var(--line);
  color:var(--gray);
  cursor:not-allowed;
  pointer-events:none;
}
.reserve-btn.is-disabled:hover{filter:none;}
.price-breakdown{display:flex;flex-direction:column;gap:12px;margin-top:20px;font-size:15px;}
.price-breakdown > div{display:flex;justify-content:space-between;}
.price-breakdown span:first-child{text-decoration:underline;}
.price-total{display:flex;justify-content:space-between;font-weight:700;font-size:16px;}

/* Footer */
.site-footer{
  border-top:1px solid var(--line);
  padding:24px;
  text-align:center;
  color:var(--gray);
  font-size:13px;
  margin-top:48px;
}

/* All photos overlay */
.all-photos-overlay{
  position:fixed;inset:0;
  background:#fff;
  z-index:100;
  overflow-y:auto;
}
.all-photos-header{
  position:sticky;top:0;
  background:#fff;
  border-bottom:1px solid var(--line);
  padding:16px 24px;
  display:flex;align-items:center;gap:20px;
  font-weight:700;
  z-index:2;
}
.all-photos-header h2{margin:0;font-size:16px;line-height:1.3;}
.all-photos-close{
  width:40px;height:40px;
  border-radius:50%;
  border:1px solid var(--line);
  font-size:16px;
}
.all-photos-close:hover{background:#F7F7F7;}
.all-photos-body{
  max-width:900px;
  margin:0 auto;
  padding:24px;
}
.all-photos-room-title{
  font-size:20px;
  margin:32px 0 16px;
}
.all-photos-room-title:first-child{margin-top:0;}
.all-photos-room-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:8px;
}
.photo-tile{
  aspect-ratio:1/1;
  border-radius:8px;
  overflow:hidden;
}
.photo-tile img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .2s ease;}
.photo-tile:hover img{transform:scale(1.04);}

/* Lightbox */
.lightbox{
  position:fixed;inset:0;
  background:rgba(0,0,0,.92);
  z-index:200;
}
.lightbox:not([hidden]){display:flex;align-items:center;justify-content:center;}
.lightbox-stage{
  width:100%;height:100%;
  display:flex;align-items:center;justify-content:center;
  padding:60px;
}
.lightbox-stage img{
  max-width:100%;max-height:100%;
  object-fit:contain;
  cursor:zoom-in;
  transition:transform .25s ease;
}
.lightbox-stage img.is-zoomed{
  transform:scale(1.6);
  cursor:zoom-out;
}
.lightbox-close{
  position:absolute;top:20px;right:24px;
  width:44px;height:44px;
  border-radius:50%;
  background:rgba(255,255,255,.1);
  color:#fff;
  font-size:18px;
  z-index:2;
}
.lightbox-close:hover{background:rgba(255,255,255,.2);}
.lightbox-nav{
  position:absolute;top:50%;
  transform:translateY(-50%);
  width:48px;height:48px;
  border-radius:50%;
  background:rgba(255,255,255,.1);
  color:#fff;
  font-size:28px;
  line-height:1;
  z-index:2;
}
.lightbox-nav:hover{background:rgba(255,255,255,.2);}
.lightbox-prev{left:20px;}
.lightbox-next{right:20px;}
.lightbox-counter{
  position:absolute;top:24px;left:24px;
  color:#fff;
  font-size:14px;
  font-weight:600;
}
.lightbox-label{
  position:absolute;bottom:24px;left:50%;
  transform:translateX(-50%);
  color:#fff;
  font-size:14px;
  font-weight:600;
  background:rgba(0,0,0,.4);
  padding:6px 14px;
  border-radius:999px;
}

/* Responsive */
@media (max-width:900px){
  .search-pill{display:none;}
  .content-row{grid-template-columns:1fr;}
  .booking-card{position:static;}
  .gallery-grid{grid-template-columns:1fr 1fr;height:auto;}
  .gallery-main{grid-column:1/3;height:260px;}
  .gallery-thumb{height:140px;}
  .amenities-grid{grid-template-columns:1fr;}
  .review-grid{grid-template-columns:1fr;}
  .review-bars{grid-template-columns:1fr;}
  .all-photos-room-grid{grid-template-columns:repeat(2,1fr);}
  .lightbox-stage{padding:24px;}
  .lightbox-nav{width:40px;height:40px;font-size:22px;}
  .lightbox-prev{left:6px;}
  .lightbox-next{right:6px;}
}

@media (max-width:600px){
  /* Keep every reading block inside the viewport as copy grows. */
  html,
  body{width:100%;max-width:100%;overflow-x:clip;}
  .listing,
  .site-footer,
  .legal-page{width:100%;max-width:100%;}
  .title-main,
  .host-block-text,
  .highlights li,
  .highlights li > div,
  .review-card,
  .host-profile-card > div,
  .booking-card,
  .booking-card-inner,
  .date-field,
  .guests-field,
  .review-bars > div{min-width:0;}
  .title-subtitle,
  .host-block-text p,
  .highlights p,
  .description p,
  .rules-list li,
  .price-example,
  .amenities-grid li,
  .review-card p,
  .host-profile-card p,
  .booking-cta-sub,
  .min-stay-hint,
  .booking-warning,
  .booking-note,
  .success-message,
  .legal-page p{overflow-wrap:anywhere;}
  .price-breakdown > div{gap:12px;}
  .price-breakdown span:first-child{min-width:0;overflow-wrap:anywhere;}
  .price-breakdown span:last-child{flex-shrink:0;white-space:nowrap;}

  /* Full-width date rows leave room for both the localized date and its calendar button. */
  .booking-dates{grid-template-columns:1fr;}
  .date-field{border-right:none;}
  .date-field:nth-of-type(2){border-bottom:1px solid var(--line);}
  .guests-field{grid-column:1;}
  .date-input-wrap{gap:8px;}

  /* Reading copy: one step larger on small screens without changing navigation or action hierarchy. */
  .rules-list{font-size:16px;}
  .price-example{font-size:15px;}
  .estrutura-sub{font-size:17px;}
  .title-subtitle{font-size:20px;}
  .highlights strong{font-size:16px;}
  .highlights p,
  .description p,
  .link-btn,
  .amenities-grid,
  .review-card p,
  .host-profile-card p,
  .booking-cta-sub,
  .price-breakdown,
  .legal-page p{font-size:16px;}
  .review-bars > div,
  .review-head strong,
  .rating-inline{font-size:15px;}
  .review-head span.muted,
  .min-stay-hint,
  .booking-warning,
  .booking-note,
  .success-message,
  .site-footer{font-size:14px;}

  .gallery-grid{
    display:block;
    height:min(72vw,320px);
    min-height:240px;
  }
  .gallery-main{height:100%;}
  .gallery-thumb{display:none;}
  .gallery-mobile-nav{
    position:absolute;
    top:50%;
    z-index:2;
    display:flex;
    align-items:center;
    justify-content:center;
    width:44px;
    height:44px;
    transform:translateY(-50%);
    border-radius:50%;
    background:rgba(255,255,255,.92);
    color:var(--ink);
    box-shadow:0 2px 10px rgba(0,0,0,.18);
    font-size:28px;
    line-height:1;
    touch-action:manipulation;
  }
  .gallery-mobile-prev{left:12px;}
  .gallery-mobile-next{right:12px;}
  .gallery-mobile-counter{
    position:absolute;
    bottom:12px;
    left:12px;
    z-index:2;
    display:block;
    padding:6px 10px;
    border-radius:999px;
    background:rgba(0,0,0,.56);
    color:#fff;
    font-size:13px;
    font-weight:700;
  }
  .gallery-mobile-all{
    position:absolute;
    right:12px;
    bottom:12px;
    z-index:2;
    display:flex;
    align-items:center;
    gap:6px;
    min-height:40px;
    padding:8px 12px;
    border-radius:8px;
    background:#fff;
    color:var(--ink);
    box-shadow:0 2px 10px rgba(0,0,0,.18);
    font-size:13px;
    font-weight:700;
    touch-action:manipulation;
  }
  .gallery-main,
  .lightbox-stage{touch-action:pan-y;}
  .lightbox-nav{width:44px;height:44px;}
}

/* Legal pages */
.legal-page{
  max-width:760px;
  margin:0 auto;
  padding:48px 24px 80px;
}
.legal-page h1{font-size:28px;margin:0 0 8px;}
.legal-page h2{font-size:18px;margin:32px 0 10px;}
.legal-page p{font-size:15px;line-height:1.6;margin:0 0 12px;}
.legal-page .link-btn{display:inline-block;margin-top:32px;}
