/* Sri Lakshmi Holidays: scoped styles for the supplied 9-seater page only. */
.tempo-page{
  --tempo-blue:var(--maincolor,#0152a0);
  --tempo-ink:#162b41;
  --tempo-border:#e7ecf4;
  --tempo-pale:#f3f8fd;
  color:#40566d
}
.tempo-page,.tempo-page *{
  box-sizing:border-box
}
.tempo-page p{
  line-height:1.74
}
.tempo-page a:focus-visible,.tempo-lightbox button:focus-visible{
  outline:3px solid #ff9f43;
  outline-offset:3px
}
.tempo-page-title{
  height:150px
}
.tempo-page-title .breadcrumb{
  gap:4px
}
.tempo-hero-section{
  background:linear-gradient(140deg,#f0f7ff 0%,#fff 70%);
  padding:62px 0 66px
}
.tempo-hero{
  display:grid;
  grid-template-columns:1.14fr .86fr;
  align-items:center;
  gap:40px
}
.tempo-hero-label,.tempo-kicker{
  font-size:12px;
  font-weight:800;
  letter-spacing:.11em;
  text-transform:uppercase;
  color:var(--tempo-blue);
  margin-bottom:12px
}
.tempo-hero h1{
  font-size:clamp(31px,3.6vw,51px);
  line-height:1.15;
  letter-spacing:-.035em;
  color:var(--tempo-ink);
  margin:0 0 16px;
  font-weight:800
}
.tempo-hero-lead{
  font-weight:700;
  color:#233d58;
  font-size:20px;
  margin-bottom:13px
}
.tempo-hero-copy>p:not(.tempo-hero-label):not(.tempo-hero-lead){
  font-size:15px
}
.tempo-hero-highlights{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin:20px 0 15px
}
.tempo-hero-highlights span{
  display:inline-flex;
  align-items:center;
  background:#fff;
  color:#1d527e;
  border:1px solid #cee1f3;
  border-radius:999px;
  padding:7px 12px;
  font-weight:700;
  font-size:12px
}
.tempo-hero .tempo-experience{
  font-size:13px!important;
  font-weight:700;
  color:#3c6079;
  margin:12px 0 23px
}
.tempo-hero-buttons{
  display:flex;
  flex-wrap:wrap;
  gap:10px
}
.tempo-page .btn{
  border-radius:9px;
  padding:12px 19px;
  font-weight:750;
  line-height:1.3
}
.tempo-btn-whatsapp{
  background:#0e9c67!important;
  color:#fff!important;
  border:1px solid #0e9c67!important
}
.tempo-btn-whatsapp:hover{
  background:#0a8559!important
}
.tempo-hero-visual-frame{
  border-radius:26px;
  background:white;
  box-shadow:0 22px 75px rgba(1,46,98,.13);
  padding:22px 22px 34px;
  position:relative;
  border:1px solid #e4edf7
}
.tempo-hero-visual img{
  display:block;
  width:100%;
  height:auto;
  max-height:365px;
  object-fit:contain
}
.tempo-hero-price{
  position:absolute;
  bottom:-27px;
  left:6%;
  right:6%;
  background:#fff;
  box-shadow:0 10px 40px rgba(16,58,101,.14);
  border:1px solid #e2ebf6;
  border-radius:14px;
  display:flex;
  align-items:center;
  justify-content:space-around;
  gap:10px;
  flex-wrap:wrap;
  padding:16px;
  text-align:center;
  font-size:13px
}
.tempo-hero-price strong{
  font-size:23px;
  color:var(--tempo-blue)
}
.tempo-hero-price span{
  color:#4e667b;
  font-weight:700
}
.tempo-section-nav{
  background:#fff;
  border-bottom:1px solid #e6edf5;
  border-top:1px solid #eff3f8
}
.tempo-section-nav-inner{
  display:flex;
  gap:8px;
  overflow-x:auto;
  scrollbar-width:thin;
  padding:12px 0
}
.tempo-section-nav-inner a{
  white-space:nowrap;
  padding:8px 14px;
  border-radius:999px;
  font-weight:750;
  font-size:13px;
  color:#294c6a;
  background:#f3f7fb
}
.tempo-section-nav-inner a:hover{
  color:var(--tempo-blue);
  background:#e4f0fd
}
.tempo-body{
  padding:53px 0 48px
}
.tempo-panel{
  border:1px solid #e8edf4!important;
  box-shadow:0 9px 35px rgba(31,58,88,.035);
  border-radius:14px!important;
  margin-bottom:22px!important;
  scroll-margin-top:106px
}
.tempo-panel.style-2 .block-body{
  padding:27px 30px 31px!important
}
.tempo-panel h2.tempo-heading{
  font-size:clamp(21px,2.2vw,27px);
  font-weight:800;
  line-height:1.29;
  color:#172f46;
  margin:0 0 12px
}
.tempo-panel h3{
  font-size:18px;
  font-weight:760;
  color:#1c3c5b;
  margin:26px 0 13px;
  line-height:1.4
}
.tempo-panel .tempo-info-card h3,.tempo-panel .tempo-destination h3{
  font-size:16px;
  margin:0 0 9px
}
.tempo-panel p{
  font-size:14.5px;
  margin:0 0 14px
}
.tempo-panel .tempo-subheading{
  color:#446785;
  font-size:15.5px;
  font-weight:680;
  margin:0 0 17px
}
.tempo-page .tempo-table-wrap{
  border-radius:10px;
  border:1px solid var(--tempo-border);
  overflow:auto;
  margin:14px 0 18px
}
.tempo-page .tempo-table{
  margin-bottom:0;
  color:#40566d;
  font-size:14px;
  border:0
}
.tempo-table th,.tempo-table td{
  padding:11px 14px!important;
  border-color:#e7edf4!important;
  vertical-align:middle
}
.tempo-table thead th{
  background:#ebf4ff;
  color:#153e65;
  font-weight:750
}
.tempo-table tbody th{
  font-weight:700;
  color:#334b63;
  width:54%;
  background:#fbfdff
}
.tempo-table tbody tr:nth-child(even) td{
  background:#fcfdff
}
.tempo-note{
  border-left:3px solid var(--tempo-blue);
  background:var(--tempo-pale);
  padding:12px 14px;
  border-radius:0 8px 8px 0;
  font-size:13.5px!important
}
.tempo-action{
  display:inline-block;
  margin:6px 18px 3px 0!important
}
.tempo-text-link{
  font-weight:750;
  color:var(--tempo-blue)!important;
  font-size:14px
}
.tempo-text-link:hover{
  text-decoration:underline
}
.tempo-card-grid,.tempo-destination-grid,.tempo-gallery-grid,.tempo-explore-grid,.tempo-estimate-grid{
  display:grid;
  gap:13px
}
.tempo-grid-three{
  grid-template-columns:repeat(3,minmax(0,1fr))
}
.tempo-grid-two{
  grid-template-columns:repeat(2,minmax(0,1fr))
}
.tempo-info-card{
  background:#f7faff;
  padding:19px 18px;
  border:1px solid #e6eff8;
  border-radius:12px;
  min-width:0
}
.tempo-info-icon{
  font-size:23px;
  display:flex;
  align-items:center;
  justify-content:center;
  width:43px;
  height:43px;
  border-radius:10px;
  background:#e0efff;
  color:#115a9c;
  font-weight:800;
  margin-bottom:12px
}
.tempo-info-card p{
  margin:0;
  font-size:13.5px
}
.tempo-check-list{
  padding:0;
  margin:15px 0 18px;
  list-style:none;
  display:grid;
  gap:10px
}
.tempo-check-list li{
  padding-left:27px;
  position:relative;
  font-size:14px;
  line-height:1.55
}
.tempo-check-list li:before{
  content:'✓';
  position:absolute;
  left:0;
  top:0;
  color:#13835a;
  font-weight:900
}
.tempo-two-col{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:20px;
  margin-top:10px
}
.tempo-two-col>div{
  border:1px solid #e6edf6;
  padding:19px;
  border-radius:12px;
  background:#fbfdff
}
.tempo-two-col h3{
  margin-top:0
}
.tempo-estimate-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px
}
.tempo-estimate-card{
  min-width:0;
  border:1px solid #dce9f8;
  background:#f8fbff;
  border-radius:12px;
  padding:12px
}
.tempo-estimate-card h3{
  font-size:15px;
  margin:5px 0 7px
}
.tempo-estimate-card>p{
  font-size:12.5px
}
.tempo-estimate-card .tempo-table{
  font-size:12px
}
.tempo-estimate-card .tempo-table td,.tempo-estimate-card .tempo-table th{
  padding:7px!important
}
.tempo-estimate-card .tempo-table tbody th{
  width:58%
}
.tempo-estimate-card .tempo-table-wrap{
  margin-bottom:0
}
.tempo-destination-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px
}
.tempo-destination{
  border:1px solid #e0e9f3;
  background:#fff;
  border-radius:12px;
  overflow:hidden;
  min-width:0
}
.tempo-destination img{
  display:block;
  width:100%;
  height:155px;
  object-fit:cover
}
.tempo-destination__body{
  padding:15px 16px 17px
}
.tempo-destination__body p{
  font-size:13px
}
.tempo-destination__body .tempo-distance{
  font-size:12.5px;
  font-weight:750;
  color:#0f5b98;
  margin-bottom:12px
}
.tempo-gallery-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin-bottom:16px
}
.tempo-gallery-item{
  display:flex;
  flex-direction:column;
  border:1px solid #e2eaf5;
  border-radius:11px;
  overflow:hidden;
  color:#354c63!important;
  text-decoration:none!important;
  background:#fff
}
.tempo-gallery-item img{
  width:100%;
  height:128px;
  object-fit:cover;
  transition:transform .18s ease
}
.tempo-gallery-item:hover img{
  transform:scale(1.035)
}
.tempo-gallery-item strong{
  font-size:13px;
  color:#173d61;
  padding:10px 11px 0
}
.tempo-gallery-item span{
  font-size:12px;
  padding:3px 11px 11px;
  line-height:1.5
}
.tempo-location-pills{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:15px 0 23px
}
.tempo-location-pill{
  padding:9px 12px;
  border:1px solid #dce8f5;
  border-radius:9px;
  background:#f8fbff;
  font-size:13px;
  font-weight:650;
  color:#2c526f
}
.tempo-location-pill:before{
  content:'⌖';
  color:#1769b1;
  margin-right:8px
}
.tempo-contact-card{
  padding:20px;
  background:#f2f7ff;
  border:1px solid #deebfa;
  border-radius:12px;
  margin:18px 0 0
}
.tempo-contact-card h3{
  margin-top:0
}
.tempo-booking-steps{
  list-style:none;
  padding:0;
  margin:15px 0 22px
}
.tempo-booking-steps li{
  display:flex;
  gap:15px;
  position:relative;
  margin:0;
  padding-bottom:20px
}
.tempo-booking-steps li:not(:last-child):before{
  content:'';
  position:absolute;
  left:20px;
  top:42px;
  bottom:0;
  border-left:2px dashed #c5dcee
}
.tempo-step-num{
  display:flex;
  align-items:center;
  justify-content:center;
  flex:0 0 42px;
  height:42px;
  border-radius:50%;
  background:#005aa5;
  color:white;
  font-weight:800
}
.tempo-booking-steps h3{
  margin:5px 0 6px;
  font-size:16px
}
.tempo-booking-steps p{
  margin:0
}
.tempo-checklist-grid{
  padding:0;
  list-style:none;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px
}
.tempo-checklist-grid li{
  border-radius:10px;
  border:1px solid #e2edf7;
  background:#fbfdff;
  padding:13px 15px;
  font-size:13.7px;
  line-height:1.55
}
.tempo-checklist-grid li:before{
  content:'✓';
  color:#19865e;
  font-weight:800;
  margin-right:8px
}
.tempo-faqs{
  border:1px solid #e3edf8;
  border-radius:12px;
  overflow:hidden
}
.tempo-faq-item{
  border-bottom:1px solid #e3edf8
}
.tempo-faq-item:last-child{
  border-bottom:0
}
.tempo-faq-item summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  list-style:none;
  cursor:pointer;
  padding:17px 19px;
  color:#233c56;
  background:#fff;
  font-size:14.5px;
  font-weight:700
}
.tempo-faq-item summary::-webkit-details-marker{
  display:none
}
.tempo-faq-item[open] summary{
  background:#eff7ff;
  color:#0c5795
}
.tempo-faq-toggle{
  font-size:22px;
  color:#1d68a5
}
.tempo-faq-item[open] .tempo-faq-toggle{
  transform:rotate(45deg)
}
.tempo-faq-answer{
  padding:14px 19px 16px;
  background:#fff
}
.tempo-faq-answer p{
  margin:0
}
.tempo-booking-column{
  align-self:stretch
}
.tempo-booking-aside{
  position:sticky;
  top:110px;
  background:#fff;
  border:1px solid #e3eaf4;
  border-radius:14px;
  box-shadow:0 11px 33px rgba(8,44,85,.08);
  padding:20px;
  scroll-margin-top:96px
}
.tempo-sidebar-lead{
  margin-bottom:15px
}
.tempo-sidebar-lead h2{
  font-size:23px;
  font-weight:800;
  color:#1b3b59;
  margin:2px 0 6px
}
.tempo-sidebar-lead p{
  margin:4px 0;
  font-size:13px
}
.tempo-sidebar-price{
  font-size:12px;
  margin-top:10px;
  padding:12px;
  background:#f0f7ff;
  border-radius:9px;
  color:#375c78
}
.tempo-sidebar-price strong{
  color:#0b5696;
  font-size:16px
}
.tempo-sidebar-price span{
  padding:0 5px
}
.tempo-booking-aside .details-sidebar{
  margin-top:15px
}
.tempo-sidebar-contacts{
  display:grid;
  gap:10px;
  margin:18px 0
}
.tempo-sidebar-contacts .btn{
  font-size:13px;
  padding:11px 9px
}
.tempo-aside-footnote{
  font-size:12px;
  line-height:1.5;
  color:#667d91;
  margin:0
}
.tempo-reviews-section{
  scroll-margin-top:90px
}
.tempo-closing-section{
  background:#083d70;
  color:#fff;
  padding:65px 0
}
.tempo-closing{
  display:grid;
  grid-template-columns:1fr auto;
  gap:30px;
  align-items:center
}
.tempo-closing .tempo-kicker{
  color:#add5ff
}
.tempo-closing h2{
  color:#fff;
  font-size:clamp(25px,3vw,37px);
  font-weight:800;
  line-height:1.2
}
.tempo-closing p{
  color:#e3f0fc
}
.tempo-closing-actions{
  display:flex;
  flex-direction:column;
  gap:11px;
  min-width:220px
}
.tempo-closing-actions .btn{
  white-space:nowrap
}
.tempo-closing-actions .btn-outline-primary{
  border-color:#fff;
  color:#fff
}
.tempo-closing-actions .btn-outline-primary:hover{
  background:white;
  color:#053f77
}
.tempo-explore-section{
  padding:65px 0;
  background:#f6f9fd
}
.tempo-explore-section h2{
  font-size:28px;
  font-weight:800;
  margin:0 0 20px;
  color:#183650
}
.tempo-explore-grid{
  grid-template-columns:repeat(3,minmax(0,1fr))
}
.tempo-explore-grid a{
  display:flex;
  flex-direction:column;
  gap:7px;
  padding:18px;
  background:#fff;
  border:1px solid #e2eaf3;
  border-radius:11px
}
.tempo-explore-grid a strong{
  font-size:14px;
  color:#0f5b97
}
.tempo-explore-grid a span{
  font-size:13px;
  color:#526a81;
  line-height:1.5
}
.tempo-explore-address{
  font-size:13px;
  margin:25px 0 0
}
.tempo-fleet-section{
  padding:45px 0
}
.tempo-mobile-cta{
  display:none
}
.tempo-lightbox{
  position:fixed;
  z-index:100100;
  inset:0;
  background:rgba(3,20,40,.94);
  align-items:center;
  justify-content:center;
  flex-direction:column;
  padding:50px 20px 20px
}
.tempo-lightbox:not([hidden]){
  display:flex
}
.tempo-lightbox img{
  max-width:100%;
  max-height:77vh;
  object-fit:contain;
  border-radius:8px
}
.tempo-lightbox-close{
  position:absolute;
  top:14px;
  right:20px;
  background:transparent;
  border:0;
  color:white;
  font-size:38px;
  cursor:pointer
}
.tempo-lightbox-caption{
  color:white;
  text-align:center;
  margin:14px 0;
  font-size:14px
}
@media(max-width:1199px){
  .tempo-estimate-grid{
    grid-template-columns:1fr
  }
  .tempo-estimate-card .tempo-table{
    font-size:13.5px
  }
  .tempo-estimate-card .tempo-table td,.tempo-estimate-card .tempo-table th{
    padding:9px 12px!important
  }
  .tempo-hero{
    gap:22px
  }
}
@media(max-width:991px){
  .tempo-hero{
    grid-template-columns:1fr
  }
  .tempo-hero-visual{
    max-width:640px;
    width:100%;
    margin:20px auto 0
  }
  .tempo-booking-column{
    order:-1
  }
  .tempo-booking-aside{
    position:static
  }
  .tempo-booking-aside .details-sidebar{
    max-width:680px;
    margin:auto
  }
  .tempo-body{
    padding-top:35px
  }
  .tempo-grid-three{
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .tempo-closing{
    grid-template-columns:1fr
  }
  .tempo-closing-actions{
    flex-direction:row;
    flex-wrap:wrap
  }
  .tempo-explore-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
}
@media(max-width:575px){
  .tempo-page-title{
    height:auto;
    padding:22px 0
  }
  .tempo-page-title .ipt-title{
    font-size:18px
  }
  .tempo-hero-section{
    padding:37px 0 53px
  }
  .tempo-hero h1{
    font-size:32px
  }
  .tempo-hero-lead{
    font-size:18px
  }
  .tempo-hero-buttons{
    display:grid;
    grid-template-columns:1fr 1fr
  }
  .tempo-hero-buttons .btn{
    font-size:12px;
    padding:11px 9px
  }
  .tempo-hero-price{
    position:relative;
    bottom:auto;
    left:auto;
    right:auto;
    box-shadow:none;
    margin-top:10px;
    padding:10px 5px
  }
  .tempo-hero-visual-frame{
    padding:14px
  }
  .tempo-panel.style-2 .block-body{
    padding:19px 17px 23px!important
  }
  .tempo-panel h2.tempo-heading{
    font-size:21px
  }
  .tempo-grid-three,.tempo-grid-two,.tempo-destination-grid,.tempo-gallery-grid,.tempo-checklist-grid,.tempo-two-col,.tempo-explore-grid{
    grid-template-columns:1fr
  }
  .tempo-gallery-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .tempo-gallery-item img{
    height:118px
  }
  .tempo-check-list li{
    font-size:13.5px
  }
  .tempo-page .tempo-table{
    font-size:12.5px
  }
  .tempo-table th,.tempo-table td{
    padding:9px!important
  }
  .tempo-closing-section{
    padding:43px 0 76px
  }
  .tempo-closing-actions{
    display:grid
  }
  .tempo-explore-section{
    padding:42px 0 70px
  }
  .tempo-mobile-cta{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:7px;
    position:fixed;
    bottom:0;
    left:0;
    right:0;
    z-index:998;
    background:#fff;
    box-shadow:0 -4px 20px rgba(0,20,40,.17);
    padding:9px max(12px,env(safe-area-inset-right)) calc(9px + env(safe-area-inset-bottom))
  }
  .tempo-mobile-cta a{
    border-radius:9px;
    padding:12px;
    text-align:center;
    color:#fff;
    font-weight:800;
    background:#0152a0
  }
  .tempo-mobile-cta a:last-child{
    background:#0e9c67
  }
  .tempo-gallery-item strong{
    font-size:12px
  }
  .tempo-gallery-item span{
    font-size:11px
  }
}
@media(prefers-reduced-motion:reduce){
  .tempo-gallery-item img{
    transition:none
  }
}


/* ============================================================
   STICKY RIGHT-SIDE BOOKING FORM - Desktop Only
   ------------------------------------------------------------
   The site's main stylesheet sets overflow-x:hidden on html/body.
   Using clip instead prevents a competing scroll container that
   can stop position:sticky from following the page scroll.
   These selectors apply ONLY to this 9 Seater page.
   ============================================================ */
.tempo-detail-html,
body.tempo-detail-body {
  overflow-x: clip !important;
}

@media (min-width: 992px) {
  /* None of the sticky element's ancestors should intercept scrolling. */
  .tempo-detail-body #main-wrapper,
  .tempo-detail-body .tempo-page,
  .tempo-detail-body .tempo-body,
  .tempo-detail-body .tempo-body > .container,
  .tempo-detail-body .tempo-body > .container > .row,
  .tempo-detail-body .tempo-sticky-column {
    overflow: visible !important;
  }

  .tempo-detail-body .tempo-sticky-column {
    align-self: stretch;
    position: relative;
    min-width: 0;
  }

  .tempo-detail-body .tempo-sticky-booking {
    --tempo-sidebar-top: 100px; /* adjust if your fixed header is taller */
    position: -webkit-sticky;
    position: sticky !important;
    top: var(--tempo-sidebar-top);
    z-index: 10;
    /* Keep the entire form usable on shorter laptop screens. */
    max-height: calc(100vh - var(--tempo-sidebar-top) - 16px);
    max-height: calc(100dvh - var(--tempo-sidebar-top) - 16px);
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior-y: contain;
    scrollbar-width: thin;
    scrollbar-color: #bdd4e9 #f4f8fc;
  }

  .tempo-detail-body .tempo-sticky-booking::-webkit-scrollbar {
    width: 6px;
  }
  .tempo-detail-body .tempo-sticky-booking::-webkit-scrollbar-track {
    background: #f4f8fc;
    border-radius: 6px;
  }
  .tempo-detail-body .tempo-sticky-booking::-webkit-scrollbar-thumb {
    background: #bdd4e9;
    border-radius: 6px;
  }

  /* The site's standard booking widget is itself sticky. Disable the
     nested sticky rule so the whole right column moves together. */
  .tempo-detail-body .tempo-sticky-booking .sides-widget {
    position: static;
    top: auto;
  }
}

@media (max-width: 991.98px) {
  .tempo-detail-body .tempo-sticky-booking {
    position: static !important;
    top: auto;
    max-height: none;
    overflow: visible;
  }
}
