/* ============================================================
   TourlyTransfer - Homepage layout refresh (loaded after styles.css)
   Original design; scoped class prefix: .tt-
   Luminous Warm Luxury Edition: softened overlay & radiant amber
   ============================================================ */

/* ---------- Hero ---------- */
.tt-hero{position:relative;min-height:640px;display:flex;align-items:center;background:#111820 url("/assets/hero_bg.webp") center right/cover no-repeat!important}
.tt-hero::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(13,17,23,.72) 0%,rgba(13,17,23,.35) 45%,rgba(13,17,23,.05) 80%,rgba(13,17,23,.20) 100%)}
.tt-hero-container{position:relative;z-index:1;width:min(1200px,100%);margin:0 auto;padding:7rem 1.5rem 5rem;display:grid;grid-template-columns:1fr 460px;gap:3.5rem;align-items:center}
.tt-hero-content{color:#fff!important}
.tt-hero-eyebrow{display:none!important}
.tt-hero h1{font-family:var(--font-serif);font-size:clamp(2.4rem,4.5vw,3.6rem);line-height:1.12;font-weight:600;margin:0 0 1.1rem;color:#fff!important;text-shadow:0 2px 8px rgba(0,0,0,.5)}
.tt-hero h1 em{font-style:normal;color:#f3cf7a}
.tt-hero-lede{font-size:1.12rem;line-height:1.7;color:#f3efe6!important;max-width:34rem;margin:0 0 1.75rem;text-shadow:0 1px 3px rgba(0,0,0,.6)}
.tt-trust-strip{display:flex;flex-wrap:wrap;gap:.65rem 1.75rem;margin:0 0 2rem;padding:0;list-style:none}
.tt-trust-strip li{display:flex;align-items:center;gap:.55rem;font-size:.92rem;font-weight:600;color:#fff!important;text-shadow:0 1px 3px rgba(0,0,0,.7)}
.tt-trust-strip li::before{content:"";width:20px;height:20px;border-radius:50%;background-color:var(--accent-brass);flex:none;
 -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M9 16.17 4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z'/%3E%3C/svg%3E") center/contain no-repeat;
 mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M9 16.17 4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z'/%3E%3C/svg%3E") center/contain no-repeat}

/* ---------- Global Hidden Form Row Protection ---------- */
.booking-form .form-row[style*="display: none"],
.booking-form .form-row[style*="display:none"],
#route-row[style*="display: none"],
#route-row[style*="display:none"],
#hours-row[style*="display: none"],
#hours-row[style*="display:none"],
#address-row[style*="display: none"],
#address-row[style*="display:none"]{
  display:none!important;
}

/* ---------- Universal Form Group & Input Polish (Mobile & Desktop) ---------- */
#route-row .form-group,
#hours-row .form-group,
#address-row .form-group,
.booking-form .form-group{
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
  width:100%!important;
  min-width:0!important;
  padding:0!important;
  border:none!important;
  background:transparent!important;
  box-sizing:border-box!important;
  gap:2px!important;
}

#route-row,
#hours-row{
  grid-template-columns:1fr!important;
  width:100%!important;
}

.booking-widget input,
.booking-widget select,
#address-row input,
#route-row select,
#hours-row select,
#route-select,
#hours-input,
#pickup-addr,
#dropoff-addr,
#pickup-date,
#pickup-time,
#calc-pickup,
#calc-dropoff{
  color:#09090b!important;
  background-color:#fff!important;
  -webkit-text-fill-color:#09090b!important;
  opacity:1!important;
  border:1px solid #cbd5e1!important;
  border-radius:6px!important;
  box-sizing:border-box!important;
  width:100%!important;
  min-width:0!important;
}
.booking-widget input::placeholder,
#address-row input::placeholder{
  color:#94a3b8!important;
  -webkit-text-fill-color:#94a3b8!important;
}
.booking-widget label,
#address-row label,
#route-row label,
#hours-row label,
.booking-form label{
  color:#334155!important;
  font-weight:700!important;
  font-size:.65rem!important;
  text-transform:uppercase!important;
  letter-spacing:.04em!important;
  margin-bottom:2px!important;
  display:block!important;
  width:100%!important;
  text-align:left!important;
}

@media(min-width:769px) and (max-width:1020px){
 .tt-hero-container{grid-template-columns:1fr;padding:6rem 1.5rem 3.5rem}
 .booking-widget{max-width:480px;margin:0 auto}
}

/* ---------- Desktop Booking Widget Polish ---------- */
@media(min-width:769px){
 .booking-widget{background:#fff;border-radius:14px;box-shadow:0 24px 60px rgba(0,0,0,.35),0 0 0 1px rgba(255,255,255,.15);padding:1.5rem;box-sizing:border-box;width:100%;max-width:460px;overflow:hidden!important}
 .booking-form .form-row:not([style*="display: none"]):not([style*="display:none"]){display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.85rem;width:100%;box-sizing:border-box}
 #route-row:not([style*="display: none"]):not([style*="display:none"]),
 #hours-row:not([style*="display: none"]):not([style*="display:none"]){grid-template-columns:1fr!important}
 .booking-form .form-group{min-width:0!important;width:100%!important;box-sizing:border-box!important}
 .booking-form input,.booking-form select{min-width:0!important;width:100%!important;box-sizing:border-box!important;height:42px;padding:0 .75rem;font-size:.9rem}
 .booking-widget .booking-tabs{display:grid;grid-template-columns:repeat(3,1fr);background:var(--bg-warm-light);border:1px solid var(--border-color);border-radius:8px;padding:4px;gap:4px;margin-bottom:1.25rem}
 .booking-widget .tab-btn{border:none;background:transparent;border-radius:6px;padding:.6rem .5rem;font-family:var(--font-sans);font-size:.85rem;font-weight:600;color:var(--text-body);cursor:pointer;transition:var(--transition-fast)}
 .booking-widget .tab-btn.active{background:#111820;color:#fff}
}

/* ---------- Mobile Responsive Layout: Car & Driver in Background, Form in Bottom ---------- */
@media(max-width:768px){
 .tt-hero{
   min-height:calc(100vh - 60px)!important;
   min-height:calc(100dvh - 60px)!important;
   display:flex!important;
   flex-direction:column!important;
   justify-content:flex-end!important;
   align-items:center!important;
   padding:3.8rem .75rem 1.15rem!important;
   background:#111820 url("/assets/hero_bg_mobile.webp?v=4") center top/cover no-repeat!important;
   background-attachment:scroll!important;
   box-sizing:border-box!important;
 }
 .tt-hero::before{
   display:none!important;
 }
 .tt-hero-container{
   display:flex!important;
   flex-direction:column!important;
   justify-content:flex-end!important;
   align-items:center!important;
   width:100%!important;
   max-width:440px!important;
   margin:0 auto!important;
   padding:0!important;
   gap:.65rem!important;
 }
 .tt-hero-content{
   order:0!important;
   text-align:center!important;
   padding:0 .5rem!important;
   margin:0 0 .25rem 0!important;
   width:100%!important;
 }
 .tt-hero-eyebrow{display:none!important}
 .tt-hero h1{
   font-size:1.65rem!important;
   line-height:1.2!important;
   margin:0 0 .25rem 0!important;
   color:#ffffff!important;
   text-shadow:0 2px 10px rgba(0,0,0,.9),0 1px 4px rgba(0,0,0,1)!important;
 }
 .tt-hero h1 em{
   color:#f3cf7a!important;
 }
 .tt-hero-lede,
 .tt-trust-strip,
 .hero-ctas{
   display:none!important;
 }

 /* Booking Widget Anchored Cleanly at the Bottom */
 .booking-widget{
   order:1!important;
   width:100%!important;
   max-width:100%!important;
   box-sizing:border-box!important;
   background:#fff!important;
   border-radius:12px!important;
   box-shadow:0 8px 32px rgba(0,0,0,.4)!important;
   padding:.65rem .75rem .75rem!important;
   margin:0!important;
 }
 .booking-widget .booking-tabs{
   display:grid!important;
   grid-template-columns:repeat(3,1fr)!important;
   margin-bottom:.45rem!important;
   padding:2px!important;
   border-radius:7px!important;
   background:#ebeef2!important;
   height:28px!important;
   align-items:center!important;
   border:none!important;
 }
 .booking-widget .tab-btn,.tab-btn{
   height:24px!important;
   min-height:24px!important;
   padding:0 2px!important;
   font-size:.68rem!important;
   font-weight:600!important;
   line-height:24px!important;
   border-radius:5px!important;
   border:none!important;
   color:#475569!important;
   background:transparent!important;
 }
 .booking-widget .tab-btn.active{
   background:#111820!important;
   color:#fff!important;
 }
 .booking-form{
   gap:.4rem!important;
   display:flex!important;
   flex-direction:column!important;
 }
 .booking-form .form-row{
   grid-template-columns:1fr!important;
   gap:.25rem!important;
   margin-bottom:0!important;
   width:100%!important;
   box-sizing:border-box!important;
 }
 .booking-form .form-row:not([style*="display: none"]):not([style*="display:none"]){
   display:grid!important;
 }
 .booking-form .form-row.datetime-row:not([style*="display: none"]):not([style*="display:none"]),
 .booking-form .form-row.date-time-row:not([style*="display: none"]):not([style*="display:none"]),
 .datetime-row:not([style*="display: none"]):not([style*="display:none"]){
   grid-template-columns:1fr 1fr!important;
   gap:.35rem!important;
   margin-bottom:.15rem!important;
   display:grid!important;
 }
 .booking-widget .form-group,#address-row .form-group,#route-row .form-group,#hours-row .form-group,.form-row .form-group{
   gap:0!important;
   margin-bottom:.25rem!important;
   min-width:0!important;
   width:100%!important;
   box-sizing:border-box!important;
   flex-direction:column!important;
   align-items:stretch!important;
 }
 .booking-widget label,#address-row label,#route-row label,#hours-row label{
   font-size:.6rem!important;
   font-weight:700!important;
   letter-spacing:.03em!important;
   margin-bottom:2px!important;
   color:#475569!important;
   text-transform:uppercase!important;
   line-height:1.2!important;
   width:100%!important;
   display:block!important;
   text-align:left!important;
 }
 .booking-widget input,.booking-widget select,#address-row input,#route-row select,#hours-row select,#pickup-addr,#dropoff-addr,#pickup-date,#pickup-time,#calc-pickup,#calc-dropoff{
   height:32px!important;
   min-height:32px!important;
   padding:0 .5rem!important;
   font-size:.82rem!important;
   border-radius:5px!important;
   border:1px solid #cbd5e1!important;
   line-height:normal!important;
   box-sizing:border-box!important;
   margin-top:1px!important;
   width:100%!important;
   min-width:0!important;
   color:#09090b!important;
   background:#fff!important;
 }
 #swap-direction-btn,.swap-direction-btn{
   font-size:.7rem!important;
   margin:-.15rem 0 .2rem!important;
   padding:0!important;
   line-height:1.2!important;
 }
 .booking-widget .btn-submit,.booking-widget .btn-primary,.btn-submit-booking,.btn-calculate{
   height:34px!important;
   min-height:34px!important;
   font-size:.82rem!important;
   font-weight:600!important;
   margin-top:.25rem!important;
   border-radius:6px!important;
   padding:0 .6rem!important;
   display:flex!important;
   align-items:center!important;
   justify-content:center!important;
   gap:.35rem!important;
   width:100%!important;
 }
}

@media(max-width:380px){
 .tt-hero{padding:3.8rem .5rem 1rem!important}
 .booking-widget{padding:.5rem .55rem .6rem!important}
 .booking-widget .booking-tabs .tab-btn,.tab-btn{font-size:.63rem!important}
 .booking-widget input,.booking-widget select,#pickup-addr,#dropoff-addr,#pickup-date,#pickup-time,#calc-pickup,#calc-dropoff{height:30px!important;min-height:30px!important;font-size:.76rem!important;padding:0 .4rem!important}
 .booking-widget .btn-submit,.booking-widget .btn-primary,.btn-calculate{height:32px!important;min-height:32px!important;font-size:.76rem!important}
}

/* ---------- Value props strip ---------- */
.tt-values{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1px;background:var(--border-color);border-block:1px solid var(--border-color)}
.tt-value-item{display:flex;align-items:center;gap:1rem;background:var(--bg-white);padding:1.75rem 1.5rem}
.tt-value-icon{width:46px;height:46px;flex:none;border-radius:50%;background:var(--accent-brass-soft);display:grid;place-items:center;font-size:1.15rem;color:var(--accent-brass)}
.tt-value-item h3{margin:0 0 .2rem;font-family:var(--font-sans);font-size:.98rem;font-weight:700;color:var(--text-heading)}
.tt-value-item p{margin:0;font-size:.85rem;color:var(--text-body)}

/* ---------- Service tiles ---------- */
.tt-services{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.5rem}
.tt-service-tile{position:relative;display:block;border-radius:14px;overflow:hidden;text-decoration:none;aspect-ratio:4/5;background:#1a1e24}
.tt-service-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.16,1,.3,1),opacity .3s ease;opacity:.92}
.tt-service-tile:hover img{transform:scale(1.05);opacity:1}
.tt-service-tile::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,17,23,0) 35%,rgba(13,17,23,.78) 100%)}
.tt-service-body{position:absolute;left:0;right:0;bottom:0;z-index:1;padding:1.75rem;color:#fff}
.tt-service-body h3{font-family:var(--font-serif);font-size:1.45rem;font-weight:600;margin:0 0 .4rem;color:#fff}
.tt-service-body p{margin:0 0 1rem;font-size:.9rem;line-height:1.55;color:#f3efe6}
.tt-service-link{display:inline-flex;align-items:center;gap:.5rem;font-size:.85rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--accent-brass)}

/* ---------- Fleet classes ---------- */
.tt-fleet-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.75rem}
.tt-fleet-card{background:var(--bg-white);border:1px solid var(--border-color);border-radius:14px;overflow:hidden;display:flex;flex-direction:column;transition:var(--transition-smooth)}
.tt-fleet-card:hover{transform:translateY(-4px);box-shadow:0 18px 44px rgba(17,24,32,.14);border-color:var(--border-hover)}
.tt-fleet-card>img{width:100%;height:210px;object-fit:cover}
.tt-fleet-body{padding:1.6rem;display:flex;flex-direction:column;flex:1;gap:.65rem}
.tt-fleet-class{font-size:.74rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-brass)}
.tt-fleet-body h3{margin:0;font-family:var(--font-serif);font-size:1.5rem;font-weight:600;color:var(--text-heading)}
.tt-fleet-specs{list-style:none;margin:.25rem 0;padding:0;display:flex;flex-direction:column;gap:.4rem}
.tt-fleet-specs li{display:flex;align-items:center;gap:.55rem;font-size:.88rem;color:var(--text-body)}
.tt-fleet-specs li i{color:var(--accent-brass);width:1em}
.tt-fleet-best{font-size:.84rem;color:var(--text-body);margin:0}
.tt-fleet-best strong{color:var(--text-heading)}
.tt-fleet-body .btn-primary{margin-top:auto;width:100%}

/* ---------- Steps ---------- */
.tt-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.5rem;counter-reset:step}
.tt-step{position:relative;background:var(--bg-warm-light);border:1px solid var(--border-color);border-radius:14px;padding:1.75rem}
.tt-step::before{counter-increment:step;content:"0" counter(step);font-family:var(--font-serif);font-size:2.4rem;font-weight:700;line-height:1;color:var(--accent-brass);display:block;margin-bottom:.9rem}
.tt-step h3{margin:0 0 .5rem;font-family:var(--font-sans);font-size:1.02rem;font-weight:700;color:var(--text-heading)}
.tt-step p{margin:0;font-size:.9rem;line-height:1.6;color:var(--text-body)}

/* ---------- Reviews compact ---------- */
.tt-review-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem}

@media(max-width:720px){
 .tt-value-item{flex-direction:row}
 .tt-service-tile{aspect-ratio:3/4}
}
