/* Via Florence public-site theme.
 * Brand system: Cypress / Terracotta / Warm Ivory / Ink / Sage.
 * Loaded only when business_slug = via-florence.
 */
.via-florence-site{
  --brand:#183D35;
  --brand-dark:#102C26;
  --ink:#1C2524;
  --muted:#66746F;
  --line:#E4DDD4;
  --surface:#FFFDFC;
  --paper:#FBF7F0;
  --ok:#2F6B4F;
  background:var(--paper);
}
.via-florence-site .site-header{background:rgba(255,253,250,.97);border-bottom-color:#e8dfd5;backdrop-filter:saturate(130%) blur(8px)}
.via-florence-site .header-inner{height:auto;min-height:90px;gap:22px;padding-top:9px;padding-bottom:9px}
.via-florence-site .header-inner>.brand{flex:0 1 310px;min-width:0}
.via-florence-site .via-florence-brand-logo{display:block;width:304px;max-width:100%;height:auto}
.via-florence-site .header-nav a{color:#24322f}
.via-florence-site .header-nav a:hover{color:#C65F3A;text-decoration:none}
.via-florence-site .hero{padding-top:60px}
.via-florence-site .hero h1{font-size:clamp(2.15rem,5vw,3.65rem);letter-spacing:-.035em;color:#1C2524}
.via-florence-site .hero .lead{max-width:720px;color:#52605c}
.via-florence-site .eyebrow,
.via-florence-site .tour-card-meta .price,
.via-florence-site .it-time{color:#C65F3A}
.via-florence-site .btn-primary{background:#183D35;color:#fff;box-shadow:0 8px 20px rgba(24,61,53,.14)}
.via-florence-site .btn-primary:hover{background:#102C26}
.via-florence-site .btn-secondary:hover{border-color:#C65F3A;color:#A94B2E}
.via-florence-site .tour-card{border-color:#e8dfd5}
.via-florence-site .tour-card:hover{border-color:rgba(198,95,58,.42);box-shadow:0 12px 30px rgba(28,37,36,.09)}
.via-florence-site .why-band{background:#FFFDFC;border-color:#e8dfd5}
.via-florence-site .review{border-left-color:#C65F3A}
.via-florence-site .quote-band{background:#183D35}
.via-florence-site .quote-band .muted{color:#d9e2de}
.via-florence-site .site-footer{background:linear-gradient(180deg,#FFFDFC 0%,#F4EDE3 100%);border-top-color:#e4dbd0}
.via-florence-site .lead-form-field input:focus,
.via-florence-site .lead-form-field textarea:focus{border-color:#C65F3A;box-shadow:0 0 0 3px rgba(198,95,58,.15)}
.via-florence-site .lead-form-actions .cta-button-booking{background:#183D35;box-shadow:0 8px 18px rgba(24,61,53,.18)}
.via-florence-site .lead-form-actions .cta-button-booking:hover{background:#102C26}

/* Direct-booking offer: visually valuable but quieter than the primary CTA.
 * The code is copyable; the marketplace line is trust proof, not a competing
 * outbound action. */
.via-florence-site .promo{background:#183D35}
.via-florence-site .direct-booking-offer{border-color:#cfd9d3;background:#F3F7F4}
.via-florence-site .direct-booking-offer-label{color:#A94B2E}
.via-florence-site .direct-booking-offer-proof{color:#52605c;border-top-color:#dbe4df}
.via-florence-site .promo-code--light{border-color:#b9c9c1;color:#183D35}
.via-florence-site .promo-code--light:hover{border-color:#183D35;color:#102C26}

/* Booking decision zone: the screenshot exposed a large empty desktop area
 * beside Bokun. Use that space for verified reassurance instead of decoration. */
.via-florence-site .book{
  margin-top:38px;
  padding:22px 24px 26px;
  border:1px solid #e4dbd0;
  border-radius:18px;
  background:#FFFDFC;
  box-shadow:0 12px 34px rgba(28,37,36,.045);
}
.via-florence-site .booking-section-heading{
  padding-bottom:15px;
  border-bottom:1px solid #ece4da;
}
.via-florence-site .booking-section-heading h2{font-size:1.45rem;color:#1C2524}
.via-florence-site .booking-section-heading .muted{color:#5f6d68}
.via-florence-site .promo-code--booking{
  border-color:#9fb5aa;
  box-shadow:0 4px 12px rgba(24,61,53,.06);
}
.via-florence-site .booking-decision-grid--with-benefits{
  max-width:900px;
  margin:0 auto;
}
.via-florence-site .booking-calendar-panel{
  padding:4px 0 0;
}
.via-florence-site .booking-confidence-card{
  border-color:#cfd9d3;
  background:#F3F7F4;
  box-shadow:none;
}
.via-florence-site .booking-confidence-card .direct-booking-offer-label{color:#A94B2E}
.via-florence-site .booking-marketplace-proof{border-top-color:#dbe4df}
.via-florence-site .booking-marketplace-proof-title{color:#52605c}
.via-florence-site .booking-confidence-help{border-top-color:#dbe4df}
.via-florence-site .booking-marketplace-link{font-size:.78rem;font-weight:700;white-space:nowrap;margin-left:3px}
@media(min-width:900px){
  .via-florence-site .booking-confidence-card{position:sticky;top:112px}
}
@media(max-width:620px){
  .via-florence-site .book{padding:16px 14px 18px;border-radius:14px}
  .via-florence-site .booking-section-heading{padding-bottom:12px}
  .via-florence-site .booking-section-heading h2{font-size:1.3rem}
}

/* Brand continuity copy is rendered as real HTML by the shared templates so
 * it remains available to screen readers, reader modes and text extraction. */
.via-florence-site .legacy-brand-note{
  display:block;
  margin-top:5px;
  color:#66746F;
  font-size:.82rem;
  font-weight:500;
  line-height:1.35;
}
.via-florence-site .review-panel .legacy-brand-note{margin-top:8px}

/* Keep operator trust visible beside the price without letting the legacy-name
 * explanation dominate the booking card. The link remains one accessible
 * TripAdvisor trust target, but reads as a compact proof strip. */
.via-florence-site .price-card>.muted{font-size:.9rem;line-height:1.45}
.via-florence-site .price-card-inclusions{
  margin:10px 0 12px;
  padding:11px 12px;
  border:1px solid #dbe4df;
  border-radius:10px;
  background:#F3F7F4;
  color:#24322f;
  font-size:.86rem;
  line-height:1.4;
}
.via-florence-site .price-card-inclusions>strong{display:block;margin-bottom:5px;color:#183D35}
.via-florence-site .price-card-inclusions ul{display:grid;gap:3px;margin:0;padding:0;list-style:none}
.via-florence-site .price-card-inclusions li::before{content:'✓';margin-right:7px;color:#2F6B4F;font-weight:800}
.via-florence-site .price-card-trust{
  display:grid;
  grid-template-columns:auto auto minmax(0,1fr);
  align-items:baseline;
  column-gap:7px;
  row-gap:2px;
  margin:10px 0 12px;
  padding:9px 0;
  border:0;
  border-top:1px solid #e8dfd5;
  border-bottom:1px solid #e8dfd5;
  border-radius:0;
  background:transparent;
  font-size:.86rem;
}
.via-florence-site .price-card-trust:hover{background:transparent;border-color:#d8cbbd}
.via-florence-site .price-card-trust>.muted{line-height:1.25}
.via-florence-site .price-card-trust .legacy-brand-note{font-size:.72rem;margin-top:2px;line-height:1.25}

.via-florence-site #tours,
.via-florence-site #reviews,
.via-florence-site #quote,
.via-florence-site #lead-form,
.via-florence-site .book{scroll-margin-top:112px}
.via-florence-site .sticky-cta.booking-in-view{visibility:hidden;pointer-events:none}
@media(min-width:900px){.via-florence-site .tour-aside{top:112px}}

/* Mobile conversion flow: show the destination first, then the decision card,
 * then a compact swipeable gallery. `display:contents` lets the existing single
 * hero/gallery DOM participate in the parent grid, so we do not duplicate or
 * download the hero twice. Desktop keeps the established side-by-side layout. */
@media(max-width:899px){
  .via-florence-site .tour-grid{margin-top:16px;gap:0}
  .via-florence-site .tour-main{display:contents}
  .via-florence-site .tour-main>.tour-hero{order:-3}
  .via-florence-site .tour-aside{order:-2;margin:0 0 18px}
  .via-florence-site .tour-main>.tour-gallery{
    order:-1;
    display:flex;
    gap:10px;
    overflow-x:auto;
    overscroll-behavior-inline:contain;
    scroll-snap-type:x proximity;
    scrollbar-width:thin;
    margin:0 0 22px;
    padding:0 0 4px;
  }
  .via-florence-site .tour-gallery-item{flex:0 0 min(64vw,220px);scroll-snap-align:start}
  .via-florence-site .tour-gallery-item img{height:140px}
  .via-florence-site .price-card{padding:16px;border-color:#ddd3c7;box-shadow:0 8px 24px rgba(28,37,36,.08)}
  .via-florence-site .price-card-inclusions{margin:8px 0 10px;padding:9px 10px}
  .via-florence-site .booking-support{margin-top:10px;padding-top:10px;gap:4px}
  .via-florence-site .booking-support>.muted{display:none}
  .via-florence-site .booking-support .btn{padding-top:10px;padding-bottom:10px}
  .via-florence-site .sticky-cta{gap:10px;padding-top:9px;padding-bottom:calc(9px + env(safe-area-inset-bottom,0px));box-shadow:0 -6px 22px rgba(28,37,36,.11)}
  .via-florence-site .sticky-cta>span{display:grid;gap:2px;min-width:0;line-height:1.15}
  .via-florence-site .sticky-cta>span>strong{font-size:1rem;color:#1C2524}
  .via-florence-site .sticky-cta-rating{display:block;color:#8A5B00;font-size:.78rem;font-weight:700;white-space:nowrap}
  .via-florence-site .sticky-cta-source{color:#66746F;font-weight:600}
  .via-florence-site .sticky-cta .btn{min-height:44px;padding:10px 16px;white-space:nowrap;box-shadow:none}
}
/* At phone widths the price label can itself be "Check dates & prices" for
 * tours without a safe public price. Stack the control instead of allowing
 * two non-wrapping copies to collide; this also survives browser text zoom. */
@media(max-width:390px){
  .via-florence-site .sticky-cta{display:grid;grid-template-columns:1fr;padding-left:12px;padding-right:12px;gap:7px}
  .via-florence-site .sticky-cta>span>strong{font-size:.92rem;white-space:normal;overflow-wrap:anywhere}
  .via-florence-site .sticky-cta .btn{width:100%;padding-left:13px;padding-right:13px;font-size:.92rem;white-space:normal;line-height:1.2}
}

@media(max-width:760px){
  .via-florence-site .header-inner{display:block;min-height:0;padding-top:10px;padding-bottom:10px}
  .via-florence-site .header-inner>.brand{display:block;width:min(280px,88vw)}
  .via-florence-site .via-florence-brand-logo{width:280px}
  .via-florence-site .header-nav{justify-content:flex-start;margin-top:8px;gap:14px;overflow-x:auto;padding-bottom:2px}
  .via-florence-site .hero{padding-top:42px}
}
