/*
 * P01B – Taxi Cai Lay Home + Header/Footer Foundation
 * Purpose: one final visual contract layered after legacy transport styles.
 * Scope: public header, service bar, footer and homepage rhythm only.
 */
:root{
  --tcl01-blue:#0b78b6;
  --tcl01-blue-dark:#075f93;
  --tcl01-navy:#103b5d;
  --tcl01-ink:#173850;
  --tcl01-muted:#6f8495;
  --tcl01-line:#dce8ef;
  --tcl01-soft:#f5fafe;
  --tcl01-yellow:#ffc527;
  --tcl01-shell:1280px;
  --tcl01-radius:16px;
  --tcl01-shadow:0 12px 34px rgba(18,76,112,.09);
}

/* Never expose accessibility skip text during normal paint, even if an older rule wins. */
.tr-skip:not(:focus){position:absolute!important;left:-10000px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(1px,1px,1px,1px)!important;white-space:nowrap!important}
.tr-skip:focus{position:fixed!important;left:12px!important;top:12px!important;width:auto!important;height:auto!important;clip:auto!important;overflow:visible!important;z-index:99999!important;padding:10px 14px!important;border-radius:9px!important;background:#0b3658!important;color:#fff!important}

/* Header foundation */
.tr-header-p47{background:#fff!important;border-bottom:1px solid var(--tcl01-line)!important;box-shadow:0 4px 18px rgba(17,69,104,.06)!important;backdrop-filter:none!important}
.tr-header-p47 .tr-header-row{width:min(calc(100% - 32px),var(--tcl01-shell))!important;min-height:76px!important;gap:22px!important}
.tr-header-p47 .tr-brand-p47{min-width:238px!important;gap:11px!important}
.tr-header-p47 .tr-brand-logo-wrap{width:52px!important;height:52px!important;flex:0 0 52px!important;border-radius:14px!important;background:linear-gradient(145deg,#eaf7fd,#fff)!important;border:1px solid #d6e8f2!important;box-shadow:none!important}
.tr-header-p47 .tr-brand-mark{width:28px!important;height:28px!important;border-width:4px!important}
.tr-header-p47 .tr-brand-copy strong{font-size:20px!important;line-height:1.1!important;color:var(--tcl01-navy)!important}
.tr-header-p47 .tr-brand-copy span{margin-top:4px!important;color:#6e8496!important;font-size:11px!important;line-height:1.3!important}
.tr-header-p47 .tr-nav-p47{gap:16px!important}
.tr-header-p47 .tr-nav-p47>a,.tr-header-p47 .tr-nav-p47 button{font-size:14px!important;color:#29485f!important;font-weight:750!important}
.tr-header-p47 .tr-nav-p47>a{padding:27px 0 25px!important}
.tr-header-p47 .tr-nav-dropdown button{padding:27px 0 25px!important}
.tr-header-p47 .tr-nav-p47>a:hover,.tr-header-p47 .tr-nav-p47 button:hover{color:var(--tcl01-blue)!important}
.tr-header-p47 .tr-nav-p47>a.is-active:after,.tr-header-p47 .tr-nav-dropdown.is-active>button:after{bottom:18px!important;height:2px!important;background:var(--tcl01-blue)!important}
.tr-header-p47 .tr-nav-dropdown-menu{top:62px!important;width:270px!important;padding:8px!important;border-color:#dbe7ee!important;border-radius:12px!important;box-shadow:0 18px 46px rgba(24,77,109,.14)!important}
.tr-header-p47 .tr-nav-dropdown-menu a{padding:10px 11px!important;color:#315069!important}
.tr-header-p47 .tr-header-actions-p47{gap:8px!important;margin-left:0!important}
.tr-header-p47 .tr-head-search{width:42px!important;height:42px!important;border-radius:11px!important;border:1px solid #d9e6ed!important;background:#fff!important}
.tr-header-p47 .tr-book-now{min-height:42px!important;padding:9px 14px!important;border-radius:10px!important;background:var(--tcl01-yellow)!important;color:#19374c!important;box-shadow:none!important;white-space:nowrap!important}
.tr-header-p47 .tr-book-now:hover{background:#ffbd0b!important;transform:none!important}

.tm49-utility{background:#0b659b!important}
.tm49-utility-inner{width:min(calc(100% - 32px),var(--tcl01-shell))!important;min-height:31px!important;gap:18px!important;font-size:11.5px!important;font-weight:650!important}
.tm49-utility-inner>span{opacity:.95}
.tm49-utility-inner>span:nth-child(n+4):not(.tm49-social){opacity:.82}
.tm49-social{font-size:11px!important;letter-spacing:.02em!important}

.tr-servicebar-p47{background:#0b78b6!important;box-shadow:none!important}
.tr-servicebar-p47 .tr-servicebar-inner{width:min(100%,var(--tcl01-shell))!important;min-height:42px!important;grid-template-columns:repeat(6,minmax(0,1fr))!important}
.tr-servicebar-p47 a{min-height:42px!important;padding:0 12px!important;border-color:rgba(255,255,255,.12)!important;font-size:12.5px!important;font-weight:750!important}
.tr-servicebar-p47 a:hover{background:rgba(255,255,255,.1)!important}

/* Search panel: keep it compact and above hero. */
.tr-head-search-wrap{position:relative}
.tr-head-search-panel{z-index:120!important;border:1px solid var(--tcl01-line)!important;border-radius:12px!important;box-shadow:var(--tcl01-shadow)!important}

/* Home: normalize section rhythm and typography without replacing content. */
body.transport-home-p01 main{background:#fff}
body.transport-home-p01 .tcl-section{padding-top:48px!important;padding-bottom:48px!important}
body.transport-home-p01 .tcl-section-head{margin-bottom:20px!important;gap:24px!important}
body.transport-home-p01 .tcl-section-head h2{font-size:clamp(26px,2.3vw,34px)!important;line-height:1.2!important;color:var(--tcl01-navy)!important;letter-spacing:-.45px!important}
body.transport-home-p01 .tcl-section-head p{color:var(--tcl01-muted)!important;line-height:1.6!important}
body.transport-home-p01 .tcl-service-card,
body.transport-home-p01 .tcl-vehicle-card,
body.transport-home-p01 .tcl-route-grid a,
body.transport-home-p01 .tcl-final-cta{border-color:var(--tcl01-line)!important;box-shadow:0 7px 22px rgba(23,73,105,.055)!important}
body.transport-home-p01 .tcl-service-card:hover,
body.transport-home-p01 .tcl-vehicle-card:hover,
body.transport-home-p01 .tcl-route-grid a:hover{transform:translateY(-2px)!important;box-shadow:0 14px 30px rgba(23,73,105,.09)!important}

/* Footer – clean 4-column information architecture. */
.trf61{margin-top:52px!important;background:#083e65!important;color:#fff!important}
.trf61:before{background:radial-gradient(900px 280px at 30% 0%,rgba(52,144,202,.16),transparent 68%)!important}
.trf61-inner{width:min(calc(100% - 32px),var(--tcl01-shell))!important;padding-top:34px!important}
.trf61 .trf61-grid{display:grid!important;grid-template-columns:minmax(320px,1.6fr) repeat(3,minmax(155px,1fr))!important;gap:40px!important;padding-bottom:30px!important}
.trf61-company{padding-right:8px!important}
.trf61-brand{margin-bottom:9px!important}
.trf61-brand h2{font-size:27px!important;line-height:1.12!important;letter-spacing:-.3px!important}
.trf61-slogan{margin-top:5px!important;font-size:13.5px!important;color:#d9ebf5!important}
.trf61-intro{max-width:520px!important;font-size:13.5px!important;line-height:1.65!important;color:#d6e7f1!important}
.trf61-rule{margin:15px 0 13px!important;background:rgba(255,255,255,.16)!important}
.trf61-company-info{gap:8px!important}
.trf61-info{display:block!important;color:#eef7fb!important;font-size:13px!important;line-height:1.45!important}
.trf61-info a{color:#fff!important;font-weight:700!important}
.trf61-info a:hover{color:#ffdc58!important}
.trf61-nav{padding-top:1px!important}
.trf61-nav h3{font-size:17px!important;line-height:1.25!important;font-weight:800!important;letter-spacing:0!important}
.trf61-title-line{width:32px!important;height:3px!important;margin:9px 0 8px!important;background:#ffcc2e!important}
.trf61-list a{min-height:34px!important;padding:6px 0!important;border-bottom:1px solid rgba(255,255,255,.10)!important;color:#e9f3f8!important;font-size:13px!important;line-height:1.42!important}
.trf61-list a:hover{color:#ffdc58!important;transform:none!important}
.trf61-bottom{min-height:54px!important;padding:12px 0!important;gap:18px!important;border-top-color:rgba(255,255,255,.16)!important;color:#cbdde8!important;font-size:12px!important}
.trf61-bottom nav{gap:12px!important}
.trf61-bottom nav a{color:#e8f2f7!important}

@media(max-width:1200px){
  .tr-header-p47 .tr-header-row{gap:16px!important}
  .tr-header-p47 .tr-brand-p47{min-width:205px!important}
  .tr-header-p47 .tr-brand-copy span{display:none!important}
  .tr-header-p47 .tr-nav-p47{gap:12px!important}
  .tr-header-p47 .tr-nav-p47>a,.tr-header-p47 .tr-nav-p47 button{font-size:13px!important}
  .tm49-utility-inner>span:nth-child(4),.tm49-utility-inner>span:nth-child(5){display:none!important}
  .trf61 .trf61-grid{grid-template-columns:minmax(280px,1.45fr) repeat(3,minmax(145px,1fr))!important;gap:28px!important}
}

@media(max-width:980px){
  .tr-header-p47 .tr-header-row{min-height:64px!important;width:min(calc(100% - 24px),var(--tcl01-shell))!important}
  .tr-header-p47 .tr-brand-p47{min-width:0!important}
  .tr-header-p47 .tr-brand-logo-wrap{width:44px!important;height:44px!important;flex-basis:44px!important}
  .tr-header-p47 .tr-brand-mark{width:24px!important;height:24px!important}
  .tr-header-p47 .tr-brand-copy strong{font-size:17px!important}
  .tr-header-p47 [data-tr-nav].is-open{top:64px!important;left:12px!important;right:12px!important;padding:8px 14px 14px!important;border:1px solid var(--tcl01-line)!important;border-radius:0 0 14px 14px!important;box-shadow:0 18px 35px rgba(15,63,94,.14)!important}
  .tr-header-p47 [data-tr-nav].is-open>a,.tr-header-p47 [data-tr-nav].is-open button{min-height:44px!important;padding:11px 2px!important}
  .tr-servicebar-p47 .tr-servicebar-inner{width:100%!important;padding-inline:12px!important;overflow-x:auto!important}
  .tr-servicebar-p47 a{min-width:132px!important;flex:0 0 auto!important}
  .trf61{margin-top:38px!important}
  .trf61 .trf61-grid{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)!important;gap:28px 36px!important}
  .trf61 .trf61-company{grid-row:span 2!important}
}

@media(max-width:680px){
  .tr-header-p47 .tr-header-row{min-height:60px!important}
  .tr-header-p47 .tr-brand-logo-wrap{width:42px!important;height:42px!important;flex-basis:42px!important}
  .tr-header-p47 .tr-brand-copy strong{font-size:16.5px!important}
  .tr-header-p47 .tr-book-now{display:none!important}
  .tr-header-p47 .tr-menu{display:inline-flex!important;width:40px!important;height:40px!important;align-items:center!important;justify-content:center!important;border:1px solid #d8e5ed!important;border-radius:10px!important;background:#fff!important;color:#17415f!important;font-size:20px!important}
  .tr-servicebar-p47 a{min-width:118px!important;font-size:11.5px!important;padding-inline:7px!important}
  body.transport-home-p01 .tcl-section{padding-top:36px!important;padding-bottom:36px!important}
  .trf61{margin-top:30px!important}
  .trf61-inner{width:min(calc(100% - 28px),var(--tcl01-shell))!important;padding-top:28px!important}
  .trf61 .trf61-grid{grid-template-columns:1fr!important;gap:24px!important;padding-bottom:22px!important}
  .trf61 .trf61-company{grid-row:auto!important;padding-right:0!important}
  .trf61-brand h2{font-size:23px!important}
  .trf61-slogan{font-size:13px!important}
  .trf61-intro{font-size:13px!important;line-height:1.6!important}
  .trf61-nav h3{font-size:17px!important}
  .trf61-list a{min-height:33px!important;padding:6px 0!important;font-size:13px!important}
  .trf61-bottom{align-items:flex-start!important;flex-direction:column!important;min-height:auto!important;padding:14px 0 16px!important}
  .trf61-bottom nav{flex-wrap:wrap!important}
  .trf61-bottom nav span{display:none!important}
}

/* P01 FINAL HARDENING — footer selectors must win over every legacy transport patch. */
body.transport-native .trf61 .trf61-grid{
  grid-template-columns:minmax(360px,1.65fr) minmax(180px,1fr) minmax(180px,1fr) minmax(180px,1fr)!important;
  gap:36px!important;
  align-items:start!important;
}
body.transport-native .trf61 .trf61-nav,
body.transport-native .trf61 .trf61-list{
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
}
body.transport-native .trf61 .trf61-list a,
body.transport-native .trf61 .trf61-list a:link,
body.transport-native .trf61 .trf61-list a:visited{
  display:flex!important;
  flex-flow:row nowrap!important;
  align-items:center!important;
  grid-template-columns:none!important;
  width:100%!important;
  inline-size:100%!important;
  min-width:0!important;
  max-width:none!important;
  max-inline-size:none!important;
  min-height:36px!important;
  padding:7px 0!important;
  margin:0!important;
  gap:0!important;
  white-space:normal!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
}
body.transport-native .trf61 .trf61-list a>span{
  display:block!important;
  flex:1 1 auto!important;
  width:auto!important;
  inline-size:auto!important;
  min-width:0!important;
  max-width:none!important;
  max-inline-size:none!important;
  white-space:normal!important;
  word-break:keep-all!important;
  overflow-wrap:normal!important;
}
body.transport-native .trf61 .trf61-bottom{margin-top:0!important}
@media(max-width:1180px){
  body.transport-native .trf61 .trf61-grid{
    grid-template-columns:minmax(300px,1.45fr) repeat(3,minmax(160px,1fr))!important;
    gap:28px!important;
  }
}
@media(max-width:960px){
  body.transport-native .trf61 .trf61-grid{
    grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)!important;
    gap:28px 34px!important;
  }
}
@media(max-width:680px){
  body.transport-native .trf61 .trf61-grid{grid-template-columns:1fr!important;gap:22px!important}
  body.transport-native .trf61 .trf61-list a>span{word-break:normal!important}
}
