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

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

/* Hero – home specifico */
.hero {
  height: 704px;
  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:hover { text-decoration: underline; }
.hero__cta {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--brand);
  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: opacity .2s;
}
.hero__cta:hover { opacity: .88; }

/* ── PAGE LAYOUT ── */
.page-wrapper {
  max-width: 1440px;
  margin: 0 auto;
}
.content-row {
  display: flex;
  align-items: stretch;
  gap: var(--sp-l);
  padding: 0 80px;
  max-width: 1440px;
  margin: 0 auto;
}
.main-col { flex: 1 1 680px; min-width: 0; }
.side-col  { flex: 0 0 380px; min-width: 0; padding-top: 48px; position: sticky; top: calc(var(--navbar-height) + 24px); align-self: flex-start; }

/* ── RENTALWISE BOOKING CARD ── */
:root {
  --rw-surface: #ffffff;
  --rw-text-primary: #332e2c;
  --rw-text-secondary: #7d706c;
  --rw-border: #e8e4e2;
  --rw-accent: #844f49;
  --rw-accent-hover: #6f423f;
  --rw-radius-lg: 24px;
  --rw-radius-md: 12px;
  --rw-shadow: 0 4px 24px rgba(0, 0, 0, 0.1);
}

.rw-booking-card {
  position: sticky;
  top: calc(var(--navbar-height) + 24px);
  box-sizing: border-box;
  max-width: 462px;
  padding: 24px;
  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);
}

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

.rw-booking-card__intro {
  margin-bottom: 24px;
}

.rw-booking-card__title {
  margin: 0 0 4px;
  font-family: var(--font-label);
  font-size: 28px;
  font-weight: 600;
  line-height: 36px;
  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: 24px;
}

.rw-booking-card rw-widget {
  display: flex;
  flex-direction: column;
  gap: 24px;
  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: 4px;
  position: relative;
  align-items: stretch;
}

.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: 12px;
  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: 4px;
  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%;
  min-height: 48px;
  margin: 0;
  padding: 12px 44px 12px 12px;
  border: 1px solid var(--rw-border);
  border-radius: 12px;
  background-color: #fff;
  background-repeat: no-repeat;
  background-position: right 14px center;
  background-size: 20px 20px;
  box-shadow: none;
  color: var(--rw-text-primary);
  font-size: 16px;
  line-height: 24px;
}

.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 44px 12px 12px;
  border: 1px solid var(--rw-border) !important;
  border-radius: 12px !important;
  background-color: #fff;
  background-repeat: no-repeat;
  background-position: right 14px 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-primary);
  font-size: 16px;
  font-weight: 400;
  line-height: 24px;
  text-align: left;
  cursor: pointer;
  box-sizing: border-box;
  overflow: hidden;
  vertical-align: top;
}

.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: 12px;
  background: var(--rw-accent);
  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(--rw-accent-hover);
}

/* 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: 24px;
  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;
  padding: 3px 0;
}

.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;
  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: 16px;
  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: 10px;
  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 {
  padding: var(--sp-l) var(--sp-m);
  border-bottom: 1px solid var(--border);
}
.section:last-child { border-bottom: none; }
.section__title {
  font-family: var(--font-label);
  font-size: 28px;
  font-weight: 600;
  line-height: 36px;
  color: var(--text-primary);
  margin-bottom: var(--sp-m);
}

/* Heading section */
.heading-section {
  padding: var(--sp-l) var(--sp-m);
  border-bottom: 1px solid var(--border);
}
.heading-section__title {
  font-family: var(--font-label);
  font-size: 36px;
  font-weight: 600;
  line-height: 42px;
  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 {
  padding: var(--sp-l) var(--sp-m);
  border-bottom: 1px solid var(--border);
}
.text-block p {
  font-size: 16px;
  line-height: 24px;
  color: var(--text-primary);
  margin-bottom: 12px;
}
.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);
}

/* 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);
}
.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: 12px;
  overflow-x: auto;
  scrollbar-width: none;
}
.gallery-row::-webkit-scrollbar { display: none; }
.gallery-img {
  flex-shrink: 0;
  width: 356px;
  height: 220px;
  border-radius: var(--radius-s);
  overflow: hidden;
  background: var(--bg);
}
.gallery-img img { width: 100%; height: 100%; object-fit: cover; }

/* 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: 600;
  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 span {
  font-size: 16px;
  line-height: 24px;
  color: var(--text-primary);
}
.transport-list { display: flex; flex-direction: column; gap: var(--sp-m); }
.transport-row {
  display: flex;
  align-items: flex-start;
  gap: var(--sp-xs);
}
.transport-row img { width: 24px; height: 24px; flex-shrink: 0; margin-top: 2px; }
.transport-row__text .title { font-size: 16px; line-height: 24px; color: var(--text-primary); }
.transport-row__text .sub { font-size: 14px; line-height: 20px; color: var(--text-secondary); }

/* 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: 600;
  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; }

/* 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: 28px;
  font-weight: 600;
  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 CLOSE BUTTON (visible only on mobile) ── */
.booking-sheet__close {
  display: none;
}

/* ── LIGHTBOX ── */
.lightbox {
  position: fixed;
  inset: 0;
  z-index: 600;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s ease;
}
.lightbox.is-open {
  opacity: 1;
  pointer-events: auto;
}
.lightbox__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.92);
  cursor: pointer;
}
.lightbox__bar {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: var(--sp-s);
  padding: 16px var(--sp-m);
  color: #fff;
}
.lightbox__counter {
  font-size: 14px;
  opacity: 0.7;
  min-width: 48px;
}
.lightbox__desc {
  flex: 1;
  font-size: 15px;
  font-weight: 500;
  opacity: 0.9;
  text-align: center;
}
.lightbox__close {
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: none;
  color: #fff;
  font-size: 22px;
  cursor: pointer;
  border-radius: 50%;
  transition: background 0.15s;
  flex-shrink: 0;
}
.lightbox__close:hover { background: rgba(255,255,255,0.12); }
.lightbox__img-wrap {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  max-width: calc(100vw - 120px);
  max-height: calc(100vh - 120px);
}
.lightbox__img {
  display: block;
  max-width: 100%;
  max-height: calc(100vh - 120px);
  border-radius: var(--radius-s);
  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__nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 1;
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,0.12);
  border: none;
  color: #fff;
  font-size: 22px;
  border-radius: 50%;
  cursor: pointer;
  transition: background 0.15s;
}
.lightbox__nav:hover { background: rgba(255,255,255,0.22); }
.lightbox__nav--prev { left: 20px; }
.lightbox__nav--next { right: 20px; }
