/* ── HOME PAGE (index.html) ── */

/* min-width removed – responsive layout handled in responsive.css */

/* Hero – home specifico */
.hero {
  height: 90vh;
  min-height: 90vh;
  gap: var(--sp-l);
}
.hero__content { gap: var(--sp-s); }
.hero__meta {
  display: flex;
  align-items: center;
  gap: var(--sp-xs);
  color: var(--text-on-dark-secondary);
  font-size: 16px;
  flex-wrap: wrap;
  justify-content: center;
}
.hero__meta .dot { opacity: .6; }
.hero__meta img { width: 24px; height: 24px; filter: brightness(0) invert(1); }
.hero__rating-link {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-xs);
  color: inherit;
  text-decoration: none;
  cursor: pointer;
}
.hero__rating-link img {
  filter: brightness(0) saturate(100%) invert(86%) sepia(6%) saturate(187%) hue-rotate(335deg) brightness(93%) contrast(88%);
}
.hero__rating-link:hover { text-decoration: underline; }
.hero__cta {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--semantic-button-primary-bg, #6F423F);
  color: #fff;
  font-size: 16px;
  font-weight: 600;
  line-height: 24px;
  padding: 12px 16px;
  border-radius: var(--radius-s);
  border: none;
  cursor: pointer;
  text-decoration: none;
  transition: background .2s ease, opacity .2s ease;
}
.hero__cta:hover {
  background: var(--semantic-button-primary-hover, #542E2B);
  opacity: 1;
}

/* ── PAGE LAYOUT ── */
.page-wrapper {
  max-width: 1440px;
  margin: 0 auto;
}
.content-row {
  display: flex;
  align-items: stretch;
  gap: var(--sp-l);
  padding: 0;
  max-width: 1248px;
  margin: 0 auto;
}
.main-col { flex: 1 1 680px; min-width: 0; }
.side-col  { flex: 0 0 380px; min-width: 0; padding-top: var(--sp-l); padding-bottom: var(--sp-l); align-self: stretch; }

/* ── RENTALWISE BOOKING CARD ── */
:root {
  --rw-surface: #ffffff;
  --rw-text-primary: #332e2c;
  --rw-text-secondary: #7d706c;
  --rw-border: #e8e4e2;
  --rw-accent: var(--semantic-button-primary-bg, #6F423F);
  --rw-accent-hover: var(--semantic-button-primary-hover, #542E2B);
  --rw-radius-lg: var(--radius-m);
  --rw-radius-md: var(--radius-s);
  --rw-shadow: 0 4px 24px rgba(0, 0, 0, 0.1);
}

.rw-booking-card {
  position: sticky;
  top: var(--sp-m);
  box-sizing: border-box;
  max-width: 462px;
  padding: var(--sp-m);
  border-radius: var(--rw-radius-lg);
  background: var(--rw-surface);
  box-shadow: var(--rw-shadow);
  font-family: "Inter", sans-serif;
  color: var(--rw-text-primary);
  transition: top 0.3s ease;
}

body.navbar-overlap-active .rw-booking-card {
  top: calc(var(--navbar-height) + var(--sp-m));
}

.rw-booking-card *,
.rw-booking-card *::before,
.rw-booking-card *::after {
  box-sizing: border-box;
}

.rw-booking-card__intro {
  margin-bottom: var(--sp-m);
}

.rw-booking-card__title {
  margin: 0 0 var(--sp-xxs);
  font-family: var(--font-label);
  font-size: var(--label-l-size);
  font-weight: 600;
  line-height: var(--label-l-line-height);
  color: var(--rw-text-primary);
}

.rw-booking-card__description,
.rw-booking-card__meta {
  margin: 0;
  font-size: 14px;
  line-height: 20px;
  color: var(--rw-text-secondary);
}

.rw-booking-card__meta {
  margin-top: var(--sp-m);
}

.rw-booking-card rw-widget {
  display: flex;
  flex-direction: column;
  gap: var(--sp-m);
  width: 100%;
}

/* Always-visible form elements */
.rw-booking-card rw-quote-daterange-input,
.rw-booking-card rw-quote-guests-input,
.rw-booking-card rw-quote-coupon-input,
.rw-booking-card rw-quote-result {
  display: block;
  width: 100%;
}

/* rw-quote-error: visible only when widget injects content inside it */
.rw-booking-card rw-quote-error {
  display: block;
  width: 100%;
}
.rw-booking-card rw-quote-error:not(:has(*)) {
  display: none !important;
}

/* rw-quote-no-results / rw-quote-is-loading: visible only when
   no valid quote result is showing (no book button rendered) */
.rw-booking-card rw-quote-no-results,
.rw-booking-card rw-quote-is-loading {
  display: block;
  width: 100%;
}
.rw-booking-card rw-widget:has(.rw-widget-book-now-link) rw-quote-no-results,
.rw-booking-card rw-widget:has(.rw-widget-book-now-link) rw-quote-is-loading,
.rw-booking-card rw-widget:has(rw-quote-book-button a) rw-quote-no-results,
.rw-booking-card rw-widget:has(rw-quote-book-button a) rw-quote-is-loading {
  display: none !important;
}

/* rw-quote-result: hide when no meaningful content */
.rw-booking-card rw-quote-result:not(:has(rw-quote-products:not(:empty), rw-quote-total:not(:empty), rw-quote-book-button a, rw-quote-book-button button, .rw-widget-book-now-link)) {
  display: none;
}

.rw-booking-card .rw-daterange-input-wrapper,
.rw-booking-card .rw-coupon-input-wrapper,
.rw-booking-card .rw-coupon-code-input {
  display: flex;
  flex-direction: column;
  gap: var(--sp-xxs);
  position: relative;
  align-items: stretch;
  margin-top: 0 !important;
}

.rw-booking-card rw-quote-coupon-input,
.rw-booking-card .rw-coupon-input-wrapper {
  margin-bottom: 0 !important;
}

.rw-booking-card .rw-daterange-input-wrapper {
  min-height: 76px;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.rw-booking-card .rw-adults-input label,
.rw-booking-card .rw-children-input label,
.rw-booking-card .rw-coupon-code-input label,
.rw-booking-card .rw-daterange-input-wrapper > label {
  margin: 0;
  font-size: 16px;
  font-weight: 600;
  line-height: 24px;
  color: var(--rw-text-primary);
}

.rw-booking-card .rw-daterange-input-wrapper > label {
  height: 24px;
  line-height: 24px;
}

.rw-booking-card .rw-guests-input-wrapper {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--sp-s);
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.rw-booking-card .rw-adults-input,
.rw-booking-card .rw-children-input,
.rw-booking-card .rw-coupon-code-input {
  display: flex;
  flex-direction: column;
  gap: var(--sp-xxs);
  width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.rw-booking-card .rw-adults-input select,
.rw-booking-card .rw-children-input select,
.rw-booking-card .rw-coupon-code-input input {
  width: 100%;
  height: 48px;
  min-height: 48px;
  max-height: 48px;
  margin: 0;
  padding: 12px 48px 12px var(--sp-s);
  border: 1px solid var(--rw-border);
  border-radius: var(--rw-radius-md);
  background-color: #fff;
  background-repeat: no-repeat;
  background-position: right var(--sp-s) center;
  background-size: 20px 20px;
  box-shadow: none;
  color: var(--rw-text-primary);
  font-size: 16px;
  line-height: 22px;
  box-sizing: border-box;
}

.rw-booking-card .rw-adults-input select,
.rw-booking-card .rw-children-input select {
  appearance: none;
  cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M8.02051 10.0104C8.91239 11.7941 9.80427 12.7783 11.413 13.6797C11.7772 13.8838 12.2224 13.8838 12.5866 13.6797C14.1953 12.7783 15.0872 11.7941 15.9791 10.0104' stroke='%23332E2C' stroke-width='1.43' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.rw-booking-card .rw-coupon-code-input input {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none'%3E%3Cg clip-path='url(%23clip0_2114_1192)'%3E%3Cpath d='M12.1339 19.9902C11.1803 20.8516 9.64886 20.8242 8.504 19.955C7.67894 19.3286 6.84956 18.6684 6.0904 17.9093C5.33121 17.1501 4.671 16.3207 4.04467 15.4957C3.17557 14.3508 3.14811 12.8193 4.00942 11.8657C6.46176 9.15062 9.00554 6.64931 11.7829 4.21967C12.119 3.92563 12.5326 3.73197 12.9922 3.66822C14.6584 3.43712 18.8219 2.98789 19.9169 4.08281C21.0117 5.17775 20.5626 9.34125 20.3314 11.0075C20.2677 11.4671 20.0741 11.8807 19.78 12.2168C17.3504 14.9941 14.8491 17.5379 12.1339 19.9902Z' stroke='%23332E2C' stroke-width='1.43' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M15.7069 9.95072C14.6457 9.95072 14.0488 9.35382 14.0488 8.29268C14.0488 7.23154 14.6457 6.63464 15.7069 6.63464C16.768 6.63464 17.3649 7.23154 17.3649 8.29268C17.3649 9.35382 16.768 9.95072 15.7069 9.95072Z' stroke='%23332E2C' stroke-width='1.43' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0_2114_1192'%3E%3Crect width='20' height='20' fill='white' transform='translate(2 2)'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E");
}

.rw-booking-card .rw-daterange-input-wrapper .rw-date-range-input,
.rw-booking-card .rw-daterange-input-wrapper .react-datepicker-wrapper,
.rw-booking-card .rw-daterange-input-wrapper .react-datepicker__input-container {
  display: block;
  width: 100%;
  height: 48px;
  min-height: 48px;
  max-height: 48px;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  box-sizing: border-box;
}

.rw-booking-card .rw-daterange-input-wrapper .react-datepicker__input-container {
  position: relative;
}

/* Coupon placeholder */
.rw-booking-card .rw-coupon-code-input input::placeholder {
  color: var(--rw-text-secondary);
}

.rw-booking-card .rw-daterange-input-wrapper .custom-daterange-input {
  display: block;
  width: 100%;
  height: 48px;
  min-height: 48px;
  max-height: 48px;
  margin: 0;
  padding: 12px 48px 12px var(--sp-s);
  border: 1px solid var(--rw-border) !important;
  border-radius: var(--rw-radius-md) !important;
  background-color: #fff;
  background-repeat: no-repeat;
  background-position: right var(--sp-s) center;
  background-size: 20px 20px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none'%3E%3Cg clip-path='url(%23clip0_2114_1152)'%3E%3Cpath d='M3.93927 16.6755C4.15939 18.5848 5.75563 20.1006 7.72952 20.1931C9.09383 20.257 10.4875 20.2902 12.0001 20.2902C13.5127 20.2902 14.9064 20.257 16.2707 20.1931C18.2447 20.1006 19.8409 18.5848 20.061 16.6755C20.3667 14.0237 20.3667 11.7655 20.061 9.11373C19.8409 7.20449 18.2447 5.68859 16.2707 5.59617C14.9065 5.53228 13.5127 5.49908 12.0001 5.49908C10.4875 5.49908 9.09384 5.53228 7.72952 5.59617C5.75563 5.68859 4.15939 7.20449 3.93926 9.11373C3.63353 11.7655 3.63353 14.0237 3.93927 16.6755Z' stroke='%23332E2C' stroke-width='1.43' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M20.1534 10.0103H3.8457C3.87269 9.71579 3.90369 9.41734 3.9387 9.11373C4.15882 7.20449 5.75507 5.68859 7.72894 5.59617C9.09327 5.53228 10.487 5.49908 11.9996 5.49908C13.5122 5.49908 14.9059 5.53228 16.2702 5.59617C18.244 5.68859 19.8403 7.20449 20.0604 9.11373C20.0955 9.41734 20.1265 9.71579 20.1534 10.0103Z' stroke='%23332E2C' stroke-width='1.43' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M8.35547 3.70984V7.35752' stroke='%23332E2C' stroke-width='1.43' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M15.6455 3.70984V7.35752' stroke='%23332E2C' stroke-width='1.43' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0_2114_1152'%3E%3Crect width='20' height='20' fill='white' transform='translate(2 2)'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E");
  box-shadow: none !important;
  color: var(--rw-text-secondary);
  font-size: 16px;
  font-weight: 400;
  line-height: 22px;
  text-align: left;
  cursor: pointer;
  box-sizing: border-box;
  overflow: hidden;
  vertical-align: top;
}

.rw-booking-card .rw-daterange-input-wrapper .custom-daterange-input.has-dates {
  color: var(--rw-text-primary);
}

.rw-booking-card .rw-widget-book-now-link,
.rw-booking-card rw-quote-book-button a,
.rw-booking-card rw-quote-book-button button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 48px;
  padding: 12px 16px;
  border: 0;
  border-radius: var(--rw-radius-md);
  background: var(--semantic-button-primary-bg, #6F423F);
  color: #fff;
  font-size: 16px;
  font-weight: 600;
  line-height: 24px;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
}

.rw-booking-card .rw-widget-book-now-link:hover,
.rw-booking-card rw-quote-book-button a:hover,
.rw-booking-card rw-quote-book-button button:hover {
  background: var(--semantic-button-primary-hover, #542E2B);
}

/* Override widget button text (widget shows "Verifica disponibilità" in IT locale) */
.rw-booking-card .rw-widget-book-now-link,
.rw-booking-card rw-quote-book-button a,
.rw-booking-card rw-quote-book-button button {
  font-size: 0 !important;
  color: transparent !important;
}
:root:lang(it) .rw-booking-card .rw-widget-book-now-link::after,
:root:lang(it) .rw-booking-card rw-quote-book-button a::after,
:root:lang(it) .rw-booking-card rw-quote-book-button button::after {
  content: "Prenota ora";
  font-size: 16px;
  font-weight: 600;
  color: #fff;
  line-height: 24px;
}
:root:lang(en) .rw-booking-card .rw-widget-book-now-link::after,
:root:lang(en) .rw-booking-card rw-quote-book-button a::after,
:root:lang(en) .rw-booking-card rw-quote-book-button button::after {
  content: "Book now";
  font-size: 16px;
  font-weight: 600;
  color: #fff;
  line-height: 24px;
}


.rw-booking-card rw-quote-result > div {
  display: flex;
  flex-direction: column;
  gap: 12px;
  width: 100%;
}

/* ── Products line items ── */
.rw-booking-card rw-quote-products,
.rw-booking-card .rw-quote-products {
  display: flex;
  flex-direction: column;
  width: 100%;
  color: var(--rw-text-primary);
  font-size: 16px;
  line-height: 24px;
}

/* Each product row: name left, price right */
.rw-booking-card .rw-quote-line-item {
  display: flex !important;
  justify-content: space-between;
  align-items: baseline;
  gap: 8px;
  margin: 0 !important;
  padding: 0 !important;
}

.rw-booking-card .rw-quote-line-price,
.rw-booking-card .rw-quote-line-discount {
  white-space: nowrap;
  flex-shrink: 0;
  text-align: right;
}

/* ── Total row ── */
/* Widget only sets margin-top + font-weight on .rw-quote-total, no flex layout.
   We add the same flex pattern used by .rw-quote-line-item to spread label ↔ price */
.rw-booking-card .rw-quote-total {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin: 0 !important;
  padding: 0 !important;
  color: var(--rw-text-primary);
  font-size: 16px;
  font-weight: 600;
  line-height: 24px;
}
/* Price/last child: push to right, no wrap */
.rw-booking-card .rw-quote-total > *:last-child {
  white-space: nowrap;
  flex-shrink: 0;
}

.rw-booking-card .rw-daterange-input-wrapper .react-datepicker__tab-loop {
  position: absolute;
  inset: calc(100% + 8px) auto auto 0;
  width: 0;
  height: 0;
}

.rw-booking-card .rw-daterange-input-wrapper .react-datepicker-popper {
  z-index: 30;
  position: absolute !important;
  inset: calc(100% + 8px) auto auto 0 !important;
  transform: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

.rw-booking-card .rw-daterange-input-wrapper .react-datepicker {
  border: 1px solid var(--rw-border);
  border-radius: var(--rw-radius-lg);
  box-shadow: 0 12px 32px rgba(51, 46, 44, 0.12);
  font-family: "Inter", sans-serif;
  overflow: hidden;
  background: #fff;
}

.rw-booking-card .rw-daterange-input-wrapper .react-datepicker__navigation {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  min-height: 32px;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: transparent;
  box-shadow: none;
}

.rw-booking-card .rw-daterange-input-wrapper .react-datepicker__navigation:hover {
  background: #f3ece7;
}

.rw-booking-card .rw-daterange-input-wrapper .react-datepicker__header {
  padding: 16px 16px 0;
  background: #fff;
  border-bottom: 0;
}

.rw-booking-card .rw-daterange-input-wrapper .react-datepicker__current-month {
  font-size: 16px;
  font-weight: 600;
  line-height: 24px;
  color: var(--rw-text-primary);
}

.rw-booking-card .rw-daterange-input-wrapper .react-datepicker__day-name {
  width: 36px;
  line-height: 36px;
  margin: 0 2px;
  font-size: 12px;
  font-weight: 600;
  color: var(--rw-text-secondary);
}

.rw-booking-card .rw-daterange-input-wrapper .react-datepicker__month {
  margin: 0;
  padding: 8px 16px 16px;
}

.rw-booking-card .rw-daterange-input-wrapper .react-datepicker__day {
  width: 36px;
  line-height: 36px;
  margin: 2px;
  border: 1px solid transparent;
  border-radius: var(--rw-radius-md);
  font-size: 14px;
  font-weight: 400;
  color: var(--rw-text-primary);
}

.rw-booking-card .rw-daterange-input-wrapper .react-datepicker__day:hover {
  background: #f3ece7;
  border-color: #eadfd8;
}

.rw-booking-card .rw-daterange-input-wrapper .react-datepicker__day--keyboard-selected,
.rw-booking-card .rw-daterange-input-wrapper .react-datepicker__day--selected,
.rw-booking-card .rw-daterange-input-wrapper .react-datepicker__day--range-start,
.rw-booking-card .rw-daterange-input-wrapper .react-datepicker__day--range-end,
.rw-booking-card .rw-daterange-input-wrapper .react-datepicker__day--in-range,
.rw-booking-card .rw-daterange-input-wrapper .react-datepicker__day--in-selecting-range {
  background: var(--rw-accent);
  border-color: var(--rw-accent);
  color: #fff;
}

.rw-booking-card .rw-daterange-input-wrapper .react-datepicker__day--outside-month {
  color: #c1b6b1;
}

.rw-booking-card .rw-daterange-input-wrapper .react-datepicker__day--disabled {
  color: #cfc6c1;
  background: transparent;
  border-color: transparent;
  opacity: 1;
}

.rw-booking-card .rw-daterange-input-wrapper .react-datepicker__day--excluded {
  color: #b8ada8;
  background: #f2efed;
  border-color: #f2efed;
  text-decoration: line-through;
}

.rw-booking-card .rw-daterange-input-wrapper .react-datepicker__day--today {
  border-color: #dccbc3;
  font-weight: 600;
}

.rw-booking-card .rw-status {
  margin: 0;
  font-size: 14px;
  line-height: 20px;
  color: var(--rw-text-secondary);
  text-align: center;
}

.rw-booking-card rw-quote-error {
  display: block;
  font-size: 14px;
  line-height: 20px;
  color: #c0392b;
}

/* ── SECTIONS (home main col) ── */
.section {
  position: relative;
  padding: var(--sp-l) var(--sp-m);
}
.section::after {
  content: "";
  position: absolute;
  left: var(--sp-m);
  right: var(--sp-m);
  bottom: 0;
  height: 1px;
  background: var(--border);
}
.section:last-child::after { display: none; }
.section__title {
  font-family: var(--font-label);
  font-size: var(--label-l-size);
  font-weight: 600;
  line-height: var(--label-l-line-height);
  color: var(--text-primary);
  margin-bottom: var(--sp-m);
}

/* Heading section */
.heading-section {
  position: relative;
  padding: var(--sp-l) var(--sp-m);
}
.heading-section::after {
  content: "";
  position: absolute;
  left: var(--sp-m);
  right: var(--sp-m);
  bottom: 0;
  height: 1px;
  background: var(--border);
}
.heading-section__title {
  font-family: var(--font-label);
  font-size: var(--label-xl-size);
  font-weight: 600;
  line-height: var(--label-xl-line-height);
  color: var(--text-primary);
  margin-bottom: var(--sp-s);
}
.heading-section__meta {
  display: flex;
  align-items: center;
  gap: var(--sp-xs);
  font-size: 16px;
  color: var(--text-primary);
  flex-wrap: wrap;
  margin-bottom: var(--sp-s);
}
.heading-section__meta .sep { color: var(--text-secondary); }
.heading-section__links {
  display: flex;
  align-items: center;
  gap: var(--sp-s);
  flex-wrap: wrap;
}
.heading-section__rating,
.heading-section__location {
  display: flex;
  align-items: center;
  gap: var(--sp-xs);
  font-size: 16px;
  color: var(--text-primary);
  text-decoration: none;
  cursor: pointer;
}
.heading-section__rating:hover { text-decoration: underline; }
.heading-section__location a {
  color: var(--text-primary);
  text-decoration: underline;
}
.heading-section__rating img,
.heading-section__location img { width: 24px; height: 24px; }

/* Text block */
.text-block {
  position: relative;
  padding: var(--sp-l) var(--sp-m);
}
.text-block::after {
  content: "";
  position: absolute;
  left: var(--sp-m);
  right: var(--sp-m);
  bottom: 0;
  height: 1px;
  background: var(--border);
}
.text-block p {
  font-size: 16px;
  line-height: 24px;
  color: var(--text-primary);
  margin-bottom: var(--sp-s);
}
.text-block p:last-child { margin-bottom: 0; }

/* Features grid */
.features-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--sp-m);
}
.feature-item {
  display: flex;
  align-items: flex-start;
  gap: var(--sp-xs);
}
.feature-item img { width: 24px; height: 24px; flex-shrink: 0; }
.feature-item span {
  font-size: 16px;
  line-height: 24px;
  color: var(--text-primary);
}
#servizi .btn-outline {
  display: none;
}

/* Section header row – title + carousel nav inline */
.section__header-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--sp-m);
}
.section__header-row .section__title,
.section__header-row .reviews-header {
  margin-bottom: 0;
}

/* Carousel nav buttons (gallery + reviews) */
.carousel-nav {
  display: flex;
  gap: var(--sp-xs);
  margin-top: var(--sp-s);
}
.section__header-row .carousel-nav {
  margin-top: 0;
}
.carousel-btn {
  width: 48px;
  height: 48px;
  border-radius: 100px;
  border: 1px solid var(--border);
  background: #fff;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  user-select: none;
  transition: background .15s, border-color .15s;
  padding: 0;
}
.carousel-btn img {
  width: 24px;
  height: 24px;
  display: block;
}
.carousel-btn:hover {
  background: var(--bg);
  border-color: var(--text-secondary);
}

/* Gallery */
.gallery-row {
  display: flex;
  gap: var(--sp-s);
  overflow-x: auto;
  scrollbar-width: none;
}
.gallery-row::-webkit-scrollbar { display: none; }
.gallery-img {
  flex-shrink: 0;
  height: 220px;
  width: auto;
  border-radius: var(--radius-s);
  overflow: hidden;
  background: var(--bg);
  display: flex;
  align-items: center;
  justify-content: center;
}
.gallery-img img {
  display: block;
  width: auto;
  height: 100%;
  max-width: none;
  object-fit: contain;
}

/* Map */
.map-img {
  width: 100%;
  height: 400px;
  border-radius: var(--radius-s);
  overflow: hidden;
  background: var(--bg);
  margin-bottom: var(--sp-m);
}
.map-img img  { width: 100%; height: 100%; object-fit: cover; }
.map-img iframe { width: 100%; height: 100%; border: none; display: block; }
.map-info-row { display: flex; gap: var(--sp-m); }
.map-info-col { flex: 1; min-width: 0; }
.map-info-col h4 {
  font-size: 14px;
  font-weight: 700;
  color: var(--text-secondary);
  text-transform: uppercase;
  letter-spacing: .05em;
  margin-bottom: var(--sp-s);
}
.map-info-col p {
  font-size: 16px;
  line-height: 24px;
  color: var(--text-primary);
}

/* Transport */
.transport-item {
  display: flex;
  align-items: flex-start;
  gap: var(--sp-xs);
  margin-bottom: var(--sp-s);
}
.transport-item:last-child { margin-bottom: 0; }
.transport-item img { width: 24px; height: 24px; flex-shrink: 0; margin-top: 0; }
.transport-item img.transport-item__icon { margin-top: 2px; }
.transport-item span {
  font-size: 16px;
  line-height: 24px;
  color: var(--text-primary);
}
.transport-list { display: flex; flex-direction: column; gap: var(--sp-m); }
.transport-list .transport-item { margin-bottom: 0; }
.transport-item__icon { width: 24px; height: 24px; flex-shrink: 0; margin-top: 2px; }
.transport-item__title { font-size: 16px; line-height: 24px; color: var(--text-primary); }
.transport-item__desc { font-size: 14px; line-height: 20px; color: var(--text-secondary); }
.transport-item__desc span {
  font-size: inherit;
  line-height: inherit;
  color: inherit;
}
.transport-item__desc ul {
  list-style: disc;
  padding-left: 20px;
  margin-top: 4px;
}
.transport-item__desc li {
  margin-bottom: 2px;
  white-space: pre-line;
  line-height: 24px;
}

/* Things to know */
.things-cols { display: flex; gap: var(--sp-m); }
.things-col { flex: 1; min-width: 0; }
.things-col h4 {
  font-size: 14px;
  font-weight: 700;
  color: var(--text-secondary);
  text-transform: uppercase;
  letter-spacing: .05em;
  margin-bottom: var(--sp-s);
}
.rule-item {
  display: flex;
  align-items: flex-start;
  gap: var(--sp-xs);
  margin-bottom: var(--sp-s);
}
.rule-item:last-child { margin-bottom: 0; }
.rule-item img { width: 24px; height: 24px; flex-shrink: 0; }
.rule-item span { font-size: 16px; line-height: 24px; color: var(--text-primary); }
.things-col p {
  font-size: 16px;
  line-height: 24px;
  color: var(--text-primary);
  margin-bottom: var(--sp-s);
}
.things-col p:last-child { margin-bottom: 0; }

/* FAQ */
.faq-list {
  display: flex;
  flex-direction: column;
  gap: var(--sp-xs);
}
.faq-item {
  border: 1px solid var(--border);
  border-radius: var(--radius-s);
  background: #fff;
  padding: var(--sp-s);
}
.faq-item summary {
  cursor: pointer;
  font-size: 16px;
  font-weight: 600;
  line-height: 24px;
  color: var(--text-primary);
}
.faq-item p {
  margin-top: var(--sp-xs);
  font-size: 16px;
  line-height: 24px;
  color: var(--text-secondary);
}
.faq-item a {
  color: var(--brand);
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* Reviews */
.reviews-header {
  display: flex;
  align-items: center;
  gap: var(--sp-xs);
  margin-bottom: var(--sp-m);
}
.reviews-header img { width: 24px; height: 24px; }
.reviews-header h2 {
  font-family: var(--font-label);
  font-size: var(--label-l-size);
  font-weight: 600;
  line-height: var(--label-l-line-height);
  color: var(--text-primary);
}
.reviews-grid {
  display: flex;
  gap: var(--sp-m);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 4px; /* evita che le card vengano tagliate */
}
.reviews-grid::-webkit-scrollbar { display: none; }
.review-card {
  flex-shrink: 0;
  width: 340px;
  scroll-snap-align: start;
  background: var(--bg);
  border-radius: var(--radius-s);
  padding: var(--sp-m);
  display: flex;
  flex-direction: column;
  gap: var(--sp-s);
}
.review-card__header {
  display: flex;
  align-items: center;
  gap: var(--sp-s);
}
.review-card__avatar {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: var(--brand);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  font-weight: 600;
  color: #fff;
  flex-shrink: 0;
}
.review-card__name  { font-size: 16px; font-weight: 600; color: var(--text-primary); }
.review-card__date  { font-size: 14px; color: var(--text-secondary); }
.review-stars       { display: flex; gap: 4px; }
.review-stars img   { width: 16px; height: 16px; }
.review-card__text {
  font-size: 16px;
  line-height: 24px;
  color: var(--text-secondary);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ── STICKY BOOKING BAR (mobile-only — hidden on desktop) ── */
.booking-bar {
  display: none;
}

.booking-sheet-backdrop {
  display: none;
}

/* ── BOOKING SHEET CLOSE BUTTON (visible only on mobile) ── */
.booking-sheet__close {
  display: none;
}

/* ── LIGHTBOX ── */
.lightbox {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: block;
  background: var(--semantic-surface-inverse, #332e2c);
  color: var(--semantic-text-on-dark-primary, #f7f5f4);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s ease;
}
.lightbox[hidden] {
  display: none !important;
}
.lightbox.is-open {
  opacity: 1;
  pointer-events: auto;
}
.lightbox__overlay {
  position: absolute;
  inset: 0;
  background: var(--semantic-surface-inverse, #332e2c);
  cursor: pointer;
}
.lightbox__header {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: 3;
  height: 96px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 24px;
  pointer-events: none;
}
.lightbox__counter {
  font-family: var(--font-body, Inter, sans-serif);
  font-size: 16px;
  font-weight: 400;
  line-height: 24px;
  color: var(--semantic-text-on-dark-primary, #f7f5f4);
  white-space: nowrap;
}
.lightbox__close {
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 8px;
  background: transparent;
  border: 1px solid var(--semantic-border-on-dark, rgba(255, 255, 255, 0.1));
  color: var(--semantic-text-on-dark-primary, #f7f5f4);
  font-size: 0;
  cursor: pointer;
  border-radius: var(--radius-full, 100px);
  transition: background 0.16s ease, border-color 0.16s ease;
  flex-shrink: 0;
  pointer-events: none;
}
.lightbox__close:hover,
.lightbox__nav:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.2);
}
.lightbox__figure {
  position: absolute;
  inset: 112px 96px 64px;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 24px;
  margin: 0;
  pointer-events: none;
}
.lightbox__img-wrap {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: min(1036px, calc(100vw - 192px));
  aspect-ratio: 1036 / 640;
  max-height: min(640px, calc(100vh - 240px));
  overflow: hidden;
  background: transparent;
  border-radius: var(--radius-s, 10px);
  pointer-events: none;
}
.lightbox__img {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: inherit;
  object-fit: contain;
  transform: scale(0.88);
  opacity: 0;
  transition: transform 0.28s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.25s ease;
}
.lightbox.is-open .lightbox__img {
  transform: scale(1);
  opacity: 1;
}
.lightbox.is-open .lightbox__close,
.lightbox.is-open .lightbox__img-wrap {
  pointer-events: auto;
}
.lightbox__desc {
  max-width: min(1036px, calc(100vw - 192px));
  min-height: 24px;
  font-family: var(--font-body, Inter, sans-serif);
  font-size: 16px;
  font-weight: 400;
  line-height: 24px;
  color: var(--semantic-text-on-dark-primary, #f7f5f4);
  text-align: center;
  white-space: normal;
  pointer-events: none;
}
.lightbox__nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 3;
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 8px;
  background: transparent;
  border: 1px solid var(--semantic-border-on-dark, rgba(255, 255, 255, 0.1));
  color: var(--semantic-text-on-dark-primary, #f7f5f4);
  border-radius: var(--radius-full, 100px);
  cursor: pointer;
  transition: background 0.16s ease, border-color 0.16s ease, opacity 0.16s ease;
}
.lightbox__nav--prev { left: 24px; }
.lightbox__nav--next { right: 24px; }
.lightbox__icon {
  width: 24px;
  height: 24px;
  display: block;
  flex-shrink: 0;
  filter: brightness(0) invert(1);
  opacity: 0.95;
  pointer-events: none;
}

@media (max-width: 760px) {
  .lightbox {
    min-height: 100dvh;
  }

  .lightbox__header {
    height: 80px;
    padding: 16px;
  }

  .lightbox__figure {
    inset: 88px 0 56px;
    gap: 20px;
  }

  .lightbox__img-wrap {
    width: calc(100vw - 144px);
    min-width: 220px;
    max-width: 420px;
    max-height: calc(100vh - 248px);
    max-height: calc(100dvh - 248px);
    aspect-ratio: auto;
  }

  .lightbox__img {
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: calc(100vh - 248px);
    max-height: calc(100dvh - 248px);
  }

  .lightbox__desc {
    width: calc(100vw - 48px);
    max-width: calc(100vw - 48px);
    max-height: 96px;
    overflow-y: auto;
    padding: 0 8px;
  }

  .lightbox__nav--prev { left: 16px; }
  .lightbox__nav--next { right: 16px; }
}

@media (max-width: 380px) {
  .lightbox__img-wrap {
    width: calc(100vw - 120px);
    min-width: 0;
  }

  .lightbox__nav {
    width: 40px;
    height: 40px;
  }

  .lightbox__nav--prev { left: 12px; }
  .lightbox__nav--next { right: 12px; }
}
